test-gdb: allow running just one test

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-01-22 00:00:00 +00:00
parent 3763a9c696
commit 34f77a498c
2 changed files with 26 additions and 11 deletions

View File

@@ -11892,7 +11892,7 @@ Sources:
* link:build-test-gdb[]
* link:test-gdb[]
If something goes wrong, re-run the test commands manually and use `--verbose` to understand what happened:
If a test fails, re-run the test commands manually and use `--verbose` to understand what happened:
....
./run --arch arm --background --baremetal add --wait-gdb &

View File

@@ -6,23 +6,38 @@ import os
import common
class Main(common.LkmcCliFunction):
def __init__(self):
super().__init__()
self.add_argument(
'tests',
metavar='tests',
nargs='*',
help='''\
If given, run only the given tests. Otherwise, run all tests,
found by searching for the Python test files.
'''
)
def timed_main(self):
run = self.import_path('run').Main()
run_gdb = self.import_path('run-gdb').Main()
for emulator in self.env['emulators']:
if self.env['arch'] in self.env['crosstool_ng_supported_archs']:
test_scripts_noext = []
for f in os.listdir(self.env['baremetal_src_dir']):
base, ext = os.path.splitext(f)
if ext == '.py':
test_scripts_noext.append(base)
for root, dirs, files in os.walk(os.path.join(self.env['baremetal_src_dir'], 'arch', self.env['arch'])):
for f in files:
if self.env['tests'] == []:
test_scripts_noext = []
for f in os.listdir(self.env['baremetal_src_dir']):
base, ext = os.path.splitext(f)
if ext == '.py':
full_path = os.path.join(root, base)
relpath = os.path.relpath(full_path, self.env['baremetal_src_dir'])
test_scripts_noext.append(relpath)
test_scripts_noext.append(base)
for root, dirs, files in os.walk(os.path.join(self.env['baremetal_src_dir'], 'arch', self.env['arch'])):
for f in files:
base, ext = os.path.splitext(f)
if ext == '.py':
full_path = os.path.join(root, base)
relpath = os.path.relpath(full_path, self.env['baremetal_src_dir'])
test_scripts_noext.append(relpath)
else:
test_scripts_noext = self.env['tests']
for test_script_noext in test_scripts_noext:
run_thread = threading.Thread(target=lambda: run(
archs=[self.env['arch']],