[patch] test tempdir move
Mark Wielaard
mark@klomp.org
Wed Oct 9 19:11:11 GMT 2024
Hi Frank,
On Wed, Oct 09, 2024 at 01:47:29PM -0400, Frank Ch. Eigler wrote:
> I find the following patch makes make checks bearable again.
I like the idea of this change. Some nitpicks below.
> From 0acce289fbb9c4da6a6ec1868eed5ede5a62e63d Mon Sep 17 00:00:00 2001
> From: "Frank Ch. Eigler" <fche@redhat.com>
> Date: Wed, 9 Oct 2024 13:41:14 -0400
> Subject: [PATCH] tests/test-subr.sh: Put test_dir under /var/tmp.
>
> Every individual test in elfutils involves a temporary directory.
> Previous version of this script put that directory under the build
> tree. That's OK if it's a local disk, but if it's on NFS, then some
> tests - run-large-elf-file.sh, several run-debuginfod-*.sh - take long
> enough to run to fail tests intermittently.
>
> This patch moves the temp_dir under ${TMPDIR-/var/tmp/}, so it
> operates at local disk speed rather than whatever-build-filesystem
> speed. Individual test scripts are all unaffected. (One could
> consider /tmp instead, which is a RAM disk on modern systems, except
> that some of the elfutils tests produce GB-sized temporary files.
> That's probably too big for RAM.)
I think ${TMPDIR-/var/tmp/} is the correct choice. /tmp is indeed
supposed to only have small files.
> Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
> ---
> tests/test-subr.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/test-subr.sh b/tests/test-subr.sh
> index 411e5f288acd..68ef541f8632 100644
> --- a/tests/test-subr.sh
> +++ b/tests/test-subr.sh
> @@ -23,7 +23,7 @@
> set -e
>
> # Each test runs in its own directory to make sure they can run in parallel.
> -test_dir="test-$$"
> +test_dir="${TMPDIR-/var/tmp}/test-$$"
I would make this /test-elfutils-$$ then in case some files are left
around someone can more easily see where they came from.
> mkdir -p "$test_dir"
> cd "$test_dir"
There is one "tricky" cleanup issue slightly below this:
# Tests that trap EXIT (0) themselves should call this explicitly.
exit_cleanup()
{
rm -f $remove_files; cd ..; rmdir $test_dir
}
trap exit_cleanup 0
On clean exit we remove all (tempfiles) and then try to remove the
$test_dir. Note that this fails (the test) if any non-tmp-file is left
behind.
I think this works, but the cd .. doesn't end up where it originally
did. Maybe save the orig_dir="${PWD}" before creating the test_dir and
cd $orig_dir here?
Cheers,
Mark
More information about the Elfutils-devel
mailing list