diff --git a/Tests/CMakeCommands/CMakeLists.txt b/Tests/CMakeCommands/CMakeLists.txt index aa400d02e..e9e4020e1 100644 --- a/Tests/CMakeCommands/CMakeLists.txt +++ b/Tests/CMakeCommands/CMakeLists.txt @@ -8,4 +8,3 @@ macro(add_CMakeCommands_test test) endmacro() add_CMakeCommands_test(build_command) -add_CMakeCommands_test(find_package) diff --git a/Tests/CMakeCommands/find_package/CMakeLists.txt b/Tests/CMakeCommands/find_package/CMakeLists.txt deleted file mode 100644 index c2deed05c..000000000 --- a/Tests/CMakeCommands/find_package/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -cmake_minimum_required(VERSION 2.8) -project(${TEST} NONE) -include(${TEST}.cmake) diff --git a/Tests/CMakeCommands/find_package/test.cmake b/Tests/CMakeCommands/find_package/test.cmake deleted file mode 100644 index dd1072ec5..000000000 --- a/Tests/CMakeCommands/find_package/test.cmake +++ /dev/null @@ -1,80 +0,0 @@ -if(NOT DEFINED dir) - message(FATAL_ERROR "dir not defined") -endif() - -if(NOT DEFINED gen) - message(FATAL_ERROR "gen not defined") -endif() - -# TODO: Generalize this for other tests. -function(run_test test) - set(top_src "${CMAKE_CURRENT_LIST_DIR}") - set(top_bin "${dir}") - if(EXISTS ${top_src}/${test}-result.txt) - file(READ ${top_src}/${test}-result.txt expect_result) - string(REGEX REPLACE "\n+$" "" expect_result "${expect_result}") - else() - set(expect_result 0) - endif() - foreach(o out err) - if(EXISTS ${top_src}/${test}-std${o}.txt) - file(READ ${top_src}/${test}-std${o}.txt expect_std${o}) - string(REGEX REPLACE "\n+$" "" expect_std${o} "${expect_std${o}}") - else() - unset(expect_std${o}) - endif() - endforeach() - set(source_dir "${top_src}") - set(binary_dir "${top_bin}/${test}-build") - file(REMOVE_RECURSE "${binary_dir}") - file(MAKE_DIRECTORY "${binary_dir}") - execute_process( - COMMAND ${CMAKE_COMMAND} "${source_dir}" -G "${gen}" -DTEST=${test} - WORKING_DIRECTORY "${binary_dir}" - OUTPUT_VARIABLE actual_stdout - ERROR_VARIABLE actual_stderr - RESULT_VARIABLE actual_result - ) - set(msg "") - if(NOT "${actual_result}" STREQUAL "${expect_result}") - set(msg "${msg}Result is [${actual_result}], not [${expect_result}].\n") - endif() - foreach(o out err) - string(REGEX REPLACE "\n+$" "" actual_std${o} "${actual_std${o}}") - set(expect_${o} "") - if(DEFINED expect_std${o}) - if(NOT "${actual_std${o}}" MATCHES "${expect_std${o}}") - string(REGEX REPLACE "\n" "\n expect-${o}> " expect_${o} - " expect-${o}> ${expect_std${o}}") - set(expect_${o} "Expected std${o} to match:\n${expect_${o}}\n") - set(msg "${msg}std${o} does not match that expected.\n") - endif() - endif() - endforeach() - if(msg) - string(REGEX REPLACE "\n" "\n actual-out> " actual_out " actual-out> ${actual_stdout}") - string(REGEX REPLACE "\n" "\n actual-err> " actual_err " actual-err> ${actual_stderr}") - message(SEND_ERROR "${test} - FAILED:\n" - "${msg}" - "${expect_out}" - "Actual stdout:\n${actual_out}\n" - "${expect_err}" - "Actual stderr:\n${actual_err}\n" - ) - else() - message(STATUS "${test} - PASSED") - endif() -endfunction() - -run_test(MissingNormal) -run_test(MissingNormalRequired) -run_test(MissingNormalVersion) -run_test(MissingNormalWarnNoModuleOld) -run_test(MissingNormalWarnNoModuleNew) -run_test(MissingModule) -run_test(MissingModuleRequired) -run_test(MissingConfig) -run_test(MissingConfigOneName) -run_test(MissingConfigRequired) -run_test(MissingConfigVersion) -run_test(MixedModeOptions) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 5f10bd7d9..2dbb08e6f 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -39,3 +39,5 @@ macro(add_RunCMake_test test) -P "${CMAKE_CURRENT_SOURCE_DIR}/${test}/RunCMakeTest.cmake" ) endmacro() + +add_RunCMake_test(find_package) diff --git a/Tests/RunCMake/find_package/CMakeLists.txt b/Tests/RunCMake/find_package/CMakeLists.txt new file mode 100644 index 000000000..e8db6b05b --- /dev/null +++ b/Tests/RunCMake/find_package/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 2.8) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/CMakeCommands/find_package/MissingConfig-stderr.txt b/Tests/RunCMake/find_package/MissingConfig-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfig-stderr.txt rename to Tests/RunCMake/find_package/MissingConfig-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingConfig.cmake b/Tests/RunCMake/find_package/MissingConfig.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfig.cmake rename to Tests/RunCMake/find_package/MissingConfig.cmake diff --git a/Tests/CMakeCommands/find_package/MissingConfigOneName-stderr.txt b/Tests/RunCMake/find_package/MissingConfigOneName-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfigOneName-stderr.txt rename to Tests/RunCMake/find_package/MissingConfigOneName-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingConfigOneName.cmake b/Tests/RunCMake/find_package/MissingConfigOneName.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfigOneName.cmake rename to Tests/RunCMake/find_package/MissingConfigOneName.cmake diff --git a/Tests/CMakeCommands/find_package/MissingConfigRequired-result.txt b/Tests/RunCMake/find_package/MissingConfigRequired-result.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfigRequired-result.txt rename to Tests/RunCMake/find_package/MissingConfigRequired-result.txt diff --git a/Tests/CMakeCommands/find_package/MissingConfigRequired-stderr.txt b/Tests/RunCMake/find_package/MissingConfigRequired-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfigRequired-stderr.txt rename to Tests/RunCMake/find_package/MissingConfigRequired-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingConfigRequired.cmake b/Tests/RunCMake/find_package/MissingConfigRequired.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfigRequired.cmake rename to Tests/RunCMake/find_package/MissingConfigRequired.cmake diff --git a/Tests/CMakeCommands/find_package/MissingConfigVersion-stderr.txt b/Tests/RunCMake/find_package/MissingConfigVersion-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfigVersion-stderr.txt rename to Tests/RunCMake/find_package/MissingConfigVersion-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingConfigVersion.cmake b/Tests/RunCMake/find_package/MissingConfigVersion.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingConfigVersion.cmake rename to Tests/RunCMake/find_package/MissingConfigVersion.cmake diff --git a/Tests/CMakeCommands/find_package/MissingModule-stderr.txt b/Tests/RunCMake/find_package/MissingModule-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingModule-stderr.txt rename to Tests/RunCMake/find_package/MissingModule-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingModule.cmake b/Tests/RunCMake/find_package/MissingModule.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingModule.cmake rename to Tests/RunCMake/find_package/MissingModule.cmake diff --git a/Tests/CMakeCommands/find_package/MissingModuleRequired-result.txt b/Tests/RunCMake/find_package/MissingModuleRequired-result.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingModuleRequired-result.txt rename to Tests/RunCMake/find_package/MissingModuleRequired-result.txt diff --git a/Tests/CMakeCommands/find_package/MissingModuleRequired-stderr.txt b/Tests/RunCMake/find_package/MissingModuleRequired-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingModuleRequired-stderr.txt rename to Tests/RunCMake/find_package/MissingModuleRequired-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingModuleRequired.cmake b/Tests/RunCMake/find_package/MissingModuleRequired.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingModuleRequired.cmake rename to Tests/RunCMake/find_package/MissingModuleRequired.cmake diff --git a/Tests/CMakeCommands/find_package/MissingNormal-stderr.txt b/Tests/RunCMake/find_package/MissingNormal-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormal-stderr.txt rename to Tests/RunCMake/find_package/MissingNormal-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingNormal.cmake b/Tests/RunCMake/find_package/MissingNormal.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormal.cmake rename to Tests/RunCMake/find_package/MissingNormal.cmake diff --git a/Tests/CMakeCommands/find_package/MissingNormalRequired-result.txt b/Tests/RunCMake/find_package/MissingNormalRequired-result.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalRequired-result.txt rename to Tests/RunCMake/find_package/MissingNormalRequired-result.txt diff --git a/Tests/CMakeCommands/find_package/MissingNormalRequired-stderr.txt b/Tests/RunCMake/find_package/MissingNormalRequired-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalRequired-stderr.txt rename to Tests/RunCMake/find_package/MissingNormalRequired-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingNormalRequired.cmake b/Tests/RunCMake/find_package/MissingNormalRequired.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalRequired.cmake rename to Tests/RunCMake/find_package/MissingNormalRequired.cmake diff --git a/Tests/CMakeCommands/find_package/MissingNormalVersion-stderr.txt b/Tests/RunCMake/find_package/MissingNormalVersion-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalVersion-stderr.txt rename to Tests/RunCMake/find_package/MissingNormalVersion-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingNormalVersion.cmake b/Tests/RunCMake/find_package/MissingNormalVersion.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalVersion.cmake rename to Tests/RunCMake/find_package/MissingNormalVersion.cmake diff --git a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew-stderr.txt b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew-stderr.txt rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew.cmake b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleNew.cmake rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleNew.cmake diff --git a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld-stderr.txt b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld-stderr.txt rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld.cmake b/Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MissingNormalWarnNoModuleOld.cmake rename to Tests/RunCMake/find_package/MissingNormalWarnNoModuleOld.cmake diff --git a/Tests/CMakeCommands/find_package/MixedModeOptions-result.txt b/Tests/RunCMake/find_package/MixedModeOptions-result.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MixedModeOptions-result.txt rename to Tests/RunCMake/find_package/MixedModeOptions-result.txt diff --git a/Tests/CMakeCommands/find_package/MixedModeOptions-stderr.txt b/Tests/RunCMake/find_package/MixedModeOptions-stderr.txt similarity index 100% rename from Tests/CMakeCommands/find_package/MixedModeOptions-stderr.txt rename to Tests/RunCMake/find_package/MixedModeOptions-stderr.txt diff --git a/Tests/CMakeCommands/find_package/MixedModeOptions.cmake b/Tests/RunCMake/find_package/MixedModeOptions.cmake similarity index 100% rename from Tests/CMakeCommands/find_package/MixedModeOptions.cmake rename to Tests/RunCMake/find_package/MixedModeOptions.cmake diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake b/Tests/RunCMake/find_package/RunCMakeTest.cmake new file mode 100644 index 000000000..ba57f99e8 --- /dev/null +++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake @@ -0,0 +1,14 @@ +include(RunCMake) + +run_cmake(MissingNormal) +run_cmake(MissingNormalRequired) +run_cmake(MissingNormalVersion) +run_cmake(MissingNormalWarnNoModuleOld) +run_cmake(MissingNormalWarnNoModuleNew) +run_cmake(MissingModule) +run_cmake(MissingModuleRequired) +run_cmake(MissingConfig) +run_cmake(MissingConfigOneName) +run_cmake(MissingConfigRequired) +run_cmake(MissingConfigVersion) +run_cmake(MixedModeOptions)