summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/test/Makefile
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2008-01-01 22:28:04 +0000
committerkientzle <kientzle@FreeBSD.org>2008-01-01 22:28:04 +0000
commit02ff80aa514f0bbb5712a71b96f5593ada26bb80 (patch)
tree0719828e5aab493661568e13eaa8b2aa062e27da /lib/libarchive/test/Makefile
parentf89bbe213dfe121e5c9af00662285358ab07dc81 (diff)
downloadFreeBSD-src-02ff80aa514f0bbb5712a71b96f5593ada26bb80.zip
FreeBSD-src-02ff80aa514f0bbb5712a71b96f5593ada26bb80.tar.gz
Extensive improvements to the libarchive_test test program that
exercises and verifies the libarchive APIs: * Improved error reporting; hexdumps are now provided for many file/memory content differences. * Overall status more clearly counts "tests" and "assertions" * Reference files can now be stored on disk instead of having to be compiled into the test program itself. A couple of tests have been converted to this more natural structure. * Several memory leaks corrected so that leaks within libarchive itself can be more easily detected and diagnosed. * New test: GNU tar compatibility * New test: Zip compatibility * New test: Zero-byte writes to a compressed archive entry * New test: archive_entry_strmode() format verification * New test: mtree reader * New test: write/read of large (2G - 1TB) entries to tar archives (thanks to recent performance work, this test only requires a few seconds) * New test: detailed format verification of cpio odc and newc writers * Many minor additions/improvements to existing tests as well.
Diffstat (limited to 'lib/libarchive/test/Makefile')
-rw-r--r--lib/libarchive/test/Makefile76
1 files changed, 61 insertions, 15 deletions
diff --git a/lib/libarchive/test/Makefile b/lib/libarchive/test/Makefile
index 6c1fb48..ac252a4 100644
--- a/lib/libarchive/test/Makefile
+++ b/lib/libarchive/test/Makefile
@@ -1,11 +1,32 @@
# $FreeBSD$
+# Where to find the libarchive sources
+LA_SRCDIR=${.CURDIR}/..
+.PATH: ${LA_SRCDIR}
+
+# Get a list of all libarchive source files
+LA_SRCS!=make -f ${LA_SRCDIR}/Makefile -V SRCS
+
+TESTFILES= \
+ test_compat_gtar_1.tgz \
+ test_compat_zip_1.zip \
+ test_read_format_gtar_sparse_1_13.tgz \
+ test_read_format_gtar_sparse_1_17.tgz \
+ test_read_format_gtar_sparse_1_17_posix00.tgz \
+ test_read_format_gtar_sparse_1_17_posix01.tgz \
+ test_read_format_gtar_sparse_1_17_posix10.tgz \
+ test_read_format_gtar_sparse_1_17_posix10_modified.tar
+
TESTS= \
test_acl_basic.c \
test_acl_pax.c \
test_archive_api_feature.c \
test_bad_fd.c \
+ test_compat_gtar.c \
+ test_compat_zip.c \
+ test_empty_write.c \
test_entry.c \
+ test_entry_strmode.c \
test_read_compress_program.c \
test_read_data_large.c \
test_read_extract.c \
@@ -22,6 +43,7 @@ TESTS= \
test_read_format_gtar_sparse.c \
test_read_format_iso_gz.c \
test_read_format_isorr_bz2.c \
+ test_read_format_mtree.c \
test_read_format_pax_bz2.c \
test_read_format_tar.c \
test_read_format_tbz.c \
@@ -33,50 +55,74 @@ TESTS= \
test_read_position.c \
test_read_truncated.c \
test_tar_filenames.c \
+ test_tar_large.c \
test_write_compress_program.c \
test_write_disk.c \
test_write_disk_perms.c \
test_write_disk_secure.c \
test_write_format_ar.c \
test_write_format_cpio.c \
+ test_write_format_cpio_odc.c \
+ test_write_format_cpio_newc.c \
test_write_format_cpio_empty.c \
test_write_format_shar_empty.c \
test_write_format_tar.c \
test_write_format_tar_empty.c \
test_write_open_memory.c
-SRCS= ${TESTS} \
+
+# Build the test program using all libarchive sources + the test sources.
+SRCS= ${LA_SRCS} \
+ ${TESTS} \
list.h \
main.c \
read_open_memory.c
-CLEANFILES+= list.h
+CLEANFILES+= list.h archive.h
NO_MAN=yes
PROG=libarchive_test
-DPADD=${LIBARCHIVE} ${LIBBZ2} ${LIBZ}
-LDADD= -larchive -lz -lbz2
+INTERNALPROG=yes # Don't install this; it's just for testing
+DPADD=${LIBBZ2} ${LIBZ}
+CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\"
+LDADD= -lz -lbz2
CFLAGS+= -static -g
CFLAGS+= -I${.OBJDIR}
+CFLAGS+= -I${.CURDIR}
+CFLAGS+= -I${LA_SRCDIR}
+# Without this, libarchive source files find archive.h in LA_SRCDIR,
+# which may not be the same as archive.h in the test dir.
+CFLAGS+= -I-
# Uncomment to link against dmalloc
-#LDADD+= -L/usr/local/lib -ldmalloc
-#CFLAGS+= -I/usr/local/include -DUSE_DMALLOC
-#WARNS=6
+LDADD+= -L/usr/local/lib -ldmalloc
+CFLAGS+= -I/usr/local/include -DUSE_DMALLOC
+WARNS=6
-test: libarchive_test
- ./libarchive_test -k
+# Build libarchive_test and run it.
+check test: libarchive_test ${TESTFILES}
+ ./libarchive_test
+.for f in ${TESTFILES}
+${f}: ${f}.uu
+ uudecode -p ${.CURDIR}/${f}.uu >${f}
+.endfor
+
+INCS=archive.h list.h
+
+# Build archive.h, but in our .OBJDIR, not libarchive's
+# This keeps libarchive_test and libarchive builds completely separate.
+archive.h: ${LA_SRCDIR}/archive.h.in ${LA_SRCDIR}/Makefile
+ cd ${LA_SRCDIR} && unset MAKEOBJDIRPREFIX && MAKEOBJDIR=${.OBJDIR} make archive.h
+
+# list.h is just a list of all tests, as indicated by DEFINE_TEST macro lines
list.h: ${TESTS} Makefile
(cd ${.CURDIR}; cat ${TESTS}) | grep DEFINE_TEST > list.h
-clean:
- rm -f *.out
- rm -f *.o
- rm -f *.core
- rm -f *~
- rm -f list.h
+CLEANFILES += *.out *.o *.core *~ list.h archive.h ${TESTFILES}
+
+cleantest:
-chmod -R +w /tmp/libarchive_test.*
rm -rf /tmp/libarchive_test.*
OpenPOWER on IntegriCloud