Skip to content

Commit 0458a07

Browse files
committed
Add tests for CallbackTracingServer
1 parent 1d33027 commit 0458a07

1 file changed

Lines changed: 37 additions & 43 deletions

File tree

test/gen_servers/callback_tracing_server_test.exs

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -14,38 +14,47 @@ defmodule LiveDebugger.GenServers.CallbackTracingServerTest do
1414
GenServer.whereis(CallbackTracingServer)
1515
end)
1616

17-
CallbackTracingServer.start_link()
17+
start_supervised(CallbackTracingServer)
18+
1819
:ok
1920
end
2021

21-
describe "table!/1" do
22-
test "creates and remembers table for given pid" do
23-
pid =
24-
spawn(fn ->
25-
receive do
26-
:stop ->
27-
:ok
28-
end
29-
end)
22+
setup do
23+
pid =
24+
spawn(fn ->
25+
receive do
26+
:stop ->
27+
:ok
28+
end
29+
end)
30+
31+
on_exit(fn -> send(pid, :stop) end)
32+
33+
%{pid: pid}
34+
end
3035

36+
test "gen server is started" do
37+
pid = GenServer.whereis(CallbackTracingServer)
38+
assert {:error, {:already_started, ^pid}} = CallbackTracingServer.start_link()
39+
assert is_pid(pid)
40+
end
41+
42+
describe "table!/1" do
43+
test "creates and remembers table for given pid", %{pid: pid} do
3144
ref1 = CallbackTracingServer.table!(pid)
3245

3346
assert ref1 == CallbackTracingServer.table!(pid)
3447
assert [] == :ets.tab2list(ref1)
35-
36-
send(pid, :stop)
3748
end
3849

39-
test "creates different tables for different pids" do
40-
[pid1, pid2] =
41-
for _ <- 1..2 do
42-
spawn(fn ->
43-
receive do
44-
:stop ->
45-
:ok
46-
end
47-
end)
48-
end
50+
test "creates different tables for different pids", %{pid: pid1} do
51+
pid2 =
52+
spawn(fn ->
53+
receive do
54+
:stop ->
55+
:ok
56+
end
57+
end)
4958

5059
ref1 = CallbackTracingServer.table!(pid1)
5160
ref2 = CallbackTracingServer.table!(pid2)
@@ -56,45 +65,30 @@ defmodule LiveDebugger.GenServers.CallbackTracingServerTest do
5665
assert [] == :ets.tab2list(ref1)
5766
assert [] == :ets.tab2list(ref2)
5867

59-
send(pid1, :stop)
6068
send(pid2, :stop)
6169
end
6270

63-
test "removes table after process exits" do
64-
pid =
65-
spawn(fn ->
66-
receive do
67-
:stop ->
68-
:ok
69-
end
70-
end)
71-
71+
test "removes table after process exits", %{pid: pid} do
7272
ref = CallbackTracingServer.table!(pid)
7373

7474
send(pid, :stop)
7575

76-
Process.sleep(1000)
76+
Process.sleep(200)
7777

7878
assert_raise ArgumentError, fn -> :ets.tab2list(ref) end
7979
assert ref != CallbackTracingServer.table!(pid)
8080
end
8181
end
8282

83-
test "delete_table!/1" do
84-
pid =
85-
spawn(fn ->
86-
receive do
87-
:stop ->
88-
:ok
89-
end
90-
end)
91-
83+
test "delete_table!/1", %{pid: pid} do
9284
ref = CallbackTracingServer.table!(pid)
9385

9486
assert :ok == CallbackTracingServer.delete_table!(pid)
9587
assert_raise ArgumentError, fn -> :ets.tab2list(ref) end
9688
assert ref != CallbackTracingServer.table!(pid)
89+
end
9790

98-
send(pid, :stop)
91+
test "ping!/1" do
92+
assert :ok == CallbackTracingServer.ping!()
9993
end
10094
end

0 commit comments

Comments
 (0)