Files
linux-kernel-module-cheat/gem5-regression
Ciro Santilli 六四事件 法轮功 0fdd354551 gem5: gem-regression downloads test binaries to a fixed location outside of source tree with the newly added --bin-path option
Otherwise each --gem5-worktree would download its own copy of the test
binaries into its own source tree.
2020-02-23 00:00:02 +00:00

58 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python3
from shell_helpers import LF
import os
import pathlib
import subprocess
import common
from shell_helpers import LF
class Main(common.LkmcCliFunction):
def __init__(self):
super().__init__(
description='''\
Run gem5 regression tests.
https://cirosantilli.com/linux-kernel-module-cheat#gem5-regression-tests
'''
)
self.add_argument(
'--cmd',
default='run',
help='''
List tests instead of running them.
''',
)
self.add_argument(
'extra_args',
metavar='extra-args',
nargs='*',
)
def timed_main(self):
if self.env['cmd'] == 'run':
extra_args = [
'--base-dir', self.env['gem5_source_dir'], LF,
'--bin-path', self.env['gem5_test_binaries_dir'], LF,
'--build-dir', self.env['gem5_build_build_dir'], LF,
'-j', str(self.env['nproc']), LF,
'-t', str(self.env['nproc']), LF,
]
else:
extra_args = []
return self.sh.run_cmd(
[
os.path.join(self.env['gem5_source_dir'], 'tests', 'main.py'), LF,
self.env['cmd'], LF,
'--isa', self.env['gem5_arch'], LF,
'--variant', self.env['gem5_build_type'], LF,
] +
extra_args +
self.sh.add_newlines(self.env['extra_args']),
cwd=os.path.join(self.env['gem5_source_dir'], 'tests'),
raise_on_failure=False,
)
if __name__ == '__main__':
Main().cli()