genode/repos/ports/run/noux_fork.run
Christian Helmuth a52543acd2 Improve noux fork test (grand child, waitpid)
The test now forks twice - the parent forks a child and the child itself
forks a grand child. Both, parent and child, wait for termination of
their forked process with waitpid(). Additionally, the run script now
checks for exit of the parent (not any noux process).
2017-01-31 14:58:37 +01:00

54 lines
1.3 KiB
Plaintext

build {
core init drivers/timer server/log_terminal noux/minimal lib/libc_noux
test/noux_fork
}
create_boot_directory
install_config {
<config verbose="yes">
<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_MEM"/>
<service name="IO_PORT"/>
</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="log_terminal">
<resource name="RAM" quantum="2M"/>
<provides><service name="Terminal"/></provides>
</start>
<start name="noux">
<resource name="RAM" quantum="64M"/>
<config verbose="yes" stdin="/null" stdout="/log" stderr="/log">
<fstab>
<null/> <log/>
<rom name="test-noux_fork" />
</fstab>
<start name="test-noux_fork"> </start>
</config>
</start>
</config>
}
build_boot_image {
core init timer log_terminal noux ld.lib.so libc.lib.so libm.lib.so
libc_noux.lib.so test-noux_fork
}
append qemu_args " -nographic "
run_genode_until "--- parent done ---.*\n" 20
run_genode_until "child.*exited.*\n" 5 [output_spawn_id]