File: dev-mode.cmake

package info (click to toggle)
openalgz-ut 1.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 192 kB
  • sloc: cpp: 425; sh: 10; makefile: 6
file content (80 lines) | stat: -rw-r--r-- 2,824 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
enable_language(CXX)

# Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24:
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
  cmake_policy(SET CMP0135 NEW)
endif()

set_property(GLOBAL PROPERTY USE_FOLDERS YES)

include(CTest)
if(BUILD_TESTING)
  #add_subdirectory(tests)
endif()

# Done in developer mode only, so users won't be bothered by this :)
file(GLOB_RECURSE headers CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/*.hpp")
source_group(TREE "${PROJECT_SOURCE_DIR}/include" PREFIX headers FILES ${headers})

file(GLOB_RECURSE sources CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.cpp")
source_group(TREE "${PROJECT_SOURCE_DIR}/src" PREFIX sources FILES ${sources})

add_executable(${PROJECT_NAME}_ide ${sources} ${headers})

target_link_libraries(${PROJECT_NAME}_ide PRIVATE ${PROJECT_NAME}::${PROJECT_NAME})

set_target_properties(${PROJECT_NAME}_${PROJECT_NAME} ${PROJECT_NAME}_ide PROPERTIES FOLDER ProjectTargets)

add_test(NAME ${PROJECT_NAME}_ide COMMAND ${PROJECT_NAME}_ide)

# UT_RUN feature tests
add_executable(ut_run_tests "${PROJECT_SOURCE_DIR}/tests/ut_run_tests.cpp")
target_link_libraries(ut_run_tests PRIVATE ${PROJECT_NAME}::${PROJECT_NAME})

# Test: No filter - all 5 tests should run
add_test(NAME ut_run_no_filter COMMAND ut_run_tests)
set_tests_properties(ut_run_no_filter PROPERTIES
   PASS_REGULAR_EXPRESSION "tests: 5 \\(5 passed"
)

# Test: Single test filter
add_test(NAME ut_run_single COMMAND ut_run_tests)
set_tests_properties(ut_run_single PROPERTIES
   ENVIRONMENT "UT_RUN=alpha"
   PASS_REGULAR_EXPRESSION "tests: 1 \\(1 passed"
)

# Test: Single test with space in name
add_test(NAME ut_run_single_with_space COMMAND ut_run_tests)
set_tests_properties(ut_run_single_with_space PROPERTIES
   ENVIRONMENT "UT_RUN=delta test"
   PASS_REGULAR_EXPRESSION "tests: 1 \\(1 passed"
)

# Test: Array filter with two tests
add_test(NAME ut_run_array_two COMMAND ut_run_tests)
set_tests_properties(ut_run_array_two PROPERTIES
   ENVIRONMENT "UT_RUN=[alpha,beta]"
   PASS_REGULAR_EXPRESSION "tests: 2 \\(2 passed"
)

# Test: Array filter with three tests
add_test(NAME ut_run_array_three COMMAND ut_run_tests)
set_tests_properties(ut_run_array_three PROPERTIES
   ENVIRONMENT "UT_RUN=[alpha,beta,gamma]"
   PASS_REGULAR_EXPRESSION "tests: 3 \\(3 passed"
)

# Test: Array filter with tests containing spaces
add_test(NAME ut_run_array_with_spaces COMMAND ut_run_tests)
set_tests_properties(ut_run_array_with_spaces PROPERTIES
   ENVIRONMENT "UT_RUN=[delta test,epsilon test]"
   PASS_REGULAR_EXPRESSION "tests: 2 \\(2 passed"
)

# Test: Non-matching filter - no tests should run
add_test(NAME ut_run_no_match COMMAND ut_run_tests)
set_tests_properties(ut_run_no_match PROPERTIES
   ENVIRONMENT "UT_RUN=nonexistent"
   PASS_REGULAR_EXPRESSION "tests: 0 \\(0 passed"
)