Imported Upstream version 1.4.0
[platform/upstream/libzip.git] / regress / CMakeLists.txt
1 CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
2 IF(NOT HAVE_GETOPT)
3   SET(SRC_EXTRA_FILES ../src/getopt.c)
4 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
5   ${CMAKE_CURRENT_SOURCE_DIR}/../src)
6 ENDIF()
7
8 SET(TEST_PROGRAMS
9   add_from_filep
10   fopen_unchanged
11   fseek
12   nonrandomopentest
13 )
14
15 SET(GETOPT_USERS
16   fread
17   tryopen
18 )
19
20 ADD_EXECUTABLE(can_clone_file can_clone_file.c)
21
22 SET(ENV{srcdir} ${CMAKE_CURRENT_SOURCE_DIR})
23 FOREACH(PROGRAM ${TEST_PROGRAMS})
24   ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}.c)
25   TARGET_LINK_LIBRARIES(${PROGRAM} zip)
26 ENDFOREACH()
27
28 ADD_EXECUTABLE(hole hole.c ${SRC_EXTRA_FILES} source_hole.c)
29 TARGET_LINK_LIBRARIES(hole zip)
30
31 ADD_EXECUTABLE(ziptool_regress ziptool_regress.c ${SRC_EXTRA_FILES} source_hole.c)
32 TARGET_LINK_LIBRARIES(ziptool_regress zip)
33
34 ADD_LIBRARY(malloc MODULE malloc.c)
35 TARGET_LINK_LIBRARIES(malloc ${CMAKE_DL_LIBS})
36 ADD_LIBRARY(nonrandomopen MODULE nonrandomopen.c)
37 TARGET_LINK_LIBRARIES(nonrandomopen ${CMAKE_DL_LIBS})
38
39 FOREACH(PROGRAM ${GETOPT_USERS})
40   ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}.c ${SRC_EXTRA_FILES})
41   TARGET_LINK_LIBRARIES(${PROGRAM} zip)
42 ENDFOREACH()
43
44 # for appveyor builds
45 #SET(CMAKE_MSVCIDE_RUN_PATH C:/projects/libzip/vstudio/zlib/installed/bin;C:/projects/libzip/vstudio/zlib/installed/lib;C:/projects/libzip/build/lib/Release)
46
47 ADD_CUSTOM_TARGET(cleanup
48     COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/cleanup.cmake
49     )
50
51 ADD_CUSTOM_TARGET(testinput
52   ALL
53   VERBATIM
54   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip cat 0 > manyfiles.zip
55   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip cat 1 > manyfiles-133000.zip
56   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip cat 2 > manyfiles-65536.zip
57   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip cat 3 > manyfiles-zip64-modulo.zip
58   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip cat 4 > manyfiles-zip64.zip
59   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip cat 5 > manyfiles-fewer.zip
60   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip cat 6 > manyfiles-more.zip
61   COMMAND ziptool ${CMAKE_CURRENT_SOURCE_DIR}/bigzero-zip.zip cat 0 > bigzero.zip
62   DEPENDS ziptool ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip ${CMAKE_CURRENT_SOURCE_DIR}/bigzero-zip.zip
63 )
64
65 SET_PROPERTY(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
66   bigzero.zip
67   manyfiles-133000.zip
68   manyfiles-65536.zip
69   manyfiles-fewer.zip
70   manyfiles-more.zip
71   manyfiles-zip64-modulo.zip
72   manyfiles-zip64.zip
73   manyfiles.zip
74 )
75
76 SET(EXTRA_TESTS
77         add_dir.test
78         add_from_buffer.test
79         add_from_file.test
80         add_from_file_duplicate.test
81         add_from_file_twice_duplicate.test
82         add_from_filep.test
83         add_from_stdin.test
84         add_from_zip_closed.test
85         add_from_zip_deflated.test
86         add_from_zip_deflated2.test
87         add_from_zip_partial_deflated.test
88         add_from_zip_partial_stored.test
89         add_from_zip_stored.test
90         add_stored.test
91         add_stored_in_memory.test
92         buffer-fragment-read.test
93         buffer-fragment-write.test
94         clone-buffer-add.test
95         clone-buffer-delete.test
96         clone-buffer-replace.test
97         clone-fs-add.test
98         clone-fs-delete.test
99         clone-fs-replace.test
100         cm-default.test
101         count_entries.test
102         decrypt-correct-password-aes128.test
103         decrypt-correct-password-aes192.test
104         decrypt-correct-password-aes256.test
105         decrypt-correct-password-pkware.test
106         decrypt-no-password-aes256.test
107         decrypt-wrong-password-aes128.test
108         decrypt-wrong-password-aes192.test
109         decrypt-wrong-password-aes256.test
110         decrypt-wrong-password-pkware.test
111         delete_add_same.test
112         delete_invalid.test
113         delete_last.test
114         delete_multiple_last.test
115         delete_multiple_partial.test
116         delete_renamed_rename.test
117         encrypt.test
118         encryption-nonrandom-aes128.test
119         encryption-nonrandom-aes192.test
120         encryption-nonrandom-aes256.test
121         encryption-remove.test
122         extra_add.test
123         extra_add_multiple.test
124         extra_count.test
125         extra_count_by_id.test
126         extra_count_ignore_zip64.test
127         extra_delete.test
128         extra_delete_by_id.test
129         extra_field_align.test
130         extra_get.test
131         extra_get_by_id.test
132         extra_set.test
133         extra_set_modify_c.test
134         extra_set_modify_l.test
135         fdopen_ok.test
136         file_comment_encmismatch.test
137         fopen_unchanged.test
138         fread.test
139         fseek_deflated.test
140         fseek_fail.test
141         fseek_ok.test
142         get_comment.test
143         junk_at_end.test
144         junk_at_start.test
145         name_locate.test
146         open_cons_extrabytes.test
147         open_empty.test
148         open_empty_2.test
149         open_extrabytes.test
150         open_file_count.test
151         open_filename_duplicate.test
152         open_filename_duplicate_consistency.test
153         open_filename_duplicate_empty.test
154         open_filename_duplicate_empty_consistency.test
155         open_filename_empty.test
156         open_incons.test
157         open_many_fail.test
158         open_many_ok.test
159         open_multidisk.test
160         open_new_but_exists.test
161         open_new_ok.test
162         open_nonarchive.test
163         open_nosuchfile.test
164         open_ok.test
165         open_too_short.test
166         open_truncate.test
167         open_zip64_3mf.test
168         open_zip64_ok.test
169         preload.test
170         progress.test
171         rename_ascii.test
172         rename_cp437.test
173         rename_deleted.test
174         rename_fail.test
175         rename_ok.test
176         rename_utf8.test
177         rename_utf8_encmismatch.test
178         set_comment_all.test
179         set_comment_localonly.test
180         set_comment_removeglobal.test
181         set_comment_revert.test
182         set_compression_bzip2_to_deflate.test
183         set_compression_deflate_to_bzip2.test
184         set_compression_deflate_to_deflate.test
185         set_compression_deflate_to_store.test
186         set_compression_store_to_bzip2.test
187         set_compression_store_to_deflate.test
188         set_compression_store_to_store.test
189         set_compression_unknown.test
190         stat_index_cp437_guess.test
191         stat_index_cp437_raw.test
192         stat_index_cp437_strict.test
193         stat_index_fileorder.test
194         stat_index_streamed.test
195         stat_index_streamed_zip64.test
196         stat_index_utf8_guess.test
197         stat_index_utf8_raw.test
198         stat_index_utf8_strict.test
199         stat_index_utf8_unmarked_strict.test
200         stat_index_zip64.test
201         utf-8-standardization.test
202         zip-in-archive-comment.test
203         zip64_creation.test
204         zip64_stored_creation.test
205 )
206
207 FOREACH(CASE ${EXTRA_TESTS})
208   ADD_TEST(${CASE} perl ${CMAKE_BINARY_DIR}/regress/runtest ${CMAKE_CURRENT_SOURCE_DIR}/${CASE})
209   SET_TESTS_PROPERTIES(${CASE} PROPERTIES SKIP_RETURN_CODE 77)
210 ENDFOREACH()
211
212 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../lib
213         ${CMAKE_CURRENT_SOURCE_DIR}/../src
214         ${CMAKE_CURRENT_BINARY_DIR}/..)
215
216 ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND})