git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / tests / libzstd_builds.sh
1 #!/bin/sh -e
2
3 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4
5 ECHO=echo
6 RM="rm -f"
7 GREP="grep"
8 INTOVOID="/dev/null"
9
10 die() {
11     $ECHO "$@" 1>&2
12     exit 1
13 }
14
15 isPresent() {
16     $GREP $@ tmplog || die "$@" "should be present"
17 }
18
19 mustBeAbsent() {
20     $GREP $@ tmplog && die "$@ should not be there !!"
21     $ECHO "$@ correctly not present"  # for some reason, this $ECHO must exist, otherwise mustBeAbsent() always fails (??)
22 }
23
24 # default compilation : all features enabled - no zbuff
25 $ECHO "testing default library compilation"
26 CFLAGS= make -C $DIR/../lib libzstd libzstd.a > $INTOVOID
27 nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
28 isPresent "zstd_compress.o"
29 isPresent "zstd_decompress.o"
30 isPresent "zdict.o"
31 isPresent "zstd_v07.o"
32 mustBeAbsent "zbuff_compress.o"
33 $RM tmplog
34
35 # Check that the exec-stack bit isn't set
36 readelf -lW $DIR/../lib/libzstd.so | $GREP "GNU_STACK" > tmplog
37 mustBeAbsent "RWE"
38 $RM $DIR/../lib/libzstd.a $DIR/../lib/libzstd.so* tmplog
39
40 # compression disabled => also disable zdict
41 $ECHO "testing with compression disabled"
42 ZSTD_LIB_COMPRESSION=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
43 nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
44 mustBeAbsent "zstd_compress.o"
45 isPresent "zstd_decompress.o"
46 mustBeAbsent "zdict.o"
47 isPresent "zstd_v07.o"
48 mustBeAbsent "zbuff_compress.o"
49 $RM $DIR/../lib/libzstd.a tmplog
50
51 # decompression disabled => also disable legacy
52 $ECHO "testing with decompression disabled"
53 ZSTD_LIB_DECOMPRESSION=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
54 nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
55 isPresent "zstd_compress.o"
56 mustBeAbsent "zstd_decompress.o"
57 isPresent "zdict.o"
58 mustBeAbsent "zstd_v07.o"
59 mustBeAbsent "zbuff_compress.o"
60 $RM $DIR/../lib/libzstd.a tmplog
61
62 # deprecated function disabled => only remove zbuff
63 $ECHO "testing with deprecated functions disabled"
64 ZSTD_LIB_DEPRECATED=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
65 nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
66 isPresent "zstd_compress.o"
67 isPresent "zstd_decompress.o"
68 isPresent "zdict.o"
69 isPresent "zstd_v07.o"
70 mustBeAbsent "zbuff_compress.o"
71 $RM $DIR/../lib/libzstd.a tmplog
72
73 # deprecated function enabled => zbuff present
74 $ECHO "testing with deprecated functions enabled"
75 ZSTD_LIB_DEPRECATED=1 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
76 nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
77 isPresent "zstd_compress.o"
78 isPresent "zstd_decompress.o"
79 isPresent "zdict.o"
80 isPresent "zstd_v07.o"
81 isPresent "zbuff_compress.o"
82 $RM $DIR/../lib/libzstd.a tmplog
83
84 # dictionary builder disabled => only remove zdict
85 $ECHO "testing with dictionary builder disabled"
86 ZSTD_LIB_DICTBUILDER=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
87 nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
88 isPresent "zstd_compress.o"
89 isPresent "zstd_decompress.o"
90 mustBeAbsent "zdict.o"
91 isPresent "zstd_v07.o"
92 mustBeAbsent "zbuff_compress.o"
93 $RM $DIR/../lib/libzstd.a tmplog
94
95 # both decompression and dictionary builder disabled => only compression remains
96 $ECHO "testing with both decompression and dictionary builder disabled (only compression remains)"
97 ZSTD_LIB_DECOMPRESSION=0 ZSTD_LIB_DICTBUILDER=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
98 nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
99 isPresent "zstd_compress.o"
100 mustBeAbsent "zstd_decompress.o"
101 mustBeAbsent "zdict.o"
102 mustBeAbsent "zstd_v07.o"
103 mustBeAbsent "zbuff_compress.o"
104 $RM $DIR/../lib/libzstd.a tmplog