genode/repos/base/run/migrate.run
2025-02-24 16:39:20 +01:00

60 lines
1.6 KiB
Plaintext

build { core init lib/ld test/migrate timer }
assert {[have_include power_on/qemu]}
assert {[have_spec nova] || [have_spec foc] || [have_spec sel4]}
if {[have_spec foc]} {
assert {![have_board pbxa9] && ![have_board rpi3]} \
"foc kernel does detect solely 1 CPU"
}
create_boot_directory
append config {
<config prio_levels="2">
<parent-provides>
<service name="LOG"/>
<service name="CPU"/>
<service name="ROM"/>
<service name="PD"/>
<service name="IO_PORT"/> <!-- on some kernels for timer -->
<service name="IRQ"/> <!-- on some kernels for timer -->
<service name="TRACE"/> <!-- used by migration test -->
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<start name="timer" caps="100" ram="1M">
<provides><service name="Timer"/></provides>
</start>
<start name="test-migrate" caps="100" ram="10M">
<config />
<route>
<service name="TRACE"> <parent label=""/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
</config>
}
install_config $config
build_boot_image [build_artifacts]
append qemu_args "-nographic "
append qemu_args "-smp 4,cores=4,threads=1"
run_genode_until {.*test completed successfully.*\n} 70
grep_output {^\[init -> test-migrate\] \[ep\] thread 'migrate' migrated, .*}
compare_output_to {
[init -> test-migrate] [ep] thread 'migrate' migrated, location=1x0
[init -> test-migrate] [ep] thread 'migrate' migrated, location=2x0
[init -> test-migrate] [ep] thread 'migrate' migrated, location=3x0
[init -> test-migrate] [ep] thread 'migrate' migrated, location=0x0
}