diff options
Diffstat (limited to 'tests/ECMGenerateDBusServiceFileTest')
4 files changed, 52 insertions, 0 deletions
diff --git a/tests/ECMGenerateDBusServiceFileTest/CMakeLists.txt b/tests/ECMGenerateDBusServiceFileTest/CMakeLists.txt new file mode 100644 index 00000000..426ada89 --- /dev/null +++ b/tests/ECMGenerateDBusServiceFileTest/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.5) +project(ECMGenerateDBusServiceFileTest) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../modules) + +# make sure the test install dir is clean +file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}") +include(ECMGenerateDBusServiceFile) + +# run test + +ecm_generate_dbus_service_file( + NAME org.kde.kded5 + EXECUTABLE /usr/bin/kded5 + DESTINATION ${CMAKE_INSTALL_PREFIX}/test +) + +ecm_generate_dbus_service_file( + NAME org.kde.kded5.withSystemD + EXECUTABLE /usr/bin/kded5 + SYSTEMD_SERVICE plasma-kded.service + DESTINATION ${CMAKE_INSTALL_PREFIX}/test +) + +# this will be run by CTest +configure_file(check_tree.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/check_tree.cmake" @ONLY) diff --git a/tests/ECMGenerateDBusServiceFileTest/check_tree.cmake.in b/tests/ECMGenerateDBusServiceFileTest/check_tree.cmake.in new file mode 100644 index 00000000..c5fe51c9 --- /dev/null +++ b/tests/ECMGenerateDBusServiceFileTest/check_tree.cmake.in @@ -0,0 +1,20 @@ +set(EXPECTED "@CMAKE_CURRENT_SOURCE_DIR@/expected") +set(ACTUAL "@CMAKE_INSTALL_PREFIX@") + +# Compares files in two directories, emits a fatal error if the top level files are different +# Takes a directory of expected files, and a directory of output files +function(compare_dirs expected output ) + file(GLOB files "${expected}/*") + foreach(file ${files}) + get_filename_component(name ${file} NAME) + + execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files ${file} "${output}/${name}" + RESULT_VARIABLE test_result + ) + If (NOT test_result EQUAL 0) + message(FATAL_ERROR "Test failed: ${file} doesn't match ${output}/${name}!") + endif() + endforeach() +endfunction() + +compare_dirs(${EXPECTED} ${ACTUAL}/test ) diff --git a/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.service b/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.service new file mode 100644 index 00000000..a8d1a4bf --- /dev/null +++ b/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.service @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.kde.kded5 +Exec=/usr/bin/kded5 diff --git a/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.service b/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.service new file mode 100644 index 00000000..bd0dd0ce --- /dev/null +++ b/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.service @@ -0,0 +1,4 @@ +[D-BUS Service] +Name=org.kde.kded5.withSystemD +Exec=/usr/bin/kded5 +SystemdService=plasma-kded.service |