Changeset 15733


Ignore:
Timestamp:
08/06/13 16:36:44 (12 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added check on invalid read/write

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/test/NightlyRun/runme.m

    r15725 r15733  
    161161                                results = md.results.(fields{i});
    162162                                errlog  = cellstr(results(1).errlog);
    163                                 lines1  = strfind(errlog,'definitely lost:');
    164                                 lines1  = find(~cellfun(@isempty,lines1));
    165                                 lines2  = strfind(errlog,'Conditional jump or move depends on uninitialised value');
    166                                 lines2  = find(~cellfun(@isempty,lines2));
    167                                 jumps   = numel(lines2);
     163
     164                                %Check leaks
     165                                lines  = strfind(errlog,'definitely lost:');
     166                                lines  = find(~cellfun(@isempty,lines));
    168167                                leaks   = 0;
    169                                 for j=1:numel(lines1)
    170                                         Line    = errlog(lines1(j));
     168                                for j=1:numel(lines)
     169                                        Line    = errlog(lines(j));
    171170                                        Numbers = sscanf(Line{1},'==%i==   definitely lost: %s bytes in %i blocks',[1 Inf]);
    172171                                        leaks   = leaks + str2num(strrep(char(Numbers(2:end-1)),',',''));
    173172                                end
     173                                %Check conditional jumps
     174                                lines  = strfind(errlog,'Conditional jump or move depends on uninitialised value');
     175                                lines  = find(~cellfun(@isempty,lines));
     176                                jumps   = numel(lines);
     177                                %Check invalid read/write
     178                                lines  = strfind(errlog,'Invalid');
     179                                lines  = find(~cellfun(@isempty,lines));
     180                                inval  = numel(lines);
    174181                                if leaks==0,
    175                                         disp(sprintf(['SUCCESS difference: 0 < 0 test id: %i test name: %s field: valgrindleaks'],id,id_string));
    176                                 else
    177                                         disp(sprintf(['ERROR   difference: %i > 0 test id: %i test name: %s field: valgrindleaks'],leaks,id,id_string));
     182                                        disp(sprintf(['SUCCESS difference: 0 < 0 test id: %i test name: %s field: valgrind mem. leaks'],id,id_string));
     183                                else
     184                                        disp(sprintf(['ERROR   difference: %i > 0 test id: %i test name: %s field: valgrind mem. leaks'],leaks,id,id_string));
    178185                                        disp('STOP');
    179186                                        return;
    180187                                end
    181188                                if jumps==0,
    182                                         disp(sprintf(['SUCCESS difference: 0 < 0 test id: %i test name: %s field: valgrindjumps'],id,id_string));
    183                                 else
    184                                         disp(sprintf(['ERROR   difference: %i > 0 test id: %i test name: %s field: valgrindjumps'],jumps,id,id_string));
     189                                        disp(sprintf(['SUCCESS difference: 0 < 0 test id: %i test name: %s field: valgrind cond. jumps'],id,id_string));
     190                                else
     191                                        disp(sprintf(['ERROR   difference: %i > 0 test id: %i test name: %s field: valgrind cond. jumps'],jumps,id,id_string));
     192                                        disp('STOP');
     193                                        return;
     194                                end
     195                                if inval==0,
     196                                        disp(sprintf(['SUCCESS difference: 0 < 0 test id: %i test name: %s field: valgrind invalid read/write'],id,id_string));
     197                                else
     198                                        disp(sprintf(['ERROR   difference: %i > 0 test id: %i test name: %s field: valgrind invalid read/write'],inval,id,id_string));
    185199                                        disp('STOP');
    186200                                        return;
Note: See TracChangeset for help on using the changeset viewer.