From 2f13f70482a0cce533babdb7909b5b307708ca40 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Wed, 17 Jan 2024 10:50:26 -0500 Subject: [PATCH] Tests: Disable 'stdbuf' when TAP autotime is disabled MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- tests/utils/tap-driver.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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" \ -- 2.34.1