genode/repos/os/run/tar_rom.run
Norman Feske bf62d6b896 Move timer from os to base repository
Since the timer and timeout handling is part of the base library (the
dynamic linker), it belongs to the base repository.

Besides moving the timer and its related infrastructure (alarm, timeout
libs, tests) to the base repository, this patch also moves the timer
from the 'drivers' subdirectory directly to 'src' and disamibuates the
timer's build locations for the various kernels. Otherwise the different
timer implementations could interfere with each other when using one
build directory with multiple kernels.

Note that this patch changes the include paths for the former os/timer,
os/alarm.h, os/duration.h, and os/timed_semaphore.h to base/.

Issue #3101
2019-01-14 12:33:57 +01:00

85 lines
2.3 KiB
Plaintext

#
# \brief Test for 'tar_rom' service
# \author Norman Feske
# \date 2010-09-07
#
# The test spawns a sub init, which uses a 'tar_rom' instance
# rather than core's ROM service. The 'tar_rom' service manages
# a TAR archive containing the binary of the 'test-timer' program.
# The nested init instance tries to start this program. The
# test succeeds when the test-timer program prints its first
# line of LOG output.
#
#
# On Linux, programs can be executed only if present as a file on the Linux
# file system ('execve' takes a file name as argument). Data extracted via
# 'tar_rom' is not represented as file. Hence, it cannot be executed.
#
if {[have_spec linux]} { puts "Run script does not support Linux"; exit 0 }
build "core init timer test/timer server/tar_rom"
create_boot_directory
install_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"/>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="tar_rom">
<resource name="RAM" quantum="6M"/>
<provides><service name="ROM"/></provides>
<config>
<archive name="archive.tar"/>
</config>
</start>
<start name="init" caps="1000">
<resource name="RAM" quantum="3M"/>
<config verbose="yes">
<parent-provides>
<service name="ROM"/>
<service name="CPU"/>
<service name="PD"/>
<service name="LOG"/>
<service name="Timer"/>
</parent-provides>
<default caps="100"/>
<start name="test-timer">
<resource name="RAM" quantum="1M"/>
<route> <any-service> <parent/> </any-service> </route>
</start>
</config>
<route>
<service name="ROM" label="test-timer"> <child name="tar_rom"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
</config>
}
exec sh -c "cd bin; tar cfh archive.tar test-timer"
build_boot_image "core ld.lib.so init timer tar_rom archive.tar"
append qemu_args "-nographic "
run_genode_until "--- timer test ---" 20
exec rm bin/archive.tar