diff --git a/.ci/bb/breeze-mpim/test.all.nv b/.ci/bb/breeze-mpim/test.all.nv index 4b9330c660fafbcf95926a265542858d07aeefc8..b52d55babc1e6634991463580a51e2ab94a8605d 100755 --- a/.ci/bb/breeze-mpim/test.all.nv +++ b/.ci/bb/breeze-mpim/test.all.nv @@ -6,12 +6,20 @@ set -o pipefail script_dir=$(cd "$(dirname "$0")"; pwd) top_srcdir=$(cd "${script_dir}/../../.."; pwd) +# We want to check with the Debian version of Libtool, which is patched to avoid +# overlinking: +export PATH="/usr/bin:${PATH-}" + . "${script_dir}/utils.sh" init_nv2130 -# We want to check with the Debian version of Libtool, which is patched to -# avoid overlinking. Therefore, we regenerate the Autotools files even if they -# are already available: +libtoolize=$(which libtoolize) +test "x${libtoolize}" = 'x/usr/bin/libtoolize' || { + echo "ERROR: '${libtoolize}' is not a Debian-provided system libtoolize" >&2 + exit 1 +} + +# Regenerate the Autotools files even if they are already available: "${top_srcdir}/autogen.sh" "${top_srcdir}/configure" \ @@ -32,6 +40,20 @@ PKG_CONFIG_PATH="${YAXT_ROOT}/lib/pkgconfig:${PPM_ROOT}/lib/pkgconfig" make -j8 +# Check that an executable is not overlinked to libscalesppmcore.so: +tested_file='examples/pio/.libs/collectData.parallel' +invalid_needed=`readelf -d "${tested_file}" | sed -E -n '/\(NEEDED\).*libscalesppmcore\.so/p'` || { + echo "ERROR: failed to check '${tested_file}' for ELF NEEDED entries" >&2 + exit 1 +} +if test -n "${invalid_needed}"; then + { + echo "ERROR: '${tested_file}' has excessive ELF NEEDED entries:" >&2 + echo "${invalid_needed}" >&2 + } >&2 + exit 1 +fi + make -j8 check || { cat tests/test-suite.log; exit 1; } check_all_tests_passed tests/test-suite.log