genode/os/run/ldso.run

60 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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] 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]
[init] virtual void Genode::Child_policy::exit(int): child exited with exit value 0
}