aboutsummaryrefslogtreecommitdiff
path: root/project/scripts/test-wszst.sh
diff options
context:
space:
mode:
authorroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
committerroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
commit1192c4575ea7afdf38e3fa0df4587a08620af11e (patch)
tree6910a62487c282d0840d2e668aa7eb40b7c8a3fd /project/scripts/test-wszst.sh
parent76de8a89f7c1d1b4522eb66e8f89d248e8c1781f (diff)
SZS v2.18a
Diffstat (limited to 'project/scripts/test-wszst.sh')
-rwxr-xr-xproject/scripts/test-wszst.sh99
1 files changed, 99 insertions, 0 deletions
diff --git a/project/scripts/test-wszst.sh b/project/scripts/test-wszst.sh
new file mode 100755
index 0000000..ca4a22e
--- /dev/null
+++ b/project/scripts/test-wszst.sh
@@ -0,0 +1,99 @@
+#!/usr/bin/env bash
+# (c) Wiimm, 2012-11-11
+
+export LC_ALL=POSIX
+
+SZS=wszst
+[[ -x ./wszst ]] && SZS=./wszst
+SZS0="$SZS -q"
+SZS="$SZS0"
+echo "SZS=$SZS"
+
+BMG=wbmgt
+[[ -x ./wbmgt ]] && BMG=./wbmgt
+BMG0="$BMG -q"
+BMG="$BMG0"
+echo "BMG=$BMG"
+
+if [[ $1 = -i || $1 = --ignore ]]
+then
+ DIFF="diff -q -x wszst-setup.txt -x .string-pool.* -x .*.d"
+ echo "DIFF=$DIFF"
+ printf "\n!!! WARNING: '.string-pool.*' excluded !!!\n\n"
+ shift
+else
+ DIFF="diff -q -x wszst-setup.txt"
+ echo "DIFF=$DIFF"
+fi
+
+function error()
+{
+ echo "!! Test failed: $*" >&2
+ exit 1
+}
+
+let count=0
+for src in "$@"
+do
+ if [[ $src = -n || $src = --new ]]
+ then
+ echo ">> enabled: --NEW"
+ SZS="$SZS0 --NEW"
+ BMG="$BMG0 --NEW"
+ continue
+ fi
+
+ if [[ $src = -o || $src = --old ]]
+ then
+ echo ">> enabled: --OLD"
+ SZS="$SZS0 --OLD"
+ BMG="$BMG0 --OLD"
+ continue
+ fi
+
+ let count++
+ printf "%5u. %s\n" $count "$src"
+ temp="$(mktemp -ut test-wszst-XXXXXXXX).tmp" || exit 1
+ #echo "TEMP=$temp"
+
+ $SZS decom "$src" -D "$temp/11.u8" || error 11 decompress
+ $SZS compr "$temp/11.u8" -D "$temp/12.szs" || error 12 compress
+ $SZS decom "$temp/12.szs" -D "$temp/13.u8" || error 13 decompress
+ $DIFF "$temp/11.u8" "$temp/13.u8" || error raw diff 11.u8 13.u8
+
+ $SZS extr "$src" -D "$temp/21.d" || error 21 extract
+ $SZS extr "$temp/11.u8" -D "$temp/22.d" || error 22 extract
+ $DIFF -r "$temp/21.d" "$temp/22.d" || error raw diff 21.d 22.d
+
+ $SZS create "$temp/22.d" -D "$temp/23.u8" --noc || error 23 create
+ $SZS diff "$src" "$temp/23.u8" || error file diff src 23
+ $SZS extr "$temp/23.u8" -D "$temp/24.d" || error 24 extract
+ $DIFF -r "$temp/21.d" "$temp/24.d" || error raw diff 21 24
+
+ $SZS extr "$src" -D "$temp/31.d" -a --no-check || error 31 extract --all
+ $SZS create "$temp/31.d" -D "$temp/32.u8" --noc || error 32 create
+ $SZS extr "$temp/32.u8" -D "$temp/33.d" -a --no-check || error 33 extract --all
+ $DIFF -r "$temp/31.d" "$temp/33.d" || error raw diff 31 33
+
+ $SZS compr "$src" -D "$temp/41.wbz" --wbz || error 41 to wbz
+ $SZS compr "$temp/41.wbz" -D "$temp/42.szs" --szs || error 42 to szs
+ $SZS diff "$src" "$temp/42.szs" || error file diff 41 42
+
+ find "$temp/24.d" -name '*.bmg' | while read f
+ do
+ [[ -f $f ]] || continue
+ echo " - ${f/*.d}"
+
+ $BMG encode "$f" -d "$f.1.bmg" || error encode "$f"
+ $DIFF "$f" "$f.1.bmg" || error raw diff src 1
+
+ $BMG decode "$f" -d "$f.2.txt" || error decode "$f"
+ $BMG encode "$f.2.txt" -d "$f.3.bmg" || error encode "$f"
+ $DIFF "$f" "$f.3.bmg" || error raw diff src 3
+
+ done || exit 1
+ rm -rf "$temp"
+
+done
+echo "**OK**"
+