Make pg_regress accept a command-line option for the temporary installation's
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Jul 2005 18:29:13 +0000 (18:29 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Jul 2005 18:29:13 +0000 (18:29 +0000)
port number, and use a default value for it that is dependent on the
configuration-time DEF_PGPORT.  Should make the world safe for running
parallel 'make check' in different branches.  Back-patch as far as 7.4
so that this actually is useful.

src/test/regress/GNUmakefile
src/test/regress/pg_regress.sh

index 15d4f67a183167c70609259d3bf81e593671a353..c00e5b3438beb3c1fe0095e3c60861d4702bc44e 100644 (file)
@@ -22,6 +22,9 @@ override CFLAGS += $(CFLAGS_SL)
 
 SHLIB_LINK = $(BE_DLLLIBS)
 
+# port number for temp-installation test postmaster
+TEMP_PORT = 5$(DEF_PGPORT)
+
 # default encoding
 MULTIBYTE = SQL_ASCII
 
@@ -130,7 +133,7 @@ all-spi:
 check: all
        -rm -rf ./testtablespace
        mkdir ./testtablespace
-       $(SHELL) ./pg_regress --temp-install --top-builddir=$(top_builddir) --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) $(MAXCONNOPT)
+       $(SHELL) ./pg_regress --temp-install --top-builddir=$(top_builddir) --temp-port=$(TEMP_PORT) --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) $(MAXCONNOPT)
 
 installcheck: all
        -rm -rf ./testtablespace
@@ -153,7 +156,7 @@ bigtest:
        $(SHELL) ./pg_regress --schedule=$(srcdir)/serial_schedule --multibyte=$(MULTIBYTE) numeric_big
 
 bigcheck:
-       $(SHELL) ./pg_regress --temp-install --top-builddir=$(top_builddir) --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) $(MAXCONNOPT) numeric_big
+       $(SHELL) ./pg_regress --temp-install --top-builddir=$(top_builddir) --temp-port=$(TEMP_PORT) --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) $(MAXCONNOPT) numeric_big
 
 
 ##
index 0384798995683c7e3863dd83ba03778986f07a60..2c225f1cba3bc05dfd8070b89f6d8ac0ba17e862 100644 (file)
@@ -24,6 +24,7 @@ Options:
 
 Options for \`temp-install' mode:
   --top-builddir=DIR        (relative) path to top level build directory
+  --temp-port=PORT          port number to start temp postmaster on
 
 Options for using an existing installation:
   --host=HOST               use postmaster running on HOST
@@ -103,6 +104,7 @@ unset multibyte
 dbname=regression
 hostname=localhost
 maxconnections=0
+temp_port=65432
 
 : ${GMAKE='@GMAKE@'}
 
@@ -148,6 +150,9 @@ do
         --top-builddir=*)
                 top_builddir=`expr "x$1" : "x--top-builddir=\(.*\)"`
                 shift;;
+        --temp-port=*)
+                temp_port=`expr "x$1" : "x--temp-port=\(.*\)"`
+                shift;;
         --host=*)
                 PGHOST=`expr "x$1" : "x--host=\(.*\)"`
                 export PGHOST
@@ -330,7 +335,13 @@ then
         unset PGHOST
         unset PGHOSTADDR
     fi
-    PGPORT=65432
+
+    # since Makefile isn't very bright, check for out-of-range temp_port
+    if [ "$temp_port" -ge 1024 -a "$temp_port" -le 65535 ] ; then
+       PGPORT=$temp_port
+    else
+       PGPORT=65432
+    fi
     export PGPORT
 
     # Get rid of environment stuff that might cause psql to misbehave