1167186Skientzle# $FreeBSD$
2167186Skientzle
3228797SmmLIBARCHIVEDIR=	${.CURDIR}/../../../contrib/libarchive
4175044Skientzle
5228797SmmNO_MAN=yes
6228797Smm
7228797SmmPROG=libarchive_test
8228797SmmINTERNALPROG=yes  # Don't install this; it's just for testing
9228797SmmDPADD=${LIBBZ2} ${LIBZ} ${LIBMD} ${LIBCRYPTO} ${LIBBSDXML}
10228797SmmLDADD= -L ${.OBJDIR}/.. -larchive
11228797SmmLDADD+= -lz -lbz2 -llzma -lmd -lcrypto -lbsdxml
12228797SmmCFLAGS+= -g
13248616SmmCFLAGS+= -I${.CURDIR}/.. -I${.OBJDIR}
14248616SmmCFLAGS+= -I${LIBARCHIVEDIR}/libarchive -I${LIBARCHIVEDIR}/test_utils
15228797SmmCFLAGS+= -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1
16228797Smm
17228797Smm# Uncomment to link against dmalloc
18228797Smm#LDADD+= -L/usr/local/lib -ldmalloc
19228797Smm#CFLAGS+= -I/usr/local/include -DUSE_DMALLOC
20228797Smm
21228797Smm.PATH:  ${LIBARCHIVEDIR}/libarchive/test
22167186SkientzleTESTS= \
23238909Smm	test_acl_freebsd_nfs4.c			\
24238909Smm	test_acl_freebsd_posix1e.c		\
25232153Smm	test_acl_nfs4.c				\
26167325Skientzle	test_acl_pax.c				\
27232153Smm	test_acl_posix1e.c			\
28167186Skientzle	test_archive_api_feature.c		\
29232153Smm	test_archive_clear_error.c		\
30248616Smm	test_archive_cmdline.c			\
31232153Smm	test_archive_crypto.c			\
32238856Smm	test_archive_getdate.c			\
33238856Smm	test_archive_match_time.c		\
34238856Smm	test_archive_match_owner.c		\
35238856Smm	test_archive_match_path.c		\
36238856Smm	test_archive_pathmatch.c		\
37232153Smm	test_archive_read_close_twice.c		\
38232153Smm	test_archive_read_close_twice_open_fd.c	\
39232153Smm	test_archive_read_close_twice_open_filename.c	\
40248616Smm	test_archive_read_multiple_data_objects.c	\
41232153Smm	test_archive_read_next_header_empty.c	\
42232153Smm	test_archive_read_next_header_raw.c	\
43232153Smm	test_archive_read_open2.c		\
44232153Smm	test_archive_read_set_filter_option.c	\
45232153Smm	test_archive_read_set_format_option.c	\
46232153Smm	test_archive_read_set_option.c		\
47232153Smm	test_archive_read_set_options.c		\
48232153Smm	test_archive_read_support.c		\
49232153Smm	test_archive_set_error.c		\
50232153Smm	test_archive_string.c			\
51232153Smm	test_archive_string_conversion.c	\
52248616Smm	test_archive_write_add_filter_by_name.c	\
53232153Smm	test_archive_write_set_filter_option.c	\
54248616Smm	test_archive_write_set_format_by_name.c	\
55232153Smm	test_archive_write_set_format_option.c	\
56232153Smm	test_archive_write_set_option.c		\
57232153Smm	test_archive_write_set_options.c	\
58167186Skientzle	test_bad_fd.c				\
59185683Skientzle	test_compat_bzip2.c			\
60201247Skientzle	test_compat_cpio.c			\
61175044Skientzle	test_compat_gtar.c			\
62185683Skientzle	test_compat_gzip.c			\
63232153Smm	test_compat_lzip.c			\
64201247Skientzle	test_compat_lzma.c			\
65248616Smm	test_compat_lzop.c			\
66232153Smm	test_compat_mac.c			\
67232153Smm	test_compat_pax_libarchive_2x.c		\
68191576Skientzle	test_compat_solaris_tar_acl.c		\
69232153Smm	test_compat_solaris_pax_sparse.c	\
70175843Skientzle	test_compat_tar_hardlink.c		\
71248616Smm	test_compat_uudecode.c			\
72191183Skientzle	test_compat_xz.c			\
73175044Skientzle	test_compat_zip.c			\
74175044Skientzle	test_empty_write.c			\
75170079Skientzle	test_entry.c				\
76175044Skientzle	test_entry_strmode.c			\
77189431Skientzle	test_extattr_freebsd.c			\
78232153Smm	test_filter_count.c			\
79185683Skientzle	test_fuzz.c				\
80232153Smm	test_gnutar_filename_encoding.c		\
81179321Skientzle	test_link_resolver.c			\
82191183Skientzle	test_open_fd.c				\
83224691Smm	test_open_failure.c			\
84191183Skientzle	test_open_file.c			\
85191183Skientzle	test_open_filename.c			\
86177199Skientzle	test_pax_filename_encoding.c		\
87167186Skientzle	test_read_data_large.c			\
88189429Skientzle	test_read_disk.c			\
89232153Smm	test_read_disk_directory_traversals.c	\
90191183Skientzle	test_read_disk_entry_from_file.c	\
91167186Skientzle	test_read_extract.c			\
92189473Skientzle	test_read_file_nonexistent.c		\
93248616Smm	test_read_filter_grzip.c		\
94248616Smm	test_read_filter_lrzip.c		\
95248616Smm	test_read_filter_lzop.c			\
96248616Smm	test_read_filter_lzop_multiple_parts.c	\
97248616Smm	test_read_filter_program.c		\
98248616Smm	test_read_filter_program_signature.c	\
99248616Smm	test_read_filter_uudecode.c		\
100232153Smm	test_read_format_7zip.c			\
101168453Skientzle	test_read_format_ar.c			\
102232153Smm	test_read_format_cab.c			\
103232153Smm	test_read_format_cab_filename.c		\
104232153Smm	test_read_format_cpio_afio.c		\
105167186Skientzle	test_read_format_cpio_bin.c		\
106167186Skientzle	test_read_format_cpio_bin_Z.c		\
107191592Skientzle	test_read_format_cpio_bin_be.c		\
108167186Skientzle	test_read_format_cpio_bin_bz2.c		\
109167186Skientzle	test_read_format_cpio_bin_gz.c		\
110232153Smm	test_read_format_cpio_bin_lzip.c	\
111201247Skientzle	test_read_format_cpio_bin_lzma.c	\
112191183Skientzle	test_read_format_cpio_bin_xz.c		\
113232153Smm	test_read_format_cpio_filename.c	\
114167186Skientzle	test_read_format_cpio_odc.c		\
115167186Skientzle	test_read_format_cpio_svr4_gzip.c	\
116167186Skientzle	test_read_format_cpio_svr4c_Z.c		\
117224152Smm	test_read_format_cpio_svr4_bzip2_rpm.c	\
118224152Smm	test_read_format_cpio_svr4_gzip_rpm.c	\
119167186Skientzle	test_read_format_empty.c		\
120232153Smm	test_read_format_gtar_filename.c	\
121167186Skientzle	test_read_format_gtar_gz.c		\
122191183Skientzle	test_read_format_gtar_lzma.c		\
123170649Skientzle	test_read_format_gtar_sparse.c		\
124228745Smm	test_read_format_iso_Z.c		\
125201247Skientzle	test_read_format_iso_multi_extent.c	\
126232153Smm	test_read_format_iso_xorriso.c		\
127201247Skientzle	test_read_format_isorr_rr_moved.c	\
128191183Skientzle	test_read_format_isojoliet_bz2.c	\
129201247Skientzle	test_read_format_isojoliet_long.c	\
130201247Skientzle	test_read_format_isojoliet_rr.c		\
131232153Smm	test_read_format_isojoliet_versioned.c	\
132167186Skientzle	test_read_format_isorr_bz2.c		\
133201247Skientzle	test_read_format_isorr_ce.c		\
134201247Skientzle	test_read_format_isorr_new_bz2.c	\
135201247Skientzle	test_read_format_isozisofs_bz2.c	\
136232153Smm	test_read_format_lha.c			\
137232153Smm	test_read_format_lha_filename.c		\
138175044Skientzle	test_read_format_mtree.c		\
139167186Skientzle	test_read_format_pax_bz2.c		\
140232153Smm	test_read_format_rar.c			\
141191594Skientzle	test_read_format_raw.c			\
142167186Skientzle	test_read_format_tar.c			\
143179321Skientzle	test_read_format_tar_empty_filename.c	\
144232153Smm	test_read_format_tar_filename.c		\
145167186Skientzle	test_read_format_tbz.c			\
146167186Skientzle	test_read_format_tgz.c			\
147201247Skientzle	test_read_format_tlz.c			\
148191183Skientzle	test_read_format_txz.c			\
149167186Skientzle	test_read_format_tz.c			\
150232153Smm	test_read_format_ustar_filename.c	\
151224152Smm	test_read_format_xar.c			\
152167186Skientzle	test_read_format_zip.c			\
153248616Smm	test_read_format_zip_comment_stored.c	\
154232153Smm	test_read_format_zip_filename.c		\
155248616Smm	test_read_format_zip_mac_metadata.c	\
156248616Smm	test_read_format_zip_sfx.c		\
157167186Skientzle	test_read_large.c			\
158171430Skientzle	test_read_pax_truncated.c		\
159167186Skientzle	test_read_position.c			\
160248616Smm	test_read_set_format.c			\
161167186Skientzle	test_read_truncated.c			\
162232153Smm	test_read_truncated_filter.c		\
163232153Smm	test_sparse_basic.c			\
164168706Skientzle	test_tar_filenames.c			\
165175044Skientzle	test_tar_large.c			\
166179321Skientzle	test_ustar_filenames.c			\
167232153Smm	test_ustar_filename_encoding.c		\
168167186Skientzle	test_write_disk.c			\
169248616Smm	test_write_disk_appledouble.c		\
170187521Skientzle	test_write_disk_failures.c		\
171175423Skientzle	test_write_disk_hardlink.c		\
172248616Smm	test_write_disk_hfs_compression.c	\
173232153Smm	test_write_disk_lookup.c		\
174248616Smm	test_write_disk_mac_metadata.c		\
175248616Smm	test_write_disk_no_hfs_compression.c	\
176167186Skientzle	test_write_disk_perms.c			\
177167186Skientzle	test_write_disk_secure.c		\
178187704Skientzle	test_write_disk_sparse.c		\
179201247Skientzle	test_write_disk_symlink.c		\
180183483Skientzle	test_write_disk_times.c			\
181248616Smm	test_write_filter_b64encode.c		\
182248616Smm	test_write_filter_bzip2.c		\
183248616Smm	test_write_filter_compress.c		\
184248616Smm	test_write_filter_gzip.c		\
185248616Smm	test_write_filter_gzip_timestamp.c	\
186248616Smm	test_write_filter_lrzip.c		\
187248616Smm	test_write_filter_lzip.c		\
188248616Smm	test_write_filter_lzma.c		\
189248616Smm	test_write_filter_lzop.c		\
190248616Smm	test_write_filter_program.c		\
191248616Smm	test_write_filter_uuencode.c		\
192248616Smm	test_write_filter_xz.c			\
193232153Smm	test_write_format_7zip.c		\
194248616Smm	test_write_format_7zip_empty.c		\
195248616Smm	test_write_format_7zip_large.c		\
196168453Skientzle	test_write_format_ar.c			\
197170984Skientzle	test_write_format_cpio.c		\
198182149Skientzle	test_write_format_cpio_empty.c		\
199182149Skientzle	test_write_format_cpio_newc.c		\
200175044Skientzle	test_write_format_cpio_odc.c		\
201232153Smm	test_write_format_gnutar.c		\
202232153Smm	test_write_format_iso9660.c		\
203232153Smm	test_write_format_iso9660_boot.c	\
204232153Smm	test_write_format_iso9660_empty.c	\
205232153Smm	test_write_format_iso9660_filename.c	\
206232153Smm	test_write_format_iso9660_zisofs.c	\
207191183Skientzle	test_write_format_mtree.c		\
208248616Smm	test_write_format_mtree_absolute_path.c	\
209248616Smm	test_write_format_mtree_classic.c	\
210248616Smm	test_write_format_mtree_classic_indent.c	\
211232153Smm	test_write_format_mtree_fflags.c	\
212248616Smm	test_write_format_mtree_no_separator.c	\
213248616Smm	test_write_format_mtree_quoted_filename.c	\
214183482Skientzle	test_write_format_pax.c			\
215167186Skientzle	test_write_format_shar_empty.c		\
216167186Skientzle	test_write_format_tar.c			\
217182149Skientzle	test_write_format_tar_empty.c		\
218232153Smm	test_write_format_tar_sparse.c		\
219179321Skientzle	test_write_format_tar_ustar.c		\
220248616Smm	test_write_format_tar_v7tar.c		\
221232153Smm	test_write_format_xar.c			\
222232153Smm	test_write_format_xar_empty.c		\
223201247Skientzle	test_write_format_zip.c			\
224201247Skientzle	test_write_format_zip_empty.c		\
225201247Skientzle	test_write_format_zip_no_compression.c	\
226248616Smm	test_write_zip_set_compression_store.c	\
227232153Smm	test_write_open_memory.c		\
228232153Smm	test_zip_filename_encoding.c
229167186Skientzle
230216258Skientzle# Build the test program.
231216258SkientzleSRCS= \
232175044Skientzle	${TESTS}				\
233180029Sdes	list.h					\
234171429Skientzle	main.c					\
235171429Skientzle	read_open_memory.c
236167186Skientzle
237248616Smm.PATH:	${LIBARCHIVEDIR}/test_utils
238248616SmmSRCS+=	test_utils.c
239248616Smm
240175044Skientzle# Build libarchive_test and run it.
241177084Skientzlecheck test: libarchive_test
242228797Smm	./libarchive_test -r ${LIBARCHIVEDIR}/libarchive/test
243167186Skientzle
244175044Skientzle# list.h is just a list of all tests, as indicated by DEFINE_TEST macro lines
245180029Sdeslist.h: ${TESTS} Makefile
246228797Smm	(cd ${LIBARCHIVEDIR}/libarchive/test; cat test_*.c) | \
247228797Smm	grep DEFINE_TEST > ${.OBJDIR}/list.h
248167186Skientzle
249191183SkientzleCLEANFILES += *.out *.o *.core *~ list.h .dirstamp .depend
250191183SkientzleCLEANDIRS += .deps .libs
251175044Skientzle
252175044Skientzlecleantest:
253167186Skientzle	-chmod -R +w /tmp/libarchive_test.*
254167186Skientzle	rm -rf /tmp/libarchive_test.*
255167186Skientzle
256168453Skientzle.include <bsd.prog.mk>
257