diff --git a/src/test/perl/PostgreSQL/Test/Utils.pm b/src/test/perl/PostgreSQL/Test/Utils.pm index 0800502437..4e18730dd0 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, 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 is given, the new directory is templated as C<${prefix}_XXXX>. Otherwise the template is C. @@ -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 4b160cce36..92acf42526 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