blob: 726f4e81c6c57cf8eb171732ee5a9faf7c1e912b (
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#!/bin/bash
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"
# unpack tarball and squashfs image
tar -C "$DIR" -xf "$DIR/linux-3.11.tar.xz"
rm "$DIR/linux-3.11.tar.xz"
"$RDSQFS" -DSF -u / -p "$DIR/sqfs/" "$DIR/out1.sqfs"
rm "$DIR/out1.sqfs"
# every file that exists in the tar ball MUST exist in the squashfs image
# and they MUST be identical
find "$DIR/linux-3.11" -type f | sed "s#$DIR/##" | \
while read fname; do
set -e
diff "$DIR/$fname" "$DIR/sqfs/$fname"
rm "$DIR/sqfs/$fname" "$DIR/$fname"
echo "match $DIR/$fname"
done
find "$DIR/linux-3.11" -type l | sed "s#$DIR/##" | \
while read fname; do
set -e
a=$(readlink "$DIR/$fname")
b=$(readlink "$DIR/sqfs/$fname")
[ "x$a" = "x$b" ] || exit 1
unlink "$DIR/sqfs/$fname"
unlink "$DIR/$fname"
echo "match $DIR/$fname"
done
# match directories and cleanup at the same time
find "$DIR/linux-3.11" -type d | sed "s#$DIR/##" | sort -ur | \
while read fname; do
set -e
rmdir "$DIR/$fname" "$DIR/sqfs/$fname"
done
rmdir "$DIR/sqfs"
rmdir "$DIR"
echo "DONE!"
|