mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-20 12:53:55 +08:00
Add TEST_INCLUDE_DIR[S] unit test
Add a unit test for the TEST_INCLUDE_DIR and (new) TEST_INCLUDE_DIRS directory properties.
This commit is contained in:
@@ -223,6 +223,7 @@ add_RunCMake_test(return)
|
|||||||
add_RunCMake_test(separate_arguments)
|
add_RunCMake_test(separate_arguments)
|
||||||
add_RunCMake_test(set_property)
|
add_RunCMake_test(set_property)
|
||||||
add_RunCMake_test(string)
|
add_RunCMake_test(string)
|
||||||
|
add_RunCMake_test(test_include_dirs)
|
||||||
foreach(var
|
foreach(var
|
||||||
CMAKE_C_COMPILER_ID
|
CMAKE_C_COMPILER_ID
|
||||||
CMAKE_C_COMPILER_VERSION
|
CMAKE_C_COMPILER_VERSION
|
||||||
|
3
Tests/RunCMake/test_include_dirs/CMakeLists.txt
Normal file
3
Tests/RunCMake/test_include_dirs/CMakeLists.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.6)
|
||||||
|
project(${RunCMake_TEST} NONE)
|
||||||
|
include(${RunCMake_TEST}.cmake)
|
17
Tests/RunCMake/test_include_dirs/RunCMakeTest.cmake
Normal file
17
Tests/RunCMake/test_include_dirs/RunCMakeTest.cmake
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
include(RunCMake)
|
||||||
|
|
||||||
|
function(run_TID)
|
||||||
|
# Use a single build tree for a few tests without cleaning.
|
||||||
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/TID-build)
|
||||||
|
set(RunCMake_TEST_NO_CLEAN 1)
|
||||||
|
if(RunCMake_GENERATOR MATCHES "Make|Ninja")
|
||||||
|
set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
|
||||||
|
endif()
|
||||||
|
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
||||||
|
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
||||||
|
run_cmake(TID)
|
||||||
|
run_cmake_command(TID-build ${CMAKE_COMMAND} --build . --config Debug)
|
||||||
|
run_cmake_command(TID-test ${CMAKE_CTEST_COMMAND} -C Debug)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
run_TID()
|
17
Tests/RunCMake/test_include_dirs/TID-test-stdout.txt
Normal file
17
Tests/RunCMake/test_include_dirs/TID-test-stdout.txt
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Test project .*
|
||||||
|
Start 1: house\.dog
|
||||||
|
1/6 Test #1: house\.dog \.+ +Passed +[0-9.]+ sec
|
||||||
|
Start 2: house\.cat
|
||||||
|
2/6 Test #2: house\.cat \.+ +Passed +[0-9.]+ sec
|
||||||
|
Start 3: farm\.cow
|
||||||
|
3/6 Test #3: farm\.cow \.+ +Passed +[0-9.]+ sec
|
||||||
|
Start 4: farm\.pig
|
||||||
|
4/6 Test #4: farm\.pig \.+ +Passed +[0-9.]+ sec
|
||||||
|
Start 5: zoo\.fox
|
||||||
|
5/6 Test #5: zoo\.fox \.+ +Passed +[0-9.]+ sec
|
||||||
|
Start 6: zoo\.emu
|
||||||
|
6/6 Test #6: zoo\.emu \.+ +Passed +[0-9.]+ sec
|
||||||
|
|
||||||
|
100% tests passed, 0 tests failed out of 6
|
||||||
|
|
||||||
|
Total Test time \(real\) = +[0-9.]+ sec
|
29
Tests/RunCMake/test_include_dirs/TID.cmake
Normal file
29
Tests/RunCMake/test_include_dirs/TID.cmake
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
project(test_include_dirs)
|
||||||
|
include(CTest)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
add_executable(dummy dummy.cpp)
|
||||||
|
|
||||||
|
function(generate_tests NAME)
|
||||||
|
set(ctest_file "${CMAKE_CURRENT_BINARY_DIR}/${NAME}_tests.cmake")
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${ctest_file}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}"
|
||||||
|
-D "TEST_EXECUTABLE=$<TARGET_FILE:dummy>"
|
||||||
|
-D "TEST_SUITE=${NAME}"
|
||||||
|
-D "TEST_NAMES=${ARGN}"
|
||||||
|
-D "CTEST_FILE=${ctest_file}"
|
||||||
|
-P "${CMAKE_CURRENT_SOURCE_DIR}/add-tests.cmake"
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
add_custom_target(${NAME}_tests ALL DEPENDS "${ctest_file}")
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
generate_tests(house dog cat)
|
||||||
|
generate_tests(farm cow pig)
|
||||||
|
generate_tests(zoo fox emu)
|
||||||
|
|
||||||
|
set_property(DIRECTORY PROPERTY TEST_INCLUDE_FILE "house_tests.cmake")
|
||||||
|
set_property(DIRECTORY APPEND PROPERTY TEST_INCLUDE_FILES "farm_tests.cmake")
|
||||||
|
set_property(DIRECTORY APPEND PROPERTY TEST_INCLUDE_FILES "zoo_tests.cmake")
|
8
Tests/RunCMake/test_include_dirs/add-tests.cmake
Normal file
8
Tests/RunCMake/test_include_dirs/add-tests.cmake
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
set(script)
|
||||||
|
|
||||||
|
foreach(TEST_NAME ${TEST_NAMES})
|
||||||
|
set(script "${script}add_test(\"${TEST_SUITE}.${TEST_NAME}\"")
|
||||||
|
set(script "${script} \"${TEST_EXECUTABLE}\")\n")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
file(WRITE "${CTEST_FILE}" "${script}")
|
4
Tests/RunCMake/test_include_dirs/dummy.cpp
Normal file
4
Tests/RunCMake/test_include_dirs/dummy.cpp
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
int main()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
Reference in New Issue
Block a user