summaryrefslogtreecommitdiff
path: root/Tests/CMakeTests/FileTestScript.cmake
blob: 9a4356973f02b1d3c27aa6b5c9f110468fca0d7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
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}'")

elseif(testname STREQUAL upload_wrong_number_of_args) # fail
  file(UPLOAD ./ffff)

elseif(testname STREQUAL upload_missing_time) # fail
  file(UPLOAD ./ffff zzzz://bogus/ffff TIMEOUT)

elseif(testname STREQUAL upload_missing_log_var) # fail
  file(UPLOAD ./ffff zzzz://bogus/ffff TIMEOUT 2 LOG)

elseif(testname STREQUAL upload_missing_status_var) # fail
  file(UPLOAD ./ffff zzzz://bogus/ffff TIMEOUT 2 LOG l STATUS)

elseif(testname STREQUAL upload_file_that_doesnt_exist) # fail
  file(UPLOAD ./ffff zzzz://bogus/ffff)

elseif(testname STREQUAL upload_with_bogus_protocol) # pass
  file(UPLOAD ${CMAKE_CURRENT_LIST_FILE} zzzz://bogus/ffff TIMEOUT 2 LOG l STATUS s)
  message("l='${l}'")
  message("s='${s}'")

else() # fail
  message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")

endif()