#!/usr/bin/env python3 import os import sys import common class Main(common.TestCliFunction): def __init__(self): super().__init__( description='''\ https://github.com/cirosantilli/linux-kernel-module-cheat#user-mode-tests ''' , ) self.add_argument( 'tests', nargs='*', help='''\ If given, run only the given tests. Otherwise, run all tests. ''' ) def timed_main(self): run = self.import_path_main('run') run_args = self.get_common_args() run_args['ctrl_c_host'] = True if self.env['emulator'] == 'gem5': run_args['userland_build_id'] = 'static' if self.env['tests'] == []: sources = [ 'add.c', 'hello.c', 'hello_cpp.cpp', 'print_argv.c', ] 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 ] sources.extend(arch_sources) else: sources = self.env['tests'] for source in sources: run_args['userland'] = source self.run_test(run, run_args, source) if __name__ == '__main__': Main().cli()