diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2016-02-01 22:20:17 +0100 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2016-02-01 22:21:35 +0100 |
commit | 3f454101844b947b24215efd29190fdaa6e97b02 (patch) | |
tree | 5d180dc6891124b385275650e2f03ec467671792 | |
parent | 7918cb68ad960890345ebcbb064bfa334d85480c (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.txt | 13 | ||||
-rw-r--r-- | cmake/modules/Macros.cmake | 27 | ||||
-rw-r--r-- | cmake/test/CMakeLists.txt | 4 | ||||
-rw-r--r-- | cmake/test/name-test/CMakeLists.txt | 51 |
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) |