mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-02 03:56:42 +00:00
fcca4f3466
With this change, init becomes able to respond to config changes by restarting the scenario with the new config. To make this feature useful in practice, init must not fail under any circumstances. Even on conditions that were considered as fatal previously and led to the abort of init (such as ambiguous names of the children or misconfiguration in general), init must stay alive and responsive to config changes.
59 lines
1.9 KiB
Plaintext
59 lines
1.9 KiB
Plaintext
|
||
if {[have_spec always_hybrid]} {
|
||
puts "Run script does not support hybrid Linux/Genode."; exit 0 }
|
||
|
||
build "core init test/ldso"
|
||
|
||
create_boot_directory
|
||
|
||
install_config {
|
||
<config>
|
||
<parent-provides>
|
||
<service name="ROM"/>
|
||
<service name="LOG"/>
|
||
<service name="RM" />
|
||
</parent-provides>
|
||
<default-route>
|
||
<any-service> <parent/> </any-service>
|
||
</default-route>
|
||
<start name="test-ldso">
|
||
<resource name="RAM" quantum="1M"/>
|
||
</start>
|
||
</config>
|
||
}
|
||
|
||
build_boot_image "core init test-ldso test-ldso.lib.so test-ldso2.lib.so libc.lib.so libm.lib.so ld.lib.so"
|
||
|
||
append qemu_args "-nographic -m 64"
|
||
|
||
run_genode_until "child exited with exit value 0.*\n" 10
|
||
|
||
# pay only attention to the output of init and its children
|
||
grep_output {^\[init }
|
||
|
||
unify_output {environ: [a-f0-9]+} "environ: <unified>"
|
||
|
||
compare_output_to {
|
||
[init -> test-ldso] Starting ldso ...
|
||
[init -> test-ldso] Starting application ... environ: <unified>
|
||
[init -> test-ldso]
|
||
[init -> test-ldso] Static Geekings!
|
||
[init -> test-ldso] ================
|
||
[init -> test-ldso] Test read
|
||
[init -> test-ldso] [31mno plugin found for read(0)[0m
|
||
[init -> test-ldso] Static object in funcion ... a: aaaaaaaa b: bbbbbbbb c: cccccccc 6: 00000666
|
||
[init -> test-ldso] Shared library function call ...good
|
||
[init -> test-ldso] Ctor in shared lib ... a: aaaaaaaa b: bbbbbbbb c: cccccccc 6: 00000666
|
||
[init -> test-ldso] Exception in shared lib ... good (library)
|
||
[init -> test-ldso] Cross library exception ... good (cross library)
|
||
[init -> test-ldso] Exception during RPC: [31mCould not open file "__not_found__"[0m
|
||
[init -> test-ldso] good
|
||
[init -> test-ldso] Exception in dynamic binary ... good (binary)
|
||
[init -> test-ldso] Exception inter-shared library ... good (inter)
|
||
[init -> test-ldso] Exception from LDSO with explicit catch ... good
|
||
[init -> test-ldso] Libc test: abs(-10): 10
|
||
[init -> test-ldso] ================
|
||
[init -> test-ldso]
|
||
}
|
||
|