From d43b31df6b84e54d0d657fd27b2f2b5734d8f162 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 3 May 2020 14:36:16 +0200 Subject: Add a simple test script for the gensquashfs packdir + allroot use case Since this is a fairly common use case, it deserves a simple test case to check out that e.g. option processing hasn't been botched up (again). As input directory, the licenses directory is used as it contains no intermediate build output and should change fairly infrequently. The test is enabled irregardless of the corpora-test option. Signed-off-by: David Oberhollenzer --- .gitignore | 2 +- configure.ac | 2 ++ tests/Makemodule.am | 4 ++++ tests/pack_dir_root.sh.in | 23 +++++++++++++++++++++++ tests/pack_dir_root.txt.ref | 9 +++++++++ 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100755 tests/pack_dir_root.sh.in create mode 100644 tests/pack_dir_root.txt.ref diff --git a/.gitignore b/.gitignore index b1eb995..3501319 100644 --- a/.gitignore +++ b/.gitignore @@ -41,7 +41,7 @@ ltmain.sh m4/libtool.m4 m4/lt*.m4 Doxyfile -tests/cantrbry.sh +tests/*.sh /mknastyfs /mk42sqfs /list_files diff --git a/configure.ac b/configure.ac index 9ec1f6a..100539a 100644 --- a/configure.ac +++ b/configure.ac @@ -7,6 +7,7 @@ AC_PROG_CC([cc gcc clang]) LT_INIT([win32-dll]) AC_PROG_CC_C99 AC_PROG_INSTALL +AC_PROG_SED AC_SYS_LARGEFILE AC_CANONICAL_HOST @@ -247,6 +248,7 @@ AC_CONFIG_FILES([lib/sqfs/libsquashfs0.pc]) AC_CONFIG_FILES([Doxyfile]) AC_CONFIG_FILES([tests/cantrbry.sh], [chmod +x tests/cantrbry.sh]) AC_CONFIG_FILES([tests/test_tar_sqfs.sh], [chmod +x tests/test_tar_sqfs.sh]) +AC_CONFIG_FILES([tests/pack_dir_root.sh], [chmod +x tests/pack_dir_root.sh]) AC_OUTPUT([Makefile]) diff --git a/tests/Makemodule.am b/tests/Makemodule.am index f4aca03..14a2cb1 100644 --- a/tests/Makemodule.am +++ b/tests/Makemodule.am @@ -127,6 +127,9 @@ TESTS += test_tar_gnu test_tar_sparse_gnu test_tar_sparse_gnu1 TESTS += test_tar_sparse_gnu2 test_tar_xattr_bsd test_tar_xattr_schily TESTS += test_tar_xattr_schily_bin +check_SCRIPTS += tests/pack_dir_root.sh +TESTS += tests/pack_dir_root.sh + if CORPORA_TESTS check_SCRIPTS += tests/cantrbry.sh tests/test_tar_sqfs.sh TESTS += tests/cantrbry.sh tests/test_tar_sqfs.sh @@ -137,3 +140,4 @@ EXTRA_DIST += $(top_srcdir)/tests/tar $(top_srcdir)/tests/words.txt EXTRA_DIST += $(top_srcdir)/tests/fstree1.txt EXTRA_DIST += $(top_srcdir)/tests/corpus/cantrbry.tar.xz EXTRA_DIST += $(top_srcdir)/tests/corpus/cantrbry.sha512 +EXTRA_DIST += $(top_srcdir)/tests/pack_dir_root.txt.ref diff --git a/tests/pack_dir_root.sh.in b/tests/pack_dir_root.sh.in new file mode 100755 index 0000000..ad0a085 --- /dev/null +++ b/tests/pack_dir_root.sh.in @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +LICDIR="@abs_top_srcdir@/licenses" +REFFILE="@abs_top_srcdir@/tests/pack_dir_root.txt.ref" +GENSQFS="@abs_top_builddir@/gensquashfs" +RDSQFS="@abs_top_builddir@/rdsquashfs" +IMAGE="pack_dir_root.sqfs" +SED="@SED@" + +if [ ! -f "$GENSQFS" -a -f "${GENSQFS}.exe" ]; then + GENSQFS="${GENSQFS}.exe" + RDSQFS="${RDSQFS}.exe" +fi + +"$GENSQFS" --all-root --pack-dir "$LICDIR" --defaults mtime=0 \ + -c gzip -q "$IMAGE" + +"$RDSQFS" -l / "$IMAGE" | "$SED" 's/^-[rwx-]* //g' > "${IMAGE}.txt" + +diff "$REFFILE" "${IMAGE}.txt" +rm "$IMAGE" "${IMAGE}.txt" diff --git a/tests/pack_dir_root.txt.ref b/tests/pack_dir_root.txt.ref new file mode 100644 index 0000000..7addf59 --- /dev/null +++ b/tests/pack_dir_root.txt.ref @@ -0,0 +1,9 @@ +0/0 18k GPLv2.txt +0/0 34k GPLv3.txt +0/0 7k LGPLv3.txt +0/0 1k LZ4.txt +0/0 1k hash_table.txt +0/0 1k xxhash.txt +0/0 768 xz.txt +0/0 983 zlib.txt +0/0 1k zstd.txt -- cgit v1.2.3