11b1b728bSAndrew Jeffery#!/usr/bin/sh 21b1b728bSAndrew Jefferyset -eu 31b1b728bSAndrew Jeffery 41b1b728bSAndrew JefferyBUILD="$(mktemp --directory --tmpdir=.)" 51b1b728bSAndrew Jefferytrap 'rm -rf "$BUILD"' EXIT 61b1b728bSAndrew Jeffery 7e984a461SAndrew Jefferymeson format --recursive --inplace || true 8fa2e2659SMatt Johnstonif ! git diff --exit-code 907159f76SAndrew Jefferythen 1007159f76SAndrew Jeffery echo Your changes must meet the upstream meson style guide 1107159f76SAndrew Jeffery echo 1207159f76SAndrew Jeffery echo https://mesonbuild.com/Style-guide.html 1307159f76SAndrew Jeffery echo https://mesonbuild.com/Commands.html#format 1407159f76SAndrew Jeffery exit 1 1507159f76SAndrew Jefferyfi 16e984a461SAndrew Jeffery 175a034730SAndrew Jeffery# Make sure if the change touches the public headers, it also updates the 185a034730SAndrew Jeffery# changelog. 195a034730SAndrew Jefferyif ! git show --format="" --name-only HEAD -- CHANGELOG.md include/libpldm | 205a034730SAndrew Jeffery awk -f scripts/changelog.awk 215a034730SAndrew Jefferythen 225a034730SAndrew Jeffery echo You must document your changes under include/libpldm in CHANGELOG.md 235a034730SAndrew Jeffery exit 1 245a034730SAndrew Jefferyfi 255a034730SAndrew Jeffery 261b1b728bSAndrew Jeffery# Ensure the test suite passes in the default configuration. Note 271b1b728bSAndrew Jeffery# that we don't specify -Dabi=... - the default is equivalent to 281b1b728bSAndrew Jeffery# -Dabi=deprecated,stable,testing. 29*eba16206SAndrew JefferyCC=gcc CXX=g++ CFLAGS=-fanalyzer meson setup -Dabi-compliance-check=false "$BUILD" 301b1b728bSAndrew Jefferymeson compile -C "$BUILD" 311b1b728bSAndrew Jefferymeson test -C "$BUILD" 321b1b728bSAndrew Jeffery 331b1b728bSAndrew Jeffery# Ensure the test suite passes in release mode. libpldm specifies 341b1b728bSAndrew Jeffery# -Db_ndebug=if-release by default, so building with --buildtype=release passes 351b1b728bSAndrew Jeffery# -DNDEBUG to the compiler for the library implementation. This build 361b1b728bSAndrew Jeffery# configuration will catch any unexpected changes in the library implementation 371b1b728bSAndrew Jeffery# and incorrect test case implementations. 381b1b728bSAndrew Jefferymeson configure --buildtype=release "$BUILD" 391b1b728bSAndrew Jefferymeson compile -C "$BUILD" 400129c53dSAndrew Jefferymeson test -C "$BUILD" --timeout-multiplier 10 --wrapper 'valgrind --error-exitcode=1' 411b1b728bSAndrew Jeffery 421b1b728bSAndrew Jeffery# Ensure the test suite links when testing symbols are removed from the ABI 431b1b728bSAndrew Jefferymeson configure --buildtype=debug "$BUILD" 441b1b728bSAndrew Jefferymeson configure -Dabi=deprecated,stable "$BUILD" 451b1b728bSAndrew Jefferymeson compile -C "$BUILD" 461b1b728bSAndrew Jefferymeson test -C "$BUILD" 47