From 2feccc7ba031e6476dd96d42e086f35eb112aebf Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Date: Thu, 29 Sep 2022 12:41:59 +0200 Subject: [PATCH] Always enable RT tests if possible --- nix/rt.nix | 1 - test/CMakeLists.txt | 5 +---- test/rt/CMakeLists.txt | 16 +------------- test/rt/nanos6/CMakeLists.txt | 17 +++++++++++++++ test/rt/nosv/CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 test/rt/nosv/CMakeLists.txt diff --git a/nix/rt.nix b/nix/rt.nix index f7c1ab5..3d38243 100644 --- a/nix/rt.nix +++ b/nix/rt.nix @@ -85,7 +85,6 @@ let last.nanos6 pkgs.strace ]; - cmakeFlags = old.cmakeFlags ++ [ "-DENABLE_TEST_RT=ON" ]; }); }); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0a25e9d..d8e181e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -20,7 +20,4 @@ set(OVNI_TEST_BUILD_DIR "${CMAKE_BINARY_DIR}/test") include(macros.cmake) add_subdirectory(emu) - -if(ENABLE_TEST_RT) - add_subdirectory(rt) -endif() +add_subdirectory(rt) diff --git a/test/rt/CMakeLists.txt b/test/rt/CMakeLists.txt index 538f8b6..256cad7 100644 --- a/test/rt/CMakeLists.txt +++ b/test/rt/CMakeLists.txt @@ -14,19 +14,5 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -find_library(nosv libnosv) -find_path(NOSV_INCLUDE_DIR nosv.h) - -function(nosv_test) - ovni_test(${ARGN}) - target_link_libraries("${OVNI_TEST_NAME}" nosv) - target_include_directories("${OVNI_TEST_NAME}" - PUBLIC ${NOSV_INCLUDE_DIR}) - set_property(TEST "${OVNI_TEST_NAME}" APPEND - PROPERTY - ENVIRONMENT "NOSV_CONFIG=${OVNI_TEST_SOURCE_DIR}/rt/nosv/nosv.toml") -endfunction() - -nosv_test(nosv/attach.c) - +add_subdirectory(nosv) add_subdirectory(nanos6) diff --git a/test/rt/nanos6/CMakeLists.txt b/test/rt/nanos6/CMakeLists.txt index 64dde88..fc5cf71 100644 --- a/test/rt/nanos6/CMakeLists.txt +++ b/test/rt/nanos6/CMakeLists.txt @@ -1,6 +1,21 @@ find_library(nanos6 libnanos6) find_path(NANOS6_INCLUDE_DIR nanos6.h) +include(CheckCCompilerFlag) +check_c_compiler_flag("-fompss-2" HAVE_FOMPSS2_FLAG) +if(NOT HAVE_FOMPSS2_FLAG) + message(STATUS "Compiler doesn't support -fompss-2 flag, disabling Nanos6 RT tests") + return() +endif() + +check_library_exists(nanos6 nanos6_init "nanos6.h" HAVE_NANOS6) +if(NOT HAVE_NANOS6) + message(STATUS "Nanos6 not found, disabling Nanos6 RT tests") + return() +else() + message(STATUS "Enabling Nanos6 RT tests") +endif() + function(nanos6_rt_test) set(switches "") set(single LEVEL) @@ -27,6 +42,8 @@ nanos6_rt_test(several-tasks.c) nanos6_rt_test(sched-add.c) nanos6_rt_test(if0.c) nanos6_rt_test(taskfor.c) + +# Test multiple instrumentation levels nanos6_rt_test(simple-task.c NAME simple-task-level-1 LEVEL 1) nanos6_rt_test(simple-task.c NAME simple-task-level-2 LEVEL 2) nanos6_rt_test(simple-task.c NAME simple-task-level-3 LEVEL 3) diff --git a/test/rt/nosv/CMakeLists.txt b/test/rt/nosv/CMakeLists.txt new file mode 100644 index 0000000..1972998 --- /dev/null +++ b/test/rt/nosv/CMakeLists.txt @@ -0,0 +1,39 @@ +# +# Copyright (c) 2022 Barcelona Supercomputing Center (BSC) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +find_library(nosv libnosv) +find_path(NOSV_INCLUDE_DIR nosv.h) + +check_library_exists(nosv nosv_init "nosv.h" HAVE_NOSV) + +if(NOT HAVE_NOSV) + message(STATUS "nOS-V library not found, disabling nOS-V RT tests") + return() +else() + message(STATUS "Enabling nOS-V RT tests") +endif() + +function(nosv_test) + ovni_test(${ARGN}) + target_link_libraries("${OVNI_TEST_NAME}" nosv) + target_include_directories("${OVNI_TEST_NAME}" + PUBLIC ${NOSV_INCLUDE_DIR}) + set_property(TEST "${OVNI_TEST_NAME}" APPEND + PROPERTY + ENVIRONMENT "NOSV_CONFIG=${OVNI_TEST_SOURCE_DIR}/rt/nosv/nosv.toml") +endfunction() + +nosv_test(attach.c)