aboutsummaryrefslogtreecommitdiff
path: root/src/test/perl/TestLib.pm
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/perl/TestLib.pm')
-rw-r--r--src/test/perl/TestLib.pm14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 775c75d7ab1..f80d1c5bd72 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -6,6 +6,7 @@ use warnings;
use Exporter 'import';
our @EXPORT = qw(
tempdir
+ tempdir_short
start_test_server
restart_test_server
psql
@@ -65,6 +66,13 @@ sub tempdir
return File::Temp::tempdir('tmp_testXXXX', DIR => $ENV{TESTDIR} || cwd(), CLEANUP => 1);
}
+sub tempdir_short
+{
+ # Use a separate temp dir outside the build tree for the
+ # Unix-domain socket, to avoid file name length issues.
+ return File::Temp::tempdir(CLEANUP => 1);
+}
+
my ($test_server_datadir, $test_server_logfile);
sub start_test_server
@@ -72,10 +80,12 @@ sub start_test_server
my ($tempdir) = @_;
my $ret;
+ my $tempdir_short = tempdir_short;
+
system "initdb -D $tempdir/pgdata -A trust -N >/dev/null";
$ret = system 'pg_ctl', '-D', "$tempdir/pgdata", '-s', '-w', '-l',
"$tempdir/logfile", '-o',
- "--fsync=off -k $tempdir --listen-addresses='' --log-statement=all",
+ "--fsync=off -k $tempdir_short --listen-addresses='' --log-statement=all",
'start';
if ($ret != 0)
@@ -84,7 +94,7 @@ sub start_test_server
BAIL_OUT("pg_ctl failed");
}
- $ENV{PGHOST} = $tempdir;
+ $ENV{PGHOST} = $tempdir_short;
$test_server_datadir = "$tempdir/pgdata";
$test_server_logfile = "$tempdir/logfile";
}