diff --git a/CMakeLists.txt b/CMakeLists.txt index f3055e34f..0aa6dcd5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,8 +13,6 @@ set(PROJECT_VERSION ${PROJECT_VERSION_STRING}) add_compile_definitions(SLS_DET_VERSION="${PROJECT_VERSION}") set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) cmake_policy(SET CMP0074 NEW) @@ -31,9 +29,6 @@ include(FetchContent) option(SLS_FETCH_ZMQ_FROM_GITHUB "Fetch zmq from github" OFF) option(SLS_FETCH_PYBIND11_FROM_GITHUB "Fetch pybind11 from github" OFF) -if(${SKBUILD}) - message(STATUS "Building with scikit-build") -endif() if(SLS_FETCH_ZMQ_FROM_GITHUB) # Opt in to pull down a zmq version from github instead of @@ -202,7 +197,7 @@ endif() # to control options for the libraries if(NOT TARGET slsProjectOptions) add_library(slsProjectOptions INTERFACE) -# target_compile_features(slsProjectOptions INTERFACE cxx_std_11) + target_compile_features(slsProjectOptions INTERFACE cxx_std_11) endif() if (NOT TARGET slsProjectWarnings) diff --git a/conda-recipes/main-library/build.sh b/conda-recipes/main-library/build.sh index f2505361a..730271b6e 100755 --- a/conda-recipes/main-library/build.sh +++ b/conda-recipes/main-library/build.sh @@ -25,5 +25,4 @@ echo "Building using: ${NCORES} cores" cmake --build . -- -j${NCORES} cmake --build . --target install -export SLSDETNAME=automated_tests CTEST_OUTPUT_ON_FAILURE=1 ctest -j 1 diff --git a/conda-recipes/main-library/copy_lib.sh b/conda-recipes/main-library/copy_lib.sh index ad5de9f47..72343b565 100755 --- a/conda-recipes/main-library/copy_lib.sh +++ b/conda-recipes/main-library/copy_lib.sh @@ -1,23 +1,22 @@ -# # SPDX-License-Identifier: LGPL-3.0-or-other -# # Copyright (C) 2021 Contributors to the SLS Detector Package +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2021 Contributors to the SLS Detector Package -# mkdir -p $PREFIX/lib -# mkdir -p $PREFIX/bin -# mkdir -p $PREFIX/include/sls -# # mkdir $PREFIX/include/slsDetectorPackage +mkdir -p $PREFIX/lib +mkdir -p $PREFIX/bin +mkdir -p $PREFIX/include/sls -# #Shared and static libraries -# cp build/install/lib/* $PREFIX/lib/ +#Shared and static libraries +cp build/install/lib/* $PREFIX/lib/ -# #Binaries -# cp build/install/bin/sls_detector_acquire $PREFIX/bin/. -# cp build/install/bin/sls_detector_acquire_zmq $PREFIX/bin/. -# cp build/install/bin/sls_detector_get $PREFIX/bin/. -# cp build/install/bin/sls_detector_put $PREFIX/bin/. -# cp build/install/bin/sls_detector_help $PREFIX/bin/. -# cp build/install/bin/slsReceiver $PREFIX/bin/. -# cp build/install/bin/slsMultiReceiver $PREFIX/bin/. +#Binaries +cp build/install/bin/sls_detector_acquire $PREFIX/bin/. +cp build/install/bin/sls_detector_acquire_zmq $PREFIX/bin/. +cp build/install/bin/sls_detector_get $PREFIX/bin/. +cp build/install/bin/sls_detector_put $PREFIX/bin/. +cp build/install/bin/sls_detector_help $PREFIX/bin/. +cp build/install/bin/slsReceiver $PREFIX/bin/. +cp build/install/bin/slsMultiReceiver $PREFIX/bin/. -# cp build/install/include/sls/* $PREFIX/include/sls -# cp -rv build/install/share $PREFIX +cp build/install/include/sls/* $PREFIX/include/sls +cp -rv build/install/share $PREFIX diff --git a/slsDetectorSoftware/tests/test-SharedMemory.cpp b/slsDetectorSoftware/tests/test-SharedMemory.cpp index b16a41b25..5ba3c20a2 100644 --- a/slsDetectorSoftware/tests/test-SharedMemory.cpp +++ b/slsDetectorSoftware/tests/test-SharedMemory.cpp @@ -17,155 +17,155 @@ struct Data { constexpr int shm_id = 10; -// TEST_CASE("Create SharedMemory read and write", "[detector]") { +TEST_CASE("Create SharedMemory read and write", "[detector]") { -// SharedMemory shm(shm_id, -1); -// shm.createSharedMemory(); -// CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") + -// std::to_string(shm_id)); + SharedMemory shm(shm_id, -1); + shm.createSharedMemory(); + CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") + + std::to_string(shm_id)); -// shm()->x = 3; -// shm()->y = 5.7; -// strcpy_safe(shm()->mess, "Some string"); + shm()->x = 3; + shm()->y = 5.7; + strcpy_safe(shm()->mess, "Some string"); -// CHECK(shm()->x == 3); -// CHECK(shm()->y == 5.7); -// CHECK(std::string(shm()->mess) == "Some string"); + CHECK(shm()->x == 3); + CHECK(shm()->y == 5.7); + CHECK(std::string(shm()->mess) == "Some string"); -// shm.unmapSharedMemory(); -// shm.removeSharedMemory(); + shm.unmapSharedMemory(); + shm.removeSharedMemory(); -// CHECK(shm.exists() == false); -// } + CHECK(shm.exists() == false); +} -// TEST_CASE("Open existing SharedMemory and read", "[detector]") { +TEST_CASE("Open existing SharedMemory and read", "[detector]") { -// { -// SharedMemory shm(shm_id, -1); -// shm.createSharedMemory(); -// *shm() = 5.3; -// } + { + SharedMemory shm(shm_id, -1); + shm.createSharedMemory(); + *shm() = 5.3; + } -// SharedMemory shm2(shm_id, -1); -// shm2.openSharedMemory(true); -// CHECK(*shm2() == 5.3); + SharedMemory shm2(shm_id, -1); + shm2.openSharedMemory(true); + CHECK(*shm2() == 5.3); -// shm2.removeSharedMemory(); -// } + shm2.removeSharedMemory(); +} -// TEST_CASE("Creating a second shared memory with the same name throws", -// "[detector]") { +TEST_CASE("Creating a second shared memory with the same name throws", + "[detector]") { -// SharedMemory shm0(shm_id, -1); -// SharedMemory shm1(shm_id, -1); + SharedMemory shm0(shm_id, -1); + SharedMemory shm1(shm_id, -1); -// shm0.createSharedMemory(); -// CHECK_THROWS(shm1.createSharedMemory()); -// shm0.removeSharedMemory(); -// } + shm0.createSharedMemory(); + CHECK_THROWS(shm1.createSharedMemory()); + shm0.removeSharedMemory(); +} -// TEST_CASE("Open two shared memories to the same place", "[detector]") { +TEST_CASE("Open two shared memories to the same place", "[detector]") { -// // Create the first shared memory -// SharedMemory shm(shm_id, -1); -// shm.createSharedMemory(); -// shm()->x = 5; -// CHECK(shm()->x == 5); + // Create the first shared memory + SharedMemory shm(shm_id, -1); + shm.createSharedMemory(); + shm()->x = 5; + CHECK(shm()->x == 5); -// // Open the second shared memory with the same name -// SharedMemory shm2(shm_id, -1); -// shm2.openSharedMemory(true); -// CHECK(shm2()->x == 5); -// CHECK(shm.getName() == shm2.getName()); + // Open the second shared memory with the same name + SharedMemory shm2(shm_id, -1); + shm2.openSharedMemory(true); + CHECK(shm2()->x == 5); + CHECK(shm.getName() == shm2.getName()); -// // Check that they still point to the same place -// shm2()->x = 7; -// CHECK(shm()->x == 7); + // Check that they still point to the same place + shm2()->x = 7; + CHECK(shm()->x == 7); -// // Remove only needs to be done once since they refer -// // to the same memory -// shm2.removeSharedMemory(); -// CHECK(shm.exists() == false); -// CHECK(shm2.exists() == false); -// } + // Remove only needs to be done once since they refer + // to the same memory + shm2.removeSharedMemory(); + CHECK(shm.exists() == false); + CHECK(shm2.exists() == false); +} -// TEST_CASE("Move SharedMemory", "[detector]") { +TEST_CASE("Move SharedMemory", "[detector]") { -// SharedMemory shm(shm_id, -1); -// CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") + -// std::to_string(shm_id)); -// shm.createSharedMemory(); -// shm()->x = 9; + SharedMemory shm(shm_id, -1); + CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") + + std::to_string(shm_id)); + shm.createSharedMemory(); + shm()->x = 9; -// SharedMemory shm2(shm_id + 1, -1); -// shm2 = std::move(shm); // shm is now a moved from object! + SharedMemory shm2(shm_id + 1, -1); + shm2 = std::move(shm); // shm is now a moved from object! -// CHECK(shm2()->x == 9); -// REQUIRE_THROWS( -// shm()); // trying to access should throw instead of returning a nullptr -// CHECK(shm2.getName() == std::string("/slsDetectorPackage_detector_") + -// std::to_string(shm_id)); -// shm2.removeSharedMemory(); -// } + CHECK(shm2()->x == 9); + REQUIRE_THROWS( + shm()); // trying to access should throw instead of returning a nullptr + CHECK(shm2.getName() == std::string("/slsDetectorPackage_detector_") + + std::to_string(shm_id)); + shm2.removeSharedMemory(); +} -// TEST_CASE("Create several shared memories", "[detector]") { -// constexpr int N = 5; -// std::vector> v; -// v.reserve(N); -// for (int i = 0; i != N; ++i) { -// v.emplace_back(shm_id + i, -1); -// CHECK(v[i].exists() == false); -// v[i].createSharedMemory(); -// *v[i]() = i; -// CHECK(*v[i]() == i); -// } +TEST_CASE("Create several shared memories", "[detector]") { + constexpr int N = 5; + std::vector> v; + v.reserve(N); + for (int i = 0; i != N; ++i) { + v.emplace_back(shm_id + i, -1); + CHECK(v[i].exists() == false); + v[i].createSharedMemory(); + *v[i]() = i; + CHECK(*v[i]() == i); + } -// for (int i = 0; i != N; ++i) { -// CHECK(*v[i]() == i); -// CHECK(v[i].getName() == std::string("/slsDetectorPackage_detector_") + -// std::to_string(i + shm_id)); -// } + for (int i = 0; i != N; ++i) { + CHECK(*v[i]() == i); + CHECK(v[i].getName() == std::string("/slsDetectorPackage_detector_") + + std::to_string(i + shm_id)); + } -// for (int i = 0; i != N; ++i) { -// v[i].removeSharedMemory(); -// CHECK(v[i].exists() == false); -// } -// } + for (int i = 0; i != N; ++i) { + v[i].removeSharedMemory(); + CHECK(v[i].exists() == false); + } +} -// TEST_CASE("Create create a shared memory with a tag") { -// SharedMemory shm(0, -1, "ctbdacs"); -// REQUIRE(shm.getName() == "/slsDetectorPackage_detector_0_ctbdacs"); -// } +TEST_CASE("Create create a shared memory with a tag") { + SharedMemory shm(0, -1, "ctbdacs"); + REQUIRE(shm.getName() == "/slsDetectorPackage_detector_0_ctbdacs"); +} -// TEST_CASE("Create create a shared memory with a tag when SLSDETNAME is set") { +TEST_CASE("Create create a shared memory with a tag when SLSDETNAME is set") { -// // if SLSDETNAME is already set we unset it but -// // save the value -// std::string old_slsdetname; -// if (getenv(SHM_ENV_NAME)) -// old_slsdetname = getenv(SHM_ENV_NAME); -// unsetenv(SHM_ENV_NAME); -// setenv(SHM_ENV_NAME, "myprefix", 1); + // if SLSDETNAME is already set we unset it but + // save the value + std::string old_slsdetname; + if (getenv(SHM_ENV_NAME)) + old_slsdetname = getenv(SHM_ENV_NAME); + unsetenv(SHM_ENV_NAME); + setenv(SHM_ENV_NAME, "myprefix", 1); -// SharedMemory shm(0, -1, "ctbdacs"); -// REQUIRE(shm.getName() == "/slsDetectorPackage_detector_0_myprefix_ctbdacs"); + SharedMemory shm(0, -1, "ctbdacs"); + REQUIRE(shm.getName() == "/slsDetectorPackage_detector_0_myprefix_ctbdacs"); -// // Clean up after us -// if (old_slsdetname.empty()) -// unsetenv(SHM_ENV_NAME); -// else -// setenv(SHM_ENV_NAME, old_slsdetname.c_str(), 1); -// } + // Clean up after us + if (old_slsdetname.empty()) + unsetenv(SHM_ENV_NAME); + else + setenv(SHM_ENV_NAME, old_slsdetname.c_str(), 1); +} -// TEST_CASE("map int64 to int32 throws") { -// SharedMemory shm(shm_id, -1); -// shm.createSharedMemory(); -// *shm() = 7; +TEST_CASE("map int64 to int32 throws") { + SharedMemory shm(shm_id, -1); + shm.createSharedMemory(); + *shm() = 7; -// SharedMemory shm2(shm_id, -1); -// REQUIRE_THROWS(shm2.openSharedMemory(true)); + SharedMemory shm2(shm_id, -1); + REQUIRE_THROWS(shm2.openSharedMemory(true)); -// shm.removeSharedMemory(); -// } + shm.removeSharedMemory(); +} } // namespace sls