aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@kde.org>2014-12-28 16:32:13 +0000
committerAlex Merry <alex.merry@kde.org>2014-12-28 17:30:11 +0000
commitf8af407eba5c5ea45be2c6351cf41a7cb44fed21 (patch)
tree0c3326caf677883ec00e292312213acefe366877 /tests
parent351fe45dba7ac04ec2779b7d761ac55a58f89945 (diff)
downloadextra-cmake-modules-f8af407eba5c5ea45be2c6351cf41a7cb44fed21.tar.gz
extra-cmake-modules-f8af407eba5c5ea45be2c6351cf41a7cb44fed21.tar.bz2
Improve version file tests.
Mostly just refatoring to have less duplicated code.
Diffstat (limited to 'tests')
-rw-r--r--tests/ECMSetupVersionTest/new_explicit_header/CMakeLists.txt27
-rw-r--r--tests/ECMSetupVersionTest/new_explicit_header_abspath/CMakeLists.txt27
-rw-r--r--tests/ECMSetupVersionTest/new_explicit_simple/CMakeLists.txt27
-rw-r--r--tests/ECMSetupVersionTest/new_explicit_soversion/CMakeLists.txt27
-rw-r--r--tests/ECMSetupVersionTest/new_explicit_version_file/CMakeLists.txt37
-rw-r--r--tests/ECMSetupVersionTest/new_explicit_version_file_abspath/CMakeLists.txt37
-rw-r--r--tests/ECMSetupVersionTest/new_project_header/CMakeLists.txt26
-rw-r--r--tests/ECMSetupVersionTest/new_project_header_abspath/CMakeLists.txt26
-rw-r--r--tests/ECMSetupVersionTest/new_project_header_prefix/CMakeLists.txt25
-rw-r--r--tests/ECMSetupVersionTest/new_project_simple/CMakeLists.txt26
-rw-r--r--tests/ECMSetupVersionTest/new_project_simple_prefix/CMakeLists.txt25
-rw-r--r--tests/ECMSetupVersionTest/new_project_soversion/CMakeLists.txt26
-rw-r--r--tests/ECMSetupVersionTest/new_project_soversion_prefix/CMakeLists.txt25
-rw-r--r--tests/ECMSetupVersionTest/new_project_version_file/CMakeLists.txt37
-rw-r--r--tests/ECMSetupVersionTest/new_project_version_file_abspath/CMakeLists.txt36
-rw-r--r--tests/ECMSetupVersionTest/old_header/CMakeLists.txt25
-rw-r--r--tests/ECMSetupVersionTest/old_header_abspath/CMakeLists.txt24
-rw-r--r--tests/ECMSetupVersionTest/old_simple/CMakeLists.txt25
-rw-r--r--tests/ECMSetupVersionTest/old_soversion/CMakeLists.txt25
-rw-r--r--tests/ECMSetupVersionTest/old_version_file/CMakeLists.txt35
-rw-r--r--tests/ECMSetupVersionTest/old_version_file_abspath/CMakeLists.txt35
-rw-r--r--tests/ECMSetupVersionTest/old_version_file_anynewer/CMakeLists.txt65
-rw-r--r--tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt81
-rw-r--r--tests/ECMSetupVersionTest/old_version_file_samemajor/CMakeLists.txt80
-rw-r--r--tests/ECMSetupVersionTest/version_helpers.cmake123
-rw-r--r--tests/test_helpers.cmake43
26 files changed, 281 insertions, 714 deletions
diff --git a/tests/ECMSetupVersionTest/new_explicit_header/CMakeLists.txt b/tests/ECMSetupVersionTest/new_explicit_header/CMakeLists.txt
index 4c2383a3..164a8c17 100644
--- a/tests/ECMSetupVersionTest/new_explicit_header/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_explicit_header/CMakeLists.txt
@@ -10,29 +10,10 @@ ecm_setup_version(2.3.4
VERSION_HEADER "ecm_new_explicit_header_version.h"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "1.5.6.7")
-strcheck(PROJECT_VERSION_STRING "1.5.6.7")
-numcheck(PROJECT_VERSION_MAJOR 1)
-numcheck(PROJECT_VERSION_MINOR 5)
-numcheck(PROJECT_VERSION_PATCH 6)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+include(../version_helpers.cmake)
+project_version_var_checks(1.5.6.7)
+version_var_checks(Foo 2.3.4)
+assert_var_num_value(Foo_SOVERSION 2)
add_executable(check_header main.c)
target_include_directories(check_header PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
diff --git a/tests/ECMSetupVersionTest/new_explicit_header_abspath/CMakeLists.txt b/tests/ECMSetupVersionTest/new_explicit_header_abspath/CMakeLists.txt
index 772c28d3..abdea171 100644
--- a/tests/ECMSetupVersionTest/new_explicit_header_abspath/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_explicit_header_abspath/CMakeLists.txt
@@ -10,29 +10,10 @@ ecm_setup_version(2.3.4
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/../ecm_new_explicit_header_abspath_version.h"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "1.5.6.7")
-strcheck(PROJECT_VERSION_STRING "1.5.6.7")
-numcheck(PROJECT_VERSION_MAJOR 1)
-numcheck(PROJECT_VERSION_MINOR 5)
-numcheck(PROJECT_VERSION_PATCH 6)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+include(../version_helpers.cmake)
+project_version_var_checks(1.5.6.7)
+version_var_checks(Foo 2.3.4)
+assert_var_num_value(Foo_SOVERSION 2)
add_executable(check_header main.c)
target_include_directories(check_header PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/..")
diff --git a/tests/ECMSetupVersionTest/new_explicit_simple/CMakeLists.txt b/tests/ECMSetupVersionTest/new_explicit_simple/CMakeLists.txt
index fa989d61..18b8db1a 100644
--- a/tests/ECMSetupVersionTest/new_explicit_simple/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_explicit_simple/CMakeLists.txt
@@ -7,28 +7,9 @@ include(ECMSetupVersion)
ecm_setup_version(2.3.4 VARIABLE_PREFIX Foo)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "1.5.6.7")
-strcheck(PROJECT_VERSION_STRING "1.5.6.7")
-numcheck(PROJECT_VERSION_MAJOR 1)
-numcheck(PROJECT_VERSION_MINOR 5)
-numcheck(PROJECT_VERSION_PATCH 6)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+include(../version_helpers.cmake)
+project_version_var_checks(1.5.6.7)
+version_var_checks(Foo 2.3.4)
+assert_var_num_value(Foo_SOVERSION 2)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_explicit_soversion/CMakeLists.txt b/tests/ECMSetupVersionTest/new_explicit_soversion/CMakeLists.txt
index 1c50dcdb..45b80d89 100644
--- a/tests/ECMSetupVersionTest/new_explicit_soversion/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_explicit_soversion/CMakeLists.txt
@@ -10,28 +10,9 @@ ecm_setup_version(2.3.4
SOVERSION 1
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "1.5.6.7")
-strcheck(PROJECT_VERSION_STRING "1.5.6.7")
-numcheck(PROJECT_VERSION_MAJOR 1)
-numcheck(PROJECT_VERSION_MINOR 5)
-numcheck(PROJECT_VERSION_PATCH 6)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 1)
+include(../version_helpers.cmake)
+project_version_var_checks(1.5.6.7)
+version_var_checks(Foo 2.3.4)
+assert_var_num_value(Foo_SOVERSION 1)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_explicit_version_file/CMakeLists.txt b/tests/ECMSetupVersionTest/new_explicit_version_file/CMakeLists.txt
index f97c834e..4d50fa82 100644
--- a/tests/ECMSetupVersionTest/new_explicit_version_file/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_explicit_version_file/CMakeLists.txt
@@ -10,38 +10,11 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE FooVersion.cmake
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
+include(../version_helpers.cmake)
+project_version_var_checks(1.5.6.7)
+version_var_checks(Foo 2.3.4)
+assert_var_num_value(Foo_SOVERSION 2)
-strcheck(PROJECT_VERSION "1.5.6.7")
-strcheck(PROJECT_VERSION_STRING "1.5.6.7")
-numcheck(PROJECT_VERSION_MAJOR 1)
-numcheck(PROJECT_VERSION_MINOR 5)
-numcheck(PROJECT_VERSION_PATCH 6)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
-
-set(PACKAGE_FIND_VERSION "2.3.4")
-include("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
-strcheck(PACKAGE_VERSION "2.3.4")
-if(NOT PACKAGE_VERSION_COMPATIBLE)
- message(FATAL_ERROR "PACKAGE_VERSION_COMPATIBLE not TRUE")
-endif()
-if(NOT PACKAGE_VERSION_EXACT)
- message(FATAL_ERROR "PACKAGE_VERSION_EXACT not TRUE")
-endif()
+AnyNewer_2_3_4_checks("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_explicit_version_file_abspath/CMakeLists.txt b/tests/ECMSetupVersionTest/new_explicit_version_file_abspath/CMakeLists.txt
index cfe374cc..8fa2b788 100644
--- a/tests/ECMSetupVersionTest/new_explicit_version_file_abspath/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_explicit_version_file_abspath/CMakeLists.txt
@@ -10,38 +10,11 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/../NewExplicitVersionAbsPath.cmake"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
+include(../version_helpers.cmake)
+project_version_var_checks(1.5.6.7)
+version_var_checks(Foo 2.3.4)
+assert_var_num_value(Foo_SOVERSION 2)
-strcheck(PROJECT_VERSION "1.5.6.7")
-strcheck(PROJECT_VERSION_STRING "1.5.6.7")
-numcheck(PROJECT_VERSION_MAJOR 1)
-numcheck(PROJECT_VERSION_MINOR 5)
-numcheck(PROJECT_VERSION_PATCH 6)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
-
-set(PACKAGE_FIND_VERSION "2.3.4")
-include("${CMAKE_CURRENT_BINARY_DIR}/../NewExplicitVersionAbsPath.cmake")
-strcheck(PACKAGE_VERSION "2.3.4")
-if(NOT PACKAGE_VERSION_COMPATIBLE)
- message(FATAL_ERROR "PACKAGE_VERSION_COMPATIBLE not TRUE")
-endif()
-if(NOT PACKAGE_VERSION_EXACT)
- message(FATAL_ERROR "PACKAGE_VERSION_EXACT not TRUE")
-endif()
+AnyNewer_2_3_4_checks("${CMAKE_CURRENT_BINARY_DIR}/../NewExplicitVersionAbsPath.cmake")
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_project_header/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_header/CMakeLists.txt
index 00e12177..a7ccc18b 100644
--- a/tests/ECMSetupVersionTest/new_project_header/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_header/CMakeLists.txt
@@ -9,29 +9,9 @@ ecm_setup_version(PROJECT
VERSION_HEADER "ecm_new_project_header_version.h"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(new_project_header_VERSION "2.3.4")
-strcheck(new_project_header_VERSION_STRING "2.3.4")
-numcheck(new_project_header_VERSION_MAJOR 2)
-numcheck(new_project_header_VERSION_MINOR 3)
-numcheck(new_project_header_VERSION_PATCH 4)
-numcheck(new_project_header_SOVERSION 2)
+include(../version_helpers.cmake)
+# NB: name comes from project() command
+standard_version_var_checks(new_project_header 2.3.4)
add_executable(check_header main.c)
target_include_directories(check_header PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
diff --git a/tests/ECMSetupVersionTest/new_project_header_abspath/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_header_abspath/CMakeLists.txt
index 6a354042..e94e3c69 100644
--- a/tests/ECMSetupVersionTest/new_project_header_abspath/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_header_abspath/CMakeLists.txt
@@ -9,29 +9,9 @@ ecm_setup_version(PROJECT
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/../ecm_new_project_header_abspath_version.h"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(new_project_header_abspath_VERSION "2.3.4")
-strcheck(new_project_header_abspath_VERSION_STRING "2.3.4")
-numcheck(new_project_header_abspath_VERSION_MAJOR 2)
-numcheck(new_project_header_abspath_VERSION_MINOR 3)
-numcheck(new_project_header_abspath_VERSION_PATCH 4)
-numcheck(new_project_header_abspath_SOVERSION 2)
+include(../version_helpers.cmake)
+# NB: name comes from project() command
+standard_version_var_checks(new_project_header_abspath 2.3.4)
add_executable(check_header main.c)
target_include_directories(check_header PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/..")
diff --git a/tests/ECMSetupVersionTest/new_project_header_prefix/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_header_prefix/CMakeLists.txt
index d560f223..a29609a3 100644
--- a/tests/ECMSetupVersionTest/new_project_header_prefix/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_header_prefix/CMakeLists.txt
@@ -10,29 +10,8 @@ ecm_setup_version(PROJECT
VERSION_HEADER "ecm_new_project_header_version.h"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+include(../version_helpers.cmake)
+standard_version_var_checks(Foo 2.3.4)
add_executable(check_header main.c)
target_include_directories(check_header PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
diff --git a/tests/ECMSetupVersionTest/new_project_simple/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_simple/CMakeLists.txt
index 6ed27546..bec6a25c 100644
--- a/tests/ECMSetupVersionTest/new_project_simple/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_simple/CMakeLists.txt
@@ -7,28 +7,8 @@ include(ECMSetupVersion)
ecm_setup_version(PROJECT)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(new_project_simple_VERSION "2.3.4")
-strcheck(new_project_simple_VERSION_STRING "2.3.4")
-numcheck(new_project_simple_VERSION_MAJOR 2)
-numcheck(new_project_simple_VERSION_MINOR 3)
-numcheck(new_project_simple_VERSION_PATCH 4)
-numcheck(new_project_simple_SOVERSION 2)
+include(../version_helpers.cmake)
+# NB: name comes from project() command
+standard_version_var_checks(new_project_simple 2.3.4)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_project_simple_prefix/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_simple_prefix/CMakeLists.txt
index 854d411f..3bb17bf5 100644
--- a/tests/ECMSetupVersionTest/new_project_simple_prefix/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_simple_prefix/CMakeLists.txt
@@ -7,28 +7,7 @@ include(ECMSetupVersion)
ecm_setup_version(PROJECT VARIABLE_PREFIX Foo)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+include(../version_helpers.cmake)
+standard_version_var_checks(Foo 2.3.4)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_project_soversion/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_soversion/CMakeLists.txt
index b2cedd66..c498307b 100644
--- a/tests/ECMSetupVersionTest/new_project_soversion/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_soversion/CMakeLists.txt
@@ -9,28 +9,8 @@ ecm_setup_version(PROJECT
SOVERSION 1
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(new_project_soversion_VERSION "2.3.4")
-strcheck(new_project_soversion_VERSION_STRING "2.3.4")
-numcheck(new_project_soversion_VERSION_MAJOR 2)
-numcheck(new_project_soversion_VERSION_MINOR 3)
-numcheck(new_project_soversion_VERSION_PATCH 4)
-numcheck(new_project_soversion_SOVERSION 1)
+include(../version_helpers.cmake)
+# NB: name comes from project() command
+standard_version_var_checks(new_project_soversion 2.3.4 1)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_project_soversion_prefix/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_soversion_prefix/CMakeLists.txt
index f8182b60..b6bd6a72 100644
--- a/tests/ECMSetupVersionTest/new_project_soversion_prefix/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_soversion_prefix/CMakeLists.txt
@@ -10,28 +10,7 @@ ecm_setup_version(PROJECT
SOVERSION 1
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 1)
+include(../version_helpers.cmake)
+standard_version_var_checks(Foo 2.3.4 1)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_project_version_file/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_version_file/CMakeLists.txt
index 32cc4d8c..a92c2a0f 100644
--- a/tests/ECMSetupVersionTest/new_project_version_file/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_version_file/CMakeLists.txt
@@ -9,38 +9,9 @@ ecm_setup_version(PROJECT
PACKAGE_VERSION_FILE FooVersion.cmake
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(new_project_version_file_VERSION "2.3.4")
-strcheck(new_project_version_file_VERSION_STRING "2.3.4")
-numcheck(new_project_version_file_VERSION_MAJOR 2)
-numcheck(new_project_version_file_VERSION_MINOR 3)
-numcheck(new_project_version_file_VERSION_PATCH 4)
-numcheck(new_project_version_file_SOVERSION 2)
-
-set(PACKAGE_FIND_VERSION "2.3.4")
-include("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
-strcheck(PACKAGE_VERSION "2.3.4")
-if(NOT PACKAGE_VERSION_COMPATIBLE)
- message(FATAL_ERROR "PACKAGE_VERSION_COMPATIBLE not TRUE")
-endif()
-if(NOT PACKAGE_VERSION_EXACT)
- message(FATAL_ERROR "PACKAGE_VERSION_EXACT not TRUE")
-endif()
+include(../version_helpers.cmake)
+# NB: name comes from project() command
+standard_version_var_checks(new_project_version_file 2.3.4)
+AnyNewer_2_3_4_checks("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/new_project_version_file_abspath/CMakeLists.txt b/tests/ECMSetupVersionTest/new_project_version_file_abspath/CMakeLists.txt
index bcf22626..5052618e 100644
--- a/tests/ECMSetupVersionTest/new_project_version_file_abspath/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/new_project_version_file_abspath/CMakeLists.txt
@@ -9,38 +9,10 @@ ecm_setup_version(PROJECT
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/../NewProjectVersionAbsPath.cmake"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
+include(../version_helpers.cmake)
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(new_project_version_file_abspath_VERSION "2.3.4")
-strcheck(new_project_version_file_abspath_VERSION_STRING "2.3.4")
-numcheck(new_project_version_file_abspath_VERSION_MAJOR 2)
-numcheck(new_project_version_file_abspath_VERSION_MINOR 3)
-numcheck(new_project_version_file_abspath_VERSION_PATCH 4)
-numcheck(new_project_version_file_abspath_SOVERSION 2)
-
-set(PACKAGE_FIND_VERSION "2.3.4")
-include("${CMAKE_CURRENT_BINARY_DIR}/../NewProjectVersionAbsPath.cmake")
-strcheck(PACKAGE_VERSION "2.3.4")
-if(NOT PACKAGE_VERSION_COMPATIBLE)
- message(FATAL_ERROR "PACKAGE_VERSION_COMPATIBLE not TRUE")
-endif()
-if(NOT PACKAGE_VERSION_EXACT)
- message(FATAL_ERROR "PACKAGE_VERSION_EXACT not TRUE")
-endif()
+# NB: name comes from project() command
+standard_version_var_checks(new_project_version_file_abspath 2.3.4)
+AnyNewer_2_3_4_checks("${CMAKE_CURRENT_BINARY_DIR}/../NewProjectVersionAbsPath.cmake")
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/old_header/CMakeLists.txt b/tests/ECMSetupVersionTest/old_header/CMakeLists.txt
index 53f90820..d8934c9d 100644
--- a/tests/ECMSetupVersionTest/old_header/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_header/CMakeLists.txt
@@ -10,29 +10,8 @@ ecm_setup_version(2.3.4
VERSION_HEADER "ecm_old_header_version.h"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+include(../version_helpers.cmake)
+standard_version_var_checks(Foo 2.3.4)
add_executable(check_header main.c)
target_include_directories(check_header PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
diff --git a/tests/ECMSetupVersionTest/old_header_abspath/CMakeLists.txt b/tests/ECMSetupVersionTest/old_header_abspath/CMakeLists.txt
index 81428955..cf58887a 100644
--- a/tests/ECMSetupVersionTest/old_header_abspath/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_header_abspath/CMakeLists.txt
@@ -10,29 +10,9 @@ ecm_setup_version(2.3.4
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/../ecm_old_header_abspath_version.h"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
+include(../version_helpers.cmake)
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+standard_version_var_checks(Foo 2.3.4)
add_executable(check_header main.c)
target_include_directories(check_header PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/..")
diff --git a/tests/ECMSetupVersionTest/old_simple/CMakeLists.txt b/tests/ECMSetupVersionTest/old_simple/CMakeLists.txt
index 81adf151..28ca43cf 100644
--- a/tests/ECMSetupVersionTest/old_simple/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_simple/CMakeLists.txt
@@ -7,28 +7,7 @@ include(ECMSetupVersion)
ecm_setup_version(2.3.4 VARIABLE_PREFIX Foo)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+include(../version_helpers.cmake)
+standard_version_var_checks(Foo 2.3.4)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/old_soversion/CMakeLists.txt b/tests/ECMSetupVersionTest/old_soversion/CMakeLists.txt
index 72b274bd..630872a3 100644
--- a/tests/ECMSetupVersionTest/old_soversion/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_soversion/CMakeLists.txt
@@ -10,28 +10,7 @@ ecm_setup_version(2.3.4
SOVERSION 1
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 1)
+include(../version_helpers.cmake)
+standard_version_var_checks(Foo 2.3.4 1)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/old_version_file/CMakeLists.txt b/tests/ECMSetupVersionTest/old_version_file/CMakeLists.txt
index d47a23db..5ab8f7b5 100644
--- a/tests/ECMSetupVersionTest/old_version_file/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_version_file/CMakeLists.txt
@@ -10,38 +10,9 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE FooVersion.cmake
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
+include(../version_helpers.cmake)
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
-
-set(PACKAGE_FIND_VERSION "2.3.4")
-include("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
-strcheck(PACKAGE_VERSION "2.3.4")
-if(NOT PACKAGE_VERSION_COMPATIBLE)
- message(FATAL_ERROR "PACKAGE_VERSION_COMPATIBLE not TRUE")
-endif()
-if(NOT PACKAGE_VERSION_EXACT)
- message(FATAL_ERROR "PACKAGE_VERSION_EXACT not TRUE")
-endif()
+standard_version_var_checks(Foo 2.3.4)
+AnyNewer_2_3_4_checks("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/old_version_file_abspath/CMakeLists.txt b/tests/ECMSetupVersionTest/old_version_file_abspath/CMakeLists.txt
index 1698f369..c8c4b3c6 100644
--- a/tests/ECMSetupVersionTest/old_version_file_abspath/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_version_file_abspath/CMakeLists.txt
@@ -10,38 +10,9 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/../OldVersionAbsPath.cmake"
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
+include(../version_helpers.cmake)
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
-
-set(PACKAGE_FIND_VERSION "2.3.4")
-include("${CMAKE_CURRENT_BINARY_DIR}/../OldVersionAbsPath.cmake")
-strcheck(PACKAGE_VERSION "2.3.4")
-if(NOT PACKAGE_VERSION_COMPATIBLE)
- message(FATAL_ERROR "PACKAGE_VERSION_COMPATIBLE not TRUE")
-endif()
-if(NOT PACKAGE_VERSION_EXACT)
- message(FATAL_ERROR "PACKAGE_VERSION_EXACT not TRUE")
-endif()
+standard_version_var_checks(Foo 2.3.4)
+AnyNewer_2_3_4_checks("${CMAKE_CURRENT_BINARY_DIR}/../OldVersionAbsPath.cmake")
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/old_version_file_anynewer/CMakeLists.txt b/tests/ECMSetupVersionTest/old_version_file_anynewer/CMakeLists.txt
index c90f22b4..562e9d7d 100644
--- a/tests/ECMSetupVersionTest/old_version_file_anynewer/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_version_file_anynewer/CMakeLists.txt
@@ -10,68 +10,9 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE FooVersion.cmake COMPATIBILITY AnyNewerVersion
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(boolcheck var val)
- if(${val} AND NOT ${var})
- message(FATAL_ERROR "${var} was FALSE")
- elseif(${var} AND NOT ${val})
- message(FATAL_ERROR "${var} was TRUE")
- endif()
-endmacro()
+include(../version_helpers.cmake)
-macro(find_foo major minor patch)
- unset(PACKAGE_VERSION)
- unset(PACKAGE_VERSION_COMPATIBLE)
- unset(PACKAGE_VERSION_EXACT)
- set(PACKAGE_FIND_VERSION "${major}.${minor}.${patch}")
- set(PACKAGE_FIND_VERSION_MAJOR "${major}")
- set(PACKAGE_FIND_VERSION_MINOR "${minor}")
- set(PACKAGE_FIND_VERSION_PATCH "${patch}")
- set(PACKAGE_FIND_VERSION_TWEAK)
- include("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
- strcheck(PACKAGE_VERSION "2.3.4")
-endmacro()
-
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
-
-# too old - fails
-find_foo(3 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
-
-# newer - succeeds
-find_foo(1 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE TRUE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
-
-# newer - succeeds
-find_foo(2 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE TRUE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
-
-# exact - succeeds
-find_foo(2 3 4)
-boolcheck(PACKAGE_VERSION_COMPATIBLE TRUE)
-boolcheck(PACKAGE_VERSION_EXACT TRUE)
+standard_version_var_checks(Foo 2.3.4)
+AnyNewer_2_3_4_checks("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt b/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt
index 999a6cd8..3a212fed 100644
--- a/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_version_file_exact/CMakeLists.txt
@@ -10,73 +10,44 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE FooVersion.cmake COMPATIBILITY ExactVersion
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(boolcheck var val)
- if(${val} AND NOT ${var})
- message(FATAL_ERROR "${var} was FALSE")
- elseif(${var} AND NOT ${val})
- message(FATAL_ERROR "${var} was TRUE")
- endif()
-endmacro()
+include(../../test_helpers.cmake)
+include(../version_helpers.cmake)
-macro(find_foo major minor patch)
- unset(PACKAGE_VERSION)
- unset(PACKAGE_VERSION_COMPATIBLE)
- unset(PACKAGE_VERSION_EXACT)
- set(PACKAGE_FIND_VERSION "${major}.${minor}.${patch}")
- set(PACKAGE_FIND_VERSION_MAJOR "${major}")
- set(PACKAGE_FIND_VERSION_MINOR "${minor}")
- set(PACKAGE_FIND_VERSION_PATCH "${patch}")
- set(PACKAGE_FIND_VERSION_TWEAK)
- include("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
- strcheck(PACKAGE_VERSION "2.3.4")
+macro(find_foo version)
+ test_version_file("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake" "${version}")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
endmacro()
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+standard_version_var_checks(Foo 2.3.4)
# too old - fails
-find_foo(3 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("3.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# wrong major version - fails
-find_foo(1 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("1.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# wrong minor - fails
-find_foo(2 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("2.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# wrong patch - fails
-find_foo(2 3 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("2.3.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+# tweak doesn't matter (but prevents P_V_EXACT being set) - succeeds
+find_foo("2.3.4.3")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# exact - succeeds
-find_foo(2 3 4)
-boolcheck(PACKAGE_VERSION_COMPATIBLE TRUE)
-boolcheck(PACKAGE_VERSION_EXACT TRUE)
+find_foo("2.3.4")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+assert_var_bool_value(PACKAGE_VERSION_EXACT TRUE)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/old_version_file_samemajor/CMakeLists.txt b/tests/ECMSetupVersionTest/old_version_file_samemajor/CMakeLists.txt
index 569dcac3..1e14a4c6 100644
--- a/tests/ECMSetupVersionTest/old_version_file_samemajor/CMakeLists.txt
+++ b/tests/ECMSetupVersionTest/old_version_file_samemajor/CMakeLists.txt
@@ -10,68 +10,44 @@ ecm_setup_version(2.3.4
PACKAGE_VERSION_FILE FooVersion.cmake COMPATIBILITY SameMajorVersion
)
-macro(strcheck var val)
- if(NOT ${var} STREQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(numcheck var val)
- if(NOT ${var} EQUAL "${val}")
- message(FATAL_ERROR "${var} was ${${var}} instead of ${val}")
- endif()
-endmacro()
-macro(boolcheck var val)
- if(${val} AND NOT ${var})
- message(FATAL_ERROR "${var} was FALSE")
- elseif(${var} AND NOT ${val})
- message(FATAL_ERROR "${var} was TRUE")
- endif()
-endmacro()
+include(../../test_helpers.cmake)
+include(../version_helpers.cmake)
-macro(find_foo major minor patch)
- unset(PACKAGE_VERSION)
- unset(PACKAGE_VERSION_COMPATIBLE)
- unset(PACKAGE_VERSION_EXACT)
- set(PACKAGE_FIND_VERSION "${major}.${minor}.${patch}")
- set(PACKAGE_FIND_VERSION_MAJOR "${major}")
- set(PACKAGE_FIND_VERSION_MINOR "${minor}")
- set(PACKAGE_FIND_VERSION_PATCH "${patch}")
- set(PACKAGE_FIND_VERSION_TWEAK)
- include("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake")
- strcheck(PACKAGE_VERSION "2.3.4")
+macro(find_foo version)
+ test_version_file("${CMAKE_CURRENT_BINARY_DIR}/FooVersion.cmake" "${version}")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
endmacro()
-strcheck(PROJECT_VERSION "2.3.4")
-strcheck(PROJECT_VERSION_STRING "2.3.4")
-numcheck(PROJECT_VERSION_MAJOR 2)
-numcheck(PROJECT_VERSION_MINOR 3)
-numcheck(PROJECT_VERSION_PATCH 4)
-
-strcheck(Foo_VERSION "2.3.4")
-strcheck(Foo_VERSION_STRING "2.3.4")
-numcheck(Foo_VERSION_MAJOR 2)
-numcheck(Foo_VERSION_MINOR 3)
-numcheck(Foo_VERSION_PATCH 4)
-numcheck(Foo_SOVERSION 2)
+standard_version_var_checks(Foo 2.3.4)
# too old - fails
-find_foo(3 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("3.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# wrong major version - fails
-find_foo(1 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE FALSE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("1.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# correct major version, more recent - succeeds
-find_foo(2 1 1)
-boolcheck(PACKAGE_VERSION_COMPATIBLE TRUE)
-boolcheck(PACKAGE_VERSION_EXACT FALSE)
+find_foo("2.1.1")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+# correct major version - succeeds
+find_foo("2")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+# correct major version, but too old - fails
+find_foo("2.4.4")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
# exact - succeeds
-find_foo(2 3 4)
-boolcheck(PACKAGE_VERSION_COMPATIBLE TRUE)
-boolcheck(PACKAGE_VERSION_EXACT TRUE)
+find_foo("2.3.4")
+assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+assert_var_bool_value(PACKAGE_VERSION_EXACT TRUE)
add_executable(dummy main.c)
diff --git a/tests/ECMSetupVersionTest/version_helpers.cmake b/tests/ECMSetupVersionTest/version_helpers.cmake
new file mode 100644
index 00000000..de0a36b5
--- /dev/null
+++ b/tests/ECMSetupVersionTest/version_helpers.cmake
@@ -0,0 +1,123 @@
+include(../../test_helpers.cmake)
+
+macro(test_version_file filename version)
+ unset(PACKAGE_VERSION)
+ unset(PACKAGE_VERSION_COMPATIBLE)
+ unset(PACKAGE_VERSION_EXACT)
+ set(PACKAGE_FIND_VERSION "${version}")
+ if(PACKAGE_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+)$")
+ set(PACKAGE_FIND_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(PACKAGE_FIND_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(PACKAGE_FIND_VERSION_PATCH "${CMAKE_MATCH_3}")
+ set(PACKAGE_FIND_VERSION_TWEAK "${CMAKE_MATCH_4}")
+ set(PACKAGE_FIND_VERSION_COUNT 4)
+ elseif(PACKAGE_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$")
+ set(PACKAGE_FIND_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(PACKAGE_FIND_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(PACKAGE_FIND_VERSION_PATCH "${CMAKE_MATCH_3}")
+ set(PACKAGE_FIND_VERSION_TWEAK)
+ set(PACKAGE_FIND_VERSION_COUNT 3)
+ elseif(PACKAGE_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)$")
+ set(PACKAGE_FIND_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(PACKAGE_FIND_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(PACKAGE_FIND_VERSION_PATCH)
+ set(PACKAGE_FIND_VERSION_TWEAK)
+ set(PACKAGE_FIND_VERSION_COUNT 2)
+ elseif(PACKAGE_FIND_VERSION MATCHES "^([0-9]+)$")
+ set(PACKAGE_FIND_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(PACKAGE_FIND_VERSION_MINOR)
+ set(PACKAGE_FIND_VERSION_PATCH)
+ set(PACKAGE_FIND_VERSION_TWEAK)
+ set(PACKAGE_FIND_VERSION_COUNT 1)
+ elseif(PACKAGE_FIND_VERSION STREQUAL "")
+ set(PACKAGE_FIND_VERSION_MAJOR)
+ set(PACKAGE_FIND_VERSION_MINOR)
+ set(PACKAGE_FIND_VERSION_PATCH)
+ set(PACKAGE_FIND_VERSION_TWEAK)
+ set(PACKAGE_FIND_VERSION_COUNT 0)
+ else()
+ message(STATUS "Invalid version ${PACKAGE_FIND_VERSION}")
+ endif()
+ include("${filename}")
+endmacro()
+
+macro(version_var_checks prefix version)
+ assert_var_str_value(${prefix}_VERSION "${version}")
+ assert_var_str_value(${prefix}_VERSION_STRING "${version}")
+ if("${version}" MATCHES "^([0-9]+)")
+ assert_var_num_value(${prefix}_VERSION_MAJOR ${CMAKE_MATCH_1})
+ endif()
+ if("${version}" MATCHES "^[0-9]+\\.([0-9]+)")
+ assert_var_num_value(${prefix}_VERSION_MINOR ${CMAKE_MATCH_1})
+ endif()
+ if("${version}" MATCHES "^[0-9]+\\.[0-9]+\\.([0-9]+)")
+ assert_var_num_value(${prefix}_VERSION_PATCH ${CMAKE_MATCH_1})
+ endif()
+ if("${version}" MATCHES "^[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+)")
+ assert_var_num_value(${prefix}_VERSION_TWEAK ${CMAKE_MATCH_1})
+ endif()
+endmacro()
+
+macro(project_version_var_checks version)
+ version_var_checks(PROJECT "${version}")
+endmacro()
+
+macro(standard_version_var_checks prefix version)
+ version_var_checks(PROJECT "${version}")
+ version_var_checks("${prefix}" "${version}")
+ if(${ARGC} GREATER 2)
+ assert_var_num_value(${prefix}_SOVERSION ${ARGV2})
+ elseif(DEFINED ${prefix}_VERSION_MAJOR AND NOT ${prefix}_VERSION_MAJOR STREQUAL "")
+ assert_var_num_value(${prefix}_SOVERSION "${${prefix}_VERSION_MAJOR}")
+ endif()
+endmacro()
+
+macro(AnyNewer_2_3_4_checks filename)
+ # too old - fails
+ test_version_file("${filename}" "3.1.1")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+ # too old - fails
+ test_version_file("${filename}" "3")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+ # too old - fails
+ test_version_file("${filename}" "2.3.4.1")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE FALSE ALLOW_UNDEFINED)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+ # newer - succeeds
+ test_version_file("${filename}" "1.1.1")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+ # newer - succeeds
+ test_version_file("${filename}" "2.1.1")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+ # newer - succeeds
+ test_version_file("${filename}" "2")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+ # unspecified - succeeds
+ test_version_file("${filename}" "")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT FALSE ALLOW_UNDEFINED)
+
+ # exact - succeeds
+ test_version_file("${filename}" "2.3.4")
+ assert_var_str_value(PACKAGE_VERSION "2.3.4")
+ assert_var_bool_value(PACKAGE_VERSION_COMPATIBLE TRUE)
+ assert_var_bool_value(PACKAGE_VERSION_EXACT TRUE)
+endmacro()
diff --git a/tests/test_helpers.cmake b/tests/test_helpers.cmake
index db4fc802..73be343e 100644
--- a/tests/test_helpers.cmake
+++ b/tests/test_helpers.cmake
@@ -5,32 +5,59 @@ macro(assert_var_defined varname)
endmacro()
macro(assert_vars_strequal varname exp_varname)
- assert_var_defined(${varname})
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
if(NOT ${varname} STREQUAL ${exp_varname})
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
endif()
endmacro()
macro(assert_var_str_value varname value)
- assert_var_defined(${varname})
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
set(_value_var "${value}")
if(NOT ${varname} STREQUAL _value_var)
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
endif()
endmacro()
+macro(assert_var_num_value varname value)
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ set(_value_var "${value}")
+ if(NOT ${varname} EQUAL _value_var)
+ message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
+ endif()
+endmacro()
+
+macro(assert_var_bool_value varname value)
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ if(${value} AND NOT ${varname})
+ message(FATAL_ERROR "${varname} was FALSE")
+ elseif(${varname} AND NOT ${value})
+ message(FATAL_ERROR "${varname} was TRUE")
+ endif()
+endmacro()
+
macro(assert_var_relative_path varname)
- if(NOT DEFINED ${varname})
- message(SEND_ERROR "${varname} is not defined.")
- elseif(IS_ABSOLUTE "${${varname}}")
+ if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ if(DEFINED ${varname} AND IS_ABSOLUTE "${${varname}}")
message(SEND_ERROR "${varname} (${${varname}}) should be a relative path, but is absolute.")
endif()
endmacro()
macro(assert_var_absolute_path varname)
- if(NOT DEFINED ${varname})
- message(SEND_ERROR "${varname} is not defined.")
- elseif(NOT IS_ABSOLUTE "${${varname}}")
+ if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ if(DEFINED ${varname} AND NOT IS_ABSOLUTE "${${varname}}")
message(SEND_ERROR "${varname} (${${varname}}) should be an absolute path, but is relative.")
endif()
endmacro()