mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-13 20:12:26 +00:00
Otherwise each --gem5-worktree would download its own copy of the test binaries into its own source tree.
58 lines
1.6 KiB
Python
Executable File
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()
|