Hello, I was running the test_pg_dump extension suite, and I got annoyed that I couldn't keep it from deleting its dump artifacts after a successful run. Here's a patch to make use of PG_TEST_NOCLEAN (which currently covers the test cluster's base directory) with the Test::Utils tempdirs too.
(Looks like this idea was also discussed last year [1]; let me know if I missed any more recent suggestions.) Thanks, --Jacob [1] https://www.postgresql.org/message-id/yypd9unv14sx2...@paquier.xyz
From 4e00947b66edc83ab66a06aa8a9f4c1591a2734c Mon Sep 17 00:00:00 2001 From: Jacob Champion <jchamp...@timescale.com> Date: Fri, 23 Jun 2023 13:30:20 -0700 Subject: [PATCH] Test::Utils: honor PG_TEST_NOCLEAN for tempdirs --- src/test/perl/PostgreSQL/Test/Utils.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/perl/PostgreSQL/Test/Utils.pm b/src/test/perl/PostgreSQL/Test/Utils.pm index a27fac83d2..e5a08d7b1a 100644 --- a/src/test/perl/PostgreSQL/Test/Utils.pm +++ b/src/test/perl/PostgreSQL/Test/Utils.pm @@ -272,7 +272,7 @@ sub all_tests_passing Securely create a temporary directory inside C<$tmp_check>, like C<mkdtemp>, and return its name. The directory will be removed automatically at the -end of the tests. +end of the tests, unless the PG_TEST_NOCLEAN envvar is provided. If C<prefix> is given, the new directory is templated as C<${prefix}_XXXX>. Otherwise the template is C<tmp_test_XXXX>. @@ -286,7 +286,7 @@ sub tempdir return File::Temp::tempdir( $prefix . '_XXXX', DIR => $tmp_check, - CLEANUP => 1); + CLEANUP => not defined $ENV{'PG_TEST_NOCLEAN'}); } =pod @@ -301,7 +301,7 @@ name, to avoid path length issues. sub tempdir_short { - return File::Temp::tempdir(CLEANUP => 1); + return File::Temp::tempdir(CLEANUP => not defined $ENV{'PG_TEST_NOCLEAN'}); } =pod -- 2.25.1