summaryrefslogtreecommitdiff
path: root/Tests/RunCMake/WriteBasicConfigVersionFile
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2021-10-08 09:20:29 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2021-10-08 09:20:29 +0900
commite2f5ee91b89a80c7801baf3870845d7fe54b3dd7 (patch)
treecc05a38068e6be9a648de142c12aea86066a97fd /Tests/RunCMake/WriteBasicConfigVersionFile
parentf7fbee1ce7e4f73a5a46681cf010a9ac85c3ad87 (diff)
downloadcmake-e2f5ee91b89a80c7801baf3870845d7fe54b3dd7.tar.gz
cmake-e2f5ee91b89a80c7801baf3870845d7fe54b3dd7.tar.bz2
cmake-e2f5ee91b89a80c7801baf3870845d7fe54b3dd7.zip
Imported Upstream version 3.19.2upstream/3.19.2
Diffstat (limited to 'Tests/RunCMake/WriteBasicConfigVersionFile')
-rw-r--r--Tests/RunCMake/WriteBasicConfigVersionFile/All.cmake125
1 files changed, 107 insertions, 18 deletions
diff --git a/Tests/RunCMake/WriteBasicConfigVersionFile/All.cmake b/Tests/RunCMake/WriteBasicConfigVersionFile/All.cmake
index 425365239..c32c92dac 100644
--- a/Tests/RunCMake/WriteBasicConfigVersionFile/All.cmake
+++ b/Tests/RunCMake/WriteBasicConfigVersionFile/All.cmake
@@ -3,16 +3,16 @@ set(CMAKE_SIZEOF_VOID_P 4)
include(WriteBasicConfigVersionFile)
-set(_compatibilities AnyNewerVersion
- SameMajorVersion
- SameMinorVersion
- ExactVersion)
+set(COMPATIBILITIES AnyNewerVersion
+ SameMajorVersion
+ SameMinorVersion
+ ExactVersion)
function(TEST_WRITE_BASIC_CONFIG_VERSION_FILE_PREPARE _version_installed)
set(_same_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
set(_no_CMAKE_SIZEOF_VOID_P "")
math(EXPR _diff_CMAKE_SIZEOF_VOID_P "${CMAKE_SIZEOF_VOID_P} + 1")
- foreach(_compat ${_compatibilities})
+ foreach(_compat ${COMPATIBILITIES})
set(_pkg ${_compat}${_version_installed})
string(REPLACE "." "" _pkg ${_pkg})
set(_filename "${CMAKE_CURRENT_BINARY_DIR}/${_pkg}ConfigVersion.cmake")
@@ -71,20 +71,58 @@ function(TEST_WRITE_BASIC_CONFIG_VERSION_FILE _version_installed
_expected_compatible_SameMajorVersion
_expected_compatible_SameMinorVersion
_expected_compatible_ExactVersion)
- set(PACKAGE_FIND_VERSION ${_version_requested})
- if("${PACKAGE_FIND_VERSION}" MATCHES [[(^([0-9]+)(\.([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?)?)?$]])
- set(PACKAGE_FIND_VERSION_MAJOR "${CMAKE_MATCH_2}")
- set(PACKAGE_FIND_VERSION_MINOR "${CMAKE_MATCH_4}")
- set(PACKAGE_FIND_VERSION_PATCH "${CMAKE_MATCH_6}")
- set(PACKAGE_FIND_VERSION_TWEAK "${CMAKE_MATCH_8}")
- else()
- message(FATAL_ERROR "_version_requested (${_version_requested}) should be a version number")
- endif()
-
- if ("${_version_installed}" STREQUAL "${_version_requested}")
- set(_expected_exact 1)
- else()
+ if("${_version_requested}" MATCHES [[^([0-9]+(\.[0-9]+)*)\.\.\.(<)?([0-9]+(\.[0-9]+)*)$]])
+ set (_compatibilities ${COMPATIBILITIES})
+ # ExactVersion must not be tested
+ list(POP_BACK _compatibilities)
+ set(PACKAGE_FIND_VERSION_RANGE TRUE)
+ set(PACKAGE_FIND_VERSION_RANGE_MIN INCLUDE)
+ if ("${CMAKE_MATCH_3}" STREQUAL "<")
+ set(PACKAGE_FIND_VERSION_RANGE_MAX EXCLUDE)
+ else()
+ set(PACKAGE_FIND_VERSION_RANGE_MAX INCLUDE)
+ endif()
+ set(PACKAGE_FIND_VERSION_MIN "${CMAKE_MATCH_1}")
+ set(PACKAGE_FIND_VERSION_MAX "${CMAKE_MATCH_4}")
+ if("${PACKAGE_FIND_VERSION_MIN}" MATCHES [[(^([0-9]+)(\.([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?)?)?$]])
+ set(PACKAGE_FIND_VERSION_MIN_MAJOR "${CMAKE_MATCH_2}")
+ set(PACKAGE_FIND_VERSION_MIN_MINOR "${CMAKE_MATCH_4}")
+ set(PACKAGE_FIND_VERSION_MIN_PATCH "${CMAKE_MATCH_6}")
+ set(PACKAGE_FIND_VERSION_MIN_TWEAK "${CMAKE_MATCH_8}")
+ else()
+ message(FATAL_ERROR "_version_requested (${_version_requested}) should be a version range")
+ endif()
+ set(PACKAGE_FIND_VERSION "${PACKAGE_FIND_VERSION_MIN}")
+ set(PACKAGE_FIND_VERSION_MAJOR "${PACKAGE_FIND_VERSION_MIN_MAJOR}")
+ set(PACKAGE_FIND_VERSION_MINOR "${PACKAGE_FIND_VERSION_MIN_MINOR}")
+ set(PACKAGE_FIND_VERSION_PATCH "${PACKAGE_FIND_VERSION_MIN_PATCH}")
+ set(PACKAGE_FIND_VERSION_TWEAK "${PACKAGE_FIND_VERSION_MIN_TWEAK}")
+ if("${PACKAGE_FIND_VERSION_MAX}" MATCHES [[(^([0-9]+)(\.([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?)?)?$]])
+ set(PACKAGE_FIND_VERSION_MAX_MAJOR "${CMAKE_MATCH_2}")
+ set(PACKAGE_FIND_VERSION_MAX_MINOR "${CMAKE_MATCH_4}")
+ set(PACKAGE_FIND_VERSION_MAX_PATCH "${CMAKE_MATCH_6}")
+ set(PACKAGE_FIND_VERSION_MAX_TWEAK "${CMAKE_MATCH_8}")
+ else()
+ message(FATAL_ERROR "_version_requested (${_version_requested}) should be a version range")
+ endif()
set(_expected_exact 0)
+ else()
+ set (_compatibilities ${COMPATIBILITIES})
+ set(PACKAGE_FIND_VERSION ${_version_requested})
+ if("${PACKAGE_FIND_VERSION}" MATCHES [[(^([0-9]+)(\.([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?)?)?$]])
+ set(PACKAGE_FIND_VERSION_MAJOR "${CMAKE_MATCH_2}")
+ set(PACKAGE_FIND_VERSION_MINOR "${CMAKE_MATCH_4}")
+ set(PACKAGE_FIND_VERSION_PATCH "${CMAKE_MATCH_6}")
+ set(PACKAGE_FIND_VERSION_TWEAK "${CMAKE_MATCH_8}")
+ else()
+ message(FATAL_ERROR "_version_requested (${_version_requested}) should be a version number")
+ endif()
+
+ if ("${_version_installed}" STREQUAL "${_version_requested}")
+ set(_expected_exact 1)
+ else()
+ set(_expected_exact 0)
+ endif()
endif()
unset(PACKAGE_VERSION_COMPATIBLE)
@@ -882,3 +920,54 @@ test_write_basic_config_version_file(4.5.6.7 9.9.9.0 0 0 0 0) # Request [ne
test_write_basic_config_version_file(4.5.6.7 9.9.9.2 0 0 0 0) # Request [newer major].[newer minor].[newer patch].[older tweak]
test_write_basic_config_version_file(4.5.6.7 9.9.9.7 0 0 0 0) # Request [newer major].[newer minor].[newer patch].[same tweak]
test_write_basic_config_version_file(4.5.6.7 9.9.9.9 0 0 0 0) # Request [newer major].[newer minor].[newer patch].[newer tweak]
+
+test_write_basic_config_version_file(4 0...5 1 0 0 0)
+test_write_basic_config_version_file(4 2...5 1 0 0 0)
+test_write_basic_config_version_file(4 2...4 1 0 0 0)
+test_write_basic_config_version_file(4 4...<5 1 1 0 0)
+test_write_basic_config_version_file(4 9...10 0 0 0 0)
+
+test_write_basic_config_version_file(4 0.1...5 1 0 0 0)
+test_write_basic_config_version_file(4 2.1...5 1 0 0 0)
+test_write_basic_config_version_file(4 2.8...5 1 0 0 0)
+test_write_basic_config_version_file(4 2.1...4 1 0 0 0)
+test_write_basic_config_version_file(4 2.8...4 1 0 0 0)
+test_write_basic_config_version_file(4 4.0...<5 1 1 0 0)
+test_write_basic_config_version_file(4 4.8...<5 0 0 0 0)
+test_write_basic_config_version_file(4 4.1...5 0 0 0 0)
+test_write_basic_config_version_file(4 4.8...5 0 0 0 0)
+test_write_basic_config_version_file(4 9.1...10 0 0 0 0)
+test_write_basic_config_version_file(4 9.8...10 0 0 0 0)
+
+
+test_write_basic_config_version_file(4.5 0.1...5 1 0 0 0)
+test_write_basic_config_version_file(4.5 2.1...5 1 0 0 0)
+test_write_basic_config_version_file(4.5 2.8...5 1 0 0 0)
+test_write_basic_config_version_file(4.5 2.1...4 0 0 0 0)
+test_write_basic_config_version_file(4.5 2.8...4 0 0 0 0)
+test_write_basic_config_version_file(4.5 2.8...4.8 1 0 0 0)
+test_write_basic_config_version_file(4.5 4.1...<5 1 1 0 0)
+test_write_basic_config_version_file(4.5 4.8...<5 0 0 0 0)
+test_write_basic_config_version_file(4.5 4.5...4.5.8 1 1 1 0)
+test_write_basic_config_version_file(4.5 4.5...<4.6 1 1 1 0)
+test_write_basic_config_version_file(4.5 4.1...5 1 0 0 0)
+test_write_basic_config_version_file(4.5 4.8...5 0 0 0 0)
+test_write_basic_config_version_file(4.5 9.1...10 0 0 0 0)
+test_write_basic_config_version_file(4.5 9.8...10 0 0 0 0)
+
+
+test_write_basic_config_version_file(4.5.6 0.1...5 1 0 0 0)
+test_write_basic_config_version_file(4.5.6 2.1...5 1 0 0 0)
+test_write_basic_config_version_file(4.5.6 2.8...5 1 0 0 0)
+test_write_basic_config_version_file(4.5.6 2.1...4 0 0 0 0)
+test_write_basic_config_version_file(4.5.6 2.8...4 0 0 0 0)
+test_write_basic_config_version_file(4.5.6 2.8...4.8 1 0 0 0)
+test_write_basic_config_version_file(4.5.6 4.1...<5 1 1 0 0)
+test_write_basic_config_version_file(4.5.6 4.8...<5 0 0 0 0)
+test_write_basic_config_version_file(4.5.6 4.5...4.5.4 0 0 0 0)
+test_write_basic_config_version_file(4.5.6 4.5...4.5.8 1 1 1 0)
+test_write_basic_config_version_file(4.5.6 4.5...<4.6 1 1 1 0)
+test_write_basic_config_version_file(4.5.6 4.1...5 1 0 0 0)
+test_write_basic_config_version_file(4.5.6 4.8...5 0 0 0 0)
+test_write_basic_config_version_file(4.5.6 9.1...10 0 0 0 0)
+test_write_basic_config_version_file(4.5.6 9.8...10 0 0 0 0)