aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2014-12-02 23:43:53 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2014-12-02 23:43:53 -0300
commitda34731bd3c805ab77d6e5914d02b1f011e9479d (patch)
tree54322128f3a7f55a5b3479ba0cc1083d0868004f /src
parent475aedd1ef0c0f9fc9d675dd2286380d14804975 (diff)
downloadpostgresql-da34731bd3c805ab77d6e5914d02b1f011e9479d.tar.gz
postgresql-da34731bd3c805ab77d6e5914d02b1f011e9479d.zip
Install kludges to fix check-world for src/test/modules
check-world failed in a completely clean tree, because src/test/modules fail to build unless errcodes.h is generated first. To fix this, install a dependency in src/test/modules' Makefile so that the necessary file is generated. Even with this, running "make check" within individual module subdirs will still fail because the dependency is not considered there, but this case is less interesting and would be messier to fix. check-world still failed with the above fix in place, this time because dummy_seclabel used LOAD to load the dynamic library, which doesn't work because the @libdir@ (expanded by the makefile) is expanded to the final install path, not the temporary installation directory used by make check. To fix, tweak things so that CREATE EXTENSION can be used instead, which solves the problem because the library path is expanded by the backend, which is aware of the true libdir.
Diffstat (limited to 'src')
-rw-r--r--src/test/modules/Makefile5
-rw-r--r--src/test/modules/dummy_seclabel/Makefile3
-rw-r--r--src/test/modules/dummy_seclabel/dummy_seclabel--1.0.sql9
-rw-r--r--src/test/modules/dummy_seclabel/dummy_seclabel.c12
-rw-r--r--src/test/modules/dummy_seclabel/dummy_seclabel.control4
-rw-r--r--src/test/modules/dummy_seclabel/expected/.gitignore1
-rw-r--r--src/test/modules/dummy_seclabel/expected/dummy_seclabel.out (renamed from src/test/modules/dummy_seclabel/output/dummy_seclabel.source)2
-rw-r--r--src/test/modules/dummy_seclabel/sql/.gitignore1
-rw-r--r--src/test/modules/dummy_seclabel/sql/dummy_seclabel.sql (renamed from src/test/modules/dummy_seclabel/input/dummy_seclabel.source)2
9 files changed, 35 insertions, 4 deletions
diff --git a/src/test/modules/Makefile b/src/test/modules/Makefile
index 9d5aa97b4ba..4cb6af01f8f 100644
--- a/src/test/modules/Makefile
+++ b/src/test/modules/Makefile
@@ -10,4 +10,9 @@ SUBDIRS = \
test_shm_mq \
test_parser
+all: submake-errcodes
+
+submake-errcodes:
+ $(MAKE) -C $(top_builddir)/src/backend submake-errcodes
+
$(recurse)
diff --git a/src/test/modules/dummy_seclabel/Makefile b/src/test/modules/dummy_seclabel/Makefile
index bddfa150dd5..72049d43ba3 100644
--- a/src/test/modules/dummy_seclabel/Makefile
+++ b/src/test/modules/dummy_seclabel/Makefile
@@ -3,6 +3,9 @@
MODULES = dummy_seclabel
PGFILEDESC = "dummy_seclabel - regression testing of the SECURITY LABEL statement"
+EXTENSION = dummy_seclabel
+DATA = dummy_seclabel--1.0.sql
+
REGRESS = dummy_seclabel
EXTRA_CLEAN = sql/dummy_seclabel.sql expected/dummy_seclabel.out
diff --git a/src/test/modules/dummy_seclabel/dummy_seclabel--1.0.sql b/src/test/modules/dummy_seclabel/dummy_seclabel--1.0.sql
new file mode 100644
index 00000000000..468a05d7b9b
--- /dev/null
+++ b/src/test/modules/dummy_seclabel/dummy_seclabel--1.0.sql
@@ -0,0 +1,9 @@
+/* src/test/modules/dummy_seclabel/dummy_seclabel--1.0.sql */
+
+-- complain if script is sourced in psql, rather than via CREATE EXTENSION
+\echo Use "CREATE EXTENSION dummy_seclabel" to load this file. \quit
+
+CREATE FUNCTION dummy_seclabel_dummy()
+ RETURNS pg_catalog.void
+ AS 'MODULE_PATHNAME' LANGUAGE C;
+
diff --git a/src/test/modules/dummy_seclabel/dummy_seclabel.c b/src/test/modules/dummy_seclabel/dummy_seclabel.c
index b5753cc9084..dae51da43bb 100644
--- a/src/test/modules/dummy_seclabel/dummy_seclabel.c
+++ b/src/test/modules/dummy_seclabel/dummy_seclabel.c
@@ -21,6 +21,8 @@ PG_MODULE_MAGIC;
/* Entrypoint of the module */
void _PG_init(void);
+PG_FUNCTION_INFO_V1(dummy_seclabel_dummy);
+
static void
dummy_object_relabel(const ObjectAddress *object, const char *seclabel)
{
@@ -48,3 +50,13 @@ _PG_init(void)
{
register_label_provider("dummy", dummy_object_relabel);
}
+
+/*
+ * This function is here just so that the extension is not completely empty
+ * and the dynamic library is loaded when CREATE EXTENSION runs.
+ */
+Datum
+dummy_seclabel_dummy(PG_FUNCTION_ARGS)
+{
+ PG_RETURN_VOID();
+}
diff --git a/src/test/modules/dummy_seclabel/dummy_seclabel.control b/src/test/modules/dummy_seclabel/dummy_seclabel.control
new file mode 100644
index 00000000000..8c3727285f8
--- /dev/null
+++ b/src/test/modules/dummy_seclabel/dummy_seclabel.control
@@ -0,0 +1,4 @@
+comment = 'Test code for SECURITY LABEL feature'
+default_version = '1.0'
+module_pathname = '$libdir/dummy_seclabel'
+relocatable = true
diff --git a/src/test/modules/dummy_seclabel/expected/.gitignore b/src/test/modules/dummy_seclabel/expected/.gitignore
deleted file mode 100644
index 2dd246245b3..00000000000
--- a/src/test/modules/dummy_seclabel/expected/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/dummy_seclabel.out
diff --git a/src/test/modules/dummy_seclabel/output/dummy_seclabel.source b/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
index 8275764cb9c..a16558e8fd1 100644
--- a/src/test/modules/dummy_seclabel/output/dummy_seclabel.source
+++ b/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
@@ -1,7 +1,7 @@
--
-- Test for facilities of security label
--
-LOAD '@libdir@/dummy_seclabel@DLSUFFIX@';
+CREATE EXTENSION dummy_seclabel;
-- initial setups
SET client_min_messages TO 'warning';
DROP ROLE IF EXISTS dummy_seclabel_user1;
diff --git a/src/test/modules/dummy_seclabel/sql/.gitignore b/src/test/modules/dummy_seclabel/sql/.gitignore
deleted file mode 100644
index ec54e63b4fd..00000000000
--- a/src/test/modules/dummy_seclabel/sql/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/dummy_seclabel.sql
diff --git a/src/test/modules/dummy_seclabel/input/dummy_seclabel.source b/src/test/modules/dummy_seclabel/sql/dummy_seclabel.sql
index d39ce88aee9..49777aae38b 100644
--- a/src/test/modules/dummy_seclabel/input/dummy_seclabel.source
+++ b/src/test/modules/dummy_seclabel/sql/dummy_seclabel.sql
@@ -1,7 +1,7 @@
--
-- Test for facilities of security label
--
-LOAD '@libdir@/dummy_seclabel@DLSUFFIX@';
+CREATE EXTENSION dummy_seclabel;
-- initial setups
SET client_min_messages TO 'warning';