comparison dstress.c @ 968:8b6d2dcf9954

* fixed new line escapes in GDB_SCRIPT * fixed gdb_script handling * added Vlagrind crash patterns * fixed handling of TORTURE_REQUIRE for non-torture tests
author thomask
date Wed, 19 Apr 2006 06:43:40 +0000
parents f4fc739bbaaf
children 8da09834526d
comparison
equal deleted inserted replaced
967:c9ceb6cd6ffc 968:8b6d2dcf9954
152 #endif /* USE_POSIX else */ 152 #endif /* USE_POSIX else */
153 153
154 #define TORTURE_PREFIX "torture-" 154 #define TORTURE_PREFIX "torture-"
155 155
156 #ifdef USE_POSIX 156 #ifdef USE_POSIX
157 #define CRASH_RUN "./crashRun 30 1024" 157 #define CRASH_RUN "./crashRun 30 2000"
158 #define TMP_DIR "./obj" 158 #define TMP_DIR "./obj"
159 #else 159 #else
160 #ifdef USE_WINDOWS 160 #ifdef USE_WINDOWS
161 #define TMP_DIR ".\\obj" 161 #define TMP_DIR ".\\obj"
162 #else 162 #else
449 end1 = begin + strlen(begin); 449 end1 = begin + strlen(begin);
450 } 450 }
451 back = malloc(end1-begin+1); 451 back = malloc(end1-begin+1);
452 strncpy(back, begin, end1-begin); 452 strncpy(back, begin, end1-begin);
453 back[end1-begin]='\x00'; 453 back[end1-begin]='\x00';
454 return strip(cleanPathSeperator(back)); 454 return strip(back);
455 } 455 }
456 } 456 }
457 457
458 return calloc(1,1); 458 return calloc(1,1);
459 } 459 }
635 if(strstr(buffer, "Segmentation fault") 635 if(strstr(buffer, "Segmentation fault")
636 || strstr(buffer, "Internal error") 636 || strstr(buffer, "Internal error")
637 || strstr(buffer, "gcc.gnu.org/bugs") 637 || strstr(buffer, "gcc.gnu.org/bugs")
638 || strstr(buffer, "EXIT CODE: signal") 638 || strstr(buffer, "EXIT CODE: signal")
639 || strstr(buffer, "Assertion failure") 639 || strstr(buffer, "Assertion failure")
640 || strstr(buffer, "Access Violation")) 640 || strstr(buffer, "Access Violation")
641 || strstr(buffer, "Invalid read of size")
642 || strstr(buffer, "Conditional jump or move depends on uninitialised value")
643 || strstr(buffer, "Use of uninitialised value of size"))
641 { 644 {
642 return 1; 645 return 1;
643 } 646 }
644 return 0; 647 return 0;
645 } 648 }
953 }else{ 956 }else{
954 good_error = 1; 957 good_error = 1;
955 } 958 }
956 959
957 #ifdef REG_EXTENDED 960 #ifdef REG_EXTENDED
958 if(gdb_script != NULL){ 961 if(((res==EXIT_SUCCESS && (modus & MODE_RUN))
962 ||(res==EXIT_SUCCESS && (modus & MODE_RUN)))
963 && gdb_script != NULL)
964 {
959 free(buffer); 965 free(buffer);
960 good_gdb = 0; 966 good_gdb = 0;
961 /* test 3/3 - gdb */ 967 /* test 3/3 - gdb */
962 gdb_scripter = genTempFileName(); 968 gdb_scripter = genTempFileName();
963 writeFile(gdb_scripter, gdb_script); 969 writeFile(gdb_scripter, gdb_script);
1114 gdb = getGDB(); 1120 gdb = getGDB();
1115 torture_block_global = getTortureBlock(); 1121 torture_block_global = getTortureBlock();
1116 buffer = loadFile(case_file, &bufferLen); 1122 buffer = loadFile(case_file, &bufferLen);
1117 bufferLen = 0; 1123 bufferLen = 0;
1118 1124
1119 cmd_arg_case = getCaseFlag(buffer, "__DSTRESS_DFLAGS__"); 1125 cmd_arg_case = cleanPathSeperator(getCaseFlag(buffer, "__DSTRESS_DFLAGS__"));
1120 error_line = getCaseFlag(buffer, "__DSTRESS_ELINE__"); 1126 error_line = getCaseFlag(buffer, "__DSTRESS_ELINE__");
1121 error_file = getCaseFlag(buffer, "__DSTRESS_EFILE__"); 1127 error_file = cleanPathSeperator(getCaseFlag(buffer, "__DSTRESS_EFILE__"));
1122 gdb_script = getCaseFlag(buffer, "__GDB_SCRIPT__"); 1128 gdb_script = getCaseFlag(buffer, "__GDB_SCRIPT__");
1123 gdb_pattern_raw = getCaseFlag(buffer, "__GDB_PATTERN__"); 1129 gdb_pattern_raw = getCaseFlag(buffer, "__GDB_PATTERN__");
1124 torture_block_case = getCaseFlag(buffer, "__DSTRESS_TORTURE_BLOCK__"); 1130 torture_block_case = getCaseFlag(buffer, "__DSTRESS_TORTURE_BLOCK__");
1125 torture_require = getCaseFlag(buffer, "__DSTRESS_TORTURE_REQUIRE__"); 1131 torture_require = getCaseFlag(buffer, "__DSTRESS_TORTURE_REQUIRE__");
1126 1132
1262 printResult(torture_result[index], modus, case_file, 1268 printResult(torture_result[index], modus, case_file,
1263 stdout); 1269 stdout);
1264 printf("--------\n"); 1270 printf("--------\n");
1265 } 1271 }
1266 }else{ 1272 }else{
1273 if(torture_require){
1274 if(!cmd_arg_case){
1275 torture_require = cmd_arg_case;
1276 }else{
1277 size_t new_len = strlen(cmd_arg_case);
1278 new_len += strlen(torture_require);
1279 new_len++;
1280 cmd_arg_case = realloc(cmd_arg_case, new_len);
1281 strcat(cmd_arg_case, " ");
1282 strcat(cmd_arg_case, torture_require);
1283 }
1284 }
1267 if(modus & (MODE_RUN | MODE_NORUN)){ 1285 if(modus & (MODE_RUN | MODE_NORUN)){
1268 case_result = target_run(modus, compiler, cmd_arg_case, 1286 case_result = target_run(modus, compiler, cmd_arg_case,
1269 case_file, error_file, error_line 1287 case_file, error_file, error_line
1270 #ifdef REG_EXTENDED 1288 #ifdef REG_EXTENDED
1271 , gdb, gdb_script, gdb_pattern 1289 , gdb, gdb_script, gdb_pattern