From: Michael Jeanson Date: Wed, 17 Jan 2024 15:50:26 +0000 (-0500) Subject: Tests: Disable 'stdbuf' when TAP autotime is disabled X-Git-Url: http://git.liburcu.org/?p=lttng-tools.git;a=commitdiff_plain;h=2f13f70482a0cce533babdb7909b5b307708ca40 Tests: Disable 'stdbuf' when TAP autotime is disabled The 'stdbuf' command is used by default in 'tap-driver.sh' to force line buffering. It was added to help with TAP autotime output to log files. However, 'stdbuf' causes issues in our 32-64 integration tests where we mix 32 and 64 bit binaries. It uses an LD_PRELOAD library that is not in a multiarch path which results in the following warning message on stderr when a 32-bit binary is executed on a 64-bit system: ERROR: ld.so: object '/usr/libexec/coreutils/libstdbuf.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. Many of our tests compare the content of stderr to an expected file which results in their failure. We already have an environment variable "TAP_AUTOTIME" to disable the autotime feature, make it disable the use of 'stdbuf' as well. Change-Id: I307cbfcddd7772f69e8211c51b03fb9a3da8e841 Signed-off-by: Michael Jeanson Signed-off-by: Jérémie Galarneau --- diff --git a/tests/utils/tap-driver.sh b/tests/utils/tap-driver.sh index 1e61e1f28..9baa4d923 100755 --- a/tests/utils/tap-driver.sh +++ b/tests/utils/tap-driver.sh @@ -150,7 +150,11 @@ TIME_SCRIPT="$(realpath -e -- "$(dirname "$0")")/tap/clock" # the outputs in the resulting file for half written lines, eg. # ok 93 - Tes# PERROR - xxxx # t some function - stdbuf -eL -oL -- "$@" + if [ "${TAP_AUTOTIME:-}" != 0 ]; then + stdbuf -eL -oL -- "$@" + else + "$@" + fi echo $? ) | LC_ALL=C ${AM_TAP_AWK-awk} \ -v me="$me" \