]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Make PG_TEST_NOCLEAN work for temporary directories in TAP tests
authorMichael Paquier <michael@paquier.xyz>
Mon, 3 Jul 2023 01:06:16 +0000 (10:06 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 3 Jul 2023 01:06:16 +0000 (10:06 +0900)
When set, this environment variable was only effective for data
directories but not for all the other temporary files created by
PostgreSQL::Test::Utils.  Keeping the temporary files after a successful
run can be useful for debugging purposes.

The documentation is updated to reflect the new behavior, with contents
available in doc/ since v16 and in src/test/perl/README since v15.

Author: Jacob Champion
Reviewed-by: Daniel Gustafsson
Discussion: https://postgr.es/m/CAAWbhmgHtDH1SGZ+Fw05CsXtE0mzTmjbuUxLB9mY9iPKgM6cUw@mail.gmail.com
Discussion: https://postgr.es/m/YyPd9unV14SX2bLF@paquier.xyz
Backpatch-through: 11

src/test/perl/TestLib.pm

index 2a354ea4ef9a308fef7cf3f8ede8452b144bbb8e..7860425b543b948c237c52e692d4da8881932e41 100644 (file)
@@ -268,7 +268,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 environment variable PG_TEST_NOCLEAN is provided.
 
 If C<prefix> is given, the new directory is templated as C<${prefix}_XXXX>.
 Otherwise the template is C<tmp_test_XXXX>.
@@ -282,7 +282,7 @@ sub tempdir
        return File::Temp::tempdir(
                $prefix . '_XXXX',
                DIR     => $tmp_check,
-               CLEANUP => 1);
+               CLEANUP => not defined $ENV{'PG_TEST_NOCLEAN'});
 }
 
 =pod
@@ -297,7 +297,8 @@ 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