aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/observer/test/observer_SUITE.erl33
1 files changed, 25 insertions, 8 deletions
diff --git a/lib/observer/test/observer_SUITE.erl b/lib/observer/test/observer_SUITE.erl
index 707ab1cf0d..b91182feee 100644
--- a/lib/observer/test/observer_SUITE.erl
+++ b/lib/observer/test/observer_SUITE.erl
@@ -107,6 +107,9 @@ appup_file(Config) when is_list(Config) ->
basic(suite) -> [];
basic(doc) -> [""];
basic(Config) when is_list(Config) ->
+ ProcsBefore = processes(),
+ NumProcsBefore = length(ProcsBefore),
+
ok = observer:start(),
Notebook = setup_whitebox_testing(),
@@ -116,11 +119,11 @@ basic(Config) when is_list(Config) ->
0 = wxNotebook:getSelection(Notebook),
timer:sleep(500),
Check = fun(N, TestMore) ->
- ok = wxNotebook:advanceSelection(Notebook),
TestMore andalso
test_page(wxNotebook:getPageText(Notebook, N),
wxNotebook:getCurrentPage(Notebook)),
- timer:sleep(200)
+ timer:sleep(200),
+ ok = wxNotebook:advanceSelection(Notebook)
end,
%% Just verify that we can toogle trough all pages
[_|_] = [Check(N, false) || N <- lists:seq(1, Count)],
@@ -128,9 +131,22 @@ basic(Config) when is_list(Config) ->
Frame = get_top_level_parent(Notebook),
{W,H} = wxWindow:getSize(Frame),
wxWindow:setSize(Frame, W+10, H+10),
- [_|_] = [Check(N, true) || N <- lists:seq(1, Count)],
-
- ok = observer:stop().
+ [_|_] = [Check(N, true) || N <- lists:seq(0, Count-1)],
+
+ ok = observer:stop(),
+ timer:sleep(2000), %% stop is async
+ ProcsAfter = processes(),
+ NumProcsAfter = length(ProcsAfter),
+ if NumProcsAfter=/=NumProcsBefore ->
+ ct:log("Before but not after:~n~p~n",
+ [[{P,process_info(P)} || P <- ProcsBefore -- ProcsAfter]]),
+ ct:log("After but not before:~n~p~n",
+ [[{P,process_info(P)} || P <- ProcsAfter -- ProcsBefore]]),
+ ct:fail("leaking processes");
+ true ->
+ ok
+ end,
+ ok.
test_page("Load Charts" ++ _, _Window) ->
%% Just let it display some info and hopefully it doesn't crash
@@ -163,8 +179,11 @@ test_page("Processes" ++ _, _Window) ->
timer:sleep(1000), %% Give it time to refresh
ok;
-test_page("Table" ++ _, _Window) ->
+test_page(_Title = "Table" ++ _, _Window) ->
Tables = [ets:new(list_to_atom("Test-" ++ [C]), [public]) || C <- lists:seq($A, $Z)],
+ Table = lists:nth(3, Tables),
+ ets:insert(Table, [{N,100-N} || N <- lists:seq(1,100)]),
+
Active = get_active(),
Active ! refresh_interval,
ChangeSort = fun(N) ->
@@ -174,8 +193,6 @@ test_page("Table" ++ _, _Window) ->
end,
[ChangeSort(N) || N <- lists:seq(1,5) ++ [0]],
timer:sleep(1000),
- Table = lists:nth(3, Tables),
- ets:insert(Table, [{N,100-N} || N <- lists:seq(1,100)]),
Focus = #wx{event=#wxList{type=command_list_item_selected, itemIndex=2}},
Active ! Focus,
Activate = #wx{event=#wxList{type=command_list_item_activated, itemIndex=2}},