diff options
Diffstat (limited to 'tests/tar2sqfs/test_tar_sqfs.sh.in')
-rwxr-xr-x | tests/tar2sqfs/test_tar_sqfs.sh.in | 44 |
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 |