xref: /openbmc/libpldm/scripts/pre-submit (revision 1b1b728b8825c3de97e0842574f7dd9d31b840b2)
1*1b1b728bSAndrew Jeffery#!/usr/bin/sh
2*1b1b728bSAndrew Jefferyset -eu
3*1b1b728bSAndrew Jeffery
4*1b1b728bSAndrew JefferyBUILD="$(mktemp --directory --tmpdir=.)"
5*1b1b728bSAndrew Jefferytrap 'rm -rf "$BUILD"' EXIT
6*1b1b728bSAndrew Jeffery
7*1b1b728bSAndrew Jeffery# Ensure the test suite passes in the default configuration. Note
8*1b1b728bSAndrew Jeffery# that we don't specify -Dabi=... - the default is equivalent to
9*1b1b728bSAndrew Jeffery# -Dabi=deprecated,stable,testing.
10*1b1b728bSAndrew Jefferymeson setup -Dabi-compliance-check=disabled "$BUILD"
11*1b1b728bSAndrew Jefferymeson compile -C "$BUILD"
12*1b1b728bSAndrew Jefferymeson test -C "$BUILD"
13*1b1b728bSAndrew Jeffery
14*1b1b728bSAndrew Jeffery# Ensure the test suite passes in release mode. libpldm specifies
15*1b1b728bSAndrew Jeffery# -Db_ndebug=if-release by default, so building with --buildtype=release passes
16*1b1b728bSAndrew Jeffery# -DNDEBUG to the compiler for the library implementation. This build
17*1b1b728bSAndrew Jeffery# configuration will catch any unexpected changes in the library implementation
18*1b1b728bSAndrew Jeffery# and incorrect test case implementations.
19*1b1b728bSAndrew Jefferymeson configure --buildtype=release "$BUILD"
20*1b1b728bSAndrew Jefferymeson compile -C "$BUILD"
21*1b1b728bSAndrew Jefferymeson test -C "$BUILD"
22*1b1b728bSAndrew Jeffery
23*1b1b728bSAndrew Jeffery# Ensure the test suite links when testing symbols are removed from the ABI
24*1b1b728bSAndrew Jefferymeson configure --buildtype=debug "$BUILD"
25*1b1b728bSAndrew Jefferymeson configure -Dabi=deprecated,stable "$BUILD"
26*1b1b728bSAndrew Jefferymeson compile -C "$BUILD"
27*1b1b728bSAndrew Jefferymeson test -C "$BUILD"
28