summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2017-03-06 17:26:40 +0100
committerMichael Klishin <michael@clojurewerkz.org>2017-03-22 23:38:00 +0300
commit22a636849f541a7080a779bedaf8551f95d87b2d (patch)
tree4900eb9c854652b32b839f49b9668e7f65dba0be
parent9848921cf6d82fb6bb0e5aa3c3dae48d8d0f8107 (diff)
downloadrabbitmq-server-git-22a636849f541a7080a779bedaf8551f95d87b2d.tar.gz
unit_inbroker_SUITE: Adapt channel_statistics testcase after gc improvements
-rw-r--r--test/unit_inbroker_SUITE.erl48
1 files changed, 34 insertions, 14 deletions
diff --git a/test/unit_inbroker_SUITE.erl b/test/unit_inbroker_SUITE.erl
index 9d0b84e733..32738e1133 100644
--- a/test/unit_inbroker_SUITE.erl
+++ b/test/unit_inbroker_SUITE.erl
@@ -2929,34 +2929,54 @@ channel_statistics1(_Config) ->
%% Check the stats reflect that
Check2 = fun() ->
- [{{Ch, QRes}, 1, 0, 0, 0, 0, 0}] = ets:lookup(
- channel_queue_metrics,
- {Ch, QRes}),
- [{{Ch, X}, 1, 0, 0}] = ets:lookup(
- channel_exchange_metrics,
- {Ch, X}),
- [{{Ch, {QRes, X}}, 1}] = ets:lookup(
- channel_queue_exchange_metrics,
- {Ch, {QRes, X}})
+ [{{Ch, QRes}, 1, 0, 0, 0, 0, 0, 0}] = ets:lookup(
+ channel_queue_metrics,
+ {Ch, QRes}),
+ [{{Ch, X}, 1, 0, 0, 0}] = ets:lookup(
+ channel_exchange_metrics,
+ {Ch, X}),
+ [{{Ch, {QRes, X}}, 1, 0}] = ets:lookup(
+ channel_queue_exchange_metrics,
+ {Ch, {QRes, X}})
end,
test_ch_metrics(Check2, ?TIMEOUT),
- %% Check the stats remove stuff on queue deletion
+ %% Check the stats are marked for removal on queue deletion.
rabbit_channel:do(Ch, #'queue.delete'{queue = QName}),
Check3 = fun() ->
+ [{{Ch, QRes}, 1, 0, 0, 0, 0, 0, 1}] = ets:lookup(
+ channel_queue_metrics,
+ {Ch, QRes}),
+ [{{Ch, X}, 1, 0, 0, 0}] = ets:lookup(
+ channel_exchange_metrics,
+ {Ch, X}),
+ [{{Ch, {QRes, X}}, 1, 1}] = ets:lookup(
+ channel_queue_exchange_metrics,
+ {Ch, {QRes, X}})
+ end,
+ test_ch_metrics(Check3, ?TIMEOUT),
+
+ %% Check the garbage collection removes stuff.
+ force_metric_gc(),
+ Check4 = fun() ->
[] = ets:lookup(channel_queue_metrics, {Ch, QRes}),
- [{{Ch, X}, 1, 0, 0}] = ets:lookup(
- channel_exchange_metrics,
- {Ch, X}),
+ [{{Ch, X}, 1, 0, 0, 0}] = ets:lookup(
+ channel_exchange_metrics,
+ {Ch, X}),
[] = ets:lookup(channel_queue_exchange_metrics,
{Ch, {QRes, X}})
end,
- test_ch_metrics(Check3, ?TIMEOUT),
+ test_ch_metrics(Check4, ?TIMEOUT),
rabbit_channel:shutdown(Ch),
dummy_event_receiver:stop(),
passed.
+force_metric_gc() ->
+ timer:sleep(300),
+ rabbit_core_metrics_gc ! start_gc,
+ gen_server:call(rabbit_core_metrics_gc, test).
+
test_ch_metrics(Fun, Timeout) when Timeout =< 0 ->
Fun();
test_ch_metrics(Fun, Timeout) ->