summaryrefslogtreecommitdiff
path: root/tests/tar2sqfs/test_tar_sqfs.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tar2sqfs/test_tar_sqfs.sh.in')
-rwxr-xr-xtests/tar2sqfs/test_tar_sqfs.sh.in44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/tar2sqfs/test_tar_sqfs.sh.in b/tests/tar2sqfs/test_tar_sqfs.sh.in
new file mode 100755
index 0000000..750add4
--- /dev/null
+++ b/tests/tar2sqfs/test_tar_sqfs.sh.in
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+set -e
+
+TARDIR="@abs_top_srcdir@/tests/libtar/data"
+TARDIR2="@abs_top_srcdir@/tests/tar2sqfs"
+SHA512FILE="$TARDIR2/sqfs.sha512"
+TAR2SQFS="@abs_top_builddir@/tar2sqfs"
+
+if [ ! -f "$TAR2SQFS" -a -f "${TAR2SQFS}.exe" ]; then
+ TAR2SQFS="${TAR2SQFS}.exe"
+fi
+
+# process tar files used for conformance tests
+for filename in $(find "$TARDIR" -name "*.tar" | grep -v ".*/file-size/.*"); do
+ dir="$(dirname $filename | sed -n -e 's;.*/tests/;tests/;p')"
+ imgname="$dir/$(basename $filename .tar).sqfs"
+
+ mkdir -p "$dir"
+ "$TAR2SQFS" --defaults mtime=0 -c gzip -q "$imgname" < "$filename"
+done
+
+# edge case test
+filename="$TARDIR2/simple.tar"
+dir="$(dirname $filename | sed -n -e 's;.*/tests/;tests/;p')"
+imgname="$dir/root-becomes.sqfs"
+
+mkdir -p "$dir"
+"$TAR2SQFS" --root-becomes foo --defaults mtime=0 \
+ -c gzip -q "$imgname" < "$filename"
+
+# verify
+sha512sum -c "$SHA512FILE"
+
+# cleanup
+rm "$dir/root-becomes.sqfs"
+
+for filename in $(find "$TARDIR" -name "*.tar" | grep -v ".*/file-size/.*"); do
+ dir="$(dirname $filename | sed -n -e 's;.*/tests/;tests/;p')"
+ imgname="$dir/$(basename $filename .tar).sqfs"
+
+ rm "$imgname"
+ rmdir -p "$dir" || true
+done