# Copyright(c) 2015-2023 ACCESS CO., LTD. All rights reserved.
defmodule Antikythera.Test.ProcessHelper do
@moduledoc """
Helper functions to work with processes in test code.
"""
def monitor_wait(pid_or_regname) do
pid = if is_pid(pid_or_regname), do: pid_or_regname, else: Process.whereis(pid_or_regname)
Process.monitor(pid)
receive do
{:DOWN, _monitor_ref, :process, ^pid, _reason} -> :ok
after
10_000 ->
raise "DOWN message about #{inspect(pid_or_regname)} has not come in within 10 seconds"
end
end
def flush() do
receive do
_ -> flush()
after
0 -> :ok
end
end
end