FileTestScript.cmake 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. message(STATUS "testname='${testname}'")
  2. if(testname STREQUAL empty) # fail
  3. file()
  4. elseif(testname STREQUAL bogus) # fail
  5. file(BOGUS ffff)
  6. elseif(testname STREQUAL different_not_enough_args) # fail
  7. file(DIFFERENT ffff)
  8. elseif(testname STREQUAL download_not_enough_args) # fail
  9. file(DOWNLOAD ffff)
  10. elseif(testname STREQUAL read_not_enough_args) # fail
  11. file(READ ffff)
  12. elseif(testname STREQUAL rpath_check_not_enough_args) # fail
  13. file(RPATH_CHECK ffff)
  14. elseif(testname STREQUAL rpath_remove_not_enough_args) # fail
  15. file(RPATH_REMOVE ffff)
  16. elseif(testname STREQUAL strings_not_enough_args) # fail
  17. file(STRINGS ffff)
  18. elseif(testname STREQUAL to_native_path_not_enough_args) # fail
  19. file(TO_NATIVE_PATH ffff)
  20. elseif(testname STREQUAL read_with_offset) # pass
  21. file(READ ${CMAKE_CURRENT_LIST_FILE} v OFFSET 42 LIMIT 30)
  22. message("v='${v}'")
  23. elseif(testname STREQUAL strings_bad_length_minimum) # fail
  24. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LENGTH_MINIMUM bogus)
  25. elseif(testname STREQUAL strings_bad_length_maximum) # fail
  26. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LENGTH_MAXIMUM bogus)
  27. elseif(testname STREQUAL strings_bad_limit_count) # fail
  28. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_COUNT bogus)
  29. elseif(testname STREQUAL strings_bad_limit_input) # fail
  30. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_INPUT bogus)
  31. elseif(testname STREQUAL strings_bad_limit_output) # fail
  32. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_OUTPUT bogus)
  33. elseif(testname STREQUAL strings_bad_regex) # fail
  34. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v REGEX "(")
  35. elseif(testname STREQUAL strings_unknown_arg) # fail
  36. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v BOGUS)
  37. elseif(testname STREQUAL strings_bad_filename) # fail
  38. file(STRINGS ffff v LIMIT_COUNT 10)
  39. elseif(testname STREQUAL strings_use_limit_count) # pass
  40. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v LIMIT_COUNT 10)
  41. message("v='${v}'")
  42. elseif(testname STREQUAL strings_use_no_hex_conversion) # pass
  43. file(STRINGS ${CMAKE_CURRENT_LIST_FILE} v NO_HEX_CONVERSION)
  44. message("v='${v}'")
  45. elseif(testname STREQUAL glob_recurse_follow_symlinks_no_expression) # fail
  46. file(GLOB_RECURSE v FOLLOW_SYMLINKS)
  47. elseif(testname STREQUAL glob_recurse_relative_no_directory) # fail
  48. file(GLOB_RECURSE v RELATIVE)
  49. elseif(testname STREQUAL glob_recurse_relative_no_expression) # fail
  50. file(GLOB_RECURSE v RELATIVE dddd)
  51. elseif(testname STREQUAL glob_non_full_path) # pass
  52. file(GLOB_RECURSE v ffff*.*)
  53. message("v='${v}'")
  54. elseif(testname STREQUAL make_directory_non_full_path) # pass
  55. file(MAKE_DIRECTORY FileTestScriptDDDD)
  56. if(NOT EXISTS FileTestScriptDDDD)
  57. message(FATAL_ERROR "error: non-full-path MAKE_DIRECTORY failed")
  58. endif()
  59. file(REMOVE_RECURSE FileTestScriptDDDD)
  60. if(EXISTS FileTestScriptDDDD)
  61. message(FATAL_ERROR "error: non-full-path REMOVE_RECURSE failed")
  62. endif()
  63. elseif(testname STREQUAL different_no_variable) # fail
  64. file(DIFFERENT FILES)
  65. elseif(testname STREQUAL different_no_files) # fail
  66. file(DIFFERENT v FILES)
  67. elseif(testname STREQUAL different_unknown_arg) # fail
  68. file(DIFFERENT v FILES ffffLHS ffffRHS BOGUS)
  69. elseif(testname STREQUAL different_different) # pass
  70. file(DIFFERENT v FILES ffffLHS ffffRHS)
  71. message("v='${v}'")
  72. elseif(testname STREQUAL different_same) # pass
  73. file(DIFFERENT v FILES
  74. ${CMAKE_CURRENT_LIST_FILE} ${CMAKE_CURRENT_LIST_FILE})
  75. message("v='${v}'")
  76. elseif(testname STREQUAL rpath_change_unknown_arg) # fail
  77. file(RPATH_CHANGE BOGUS)
  78. elseif(testname STREQUAL rpath_change_bad_file) # fail
  79. file(RPATH_CHANGE FILE)
  80. elseif(testname STREQUAL rpath_change_bad_old_rpath) # fail
  81. file(RPATH_CHANGE FILE ffff OLD_RPATH)
  82. elseif(testname STREQUAL rpath_change_bad_new_rpath) # fail
  83. file(RPATH_CHANGE FILE ffff OLD_RPATH rrrr NEW_RPATH)
  84. elseif(testname STREQUAL rpath_change_file_does_not_exist) # fail
  85. file(RPATH_CHANGE FILE ffff OLD_RPATH rrrr NEW_RPATH RRRR)
  86. elseif(testname STREQUAL rpath_change_file_is_not_executable) # fail
  87. file(RPATH_CHANGE FILE ${CMAKE_CURRENT_LIST_FILE}
  88. OLD_RPATH rrrr NEW_RPATH RRRR)
  89. elseif(testname STREQUAL rpath_remove_unknown_arg) # fail
  90. file(RPATH_REMOVE BOGUS)
  91. elseif(testname STREQUAL rpath_remove_bad_file) # fail
  92. file(RPATH_REMOVE FILE)
  93. elseif(testname STREQUAL rpath_remove_file_does_not_exist) # fail
  94. file(RPATH_REMOVE FILE ffff)
  95. #elseif(testname STREQUAL rpath_remove_file_is_not_executable) # fail
  96. # file(RPATH_REMOVE FILE ${CMAKE_CURRENT_LIST_FILE})
  97. elseif(testname STREQUAL rpath_check_unknown_arg) # fail
  98. file(RPATH_CHECK BOGUS)
  99. elseif(testname STREQUAL rpath_check_bad_file) # fail
  100. file(RPATH_CHECK FILE)
  101. elseif(testname STREQUAL rpath_check_bad_rpath) # fail
  102. file(RPATH_CHECK FILE ffff RPATH)
  103. elseif(testname STREQUAL rpath_check_file_does_not_exist) # pass
  104. file(RPATH_CHECK FILE ffff RPATH rrrr)
  105. elseif(testname STREQUAL rpath_check_file_is_not_executable) # pass
  106. file(WRITE ffff_rpath_check "")
  107. if(NOT EXISTS ffff_rpath_check)
  108. message(FATAL_ERROR "error: non-full-path WRITE failed")
  109. endif()
  110. file(RPATH_CHECK FILE ffff_rpath_check RPATH rrrr)
  111. # careful: if the file does not have the given RPATH, it is deleted...
  112. if(EXISTS ffff_rpath_check)
  113. message(FATAL_ERROR "error: non-full-path RPATH_CHECK failed")
  114. endif()
  115. elseif(testname STREQUAL relative_path_wrong_number_of_args) # fail
  116. file(RELATIVE_PATH v dir)
  117. elseif(testname STREQUAL relative_path_non_full_path_dir) # fail
  118. file(RELATIVE_PATH v dir file)
  119. elseif(testname STREQUAL relative_path_non_full_path_file) # fail
  120. file(RELATIVE_PATH v /dir file)
  121. elseif(testname STREQUAL rename_wrong_number_of_args) # fail
  122. file(RENAME ffff)
  123. elseif(testname STREQUAL rename_input_file_does_not_exist) # fail
  124. file(RENAME ffff FFFFGGGG)
  125. elseif(testname STREQUAL to_native_path) # pass
  126. file(TO_NATIVE_PATH /a/b/c\;/d/e/f:/g/h/i v)
  127. message("v='${v}'")
  128. elseif(testname STREQUAL download_wrong_number_of_args) # fail
  129. file(DOWNLOAD zzzz://bogus/ffff)
  130. elseif(testname STREQUAL download_file_with_no_path) # fail
  131. file(DOWNLOAD zzzz://bogus/ffff ffff)
  132. elseif(testname STREQUAL download_missing_time) # fail
  133. file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT)
  134. elseif(testname STREQUAL download_missing_log_var) # fail
  135. file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT 2 LOG)
  136. elseif(testname STREQUAL download_missing_status_var) # fail
  137. file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT 2 LOG l STATUS)
  138. elseif(testname STREQUAL download_with_bogus_protocol) # pass
  139. file(DOWNLOAD zzzz://bogus/ffff ./ffff TIMEOUT 2 LOG l STATUS s)
  140. file(REMOVE ./ffff)
  141. message("l='${l}'")
  142. message("s='${s}'")
  143. elseif(testname STREQUAL upload_wrong_number_of_args) # fail
  144. file(UPLOAD ./ffff)
  145. elseif(testname STREQUAL upload_missing_time) # fail
  146. file(UPLOAD ./ffff zzzz://bogus/ffff TIMEOUT)
  147. elseif(testname STREQUAL upload_missing_log_var) # fail
  148. file(UPLOAD ./ffff zzzz://bogus/ffff TIMEOUT 2 LOG)
  149. elseif(testname STREQUAL upload_missing_status_var) # fail
  150. file(UPLOAD ./ffff zzzz://bogus/ffff TIMEOUT 2 LOG l STATUS)
  151. elseif(testname STREQUAL upload_file_that_doesnt_exist) # fail
  152. file(UPLOAD ./ffff zzzz://bogus/ffff)
  153. elseif(testname STREQUAL upload_with_bogus_protocol) # pass
  154. file(UPLOAD ${CMAKE_CURRENT_LIST_FILE} zzzz://bogus/ffff TIMEOUT 2 LOG l STATUS s)
  155. message("l='${l}'")
  156. message("s='${s}'")
  157. else() # fail
  158. message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
  159. endif()