From f4256654498452b5f8b30f2868a5e0df1790721f Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Wed, 30 Mar 2022 14:27:32 -0300 Subject: [PATCH] fix(test): fix flaky test --- .../test/emqx_dashboard_monitor_SUITE.erl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/emqx_dashboard/test/emqx_dashboard_monitor_SUITE.erl b/apps/emqx_dashboard/test/emqx_dashboard_monitor_SUITE.erl index 741622d0e..b75ca412e 100644 --- a/apps/emqx_dashboard/test/emqx_dashboard_monitor_SUITE.erl +++ b/apps/emqx_dashboard/test/emqx_dashboard_monitor_SUITE.erl @@ -158,14 +158,16 @@ auth_header_() -> {"Authorization", "Basic " ++ Basic}. restart_monitor() -> - erlang:exit(erlang:whereis(emqx_dashboard_monitor), killed), - ?assertEqual(ok, wait_new_monitor(10)). + OldMonitor = erlang:whereis(emqx_dashboard_monitor), + erlang:exit(OldMonitor, killed), + ?assertEqual(ok, wait_new_monitor(OldMonitor, 10)). -wait_new_monitor(Count) when Count =< 0 -> timeout; -wait_new_monitor(Count) -> - case is_pid(erlang:whereis(emqx_dashboard_monitor)) of +wait_new_monitor(_OldMonitor, Count) when Count =< 0 -> timeout; +wait_new_monitor(OldMonitor, Count) -> + NewMonitor = erlang:whereis(emqx_dashboard_monitor), + case is_pid(NewMonitor) andalso NewMonitor =/= OldMonitor of true -> ok; false -> timer:sleep(100), - wait_new_monitor(Count - 1) + wait_new_monitor(OldMonitor, Count - 1) end.