Skip to content

Commit e17a205

Browse files
committed
test: use supautils.log_skipped_evtrigs for evtrig tests
skipped event triggers in tests are easier to read this way.
1 parent 82cec50 commit e17a205

File tree

4 files changed

+54
-14
lines changed

4 files changed

+54
-14
lines changed

test/expected/event_triggers.out.in

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
-- enable logging skipped event triggers
2+
set supautils.log_skipped_evtrigs = true;
3+
\echo
4+
15
-- create a function owned by a non-superuser
26
set role privileged_role;
37
\echo
@@ -65,24 +69,34 @@ set role supabase_storage_admin;
6569
\echo
6670

6771
create table storage_stuff();
72+
NOTICE: Skipping event trigger function "show_current_user" for user "supabase_storage_admin"
73+
DETAIL: "supabase_storage_admin" is a reserved role and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
6874
\echo
6975

7076
drop table storage_stuff;
77+
NOTICE: Skipping event trigger function "show_current_user" for user "supabase_storage_admin"
78+
DETAIL: "supabase_storage_admin" is a reserved role and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
7179
\echo
7280

7381
-- A superuser role shouldn't execute the event trigger function
7482
set role postgres;
7583
\echo
7684

7785
create table super_stuff();
86+
NOTICE: Skipping event trigger function "show_current_user" for user "postgres"
87+
DETAIL: "postgres" is a superuser and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
7888
\echo
7989

8090
-- extensions won't execute the event trigger function (since they're executed by superuser under our implementation)
8191
set role rolecreator;
8292
\echo
8393

8494
create extension postgres_fdw;
95+
NOTICE: Skipping event trigger function "show_current_user" for user "postgres"
96+
DETAIL: "postgres" is a superuser and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
8597
drop extension postgres_fdw;
98+
NOTICE: Skipping event trigger function "show_current_user" for user "postgres"
99+
DETAIL: "postgres" is a superuser and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
86100
\echo
87101

88102
-- privesc shouldn't happen due to superuser tripping over a user-defined event trigger
@@ -110,34 +124,33 @@ set role postgres;
110124
\echo
111125

112126
create table super_duper_stuff();
127+
NOTICE: Skipping event trigger function "show_current_user" for user "postgres"
128+
DETAIL: "postgres" is a superuser and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
129+
NOTICE: Skipping event trigger function "become_super" for user "postgres"
130+
DETAIL: "postgres" is a superuser and the function "become_super" is not superuser-owned, it's owned by "privileged_role"
131+
\echo
132+
113133
select count(*) = 1 as only_one_super from pg_roles where rolsuper;
114134
only_one_super
115135
----------------
116136
t
117137
(1 row)
118138

119-
-- ensure logging skipped event triggers happens when enabled, for superusers and reserved roles
120-
set supautils.log_skipped_evtrigs = true;
139+
-- ensure logging doesn't happen when the GUC is disabled
140+
set supautils.log_skipped_evtrigs = false;
121141
\echo
122142

123143
create table supa_stuff();
124-
NOTICE: Skipping event trigger function "show_current_user" for user "postgres"
125-
DETAIL: "postgres" is a superuser and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
126-
NOTICE: Skipping event trigger function "become_super" for user "postgres"
127-
DETAIL: "postgres" is a superuser and the function "become_super" is not superuser-owned, it's owned by "privileged_role"
128144
\echo
129145

130146
set role supabase_storage_admin;
131147
\echo
132148

133149
create table some_stuff();
134-
NOTICE: Skipping event trigger function "show_current_user" for user "supabase_storage_admin"
135-
DETAIL: "supabase_storage_admin" is a reserved role and the function "show_current_user" is not superuser-owned, it's owned by "privileged_role"
136-
NOTICE: Skipping event trigger function "become_super" for user "supabase_storage_admin"
137-
DETAIL: "supabase_storage_admin" is a reserved role and the function "become_super" is not superuser-owned, it's owned by "privileged_role"
138150
\echo
139151

140-
reset supautils.log_skipped_evtrigs;
152+
-- restablish logging for the rest of the tests
153+
set supautils.log_skipped_evtrigs = true;
141154
\echo
142155

143156
-- privesc won't happen because the event trigger function will fire with the privileges
@@ -203,11 +216,15 @@ execute procedure secdef_show_current_user();
203216
-- secdef won't be executed for superuser
204217
set role postgres;
205218
create table super_foo();
219+
NOTICE: Skipping event trigger function "secdef_show_current_user" for user "postgres"
220+
DETAIL: "postgres" is a superuser and the function "secdef_show_current_user" is not superuser-owned, it's owned by "privileged_role"
206221
\echo
207222

208223
-- secdef won't be executed for reserved roles
209224
set role supabase_storage_admin;
210225
create table storage_foo();
226+
NOTICE: Skipping event trigger function "secdef_show_current_user" for user "supabase_storage_admin"
227+
DETAIL: "supabase_storage_admin" is a reserved role and the function "secdef_show_current_user" is not superuser-owned, it's owned by "privileged_role"
211228
\echo
212229

213230
-- secdef will be executed for other roles

test/expected/event_triggers_super.out

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
-- skipped event triggers are logged
2+
set supautils.log_skipped_evtrigs = true;
3+
\echo
4+
15
-- a superuser can create an event trigger
26
set role postgres;
37
\echo
@@ -116,3 +120,7 @@ ERROR: must be owner of event trigger event_trigger_1
116120
-- only the superuser can drop its own event triggers
117121
set role postgres;
118122
drop event trigger event_trigger_1;
123+
\echo
124+
125+
-- disable logging event triggers
126+
reset supautils.log_skipped_evtrigs;

test/sql/event_triggers.sql

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
-- enable logging skipped event triggers
2+
set supautils.log_skipped_evtrigs = true;
3+
\echo
4+
15
-- create a function owned by a non-superuser
26
set role privileged_role;
37
\echo
@@ -99,10 +103,12 @@ set role postgres;
99103
\echo
100104

101105
create table super_duper_stuff();
106+
\echo
107+
102108
select count(*) = 1 as only_one_super from pg_roles where rolsuper;
103109

104-
-- ensure logging skipped event triggers happens when enabled, for superusers and reserved roles
105-
set supautils.log_skipped_evtrigs = true;
110+
-- ensure logging doesn't happen when the GUC is disabled
111+
set supautils.log_skipped_evtrigs = false;
106112
\echo
107113

108114
create table supa_stuff();
@@ -114,7 +120,8 @@ set role supabase_storage_admin;
114120
create table some_stuff();
115121
\echo
116122

117-
reset supautils.log_skipped_evtrigs;
123+
-- restablish logging for the rest of the tests
124+
set supautils.log_skipped_evtrigs = true;
118125
\echo
119126

120127
-- privesc won't happen because the event trigger function will fire with the privileges

test/sql/event_triggers_super.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
-- skipped event triggers are logged
2+
set supautils.log_skipped_evtrigs = true;
3+
\echo
4+
15
-- a superuser can create an event trigger
26
set role postgres;
37
\echo
@@ -99,3 +103,7 @@ drop event trigger event_trigger_1;
99103
-- only the superuser can drop its own event triggers
100104
set role postgres;
101105
drop event trigger event_trigger_1;
106+
\echo
107+
108+
-- disable logging event triggers
109+
reset supautils.log_skipped_evtrigs;

0 commit comments

Comments
 (0)