summaryrefslogtreecommitdiff
path: root/tests/test_tar_sqfs.sh.in
blob: ad9fba3237a31be608127817d81efbd9c189284b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/sh

set -e

TARDIR="@abs_top_srcdir@/tests/libtar/data"
TARDIR2="@abs_top_srcdir@/tests/tar2sqfs"
SHA512FILE="@abs_top_srcdir@/tests/libtar/data/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