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)
|
expect(Preloader, :preload_all, 1, fn -> :ok end)
|
||||||
pid = generate_pid()
|
pid = generate_pid()
|
||||||
send(pid, msg)
|
send(pid, msg)
|
||||||
Process.sleep(5)
|
Helpers.wait_for(pid)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "basic_cancel", do: ensure_response_to({:basic_cancel, :anything})
|
test "basic_cancel", do: ensure_response_to({:basic_cancel, :anything})
|
||||||
|
@ -153,6 +153,6 @@ defmodule AutoSyncChannelTest do
|
||||||
:ok
|
:ok
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Process.sleep(1200)
|
Helpers.wait_for(pid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,7 +23,7 @@ defmodule Helpers do
|
||||||
# Maybe I could use `start_supervised`?
|
# Maybe I could use `start_supervised`?
|
||||||
# https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html#start_supervised/2
|
# https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html#start_supervised/2
|
||||||
|
|
||||||
@wait_time 13
|
@wait_time 15
|
||||||
# Base case: We have a pid
|
# Base case: We have a pid
|
||||||
def wait_for(pid) when is_pid(pid), do: check_on_mbox(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.
|
# 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))
|
wait(pid, Process.info(pid, :message_queue_len))
|
||||||
end
|
end
|
||||||
|
|
||||||
# Exit recursive loop
|
# Exit recursive loop (mbox is clear)
|
||||||
defp wait(_, {:message_queue_len, 0}), do: Process.sleep(@wait_time)
|
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
|
# Continue recursive loop
|
||||||
defp wait(pid, {:message_queue_len, _n}), do: check_on_mbox(pid)
|
defp wait(pid, {:message_queue_len, _n}), do: check_on_mbox(pid)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue