diff --git a/src/test/modules/test_session_hooks/Makefile b/src/test/modules/test_session_hooks/Makefile
index 636ae61c0e..6a33eee396 100644
--- a/src/test/modules/test_session_hooks/Makefile
+++ b/src/test/modules/test_session_hooks/Makefile
@@ -3,10 +3,6 @@
 MODULES = test_session_hooks
 PGFILEDESC = "test_session_hooks - Test session hooks with an extension"
 
-EXTENSION = test_session_hooks
-DATA = test_session_hooks--1.0.sql
-
-REGRESS = test_session_hooks
 REGRESS_OPTS = --temp-config=$(top_srcdir)/src/test/modules/test_session_hooks/session_hooks.conf
 
 ifdef USE_PGXS
@@ -20,6 +16,31 @@ include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
-# override installcheck - this module requires preloading the test module
-installcheck:
-	@echo Cannot run $@ for test_session_hooks. Run "'make check'" instead.
+# Disabled because these tests require shared_preload_libraries to be
+# set but users unlikely have that set up.
+installcheck:;
+
+# But it can nonetheless be very helpful to run tests on preexisting
+# installation, allow to do so, but only if requested explicitly.
+installcheck-force: regresscheck-install-force
+
+check: regresscheck
+
+submake-regress:
+	$(MAKE) -C $(top_builddir)/src/test/regress all
+
+submake-test_session_hooks:
+	$(MAKE) -C $(top_builddir)/src/test/modules/test_session_hooks
+
+REGRESSCHECKS = test_session_hooks
+
+regresscheck: | submake-regress submake-test_session_hooks temp-install
+	$(pg_regress_check) $(REGRESS_OPTS) $(REGRESSCHECKS)
+
+regresscheck-install-force: | submake-regress submake-test_decoding temp-install
+	$(pg_regress_installcheck) $(REGRESSCHECKS)
+
+.PHONY: submake-test_decoding submake-regress check \
+	regresscheck regresscheck-install-force
+
+temp-install: EXTRA_INSTALL=src/test/modules/test_session_hooks
diff --git a/src/test/modules/test_session_hooks/expected/test_session_hooks.out b/src/test/modules/test_session_hooks/expected/test_session_hooks.out
index be1b94953c..8c1a92f7e8 100644
--- a/src/test/modules/test_session_hooks/expected/test_session_hooks.out
+++ b/src/test/modules/test_session_hooks/expected/test_session_hooks.out
@@ -16,16 +16,18 @@ SELECT * FROM session_hook_log ORDER BY id;
 
 \c :prevdb regress_sess_hook_usr2
 SELECT * FROM session_hook_log ORDER BY id;
- id |       dbname       |        username        | hook_at 
-----+--------------------+------------------------+---------
-  1 | contrib_regression | regress_sess_hook_usr2 | START
+ id |   dbname   |        username        | hook_at 
+----+------------+------------------------+---------
+  1 | regression | regress_sess_hook_usr2 | START
 (1 row)
 
 \c :prevdb :prevusr
 SELECT * FROM session_hook_log ORDER BY id;
- id |       dbname       |        username        | hook_at 
-----+--------------------+------------------------+---------
-  1 | contrib_regression | regress_sess_hook_usr2 | START
-  2 | contrib_regression | regress_sess_hook_usr2 | END
+ id |   dbname   |        username        | hook_at 
+----+------------+------------------------+---------
+  1 | regression | regress_sess_hook_usr2 | START
+  2 | regression | regress_sess_hook_usr2 | END
 (2 rows)
 
+DROP ROLE regress_sess_hook_usr1;
+DROP ROLE regress_sess_hook_usr2;
diff --git a/src/test/modules/test_session_hooks/sql/test_session_hooks.sql b/src/test/modules/test_session_hooks/sql/test_session_hooks.sql
index 5e0864753d..9644c5a694 100644
--- a/src/test/modules/test_session_hooks/sql/test_session_hooks.sql
+++ b/src/test/modules/test_session_hooks/sql/test_session_hooks.sql
@@ -10,3 +10,5 @@ SELECT * FROM session_hook_log ORDER BY id;
 SELECT * FROM session_hook_log ORDER BY id;
 \c :prevdb :prevusr
 SELECT * FROM session_hook_log ORDER BY id;
+DROP ROLE regress_sess_hook_usr1;
+DROP ROLE regress_sess_hook_usr2;
diff --git a/src/test/modules/test_session_hooks/test_session_hooks--1.0.sql b/src/test/modules/test_session_hooks/test_session_hooks--1.0.sql
deleted file mode 100644
index 16bcee9882..0000000000
--- a/src/test/modules/test_session_hooks/test_session_hooks--1.0.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-/* src/test/modules/test_hook_session/test_hook_session--1.0.sql */
-
--- complain if script is sourced in psql, rather than via CREATE EXTENSION
-\echo Use "CREATE EXTENSION test_hook_session" to load this file. \quit
diff --git a/src/test/modules/test_session_hooks/test_session_hooks.c b/src/test/modules/test_session_hooks/test_session_hooks.c
index 4e2eef183e..04acd27eeb 100644
--- a/src/test/modules/test_session_hooks/test_session_hooks.c
+++ b/src/test/modules/test_session_hooks/test_session_hooks.c
@@ -72,7 +72,7 @@ register_session_hook(const char *hook_at)
 
 /* sample session start hook function */
 static void
-sample_session_start_hook()
+sample_session_start_hook(void)
 {
 	/* Hook just normal backends */
 	if (MyBackendId != InvalidBackendId)
@@ -86,7 +86,7 @@ sample_session_start_hook()
 
 /* sample session end hook function */
 static void
-sample_session_end_hook()
+sample_session_end_hook(void)
 {
 	/* Hook just normal backends */
 	if (MyBackendId != InvalidBackendId)
diff --git a/src/test/modules/test_session_hooks/test_session_hooks.control b/src/test/modules/test_session_hooks/test_session_hooks.control
deleted file mode 100644
index 7d7ef9f3f4..0000000000
--- a/src/test/modules/test_session_hooks/test_session_hooks.control
+++ /dev/null
@@ -1,3 +0,0 @@
-comment = 'Test start/end hook session with an extension'
-default_version = '1.0'
-relocatable = true
