diff --git a/repos/libports/run/nic_dump.run b/repos/libports/run/nic_dump.run
index 8f3fd1e0bb..d0dadbb914 100644
--- a/repos/libports/run/nic_dump.run
+++ b/repos/libports/run/nic_dump.run
@@ -5,126 +5,14 @@
proc enable_test_1 { } { return 1 }
proc enable_test_2 { } { return 1 }
-source ${genode_dir}/repos/base/run/platform_drv.inc
+source ${genode_dir}/repos/libports/run/nic_router.inc
-proc nic_drv { } {
- if {[nic_drv_binary] == "usb_drv"} { return usb_drv }
- if {[nic_drv_binary] == ""} { return "" }
- return nic_drv
-}
+lappend targets server/nic_dump
-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 }
- if {[have_spec gpio]} { return gpio_drv }
-}
-
-if {[nic_drv] == ""} {
- puts "\n Run script is not supported on this platform. \n"; exit 0 }
-
-proc nic_drv_build { } {
- if {[nic_drv] == "nic_drv"} { return drivers/nic }
- if {[nic_drv] == "usb_drv"} { return drivers/usb }
-}
-
-proc gpio_drv_build { } { if {[gpio_drv] != ""} { return drivers/gpio } }
-
-build "core init drivers/timer server/nic_router server/nic_bridge
- test/lwip/http_srv_static test/lwip/http_clnt test/lxip/udp_echo
- test/lxip/udp_client server/nic_dump [nic_drv_build] [gpio_drv_build]
- [platform_drv_build_components]"
+build $targets
create_boot_directory
-#
-# Generate config
-#
-
-proc gpio_drv_config { } {
- if {[have_spec gpio]} {
- append result {
-
-
-
- }
- return $result
- }
-}
-
-proc nic_drv_config { } {
- if {[nic_drv] == "nic_drv"} {
- append result {
-
-
-
-
- }
- return $result
- }
- if {[nic_drv] == "usb_drv"} {
- append result {
-
-
-
-
-
-
-
-
- }
- return $result
- }
-}
-
-proc client_bin { prot } {
- if {$prot == "udp"} { return "test-lxip_udp_client" }
- if {$prot == "http"} { return "test-http_clnt" } }
-
-proc server_bin { prot } {
- if {$prot == "udp"} { return "test-lxip_udp_echo" }
- if {$prot == "http"} { return "test-lwip_httpsrv_static" } }
-
-proc ram_quota { prot } {
- if {$prot == "udp"} { return 29M }
- if {$prot == "http"} { return 12M }
-}
-
-proc client_config { prot index ip_addr gateway netmask nic srv_port srv_ip } {
- append result {
-
-
-
-
-
-
-
-
-
-
-
- }
- return $result
-}
-
-proc server_config { prot index ip_addr gateway netmask nic port } {
- append result {
-
-
-
-
-
-
-
-
-
-
-
- }
- return $result
-}
-
proc test_1_config { } {
if {[enable_test_1]} { return "
[client_config udp 2 10.0.2.212 10.0.2.1 255.255.255.0 nic_bridge 1 10.0.2.55]
@@ -138,7 +26,7 @@ proc test_2_config { } {
}
append config {
-
+
@@ -160,12 +48,12 @@ append config {
} [nic_drv_config] {
} [platform_drv_config] {
-
+
-
+
@@ -175,7 +63,7 @@ append config {
-
+
@@ -222,7 +110,7 @@ append config {
-
+
@@ -246,21 +134,8 @@ append config {
install_config $config
-#
-# Create single image and execute
-#
+lappend boot_modules nic_dump
-
-build_boot_image "
- core init timer nic_router nic_bridge ld.lib.so libc.lib.so libm.lib.so
- posix.lib.so lwip.lib.so lxip.lib.so test-http_clnt
- test-lwip_httpsrv_static nic_dump test-lxip_udp_echo test-lxip_udp_client
- [nic_drv_binary] [gpio_drv] [platform_drv_boot_modules]"
-
-proc nic_qemu_args { } {
- if {[have_spec x86]} { return "-net nic,model=e1000" }
- if {[have_spec lan9118]} { return "-net nic,model=lan9118" } }
-
-append qemu_args "-nographic -net user [nic_qemu_args]"
+build_boot_image $boot_modules
run_genode_until {.*Test done.*\n.*Test done.*\n} 120
diff --git a/repos/libports/run/nic_router.inc b/repos/libports/run/nic_router.inc
new file mode 100644
index 0000000000..445610ed9e
--- /dev/null
+++ b/repos/libports/run/nic_router.inc
@@ -0,0 +1,120 @@
+
+source ${genode_dir}/repos/base/run/platform_drv.inc
+
+proc nic_drv { } {
+ if {[nic_drv_binary] == "usb_drv"} { return usb_drv }
+ if {[nic_drv_binary] == ""} { return "" }
+ return nic_drv
+}
+
+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 }
+ if {[have_spec gpio]} { return gpio_drv }
+}
+
+if {[nic_drv] == ""} {
+ puts "\n Run script is not supported on this platform. \n"; exit 0 }
+
+proc nic_drv_build { } {
+ if {[nic_drv] == "nic_drv"} { return drivers/nic }
+ if {[nic_drv] == "usb_drv"} { return drivers/usb }
+}
+
+proc gpio_drv_build { } { if {[gpio_drv] != ""} { return drivers/gpio } }
+
+set targets "core init drivers/timer server/nic_router server/nic_bridge
+ test/lwip/http_srv_static test/lwip/http_clnt test/lwip/udp
+ [nic_drv_build] [gpio_drv_build] [platform_drv_build_components]"
+
+proc gpio_drv_config { } {
+ if {[have_spec gpio]} {
+ append result {
+
+
+
+ }
+ return $result
+ }
+}
+
+proc nic_drv_config { } {
+ if {[nic_drv] == "nic_drv"} {
+ append result {
+
+
+
+
+ }
+ return $result
+ }
+ if {[nic_drv] == "usb_drv"} {
+ append result {
+
+
+
+
+
+
+
+
+ }
+ return $result
+ }
+}
+
+proc client_bin { prot } {
+ if {$prot == "udp"} { return "test-lwip-udp-client" }
+ if {$prot == "http"} { return "test-http_clnt" } }
+
+proc server_bin { prot } {
+ if {$prot == "udp"} { return "test-lwip-udp-server" }
+ if {$prot == "http"} { return "test-lwip_httpsrv_static" } }
+
+proc client_config { prot index ip_addr gateway netmask nic srv_port srv_ip } {
+ append result {
+
+
+
+
+
+
+
+
+
+
+
+ }
+ return $result
+}
+
+proc server_config { prot index ip_addr gateway netmask nic port } {
+ append result {
+
+
+
+
+
+
+
+
+
+
+
+ }
+ return $result
+}
+
+set boot_modules "
+ core init timer nic_router nic_bridge ld.lib.so libc.lib.so libm.lib.so
+ lwip.lib.so posix.lib.so [client_bin udp] [server_bin udp]
+ [client_bin http] [server_bin http] [nic_drv_binary] [gpio_drv]
+ [platform_drv_boot_modules]"
+
+proc nic_qemu_args { } {
+ if {[have_spec x86]} { return "-net nic,model=e1000" }
+ if {[have_spec lan9118]} { return "-net nic,model=lan9118" } }
+
+append qemu_args "-nographic -net user [nic_qemu_args]"
diff --git a/repos/libports/run/nic_router.run b/repos/libports/run/nic_router.run
index 97a4783a44..ff0d04e260 100644
--- a/repos/libports/run/nic_router.run
+++ b/repos/libports/run/nic_router.run
@@ -9,120 +9,12 @@ proc enable_test_4 { } { return 1 }
proc enable_test_5 { } { return 1 }
proc enable_test_6 { } { return 1 }
-source ${genode_dir}/repos/base/run/platform_drv.inc
+source ${genode_dir}/repos/libports/run/nic_router.inc
-proc nic_drv { } {
- if {[nic_drv_binary] == "usb_drv"} { return usb_drv }
- if {[nic_drv_binary] == ""} { return "" }
- return nic_drv
-}
-
-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 }
- if {[have_spec gpio]} { return gpio_drv }
-}
-
-if {[nic_drv] == ""} {
- puts "\n Run script is not supported on this platform. \n"; exit 0 }
-
-proc nic_drv_build { } {
- if {[nic_drv] == "nic_drv"} { return drivers/nic }
- if {[nic_drv] == "usb_drv"} { return drivers/usb }
-}
-
-proc gpio_drv_build { } { if {[gpio_drv] != ""} { return drivers/gpio } }
-
-build "core init drivers/timer server/nic_router server/nic_bridge
- test/lwip/http_srv_static test/lwip/http_clnt test/lwip/udp
- [nic_drv_build] [gpio_drv_build] [platform_drv_build_components]"
+build $targets
create_boot_directory
-#
-# Generate config
-#
-
-proc gpio_drv_config { } {
- if {[have_spec gpio]} {
- append result {
-
-
-
- }
- return $result
- }
-}
-
-proc nic_drv_config { } {
- if {[nic_drv] == "nic_drv"} {
- append result {
-
-
-
-
- }
- return $result
- }
- if {[nic_drv] == "usb_drv"} {
- append result {
-
-
-
-
-
-
-
-
- }
- return $result
- }
-}
-
-proc client_bin { prot } {
- if {$prot == "udp"} { return "test-lwip-udp-client" }
- if {$prot == "http"} { return "test-http_clnt" } }
-
-proc server_bin { prot } {
- if {$prot == "udp"} { return "test-lwip-udp-server" }
- if {$prot == "http"} { return "test-lwip_httpsrv_static" } }
-
-proc client_config { prot index ip_addr gateway netmask nic srv_port srv_ip } {
- append result {
-
-
-
-
-
-
-
-
-
-
-
- }
- return $result
-}
-
-proc server_config { prot index ip_addr gateway netmask nic port } {
- append result {
-
-
-
-
-
-
-
-
-
-
-
- }
- return $result
-}
-
proc test_1_config { } {
if {[enable_test_1]} { return "
[client_config udp 1 10.0.98.55 10.0.98.33 255.255.255.0 nic_router 1337 10.0.98.33]
@@ -263,21 +155,6 @@ append config {
install_config $config
-#
-# Create single image and execute
-#
-
-
-build_boot_image "
- core init timer nic_router nic_bridge ld.lib.so libc.lib.so libm.lib.so
- lwip.lib.so posix.lib.so test-http_clnt test-lwip_httpsrv_static
- test-lwip-udp-client test-lwip-udp-server [nic_drv_binary] [gpio_drv]
- [platform_drv_boot_modules]"
-
-proc nic_qemu_args { } {
- if {[have_spec x86]} { return "-net nic,model=e1000" }
- if {[have_spec lan9118]} { return "-net nic,model=lan9118" } }
-
-append qemu_args "-nographic -net user [nic_qemu_args]"
+build_boot_image $boot_modules
run_genode_until {.*Test done.*\n.*Test done.*\n.*Test done.*\n.*Test done.*\n.*Test done.*\n.*Test done.*\n} 120