# # Build # # # Do not high precision time on ARM with kernels other than HW and on QEMU # # On ARM, we do not have a component-local hardware time-source. The ARM # performance counter has no reliable frequency as the ARM idle command # halts the counter. Thus, we do not do local time interpolation on ARM. # Except we're on the HW kernel. In this case we can read out the kernel # time instead. On QEMU, the time emulation is not precise enough. # proc high_precision_time { } { if {[get_cmd_switch --autopilot] && [have_include "power_on/qemu"]} { return false } if {[expr [have_spec arm] && ![have_spec hw]]} { return false } return true } build "core init drivers/platform drivers/timer test/timeout test/cpufreq" # # Boot image # create_boot_directory append config { } install_config $config build_boot_image "core ld.lib.so init timer test-timeout" # # Execution # append qemu_args "-nographic " run_genode_until "child \"test\" exited with exit value.*\n" 900 grep_output {\[init\] child "test" exited with exit value} compare_output_to {[init] child "test" exited with exit value 0}