1
1
#!/usr/bin/env python2
2
2
3
3
import re
4
+ import sys
4
5
import json
5
6
import subprocess
6
7
@@ -10,7 +11,7 @@ def parse_test(raw):
10
11
raw = re .compile ('#.*$' , re .M ).sub ('' , raw ).strip ()
11
12
if raw .startswith ('"""' ):
12
13
raw = raw [3 :]
13
-
14
+
14
15
for fixture in raw .split ('r"""' ):
15
16
name = ''
16
17
doc , _ , body = fixture .partition ('"""' )
@@ -20,7 +21,7 @@ def parse_test(raw):
20
21
expect = json .loads (expect )
21
22
prog , _ , argv = argv .strip ().partition (' ' )
22
23
cases .append ((prog , argv , expect ))
23
-
24
+
24
25
yield name , doc , cases
25
26
26
27
failures = 0
@@ -29,10 +30,10 @@ def parse_test(raw):
29
30
tests = open ('${TESTCASES}' ,'r' ).read ()
30
31
for _ , doc , cases in parse_test (tests ):
31
32
if not cases : continue
32
-
33
+
33
34
for prog , argv , expect in cases :
34
35
args = [ x for x in argv .split () if x ]
35
-
36
+
36
37
expect_error = not isinstance (expect , dict )
37
38
38
39
error = None
@@ -66,6 +67,6 @@ def parse_test(raw):
66
67
67
68
if failures :
68
69
print "%d failures" % failures
70
+ sys .exit (1 )
69
71
else :
70
72
print "PASS (%d)" % passes
71
-
0 commit comments