123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #!/bin/sh -e
- DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- ECHO=echo
- RM="rm -f"
- GREP="grep"
- INTOVOID="/dev/null"
- die() {
- $ECHO "$@" 1>&2
- exit 1
- }
- isPresent() {
- $GREP $@ tmplog || die "$@" "should be present"
- }
- mustBeAbsent() {
- $GREP $@ tmplog && die "$@ should not be there !!"
- $ECHO "$@ correctly not present" # for some reason, this $ECHO must exist, otherwise mustBeAbsent() always fails (??)
- }
- # default compilation : all features enabled - no zbuff
- $ECHO "testing default library compilation"
- CFLAGS= make -C $DIR/../lib libzstd libzstd.a > $INTOVOID
- nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
- isPresent "zstd_compress.o"
- isPresent "zstd_decompress.o"
- isPresent "zdict.o"
- isPresent "zstd_v07.o"
- mustBeAbsent "zbuff_compress.o"
- $RM tmplog
- # Check that the exec-stack bit isn't set
- readelf -lW $DIR/../lib/libzstd.so | $GREP "GNU_STACK" > tmplog
- mustBeAbsent "RWE"
- $RM $DIR/../lib/libzstd.a $DIR/../lib/libzstd.so* tmplog
- # compression disabled => also disable zdict
- $ECHO "testing with compression disabled"
- ZSTD_LIB_COMPRESSION=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
- nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
- mustBeAbsent "zstd_compress.o"
- isPresent "zstd_decompress.o"
- mustBeAbsent "zdict.o"
- isPresent "zstd_v07.o"
- mustBeAbsent "zbuff_compress.o"
- $RM $DIR/../lib/libzstd.a tmplog
- # decompression disabled => also disable legacy
- $ECHO "testing with decompression disabled"
- ZSTD_LIB_DECOMPRESSION=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
- nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
- isPresent "zstd_compress.o"
- mustBeAbsent "zstd_decompress.o"
- isPresent "zdict.o"
- mustBeAbsent "zstd_v07.o"
- mustBeAbsent "zbuff_compress.o"
- $RM $DIR/../lib/libzstd.a tmplog
- # deprecated function disabled => only remove zbuff
- $ECHO "testing with deprecated functions disabled"
- ZSTD_LIB_DEPRECATED=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
- nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
- isPresent "zstd_compress.o"
- isPresent "zstd_decompress.o"
- isPresent "zdict.o"
- isPresent "zstd_v07.o"
- mustBeAbsent "zbuff_compress.o"
- $RM $DIR/../lib/libzstd.a tmplog
- # deprecated function enabled => zbuff present
- $ECHO "testing with deprecated functions enabled"
- ZSTD_LIB_DEPRECATED=1 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
- nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
- isPresent "zstd_compress.o"
- isPresent "zstd_decompress.o"
- isPresent "zdict.o"
- isPresent "zstd_v07.o"
- isPresent "zbuff_compress.o"
- $RM $DIR/../lib/libzstd.a tmplog
- # dictionary builder disabled => only remove zdict
- $ECHO "testing with dictionary builder disabled"
- ZSTD_LIB_DICTBUILDER=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
- nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
- isPresent "zstd_compress.o"
- isPresent "zstd_decompress.o"
- mustBeAbsent "zdict.o"
- isPresent "zstd_v07.o"
- mustBeAbsent "zbuff_compress.o"
- $RM $DIR/../lib/libzstd.a tmplog
- # both decompression and dictionary builder disabled => only compression remains
- $ECHO "testing with both decompression and dictionary builder disabled (only compression remains)"
- ZSTD_LIB_DECOMPRESSION=0 ZSTD_LIB_DICTBUILDER=0 CFLAGS= make -C $DIR/../lib libzstd.a > $INTOVOID
- nm $DIR/../lib/libzstd.a | $GREP "\.o" > tmplog
- isPresent "zstd_compress.o"
- mustBeAbsent "zstd_decompress.o"
- mustBeAbsent "zdict.o"
- mustBeAbsent "zstd_v07.o"
- mustBeAbsent "zbuff_compress.o"
- $RM $DIR/../lib/libzstd.a tmplog
|