diff --git a/repos/base-linux/src/test/sub_rm/config.h b/repos/base-linux/src/test/sub_rm/config.h deleted file mode 100644 index e52a673f34..0000000000 --- a/repos/base-linux/src/test/sub_rm/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * \brief Linux-specific policy for sub_rm test - * \author Norman Feske - * \date 2011-11-22 - */ - -/* - * Copyright (C) 2011-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -/* - * The Linux implementation of the RM service does not support attaching - * the same sub RM session twice. This configuration enables the respective - * error-handling test. - */ -enum { attach_twice_forbidden = true }; - -enum { support_attach_sub_any = false }; - diff --git a/repos/base/run/sub_rm.run b/repos/base/run/sub_rm.run index e52a9190e2..c7573a446b 100644 --- a/repos/base/run/sub_rm.run +++ b/repos/base/run/sub_rm.run @@ -2,7 +2,7 @@ build "core init test/sub_rm" create_boot_directory -install_config { +set config { @@ -15,12 +15,19 @@ install_config { - + } + +append_if [have_spec linux] config { + } + +append config { } +install_config $config + build_boot_image "core ld.lib.so init test-sub_rm" append qemu_args "-nographic " diff --git a/repos/base/src/test/sub_rm/config.h b/repos/base/src/test/sub_rm/config.h deleted file mode 100644 index 69e1bb91d8..0000000000 --- a/repos/base/src/test/sub_rm/config.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * \brief Platform-specific policy for sub_rm test - * \author Norman Feske - * \date 2011-11-22 - */ - -/* - * Copyright (C) 2011-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -enum { attach_twice_forbidden = false }; -enum { support_attach_sub_any = true }; diff --git a/repos/base/src/test/sub_rm/main.cc b/repos/base/src/test/sub_rm/main.cc index 7fe5eb7ec9..d8553b3161 100644 --- a/repos/base/src/test/sub_rm/main.cc +++ b/repos/base/src/test/sub_rm/main.cc @@ -14,13 +14,11 @@ #include #include #include +#include #include #include #include -/* platform-specific test policy */ -#include - using namespace Genode; @@ -59,6 +57,8 @@ static void validate_pattern_at(char const *pattern, char const *ptr) void Component::construct(Env &env) { + Attached_rom_dataspace config(env, "config"); + log("--- sub-rm test ---"); log("create RM connection"); @@ -89,7 +89,7 @@ void Component::construct(Env &env) fill_ds_with_test_pattern(env, test_pattern(), ds, 0); fill_ds_with_test_pattern(env, test_pattern_2(), ds, 4096); - if (!support_attach_sub_any) { + if (!config.xml().attribute_value("support_attach_sub_any", true)) { log("attach RAM ds to any position at sub rm - this should fail"); try { sub_rm.attach(ds, 0, 0, false, (addr_t)0); @@ -157,7 +157,7 @@ void Component::construct(Env &env) catch (Region_map::Region_conflict) { log("attaching conflicting region failed as expected"); } - if (attach_twice_forbidden) { + if (config.xml().attribute_value("attach_twice_forbidden", false)) { /* * Try to double-attach the same sub RM session. This should fail */ diff --git a/repos/base/src/test/sub_rm/target.mk b/repos/base/src/test/sub_rm/target.mk index 977c857a49..f54a37dd2f 100644 --- a/repos/base/src/test/sub_rm/target.mk +++ b/repos/base/src/test/sub_rm/target.mk @@ -1,6 +1,3 @@ TARGET = test-sub_rm SRC_CC = main.cc LIBS = base - -# find 'config.h' depending on the current platform -REP_INC_DIR += src/test/sub_rm