#!/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', ] for emulator in self.env['emulators']: if 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, emulator=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()