From 5ae259602700cac4e001987ccb72454d24753414 Mon Sep 17 00:00:00 2001 From: Matthew Woehlke Date: Thu, 6 Feb 2025 14:42:12 -0500 Subject: Tests: Simplify and improve RunCMake/find_package-CPS tests Refactor common logic out of individual RunCMake/find_package-CPS tests. Move enabling the experimental gate to the RunCMakeTest.cmake, add a separate test to verify the experimental warning, and suppress it everywhere else. This will greatly simplify writing non-failure tests. --- .../ExperimentalWarning-stderr.txt | 27 ++++++++++++++++++++++ .../find_package-CPS/ExperimentalWarning.cmake | 10 ++++++++ .../find_package-CPS/MissingComponent.cmake | 14 +---------- .../MissingComponentDependency.cmake | 14 +---------- .../MissingTransitiveComponent.cmake | 14 +---------- .../MissingTransitiveComponentDependency.cmake | 14 +---------- .../MissingTransitiveDependency-stderr.txt | 8 ------- .../MissingTransitiveDependency.cmake | 14 +---------- Tests/RunCMake/find_package-CPS/RunCMakeTest.cmake | 8 +++++++ Tests/RunCMake/find_package-CPS/Setup.cmake | 11 +++++++++ 10 files changed, 61 insertions(+), 73 deletions(-) create mode 100644 Tests/RunCMake/find_package-CPS/ExperimentalWarning-stderr.txt create mode 100644 Tests/RunCMake/find_package-CPS/ExperimentalWarning.cmake create mode 100644 Tests/RunCMake/find_package-CPS/Setup.cmake diff --git a/Tests/RunCMake/find_package-CPS/ExperimentalWarning-stderr.txt b/Tests/RunCMake/find_package-CPS/ExperimentalWarning-stderr.txt new file mode 100644 index 0000000..d23e7d5 --- /dev/null +++ b/Tests/RunCMake/find_package-CPS/ExperimentalWarning-stderr.txt @@ -0,0 +1,27 @@ +CMake Warning \(dev\) at ExperimentalWarning\.cmake:[0-9]+ \(find_package\): + CMake's support for importing package information in the Common Package + Specification format \(via find_package\) is experimental\. It is meant only + for experimentation and feedback to CMake developers\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) +This warning is for project developers\. Use -Wno-dev to suppress it\. + +CMake Warning at ExperimentalWarning\.cmake:[0-9]+ \(find_package\): + By not providing "FindDoesNotExist\.cmake" in CMAKE_MODULE_PATH this project + has asked CMake to find a package configuration file provided by + "DoesNotExist", but CMake did not find one\. + + Could not find a package configuration file provided by "DoesNotExist" with + any of the following names: + + DoesNotExist\.cps + doesnotexist\.cps + DoesNotExistConfig\.cmake + doesnotexist-config\.cmake + + Add the installation prefix of "DoesNotExist" to CMAKE_PREFIX_PATH or set + "DoesNotExist_DIR" to a directory containing one of the above files\. If + "DoesNotExist" provides a separate development package or SDK, be sure it + has been installed\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) diff --git a/Tests/RunCMake/find_package-CPS/ExperimentalWarning.cmake b/Tests/RunCMake/find_package-CPS/ExperimentalWarning.cmake new file mode 100644 index 0000000..3837352 --- /dev/null +++ b/Tests/RunCMake/find_package-CPS/ExperimentalWarning.cmake @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 4.0) + +set( + CMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES + "e82e467b-f997-4464-8ace-b00808fff261" + ) + +include(Setup.cmake) + +find_package(DoesNotExist) diff --git a/Tests/RunCMake/find_package-CPS/MissingComponent.cmake b/Tests/RunCMake/find_package-CPS/MissingComponent.cmake index 4e1919f..c34cd72 100644 --- a/Tests/RunCMake/find_package-CPS/MissingComponent.cmake +++ b/Tests/RunCMake/find_package-CPS/MissingComponent.cmake @@ -1,18 +1,6 @@ cmake_minimum_required(VERSION 4.0) -set(CMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES "e82e467b-f997-4464-8ace-b00808fff261") - -# Protect tests from running inside the default install prefix. -set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/NotDefaultPrefix") - -# Disable built-in search paths. -set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF) -set(CMAKE_FIND_USE_INSTALL_PREFIX OFF) - -set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +include(Setup.cmake) ############################################################################### # Test requesting unavailable components from a package. diff --git a/Tests/RunCMake/find_package-CPS/MissingComponentDependency.cmake b/Tests/RunCMake/find_package-CPS/MissingComponentDependency.cmake index c987b35..a965797 100644 --- a/Tests/RunCMake/find_package-CPS/MissingComponentDependency.cmake +++ b/Tests/RunCMake/find_package-CPS/MissingComponentDependency.cmake @@ -1,18 +1,6 @@ cmake_minimum_required(VERSION 4.0) -set(CMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES "e82e467b-f997-4464-8ace-b00808fff261") - -# Protect tests from running inside the default install prefix. -set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/NotDefaultPrefix") - -# Disable built-in search paths. -set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF) -set(CMAKE_FIND_USE_INSTALL_PREFIX OFF) - -set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +include(Setup.cmake) ############################################################################### # Test requesting components with missing dependencies from a package. diff --git a/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent.cmake b/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent.cmake index b8fd02a..e6951a9 100644 --- a/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent.cmake +++ b/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent.cmake @@ -1,18 +1,6 @@ cmake_minimum_required(VERSION 4.0) -set(CMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES "e82e467b-f997-4464-8ace-b00808fff261") - -# Protect tests from running inside the default install prefix. -set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/NotDefaultPrefix") - -# Disable built-in search paths. -set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF) -set(CMAKE_FIND_USE_INSTALL_PREFIX OFF) - -set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +include(Setup.cmake) ############################################################################### # Test depending on components of another package which are unavailable. diff --git a/Tests/RunCMake/find_package-CPS/MissingTransitiveComponentDependency.cmake b/Tests/RunCMake/find_package-CPS/MissingTransitiveComponentDependency.cmake index caf8f3b..10a8fd5 100644 --- a/Tests/RunCMake/find_package-CPS/MissingTransitiveComponentDependency.cmake +++ b/Tests/RunCMake/find_package-CPS/MissingTransitiveComponentDependency.cmake @@ -1,18 +1,6 @@ cmake_minimum_required(VERSION 4.0) -set(CMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES "e82e467b-f997-4464-8ace-b00808fff261") - -# Protect tests from running inside the default install prefix. -set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/NotDefaultPrefix") - -# Disable built-in search paths. -set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF) -set(CMAKE_FIND_USE_INSTALL_PREFIX OFF) - -set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +include(Setup.cmake) ############################################################################### # Test depending on components of another package which are missing diff --git a/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency-stderr.txt b/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency-stderr.txt index eaa3cd2..8ba8055 100644 --- a/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency-stderr.txt +++ b/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency-stderr.txt @@ -1,11 +1,3 @@ -CMake Warning \(dev\) at MissingTransitiveDependency\.cmake:[0-9]+ \(find_package\): - CMake's support for importing package information in the Common Package - Specification format \(via find_package\) is experimental\. It is meant only - for experimentation and feedback to CMake developers. -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\) -This warning is for project developers. Use -Wno-dev to suppress it. -+ CMake Error in cps/[Ss]till[Ii]ncomplete\.cps: Could not find a package configuration file provided by "DoesNotExist" with any of the following names: diff --git a/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency.cmake b/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency.cmake index 229066a..3338071 100644 --- a/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency.cmake +++ b/Tests/RunCMake/find_package-CPS/MissingTransitiveDependency.cmake @@ -1,18 +1,6 @@ cmake_minimum_required(VERSION 4.0) -set(CMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES "e82e467b-f997-4464-8ace-b00808fff261") - -# Protect tests from running inside the default install prefix. -set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/NotDefaultPrefix") - -# Disable built-in search paths. -set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) -set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF) -set(CMAKE_FIND_USE_INSTALL_PREFIX OFF) - -set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +include(Setup.cmake) ############################################################################### # Test finding a package that is missing dependencies. diff --git a/Tests/RunCMake/find_package-CPS/RunCMakeTest.cmake b/Tests/RunCMake/find_package-CPS/RunCMakeTest.cmake index 12e18c6..67de955 100644 --- a/Tests/RunCMake/find_package-CPS/RunCMakeTest.cmake +++ b/Tests/RunCMake/find_package-CPS/RunCMakeTest.cmake @@ -1,5 +1,13 @@ include(RunCMake) +run_cmake(ExperimentalWarning) + +# Enable experimental feature and suppress warnings +set(RunCMake_TEST_OPTIONS + -Wno-dev + "-DCMAKE_EXPERIMENTAL_FIND_CPS_PACKAGES:STRING=e82e467b-f997-4464-8ace-b00808fff261" + ) + run_cmake(MissingTransitiveDependency) run_cmake(MissingComponent) run_cmake(MissingComponentDependency) diff --git a/Tests/RunCMake/find_package-CPS/Setup.cmake b/Tests/RunCMake/find_package-CPS/Setup.cmake new file mode 100644 index 0000000..df68979 --- /dev/null +++ b/Tests/RunCMake/find_package-CPS/Setup.cmake @@ -0,0 +1,11 @@ +# Protect tests from running inside the default install prefix. +set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/NotDefaultPrefix") + +# Disable built-in search paths. +set(CMAKE_FIND_USE_PACKAGE_ROOT_PATH OFF) +set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF) +set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) +set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF) +set(CMAKE_FIND_USE_INSTALL_PREFIX OFF) + +set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) -- cgit v0.12