diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/test/perl/PostgreSQL/Test/Cluster.pm | 7 | ||||
-rw-r--r-- | src/test/regress/pg_regress.c | 7 |
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)) |