#!/bin/bash set -e sudo apt-get update sudo apt-get -y install \ build-essential cmake \ zlib1g-dev libjpeg-dev libgnutls28-dev libssl-dev env CFLAGS="-fsanitize=address -fsanitize=undefined" \ CXXFLAGS="-fsanitize=address -fsanitize=undefined" \ LDFLAGS="-fsanitize=address -fsanitize=undefined" \ CC=clang CXX=clang++ \ cmake -S . -B build \ -DCI_MODE=1 -DBUILD_SHARED_LIBS=0 -DCMAKE_BUILD_TYPE=Debug \ -DREQUIRE_CRYPTO_OPENSSL=1 -DREQUIRE_CRYPTO_GNUTLS=1 \ -DENABLE_QTC=1 cmake --build build -j$(nproc) -- -k cd build # libtests automatically runs with all crypto providers. ctest --verbose # Run just qpdf tests with remaining crypto providers. for i in $(./qpdf/qpdf --show-crypto | tail -n +2); do echo "*** Running qpdf tests with crypto provider $i" env QPDF_CRYPTO_PROVIDER=$i ctest --verbose -R '^qpdf$' done