kientzle 19a4817b26 Test --strip-components and fix it to actually work. Jaakko did a
good job writing this test; it exercises a lot of subtle cases.  The
trickiest one is that a hardlink to something that didn't get
extracted should not itself be extracted.  In some sense, this is not
the desired behavior (we'd rather restore the file), but it's the best
you can do in a single-pass restore of a tar archive.

The test here should be extended to exercise cpio and newc formats as
well, since their hardlink models are different, which will lead to
different handling of some of these edge cases.

Submitted by:	Jaakko Heinonen
MFC after:	30 days
2008-11-10 05:04:55 +00:00

66 lines
1.2 KiB
Makefile

# $FreeBSD$
# Where to find the tar sources (for the internal unit tests)
TAR_SRCDIR=${.CURDIR}/..
.PATH: ${TAR_SRCDIR}
# Some tar sources are pulled in for white-box tests
TAR_SRCS= \
../getdate.y
TESTS= \
test_0.c \
test_basic.c \
test_copy.c \
test_getdate.c \
test_help.c \
test_option_T.c \
test_option_q.c \
test_patterns.c \
test_stdio.c \
test_strip_components.c \
test_symlink_dir.c \
test_version.c
# Build the test program
SRCS= ${TAR_SRCS} \
${TESTS} \
list.h \
main.c
CLEANFILES+= list.h
NO_MAN=yes
PROG=bsdtar_test
DPADD=${LIBARCHIVE} ${LIBBZ2} ${LIBZ}
CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\"
CFLAGS+= -I..
LDADD= -larchive -lz -lbz2
CFLAGS+= -static -g -O2 -Wall
CFLAGS+= -I${.OBJDIR}
CFLAGS+= -I${TAR_SRCDIR}
# Uncomment to link against dmalloc
#LDADD+= -L/usr/local/lib -ldmalloc
#CFLAGS+= -I/usr/local/include -DUSE_DMALLOC
WARNS=6
check test: bsdtar_test
./bsdtar_test -p ${.OBJDIR}/../bsdtar -r ${.CURDIR}
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
rm -f archive.h ../archive.h
-chmod -R +w /tmp/bsdtar_test.*
rm -rf /tmp/bsdtar_test.*
.include <bsd.prog.mk>