aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2020-05-03 14:36:16 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2020-05-03 14:36:16 +0200
commitd43b31df6b84e54d0d657fd27b2f2b5734d8f162 (patch)
tree72ab62a643abacbf302a92280800af9bd9f58213
parent5380c605440db063f8b80a2a48b326a8ce9b0d93 (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--.gitignore2
-rw-r--r--configure.ac2
-rw-r--r--tests/Makemodule.am4
-rwxr-xr-xtests/pack_dir_root.sh.in23
-rw-r--r--tests/pack_dir_root.txt.ref9
5 files changed, 39 insertions, 1 deletions
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