genode/repos/ports/run/libc_noux.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

102 lines
2.2 KiB
Plaintext

if {[have_spec linux]} {
puts "\nLinux not supported because of missing UART driver\n"
exit 0
}
set build_components {
core init timer drivers/uart
noux lib/libc_noux
server/ram_fs test/libc_noux
}
build $build_components
# create tar archive
exec tar cfv bin/libc_noux.tar -h -C bin test-libc_noux
create_boot_directory
append config {
<config verbose="yes">
<parent-provides>
<service name="ROM"/>
<service name="LOG"/>
<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> <any-child/> <parent/> </any-service>
</default-route>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="uart_drv">
<resource name="RAM" quantum="1M"/>
<provides><service name="Terminal"/></provides>
<config>
<policy label_prefix="noux" uart="1"/>
</config>
</start>
<start name="ram_fs">
<resource name="RAM" quantum="10M"/>
<provides><service name="File_system"/></provides>
<config>
<!-- constrain sessions according to their labels -->
<policy label="noux -> root" root="/" writeable="yes"/>
</config>
</start>
<start name="noux">
<resource name="RAM" quantum="1G" />
<config>
<fstab>
<tar name="libc_noux.tar" />
<fs label="root" />
</fstab>
<start name="/test-libc_noux" />
</config>
</start>
</config>
}
install_config $config
#
# Boot modules
#
# generic modules
set boot_modules {
core init timer uart_drv ram_fs noux
ld.lib.so libc.lib.so vfs.lib.so libc_noux.lib.so posix.lib.so
libc_noux.tar
}
build_boot_image $boot_modules
#
# Redirect the output of Noux via the virtual serial port 1 into a file to be
# dumped after the successful completion of the test.
#
set noux_output_file "noux_output.log"
append qemu_args " -nographic"
append qemu_args " -serial mon:stdio"
append qemu_args " -serial file:$noux_output_file"
run_genode_until "child.*exited.*\n" 20
set output [exec cat $noux_output_file]
puts $output
exec rm bin/libc_noux.tar
exec rm $noux_output_file
grep_output "test finished"
compare_output_to "test finished"