postgresql/src/test/modules
Michael Paquier 5105c90796 Make GIN tests using injection points concurrent-safe
f587338dec has introduced in the test module injection_points a SQL
function called injection_points_set_local(), that can be used to make
all the injection points linked to the process where they are attached,
discarded automatically if any remain once the process exits.

e2e3b8ae9e has added a NO_INSTALLCHECK to the test module to prevent
the use of installcheck.  Now that there is a way to make the test
concurrent-safe, let's use it and remove the installcheck restriction.

Concurrency issues could be easily reproduced by running in a tight
loop a command like this one, in src/test/modules/gin/ (hardcoding
pg_sleep() after attaching injection points enlarges the race window)
and a second test suite like contrib/btree_gin/:

  make installcheck USE_MODULE_DB=1

Reviewed-by: Andrey Borodin
Discussion: https://postgr.es/m/ZhNG4Io9uYOgwv3F@paquier.xyz
2024-04-10 13:48:13 +09:00
..
brin Update copyright for 2024 2024-01-03 20:49:05 -05:00
commit_ts Update copyright for 2024 2024-01-03 20:49:05 -05:00
delay_execution Update copyright for 2024 2024-01-03 20:49:05 -05:00
dummy_index_am Update copyright for 2024 2024-01-03 20:49:05 -05:00
dummy_seclabel Update copyright for 2024 2024-01-03 20:49:05 -05:00
gin Make GIN tests using injection points concurrent-safe 2024-04-10 13:48:13 +09:00
injection_points injection_points: Fix race condition with local injection point tests 2024-04-09 10:31:12 +09:00
ldap_password_func Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
libpq_pipeline Support retrieval of results in chunks with libpq. 2024-04-06 20:45:11 -04:00
plsample Update copyright for 2024 2024-01-03 20:49:05 -05:00
spgist_name_ops Update copyright for 2024 2024-01-03 20:49:05 -05:00
ssl_passphrase_callback Activate perlcritic InputOutput::RequireCheckedSyscalls and fix resulting warnings 2024-03-19 07:09:31 +01:00
test_bloomfilter Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_copy_callbacks Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_custom_rmgrs Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_ddl_deparse Implement ALTER TABLE ... SPLIT PARTITION ... command 2024-04-07 01:18:44 +03:00
test_dsa Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
test_dsm_registry Introduce the dynamic shared memory registry. 2024-01-19 14:24:36 -06:00
test_extensions Explicitly list dependent types as extension members in pg_depend. 2024-03-04 14:49:36 -05:00
test_ginpostinglist Fix some typos 2024-01-22 13:55:25 +09:00
test_integerset Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_json_parser Fix whitespace 2024-04-09 11:32:48 +02:00
test_lfind Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_misc Use locale-aware value for \watch in 005_timeouts.pl 2024-03-15 21:37:17 +02:00
test_oat_hooks Fix search_path to a safe value during maintenance operations. 2024-03-04 17:31:38 -08:00
test_parser Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_pg_dump Drop global objects after completed test 2024-04-03 13:33:25 +02:00
test_predtest Refactor predicate_{implied,refuted}_by_simple_clause. 2024-03-25 17:45:15 -04:00
test_radixtree Revert "Fix link error for test_radixtree module on Windows" 2024-03-08 11:09:15 +07:00
test_rbtree Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_regex Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_resowner Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_rls_hooks Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_shm_mq Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_slru Improve performance of subsystems on top of SLRU 2024-02-28 17:05:31 +01:00
test_tam_options Custom reloptions for table AM 2024-04-08 11:23:28 +03:00
test_tidstore Teach TID store to skip bitmap for small numbers of offsets 2024-04-08 18:47:09 +07:00
unsafe_tests Update copyright for 2024 2024-01-03 20:49:05 -05:00
worker_spi Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
xid_wraparound Fix meson installation of xid_wraparound test. 2024-02-08 17:03:59 +09:00
Makefile Custom reloptions for table AM 2024-04-08 11:23:28 +03:00
README Add an enforcement mechanism for global object names in regression tests. 2019-06-29 11:34:00 -04:00
meson.build Custom reloptions for table AM 2024-04-08 11:23:28 +03:00

README

Test extensions and libraries
=============================

src/test/modules contains PostgreSQL extensions that are primarily or entirely
intended for testing PostgreSQL and/or to serve as example code. The extensions
here aren't intended to be installed in a production server and aren't suitable
for "real work".

Furthermore, while you can do "make install" and "make installcheck" in
this directory or its children, it is NOT ADVISABLE to do so with a server
containing valuable data.  Some of these tests may have undesirable
side-effects on roles or other global objects within the tested server.
"make installcheck-world" at the top level does not recurse into this
directory.

Most extensions have their own pg_regress tests or isolationtester specs. Some
are also used by tests elsewhere in the tree.

If you're adding new hooks or other functionality exposed as C-level API this
is where to add the tests for it.