diff options
author | Alex Merry <alex.merry@kde.org> | 2014-12-28 16:32:13 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@kde.org> | 2014-12-28 17:30:11 +0000 |
commit | f8af407eba5c5ea45be2c6351cf41a7cb44fed21 (patch) | |
tree | 0c3326caf677883ec00e292312213acefe366877 /tests | |
parent | 351fe45dba7ac04ec2779b7d761ac55a58f89945 (diff) | |
download | extra-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')
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() |