diff options
| author | Michael Paquier <michael@paquier.xyz> | 2024-01-22 13:32:28 +0900 |
|---|---|---|
| committer | Michael Paquier <michael@paquier.xyz> | 2024-01-22 13:32:28 +0900 |
| commit | 49cd2b93d7dbceefdf9a71cc301d284a2dd234c3 (patch) | |
| tree | f892154152700b173a98b6908ca99a93847db538 /src/test/modules/injection_points/sql | |
| parent | d86d20f0ba79451f19782dbb5fbf206746aaffd1 (diff) | |
Add test module injection_points
This provides basic coverage for injection points within a single
process, while providing some callbacks that can be used for other
tests. There are plans to extend this module later with more
advanced capabilities for tests.
Author: Michael Paquier, with comment fixes from Ashutosh Bapat.
Reviewed-by: Ashutosh Bapat, Nathan Bossart, Álvaro Herrera, Dilip
Kumar, Amul Sul, Nazir Bilal Yavuz
Discussion: https://postgr.es/m/ZTiV8tn_MIb_H2rE@paquier.xyz
Diffstat (limited to 'src/test/modules/injection_points/sql')
| -rw-r--r-- | src/test/modules/injection_points/sql/injection_points.sql | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/modules/injection_points/sql/injection_points.sql b/src/test/modules/injection_points/sql/injection_points.sql new file mode 100644 index 00000000000..23c7e435ad2 --- /dev/null +++ b/src/test/modules/injection_points/sql/injection_points.sql @@ -0,0 +1,34 @@ +CREATE EXTENSION injection_points; + +SELECT injection_points_attach('TestInjectionBooh', 'booh'); +SELECT injection_points_attach('TestInjectionError', 'error'); +SELECT injection_points_attach('TestInjectionLog', 'notice'); +SELECT injection_points_attach('TestInjectionLog2', 'notice'); + +SELECT injection_points_run('TestInjectionBooh'); -- nothing +SELECT injection_points_run('TestInjectionLog2'); -- notice +SELECT injection_points_run('TestInjectionLog'); -- notice +SELECT injection_points_run('TestInjectionError'); -- error + +-- Re-load cache and run again. +\c +SELECT injection_points_run('TestInjectionLog2'); -- notice +SELECT injection_points_run('TestInjectionLog'); -- notice +SELECT injection_points_run('TestInjectionError'); -- error + +-- Remove one entry and check the remaining entries. +SELECT injection_points_detach('TestInjectionError'); -- ok +SELECT injection_points_run('TestInjectionLog'); -- notice +SELECT injection_points_run('TestInjectionError'); -- nothing +-- More entries removed, letting TestInjectionLog2 to check the same +-- callback used in more than one point. +SELECT injection_points_detach('TestInjectionLog'); -- ok +SELECT injection_points_run('TestInjectionLog'); -- nothing +SELECT injection_points_run('TestInjectionError'); -- nothing +SELECT injection_points_run('TestInjectionLog2'); -- notice + +SELECT injection_points_detach('TestInjectionLog'); -- fails + +SELECT injection_points_run('TestInjectionLog2'); -- notice + +DROP EXTENSION injection_points; |
