genode/repos/os/run/nic_stress.inc

168 lines
3.9 KiB
PHP

append build_components {
core init timer
server/nic_router
test/nic_stress
}
append_if [string equal $type "nic_bridge"] build_components { server/nic_bridge }
proc exit_support {} {
if {[have_spec fiasco]} {
return "no"
}
return "yes"
}
proc done_string {} {
set done_string ""
if {[have_spec fiasco]} {
append done_string {.*?finished NIC stress test}
append done_string {.*?\n}
append done_string {.*?finished NIC stress test}
append done_string {.*?\n}
} else {
append done_string {.*?"nic_stress_." exited with exit value 0}
append done_string {.*?\n}
append done_string {.*?"nic_stress_." exited with exit value 0}
append done_string {.*?\n}
}
return $done_string
}
proc nr_of_rounds { test_id } {
if {[have_spec sel4]} {
switch $test_id {
1 { return 19 }
2 { return 12 }
}
} else {
switch $test_id {
1 { return 22 }
2 { return 16 }
}
}
return 0
}
proc nr_of_sessions { test_id } {
switch $test_id {
1 { return 11 }
2 { return 17 }
}
return 0
}
build $build_components
create_boot_directory
append config {
<config>
<parent-provides>
<service name="ROM"/>
<service name="IRQ"/>
<service name="IO_MEM"/>
<service name="IO_PORT"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<default caps="100"/>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>}
append_if [string equal $type "nic_router"] config {
<start name="nic_router" caps="1000">
<resource name="RAM" quantum="10M"/>
<provides><service name="Nic"/></provides>
<config>
<policy label_prefix="nic_stress_2" domain="default"/>
<policy label_prefix="nic_stress_1" domain="default"/>
<domain name="default" interface="10.0.2.55/24"/>
</config>
</start>
<alias name="nic_server" child="nic_router"/>}
append_if [string equal $type "nic_bridge"] config {
<start name="nic_router" caps="1000">
<resource name="RAM" quantum="10M"/>
<provides><service name="Nic"/></provides>
<config>
<policy label_prefix="nic_bridge" domain="default"/>
<domain name="default" interface="10.0.2.55/24"/>
</config>
</start>
<start name="nic_bridge" caps="1000">
<resource name="RAM" quantum="50M"/>
<provides><service name="Nic"/></provides>
<config mac="02:02:02:02:42:00">
<policy label_prefix="nic_stress_2"/>
<policy label_prefix="nic_stress_1"/>
</config>
<route>
<service name="Nic"> <child name="nic_router"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<alias name="nic_server" child="nic_bridge"/>}
append config {
<start name="nic_stress_1" caps="1000">
<binary name="test-nic_stress"/>
<resource name="RAM" quantum="50M"/>
<config exit_support="} [exit_support] {">
<construct_destruct nr_of_rounds="} [nr_of_rounds 1] {"
nr_of_sessions="} [nr_of_sessions 1] {"/>
</config>
<route>
<service name="Nic"> <child name="nic_server"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="nic_stress_2" caps="1000">
<binary name="test-nic_stress"/>
<resource name="RAM" quantum="100M"/>
<config exit_support="} [exit_support] {">
<construct_destruct nr_of_rounds="} [nr_of_rounds 2] {"
nr_of_sessions="} [nr_of_rounds 2] {"/>
</config>
<route>
<service name="Nic"> <child name="nic_server"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
</config>}
install_config $config
append boot_modules {
core init timer
nic_router
test-nic_stress
ld.lib.so
}
append_if [string equal $type "nic_bridge"] boot_modules { nic_bridge }
build_boot_image $boot_modules
append qemu_args " -nographic "
run_genode_until [done_string] 300