From: Thomas Haller Date: Fri, 8 Sep 2023 14:25:31 +0000 (+0200) Subject: tests/shell: set valgrind's "--vgdb-prefix=" to orignal TMPDIR X-Git-Tag: v1.0.9~108 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01b63ac8c2f4d421ecfa62dc8e6403015a7ea34a;p=thirdparty%2Fnftables.git tests/shell: set valgrind's "--vgdb-prefix=" to orignal TMPDIR "test-wrapper.sh" sets TMPDIR="$NFT_TEST_TESTTMPDIR". That is useful, so that temporary files of the tests are placed inside the test result data. Sometimes tests miss to delete those files, which would result in piling up /tmp/tmp.XXXXXXXXXX files. By setting $TMPDIR, those files are clearly related to the test run that created them, and can be deleted together. However, valgrind likes to create files like "vgdb-pipe-from-vgdb-to-68-by-thom-on-???" inside $TMPDIR. These are pipes, so if you run `grep -R ^ /tmp/nft-test.latest` while the test is still running (to inspect the results), then the process hands reading from the pipe. Instead, tell valgrind to put those files in the original TMPDIR. For that purpose, export NFT_TEST_TMPDIR_ORIG from "run-tests.sh". Signed-off-by: Thomas Haller Signed-off-by: Florian Westphal --- diff --git a/tests/shell/helpers/nft-valgrind-wrapper.sh b/tests/shell/helpers/nft-valgrind-wrapper.sh index ad8cc74b..6125dd0f 100755 --- a/tests/shell/helpers/nft-valgrind-wrapper.sh +++ b/tests/shell/helpers/nft-valgrind-wrapper.sh @@ -12,6 +12,7 @@ libtool \ --show-leak-kinds=all \ --num-callers=100 \ --error-exitcode=122 \ + --vgdb-prefix="$NFT_TEST_TMPDIR_ORIG/vgdb-pipe-nft-test-$SUFFIX" \ $NFT_TEST_VALGRIND_OPTS \ "$NFT_REAL" \ "$@" \ diff --git a/tests/shell/run-tests.sh b/tests/shell/run-tests.sh index c622c150..5931b20e 100755 --- a/tests/shell/run-tests.sh +++ b/tests/shell/run-tests.sh @@ -257,6 +257,11 @@ START_TIME="$(cut -d ' ' -f1 /proc/uptime)" _TMPDIR="${TMPDIR:-/tmp}" +# Export the orignal TMPDIR for the tests. "test-wrapper.sh" sets TMPDIR to +# NFT_TEST_TESTTMPDIR, so that temporary files are placed along side the +# test data. In some cases, we may want to know the original TMPDIR. +export NFT_TEST_TMPDIR_ORIG="$_TMPDIR" + if [ "$NFT_TEST_HAS_REALROOT" = "" ] ; then # The caller didn't set NFT_TEST_HAS_REALROOT and didn't specify # -R/--without-root option. Autodetect it based on `id -u`.