diff options
author | kientzle <kientzle@FreeBSD.org> | 2008-01-01 22:28:04 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2008-01-01 22:28:04 +0000 |
commit | 02ff80aa514f0bbb5712a71b96f5593ada26bb80 (patch) | |
tree | 0719828e5aab493661568e13eaa8b2aa062e27da /lib/libarchive/test/Makefile | |
parent | f89bbe213dfe121e5c9af00662285358ab07dc81 (diff) | |
download | FreeBSD-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/Makefile | 76 |
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.* |