Mercurial > projects > ldc
annotate tests/findregressions.d @ 1575:299a6b634178
This flush is not needed anymore.
author | Benjamin Kramer <benny.kra@gmail.com> |
---|---|
date | Tue, 25 Aug 2009 21:21:37 +0200 |
parents | 648409a7fb0c |
children |
rev | line source |
---|---|
186
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
1 // Based on DSTRESS code by Thomas Kühne |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
2 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
3 module findregressions; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
4 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
5 private import std.string; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
6 private import std.conv; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
7 private import std.stdio; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
8 private import std.stream; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
9 private import std.file; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
10 private import std.c.stdlib; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
11 private import std.date; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
12 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
13 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
14 enum Result{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
15 UNTESTED = 0, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
16 PASS = 1 << 2, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
17 XFAIL = 2 << 2, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
18 XPASS = 3 << 2, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
19 FAIL = 4 << 2, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
20 ERROR = 5 << 2, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
21 BASE_MASK = 7 << 2, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
22 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
23 EXT_MASK = 3, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
24 BAD_MSG = 1, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
25 BAD_GDB = 2, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
26 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
27 MAX = BAD_GDB + BASE_MASK |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
28 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
29 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
30 char[] toString(Result r){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
31 switch(r & Result.BASE_MASK){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
32 case Result.PASS: return "PASS"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
33 case Result.XPASS: return "XPASS"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
34 case Result.FAIL: return "FAIL"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
35 case Result.XFAIL: return "XFAIL"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
36 case Result.ERROR: return "ERROR"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
37 case Result.UNTESTED: return "UNTESTED"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
38 default: |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
39 break; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
40 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
41 throw new Exception(format("unhandled Result value %s", cast(int)r)); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
42 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
43 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
44 char[] dateString(){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
45 static char[] date; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
46 if(date is null){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
47 auto time = getUTCtime(); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
48 auto year = YearFromTime(time); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
49 auto month = MonthFromTime(time); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
50 auto day = DateFromTime(time); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
51 date = format("%d-%02d-%02d", year, month+1, day); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
52 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
53 return date; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
54 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
55 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
56 char[][] unique(char[][] a){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
57 char[][] b = a.sort; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
58 char[][] back; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
59 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
60 back ~= b[0]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
61 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
62 size_t ii=0; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
63 for(size_t i=0; i<b.length; i++){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
64 if(back[ii]!=b[i]){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
65 back~=b[i]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
66 ii++; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
67 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
68 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
69 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
70 return back; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
71 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
72 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
73 private{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
74 version(Windows){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
75 import std.c.windows.windows; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
76 extern(Windows) BOOL GetFileTime(HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
77 }else version(linux){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
78 import std.c.linux.linux; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
79 version = Unix; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
80 }else version(Unix){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
81 import std.c.unix.unix; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
82 }else{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
83 static assert(0); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
84 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
85 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
86 alias ulong FStime; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
87 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
88 FStime getFStime(char[] fileName){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
89 version(Windows){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
90 HANDLE h; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
91 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
92 if (useWfuncs){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
93 wchar* namez = std.utf.toUTF16z(fileName); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
94 h = CreateFileW(namez,GENERIC_WRITE,0,null,OPEN_ALWAYS, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
95 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,cast(HANDLE)null); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
96 }else{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
97 char* namez = toMBSz(fileName); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
98 h = CreateFileA(namez,GENERIC_WRITE,0,null,OPEN_ALWAYS, |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
99 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,cast(HANDLE)null); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
100 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
101 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
102 if (h == INVALID_HANDLE_VALUE) |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
103 goto err; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
104 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
105 FILETIME creationTime; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
106 FILETIME accessTime; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
107 FILETIME writeTime; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
108 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
109 BOOL b = GetFileTime(h, &creationTime, &accessTime, &writeTime); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
110 if(b==1){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
111 long modA = writeTime.dwLowDateTime; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
112 long modB = writeTime.dwHighDateTime; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
113 return modA | (modB << (writeTime.dwHighDateTime.sizeof*8)); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
114 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
115 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
116 err: |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
117 CloseHandle(h); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
118 throw new Exception("failed to query file modification : "~fileName); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
119 }else version(Unix){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
120 char* namez = toStringz(fileName); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
121 struct_stat statbuf; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
122 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
123 if(stat(namez, &statbuf)){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
124 throw new FileException(fileName, getErrno()); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
125 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
126 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
127 return statbuf.st_mtime; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
128 }else{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
129 static assert(0); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
130 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
131 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
132 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
133 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
134 char[] cleanFileName(char[] file){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
135 char[] back; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
136 bool hadSep; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
137 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
138 foreach(char c; file){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
139 if(c == '/' || c == '\\'){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
140 if(!hadSep){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
141 back ~= '/'; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
142 hadSep = true; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
143 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
144 }else{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
145 back ~= c; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
146 hadSep = false; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
147 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
148 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
149 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
150 size_t start = 0; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
151 while(back[start] <= ' ' && start < back.length){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
152 start++; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
153 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
154 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
155 size_t end = back.length-1; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
156 while(back[end] <= ' ' && end >= start){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
157 end--; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
158 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
159 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
160 back = back[start .. end+1]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
161 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
162 return back; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
163 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
164 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
165 class Test{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
166 char[] name; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
167 char[] file; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
168 Result r; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
169 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
170 this(char[] file){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
171 this.file = file; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
172 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
173 int start = rfind(file, "/"); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
174 if(start<0){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
175 start = 0; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
176 }else{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
177 start += 1; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
178 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
179 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
180 int end = rfind(file, "."); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
181 if(end < start){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
182 end = file.length; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
183 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
184 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
185 name = file[start .. end]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
186 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
187 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
188 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
189 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
190 class Log{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
191 Test[char[]] tests; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
192 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
193 char[] id; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
194 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
195 this(char[] id){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
196 this.id = id; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
197 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
198 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
199 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
200 void dropBogusResults(FStime recordTime, char[] testRoot){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
201 uint totalCount = tests.length; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
202 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
203 char[][] sourcesTests = tests.keys; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
204 foreach(char[] source; sourcesTests){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
205 if(find(source, "complex/") < 0){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
206 try{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
207 FStime caseTime = getFStime(testRoot~std.path.sep~source); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
208 if(caseTime > recordTime){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
209 debug(drop) fwritefln(stderr, "dropped: %s", source); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
210 tests.remove(source); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
211 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
212 }catch(Exception e){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
213 debug(drop) fwritefln(stderr, "dropped: %s", source); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
214 tests.remove(source); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
215 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
216 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
217 // asm-filter |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
218 int i = find(source, "asm_p"); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
219 if(i >= 0){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
220 tests.remove(source); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
221 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
222 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
223 tests.rehash; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
224 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
225 writefln("dropped %s outdated tests (%s remaining)", totalCount - tests.length, tests.length); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
226 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
227 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
228 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
229 bool add(char[] line){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
230 const char[] SUB = "Torture-Sub-"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
231 const char[] TORTURE = "Torture:"; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
232 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
233 line = strip(line); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
234 int id = -1; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
235 Result r = Result.UNTESTED; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
236 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
237 if(line.length > SUB.length && line[0 .. SUB.length] == SUB){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
238 line = line[SUB.length .. $]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
239 id = 0; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
240 while(line[id] >= '0' && line[id] <= '9'){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
241 id++; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
242 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
243 int start = id; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
244 id = std.conv.toUint(line[0 .. id]); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
245 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
246 while(line[start] != '-'){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
247 start++; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
248 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
249 line = line[start+1 .. $]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
250 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
251 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
252 char[][] token = split(line); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
253 if(token.length < 2){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
254 return false; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
255 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
256 char[] file = strip(token[1]); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
257 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
258 switch(token[0]){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
259 case "PASS:": |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
260 r = Result.PASS; break; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
261 case "FAIL:": |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
262 r = Result.FAIL; break; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
263 case "XPASS:": |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
264 r = Result.XPASS; break; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
265 case "XFAIL:": |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
266 r = Result.XFAIL; break; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
267 case "ERROR:": |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
268 r = Result.ERROR; break; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
269 default:{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
270 if(token[0] == TORTURE){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
271 throw new Exception("not yet handled: "~line); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
272 }else if(id > -1){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
273 throw new Exception(format("bug in SUB line: (%s) %s", id, line)); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
274 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
275 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
276 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
277 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
278 if(r != Result.UNTESTED){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
279 if(std.string.find(line, "bad error message") > -1){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
280 r |= Result.BAD_MSG; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
281 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
282 if(std.string.find(line, "bad debugger message") > -1){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
283 r |= Result.BAD_MSG; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
284 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
285 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
286 file = cleanFileName(file); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
287 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
288 if(id >= 0){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
289 // update sub |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
290 id--; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
291 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
292 Test* test = file in tests; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
293 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
294 if(test is null){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
295 Test t = new Test(file); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
296 tests[file] = t; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
297 t.r = r; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
298 }else{ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
299 if(test.r != Result.UNTESTED){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
300 test.r = Result.UNTESTED; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
301 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
302 test.r = r; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
303 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
304 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
305 return true; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
306 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
307 return false; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
308 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
309 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
310 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
311 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
312 int main(char[][] args){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
313 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
314 if(args.length < 2){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
315 fwritefln(stderr, "%s <old log> <new log>", args[0]); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
316 return 1; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
317 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
318 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
319 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
320 Log[] logs; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
321 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
322 foreach(size_t id, char[] file; args[1 .. $]){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
323 writefln("parsing: %s", file); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
324 FStime logTime = getFStime(file); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
325 debug fwritefln(stderr, "sourceTime: %s", logTime); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
326 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
327 Log l= new Log(file); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
328 Stream source = new BufferedFile(file, FileMode.In); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
329 while(!source.eof()){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
330 l.add(source.readLine()); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
331 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
332 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
333 l.dropBogusResults(logTime, "dstress"); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
334 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
335 logs ~= l; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
336 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
337 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
338 Log oldLog = logs[0]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
339 Log newLog = logs[1]; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
340 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
341 foreach(Test t; newLog.tests.values){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
342 Test* oldT = t.file in oldLog.tests; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
343 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
344 if(oldT !is null){ |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
345 if(oldT.r == t.r) |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
346 continue; |
552
648409a7fb0c
Fix findregressions and makewebstatistics to adhere to our definition of
Christian Kamm <kamm incasoftware de>
parents:
186
diff
changeset
|
347 else if(t.r >= Result.XPASS && oldT.r && oldT.r <= Result.XFAIL){ |
186
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
348 writef("Regression "); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
349 } |
552
648409a7fb0c
Fix findregressions and makewebstatistics to adhere to our definition of
Christian Kamm <kamm incasoftware de>
parents:
186
diff
changeset
|
350 else if(t.r && t.r <= Result.XFAIL && oldT.r >= Result.XPASS){ |
186
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
351 writef("Improvement "); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
352 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
353 else { |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
354 writef("Change "); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
355 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
356 writefln(toString(oldT.r), " -> ", toString(t.r), " : ", t.name, " in ", t.file); |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
357 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
358 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
359 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
360 |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
361 return 0; |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
362 } |
395223f9875e
[svn r202] added start of dstress-based test suite to tests/
ChristianK
parents:
diff
changeset
|
363 |