diff options
author | Jay Berkenbilt <ejb@ql.org> | 2023-12-19 14:46:56 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2023-12-20 21:46:20 +0100 |
commit | 10fe5143f4c19fbea73158a4aecded1f9516ed52 (patch) | |
tree | a1a4e56addb9745ab2adc325572bac74542423e7 /build-scripts/test-alt-zlib | |
parent | 4ee393d1fa5424bc25952580b177f572e58920db (diff) | |
download | qpdf-10fe5143f4c19fbea73158a4aecded1f9516ed52.tar.zst |
Add CI for testing with zlib-ng
Add a CI job to test qpdf with other than the default zlib
implementation. This incldues a check that the new zlib really is not
the default, so the new test will fail if the default because zlib-ng.
Diffstat (limited to 'build-scripts/test-alt-zlib')
-rwxr-xr-x | build-scripts/test-alt-zlib | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/build-scripts/test-alt-zlib b/build-scripts/test-alt-zlib new file mode 100755 index 00000000..41b3bb31 --- /dev/null +++ b/build-scripts/test-alt-zlib @@ -0,0 +1,39 @@ +#!/bin/bash +set -eo pipefail +sudo apt-get update +sudo apt-get -y install \ + build-essential cmake \ + zlib1g-dev libjpeg-dev libgnutls28-dev libssl-dev + +# Build and install zlib-ng +rm -rf /tmp/zlib-ng +pushd /tmp +git clone https://github.com/zlib-ng/zlib-ng +cd zlib-ng +cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/inst -DZLIB_COMPAT=ON +cmake --build build -j$(nproc) +(cd build; ctest --verbose) +cmake --install build +popd + +cmake -S . -B build \ + -DCI_MODE=1 -DBUILD_STATIC_LIBS=0 -DCMAKE_BUILD_TYPE=Release \ + -DREQUIRE_CRYPTO_OPENSSL=1 -DREQUIRE_CRYPTO_GNUTLS=1 \ + -DENABLE_QTC=1 +cmake --build build --verbose -j$(nproc) -- -k + +# Make sure we can use zlib-ng +sum1="$(./build/zlib-flate/zlib-flate -compress < README-maintainer.md | sha256sum -)" +export LD_PRELOAD=/tmp/inst/lib/libz.so.1 +sum2="$(./build/zlib-flate/zlib-flate -compress < README-maintainer.md | sha256sum -)" +if [ "$sum1" = "$sum2" ]; then + # If this happens, see if zlib-ng has become the default. If + # that's the case, rework this test to use some other alternaive + # zlib, such as the old one or any other API-compatible + # implementation. + echo "Using zlib-ng didn't change compression output" + exit 2 +fi + +# If this fails, please see ZLIB COMPATIBILITY in README-maintainer.md. +(cd build; ctest --verbose) |