diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-05-03 14:36:16 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-05-03 14:36:16 +0200 |
commit | d43b31df6b84e54d0d657fd27b2f2b5734d8f162 (patch) | |
tree | 72ab62a643abacbf302a92280800af9bd9f58213 | |
parent | 5380c605440db063f8b80a2a48b326a8ce9b0d93 (diff) |
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 <david.oberhollenzer@sigma-star.at>
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | tests/Makemodule.am | 4 | ||||
-rwxr-xr-x | tests/pack_dir_root.sh.in | 23 | ||||
-rw-r--r-- | tests/pack_dir_root.txt.ref | 9 |
5 files changed, 39 insertions, 1 deletions
@@ -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 |