summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/perl/PostgreSQL/Test/Cluster.pm7
-rw-r--r--src/test/regress/pg_regress.c7
2 files changed, 13 insertions, 1 deletions
diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm
index e2e70d0dbf9..07da74cf562 100644
--- a/src/test/perl/PostgreSQL/Test/Cluster.pm
+++ b/src/test/perl/PostgreSQL/Test/Cluster.pm
@@ -114,6 +114,7 @@ use Socket;
use Test::More;
use PostgreSQL::Test::Utils ();
use PostgreSQL::Test::BackgroundPsql ();
+use Text::ParseWords qw(shellwords);
use Time::HiRes qw(usleep);
use Scalar::Util qw(blessed);
@@ -519,6 +520,12 @@ sub init
$params{allows_streaming} = 0 unless defined $params{allows_streaming};
$params{has_archiving} = 0 unless defined $params{has_archiving};
+ my $initdb_extra_opts_env = $ENV{PG_TEST_INITDB_EXTRA_OPTS};
+ if (defined $initdb_extra_opts_env)
+ {
+ push @{ $params{extra} }, shellwords($initdb_extra_opts_env);
+ }
+
mkdir $self->backup_dir;
mkdir $self->archive_dir;
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index c894005dac0..f1f6011ae0a 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -2306,6 +2306,7 @@ regression_main(int argc, char *argv[],
const char *keywords[4];
const char *values[4];
PGPing rv;
+ const char *initdb_extra_opts_env;
/*
* Prepare the temp instance
@@ -2327,6 +2328,8 @@ regression_main(int argc, char *argv[],
if (!directory_exists(buf))
make_directory(buf);
+ initdb_extra_opts_env = getenv("PG_TEST_INITDB_EXTRA_OPTS");
+
initStringInfo(&cmd);
/*
@@ -2339,7 +2342,7 @@ regression_main(int argc, char *argv[],
* duplicate it until we require perl at build time.
*/
initdb_template_dir = getenv("INITDB_TEMPLATE");
- if (initdb_template_dir == NULL || nolocale || debug)
+ if (initdb_template_dir == NULL || nolocale || debug || initdb_extra_opts_env)
{
note("initializing database system by running initdb");
@@ -2352,6 +2355,8 @@ regression_main(int argc, char *argv[],
appendStringInfoString(&cmd, " --debug");
if (nolocale)
appendStringInfoString(&cmd, " --no-locale");
+ if (initdb_extra_opts_env)
+ appendStringInfo(&cmd, " %s", initdb_extra_opts_env);
appendStringInfo(&cmd, " > \"%s/log/initdb.log\" 2>&1", outputdir);
fflush(NULL);
if (system(cmd.data))