From 04c74b28f2ef3a031e606050d12522ffd537fe86 Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Tue, 31 Mar 2020 11:37:23 -0500 Subject: [PATCH] Replace Process.sleep() with Helpers.wait_for(pid) --- .../test/farmbot_ext/amqp/auto_sync_channel_test.exs | 4 ++-- farmbot_ext/test/test_helper.exs | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/farmbot_ext/test/farmbot_ext/amqp/auto_sync_channel_test.exs b/farmbot_ext/test/farmbot_ext/amqp/auto_sync_channel_test.exs index a9c17719..9edcb60e 100644 --- a/farmbot_ext/test/farmbot_ext/amqp/auto_sync_channel_test.exs +++ b/farmbot_ext/test/farmbot_ext/amqp/auto_sync_channel_test.exs @@ -55,7 +55,7 @@ defmodule AutoSyncChannelTest do expect(Preloader, :preload_all, 1, fn -> :ok end) pid = generate_pid() send(pid, msg) - Process.sleep(5) + Helpers.wait_for(pid) end test "basic_cancel", do: ensure_response_to({:basic_cancel, :anything}) @@ -153,6 +153,6 @@ defmodule AutoSyncChannelTest do :ok end) - Process.sleep(1200) + Helpers.wait_for(pid) end end diff --git a/farmbot_ext/test/test_helper.exs b/farmbot_ext/test/test_helper.exs index 378b7f50..9b5bff4c 100644 --- a/farmbot_ext/test/test_helper.exs +++ b/farmbot_ext/test/test_helper.exs @@ -23,7 +23,7 @@ defmodule Helpers do # Maybe I could use `start_supervised`? # https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html#start_supervised/2 - @wait_time 13 + @wait_time 15 # Base case: We have a pid def wait_for(pid) when is_pid(pid), do: check_on_mbox(pid) # Failure case: We failed to find a pid for a module. @@ -37,8 +37,11 @@ defmodule Helpers do wait(pid, Process.info(pid, :message_queue_len)) end - # Exit recursive loop - defp wait(_, {:message_queue_len, 0}), do: Process.sleep(@wait_time) + # Exit recursive loop (mbox is clear) + defp wait(_, {:message_queue_len, 0}), do: Process.sleep(@wait_time * 3) + # Exit recursive loop (pid is dead) + defp wait(_, nil), do: Process.sleep(@wait_time * 3) + # Continue recursive loop defp wait(pid, {:message_queue_len, _n}), do: check_on_mbox(pid)