diff options
| author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2014-12-02 23:43:53 -0300 |
|---|---|---|
| committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2014-12-02 23:43:53 -0300 |
| commit | da34731bd3c805ab77d6e5914d02b1f011e9479d (patch) | |
| tree | 54322128f3a7f55a5b3479ba0cc1083d0868004f /src/test | |
| parent | 475aedd1ef0c0f9fc9d675dd2286380d14804975 (diff) | |
| download | postgresql-da34731bd3c805ab77d6e5914d02b1f011e9479d.tar.gz | |
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/test')
| -rw-r--r-- | src/test/modules/Makefile | 5 | ||||
| -rw-r--r-- | src/test/modules/dummy_seclabel/Makefile | 3 | ||||
| -rw-r--r-- | src/test/modules/dummy_seclabel/dummy_seclabel--1.0.sql | 9 | ||||
| -rw-r--r-- | src/test/modules/dummy_seclabel/dummy_seclabel.c | 12 | ||||
| -rw-r--r-- | src/test/modules/dummy_seclabel/dummy_seclabel.control | 4 | ||||
| -rw-r--r-- | src/test/modules/dummy_seclabel/expected/.gitignore | 1 | ||||
| -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/.gitignore | 1 | ||||
| -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 9d5aa97b4b..4cb6af01f8 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 bddfa150dd..72049d43ba 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 0000000000..468a05d7b9 --- /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 b5753cc908..dae51da43b 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 0000000000..8c3727285f --- /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 2dd246245b..0000000000 --- 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 8275764cb9..a16558e8fd 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 ec54e63b4f..0000000000 --- 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 d39ce88aee..49777aae38 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'; |
