# # \brief Test reflection of segmentation faults to the user land # \author Norman Feske # \date 2012-11-01 # if {[have_spec pistachio]} { puts "Pistachio is unsupported (see https://github.com/genodelabs/genode/issues/16)" exit 0 } if {[have_spec fiasco]} { puts "Fiasco is unsupported (see run script for details)" # # The L4/Fiasco kernel has known problems with the destruction of threads # that are currently participating in IPC (the "red-thread issue"). The # fault-detection test reliably triggers the problem. Since the development # of the kernel has been stopped, however, this issue is expected to remain # unresolved. Newer kernels such as Fiasco.OC do not have the problem. # exit 0 } # # Build # build { core init server/loader test/fault_detection test/segfault } create_boot_directory # # Generate config # install_config { <config> <parent-provides> <service name="ROM"/> <service name="LOG"/> <service name="CPU"/> <service name="RAM"/> <service name="RM"/> <service name="PD"/> </parent-provides> <default-route> <any-service> <parent/> <any-child/> </any-service> </default-route> <start name="loader"> <resource name="RAM" quantum="10M"/> <provides> <service name="Loader"/> </provides> <config> <policy label_prefix="test-fault_detection"> <parent-rom name="test-segfault"/> <parent-rom name="ld.lib.so"/> <parent-rom name="init"/> </policy> </config> </start> <start name="test-fault_detection"> <resource name="RAM" quantum="10M"/> </start> </config> } # # Boot modules # # generic modules set boot_modules { core ld.lib.so init loader test-fault_detection test-segfault } build_boot_image $boot_modules # # Execute test case # append qemu_args "-nographic -m 96" run_genode_until "--- finished fault_detection test ---.*\n" 30