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.
This commit is contained in:
Matthew Woehlke authored and Brad King committed 2025-02-06 15:23:09 -05:00
1 parent 619c1bacfd
commit 5ae2596027
10 files changed
+61 -73

No files matched your search

@@ -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\)
@@ -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)
@@ -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.
@@ -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.
@@ -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.
@@ -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
@@ -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:
@@ -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.
@@ -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)
@@ -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})