genode/os/run/ldso.run

1.7 KiB


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="2M"/>
</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 }
 
compare_output_to {
[init -> test-ldso]
[init -> test-ldso] Static Geekings!
[init -> test-ldso] ================
[init -> test-ldso] Test read
[init -> test-ldso] no plugin found for read(0)
[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: Could not open file "__not_found__"
[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]
}