git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / tests / test-variants.sh
1 #!/bin/sh
2 set -e
3 set -u
4 set -x
5
6
7 SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
8 PROG_DIR="$SCRIPT_DIR/../programs"
9
10 ZSTD="$PROG_DIR/zstd"
11 ZSTD_COMPRESS="$PROG_DIR/zstd-compress"
12 ZSTD_DECOMPRESS="$PROG_DIR/zstd-decompress"
13 ZSTD_NOLEGACY="$PROG_DIR/zstd-nolegacy"
14 ZSTD_DICTBUILDER="$PROG_DIR/zstd-dictBuilder"
15 ZSTD_FRUGAL="$PROG_DIR/zstd-frugal"
16 ZSTD_NOMT="$PROG_DIR/zstd-nomt"
17
18 println() {
19     printf '%b\n' "${*}"
20 }
21
22 die() {
23     println "$@" 1>&2
24     exit 1
25 }
26
27 symbol_present() {
28         (nm $1 || echo "symbol_present $@ failed") | grep $2
29 }
30
31 symbol_not_present() {
32         symbol_present $@ && die "Binary '$1' mistakenly contains symbol '$2'" ||:
33 }
34
35 compress_not_present() {
36         symbol_not_present "$1" ZSTD_compress
37 }
38
39 decompress_not_present() {
40         symbol_not_present "$1" ZSTD_decompress
41 }
42
43 dict_not_present() {
44         symbol_not_present "$1" ZDICT_
45         symbol_not_present "$1" COVER_
46 }
47
48 cliextra_not_present() {
49         symbol_not_present "$1" TRACE_
50         symbol_not_present "$1" BMK_
51 }
52
53 legacy_not_present() {
54         symbol_not_present "$1" ZSTDv0
55 }
56
57 test_help() {
58         "$1" --help | grep -- "$2"
59 }
60
61 test_no_help() {
62         test_help $@ && die "'$1' supports '$2' when it shouldn't" ||:
63 }
64
65 extras_not_present() {
66         dict_not_present $@
67         legacy_not_present $@
68         cliextra_not_present $@
69         test_no_help $@ "--train"
70         test_no_help $@ "-b#"
71 }
72
73 test_compress() {
74         echo "hello" | "$1" | "$ZSTD" -t
75 }
76
77 test_decompress() {
78         echo "hello" | "$ZSTD" | "$1" -t
79 }
80
81 test_zstd() {
82         test_compress $@
83         test_decompress $@
84 }
85
86 extras_not_present "$ZSTD_FRUGAL"
87 extras_not_present "$ZSTD_COMPRESS"
88 extras_not_present "$ZSTD_DECOMPRESS"
89
90 compress_not_present "$ZSTD_DECOMPRESS"
91
92 decompress_not_present "$ZSTD_COMPRESS"
93 decompress_not_present "$ZSTD_DICTBUILDER"
94
95 cliextra_not_present "$ZSTD_DICTBUILDER"
96
97 legacy_not_present "$ZSTD_DICTBUILDER"
98 legacy_not_present "$ZSTD_NOLEGACY"
99
100 symbol_not_present "$ZSTD" ZSTDv01
101 symbol_not_present "$ZSTD" ZSTDv02
102 symbol_not_present "$ZSTD" ZSTDv03
103 symbol_not_present "$ZSTD" ZSTDv04
104
105 test_compress "$ZSTD_COMPRESS"
106 test_decompress "$ZSTD_DECOMPRESS"
107
108 test_zstd "$ZSTD_FRUGAL"
109 test_zstd "$ZSTD_NOLEGACY"
110
111 test_help "$ZSTD" '-b#'
112 test_help "$ZSTD" --train
113 test_help "$ZSTD_DICTBUILDER" --train
114
115 println "Success!"