116 lines
2.1 KiB
Bash
116 lines
2.1 KiB
Bash
|
#!/bin/sh
|
||
|
set -e
|
||
|
set -u
|
||
|
set -x
|
||
|
|
||
|
|
||
|
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
||
|
PROG_DIR="$SCRIPT_DIR/../programs"
|
||
|
|
||
|
ZSTD="$PROG_DIR/zstd"
|
||
|
ZSTD_COMPRESS="$PROG_DIR/zstd-compress"
|
||
|
ZSTD_DECOMPRESS="$PROG_DIR/zstd-decompress"
|
||
|
ZSTD_NOLEGACY="$PROG_DIR/zstd-nolegacy"
|
||
|
ZSTD_DICTBUILDER="$PROG_DIR/zstd-dictBuilder"
|
||
|
ZSTD_FRUGAL="$PROG_DIR/zstd-frugal"
|
||
|
ZSTD_NOMT="$PROG_DIR/zstd-nomt"
|
||
|
|
||
|
println() {
|
||
|
printf '%b\n' "${*}"
|
||
|
}
|
||
|
|
||
|
die() {
|
||
|
println "$@" 1>&2
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
symbol_present() {
|
||
|
(nm $1 || echo "symbol_present $@ failed") | grep $2
|
||
|
}
|
||
|
|
||
|
symbol_not_present() {
|
||
|
symbol_present $@ && die "Binary '$1' mistakenly contains symbol '$2'" ||:
|
||
|
}
|
||
|
|
||
|
compress_not_present() {
|
||
|
symbol_not_present "$1" ZSTD_compress
|
||
|
}
|
||
|
|
||
|
decompress_not_present() {
|
||
|
symbol_not_present "$1" ZSTD_decompress
|
||
|
}
|
||
|
|
||
|
dict_not_present() {
|
||
|
symbol_not_present "$1" ZDICT_
|
||
|
symbol_not_present "$1" COVER_
|
||
|
}
|
||
|
|
||
|
cliextra_not_present() {
|
||
|
symbol_not_present "$1" TRACE_
|
||
|
symbol_not_present "$1" BMK_
|
||
|
}
|
||
|
|
||
|
legacy_not_present() {
|
||
|
symbol_not_present "$1" ZSTDv0
|
||
|
}
|
||
|
|
||
|
test_help() {
|
||
|
"$1" --help | grep -- "$2"
|
||
|
}
|
||
|
|
||
|
test_no_help() {
|
||
|
test_help $@ && die "'$1' supports '$2' when it shouldn't" ||:
|
||
|
}
|
||
|
|
||
|
extras_not_present() {
|
||
|
dict_not_present $@
|
||
|
legacy_not_present $@
|
||
|
cliextra_not_present $@
|
||
|
test_no_help $@ "--train"
|
||
|
test_no_help $@ "-b#"
|
||
|
}
|
||
|
|
||
|
test_compress() {
|
||
|
echo "hello" | "$1" | "$ZSTD" -t
|
||
|
}
|
||
|
|
||
|
test_decompress() {
|
||
|
echo "hello" | "$ZSTD" | "$1" -t
|
||
|
}
|
||
|
|
||
|
test_zstd() {
|
||
|
test_compress $@
|
||
|
test_decompress $@
|
||
|
}
|
||
|
|
||
|
extras_not_present "$ZSTD_FRUGAL"
|
||
|
extras_not_present "$ZSTD_COMPRESS"
|
||
|
extras_not_present "$ZSTD_DECOMPRESS"
|
||
|
|
||
|
compress_not_present "$ZSTD_DECOMPRESS"
|
||
|
|
||
|
decompress_not_present "$ZSTD_COMPRESS"
|
||
|
decompress_not_present "$ZSTD_DICTBUILDER"
|
||
|
|
||
|
cliextra_not_present "$ZSTD_DICTBUILDER"
|
||
|
|
||
|
legacy_not_present "$ZSTD_DICTBUILDER"
|
||
|
legacy_not_present "$ZSTD_NOLEGACY"
|
||
|
|
||
|
symbol_not_present "$ZSTD" ZSTDv01
|
||
|
symbol_not_present "$ZSTD" ZSTDv02
|
||
|
symbol_not_present "$ZSTD" ZSTDv03
|
||
|
symbol_not_present "$ZSTD" ZSTDv04
|
||
|
|
||
|
test_compress "$ZSTD_COMPRESS"
|
||
|
test_decompress "$ZSTD_DECOMPRESS"
|
||
|
|
||
|
test_zstd "$ZSTD_FRUGAL"
|
||
|
test_zstd "$ZSTD_NOLEGACY"
|
||
|
|
||
|
test_help "$ZSTD" '-b#'
|
||
|
test_help "$ZSTD" --train
|
||
|
test_help "$ZSTD_DICTBUILDER" --train
|
||
|
|
||
|
println "Success!"
|