diff --git a/repos/os/run/ping.run b/repos/os/run/ping.run index 5e736b03b8..3b03c799d7 100644 --- a/repos/os/run/ping.run +++ b/repos/os/run/ping.run @@ -2,19 +2,32 @@ # Build # -if {![have_include power_on/qemu]} { - puts "Run script is only supported on Qemu" - exit 0 -} +set on_hardware [expr ![have_include power_on/qemu]] set build_components { core init drivers/timer drivers/nic + server/nic_bridge app/ping } +proc gpio_drv { } { if {[have_spec rpi] && [have_spec hw]} { return hw_gpio_drv } + if {[have_spec rpi] && [have_spec foc]} { return foc_gpio_drv } + return gpio_drv } + + +lappend_if [have_spec gpio] build_components drivers/gpio + +proc dst_ip { } { + if {![have_include power_on/qemu]} { + return "10.0.0.2" + } else { + return "10.0.2.2" + } +} + source ${genode_dir}/repos/base/run/platform_drv.inc append_platform_drv_build_components @@ -45,24 +58,65 @@ append config { append_platform_drv_config +append_if [have_spec gpio] config " + + + + + " + append config { + - + + } [nic_drv_config] { - + + + + + + + + + + + + + } + +append_if $on_hardware config { + + - + + + + + } + +append config { + + + + - + @@ -81,10 +135,12 @@ append boot_modules { } [nic_drv_binary] { ping ld.lib.so + nic_bridge } # platform-specific modules lappend_if [have_spec linux] boot_modules fb_sdl +lappend_if [have_spec gpio] boot_modules [gpio_drv] append_platform_drv_boot_modules @@ -95,4 +151,8 @@ append_if [have_spec lan9118] qemu_args " -net nic,model=lan9118 " append qemu_args " -net user -nographic " -run_genode_until ".*\"ping\" exited with exit value 0.*\n" 25 +set done_string ".*\"ping_1\" exited with exit value 0.*\n" + +append_if $on_hardware done_string ".*ping_2\] From [dst_ip] Destination Unreachable.*\n" + +run_genode_until $done_string 30 diff --git a/repos/os/run/ping_nic_router.run b/repos/os/run/ping_nic_router.run index a40a1067df..65db421334 100644 --- a/repos/os/run/ping_nic_router.run +++ b/repos/os/run/ping_nic_router.run @@ -2,10 +2,7 @@ # Build # -if {![have_include power_on/qemu]} { - puts "Run script is only supported on Qemu" - exit 0 -} +set on_hardware [expr ![have_include power_on/qemu]] set build_components { core @@ -16,6 +13,24 @@ set build_components { app/ping } +proc gpio_drv { } { if {[have_spec rpi] && [have_spec hw]} { return hw_gpio_drv } + if {[have_spec rpi] && [have_spec foc]} { return foc_gpio_drv } + return gpio_drv } + + +lappend_if [have_spec gpio] build_components drivers/gpio + +proc good_dst_ip { } { + if {![have_include power_on/qemu]} { + return "10.0.0.2" + } else { + return "10.0.2.2" + } +} +proc bad_dst_port { } { return "12345" } +proc bad_dst_ip { } { return "10.0.1.2" } + + source ${genode_dir}/repos/base/run/platform_drv.inc append_platform_drv_build_components @@ -46,6 +61,13 @@ append config { append_platform_drv_config +append_if [have_spec gpio] config " + + + + + " + append config { @@ -54,8 +76,9 @@ append config { - + + } [nic_drv_config] { @@ -63,23 +86,26 @@ append config { + dhcp_discover_timeout_sec="1" + icmp_idle_timeout_sec="6"> - - - + + + - + + + + - + @@ -95,18 +121,23 @@ append config { + icmp_idle_timeout_sec="10"> - + - - + + + + + + + @@ -121,7 +152,7 @@ append config { @@ -135,7 +166,7 @@ append config { @@ -149,7 +180,7 @@ append config { @@ -163,14 +194,32 @@ append config { - + } + +append_if $on_hardware config { + + + + + + + + + } + +append config { } install_config $config @@ -191,6 +240,7 @@ append boot_modules { # platform-specific modules lappend_if [have_spec linux] boot_modules fb_sdl +lappend_if [have_spec gpio] boot_modules [gpio_drv] append_platform_drv_boot_modules @@ -205,6 +255,8 @@ set done_string "" for {set i 0} {$i < 3} {incr i 1} { append done_string ".*child \"ping...\" exited with exit value 0.*\n" } -append done_string ".*From 10.0.4.1 icmp_seq=.* Destination Unreachable.*\n" +append done_string ".*ping_22\] From 10.0.4.1 icmp_seq=.* Destination Unreachable.*\n" -run_genode_until $done_string 25 +append_if $on_hardware done_string ".*ping_23\] From [good_dst_ip] Destination Unreachable.*\n" + +run_genode_until $done_string 20