Skip to content

Commit 9923835

Browse files
committed
Test simplified XMPP element instrumentation events
1 parent 70bfd5f commit 9923835

File tree

4 files changed

+57
-64
lines changed

4 files changed

+57
-64
lines changed

Diff for: big_tests/tests/component_SUITE.erl

+8-12
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ register_one_component(Config) ->
113113
CheckServer = fun(#{lserver := S}) -> S =:= ComponentAddr end,
114114

115115
%% Expect events for handshake, but not for 'start stream'.
116-
instrument_helper:assert(xmpp_element_size_out, #{connection_type => component}, FullCheckF,
116+
instrument_helper:assert(xmpp_element_out, #{connection_type => component}, FullCheckF,
117117
#{expected_count => 1, min_timestamp => TS}),
118-
instrument_helper:assert(xmpp_element_size_in, #{connection_type => component}, FullCheckF,
118+
instrument_helper:assert(xmpp_element_in, #{connection_type => component}, FullCheckF,
119119
#{expected_count => 1, min_timestamp => TS}),
120120

121121
instrument_helper:assert(component_auth_failed, #{}, FullCheckF,
@@ -129,14 +129,10 @@ register_one_component(Config) ->
129129
verify_component(Config, Component, ComponentAddr),
130130

131131
% Message from Alice
132-
instrument_helper:assert(xmpp_element_size_out, #{connection_type => component}, FullCheckF,
132+
instrument_helper:assert(xmpp_element_out, #{connection_type => component}, FullCheckF,
133133
#{expected_count => 1, min_timestamp => TS1}),
134134
% Reply to Alice
135-
instrument_helper:assert(xmpp_element_size_in, #{connection_type => component}, FullCheckF,
136-
#{expected_count => 1, min_timestamp => TS1}),
137-
instrument_helper:assert(component_element_in, #{}, CheckServer,
138-
#{expected_count => 1, min_timestamp => TS1}),
139-
instrument_helper:assert(component_element_out, #{}, CheckServer,
135+
instrument_helper:assert(xmpp_element_in, #{connection_type => component}, FullCheckF,
140136
#{expected_count => 1, min_timestamp => TS1}),
141137

142138
component_helper:disconnect_component(Component, ComponentAddr).
@@ -187,9 +183,9 @@ intercomponent_communication(Config) ->
187183
FullCheckF = fun(#{byte_size := S, lserver := LServer}) ->
188184
S > 0 andalso LServer =:= CompAddr1 orelse LServer =:= CompAddr2
189185
end,
190-
instrument_helper:assert(xmpp_element_size_out, #{connection_type => component}, FullCheckF,
186+
instrument_helper:assert(xmpp_element_out, #{connection_type => component}, FullCheckF,
191187
#{expected_count => 1, min_timestamp => TS}),
192-
instrument_helper:assert(xmpp_element_size_in, #{connection_type => component}, FullCheckF,
188+
instrument_helper:assert(xmpp_element_in, #{connection_type => component}, FullCheckF,
193189
#{expected_count => 1, min_timestamp => TS}),
194190

195191
component_helper:disconnect_component(Comp1, CompAddr1),
@@ -241,10 +237,10 @@ register_two_components(Config) ->
241237
S > 0 andalso LServer =:= CompAddr1 orelse LServer =:= CompAddr2
242238
end,
243239
% Msg to Alice, msg to Bob
244-
instrument_helper:assert(xmpp_element_size_in, #{connection_type => component}, FullCheckF,
240+
instrument_helper:assert(xmpp_element_in, #{connection_type => component}, FullCheckF,
245241
#{expected_count => 2, min_timestamp => TS}),
246242
% Msg from Bob, msg from Alice
247-
instrument_helper:assert(xmpp_element_size_out, #{connection_type => component}, FullCheckF,
243+
instrument_helper:assert(xmpp_element_out, #{connection_type => component}, FullCheckF,
248244
#{expected_count => 2, min_timestamp => TS}),
249245

250246
component_helper:disconnect_component(Comp1, CompAddr1),

Diff for: big_tests/tests/metrics_c2s_SUITE.erl

+43-41
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ suite() ->
4747

4848
init_per_suite(Config) ->
4949
HostType = host_type(),
50-
instrument_helper:start([{c2s_element_in, #{host_type => HostType}},
51-
{c2s_element_out, #{host_type => HostType}},
50+
instrument_helper:start([{xmpp_element_in, labels()},
51+
{xmpp_element_out, labels()},
5252
{sm_message_bounced, #{host_type => HostType}}]),
5353
Config1 = dynamic_modules:save_modules(HostType, Config),
5454
dynamic_modules:ensure_stopped(HostType, [mod_offline]),
@@ -106,8 +106,8 @@ message_story(Alice, Bob) ->
106106
escalus_client:send(Alice, Msg),
107107
MsgToBob = escalus_client:wait_for_stanza(Bob),
108108
escalus:assert(is_chat_message, MsgToBob),
109-
assert_event(in, Alice, #{stanza_count => 1, message_count => 1, element => Msg}),
110-
assert_event(out, Bob, #{stanza_count => 1, message_count => 1, element => MsgToBob}).
109+
assert_event(in, Alice, #{stanza_count => 1, message_count => 1}, Msg),
110+
assert_event(out, Bob, #{stanza_count => 1, message_count => 1}, MsgToBob).
111111

112112
message_error(Config) ->
113113
escalus:fresh_story(Config, [{alice, 1}], fun message_error_story/1).
@@ -118,9 +118,9 @@ message_error_story(Alice) ->
118118
escalus_client:send(Alice, Msg),
119119
Error = escalus_client:wait_for_stanza(Alice),
120120
escalus:assert(is_error, [<<"cancel">>, <<"service-unavailable">>], Error),
121-
assert_event(in, Alice, #{stanza_count => 1, message_count => 1, element => Msg}),
122-
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, message_error_count => 1,
123-
element => Error}).
121+
assert_event(in, Alice, #{stanza_count => 1, message_count => 1}, Msg),
122+
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, message_error_count => 1},
123+
Error).
124124

125125
presence(Config) ->
126126
escalus:fresh_story(Config, [{alice, 1}, {bob, 1}], fun presence_story/2).
@@ -130,8 +130,8 @@ presence_story(Alice, Bob) ->
130130
escalus:send(Alice, Presence),
131131
PresenceToBob = escalus:wait_for_stanza(Bob),
132132
escalus:assert(is_presence, PresenceToBob),
133-
assert_event(in, Alice, #{stanza_count => 1, presence_count => 1, element => Presence}),
134-
assert_event(out, Bob, #{stanza_count => 1, presence_count => 1, element => PresenceToBob}).
133+
assert_event(in, Alice, #{stanza_count => 1, presence_count => 1}, Presence),
134+
assert_event(out, Bob, #{stanza_count => 1, presence_count => 1}, PresenceToBob).
135135

136136
presence_error(Config) ->
137137
escalus:fresh_story(Config, [{alice, 1}], fun presence_error_story/1).
@@ -141,9 +141,9 @@ presence_error_story(Alice) ->
141141
escalus:send(Alice, Presence),
142142
Error = escalus_client:wait_for_stanza(Alice),
143143
escalus:assert(is_error, [<<"modify">>, <<"bad-request">>], Error),
144-
assert_event(in, Alice, #{stanza_count => 1, presence_count => 1, element => Presence}),
145-
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, presence_error_count => 1,
146-
element => Error}).
144+
assert_event(in, Alice, #{stanza_count => 1, presence_count => 1}, Presence),
145+
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, presence_error_count => 1},
146+
Error).
147147

148148
iq(Config) ->
149149
escalus:fresh_story(Config, [{alice, 1}], fun iq_story/1).
@@ -153,8 +153,8 @@ iq_story(Alice) ->
153153
escalus_client:send(Alice, Request),
154154
Response = escalus_client:wait_for_stanza(Alice),
155155
escalus:assert(is_iq_result, [Request], Response),
156-
assert_event(in, Alice, #{stanza_count => 1, iq_count => 1, element => Request}),
157-
assert_event(out, Alice, #{stanza_count => 1, iq_count => 1, element => Response}).
156+
assert_event(in, Alice, #{stanza_count => 1, iq_count => 1}, Request),
157+
assert_event(out, Alice, #{stanza_count => 1, iq_count => 1}, Response).
158158

159159
iq_error(Config) ->
160160
escalus:fresh_story(Config, [{alice, 1}], fun iq_error_story/1).
@@ -164,9 +164,8 @@ iq_error_story(Alice) ->
164164
escalus:send(Alice, Request),
165165
Error = escalus_client:wait_for_stanza(Alice),
166166
escalus:assert(is_error, [<<"cancel">>, <<"service-unavailable">>], Error),
167-
assert_event(in, Alice, #{stanza_count => 1, iq_count => 1, element => Request}),
168-
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, iq_error_count => 1,
169-
element => Error}).
167+
assert_event(in, Alice, #{stanza_count => 1, iq_count => 1}, Request),
168+
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, iq_error_count => 1}, Error).
170169

171170
message_bounced(Config) ->
172171
escalus:fresh_story_with_config(Config, [{alice, 1}, {bob, 1}], fun message_bounced_story/3).
@@ -176,39 +175,42 @@ message_bounced_story(Config, Alice, Bob) ->
176175
escalus_client:send(Alice, escalus_stanza:chat_to(Bob, <<"Hi!">>)),
177176
Error = escalus_client:wait_for_stanza(Alice),
178177
escalus:assert(is_error, [<<"cancel">>, <<"service-unavailable">>], Error),
179-
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, message_error_count => 1,
180-
element => Error}),
178+
assert_event(out, Alice, #{stanza_count => 1, error_count => 1, message_error_count => 1},
179+
Error),
181180
assert_message_bounced_event(Alice, Bob).
182181

183182
%% C2S instrumentation events
184183

185184
has_child(SubElName, El) ->
186185
exml_query:subelement(El, SubElName) =/= undefined.
187186

188-
assert_event(Dir, ClientOrJid, Measurements) ->
187+
%% Assert exactly one XML stanza event with specific measurements and a JID
188+
assert_event(Dir, ClientOrJid, Measurements, Element = #xmlel{}) ->
189+
assert_event(Dir, ClientOrJid, Measurements, fun(El) -> El =:= Element end);
190+
assert_event(Dir, ClientOrJid, Measurements, CheckElFun) when is_function(CheckElFun, 1)->
189191
Jid = jid:from_binary(escalus_utils:get_jid(ClientOrJid)),
190-
instrument_helper:assert_one(
191-
event_name(Dir), #{host_type => host_type()},
192-
fun(M) -> M =:= Measurements#{jid => Jid, count => 1} end).
193-
192+
Filter = fun(M = #{element := El}) ->
193+
maps:remove(element, M) =:= Measurements#{jid => Jid, count => 1,
194+
host_type => host_type(),
195+
byte_size => exml:xml_size(El)}
196+
andalso CheckElFun(El)
197+
end,
198+
instrument_helper:assert_one(event_name(Dir), labels(), Filter).
199+
200+
%% Assert one or more generic XML stanza events without a JID
194201
assert_events(Dir, CheckElFun) ->
195-
instrument_helper:assert(
196-
event_name(Dir), #{host_type => host_type()},
197-
fun(M = #{element := El}) ->
198-
maps:remove(element, M) =:= #{jid => undefined, count => 1} andalso CheckElFun(El)
199-
end).
200-
201-
assert_event(Dir, ClientOrJid, Measurements, CheckElFun) ->
202-
Jid = jid:from_binary(escalus_utils:get_jid(ClientOrJid)),
203-
instrument_helper:assert_one(
204-
event_name(Dir), #{host_type => host_type()},
205-
fun(M = #{element := El}) ->
206-
maps:remove(element, M) =:= Measurements#{jid => Jid, count => 1}
207-
andalso CheckElFun(El)
208-
end).
209-
210-
event_name(out) -> c2s_element_out;
211-
event_name(in) -> c2s_element_in.
202+
Filter = fun(M = #{element := El}) ->
203+
maps:remove(element, M) =:= #{jid => undefined, count => 1,
204+
host_type => host_type(),
205+
byte_size => exml:xml_size(El)}
206+
andalso CheckElFun(El)
207+
end,
208+
instrument_helper:assert(event_name(Dir), labels(), Filter).
209+
210+
event_name(out) -> xmpp_element_out;
211+
event_name(in) -> xmpp_element_in.
212+
213+
labels() -> #{connection_type => c2s}.
212214

213215
%% SM instrumentation events
214216

Diff for: big_tests/tests/mim_c2s_SUITE.erl

+2-2
Original file line numberDiff line numberDiff line change
@@ -252,5 +252,5 @@ tls_instrumentation_events() ->
252252
common_instrumentation_events() ->
253253
HostType = domain_helper:host_type(),
254254
[{c2s_message_processed, #{host_type => HostType}},
255-
{xmpp_element_size_in, #{connection_type => c2s}},
256-
{xmpp_element_size_out, #{connection_type => c2s}}].
255+
{xmpp_element_in, #{connection_type => c2s}},
256+
{xmpp_element_out, #{connection_type => c2s}}].

Diff for: big_tests/tests/s2s_SUITE.erl

+4-9
Original file line numberDiff line numberDiff line change
@@ -599,12 +599,9 @@ assert_events(TS, Config) ->
599599
Opts2 = Opts#{expected_count => element_count(TLS)},
600600
MimDomain = domain_helper:domain(),
601601
DomainFilter = fun(#{lserver := LServer}) -> LServer =:= MimDomain end,
602-
instrument_helper:assert(s2s_element_in, #{}, DomainFilter, Opts2),
603-
instrument_helper:assert(s2s_element_out, #{}, DomainFilter, Opts2),
604-
605602
CombinedFilter = fun(M) -> DomainFilter(M) andalso SizeFilter(M) end,
606-
instrument_helper:assert(xmpp_element_size_out, Labels, CombinedFilter, Opts2),
607-
instrument_helper:assert(xmpp_element_size_in, Labels, CombinedFilter, Opts2).
603+
instrument_helper:assert(xmpp_element_in, Labels, CombinedFilter, Opts2),
604+
instrument_helper:assert(xmpp_element_out, Labels, CombinedFilter, Opts2).
608605

609606
data_events(true) -> {tls_data_in, tls_data_out};
610607
data_events(false) -> {tcp_data_in, tcp_data_out}.
@@ -668,12 +665,10 @@ group_with_tls(node1_tls_optional_node2_tls_required_trusted_with_cachain) -> tr
668665
group_with_tls(_GN) -> false.
669666

670667
tested_events() ->
671-
[{xmpp_element_size_in, #{connection_type => s2s}},
672-
{xmpp_element_size_out, #{connection_type => s2s}},
668+
[{xmpp_element_in, #{connection_type => s2s}},
669+
{xmpp_element_out, #{connection_type => s2s}},
673670
{tls_data_in, #{connection_type => s2s}},
674671
{tls_data_out, #{connection_type => s2s}},
675672
{tcp_data_in, #{connection_type => s2s}},
676673
{tcp_data_out, #{connection_type => s2s}},
677-
{s2s_element_in, #{}},
678-
{s2s_element_out, #{}},
679674
{s2s_auth_failed, #{}}].

0 commit comments

Comments
 (0)