You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- # Module to compiler and add tests to CTest
-
- If ( __CMAKE_TESTS_INCLUDED )
- Return ( )
- EndIf ( )
- Set ( __CMAKE_TESTS_INCLUDED TRUE )
-
- CMake_Minimum_Required ( VERSION 3.0 )
- Include ( CMakeParseArguments )
- Include ( CTest )
-
- # Function to add a single test
- # NAME - Name of the test
- # TARGET - Target to execute
- # COMMAND - Command to execute
- Function ( ADD_CMAKE_TEST )
-
- Set ( OPTIONS COMMAND )
- Set ( ONE_VALUE_ARGS NAME TARGET GROUP )
- Set ( MULTI_VALUE_ARGS )
- CMake_Parse_Arguments ( ADD_CMAKE_TEST "${OPTIONS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN} )
-
- If ( NOT ADD_CMAKE_TEST_NAME )
- Message ( FATAL_ERROR "ADD_CMAKE_TEST expects the NAME parameter!" )
- EndIf ( )
-
- If ( NOT ADD_CMAKE_TEST_TARGET )
- Message ( FATAL_ERROR "ADD_CMAKE_TEST expects the TARGET parameter!" )
- EndIf ( )
-
- If ( NOT ADD_CMAKE_TEST_COMMAND )
- Set ( ADD_CMAKE_TEST_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${ADD_CMAKE_TEST_TARGET} )
- Else ( )
- Set ( ADD_CMAKE_TEST_COMMAND ${ADD_CMAKE_TEST_UNPARSED_ARGUMENTS} )
- EndIf ( )
-
- # Build Tests #################################################################################
-
- If ( NOT TARGET build-tests )
- Add_Custom_Target ( build-tests )
- Add_Test ( NAME "build"
- COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target build-tests )
- EndIf ( )
- Add_Dependencies ( build-tests ${ADD_CMAKE_TEST_TARGET} )
-
- # Run Tests ###################################################################################
-
- If ( NOT TARGET tests)
- Add_Custom_Target ( tests )
- EndIf ( )
- Add_Custom_Target ( run-${ADD_CMAKE_TEST_TARGET}
- DEPENDS ${ADD_CMAKE_TEST_TARGET}
- COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && ${ADD_CMAKE_TEST_COMMAND} )
- Add_Dependencies ( tests run-${ADD_CMAKE_TEST_TARGET} )
-
- If ( ADD_CMAKE_TEST_GROUP )
- If ( NOT TARGET ${ADD_CMAKE_TEST_GROUP}-tests )
- Add_Custom_Target ( ${ADD_CMAKE_TEST_GROUP}-tests )
- EndIf ( )
- Add_Dependencies ( ${ADD_CMAKE_TEST_GROUP}-tests run-${ADD_CMAKE_TEST_TARGET} )
- EndIf ( )
-
- # CTest #######################################################################################
-
- Add_Test ( NAME ${ADD_CMAKE_TEST_NAME}
- COMMAND ${ADD_CMAKE_TEST_COMMAND}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
-
- EndFunction ( )
|