Skip to content

Commit 7372659

Browse files
Add tests prefixes
1 parent 35a8012 commit 7372659

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ enable_testing()
66

77
include(cmake/CargoBuild.cmake)
88

9+
set(TESTS_PREFIX "${TESTS_PREFIX}rust_projects.")
910
add_subdirectory(monty-hall)
1011
add_subdirectory(minesweeper)

cmake/CargoBuild.cmake

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,21 @@ function(
2626
CARGO_ARGS_OUT
2727
CARGO_RESULT_DIR_OUT
2828
WITH_TESTS_OUT
29+
TESTS_PREFIX_OUT
2930
FOLDER_OUT
3031
TARGET_SOURCE_FILES_OUT
3132
)
3233
cmake_parse_arguments(
3334
PARSED_ARGS
3435
"WITH_TESTS"
35-
"MANIFEST_PATH;FOLDER"
36+
"MANIFEST_PATH;FOLDER;TESTS_PREFIX"
3637
""
3738
${ARGN}
3839
)
3940

4041
foreach(TARGET_SOURCE_FILE ${PARSED_ARGS_UNPARSED_ARGUMENTS})
4142
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SOURCE_FILE})
42-
message(FATAL_ERROR "Cannot find source file:
43-
${TARGET_SOURCE_FILE}"
44-
)
43+
message(FATAL_ERROR "Cannot find source file: ${TARGET_SOURCE_FILE}")
4544
endif()
4645
endforeach()
4746

@@ -110,6 +109,18 @@ function(
110109
PARENT_SCOPE
111110
)
112111
set(${WITH_TESTS_OUT} ${PARSED_ARGS_WITH_TESTS} PARENT_SCOPE)
112+
113+
if(PARSED_ARGS_TESTS_PREFIX)
114+
if(NOT ${PARSED_ARGS_WITH_TESTS})
115+
message(FATAL_ERROR "TESTS_PREFIX was specified as ${PARSED_ARGS_TESTS_PREFIX},"
116+
" but WITH_TESTS option is not present!"
117+
)
118+
endif()
119+
set(${TESTS_PREFIX_OUT} ${PARSED_ARGS_TESTS_PREFIX} PARENT_SCOPE)
120+
else()
121+
set(${TESTS_PREFIX_OUT} "" PARENT_SCOPE)
122+
endif()
123+
113124
if(PARSED_ARGS_FOLDER)
114125
set(${FOLDER_OUT} ${PARSED_ARGS_FOLDER} PARENT_SCOPE)
115126
endif()
@@ -124,6 +135,7 @@ function(cargo_add_library LIB_NAME)
124135
CARGO_ARGS
125136
CARGO_RESULT_DIR
126137
WITH_TESTS
138+
TESTS_PREFIX
127139
FOLDER
128140
LIB_SOURCE_FILES
129141
${ARGN}
@@ -205,7 +217,7 @@ function(cargo_add_library LIB_NAME)
205217

206218
if(${WITH_TESTS} AND BUILD_TESTING)
207219
message(STATUS "Adding tests for ${LIB_NAME} library")
208-
set(TESTS_TARGET_NAME ${LIB_NAME}_tests)
220+
set(TESTS_TARGET_NAME ${TESTS_PREFIX}${LIB_NAME}_tests)
209221
add_test(NAME ${TESTS_TARGET_NAME} COMMAND cargo test ${CARGO_ARGS})
210222
endif()
211223

@@ -231,6 +243,7 @@ function(
231243
CARGO_ARGS
232244
CARGO_RESULT_DIR
233245
WITH_TESTS
246+
TESTS_PREFIX
234247
FOLDER
235248
TARGET_SOURCE_FILES
236249
${ARGN}
@@ -261,7 +274,7 @@ function(
261274

262275
if(${WITH_TESTS} AND BUILD_TESTING)
263276
message(STATUS "Adding tests for ${TARGET_NAME_AND_TYPE}")
264-
add_test(NAME ${TARGET_NAME}_tests COMMAND cargo test ${CARGO_ARGS}
277+
add_test(NAME ${TESTS_PREFIX}${TARGET_NAME}_tests COMMAND cargo test ${CARGO_ARGS}
265278
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
266279
)
267280
endif()

minesweeper/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ cargo_add_rust_library(
1313
MANIFEST_PATH
1414
Cargo.toml
1515
WITH_TESTS
16+
TESTS_PREFIX
17+
${TESTS_PREFIX}
1618
FOLDER
1719
minesweeper
1820
${MINESWEEPER_SOURCES}
@@ -25,6 +27,8 @@ cargo_add_executable(
2527
MANIFEST_PATH
2628
Cargo.toml
2729
WITH_TESTS
30+
TESTS_PREFIX
31+
${TESTS_PREFIX}
2832
FOLDER
2933
minesweeper
3034
${MINESWEEPER_DEMO_SOURCES}
@@ -39,6 +43,8 @@ cargo_add_library(
3943
MANIFEST_PATH
4044
../cminesweeper/Cargo.toml
4145
WITH_TESTS
46+
TESTS_PREFIX
47+
${TESTS_PREFIX}
4248
FOLDER
4349
minesweeper
4450
${CMINESWEEPER_SOURCES}

0 commit comments

Comments
 (0)