12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/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()
|