summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Dywan <christian.dywan@canonical.com>2014-04-04 21:00:41 +0200
committerChristian Dywan <christian.dywan@canonical.com>2014-04-04 21:00:41 +0200
commit1485d8a3b841bbcd7fbc703e1de46d2196736958 (patch)
tree6afc366f0b9e346cf3e39c1bf661ba8eafc33d37
parenta0791c5dfe7e6090d75b96a44020ded6ccf1823b (diff)
downloadmidori-1485d8a3b841bbcd7fbc703e1de46d2196736958.tar.gz
Use dependencies to clear test folders before execution
-rw-r--r--cmake/ContainTest.cmake18
1 files changed, 15 insertions, 3 deletions
diff --git a/cmake/ContainTest.cmake b/cmake/ContainTest.cmake
index 2f4b7948..c671fd28 100644
--- a/cmake/ContainTest.cmake
+++ b/cmake/ContainTest.cmake
@@ -5,23 +5,33 @@ include(ParseArguments)
macro(contain_test test_name)
parse_arguments(ARGS "TEST" "" ${ARGN})
set(TEST_ENV "")
- foreach(VARIABLE XDG_DATA_HOME XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DATA_HOME XDG_RUNTIME_DIR TMPDIR)
+ foreach(VARIABLE XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DATA_HOME XDG_RUNTIME_DIR TMPDIR)
set(CONTAINER "${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/${VARIABLE}")
- file(REMOVE_RECURSE ${CONTAINER})
- file(MAKE_DIRECTORY ${CONTAINER})
set(TEST_ENV "${TEST_ENV}${VARIABLE}=${CONTAINER};")
endforeach()
+
+ add_dependencies(check contain-${test_name})
+
set_tests_properties(${test_name} PROPERTIES
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
TIMEOUT 42
ENVIRONMENT "${TEST_ENV}"
)
+ add_custom_target("contain-${test_name}"
+ COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/XDG_CONFIG_HOME
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/XDG_CACHE_HOME
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/XDG_DATA_HOME
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/XDG_RUNTIME_DIR
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/TMPDIR
+ )
add_custom_target("gdb-${test_name}"
COMMAND env ${TEST_ENV} gdb
--batch -ex 'set print thread-events off'
-ex 'run' -ex 'bt'
${CMAKE_BINARY_DIR}/tests/${UNIT}
+ DEPENDS "contain-${test_name}"
)
add_custom_target("valgrind-${test_name}"
@@ -31,6 +41,7 @@ macro(contain_test test_name)
--undef-value-errors=yes
--track-origins=yes
${CMAKE_BINARY_DIR}/tests/${UNIT}
+ DEPENDS "contain-${test_name}"
)
add_custom_target("callgrind-${test_name}"
@@ -38,5 +49,6 @@ macro(contain_test test_name)
--tool=callgrind
--callgrind-out-file=${UNIT}.callgrind
${CMAKE_BINARY_DIR}/tests/${UNIT}
+ DEPENDS "contain-${test_name}"
)
endmacro(contain_test)