4
%% Copyright Ericsson AB 2009-2011. All Rights Reserved.
6
%% The contents of this file are subject to the Erlang Public License,
7
%% Version 1.1, (the "License"); you may not use this file except in
8
%% compliance with the License. You should have received a copy of the
9
%% Erlang Public License along with this software. If not, it can be
10
%% retrieved online at http://www.erlang.org/.
12
%% Software distributed under the License is distributed on an "AS IS"
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
%% the License for the specific language governing rights and limitations
21
-export([all/0, suite/0,groups/0,init_per_group/2,end_per_group/2,
22
init_per_suite/1, end_per_suite/1,
23
init_per_testcase/2, end_per_testcase/2]).
27
-include("et_test_lib.hrl").
29
%% Initialization functions.
30
init_per_suite(Config) ->
31
et_test_lib:wx_init_per_suite(Config).
33
end_per_suite(Config) ->
34
et_test_lib:wx_end_per_suite(Config).
36
init_per_testcase(Func,Config) ->
37
et_test_lib:init_per_testcase(Func,Config).
38
end_per_testcase(Func,Config) ->
39
et_test_lib:end_per_testcase(Func,Config).
41
%% SUITE specification
42
suite() -> [{ct_hooks,[ts_install_cth]}].
50
init_per_group(_GroupName, Config) ->
53
end_per_group(_GroupName, Config) ->
59
%% Display all windows and see if something crashes
60
start_all_windows(TestInfo) when is_atom(TestInfo) ->
61
et_test_lib:tc_info(TestInfo);
62
start_all_windows(_Config) ->
63
process_flag(trap_exit, true),
64
{ok, ViewerPid} = ?msym({ok, _}, et_viewer:start_link([])),
65
CollectorPid = et_viewer:get_collector_pid(ViewerPid),
66
?msym({ok, _}, et_collector:report_event(CollectorPid,
72
timer:sleep(timer:seconds(1)),
74
{ok, EventPid1} = ?msym({ok, _}, et_viewer:open_event(ViewerPid, 1)),
75
{ok, EventPid2} = ?msym({ok, _}, et_viewer:open_event(ViewerPid, 1)),
76
timer:sleep(timer:seconds(10)),
78
?msym(alive, process_state(ViewerPid)),
79
?msym(alive, process_state(CollectorPid)),
80
?msym(alive, process_state(EventPid1)),
81
?msym(alive, process_state(EventPid2)),
83
?m(ok, et_wx_contents_viewer:stop(EventPid1)),
84
timer:sleep(timer:seconds(1)),
86
?msym(alive, process_state(ViewerPid)),
87
?msym(alive, process_state(CollectorPid)),
88
?msym(dead, process_state(EventPid1)),
89
?msym(alive, process_state(EventPid2)),
91
?m(ok, et_viewer:stop(ViewerPid)),
92
timer:sleep(timer:seconds(1)),
94
?msym(dead, process_state(ViewerPid)),
95
?msym(dead, process_state(CollectorPid)),
96
?msym(dead, process_state(EventPid1)),
97
?msym(dead, process_state(EventPid2)),
99
?m([], et_test_lib:flush()),
103
process_state(Pid) ->
104
case process_info(Pid, group_leader) of
105
{group_leader, _} -> alive;