#!/usr/bin/sh set -eu BUILD="$(mktemp --directory --tmpdir=.)" trap 'rm -rf "$BUILD"' EXIT meson format --recursive --inplace || true git diff --quiet # Ensure the test suite passes in the default configuration. Note # that we don't specify -Dabi=... - the default is equivalent to # -Dabi=deprecated,stable,testing. CFLAGS=-fanalyzer meson setup -Dabi-compliance-check=disabled "$BUILD" meson compile -C "$BUILD" meson test -C "$BUILD" # Ensure the test suite passes in release mode. libpldm specifies # -Db_ndebug=if-release by default, so building with --buildtype=release passes # -DNDEBUG to the compiler for the library implementation. This build # configuration will catch any unexpected changes in the library implementation # and incorrect test case implementations. meson configure --buildtype=release "$BUILD" meson compile -C "$BUILD" meson test -C "$BUILD" --timeout-multiplier 10 --wrapper 'valgrind --error-exitcode=1' # Ensure the test suite links when testing symbols are removed from the ABI meson configure --buildtype=debug "$BUILD" meson configure -Dabi=deprecated,stable "$BUILD" meson compile -C "$BUILD" meson test -C "$BUILD"