mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 05:37:54 +00:00
b587134a8d
Several nightly network-related tests fail currently on sel4/pc because the new e1000 NIC driver requires more capabilities. The "drivers nic" package was already adapted to the new requirement but some tests fail to provide enough caps to the corresponding sub system. This commit tries to fix all remaining tests. Ref #4923
160 lines
4.3 KiB
PHP
160 lines
4.3 KiB
PHP
#
|
|
# \brief Test of fetchurl
|
|
# \author Emery Hemingway
|
|
# \date 2016-06-05
|
|
#
|
|
|
|
if {[have_board rpi3] || [have_board imx53_qsb_tz]} {
|
|
puts "Run script does not support this platform."
|
|
exit 0
|
|
}
|
|
|
|
if {[get_cmd_switch --autopilot] && ([have_board linux] ||
|
|
[have_board virt_qemu_riscv])} {
|
|
puts "Autopilot mode is not supported on this platform."
|
|
exit 0
|
|
}
|
|
|
|
#
|
|
# This run script works on Linux with NAT setup from tap0 to uplink
|
|
# device uplink0 like follows.
|
|
#
|
|
# iptables -t nat -A POSTROUTING -o uplink0 -j MASQUERADE
|
|
# iptables -A FORWARD -i tap0 -o uplink0 -j ACCEPT
|
|
# iptables -A FORWARD -i uplink0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
|
# echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
#
|
|
|
|
proc socket_fs_plugin { } {
|
|
set result "<[ip_stack]"
|
|
|
|
if {[have_board linux]} {
|
|
append result { ip_addr="10.0.2.55" netmask="255.255.255.0"}
|
|
append result { gateway="10.0.2.1" nameserver="1.1.1.1"}
|
|
} else {
|
|
append result { dhcp="yes"}
|
|
}
|
|
|
|
append result {/>}
|
|
return $result
|
|
}
|
|
|
|
create_boot_directory
|
|
|
|
import_from_depot [depot_user]/src/[base_src] \
|
|
[depot_user]/pkg/[drivers_nic_pkg] \
|
|
[depot_user]/src/curl \
|
|
[depot_user]/src/fetchurl \
|
|
[depot_user]/src/init \
|
|
[depot_user]/src/libc \
|
|
[depot_user]/src/nic_router \
|
|
[depot_user]/src/libssh \
|
|
[depot_user]/src/openssl \
|
|
[depot_user]/src/report_rom \
|
|
[depot_user]/src/vfs \
|
|
[depot_user]/src/vfs_[ip_stack] \
|
|
[depot_user]/src/zlib
|
|
|
|
install_config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="CPU"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="IRQ"/>
|
|
<service name="LOG"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="ROM"/>
|
|
</parent-provides>
|
|
<default caps="100"/>
|
|
<default-route>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Timer"/> </provides>
|
|
</start>
|
|
|
|
<start name="drivers" caps="1200" managing_system="yes">
|
|
<resource name="RAM" quantum="32M"/>
|
|
<binary name="init"/>
|
|
<route>
|
|
<service name="Uplink"> <child name="nic_router"/> </service>
|
|
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
|
<service name="Timer"> <child name="timer"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="nic_router" caps="200">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides>
|
|
<service name="Nic"/>
|
|
<service name="Uplink"/>
|
|
</provides>
|
|
<config verbose_domain_state="yes">
|
|
|
|
<policy label_prefix="fetchurl" domain="downlink"/>
|
|
<policy label_prefix="drivers" domain="uplink"/>
|
|
|
|
<domain name="uplink">
|
|
|
|
<nat domain="downlink"
|
|
tcp-ports="16384"
|
|
udp-ports="16384"
|
|
icmp-ids="16384"/>
|
|
|
|
</domain>
|
|
|
|
<domain name="downlink" interface="10.0.3.1/24">
|
|
|
|
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2" dns_config_from="uplink"/>
|
|
|
|
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
|
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
|
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
|
|
|
</domain>
|
|
|
|
</config>
|
|
</start>
|
|
|
|
<start name="report_rom">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="ROM"/> <service name="Report"/> </provides>
|
|
<config verbose="yes"/>
|
|
</start>
|
|
|
|
<start name="fetchurl" caps="500">
|
|
<resource name="RAM" quantum="32M"/>
|
|
<config>
|
|
<report progress="yes"/>
|
|
<vfs>
|
|
<dir name="dev">
|
|
<log/> <null/> <inline name="rtc">2000-01-01 00:00</inline>
|
|
<inline name="random">01234567890123456789</inline>
|
|
</dir>
|
|
<dir name="socket"> } [socket_fs_plugin] { </dir>
|
|
</vfs>
|
|
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"
|
|
rng="/dev/random" socket="/socket"/>
|
|
<fetch url="https://genode.org/about/LICENSE" path="/dev/log" retry="3"/>
|
|
</config>
|
|
</start>
|
|
</config>
|
|
}
|
|
|
|
#build { }
|
|
build_boot_image { }
|
|
|
|
append qemu_args " -nographic "
|
|
append_qemu_nic_args
|
|
|
|
## Uncomment to dump network traffic to file
|
|
# append qemu_args " -object filter-dump,id=net0,netdev=net0,file=[run_dir].pcap"
|
|
|
|
run_genode_until {child "fetchurl" exited with exit value 0} 120
|