genode/repos/gems/run/depot_download.run
Martin Stein b587134a8d net tests: raise nic_drv/drivers cap quota
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
2023-08-21 08:12:01 +02:00

182 lines
5.2 KiB
Plaintext

create_boot_directory
if {[have_board linux] || [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 virt_qemu_riscv]} {
puts "Autopilot mode is not supported on this platform."
exit 0
}
import_from_depot [depot_user]/src/[base_src] \
[depot_user]/pkg/[drivers_nic_pkg] \
[depot_user]/src/report_rom \
[depot_user]/src/fs_rom \
[depot_user]/src/vfs \
[depot_user]/src/vfs_lxip \
[depot_user]/src/fetchurl \
[depot_user]/src/libc \
[depot_user]/src/libssh \
[depot_user]/src/openssl \
[depot_user]/src/zlib \
[depot_user]/src/curl \
[depot_user]/src/init \
[depot_user]/src/chroot \
[depot_user]/src/extract \
[depot_user]/src/nic_router \
[depot_user]/src/libarchive \
[depot_user]/src/liblzma \
[depot_user]/src/verify
set 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"/>}
proc depot_user_download { user } {
return [exec cat [select_from_repositories sculpt/depot/$user/download]] }
proc depot_user_pubkey { user } {
return [exec cat [select_from_repositories sculpt/depot/$user/pubkey]] }
append config {
<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="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Uplink"> <child name="nic_router"/> </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="depot_download" 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="vfs">
<resource name="RAM" quantum="20M"/>
<provides> <service name="File_system"/> </provides>
<config>
<vfs>
<dir name="depot">
<dir name="genodelabs">
<ram/>
<inline name="download">} [depot_user_download genodelabs] {</inline>
<inline name="pubkey">} [depot_user_pubkey genodelabs] {</inline>
</dir>
</dir>
<dir name="public"> <ram/> </dir>
</vfs>
<policy label="depot_download -> depot" root="/depot" writeable="yes"/>
<policy label="depot_download -> public" root="/public" writeable="yes"/>
</config>
</start>
<start name="report_rom">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Report"/> <service name="ROM"/> </provides>
<config verbose="yes">
</config>
</start>
<start name="depot_download" caps="2000">
<binary name="init"/>
<resource name="RAM" quantum="70M"/>
<route>
<service name="ROM" label="config">
<parent label="depot_download.config"/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<service name="Nic"> <child name="nic_router"/> </service>
<service name="File_system"> <child name="vfs"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
</config>}
set fd [open [run_dir]/genode/installation w]
puts $fd {
<installation arch="x86_64">
<archive path="genodelabs/pkg/wm/2019-03-17"/>
<index path="genodelabs/index/19.02"/>
<index path="genodelabs/index/19.03"/>
</installation>}
close $fd
install_config $config
copy_file [genode_dir]/repos/gems/recipes/raw/depot_download/depot_download.config \
[run_dir]/genode/depot_download.config
build { app/depot_download_manager app/depot_query }
append boot_modules { depot_download_manager depot_query }
build_boot_image $boot_modules
append qemu_args " -nographic "
append_qemu_nic_args
# watch the state reports generated by the depot-download manager
set expected_pattern {}
append expected_pattern {.*path="genodelabs/pkg/wm/2019-03-17" state="done".*}
append expected_pattern {.*path="genodelabs/index/19.02" state="done".*}
append expected_pattern {.*path="genodelabs/index/19.03" state="failed".*}
run_genode_until $expected_pattern 150