mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-25 19:21:35 +01:00
Allow passing --emulator multiple times for transparent tests selection just like --arch.
52 lines
1.6 KiB
Python
Executable File
52 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import os
|
|
|
|
import common
|
|
|
|
class Main(common.LkmcCliFunction):
|
|
def timed_main(self):
|
|
run = self.import_path('run').Main()
|
|
sources = [
|
|
'add.c',
|
|
'hello.c',
|
|
'hello_cpp.cpp',
|
|
'print_argv.c',
|
|
]
|
|
if self.env['emulator'] == 'gem5':
|
|
extra_args = {
|
|
'userland_build_id': 'static',
|
|
}
|
|
else:
|
|
extra_args = {}
|
|
if self.env['arch'] == 'x86_64':
|
|
arch_sources = [
|
|
'asm_hello'
|
|
]
|
|
elif self.env['arch'] == 'aarch64':
|
|
arch_sources = [
|
|
'asm_hello'
|
|
]
|
|
else:
|
|
arch_sources = []
|
|
arch_sources[:] = [os.path.join('arch', self.env['arch'], arch_source) for arch_source in arch_sources]
|
|
for source in sources + arch_sources:
|
|
exit_status = run(
|
|
archs=[self.env['arch']],
|
|
dry_run=self.env['dry_run'],
|
|
userland=source,
|
|
emulators=[self.env['emulator']],
|
|
**extra_args,
|
|
)
|
|
# TODO forward all args attempt. In particular, --dry-run.
|
|
#new_env = self.env.copy()
|
|
#new_env['userland'] = source
|
|
#new_env['emulator'] = emulator
|
|
#new_env.update(extra_args)
|
|
#exit_status = run(**new_env)
|
|
if exit_status != 0:
|
|
raise Exception('Test failed: {} {} {} {}'.format(emulator, arch, source, exit_status))
|
|
|
|
if __name__ == '__main__':
|
|
Main().cli()
|