From 1e27098e8c70ec7b18336669a7e7fed81d15b667 Mon Sep 17 00:00:00 2001 From: spring2maz Date: Tue, 5 Mar 2019 04:28:01 +0100 Subject: [PATCH] Drain msg queue for deterministic test --- test/emqx_misc_tests.erl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/emqx_misc_tests.erl b/test/emqx_misc_tests.erl index d0da45fba..038180b5b 100644 --- a/test/emqx_misc_tests.erl +++ b/test/emqx_misc_tests.erl @@ -47,12 +47,14 @@ timer_cancel_flush_test() -> end. shutdown_disabled_test() -> + ok = drain(), self() ! foo, ?assertEqual(continue, conn_proc_mng_policy(0)), receive foo -> ok end, ?assertEqual(hibernate, conn_proc_mng_policy(0)). message_queue_too_long_test() -> + ok = drain(), self() ! foo, self() ! bar, ?assertEqual({shutdown, message_queue_too_long}, @@ -63,3 +65,18 @@ message_queue_too_long_test() -> conn_proc_mng_policy(L) -> emqx_misc:conn_proc_mng_policy(#{message_queue_len => L}). + +%% drain self() msg queue for deterministic test behavior +drain() -> + _ = drain([]), % maybe log + ok. + +drain(Acc) -> + receive + Msg -> + drain([Msg | Acc]) + after + 0 -> + lists:reverse(Acc) + end. +