summaryrefslogtreecommitdiffstats
path: root/src/corelib/Qt5CTestMacros.cmake
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2012-06-29 08:32:01 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-03 01:08:25 +0200
commit91720b5bc22410177512abcaea9716de5446162e (patch)
tree3bea489487e767f5f90a60e82d64412a32831339 /src/corelib/Qt5CTestMacros.cmake
parent7327ae8c170cb4d6bd3ecde16b12f575268661b5 (diff)
Move the macros for invoking ctest to a shared location.
They are still internal, but all Qt5 modules will be able to use them then. Change-Id: I42ab656115b0976ca959293dfd664ec071f35dbf Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'src/corelib/Qt5CTestMacros.cmake')
-rw-r--r--src/corelib/Qt5CTestMacros.cmake44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/corelib/Qt5CTestMacros.cmake b/src/corelib/Qt5CTestMacros.cmake
new file mode 100644
index 0000000000..c2772bb702
--- /dev/null
+++ b/src/corelib/Qt5CTestMacros.cmake
@@ -0,0 +1,44 @@
+
+macro(expect_pass _dir)
+ string(REPLACE "(" "_" testname "${_dir}")
+ string(REPLACE ")" "_" testname "${testname}")
+ add_test(${testname} ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}"
+ "${CMAKE_CURRENT_BINARY_DIR}/${_dir}"
+ --build-generator ${CMAKE_GENERATOR}
+ --build-makeprogram ${CMAKE_MAKE_PROGRAM}
+ --build-options -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ )
+endmacro()
+
+macro(expect_fail _dir)
+ string(REPLACE "(" "_" testname "${_dir}")
+ string(REPLACE ")" "_" testname "${testname}")
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
+ file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/CMakeLists.txt"
+ "
+ cmake_minimum_required(VERSION 2.8)
+ project(${_dir}_build)
+
+ try_compile(Result \${CMAKE_CURRENT_BINARY_DIR}/${_dir}
+ \${CMAKE_CURRENT_SOURCE_DIR}/${_dir}
+ ${_dir}
+ OUTPUT_VARIABLE Out
+ )
+ message(\"\${Out}\")
+ if (Result)
+ message(SEND_ERROR \"Succeeded build which should fail\")
+ endif()
+ "
+ )
+ add_test(${testname} ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}"
+ "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/build"
+ --build-generator ${CMAKE_GENERATOR}
+ --build-makeprogram ${CMAKE_MAKE_PROGRAM}
+ --build-options -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ )
+endmacro()