[Cmake-commits] [cmake-commits] hoffman committed CMakeLists.txt 1.17.2.2 1.17.2.3 ELFTest.cmake.in NONE 1.1.2.2 FileTest.cmake.in 1.3 1.3.2.1 FileTestScript.cmake NONE 1.3.2.2 IfTest.cmake.in NONE 1.1.2.2
cmake-commits at cmake.org
cmake-commits at cmake.org
Wed Oct 28 12:16:04 EDT 2009
Update of /cvsroot/CMake/CMake/Tests/CMakeTests
In directory public:/mounts/ram/cvs-serv18987/Tests/CMakeTests
Modified Files:
Tag: CMake-2-8
CMakeLists.txt FileTest.cmake.in
Added Files:
Tag: CMake-2-8
ELFTest.cmake.in FileTestScript.cmake IfTest.cmake.in
Log Message:
RC 4 merge
--- NEW FILE: FileTestScript.cmake ---
message(STATUS "testname='${testname}'")
if(testname STREQUAL empty) # fail
file()
elseif(testname STREQUAL bogus) # fail
file(BOGUS ffff)
elseif(testname STREQUAL different_not_enough_args) # fail
file(DIFFERENT ffff)
elseif(testname STREQUAL download_not_enough_args) # fail
file(DOWNLOAD ffff)
elseif(testname STREQUAL read_not_enough_args) # fail
file(READ ffff)
elseif(testname STREQUAL rpath_check_not_enough_args) # fail
file(RPATH_CHECK ffff)
elseif(testname STREQUAL rpath_remove_not_enough_args) # fail
file(RPATH_REMOVE ffff)
elseif(testname STREQUAL strings_not_enough_args) # fail
file(STRINGS ffff)
elseif(testname STREQUAL to_native_path_not_enough_args) # fail
file(TO_NATIVE_PATH ffff)
elseif(testname STREQUAL read_with_offset) # pass
file(READ ${CMAKE_CURRENT_LIST_FILE} v OFFSET 42 LIMIT 30)
message("v='${v}'")
elseif(testname STREQUAL strings_bad_length_minimum) # fail
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LENGTH_MINIMUM bogus)
elseif(testname STREQUAL strings_bad_length_maximum) # fail
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LENGTH_MAXIMUM bogus)
elseif(testname STREQUAL strings_bad_limit_count) # fail
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_COUNT bogus)
elseif(testname STREQUAL strings_bad_limit_input) # fail
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_INPUT bogus)
elseif(testname STREQUAL strings_bad_limit_output) # fail
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_OUTPUT bogus)
elseif(testname STREQUAL strings_bad_regex) # fail
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v REGEX "(")
elseif(testname STREQUAL strings_unknown_arg) # fail
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v BOGUS)
elseif(testname STREQUAL strings_bad_filename) # fail
file(STRINGS ffff v LIMIT_COUNT 10)
elseif(testname STREQUAL strings_use_limit_count) # pass
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_COUNT 10)
message("v='${v}'")
elseif(testname STREQUAL strings_use_no_hex_conversion) # pass
file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v NO_HEX_CONVERSION)
message("v='${v}'")
elseif(testname STREQUAL glob_recurse_follow_symlinks_no_expression) # fail
file(GLOB_RECURSE v FOLLOW_SYMLINKS)
elseif(testname STREQUAL glob_recurse_relative_no_directory) # fail
file(GLOB_RECURSE v RELATIVE)
elseif(testname STREQUAL glob_recurse_relative_no_expression) # fail
file(GLOB_RECURSE v RELATIVE dddd)
elseif(testname STREQUAL glob_non_full_path) # pass
file(GLOB_RECURSE v ffff*.*)
message("v='${v}'")
elseif(testname STREQUAL make_directory_non_full_path) # pass
file(MAKE_DIRECTORY FileTestScriptDDDD)
if(NOT EXISTS FileTestScriptDDDD)
message(FATAL_ERROR "error: non-full-path MAKE_DIRECTORY failed")
endif()
file(REMOVE_RECURSE FileTestScriptDDDD)
if(EXISTS FileTestScriptDDDD)
message(FATAL_ERROR "error: non-full-path REMOVE_RECURSE failed")
endif()
elseif(testname STREQUAL different_no_variable) # fail
file(DIFFERENT FILES)
elseif(testname STREQUAL different_no_files) # fail
file(DIFFERENT v FILES)
elseif(testname STREQUAL different_unknown_arg) # fail
file(DIFFERENT v FILES ffffLHS ffffRHS BOGUS)
elseif(testname STREQUAL different_different) # pass
file(DIFFERENT v FILES ffffLHS ffffRHS)
message("v='${v}'")
elseif(testname STREQUAL different_same) # pass
file(DIFFERENT v FILES
${CMAKE_CURRENT_LIST_FILE} ${CMAKE_CURRENT_LIST_FILE})
message("v='${v}'")
elseif(testname STREQUAL rpath_change_unknown_arg) # fail
file(RPATH_CHANGE BOGUS)
elseif(testname STREQUAL rpath_change_bad_file) # fail
file(RPATH_CHANGE FILE)
elseif(testname STREQUAL rpath_change_bad_old_rpath) # fail
file(RPATH_CHANGE FILE ffff OLD_RPATH)
elseif(testname STREQUAL rpath_change_bad_new_rpath) # fail
file(RPATH_CHANGE FILE ffff OLD_RPATH rrrr NEW_RPATH)
elseif(testname STREQUAL rpath_change_file_does_not_exist) # fail
file(RPATH_CHANGE FILE ffff OLD_RPATH rrrr NEW_RPATH RRRR)
elseif(testname STREQUAL rpath_change_file_is_not_executable) # fail
file(RPATH_CHANGE FILE ${CMAKE_CURRENT_LIST_FILE}
OLD_RPATH rrrr NEW_RPATH RRRR)
elseif(testname STREQUAL rpath_remove_unknown_arg) # fail
file(RPATH_REMOVE BOGUS)
elseif(testname STREQUAL rpath_remove_bad_file) # fail
file(RPATH_REMOVE FILE)
elseif(testname STREQUAL rpath_remove_file_does_not_exist) # fail
file(RPATH_REMOVE FILE ffff)
#elseif(testname STREQUAL rpath_remove_file_is_not_executable) # fail
# file(RPATH_REMOVE FILE ${CMAKE_CURRENT_LIST_FILE})
elseif(testname STREQUAL rpath_check_unknown_arg) # fail
file(RPATH_CHECK BOGUS)
elseif(testname STREQUAL rpath_check_bad_file) # fail
file(RPATH_CHECK FILE)
elseif(testname STREQUAL rpath_check_bad_rpath) # fail
file(RPATH_CHECK FILE ffff RPATH)
elseif(testname STREQUAL rpath_check_file_does_not_exist) # pass
file(RPATH_CHECK FILE ffff RPATH rrrr)
elseif(testname STREQUAL rpath_check_file_is_not_executable) # pass
file(WRITE ffff_rpath_check "")
if(NOT EXISTS ffff_rpath_check)
message(FATAL_ERROR "error: non-full-path WRITE failed")
endif()
file(RPATH_CHECK FILE ffff_rpath_check RPATH rrrr)
# careful: if the file does not have the given RPATH, it is deleted...
if(EXISTS ffff_rpath_check)
message(FATAL_ERROR "error: non-full-path RPATH_CHECK failed")
endif()
elseif(testname STREQUAL relative_path_wrong_number_of_args) # fail
file(RELATIVE_PATH v dir)
elseif(testname STREQUAL relative_path_non_full_path_dir) # fail
file(RELATIVE_PATH v dir file)
elseif(testname STREQUAL relative_path_non_full_path_file) # fail
file(RELATIVE_PATH v /dir file)
elseif(testname STREQUAL rename_wrong_number_of_args) # fail
file(RENAME ffff)
elseif(testname STREQUAL rename_input_file_does_not_exist) # fail
file(RENAME ffff FFFFGGGG)
elseif(testname STREQUAL to_native_path) # pass
file(TO_NATIVE_PATH /a/b/c\;/d/e/f:/g/h/i v)
message("v='${v}'")
elseif(testname STREQUAL download_wrong_number_of_args) # fail
file(DOWNLOAD zzzz://bogus/ffff)
elseif(testname STREQUAL download_file_with_no_path) # fail
file(DOWNLOAD zzzz://bogus/ffff ffff)
elseif(testname STREQUAL download_missing_time) # fail
file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT)
elseif(testname STREQUAL download_missing_log_var) # fail
file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT 2 LOG)
elseif(testname STREQUAL download_missing_status_var) # fail
file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT 2 LOG l STATUS)
elseif(testname STREQUAL download_with_bogus_protocol) # pass
file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT 2 LOG l STATUS s)
file(REMOVE ./ffff)
message("l='${l}'")
message("s='${s}'")
else() # fail
message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
endif()
--- NEW FILE: IfTest.cmake.in ---
# Prepare variable definitions.
set(VAR_UNDEFINED)
set(VAR_PATH /some/path/to/a/file.txt)
set(FALSE_NAMES OFF NO FALSE N FOO-NOTFOUND IGNORE Off No False Ignore off n no false ignore)
set(TRUE_NAMES ON YES TRUE Y On Yes True on yes true y)
foreach(_arg "" 0 1 2 ${TRUE_NAMES} ${FALSE_NAMES})
set(VAR_${_arg} "${_arg}")
endforeach()
macro(test_vars _old)
# Variables set to false or not set.
foreach(_var "" 0 ${FALSE_NAMES} UNDEFINED)
if(VAR_${_var})
message(FATAL_ERROR "${_old}if(VAR_${_var}) is true!")
else()
message(STATUS "${_old}if(VAR_${_var}) is false")
endif()
if(NOT VAR_${_var})
message(STATUS "${_old}if(NOT VAR_${_var}) is true")
else()
message(FATAL_ERROR "${_old}if(NOT VAR_${_var}) is false!")
endif()
endforeach()
# Variables set to true.
foreach(_var 1 2 ${TRUE_NAMES} PATH)
if(VAR_${_var})
message(STATUS "${_old}if(VAR_${_var}) is true")
else()
message(FATAL_ERROR "${_old}if(VAR_${_var}) is false!")
endif()
if(NOT VAR_${_var})
message(FATAL_ERROR "${_old}if(NOT VAR_${_var}) is true!")
else()
message(STATUS "${_old}if(NOT VAR_${_var}) is false")
endif()
endforeach()
endmacro()
#-----------------------------------------------------------------------------
# Test the OLD behavior of CMP0012.
cmake_policy(SET CMP0012 OLD)
# False constants not recognized (still false).
foreach(_false "" ${FALSE_NAMES})
if("${_false}")
message(FATAL_ERROR "OLD if(${_false}) is true!")
else()
message(STATUS "OLD if(${_false}) is false")
endif()
if(NOT "${_false}")
message(STATUS "OLD if(NOT ${_false}) is true")
else()
message(FATAL_ERROR "OLD if(NOT ${_false}) is false!")
endif()
endforeach()
# True constants not recognized.
foreach(_false ${TRUE_NAMES})
if(${_false})
message(FATAL_ERROR "OLD if(${_false}) is true!")
else()
message(STATUS "OLD if(${_false}) is false")
endif()
if(NOT ${_false})
message(STATUS "OLD if(NOT ${_false}) is true")
else()
message(FATAL_ERROR "OLD if(NOT ${_false}) is false!")
endif()
endforeach()
# Numbers not recognized properly.
foreach(_num 2 -2 2.0 -2.0 2x -2x)
if(${_num})
message(FATAL_ERROR "OLD if(${_num}) is true!")
else()
message(STATUS "OLD if(${_num}) is false")
endif()
if(NOT ${_num})
message(FATAL_ERROR "OLD if(NOT ${_num}) is true!")
else()
message(STATUS "OLD if(NOT ${_num}) is false")
endif()
endforeach()
test_vars("OLD ")
#-----------------------------------------------------------------------------
# Test the NEW behavior of CMP0012.
cmake_policy(SET CMP0012 NEW)
# Test false constants.
foreach(_false "" 0 ${FALSE_NAMES})
if("${_false}")
message(FATAL_ERROR "if(${_false}) is true!")
else()
message(STATUS "if(${_false}) is false")
endif()
if(NOT "${_false}")
message(STATUS "if(NOT ${_false}) is true")
else()
message(FATAL_ERROR "if(NOT ${_false}) is false!")
endif()
endforeach()
# Test true constants.
foreach(_true 1 ${TRUE_NAMES})
if(${_true})
message(STATUS "if(${_true}) is true")
else()
message(FATAL_ERROR "if(${_true}) is false!")
endif()
if(NOT ${_true})
message(FATAL_ERROR "if(NOT ${_true}) is true!")
else()
message(STATUS "if(NOT ${_true}) is false")
endif()
endforeach()
# Numbers recognized properly.
foreach(_num 2 -2 2.0 -2.0)
if(${_num})
message(STATUS "if(${_num}) is true")
else()
message(FATAL_ERROR "if(${_num}) is false!")
endif()
if(NOT ${_num})
message(FATAL_ERROR "if(NOT ${_num}) is true!")
else()
message(STATUS "if(NOT ${_num}) is false")
endif()
endforeach()
# Bad numbers not recognized.
foreach(_bad 2x -2x)
if(${_bad})
message(FATAL_ERROR "if(${_bad}) is true!")
else()
message(STATUS "if(${_bad}) is false")
endif()
if(NOT ${_bad})
message(STATUS "if(NOT ${_bad}) is true")
else()
message(FATAL_ERROR "if(NOT ${_bad}) is false!")
endif()
endforeach()
test_vars("")
--- NEW FILE: ELFTest.cmake.in ---
set(names
elf32lsb.bin
elf32msb.bin
elf64lsb.bin
elf64msb.bin
)
# Prepare binaries on which to operate.
set(in "@CMAKE_CURRENT_SOURCE_DIR@/ELF")
set(out "@CMAKE_CURRENT_BINARY_DIR@/ELF-Out")
file(REMOVE_RECURSE "${out}")
file(MAKE_DIRECTORY "${out}")
foreach(f ${names})
file(COPY ${in}/${f} DESTINATION ${out})
list(APPEND files "${out}/${f}")
endforeach()
foreach(f ${files})
# Check for the initial RPATH.
file(RPATH_CHECK FILE "${f}" RPATH "/sample/rpath")
if(NOT EXISTS "${f}")
message(FATAL_ERROR "RPATH_CHECK removed ${f}")
endif()
# Change the RPATH.
file(RPATH_CHANGE FILE "${f}"
OLD_RPATH "/sample/rpath"
NEW_RPATH "/rpath/sample")
set(rpath)
file(STRINGS "${f}" rpath REGEX "/rpath/sample" LIMIT_COUNT 1)
if(NOT rpath)
message(FATAL_ERROR "RPATH not changed in ${f}")
endif()
# Remove the RPATH.
file(RPATH_REMOVE FILE "${f}")
set(rpath)
file(STRINGS "${f}" rpath REGEX "/rpath/sample" LIMIT_COUNT 1)
if(rpath)
message(FATAL_ERROR "RPATH not removed from ${f}")
endif()
# Check again...this should remove the file.
file(RPATH_CHECK FILE "${f}" RPATH "/sample/rpath")
if(EXISTS "${f}")
message(FATAL_ERROR "RPATH_CHECK did not remove ${f}")
endif()
endforeach()
Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/CMakeTests/CMakeLists.txt,v
retrieving revision 1.17.2.2
retrieving revision 1.17.2.3
diff -C 2 -d -r1.17.2.2 -r1.17.2.3
*** CMakeLists.txt 9 Oct 2009 20:11:43 -0000 1.17.2.2
--- CMakeLists.txt 28 Oct 2009 16:15:52 -0000 1.17.2.3
***************
*** 23,30 ****
--- 23,35 ----
AddCMakeTest(ImplicitLinkInfo "")
AddCMakeTest(ModuleNotices "")
+ AddCMakeTest(If "")
AddCMakeTest(String "")
AddCMakeTest(Math "")
AddCMakeTest(CMakeMinimumRequired "")
+ if(HAVE_ELF_H)
+ AddCMakeTest(ELF "")
+ endif()
+
SET(EndStuff_PreArgs
"-Ddir:STRING=${CMAKE_CURRENT_BINARY_DIR}/EndStuffTest"
Index: FileTest.cmake.in
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/CMakeTests/FileTest.cmake.in,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C 2 -d -r1.3 -r1.3.2.1
*** FileTest.cmake.in 16 Sep 2009 19:09:10 -0000 1.3
--- FileTest.cmake.in 28 Oct 2009 16:15:53 -0000 1.3.2.1
***************
*** 24,25 ****
--- 24,44 ----
Copy-NoFile
)
+
+ # Also execute each test listed in FileTestScript.cmake:
+ #
+ set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/FileTestScript.cmake")
+ set(number_of_tests_expected 56)
+
+ include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
+ execute_all_script_tests(${scriptname} number_of_tests_executed)
+
+ # And verify that number_of_tests_executed is at least as many as we know
+ # about as of this writing...
+ #
+ message(STATUS "scriptname='${scriptname}'")
+ message(STATUS "number_of_tests_executed='${number_of_tests_executed}'")
+ message(STATUS "number_of_tests_expected='${number_of_tests_expected}'")
+
+ if(number_of_tests_executed LESS number_of_tests_expected)
+ message(FATAL_ERROR "error: some test cases were skipped")
+ endif()
More information about the Cmake-commits
mailing list