Replace Process.sleep() with Helpers.wait_for(pid)
parent
e5a29361d2
commit
04c74b28f2
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue