|
|
@@ -8,40 +8,44 @@ defmodule GenReset.TrackerTest do
|
|
|
|
|
|
test "adding pids" do
|
|
|
assert GenReset.Tracker.add(self()) == :ok
|
|
|
- assert GenReset.Tracker.pids == [self()]
|
|
|
+ assert GenReset.Tracker.pids() == [self()]
|
|
|
end
|
|
|
|
|
|
test "removing existing pid" do
|
|
|
assert GenReset.Tracker.add(self()) == :ok
|
|
|
- assert GenReset.Tracker.pids == [self()]
|
|
|
+ assert GenReset.Tracker.pids() == [self()]
|
|
|
assert GenReset.Tracker.remove(self()) == :ok
|
|
|
- assert GenReset.Tracker.pids == []
|
|
|
-
|
|
|
+ assert GenReset.Tracker.pids() == []
|
|
|
end
|
|
|
|
|
|
test "dead pid is automatically removed" do
|
|
|
- pid = Process.spawn(fn ->
|
|
|
- receive do
|
|
|
- _ -> :ok
|
|
|
- end
|
|
|
- end, [])
|
|
|
+ pid =
|
|
|
+ Process.spawn(
|
|
|
+ fn ->
|
|
|
+ receive do
|
|
|
+ _ -> :ok
|
|
|
+ end
|
|
|
+ end,
|
|
|
+ []
|
|
|
+ )
|
|
|
+
|
|
|
GenReset.Tracker.add(pid)
|
|
|
- assert GenReset.Tracker.pids == [pid]
|
|
|
+ assert GenReset.Tracker.pids() == [pid]
|
|
|
Process.exit(pid, :kill)
|
|
|
+
|
|
|
TimeHelper.wait_until(fn ->
|
|
|
- assert GenReset.Tracker.pids == []
|
|
|
+ assert GenReset.Tracker.pids() == []
|
|
|
end)
|
|
|
- end
|
|
|
+ end
|
|
|
|
|
|
- test "resetting all pids triggers reset" do
|
|
|
- GenReset.Tracker.add(self())
|
|
|
- Process.spawn(fn -> GenReset.Tracker.reset() end, [])
|
|
|
- assert_receive {:"$gen_call", {_pid, _ref}, :"$gen_reset"}
|
|
|
- end
|
|
|
+ test "resetting all pids triggers reset" do
|
|
|
+ GenReset.Tracker.add(self())
|
|
|
+ Process.spawn(fn -> GenReset.Tracker.reset() end, [])
|
|
|
+ assert_receive {:"$gen_call", {_pid, _ref}, :"$gen_reset"}
|
|
|
+ end
|
|
|
end
|
|
|
|
|
|
defmodule TimeHelper do
|
|
|
-
|
|
|
def wait_until(fun), do: wait_until(500, fun)
|
|
|
|
|
|
def wait_until(0, fun), do: fun.()
|
|
|
@@ -55,5 +59,4 @@ defmodule TimeHelper do
|
|
|
wait_until(max(0, timeout - 10), fun)
|
|
|
end
|
|
|
end
|
|
|
-
|
|
|
-end
|
|
|
+end
|