Mercurial > projects > dstress
changeset 746:0e3682dad93a
fixed windows part of dstress.c
author | thomask |
---|---|
date | Fri, 18 Nov 2005 21:01:21 +0000 |
parents | 6b672e70f777 |
children | 8ad81aad3516 |
files | dstress.c |
diffstat | 1 files changed, 33 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/dstress.c Sun Nov 13 21:06:32 2005 +0000 +++ b/dstress.c Fri Nov 18 21:01:21 2005 +0000 @@ -100,10 +100,10 @@ #endif /* not every STDLIB supports C99's "%z" for printf formating */ -#ifdef win32 +#ifdef WIN32 #define ZU "%u" #else -#ifdef win64 +#ifdef WIN64 #define ZU "%llu" #else #error what is the size of a pointer? @@ -131,14 +131,14 @@ const char* torture[] = { "", - + "-g", "-inline", "-fPIC", "-O", "-release", - + "-g -inline", "-g -fPIC", "-g -O", "-g -release", "-inline -fPIC", "-inline -O", "-inline -release", "-fPIC -O", "-fPIC -release", "-O -release", - + "-g -inline -fPIC", "-g -inline -O", "-g -inline -release", "-g -fPIC -O", "-g -fPIC -release", "-g -O -release", "-inline -fPIC -O", "-inline -fPIC -release", "-inline -O -release", @@ -221,8 +221,12 @@ len = strlen(TMP_DIR) + 128; back = malloc(len); - + +#ifdef USE_POSIX snprintf(back, len, "%s/t%x-%x-%x.tmp", TMP_DIR, getpid(), rand(), ++genTempFileNameCount); +#else + snprintf(back, len, "%s\\t%x-%x-%x.tmp", TMP_DIR, getpid(), rand(), ++genTempFileNameCount); +#endif return back; } @@ -604,12 +608,12 @@ /* system call with time-out */ int crashRun(const char* cmd, char** logFile){ -#ifdef USE_POSIX + size_t len; char* buffer; *logFile = genTempFileName(); - +#ifdef USE_POSIX len = 20 + strlen(CRASH_RUN) + strlen(cmd) + strlen(*logFile); buffer = malloc(len); @@ -630,8 +634,15 @@ #else #error comment me out, if your test cases produce neither eternal loops nor Access Violations - int i = system(cmd); + + len = 10 + strlen(cmd) + strlen(*logFile); + buffer = malloc(len); + + snprintf(buffer, len, "%s > %s 2>&1", cmd, *logFile); + + int i = system(buffer); fprintf(stderr, "EXIT CODE: %i\n", i); + return i; #endif /* USE_POSIX else */ @@ -744,7 +755,7 @@ fprintf(stderr, "BUG: badly handled mode %i (->run)\n", modus); exit(EXIT_FAILURE); } - + /* gen command */ bufferLen = strlen(compiler) + strlen(arguments) + strlen(TMP_DIR) @@ -784,7 +795,7 @@ buffer = loadFile(logFile); fprintf(stderr, "%s", buffer); remove(logFile); - + if(modus & MODE_RUN){ good_error = checkErrorMessage(error_file, error_line, buffer); @@ -841,11 +852,13 @@ }else{ good_gdb = 1; } +#else + good_gdb = 1; #endif /* REG_EXTENDED */ if(modus & MODE_RUN){ if(hadExecCrash(buffer)){ - testResult = RES_ERROR; + testResult = RES_ERROR; }else if((res==EXIT_SUCCESS) && good_gdb){ testResult = RES_PASS; }else if((res==EXIT_FAILURE) && good_error && good_gdb){ @@ -869,7 +882,7 @@ } int main(int argc, char* arg[]){ - + char* compiler; /* the compiler - from enviroment flag "DMD" */ char* cmd_arg_case; /* additional arguments - from the testcase file */ char* buffer; /* general purpose buffer */ @@ -1065,7 +1078,7 @@ /* let's get serious */ if(modus & MODE_TORTURE){ - if((modus & (MODE_COMPILE | MODE_NOCOMPILE)) + if((modus & (MODE_COMPILE | MODE_NOCOMPILE)) && (modus & (MODE_RUN | MODE_NORUN))) { fprintf(stderr, "BUG: unhandled torture modus %x\n", modus); @@ -1075,11 +1088,11 @@ bufferLen = strlen(torture[(sizeof(torture) / sizeof(char*))-1]) + strlen(cmd_arg_case) + 3; - + if(torture_block_case!=NULL && strlen(torture_block_case)<1){ torture_block_case=NULL; } - + buffer = malloc(bufferLen); for(index=0; index < sizeof(torture)/sizeof(char*); index++){ if((torture_block_global && strstr(torture[index], torture_block_global)) @@ -1089,10 +1102,10 @@ torture_result[index]=RES_UNTESTED; continue; } - + buffer[0]=0; snprintf(buffer, bufferLen, "%s %s", torture[index], cmd_arg_case); - + if(modus & (MODE_COMPILE | MODE_NOCOMPILE)){ torture_result[index] = target_compile(modus, compiler, buffer, case_file, @@ -1129,7 +1142,7 @@ torture_result[index]); exit(EXIT_FAILURE); } - + if(torture_result[index] & RES_BAD_MSG){ case_result |= 1; } @@ -1160,6 +1173,6 @@ } } - + return EXIT_SUCCESS; }