Allow multiple --temp-config arguments to pg_regress
authorAndrew Dunstan <andrew@dunslane.net>
Sun, 28 Feb 2016 14:38:43 +0000 (09:38 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Sun, 28 Feb 2016 14:38:43 +0000 (09:38 -0500)
This means that if, for example, TEMP_CONFIG is set and a Makefile
explicitly sets a temp-config file, both will now be used.

Patch from John Gorman.

src/test/regress/pg_regress.c

index a1902fe1271648fb3e877da511f1393843e04ee3..416829dbfae737da6fa139c52476d3f2357ef4fe 100644 (file)
@@ -80,7 +80,7 @@ static char *encoding = NULL;
 static _stringlist *schedulelist = NULL;
 static _stringlist *extra_tests = NULL;
 static char *temp_instance = NULL;
-static char *temp_config = NULL;
+static _stringlist *temp_configs = NULL;
 static bool nolocale = false;
 static bool use_existing = false;
 static char *hostname = NULL;
@@ -2117,7 +2117,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
                                split_to_stringlist(strdup(optarg), ", ", &extraroles);
                                break;
                        case 19:
-                               temp_config = strdup(optarg);
+                               add_stringlist_item(&temp_configs, optarg);
                                break;
                        case 20:
                                use_existing = true;
@@ -2249,8 +2249,9 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
                fputs("log_temp_files = 128kB\n", pg_conf);
                fputs("max_prepared_transactions = 2\n", pg_conf);
 
-               if (temp_config != NULL)
+               for (sl = temp_configs; sl != NULL; sl = sl->next)
                {
+                       char       *temp_config = sl->str;
                        FILE       *extra_conf;
                        char            line_buf[1024];