Tom pointed out that coverage for worker_spi is 0%. For a module that only exists to provide coverage, that's pretty stupid. This patch increases coverage to 90.9% line-wise and 100% function-wise, which seems like a sufficient starting point.
How would people feel about me getting this in master at this point in the cycle, it being just some test code? We can easily revert if it seems too unstable. -- Álvaro Herrera
diff --git a/src/test/modules/worker_spi/Makefile b/src/test/modules/worker_spi/Makefile index 7cdb33c9df..cbf9b2e37f 100644 --- a/src/test/modules/worker_spi/Makefile +++ b/src/test/modules/worker_spi/Makefile @@ -6,6 +6,14 @@ EXTENSION = worker_spi DATA = worker_spi--1.0.sql PGFILEDESC = "worker_spi - background worker example" +REGRESS = worker_spi + +# enable our module in shared_preload_libraries for dynamic bgworkers +REGRESS_OPTS = --temp-config $(top_srcdir)/src/test/modules/worker_spi/dynamic.conf + +# Disable installcheck to ensure we cover dynamic bgworkers. +NO_INSTALLCHECK = 1 + ifdef USE_PGXS PG_CONFIG = pg_config PGXS := $(shell $(PG_CONFIG) --pgxs) diff --git a/src/test/modules/worker_spi/dynamic.conf b/src/test/modules/worker_spi/dynamic.conf new file mode 100644 index 0000000000..646885a9c7 --- /dev/null +++ b/src/test/modules/worker_spi/dynamic.conf @@ -0,0 +1,2 @@ +worker_spi.naptime = 1 +shared_preload_libraries = worker_spi diff --git a/src/test/modules/worker_spi/expected/worker_spi.out b/src/test/modules/worker_spi/expected/worker_spi.out new file mode 100644 index 0000000000..28b2970d01 --- /dev/null +++ b/src/test/modules/worker_spi/expected/worker_spi.out @@ -0,0 +1,22 @@ +\c postgres +CREATE EXTENSION worker_spi; +SELECT worker_spi_launch(1) IS NOT NULL; + ?column? +---------- + t +(1 row) + +INSERT INTO schema1.counted VALUES ('total', 0), ('delta', 1); +SELECT pg_sleep(CASE WHEN count(*) = 0 THEN 0 ELSE current_setting('worker_spi.naptime')::int END) + FROM schema1.counted WHERE type = 'delta'; + pg_sleep +---------- + +(1 row) + +SELECT * FROM schema1.counted; + type | value +-------+------- + total | 1 +(1 row) + diff --git a/src/test/modules/worker_spi/sql/worker_spi.sql b/src/test/modules/worker_spi/sql/worker_spi.sql new file mode 100644 index 0000000000..ac454cff57 --- /dev/null +++ b/src/test/modules/worker_spi/sql/worker_spi.sql @@ -0,0 +1,7 @@ +\c postgres +CREATE EXTENSION worker_spi; +SELECT worker_spi_launch(1) IS NOT NULL; +INSERT INTO schema1.counted VALUES ('total', 0), ('delta', 1); +SELECT pg_sleep(CASE WHEN count(*) = 0 THEN 0 ELSE current_setting('worker_spi.naptime')::int END) + FROM schema1.counted WHERE type = 'delta'; +SELECT * FROM schema1.counted; -- 2.17.1