11#!/usr/bin/env python2
22
33import re
4+ import sys
45import json
56import subprocess
67
@@ -10,7 +11,7 @@ def parse_test(raw):
1011 raw = re .compile ('#.*$' , re .M ).sub ('' , raw ).strip ()
1112 if raw .startswith ('"""' ):
1213 raw = raw [3 :]
13-
14+
1415 for fixture in raw .split ('r"""' ):
1516 name = ''
1617 doc , _ , body = fixture .partition ('"""' )
@@ -20,7 +21,7 @@ def parse_test(raw):
2021 expect = json .loads (expect )
2122 prog , _ , argv = argv .strip ().partition (' ' )
2223 cases .append ((prog , argv , expect ))
23-
24+
2425 yield name , doc , cases
2526
2627failures = 0
@@ -29,10 +30,10 @@ def parse_test(raw):
2930tests = open ('${TESTCASES}' ,'r' ).read ()
3031for _ , doc , cases in parse_test (tests ):
3132 if not cases : continue
32-
33+
3334 for prog , argv , expect in cases :
3435 args = [ x for x in argv .split () if x ]
35-
36+
3637 expect_error = not isinstance (expect , dict )
3738
3839 error = None
@@ -66,6 +67,6 @@ def parse_test(raw):
6667
6768if failures :
6869 print "%d failures" % failures
70+ sys .exit (1 )
6971else :
7072 print "PASS (%d)" % passes
71-
0 commit comments