@@ -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
10094end
0 commit comments