commit 64d222d5504ac4099d18a79b4d152c9871df015b
Author: Jacob Champion <jacob.champion@enterprisedb.com>
Date:   Fri Aug 30 10:14:48 2024 -0700

    WIP: add configure-time PG_TEST_EXTRA

diff --git a/configure b/configure
index 537366945c..c74a4aeed6 100755
--- a/configure
+++ b/configure
@@ -764,6 +764,7 @@ LDFLAGS
 CFLAGS
 CC
 enable_injection_points
+PG_TEST_EXTRA
 enable_tap_tests
 enable_dtrace
 DTRACEFLAGS
@@ -880,6 +881,7 @@ enable_largefile
       ac_precious_vars='build_alias
 host_alias
 target_alias
+PG_TEST_EXTRA
 CC
 CFLAGS
 LDFLAGS
@@ -1587,6 +1589,8 @@ Optional Packages:
   --with-openssl          obsolete spelling of --with-ssl=openssl
 
 Some influential environment variables:
+  PG_TEST_EXTRA
+              enable selected extra tests
   CC          C compiler command
   CFLAGS      C compiler flags
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
@@ -3629,6 +3633,7 @@ fi
 
 
 
+
 #
 # Injection points
 #
diff --git a/configure.ac b/configure.ac
index 4e279c4bd6..63994405e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -236,6 +236,7 @@ AC_SUBST(enable_dtrace)
 PGAC_ARG_BOOL(enable, tap-tests, no,
               [enable TAP tests (requires Perl and IPC::Run)])
 AC_SUBST(enable_tap_tests)
+AC_ARG_VAR(PG_TEST_EXTRA, [enable selected extra tests])
 
 #
 # Injection points
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 42f50b4976..4859343153 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -642,6 +642,16 @@ submake-libpgfeutils: | submake-generated-headers
 #
 # Testing support
 
+# Store any configure-time setting for PG_TEST_EXTRA, but let environment
+# variables override it to maintain the historical behavior of the tests.
+# (Standard `=` assignment would require devs to use a commandline option.)
+# This is skipped in PGXS mode to keep the setting from escaping into other
+# projects' builds.
+ifndef PGXS
+PG_TEST_EXTRA ?= @PG_TEST_EXTRA@
+export PG_TEST_EXTRA
+endif
+
 ifneq ($(USE_MODULE_DB),)
   PL_TESTDB = pl_regression_$(NAME)
   ifneq ($(MODULE_big),)
diff --git a/src/test/Makefile b/src/test/Makefile
index dbd3192874..fc42f1db2b 100644
--- a/src/test/Makefile
+++ b/src/test/Makefile
@@ -27,11 +27,6 @@ ifeq ($(with_ssl),openssl)
 SUBDIRS += ssl
 endif
 
-# Test suites that are not safe by default but can be run if selected
-# by the user via the whitespace-separated list in variable PG_TEST_EXTRA.
-# Export PG_TEST_EXTRA to check it in individual tap tests.
-export PG_TEST_EXTRA
-
 # We don't build or execute these by default, but we do want "make
 # clean" etc to recurse into them.  (We must filter out those that we
 # have conditionally included into SUBDIRS above, else there will be
