diff options
author | ngie <ngie@FreeBSD.org> | 2015-10-11 08:26:48 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2015-10-11 08:26:48 +0000 |
commit | f5532a14fee5732f99496a00146658ec19c0fa63 (patch) | |
tree | 5de639b2d62549f868026c30efa7c4fbf8038a0b /usr.bin/cpio | |
parent | 33c7bf8e7b5beff5a1eb3e2ccf6a661c52360ec6 (diff) | |
download | FreeBSD-src-f5532a14fee5732f99496a00146658ec19c0fa63.zip FreeBSD-src-f5532a14fee5732f99496a00146658ec19c0fa63.tar.gz |
Revert r289133; retry the merge
Diffstat (limited to 'usr.bin/cpio')
-rw-r--r-- | usr.bin/cpio/tests/Makefile | 114 | ||||
-rwxr-xr-x | usr.bin/cpio/tests/functional_test.sh | 56 |
2 files changed, 170 insertions, 0 deletions
diff --git a/usr.bin/cpio/tests/Makefile b/usr.bin/cpio/tests/Makefile new file mode 100644 index 0000000..f2cd52d --- /dev/null +++ b/usr.bin/cpio/tests/Makefile @@ -0,0 +1,114 @@ +# $FreeBSD$ + +LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive + +ATF_TESTS_SH+= functional_test + +PROGS+= bsdcpio_test + +BINDIR= ${TESTSDIR} + +.PATH: ${LIBARCHIVEDIR}/cpio +CPIO_SRCS= cmdline.c + +.PATH: ${LIBARCHIVEDIR}/libarchive_fe +CPIO_SRCS+= err.c + +.PATH: ${LIBARCHIVEDIR}/cpio/test +TESTS_SRCS= \ + test_0.c \ + test_basic.c \ + test_cmdline.c \ + test_extract_cpio_Z.c \ + test_extract_cpio_bz2.c \ + test_extract_cpio_grz.c \ + test_extract_cpio_gz.c \ + test_extract_cpio_lrz.c \ + test_extract_cpio_lz.c \ + test_extract_cpio_lzma.c \ + test_extract_cpio_lzo.c \ + test_extract_cpio_xz.c \ + test_format_newc.c \ + test_gcpio_compat.c \ + test_option_0.c \ + test_option_B_upper.c \ + test_option_C_upper.c \ + test_option_J_upper.c \ + test_option_L_upper.c \ + test_option_Z_upper.c \ + test_option_a.c \ + test_option_b64encode.c \ + test_option_c.c \ + test_option_d.c \ + test_option_f.c \ + test_option_grzip.c \ + test_option_help.c \ + test_option_l.c \ + test_option_lrzip.c \ + test_option_lzma.c \ + test_option_lzop.c \ + test_option_m.c \ + test_option_t.c \ + test_option_u.c \ + test_option_uuencode.c \ + test_option_version.c \ + test_option_xz.c \ + test_option_y.c \ + test_option_z.c \ + test_owner_parse.c \ + test_passthrough_dotdot.c \ + test_passthrough_reverse.c + +# Build the test program +SRCS.bsdcpio_test= list.h \ + ${CPIO_SRCS} \ + ${TESTS_SRCS} \ + main.c + +.PATH: ${LIBARCHIVEDIR}/test_utils +SRCS.bsdcpio_test+= test_utils.c + +CLEANFILES+= list.h + +CFLAGS+= -DPLATFORM_CONFIG_H=\"${SRCTOP}/lib/libarchive/config_freebsd.h\" +CFLAGS+= -I${SRCTOP}/lib/libarchive -I${.OBJDIR} +LIBADD= archive + +DEBUG_FLAGS+= -g +CFLAGS+= -I${.OBJDIR} +CFLAGS+= -I${LIBARCHIVEDIR}/cpio -I${LIBARCHIVEDIR}/libarchive_fe +CFLAGS+= -I${LIBARCHIVEDIR}/test_utils + +# Uncomment to link against dmalloc +#LDADD+= -L/usr/local/lib -ldmalloc +#CFLAGS+= -I/usr/local/include -DUSE_DMALLOC + +list.h: ${TESTS_SRCS} Makefile + @(cd ${LIBARCHIVEDIR}/tar/test && \ + grep -h DEFINE_TEST ${.ALLSRC:N*Makefile}) > ${.TARGET}.tmp + @mv ${.TARGET}.tmp ${.TARGET} + +FILES+= test_extract.cpio.Z.uu +FILES+= test_extract.cpio.bz2.uu +FILES+= test_extract.cpio.grz.uu +FILES+= test_extract.cpio.gz.uu +FILES+= test_extract.cpio.lrz.uu +FILES+= test_extract.cpio.lz.uu +FILES+= test_extract.cpio.lzma.uu +FILES+= test_extract.cpio.lzo.uu +FILES+= test_extract.cpio.xz.uu +FILES+= test_gcpio_compat_ref.bin.uu +FILES+= test_gcpio_compat_ref.crc.uu +FILES+= test_gcpio_compat_ref.newc.uu +FILES+= test_gcpio_compat_ref.ustar.uu +FILES+= test_gcpio_compat_ref_nosym.bin.uu +FILES+= test_gcpio_compat_ref_nosym.crc.uu +FILES+= test_gcpio_compat_ref_nosym.newc.uu +FILES+= test_gcpio_compat_ref_nosym.ustar.uu +FILES+= test_option_f.cpio.uu +FILES+= test_option_m.cpio.uu +FILES+= test_option_t.cpio.uu +FILES+= test_option_t.stdout.uu +FILES+= test_option_tv.stdout.uu + +.include <bsd.test.mk> diff --git a/usr.bin/cpio/tests/functional_test.sh b/usr.bin/cpio/tests/functional_test.sh new file mode 100755 index 0000000..48116c0 --- /dev/null +++ b/usr.bin/cpio/tests/functional_test.sh @@ -0,0 +1,56 @@ +# +# Copyright 2015 EMC Corp. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# $FreeBSD$ + +SRCDIR=$(atf_get_srcdir) +TESTER="${SRCDIR}/bsdcpio_test" +export BSDCPIO=$(which cpio) + +check() +{ + local testcase=${1}; shift + + # For some odd reason /bin/sh spuriously writes + # "write error on stdout" with some of the testcases + # + # Probably an issue with how they're written as it calls system(3) to + # clean up directories.. + atf_check -e ignore -o ignore -s exit:0 ${TESTER} -d -r "${SRCDIR}" -v "${testcase}" +} + +atf_init_test_cases() +{ + # Redirect stderr to stdout for the usage message because if you don't + # kyua list/kyua test will break: + # https://github.com/jmmv/kyua/issues/149 + testcases=$(${TESTER} -h 2>&1 | awk 'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }') + for testcase in ${testcases}; do + atf_test_case ${testcase} + eval "${testcase}_body() { check ${testcase}; }" + atf_add_test_case ${testcase} + done +} |