Make it possible to run specific tests by name
This commit is contained in:
parent
395c36863b
commit
0affc419db
@ -19,6 +19,7 @@ parser.add_argument('-i', '--include',
|
|||||||
help='add custom include directories for compile tests')
|
help='add custom include directories for compile tests')
|
||||||
parser.add_argument('-r', '--runner',
|
parser.add_argument('-r', '--runner',
|
||||||
help='path to runner executable (pawnruns)')
|
help='path to runner executable (pawnruns)')
|
||||||
|
parser.add_argument('tests', metavar='test_name', nargs='*')
|
||||||
options = parser.parse_args(sys.argv[1:])
|
options = parser.parse_args(sys.argv[1:])
|
||||||
|
|
||||||
def run_command(args, executable=None, merge_stderr=False):
|
def run_command(args, executable=None, merge_stderr=False):
|
||||||
@ -58,9 +59,6 @@ def remove_asm_comments(s):
|
|||||||
def strip(s):
|
def strip(s):
|
||||||
return s.strip(' \t\r\n')
|
return s.strip(' \t\r\n')
|
||||||
|
|
||||||
def parse_asm_listing(dump):
|
|
||||||
return None
|
|
||||||
|
|
||||||
class OutputCheckTest:
|
class OutputCheckTest:
|
||||||
def __init__(self, name, errors=None, extra_args=None):
|
def __init__(self, name, errors=None, extra_args=None):
|
||||||
self.name = name
|
self.name = name
|
||||||
@ -184,6 +182,8 @@ num_tests_disabled = 0
|
|||||||
|
|
||||||
for meta_file in glob.glob('*.meta'):
|
for meta_file in glob.glob('*.meta'):
|
||||||
name = os.path.splitext(meta_file)[0]
|
name = os.path.splitext(meta_file)[0]
|
||||||
|
if options.tests and name not in options.tests:
|
||||||
|
continue
|
||||||
metadata = eval(open(meta_file).read(), None, None)
|
metadata = eval(open(meta_file).read(), None, None)
|
||||||
if metadata.get('disabled'):
|
if metadata.get('disabled'):
|
||||||
num_tests_disabled += 1
|
num_tests_disabled += 1
|
||||||
@ -213,10 +213,11 @@ sys.stdout.write(
|
|||||||
'DISCOVERED {} TEST{}'.format(num_tests, '' if num_tests == 1 else 'S'))
|
'DISCOVERED {} TEST{}'.format(num_tests, '' if num_tests == 1 else 'S'))
|
||||||
if num_tests_disabled > 0:
|
if num_tests_disabled > 0:
|
||||||
sys.stdout.write(' ({} DISABLED)'.format(num_tests_disabled))
|
sys.stdout.write(' ({} DISABLED)'.format(num_tests_disabled))
|
||||||
|
|
||||||
|
if num_tests > 0:
|
||||||
sys.stdout.write('\n\n')
|
sys.stdout.write('\n\n')
|
||||||
|
|
||||||
num_tests_failed = 0
|
num_tests_failed = 0
|
||||||
|
|
||||||
for test in tests:
|
for test in tests:
|
||||||
sys.stdout.write('Running ' + test.name + '... ')
|
sys.stdout.write('Running ' + test.name + '... ')
|
||||||
if not test.run():
|
if not test.run():
|
||||||
@ -227,9 +228,7 @@ for test in tests:
|
|||||||
num_tests_failed += 1
|
num_tests_failed += 1
|
||||||
else:
|
else:
|
||||||
sys.stdout.write('PASSED\n')
|
sys.stdout.write('PASSED\n')
|
||||||
|
|
||||||
num_tests_passed = len(tests) - num_tests_failed
|
num_tests_passed = len(tests) - num_tests_failed
|
||||||
|
|
||||||
if num_tests_failed > 0:
|
if num_tests_failed > 0:
|
||||||
print('\n{} TEST{} PASSED, {} FAILED'.format(
|
print('\n{} TEST{} PASSED, {} FAILED'.format(
|
||||||
num_tests_passed,
|
num_tests_passed,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user