aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2023-07-03 10:06:14 +0900
committerMichael Paquier <michael@paquier.xyz>2023-07-03 10:06:14 +0900
commit4b15868b698a78b97a270b654903204ad0ac0f42 (patch)
tree8495dcbfe7bee052c8896f4b1f216253ec985e3c /src
parentf50200c0163c1dbb5aa015828e8bf32b50a2cd29 (diff)
downloadpostgresql-4b15868b698a78b97a270b654903204ad0ac0f42.tar.gz
postgresql-4b15868b698a78b97a270b654903204ad0ac0f42.zip
Make PG_TEST_NOCLEAN work for temporary directories in TAP tests
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
Diffstat (limited to 'src')
-rw-r--r--src/test/perl/PostgreSQL/Test/Utils.pm7
-rw-r--r--src/test/perl/README5
2 files changed, 7 insertions, 5 deletions
diff --git a/src/test/perl/PostgreSQL/Test/Utils.pm b/src/test/perl/PostgreSQL/Test/Utils.pm
index 08005024378..4e18730dd02 100644
--- a/src/test/perl/PostgreSQL/Test/Utils.pm
+++ b/src/test/perl/PostgreSQL/Test/Utils.pm
@@ -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
diff --git a/src/test/perl/README b/src/test/perl/README
index 4b160cce36e..92acf425262 100644
--- a/src/test/perl/README
+++ b/src/test/perl/README
@@ -31,8 +31,9 @@ some lesser number of seconds.
Data directories will also be left behind for analysis when a test fails;
they are named according to the test filename. But if the environment
-variable PG_TEST_NOCLEAN is set, data directories will be retained
-regardless of test status.
+variable PG_TEST_NOCLEAN is set, the data directories will be retained
+regardless of test status. This environment variable also prevents the
+test's temporary directories from being removed.
Writing tests