mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-03 05:09:39 +00:00
This patch unconditionally applies the labeling of sessions and thereby removes the most common use case of 'Child_policy::filter_session_args'. Furthermore, the patch removes an ambiguity of the session labels of sessions created by the parent of behalf of its child, e.g., the PD session created as part of 'Child' now has the label "<child-name>" whereas an unlabeled PD-session request originating from the child has the label "<child-name> -> ". This way, the routing-policy of 'Child_policy::resolve_session_request' can differentiate both cases. As a consequence, the stricter labeling must now be considered wherever a precise label was specified as a key for a session route or a server- side policy selection. The simplest way to adapt those cases is to use a 'label_prefix' instead of the 'label' attribute. Alternatively, the 'label' attribute may used by appending " -> " (note the whitespace). Fixes #2171
200 lines
5.0 KiB
Plaintext
200 lines
5.0 KiB
Plaintext
#
|
|
# \brief Automated testing of http_blk
|
|
# \author Stefan Kalkowski
|
|
# \date 2013-11-29
|
|
#
|
|
|
|
if {[have_spec hw_odroid_xu]} {
|
|
puts "Run script does not support this platform."
|
|
exit 0
|
|
}
|
|
|
|
set use_usb_driver [expr [have_spec omap4] || [have_spec arndale] || [have_spec rpi]]
|
|
set use_nic_driver [expr !$use_usb_driver && ![have_spec imx53]]
|
|
|
|
if {[expr !$use_usb_driver && !$use_nic_driver]} {
|
|
puts "\n Run script is not supported on this platform. \n"; exit 0 }
|
|
|
|
if {$use_usb_driver} { set network_driver "usb_drv" }
|
|
if {$use_nic_driver} { set network_driver "nic_drv" }
|
|
|
|
set build_components {
|
|
core init
|
|
drivers/timer
|
|
server/nic_bridge
|
|
server/http_blk
|
|
app/lighttpd
|
|
test/rom_blk
|
|
}
|
|
|
|
# platform-specific modules
|
|
lappend_if $use_usb_driver build_components drivers/usb
|
|
lappend_if $use_nic_driver build_components drivers/nic
|
|
lappend_if [have_spec gpio] build_components drivers/gpio
|
|
|
|
source ${genode_dir}/repos/base/run/platform_drv.inc
|
|
append_platform_drv_build_components
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
append config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="LOG"/>
|
|
<service name="RAM"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="PD"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="IO_MEM"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>}
|
|
|
|
append_if [have_spec gpio] config {
|
|
<start name="gpio_drv">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides><service name="Gpio"/></provides>
|
|
<config/>
|
|
</start>}
|
|
|
|
append_if $use_usb_driver config {
|
|
<start name="usb_drv">
|
|
<resource name="RAM" quantum="12M"/>
|
|
<provides>
|
|
<service name="Nic"/>
|
|
</provides>
|
|
<config ehci="yes">
|
|
<nic mac="02:00:00:00:01:01"/>
|
|
</config>
|
|
</start>}
|
|
|
|
append_if $use_nic_driver config {
|
|
<start name="nic_drv">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides><service name="Nic"/></provides>
|
|
</start>}
|
|
|
|
append_platform_drv_config
|
|
|
|
append config {
|
|
<start name="nic_bridge">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides><service name="Nic"/></provides>
|
|
<config>
|
|
<policy label_prefix="lighttpd" ip_addr="10.0.1.1"/>
|
|
<policy label_prefix="http_blk" ip_addr="10.0.1.2"/>
|
|
</config>
|
|
<route>
|
|
<service name="Nic">}
|
|
append config " <child name=\"$network_driver\"/>"
|
|
append config {
|
|
</service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
<start name="http_blk">
|
|
<resource name="RAM" quantum="2M" />
|
|
<provides><service name="Block"/></provides>
|
|
<config block_size="512" uri="http://10.0.1.1/index.bin">
|
|
<libc ip_addr="10.0.1.2" gateway="10.0.1.5" netmask="255.255.255.0"/>
|
|
</config>
|
|
<route>
|
|
<service name="Nic"> <child name="nic_bridge"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<any-service> <any-child /> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
<start name="test-rom_blk">
|
|
<resource name="RAM" quantum="3M"/>
|
|
<config file="index.bin"/>
|
|
</start>
|
|
<start name="lighttpd">
|
|
<resource name="RAM" quantum="1G" />
|
|
<config>
|
|
<arg value="lighttpd" />
|
|
<arg value="-f" />
|
|
<arg value="/etc/lighttpd/lighttpd.conf" />
|
|
<arg value="-D" />
|
|
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log"
|
|
ip_addr="10.0.1.1" gateway="10.0.1.5" netmask="255.255.255.0">
|
|
<vfs>
|
|
<dir name="dev">
|
|
<log/>
|
|
<null/>
|
|
</dir>
|
|
<dir name="etc">
|
|
<dir name="lighttpd">
|
|
<inline name="lighttpd.conf">
|
|
# lighttpd configuration
|
|
server.port = 80
|
|
server.document-root = "/website"
|
|
server.event-handler = "select"
|
|
server.network-backend = "write"
|
|
index-file.names = (
|
|
"index.xhtml", "index.html", "index.htm"
|
|
)
|
|
mimetype.assign = (
|
|
".html" => "text/html",
|
|
".htm" => "text/html"
|
|
)
|
|
</inline>
|
|
</dir>
|
|
</dir>
|
|
<dir name="website">
|
|
<rom name="index.bin" as="index.bin" />
|
|
</dir>
|
|
</vfs>
|
|
</libc>
|
|
</config>
|
|
<route>
|
|
<service name="Nic"> <child name="nic_bridge"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<any-service> <any-child /> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
</config>}
|
|
|
|
install_config $config
|
|
|
|
catch { exec dd if=/dev/zero of=bin/index.bin bs=512 count=400 }
|
|
|
|
#
|
|
# Boot modules
|
|
#
|
|
|
|
# generic modules
|
|
set boot_modules {
|
|
core init timer ld.lib.so
|
|
libc.lib.so libm.lib.so
|
|
lwip.lib.so zlib.lib.so
|
|
lighttpd nic_bridge http_blk index.bin test-rom_blk
|
|
}
|
|
|
|
# platform-specific modules
|
|
lappend_if [have_spec gpio] boot_modules gpio_drv
|
|
lappend_if $use_usb_driver boot_modules usb_drv
|
|
lappend_if $use_nic_driver boot_modules nic_drv
|
|
|
|
append_platform_drv_boot_modules
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append_if [have_spec x86] qemu_args " -net nic,model=e1000 "
|
|
append_if [have_spec lan9118] qemu_args " -net nic,model=lan9118 "
|
|
|
|
append qemu_args " -net user -redir tcp:5555::80 "
|
|
append qemu_args " -nographic -serial mon:stdio "
|
|
|
|
run_genode_until {.*all done, finished!.*} 120
|
|
exec rm -f bin/index.bin
|