123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #!/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!"
|