Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortamasmeszaros <meszaros.q@gmail.com>2019-10-04 12:04:26 +0300
committertamasmeszaros <meszaros.q@gmail.com>2019-10-04 12:04:26 +0300
commitfe7f2e4d95155f6f79a194f52fd1b8e2af0c50eb (patch)
tree0075876e5237422a46e7281b819b6ab8d774eb0a /tests/CMakeLists.txt
parentffa544ade3b8b740c717949f0ae6a1db7be1a358 (diff)
Catch2 test framework integration.
Diffstat (limited to 'tests/CMakeLists.txt')
-rw-r--r--tests/CMakeLists.txt47
1 files changed, 42 insertions, 5 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 1246c3043..9c4a75857 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,13 +1,50 @@
# TODO Add individual tests as executables in separate directories
# add_subirectory(<testcase>)
-find_package(GTest REQUIRED)
-
set(TEST_DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data)
file(TO_NATIVE_PATH "${TEST_DATA_DIR}" TEST_DATA_DIR)
+add_library(Catch2 INTERFACE)
+list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules/Catch2)
+target_include_directories(Catch2 INTERFACE ${CMAKE_CURRENT_LIST_DIR})
+add_library(Catch2::Catch2 ALIAS Catch2)
+include(Catch)
+
+add_library(test_catch2_common INTERFACE)
+target_compile_definitions(test_catch2_common INTERFACE TEST_DATA_DIR="${TEST_DATA_DIR}")
+target_link_libraries(test_catch2_common INTERFACE Catch2::Catch2)
+
add_library(test_common INTERFACE)
-target_compile_definitions(test_common INTERFACE TEST_DATA_DIR="${TEST_DATA_DIR}")
-target_link_libraries(test_common INTERFACE GTest::GTest GTest::Main)
+target_link_libraries(test_common INTERFACE test_catch2_common)
+
+# DEPRECATED:
+find_package(GTest REQUIRED)
+add_library(test_gtest_common INTERFACE)
+target_compile_definitions(test_gtest_common INTERFACE TEST_DATA_DIR="${TEST_DATA_DIR}")
+target_link_libraries(test_gtest_common INTERFACE GTest::GTest GTest::Main)
+
+function(prusaslicer_discover_tests TARGET)
+ catch_discover_tests(${TARGET})
+endfunction()
+
+macro(subdirlist result curdir)
+ file(GLOB children RELATIVE ${curdir} ${curdir}/*)
+ set(dirlist "")
+ foreach(child ${children})
+ if(IS_DIRECTORY ${curdir}/${child} AND NOT ${child} STREQUAL "catch2" )
+ list(APPEND dirlist ${child})
+ endif()
+ endforeach()
+ set(${result} ${dirlist})
+endmacro()
+
+subdirlist(SUBDIRS ${CMAKE_CURRENT_LIST_DIR})
+message(STATUS ${SUBDIRS})
+
+foreach(subdir ${SUBDIRS})
+ add_subdirectory(${subdir})
+endforeach()
+
+#add_subdirectory(timeutils)
+#add_subdirectory(example)
-add_subdirectory(timeutils)