equal
deleted
inserted
replaced
1 #! /usr/bin/env python |
|
2 |
|
3 """Generic trace-comparison-type regression test.""" |
|
4 |
|
5 import sys |
|
6 import os |
|
7 import shutil |
|
8 |
|
9 def run_test(verbose, generate, refDirName, testName): |
|
10 """Execute a test.""" |
|
11 |
|
12 refTestDirName = refDirName + "/" + testName + ".ref" |
|
13 |
|
14 if not os.path.exists(refDirName): |
|
15 print"No reference trace repository" |
|
16 return 1 |
|
17 |
|
18 if generate: |
|
19 if not os.path.exists(refTestDirName): |
|
20 print "creating new " + refTestDirName |
|
21 os.mkdir(refTestDirName) |
|
22 |
|
23 os.system("./waf --cwd regression/" + refTestDirName + |
|
24 " --run " + testName + " > /dev/null 2>&1") |
|
25 |
|
26 print "Remember to commit " + refTestDirName |
|
27 return 0 |
|
28 else: |
|
29 if not os.path.exists(refTestDirName): |
|
30 print "Cannot locate reference traces" |
|
31 return 1 |
|
32 |
|
33 shutil.rmtree("traces"); |
|
34 os.mkdir("traces") |
|
35 |
|
36 os.system("./waf --cwd regression/traces --run " + |
|
37 testName + " > /dev/null 2>&1") |
|
38 |
|
39 if verbose: |
|
40 diffCmd = "diff traces " + refTestDirName + " | head" |
|
41 else: |
|
42 diffCmd = "diff traces " + refTestDirName + \ |
|
43 " > /dev/null 2>&1" |
|
44 |
|
45 rc = os.system(diffCmd) |
|
46 if rc: |
|
47 print "----------" |
|
48 print "Traces differ in test: test-" + testName |
|
49 print "Reference traces in directory: " + refTestDirName |
|
50 print "Traces in directory: traces" |
|
51 print "Rerun regression test as: " + \ |
|
52 "\"python regression.py test-" + testName + "\"" |
|
53 print "Then do \"diff -u traces " + refTestDirName + \ |
|
54 "\" for details" |
|
55 print "----------" |
|
56 return rc |
|
57 |
|