diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d806163..0291589 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,34 +1,33 @@ -enable_testing() - -macro(package_add_test_with_libraries TESTNAME FILES LIBRARIES TEST_WORKING_DIRECTORY ) - add_executable(${TESTNAME} ${FILES}) - set_target_properties(${TESTNAME} PROPERTIES COMPILE_FLAGS "-O3 -g") - target_link_libraries(${TESTNAME} gtest gmock gtest_main ${LIBRARIES}) - gtest_discover_tests(${TESTNAME} - WORKING_DIRECTORY ${TEST_WORKING_DIRECTORY} - PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${TEST_WORKING_DIRECTORY}" - ) - set_target_properties(${TESTNAME} PROPERTIES FOLDER tests) -endmacro() - -find_package(GTest REQUIRED) +find_package(GTest) if(NOT GTest_FOUND) - include(FetchContent) - FetchContent_Declare( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - ) - FetchContent_GetProperties(googletest) - if(NOT googletest_POPULATED) - FetchContent_Populate(googletest) - add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR}) - endif() + include(FetchContent) + FetchContent_Declare( + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG origin/main + ) + FetchContent_MakeAvailable(googletest) endif() -include_directories(../include) +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) + +enable_testing() + +add_executable(TestSiPMRng xorshift.cpp) +add_executable(TestSiPMRandom rand.cpp) +add_executable(TestSiPMProperties properties.cpp) +add_executable(TestSiPMSensor sensor.cpp) + +target_link_libraries(TestSiPMRng GTest::gtest_main sipm) +target_link_libraries(TestSiPMRandom GTest::gtest_main sipm) +target_link_libraries(TestSiPMProperties GTest::gtest_main sipm) +target_link_libraries(TestSiPMSensor GTest::gtest_main sipm) + include(GoogleTest) -package_add_test_with_libraries(TestSiPMXorshift256plus xorshift.cpp sipm "${PROJECT_DIR}") -package_add_test_with_libraries(TestSiPMRandom rand.cpp sipm "${PROJECT_DIR}") -package_add_test_with_libraries(TestSiPMProperities properties.cpp sipm "${PROJECT_DIR}") -package_add_test_with_libraries(TestSiPMSensor sensor.cpp sipm "${PROJECT_DIR}") +include_directories(../include) +gtest_discover_tests(TestSiPMRng) +gtest_discover_tests(TestSiPMRandom) +gtest_discover_tests(TestSiPMProperties) +gtest_discover_tests(TestSiPMSensor) diff --git a/tests/xorshift.cpp b/tests/xorshift.cpp index ab33bbb..3f23bdf 100644 --- a/tests/xorshift.cpp +++ b/tests/xorshift.cpp @@ -12,11 +12,18 @@ TEST_F(TestSiPMXorshift256, Constructor) { uint64_t N = 10000000; } TEST_F(TestSiPMXorshift256, Seed) { sipm::SiPMRng::Xorshift256plus rng; static constexpr uint64_t seed = 1234567890UL; // Random seed +#ifdef __AVX512F__ static constexpr uint64_t expected[] = {3539951786562994468ULL, 16993425385450634633ULL, 12425995393443937258ULL, 1971016958421006117ULL, 3113309500227661404ULL, 490387842609610270ULL, 11577763190126509135ULL, 18038816835264277783ULL, 14056837810899630979ULL, 8986600062506074549ULL}; +#else + static constexpr uint64_t expected[] = {2356680413504073166ULL, 6439555299326541142ULL, 13107374383302832124ULL, + 15371213951372998008ULL, 3598216317549022935ULL, 9944474804087195216ULL, + 1783072794770156681ULL, 9432686255404415156ULL, 5598578073076770953ULL, + 11053698116263360353}; +#endif rng.seed(seed); for (int j = 0; j < 10; ++j) { uint64_t x = rng();