Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/TableGen/JSON-check.py @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 1f2b6ac9f198 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 import sys | |
4 import subprocess | |
5 import traceback | |
6 import json | |
7 | |
8 data = json.load(sys.stdin) | |
9 testfile = sys.argv[1] | |
10 | |
11 prefix = "CHECK: " | |
12 | |
13 fails = 0 | |
14 passes = 0 | |
15 with open(testfile) as testfh: | |
16 lineno = 0 | |
17 for line in iter(testfh.readline, ""): | |
18 lineno += 1 | |
19 line = line.rstrip("\r\n") | |
20 try: | |
21 prefix_pos = line.index(prefix) | |
22 except ValueError: | |
23 continue | |
24 check_expr = line[prefix_pos + len(prefix):] | |
25 | |
26 try: | |
27 exception = None | |
28 result = eval(check_expr, {"data":data}) | |
29 except Exception: | |
30 result = False | |
31 exception = traceback.format_exc().splitlines()[-1] | |
32 | |
33 if exception is not None: | |
34 sys.stderr.write( | |
35 "{file}:{line:d}: check threw exception: {expr}\n" | |
36 "{file}:{line:d}: exception was: {exception}\n".format( | |
37 file=testfile, line=lineno, | |
38 expr=check_expr, exception=exception)) | |
39 fails += 1 | |
40 elif not result: | |
41 sys.stderr.write( | |
42 "{file}:{line:d}: check returned False: {expr}\n".format( | |
43 file=testfile, line=lineno, expr=check_expr)) | |
44 fails += 1 | |
45 else: | |
46 passes += 1 | |
47 | |
48 if fails != 0: | |
49 sys.exit("{} checks failed".format(fails)) | |
50 else: | |
51 sys.stdout.write("{} checks passed\n".format(passes)) |