summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2016-02-01 22:20:17 +0100
committerRalf Habacker <ralf.habacker@freenet.de>2016-02-01 22:21:35 +0100
commit3f454101844b947b24215efd29190fdaa6e97b02 (patch)
tree5d180dc6891124b385275650e2f03ec467671792
parent7918cb68ad960890345ebcbb064bfa334d85480c (diff)
Enable make check in test/name-test.93464-enable-name-tests
Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de>
-rw-r--r--cmake/CMakeLists.txt13
-rw-r--r--cmake/modules/Macros.cmake27
-rw-r--r--cmake/test/CMakeLists.txt4
-rw-r--r--cmake/test/name-test/CMakeLists.txt51
4 files changed, 80 insertions, 15 deletions
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 4bde2792d..c65997c59 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -486,11 +486,14 @@ add_definitions(${DBUS_BUS_CFLAGS})
if (DBUS_BUILD_TESTS)
# set variables used for the .in files (substituted by configure_file) in test/data:
- set(DBUS_TEST_EXEC ${EXECUTABLE_OUTPUT_PATH}${IDE_BIN})
- set(DBUS_TEST_DATA ${CMAKE_BINARY_DIR}/test/data)
- set(TEST_SOCKET_DIR ${DBUS_SESSION_SOCKET_DIR} )
- set(TEST_LAUNCH_HELPER_BINARY ${EXECUTABLE_OUTPUT_PATH}/dbus-daemon-launch-helper-test)
- set(TEST_BUS_LAUNCH_BINARY ${EXECUTABLE_OUTPUT_PATH}/dbus-launch${EXEEXT})
+ if(CMAKE_CROSSCOMPILING)
+ set(PREFIX "z:")
+ endif()
+ set(DBUS_TEST_EXEC ${PREFIX}${EXECUTABLE_OUTPUT_PATH}${IDE_BIN})
+ set(DBUS_TEST_DATA ${PREFIX}${CMAKE_BINARY_DIR}/test/data)
+ set(TEST_SOCKET_DIR ${PREFIX}${DBUS_SESSION_SOCKET_DIR} )
+ set(TEST_LAUNCH_HELPER_BINARY ${PREFIX}${EXECUTABLE_OUTPUT_PATH}/dbus-daemon-launch-helper-test)
+ set(TEST_BUS_LAUNCH_BINARY ${PREFIX}${EXECUTABLE_OUTPUT_PATH}/dbus-launch${EXEEXT})
if (UNIX)
set (TEST_LISTEN "unix:tmpdir=${TEST_SOCKET_DIR}")
endif (UNIX)
diff --git a/cmake/modules/Macros.cmake b/cmake/modules/Macros.cmake
index ca685cb48..cea16d09b 100644
--- a/cmake/modules/Macros.cmake
+++ b/cmake/modules/Macros.cmake
@@ -52,7 +52,7 @@ macro(add_test_executable _target _source)
list(APPEND _env "DBUS_SESSION_BUS_ADDRESS=")
list(APPEND _env "DBUS_USE_TEST_BINARY=1")
list(APPEND _env "DBUS_FATAL_WARNINGS=1")
- list(APPEND _env "DBUS_TEST_DATA=${PREFIX}${CMAKE_BINARY_DIR}/test/data")
+ list(APPEND _env "DBUS_TEST_DATA=${DBUS_TEST_DATA}")
list(APPEND _env "DBUS_TEST_HOMEDIR=${PREFIX}${CMAKE_BINARY_DIR}/dbus")
set_tests_properties(${_target} PROPERTIES ENVIRONMENT "${_env}")
endmacro(add_test_executable)
@@ -61,3 +61,28 @@ macro(add_helper_executable _target _source)
add_executable(${_target} ${_source})
target_link_libraries(${_target} ${ARGN})
endmacro(add_helper_executable)
+
+macro(add_session_test_executable _target _source)
+ add_executable(${_target} ${_source})
+ target_link_libraries(${_target} ${ARGN})
+ if (CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ # run tests with binfmt_misc
+ set(PREFIX "z:")
+ set(DBUS_TEST_DAEMON "${PREFIX}${CMAKE_BINARY_DIR}/bin/dbus-daemon${EXEEXT}")
+ set(_env "DBUS_TEST_DAEMON=${DBUS_TEST_DAEMON}")
+ set(TEST_WRAPPER ${PREFIX}${EXECUTABLE_OUTPUT_PATH}/dbus-run-session${EXEEXT} "--config-file=${CONFIG_FILE}" "--dbus-daemon=${DBUS_TEST_DAEMON}" --)
+ add_test(NAME ${_target} COMMAND wine ${TEST_WRAPPER} $<TARGET_FILE:${_target}> --tap)
+ else()
+ set(PREFIX)
+ set(DBUS_TEST_DAEMON ${CMAKE_BINARY_DIR}/bin/dbus-daemon${EXEEXT})
+ set(_env "DBUS_TEST_DAEMON=${DBUS_TEST_DAEMON}")
+ set(TEST_WRAPPER ${EXECUTABLE_OUTPUT_PATH}/dbus-run-session "--config-file=${CONFIG_FILE}" "--dbus-daemon=${DBUS_TEST_DAEMON}" --)
+ add_test(NAME ${_target} COMMAND ${TEST_WRAPPER} $<TARGET_FILE:${_target}>)
+ endif()
+ list(APPEND _env "DBUS_SESSION_BUS_PID=")
+ list(APPEND _env "DBUS_SESSION_BUS_ADDRESS=")
+ list(APPEND _env "DBUS_FATAL_WARNINGS=0")
+ list(APPEND _env "DBUS_TEST_DATA=${DBUS_TEST_DATA}")
+ list(APPEND _env "DBUS_TEST_HOMEDIR=${PREFIX}${CMAKE_BINARY_DIR}/dbus")
+ set_tests_properties(${_target} PROPERTIES ENVIRONMENT "${_env}")
+endmacro(add_session_test_executable)
diff --git a/cmake/test/CMakeLists.txt b/cmake/test/CMakeLists.txt
index 58eed0901..f16bac5cb 100644
--- a/cmake/test/CMakeLists.txt
+++ b/cmake/test/CMakeLists.txt
@@ -184,3 +184,7 @@ ENDFOREACH(FILE_TYPE)
MESSAGE(STATUS "Copying generated bus config files to test directory")
configure_file("${CMAKE_SOURCE_DIR}/../bus/session.conf.in" ${CMAKE_BINARY_DIR}/test/data/valid-config-files/session.conf @ONLY)
configure_file("${CMAKE_SOURCE_DIR}/../bus/system.conf.in" ${CMAKE_BINARY_DIR}/test/data/valid-config-files-system/system.conf @ONLY)
+
+add_custom_target(check
+ COMMAND ctest -R ^test-.*
+)
diff --git a/cmake/test/name-test/CMakeLists.txt b/cmake/test/name-test/CMakeLists.txt
index d0ec4e072..da521cded 100644
--- a/cmake/test/name-test/CMakeLists.txt
+++ b/cmake/test/name-test/CMakeLists.txt
@@ -1,17 +1,50 @@
if (DBUS_ENABLE_EMBEDDED_TESTS)
-set (NAMEtest-DIR ../../../test/name-test)
+set(CONFIG_FILE ${CMAKE_CURRENT_BINARY_DIR}/tmp-session-bus.conf)
+set(SERVICE_DIR ${CMAKE_BINARY_DIR}/test/data/valid-service-files)
+set(SOURCE_CONFIG_FILE ${CMAKE_BINARY_DIR}/${DBUS_SESSION_CONFIG_FILE})
+
+macro(file_replace_line in out search replace)
+ set(content "")
+ file(STRINGS ${in} var)
+ foreach(line ${var})
+ if(line MATCHES ".*${search}.*")
+ set(content "${content}\n ${replace}")
+ else()
+ set(content "${content}\n${line}")
+ endif()
+ endforeach()
+ file(WRITE ${out} ${content})
+endmacro()
+
+## create a configuration file based on the standard session.conf
+file_replace_line(${SOURCE_CONFIG_FILE} ${CONFIG_FILE}.tmp "<standard_session_servicedirs" "<servicedir>${SERVICE_DIR}</servicedir>")
+file_replace_line(${CONFIG_FILE}.tmp ${CONFIG_FILE} "<include" "")
+message(STATUS "Created configuration file ${CONFIG_FILE}")
+add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/bin/name-test
+ COMMAND cmake -E create_symlink . ${CMAKE_BINARY_DIR}/bin/name-test
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+)
+add_custom_target(name-test-bin-dir DEPENDS ${CMAKE_BINARY_DIR}/bin/name-test)
+add_dependencies(dbus-daemon name-test-bin-dir)
+
+add_custom_target(check
+ COMMAND ctest -R ^test-.*
+)
+
+set (NAMEtest-DIR ../../../test/name-test)
add_definitions(${DBUS_INTERNAL_CLIENT_DEFINITIONS})
-add_helper_executable(test-pending-call-dispatch ${NAMEtest-DIR}/test-pending-call-dispatch.c ${DBUS_INTERNAL_LIBRARIES})
-add_helper_executable(test-pending-call-timeout ${NAMEtest-DIR}/test-pending-call-timeout.c ${DBUS_INTERNAL_LIBRARIES})
-add_helper_executable(test-thread-init ${NAMEtest-DIR}/test-threads-init.c ${DBUS_INTERNAL_LIBRARIES})
-add_helper_executable(test-ids ${NAMEtest-DIR}/test-ids.c ${DBUS_INTERNAL_LIBRARIES})
-add_helper_executable(test-shutdown ${NAMEtest-DIR}/test-shutdown.c dbus-testutils)
add_helper_executable(test-privserver ${NAMEtest-DIR}/test-privserver.c dbus-testutils)
-add_helper_executable(test-privserver-client ${NAMEtest-DIR}/test-privserver-client.c dbus-testutils)
-add_helper_executable(test-autolaunch ${NAMEtest-DIR}/test-autolaunch.c dbus-testutils)
add_helper_executable(test-multithread-server ${NAMEtest-DIR}/test-multithread-server.c dbus-testutils)
-add_helper_executable(test-multithread-client ${NAMEtest-DIR}/test-multithread-client.c dbus-testutils)
+add_session_test_executable(test-ids ${NAMEtest-DIR}/test-ids.c ${DBUS_INTERNAL_LIBRARIES})
+add_session_test_executable(test-pending-call-dispatch ${NAMEtest-DIR}/test-pending-call-dispatch.c ${DBUS_INTERNAL_LIBRARIES})
+add_session_test_executable(test-pending-call-timeout ${NAMEtest-DIR}/test-pending-call-timeout.c ${DBUS_INTERNAL_LIBRARIES})
+add_session_test_executable(test-thread-init ${NAMEtest-DIR}/test-threads-init.c ${DBUS_INTERNAL_LIBRARIES})
+add_session_test_executable(test-shutdown ${NAMEtest-DIR}/test-shutdown.c dbus-testutils)
+add_session_test_executable(test-autolaunch ${NAMEtest-DIR}/test-autolaunch.c dbus-testutils)
+add_session_test_executable(test-privserver-client ${NAMEtest-DIR}/test-privserver-client.c dbus-testutils)
+add_session_test_executable(test-multithread-client ${NAMEtest-DIR}/test-multithread-client.c dbus-testutils pthread)
endif (DBUS_ENABLE_EMBEDDED_TESTS)