aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2022-03-22 13:27:26 -0400
committerAndrew Dunstan <andrew@dunslane.net>2022-03-22 13:27:26 -0400
commitf0206d99520ebdb751469ad53ff62bbff817ab3d (patch)
treefdaf36c2045ff5fabe3b1422cc7d6ebc303997bf
parent097786fbbb58897fec12ed9bfff3940c77b5867b (diff)
downloadpostgresql-f0206d99520ebdb751469ad53ff62bbff817ab3d.tar.gz
postgresql-f0206d99520ebdb751469ad53ff62bbff817ab3d.zip
Fix new Object Access hooks test
Commit 90efa2f556 caused some issues with EXEC_BACKEND builds and with force_parallel_mode = regress setups. For the first issue we no longer test if the module has been preloaded, and in fact we don't preload it, but simply LOAD it in the test script. For the second issue we suppress error messages emanating from parallel workers. Mark Dilger Discussion: https://postgr.es/m/7f6d54a1-4024-3b6e-e3ec-26cd394aac9e@dunslane.net
-rw-r--r--src/test/modules/test_oat_hooks/Makefile3
-rw-r--r--src/test/modules/test_oat_hooks/expected/test_oat_hooks.out1
-rw-r--r--src/test/modules/test_oat_hooks/sql/test_oat_hooks.sql1
-rw-r--r--src/test/modules/test_oat_hooks/test_oat_hooks.c12
-rw-r--r--src/test/modules/test_oat_hooks/test_oat_hooks.conf1
5 files changed, 4 insertions, 14 deletions
diff --git a/src/test/modules/test_oat_hooks/Makefile b/src/test/modules/test_oat_hooks/Makefile
index d0df9c1abbf..d03ef2caf17 100644
--- a/src/test/modules/test_oat_hooks/Makefile
+++ b/src/test/modules/test_oat_hooks/Makefile
@@ -7,9 +7,6 @@ OBJS = \
PGFILEDESC = "test_oat_hooks - example use of object access hooks"
REGRESS = test_oat_hooks
-REGRESS_OPTS = --temp-config=$(top_srcdir)/src/test/modules/test_oat_hooks/test_oat_hooks.conf
-# Disabled because these tests require "shared_preload_libraries=test_oat_hooks",
-# which typical installcheck users do not have (e.g. buildfarm clients).
NO_INSTALLCHECK = 1
ifdef USE_PGXS
diff --git a/src/test/modules/test_oat_hooks/expected/test_oat_hooks.out b/src/test/modules/test_oat_hooks/expected/test_oat_hooks.out
index 20357695801..4192a2fb49e 100644
--- a/src/test/modules/test_oat_hooks/expected/test_oat_hooks.out
+++ b/src/test/modules/test_oat_hooks/expected/test_oat_hooks.out
@@ -2,6 +2,7 @@
-- object_access_hook_str. Since the auditing GUC starts out false, we miss the
-- initial "attempting" audit message from the ProcessUtility_hook, but we
-- should thereafter see the audit messages
+LOAD 'test_oat_hooks';
SET test_oat_hooks.audit = true;
NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.audit]
NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.audit]
diff --git a/src/test/modules/test_oat_hooks/sql/test_oat_hooks.sql b/src/test/modules/test_oat_hooks/sql/test_oat_hooks.sql
index 5fb3a2f0ea4..7c382027824 100644
--- a/src/test/modules/test_oat_hooks/sql/test_oat_hooks.sql
+++ b/src/test/modules/test_oat_hooks/sql/test_oat_hooks.sql
@@ -2,6 +2,7 @@
-- object_access_hook_str. Since the auditing GUC starts out false, we miss the
-- initial "attempting" audit message from the ProcessUtility_hook, but we
-- should thereafter see the audit messages
+LOAD 'test_oat_hooks';
SET test_oat_hooks.audit = true;
-- Create objects for use in the test
diff --git a/src/test/modules/test_oat_hooks/test_oat_hooks.c b/src/test/modules/test_oat_hooks/test_oat_hooks.c
index b1709f4d63d..b50567749c4 100644
--- a/src/test/modules/test_oat_hooks/test_oat_hooks.c
+++ b/src/test/modules/test_oat_hooks/test_oat_hooks.c
@@ -13,6 +13,7 @@
#include "postgres.h"
+#include "access/parallel.h"
#include "catalog/dependency.h"
#include "catalog/objectaccess.h"
#include "catalog/pg_proc.h"
@@ -69,15 +70,6 @@ void
_PG_init(void)
{
/*
- * We allow to load the Object Access Type test module on single-user-mode
- * or shared_preload_libraries settings only.
- */
- if (IsUnderPostmaster)
- ereport(ERROR,
- (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
- errmsg("test_oat_hooks must be loaded via shared_preload_libraries")));
-
- /*
* test_oat_hooks.deny_set_variable = (on|off)
*/
DefineCustomBoolVariable("test_oat_hooks.deny_set_variable",
@@ -200,7 +192,7 @@ _PG_fini(void)
static void
emit_audit_message(const char *type, const char *hook, char *action, char *objName)
{
- if (REGRESS_audit)
+ if (REGRESS_audit && !IsParallelWorker())
{
const char *who = superuser_arg(GetUserId()) ? "superuser" : "non-superuser";
diff --git a/src/test/modules/test_oat_hooks/test_oat_hooks.conf b/src/test/modules/test_oat_hooks/test_oat_hooks.conf
deleted file mode 100644
index a44cbdd4a4f..00000000000
--- a/src/test/modules/test_oat_hooks/test_oat_hooks.conf
+++ /dev/null
@@ -1 +0,0 @@
-shared_preload_libraries = test_oat_hooks