Allow test target to be intended for manual testing

So those test targets which only setup an environment for
manual testing can be excluded from eg. `make check`.
This commit is contained in:
Martchus 2018-01-27 23:56:18 +01:00
parent a67805cb0f
commit 18e7154c03
1 changed files with 17 additions and 11 deletions

View File

@ -165,12 +165,14 @@ if(CPP_UNIT_LIB OR META_NO_CPP_UNIT)
if(META_PROJECT_TYPE STREQUAL "application") if(META_PROJECT_TYPE STREQUAL "application")
set(RUN_TESTS_APPLICATION_ARGS -a "$<TARGET_FILE:${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}>") set(RUN_TESTS_APPLICATION_ARGS -a "$<TARGET_FILE:${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}>")
endif() endif()
add_test(NAME ${META_PROJECT_NAME}_run_tests COMMAND if(NOT META_TEST_TARGET_IS_MANUAL)
${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests add_test(NAME ${META_PROJECT_NAME}_run_tests COMMAND
-p "${CMAKE_CURRENT_SOURCE_DIR}/testfiles" ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests
-w "${CMAKE_CURRENT_BINARY_DIR}/testworkingdir" -p "${CMAKE_CURRENT_SOURCE_DIR}/testfiles"
${RUN_TESTS_APPLICATION_ARGS} -w "${CMAKE_CURRENT_BINARY_DIR}/testworkingdir"
) ${RUN_TESTS_APPLICATION_ARGS}
)
endif()
# enable source code based coverage analysis using clang # enable source code based coverage analysis using clang
if(CLANG_SOURCE_BASED_COVERAGE_AVAILABLE) if(CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
@ -185,10 +187,12 @@ if(CPP_UNIT_LIB OR META_NO_CPP_UNIT)
set(COVERAGE_OVERALL_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests_coverage_overall.txt") set(COVERAGE_OVERALL_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests_coverage_overall.txt")
set(COVERAGE_HTML_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests_coverage.html") set(COVERAGE_HTML_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests_coverage.html")
# specify where to store raw clang profiling data via environment variable # specify where to store raw clang profiling data via environment variable
set_tests_properties(${META_PROJECT_NAME}_run_tests if(NOT META_TEST_TARGET_IS_MANUAL)
PROPERTIES ENVIRONMENT set_tests_properties(${META_PROJECT_NAME}_run_tests
"LLVM_PROFILE_FILE=${LLVM_PROFILE_RAW_FILE};LLVM_PROFILE_LIST_FILE=${LLVM_PROFILE_RAW_LIST_FILE}" PROPERTIES ENVIRONMENT
) "LLVM_PROFILE_FILE=${LLVM_PROFILE_RAW_FILE};LLVM_PROFILE_LIST_FILE=${LLVM_PROFILE_RAW_LIST_FILE}"
)
endif()
add_custom_command( add_custom_command(
OUTPUT "${LLVM_PROFILE_RAW_FILE}" OUTPUT "${LLVM_PROFILE_RAW_FILE}"
"${LLVM_PROFILE_RAW_LIST_FILE}" "${LLVM_PROFILE_RAW_LIST_FILE}"
@ -293,7 +297,9 @@ if(CPP_UNIT_LIB OR META_NO_CPP_UNIT)
endif() endif()
# add the test executable to the dependencies of the check target # add the test executable to the dependencies of the check target
add_dependencies(check ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests) if(NOT META_TEST_TARGET_IS_MANUAL)
add_dependencies(check ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_tests)
endif()
# add target for launching tests with wine ensuring the WINEPATH is set correctly so wine is able to find all required *.dll files # add target for launching tests with wine ensuring the WINEPATH is set correctly so wine is able to find all required *.dll files
# requires script from c++utilities, hence the sources of c++utilities must be present # requires script from c++utilities, hence the sources of c++utilities must be present