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. +