mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 13:36:09 +00:00

This is the first commit in a series that will reformat all the python files in the LLVM repository. Reformatting is done with `black`. See more information here: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Reviewed By: jhenderson, JDevlieghere, MatzeB Differential Revision: https://reviews.llvm.org/D150545
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import subprocess
|
|
import traceback
|
|
import json
|
|
|
|
data = json.load(sys.stdin)
|
|
testfile = sys.argv[1]
|
|
|
|
prefix = "CHECK: "
|
|
|
|
fails = 0
|
|
passes = 0
|
|
with open(testfile) as testfh:
|
|
lineno = 0
|
|
for line in iter(testfh.readline, ""):
|
|
lineno += 1
|
|
line = line.rstrip("\r\n")
|
|
try:
|
|
prefix_pos = line.index(prefix)
|
|
except ValueError:
|
|
continue
|
|
check_expr = line[prefix_pos + len(prefix) :]
|
|
|
|
try:
|
|
exception = None
|
|
result = eval(check_expr, {"data": data})
|
|
except Exception:
|
|
result = False
|
|
exception = traceback.format_exc().splitlines()[-1]
|
|
|
|
if exception is not None:
|
|
sys.stderr.write(
|
|
"{file}:{line:d}: check threw exception: {expr}\n"
|
|
"{file}:{line:d}: exception was: {exception}\n".format(
|
|
file=testfile, line=lineno, expr=check_expr, exception=exception
|
|
)
|
|
)
|
|
fails += 1
|
|
elif not result:
|
|
sys.stderr.write(
|
|
"{file}:{line:d}: check returned False: {expr}\n".format(
|
|
file=testfile, line=lineno, expr=check_expr
|
|
)
|
|
)
|
|
fails += 1
|
|
else:
|
|
passes += 1
|
|
|
|
if fails != 0:
|
|
sys.exit("{} checks failed".format(fails))
|
|
else:
|
|
sys.stdout.write("{} checks passed\n".format(passes))
|