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/test_helpers.cmake | |
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/test_helpers.cmake')
-rw-r--r-- | tests/test_helpers.cmake | 43 |
1 files changed, 35 insertions, 8 deletions
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() |