aboutsummaryrefslogtreecommitdiff
path: root/tests/tarcompress.sh.in
blob: 99075a244c1f7642c376d46bf80fe1bec8e24457 (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
45
46
47
48
#!/bin/sh

set -e

TAR2SQFS="@abs_top_builddir@/tar2sqfs"
RDSQFS="@abs_top_builddir@/rdsquashfs"

URL="https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/"
DIR="/dev/shm/tarcompress/"

mkdir -p "$DIR"
curl "$URL/linux-3.11.tar.bz2" > "$DIR/linux-3.11.tar.bz2"
curl "$URL/linux-3.11.tar.gz" > "$DIR/linux-3.11.tar.gz"
curl "$URL/linux-3.11.tar.xz" > "$DIR/linux-3.11.tar.xz"

sha256sum -c <<_EOF
e7ae11d20aafdc5a2dfd104f198d87e5ce65fa8ada1ce18a263e89ff0148e1fa  $DIR/linux-3.11.tar.bz2
59904beb1fdae62eb1991f29926c234283c9e4009b6e437499f13d2749bed6ca  $DIR/linux-3.11.tar.gz
803ec8f0ad4b2ddedcb0332a590cd2b5e10dfc57c3b1c95bc9c46af81d51d7f9  $DIR/linux-3.11.tar.xz
_EOF

"$TAR2SQFS" "$DIR/out1.sqfs" < "$DIR/linux-3.11.tar.bz2"
"$TAR2SQFS" "$DIR/out2.sqfs" < "$DIR/linux-3.11.tar.gz"
"$TAR2SQFS" "$DIR/out3.sqfs" < "$DIR/linux-3.11.tar.xz"

# set -e makes sure this explodes if they aren't equal
diff "$DIR/out1.sqfs" "$DIR/out2.sqfs"
diff "$DIR/out2.sqfs" "$DIR/out3.sqfs"

rm "$DIR/out2.sqfs" "$DIR/out3.sqfs"
rm "$DIR/linux-3.11.tar.bz2"
rm "$DIR/linux-3.11.tar.gz"

# every file that exists in the tar ball MUST exist in the squashfs image
# and they MUST be identical
tar -C "$DIR" -xf "$DIR/linux-3.11.tar.xz"

find "$DIR/linux-3.11" -type f | sed "s#$DIR/##" | \
while read fname; do
	"$RDSQFS" -c "$fname" "$DIR/out1.sqfs" > "$DIR/temp"

	diff "$DIR/$fname" "$DIR/temp"
done

# cleanup
rm "$DIR/temp" "$DIR/out1.sqfs" "$DIR/linux-3.11.tar.xz"
rm --one-file-system -rf "$DIR/linux-3.11"
rmdir "$DIR"