Move rolenames test out of the core regression tests.
authorTom Lane
Sun, 30 Jun 2019 16:51:08 +0000 (12:51 -0400)
committerTom Lane
Sun, 30 Jun 2019 16:51:12 +0000 (12:51 -0400)
This test script is unsafe to run in "make installcheck" mode for
(at least) two reasons: it creates and destroys some role names
that don't follow the "regress_xxx" naming convention, and it
sets and then resets the application_name GUC attached to every
existing role.  While we've not had complaints, these surely are
not good things to do within a production installation, and
regress.sgml pretty clearly implies that we won't do them.

Rather than lose test coverage altogether, let's just move this
script somewhere where it will get run by "make check" but not
"make installcheck".  src/test/modules/ already has that property.

Since it seems likely that we'll want other regression tests in
future that also exceed the constraints of "make installcheck",
create a generically-named src/test/modules/unsafe_tests/
directory to hold them.

Discussion: https://postgr.es/m/16638.1468620817@sss.pgh.pa.us

src/test/modules/Makefile
src/test/modules/unsafe_tests/.gitignore [new file with mode: 0644]
src/test/modules/unsafe_tests/Makefile [new file with mode: 0644]
src/test/modules/unsafe_tests/README [new file with mode: 0644]
src/test/modules/unsafe_tests/expected/rolenames.out [moved from src/test/regress/expected/rolenames.out with 100% similarity]
src/test/modules/unsafe_tests/sql/rolenames.sql [moved from src/test/regress/sql/rolenames.sql with 100% similarity]
src/test/regress/parallel_schedule
src/test/regress/serial_schedule

index dfd0956aee37e75c7bdd2282153054cbccf31f72..60d6d7be1b256e32fb51e21d67d85c38fb861a1f 100644 (file)
@@ -19,6 +19,7 @@ SUBDIRS = \
          test_rbtree \
          test_rls_hooks \
          test_shm_mq \
+         unsafe_tests \
          worker_spi
 
 $(recurse)
diff --git a/src/test/modules/unsafe_tests/.gitignore b/src/test/modules/unsafe_tests/.gitignore
new file mode 100644 (file)
index 0000000..5dcb3ff
--- /dev/null
@@ -0,0 +1,4 @@
+# Generated subdirectories
+/log/
+/results/
+/tmp_check/
diff --git a/src/test/modules/unsafe_tests/Makefile b/src/test/modules/unsafe_tests/Makefile
new file mode 100644 (file)
index 0000000..321252f
--- /dev/null
@@ -0,0 +1,14 @@
+# src/test/modules/unsafe_tests/Makefile
+
+REGRESS = rolenames
+
+ifdef USE_PGXS
+PG_CONFIG = pg_config
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
+else
+subdir = src/test/modules/unsafe_tests
+top_builddir = ../../../..
+include $(top_builddir)/src/Makefile.global
+include $(top_srcdir)/contrib/contrib-global.mk
+endif
diff --git a/src/test/modules/unsafe_tests/README b/src/test/modules/unsafe_tests/README
new file mode 100644 (file)
index 0000000..a7e5b2a
--- /dev/null
@@ -0,0 +1,8 @@
+This directory doesn't actually contain any extension module.
+
+What it is is a home for regression tests that we don't want to run
+during "make installcheck" because they could have side-effects that
+seem undesirable for a production installation.
+
+An example is that rolenames.sql tests ALTER USER ALL and so could
+have effects on pre-existing roles.
index f23fe8d870eacb86b919932a51f01640a3e762f8..8fb55f045e67e281a807dd6cbc1fb4b2491a7a96 100644 (file)
@@ -55,7 +55,7 @@ test: create_index create_index_spgist create_view index_including index_includi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_aggregate create_function_3 create_cast constraints triggers select inherit typed_table vacuum drop_if_exists updatable_views rolenames roleattributes create_am hash_func errors
+test: create_aggregate create_function_3 create_cast constraints triggers select inherit typed_table vacuum drop_if_exists updatable_views roleattributes create_am hash_func errors
 
 # ----------
 # sanity_check does a vacuum, affecting the sort order of SELECT *
index ca200eb5997957585515c003371fae91d02a2a3c..a39ca1012a3134b9f4e37293521c220aead09ada 100644 (file)
@@ -77,7 +77,6 @@ test: typed_table
 test: vacuum
 test: drop_if_exists
 test: updatable_views
-test: rolenames
 test: roleattributes
 test: create_am
 test: hash_func