mirror of
https://github.com/postgres/postgres.git
synced 2025-11-15 03:41:20 +03:00
injection_points: Add tests for name limits
The maximum limits for point name, library name, function name and private area size were not kept track of in the tests. The new function introduced in16a2f70695gives a way to trigger them. This is not critical but cheap to cover. While on it, this commit cleans up some of the tests introduced by16a2f70695for NULL inputs by using more consistent argument values. The coverage does not change, but it makes the whole less confusing with argument values that are correct based their position in the SQL function called. Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Xuneng Zhou <xunengzhou@gmail.com> Discussion: https://postgr.es/m/aRE7zhu6wOA29gFf@paquier.xyz
This commit is contained in:
@@ -308,14 +308,27 @@ SELECT injection_points_detach('TestConditionLocal1');
|
|||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
-- Function variant for attach.
|
-- Function variant for attach.
|
||||||
|
SELECT injection_points_attach(repeat('a', 64), 'injection_points',
|
||||||
|
'injection_notice', NULL);
|
||||||
|
ERROR: injection point name aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa too long (maximum of 63 characters)
|
||||||
|
SELECT injection_points_attach('TestInjectionNoticeFunc', repeat('a', 128),
|
||||||
|
'injection_notice', NULL);
|
||||||
|
ERROR: injection point library aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa too long (maximum of 127 characters)
|
||||||
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
|
repeat('a', 128), NULL);
|
||||||
|
ERROR: injection point function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa too long (maximum of 127 characters)
|
||||||
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
|
'injection_notice', repeat('a', 1025)::bytea);
|
||||||
|
ERROR: injection point data too long (maximum of 1024 bytes)
|
||||||
SELECT injection_points_attach(NULL, NULL, NULL, NULL);
|
SELECT injection_points_attach(NULL, NULL, NULL, NULL);
|
||||||
ERROR: injection point name cannot be NULL
|
ERROR: injection point name cannot be NULL
|
||||||
SELECT injection_points_attach('injection_points', NULL, NULL, NULL);
|
SELECT injection_points_attach('TestInjectionNoticeFunc', NULL, NULL, NULL);
|
||||||
ERROR: injection point library cannot be NULL
|
ERROR: injection point library cannot be NULL
|
||||||
SELECT injection_points_attach('injection_points', 'injection_notice', NULL, NULL);
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
|
NULL, NULL);
|
||||||
ERROR: injection point function cannot be NULL
|
ERROR: injection point function cannot be NULL
|
||||||
SELECT injection_points_attach('TestInjectionNoticeFunc',
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
'injection_points', 'injection_notice', NULL);
|
'injection_notice', NULL);
|
||||||
injection_points_attach
|
injection_points_attach
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -89,11 +89,20 @@ SELECT injection_points_attach('TestConditionLocal1', 'error');
|
|||||||
SELECT injection_points_detach('TestConditionLocal1');
|
SELECT injection_points_detach('TestConditionLocal1');
|
||||||
|
|
||||||
-- Function variant for attach.
|
-- Function variant for attach.
|
||||||
|
SELECT injection_points_attach(repeat('a', 64), 'injection_points',
|
||||||
|
'injection_notice', NULL);
|
||||||
|
SELECT injection_points_attach('TestInjectionNoticeFunc', repeat('a', 128),
|
||||||
|
'injection_notice', NULL);
|
||||||
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
|
repeat('a', 128), NULL);
|
||||||
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
|
'injection_notice', repeat('a', 1025)::bytea);
|
||||||
SELECT injection_points_attach(NULL, NULL, NULL, NULL);
|
SELECT injection_points_attach(NULL, NULL, NULL, NULL);
|
||||||
SELECT injection_points_attach('injection_points', NULL, NULL, NULL);
|
SELECT injection_points_attach('TestInjectionNoticeFunc', NULL, NULL, NULL);
|
||||||
SELECT injection_points_attach('injection_points', 'injection_notice', NULL, NULL);
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
SELECT injection_points_attach('TestInjectionNoticeFunc',
|
NULL, NULL);
|
||||||
'injection_points', 'injection_notice', NULL);
|
SELECT injection_points_attach('TestInjectionNoticeFunc', 'injection_points',
|
||||||
|
'injection_notice', NULL);
|
||||||
SELECT point_name, library, function FROM injection_points_list()
|
SELECT point_name, library, function FROM injection_points_list()
|
||||||
ORDER BY point_name COLLATE "C";
|
ORDER BY point_name COLLATE "C";
|
||||||
SELECT injection_points_run('TestInjectionNoticeFunc', NULL); -- notice
|
SELECT injection_points_run('TestInjectionNoticeFunc', NULL); -- notice
|
||||||
|
|||||||
Reference in New Issue
Block a user