# HG changeset patch # User thomask # Date 1145429020 0 # Node ID 8b6d2dcf99542b3c70c634548319f52c6d94f9a6 # Parent c9ceb6cd6ffc9ab74a890687610215251faa71f9 * fixed new line escapes in GDB_SCRIPT * fixed gdb_script handling * added Vlagrind crash patterns * fixed handling of TORTURE_REQUIRE for non-torture tests diff -r c9ceb6cd6ffc -r 8b6d2dcf9954 dstress.c --- a/dstress.c Tue Apr 18 06:26:55 2006 +0000 +++ b/dstress.c Wed Apr 19 06:43:40 2006 +0000 @@ -154,7 +154,7 @@ #define TORTURE_PREFIX "torture-" #ifdef USE_POSIX -#define CRASH_RUN "./crashRun 30 1024" +#define CRASH_RUN "./crashRun 30 2000" #define TMP_DIR "./obj" #else #ifdef USE_WINDOWS @@ -451,7 +451,7 @@ back = malloc(end1-begin+1); strncpy(back, begin, end1-begin); back[end1-begin]='\x00'; - return strip(cleanPathSeperator(back)); + return strip(back); } } @@ -637,7 +637,10 @@ || strstr(buffer, "gcc.gnu.org/bugs") || strstr(buffer, "EXIT CODE: signal") || strstr(buffer, "Assertion failure") - || strstr(buffer, "Access Violation")) + || strstr(buffer, "Access Violation") + || strstr(buffer, "Invalid read of size") + || strstr(buffer, "Conditional jump or move depends on uninitialised value") + || strstr(buffer, "Use of uninitialised value of size")) { return 1; } @@ -955,7 +958,10 @@ } #ifdef REG_EXTENDED - if(gdb_script != NULL){ + if(((res==EXIT_SUCCESS && (modus & MODE_RUN)) + ||(res==EXIT_SUCCESS && (modus & MODE_RUN))) + && gdb_script != NULL) + { free(buffer); good_gdb = 0; /* test 3/3 - gdb */ @@ -1116,9 +1122,9 @@ buffer = loadFile(case_file, &bufferLen); bufferLen = 0; - cmd_arg_case = getCaseFlag(buffer, "__DSTRESS_DFLAGS__"); + cmd_arg_case = cleanPathSeperator(getCaseFlag(buffer, "__DSTRESS_DFLAGS__")); error_line = getCaseFlag(buffer, "__DSTRESS_ELINE__"); - error_file = getCaseFlag(buffer, "__DSTRESS_EFILE__"); + error_file = cleanPathSeperator(getCaseFlag(buffer, "__DSTRESS_EFILE__")); gdb_script = getCaseFlag(buffer, "__GDB_SCRIPT__"); gdb_pattern_raw = getCaseFlag(buffer, "__GDB_PATTERN__"); torture_block_case = getCaseFlag(buffer, "__DSTRESS_TORTURE_BLOCK__"); @@ -1264,6 +1270,18 @@ printf("--------\n"); } }else{ + if(torture_require){ + if(!cmd_arg_case){ + torture_require = cmd_arg_case; + }else{ + size_t new_len = strlen(cmd_arg_case); + new_len += strlen(torture_require); + new_len++; + cmd_arg_case = realloc(cmd_arg_case, new_len); + strcat(cmd_arg_case, " "); + strcat(cmd_arg_case, torture_require); + } + } if(modus & (MODE_RUN | MODE_NORUN)){ case_result = target_run(modus, compiler, cmd_arg_case, case_file, error_file, error_line