Merge branch 'js/doc-unit-tests-with-cmake'
Update the base topic to work with CMake builds. * js/doc-unit-tests-with-cmake: cmake: handle also unit tests cmake: use test names instead of full paths cmake: fix typo in variable name artifacts-tar: when including `.dll` files, don't forget the unit-tests unit-tests: do show relative file paths unit-tests: do not mistake `.pdb` files for being executable cmake: also build unit tests
This commit is contained in:
@ -974,6 +974,35 @@ target_link_libraries(test-fake-ssh common-main)
|
||||
parse_makefile_for_sources(test-reftable_SOURCES "REFTABLE_TEST_OBJS")
|
||||
list(TRANSFORM test-reftable_SOURCES PREPEND "${CMAKE_SOURCE_DIR}/")
|
||||
|
||||
#unit-tests
|
||||
add_library(unit-test-lib OBJECT ${CMAKE_SOURCE_DIR}/t/unit-tests/test-lib.c)
|
||||
|
||||
parse_makefile_for_scripts(unit_test_PROGRAMS "UNIT_TEST_PROGRAMS" "")
|
||||
foreach(unit_test ${unit_test_PROGRAMS})
|
||||
add_executable("${unit_test}" "${CMAKE_SOURCE_DIR}/t/unit-tests/${unit_test}.c")
|
||||
target_link_libraries("${unit_test}" unit-test-lib common-main)
|
||||
set_target_properties("${unit_test}"
|
||||
PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/t/unit-tests/bin)
|
||||
if(MSVC)
|
||||
set_target_properties("${unit_test}"
|
||||
PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/t/unit-tests/bin)
|
||||
set_target_properties("${unit_test}"
|
||||
PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/t/unit-tests/bin)
|
||||
endif()
|
||||
list(APPEND PROGRAMS_BUILT "${unit_test}")
|
||||
|
||||
# t-basic intentionally fails tests, to validate the unit-test infrastructure.
|
||||
# Therefore, it should only be run as part of t0080, which verifies that it
|
||||
# fails only in the expected ways.
|
||||
#
|
||||
# All other unit tests should be run.
|
||||
if(NOT ${unit_test} STREQUAL "t-basic")
|
||||
add_test(NAME "t.unit-tests.${unit_test}"
|
||||
COMMAND "./${unit_test}"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/t/unit-tests/bin)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
#test-tool
|
||||
parse_makefile_for_sources(test-tool_SOURCES "TEST_BUILTINS_OBJS")
|
||||
|
||||
@ -1093,17 +1122,18 @@ if(NOT ${CMAKE_BINARY_DIR}/CMakeCache.txt STREQUAL ${CACHE_PATH})
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/contrib/completion/git-completion.bash DESTINATION ${CMAKE_BINARY_DIR}/contrib/completion/)
|
||||
endif()
|
||||
|
||||
file(GLOB test_scipts "${CMAKE_SOURCE_DIR}/t/t[0-9]*.sh")
|
||||
file(GLOB test_scripts "${CMAKE_SOURCE_DIR}/t/t[0-9]*.sh")
|
||||
|
||||
#test
|
||||
foreach(tsh ${test_scipts})
|
||||
add_test(NAME ${tsh}
|
||||
foreach(tsh ${test_scripts})
|
||||
string(REGEX REPLACE ".*/(.*)\\.sh" "\\1" test_name ${tsh})
|
||||
add_test(NAME "t.suite.${test_name}"
|
||||
COMMAND ${SH_EXE} ${tsh} --no-bin-wrappers --no-chain-lint -vx
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/t)
|
||||
endforeach()
|
||||
|
||||
# This test script takes an extremely long time and is known to time out even
|
||||
# on fast machines because it requires in excess of one hour to run
|
||||
set_tests_properties("${CMAKE_SOURCE_DIR}/t/t7112-reset-submodule.sh" PROPERTIES TIMEOUT 4000)
|
||||
set_tests_properties("t.suite.t7112-reset-submodule" PROPERTIES TIMEOUT 4000)
|
||||
|
||||
endif()#BUILD_TESTING
|
||||
|
Reference in New Issue
Block a user