X-Git-Url: https://git.xandkar.net/?p=beam_stats.git;a=blobdiff_plain;f=test%2Fbeam_stats_consumer_statsd_SUITE.erl;h=20a2de7bb7dc92ad62d1951276e6f22caad59dce;hp=dd01455894022b87d2e5e9b6020243c9761bcaeb;hb=4d24f3b714a452a69f5567747241ad75d044422c;hpb=a8d431d1d7c542f66aeb1c272a5a2edf3cd9130d diff --git a/test/beam_stats_consumer_statsd_SUITE.erl b/test/beam_stats_consumer_statsd_SUITE.erl index dd01455..20a2de7 100644 --- a/test/beam_stats_consumer_statsd_SUITE.erl +++ b/test/beam_stats_consumer_statsd_SUITE.erl @@ -52,7 +52,7 @@ t_send(_Cfg) -> BEAMStats = #beam_stats { timestamp = {1, 2, 3} , node_id = 'node_foo@host_bar' - , memory = [{mem_type_foo, 1}] + , memory = [{mem_type_foo, 1}, {mem_type_bar, 2}, {mem_type_baz, 3}] , io_bytes_in = 3 , io_bytes_out = 7 , context_switches = 5 @@ -67,18 +67,37 @@ t_send(_Cfg) -> {_, State1} = beam_stats_consumer_statsd:init(Options), State2 = beam_stats_consumer_statsd:consume(BEAMStatsQ, State1), {} = beam_stats_consumer_statsd:terminate(State2), - ResultOfReceive = gen_udp:recv(ServerSocket, 0), + ResultOfReceive1 = gen_udp:recv(ServerSocket, 0), + {ok, {_, _, PacketReceived1}} = ResultOfReceive1, + ResultOfReceive2 = gen_udp:recv(ServerSocket, 0), + {ok, {_, _, PacketReceived2}} = ResultOfReceive2, ok = gen_udp:close(ServerSocket), - {ok, {_, _, Data}} = ResultOfReceive, - ct:log("Packet: ~n~s~n", [Data]), - << "beam_stats.node_foo_host_bar.io.bytes_in:3|g\n" - , "beam_stats.node_foo_host_bar.io.bytes_out:7|g\n" - , "beam_stats.node_foo_host_bar.context_switches:5|g\n" - , "beam_stats.node_foo_host_bar.reductions:9|g\n" - , "beam_stats.node_foo_host_bar.run_queue:17|g\n" - , "beam_stats.node_foo_host_bar.memory.mem_type_foo:1|g\n" - , "beam_stats.node_foo_host_bar.ets_table.size.foo.foo:5|g\n" - , "beam_stats.node_foo_host_bar.ets_table.memory.foo.foo:25|g\n" - , "beam_stats.node_foo_host_bar.ets_table.size.bar.37:8|g\n" - , "beam_stats.node_foo_host_bar.ets_table.memory.bar.37:38|g\n" - >> = Data. + ct:log("PacketReceived1: ~n~s~n", [PacketReceived1]), + ct:log("PacketReceived2: ~n~s~n", [PacketReceived2]), + PacketsCombined = <>, + ct:log("PacketsCombined: ~n~s~n", [PacketsCombined]), + MsgsExpected = + [ <<"beam_stats.node_foo_host_bar.io.bytes_in:3|g">> + , <<"beam_stats.node_foo_host_bar.io.bytes_out:7|g">> + , <<"beam_stats.node_foo_host_bar.context_switches:5|g">> + , <<"beam_stats.node_foo_host_bar.reductions:9|g">> + , <<"beam_stats.node_foo_host_bar.run_queue:17|g">> + , <<"beam_stats.node_foo_host_bar.memory.mem_type_foo:1|g">> + , <<"beam_stats.node_foo_host_bar.memory.mem_type_bar:2|g">> + , <<"beam_stats.node_foo_host_bar.memory.mem_type_baz:3|g">> + , <<"beam_stats.node_foo_host_bar.ets_table.size.foo.foo:5|g">> + , <<"beam_stats.node_foo_host_bar.ets_table.memory.foo.foo:25|g">> + , <<"beam_stats.node_foo_host_bar.ets_table.size.bar.37:8|g">> + , <<"beam_stats.node_foo_host_bar.ets_table.memory.bar.37:38|g">> + ], + MsgsReceived = binary:split(PacketsCombined, <<"\n">>, [global, trim]), + RemoveExpectedFromReceived = + fun (Expected, Received) -> + ct:log( + "Looking for expected msg ~p in remaining received ~p~n", + [Expected, Received] + ), + true = lists:member(Expected, Received), + Received -- [Expected] + end, + [] = lists:foldl(RemoveExpectedFromReceived, MsgsReceived, MsgsExpected).