This commit is contained in:
Waylon Walker 2022-03-31 20:20:07 -05:00
commit 38355d2442
No known key found for this signature in database
GPG key ID: 66E2BF2B4190EFE4
9083 changed files with 1225834 additions and 0 deletions

View file

@ -0,0 +1,43 @@
"""Default driver for run tests (run-*.test).
This imports the 'native' module (containing the compiled test cases)
and calls each function starting with test_, and reports any
exceptions as failures.
Test cases can provide a custom driver.py that overrides this file.
"""
import sys
import native
failures = []
for name in dir(native):
if name.startswith('test_'):
test_func = getattr(native, name)
try:
test_func()
except Exception as e:
failures.append(sys.exc_info())
if failures:
from traceback import print_exception, format_tb
import re
def extract_line(tb):
formatted = '\n'.join(format_tb(tb))
m = re.search('File "(native|driver).py", line ([0-9]+), in (test_|<module>)', formatted)
if m is None:
return "0"
return m.group(1)
# Sort failures by line number of test function.
failures = sorted(failures, key=lambda e: extract_line(e[2]))
# If there are multiple failures, print stack traces of all but the final failure.
for e in failures[:-1]:
print_exception(*e)
print()
# Raise exception for the last failure. Test runner will show the traceback.
raise failures[-1][1]