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