diff options
Diffstat (limited to 'tests/ECMConfiguredInstallTest')
10 files changed, 61 insertions, 0 deletions
diff --git a/tests/ECMConfiguredInstallTest/CMakeLists.txt b/tests/ECMConfiguredInstallTest/CMakeLists.txt new file mode 100644 index 00000000..a698dd0b --- /dev/null +++ b/tests/ECMConfiguredInstallTest/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.5) +project(ECMConfiguredInstallTest) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../modules) + +# make sure the test install dir is clean +file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}") +include(ECMConfiguredInstall) + +# run test + +set(FOO myFoo) +set(BAR myBar) + +ecm_install_configured_files(INPUT configured.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/test) + +ecm_install_configured_files(INPUT configured_atOnly.txt.in DESTINATION ${CMAKE_INSTALL_PREFIX}/test @ONLY ESCAPE_QUOTES) + +ecm_install_configured_files(INPUT multi1.txt.in ${CMAKE_CURRENT_SOURCE_DIR}/multi2.txt.in 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/ECMConfiguredInstallTest/check_tree.cmake.in b/tests/ECMConfiguredInstallTest/check_tree.cmake.in new file mode 100644 index 00000000..c5fe51c9 --- /dev/null +++ b/tests/ECMConfiguredInstallTest/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/ECMConfiguredInstallTest/configured.txt b/tests/ECMConfiguredInstallTest/configured.txt new file mode 100644 index 00000000..8dd0d5d5 --- /dev/null +++ b/tests/ECMConfiguredInstallTest/configured.txt @@ -0,0 +1,3 @@ +[General] +Foo=@FOO@ +Bar=${BAR} diff --git a/tests/ECMConfiguredInstallTest/configured_atOnly.txt.in b/tests/ECMConfiguredInstallTest/configured_atOnly.txt.in new file mode 100644 index 00000000..8dd0d5d5 --- /dev/null +++ b/tests/ECMConfiguredInstallTest/configured_atOnly.txt.in @@ -0,0 +1,3 @@ +[General] +Foo=@FOO@ +Bar=${BAR} diff --git a/tests/ECMConfiguredInstallTest/expected/configured.txt b/tests/ECMConfiguredInstallTest/expected/configured.txt new file mode 100644 index 00000000..119db8fc --- /dev/null +++ b/tests/ECMConfiguredInstallTest/expected/configured.txt @@ -0,0 +1,3 @@ +[General] +Foo=myFoo +Bar=myBar diff --git a/tests/ECMConfiguredInstallTest/expected/configured_atOnly.txt b/tests/ECMConfiguredInstallTest/expected/configured_atOnly.txt new file mode 100644 index 00000000..68a37bf1 --- /dev/null +++ b/tests/ECMConfiguredInstallTest/expected/configured_atOnly.txt @@ -0,0 +1,3 @@ +[General] +Foo=myFoo +Bar=${BAR} diff --git a/tests/ECMConfiguredInstallTest/expected/multi1.txt b/tests/ECMConfiguredInstallTest/expected/multi1.txt new file mode 100644 index 00000000..a8f6a104 --- /dev/null +++ b/tests/ECMConfiguredInstallTest/expected/multi1.txt @@ -0,0 +1,2 @@ +TestMulti1 +Foo=myFoo diff --git a/tests/ECMConfiguredInstallTest/expected/multi2.txt b/tests/ECMConfiguredInstallTest/expected/multi2.txt new file mode 100644 index 00000000..b396657d --- /dev/null +++ b/tests/ECMConfiguredInstallTest/expected/multi2.txt @@ -0,0 +1,2 @@ +TestMulti2 +Foo=myFoo diff --git a/tests/ECMConfiguredInstallTest/multi1.txt.in b/tests/ECMConfiguredInstallTest/multi1.txt.in new file mode 100644 index 00000000..9e98c14e --- /dev/null +++ b/tests/ECMConfiguredInstallTest/multi1.txt.in @@ -0,0 +1,2 @@ +TestMulti1 +Foo=@FOO@ diff --git a/tests/ECMConfiguredInstallTest/multi2.txt.in b/tests/ECMConfiguredInstallTest/multi2.txt.in new file mode 100644 index 00000000..018ad639 --- /dev/null +++ b/tests/ECMConfiguredInstallTest/multi2.txt.in @@ -0,0 +1,2 @@ +TestMulti2 +Foo=@FOO@ |