~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

Viewing changes to lib/common_test/test/ct_sequence_1_SUITE.erl

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
%%
 
2
%% %CopyrightBegin%
 
3
%%
 
4
%% Copyright Ericsson AB 2009-2011. All Rights Reserved.
 
5
%%
 
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/.
 
11
%%
 
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
 
15
%% under the License.
 
16
%%
 
17
%% %CopyrightEnd%
 
18
%%
 
19
 
 
20
%%%-------------------------------------------------------------------
 
21
%%% File: ct_sequence_1_SUITE
 
22
%%%
 
23
%%% Description:
 
24
%%% Test sequences
 
25
%%%
 
26
%%% The suites used for the test are located in the data directory.
 
27
%%%-------------------------------------------------------------------
 
28
-module(ct_sequence_1_SUITE).
 
29
 
 
30
-compile(export_all).
 
31
 
 
32
-include_lib("common_test/include/ct.hrl").
 
33
-include_lib("common_test/include/ct_event.hrl").
 
34
 
 
35
-define(eh, ct_test_support_eh).
 
36
 
 
37
%%--------------------------------------------------------------------
 
38
%% TEST SERVER CALLBACK FUNCTIONS
 
39
%%--------------------------------------------------------------------
 
40
 
 
41
%%--------------------------------------------------------------------
 
42
%% Description: Since Common Test starts another Test Server
 
43
%% instance, the tests need to be performed on a separate node (or
 
44
%% there will be clashes with logging processes etc).
 
45
%%--------------------------------------------------------------------
 
46
init_per_suite(Config) ->
 
47
    Config1 = ct_test_support:init_per_suite(Config),
 
48
    Config1.
 
49
 
 
50
end_per_suite(Config) ->
 
51
    ct_test_support:end_per_suite(Config).
 
52
 
 
53
init_per_testcase(TestCase, Config) ->
 
54
    ct_test_support:init_per_testcase(TestCase, Config).
 
55
 
 
56
end_per_testcase(TestCase, Config) ->
 
57
    ct_test_support:end_per_testcase(TestCase, Config).
 
58
 
 
59
suite() -> [{ct_hooks,[ts_install_cth]}].
 
60
 
 
61
all() -> 
 
62
    [subgroup_return_fail, subgroup_init_fail,
 
63
     subgroup_after_failed_case,
 
64
     case_after_subgroup_return_fail,
 
65
     case_after_subgroup_fail_init].
 
66
 
 
67
groups() -> 
 
68
    [].
 
69
 
 
70
init_per_group(_GroupName, Config) ->
 
71
        Config.
 
72
 
 
73
end_per_group(_GroupName, Config) ->
 
74
        Config.
 
75
 
 
76
 
 
77
%%--------------------------------------------------------------------
 
78
%% TEST CASES
 
79
%%--------------------------------------------------------------------
 
80
 
 
81
%%%-----------------------------------------------------------------
 
82
%%%
 
83
 
 
84
subgroup_return_fail(Config) when is_list(Config) ->
 
85
    execute(subgroup_return_fail,
 
86
            "subgroups_1_SUITE", subgroup_return_fail,
 
87
            Config).
 
88
 
 
89
%%%-----------------------------------------------------------------
 
90
%%%
 
91
 
 
92
subgroup_init_fail(Config) when is_list(Config) ->
 
93
    execute(subgroup_init_fail,
 
94
            "subgroups_1_SUITE", subgroup_init_fail,
 
95
            Config).
 
96
 
 
97
%%%-----------------------------------------------------------------
 
98
%%%
 
99
 
 
100
subgroup_after_failed_case(Config) when is_list(Config) ->
 
101
    execute(subgroup_after_failed_case,
 
102
            "subgroups_1_SUITE", subgroup_after_failed_case,
 
103
            Config).
 
104
 
 
105
%%%-----------------------------------------------------------------
 
106
%%%
 
107
 
 
108
case_after_subgroup_return_fail(Config) when is_list(Config) ->
 
109
    execute(case_after_subgroup_return_fail,
 
110
            "subgroups_1_SUITE", case_after_subgroup_return_fail,
 
111
            Config).
 
112
 
 
113
%%%-----------------------------------------------------------------
 
114
%%%
 
115
 
 
116
case_after_subgroup_fail_init(Config) when is_list(Config) ->
 
117
    execute(case_after_subgroup_fail_init,
 
118
            "subgroups_1_SUITE", case_after_subgroup_fail_init,
 
119
            Config).
 
120
 
 
121
%%%-----------------------------------------------------------------
 
122
%%% HELP FUNCTIONS
 
123
%%%-----------------------------------------------------------------
 
124
 
 
125
execute(TestCase, SuiteName, Group, Config) ->
 
126
    DataDir = ?config(data_dir, Config),
 
127
    Suite = filename:join(DataDir, SuiteName),
 
128
 
 
129
    {Opts,ERPid} = setup([{suite,Suite},{group,Group},{label,TestCase}], Config),
 
130
    ok = ct_test_support:run(Opts, Config),
 
131
    Events = ct_test_support:get_events(ERPid, Config),
 
132
 
 
133
    ct_test_support:log_events(TestCase,
 
134
                               reformat(Events, ?eh),
 
135
                               ?config(priv_dir, Config)),
 
136
 
 
137
    TestEvents = events_to_check(TestCase),
 
138
    ok = ct_test_support:verify_events(TestEvents, Events, Config).
 
139
 
 
140
setup(Test, Config) ->
 
141
    Opts0 = ct_test_support:get_opts(Config),
 
142
    Level = ?config(trace_level, Config),
 
143
    EvHArgs = [{cbm,ct_test_support},{trace_level,Level}],
 
144
    Opts = Opts0 ++ [{event_handler,{?eh,EvHArgs}} | Test],
 
145
    ERPid = ct_test_support:start_event_receiver(Config),
 
146
    {Opts,ERPid}.
 
147
 
 
148
reformat(Events, EH) ->
 
149
    ct_test_support:reformat(Events, EH).
 
150
%reformat(Events, _EH) ->
 
151
%    Events.
 
152
 
 
153
%%%-----------------------------------------------------------------
 
154
%%% TEST EVENTS
 
155
%%%-----------------------------------------------------------------
 
156
events_to_check(Test) ->
 
157
    %% 2 tests (ct:run_test + script_start) is default
 
158
    events_to_check(Test, 2).
 
159
 
 
160
events_to_check(_, 0) ->
 
161
    [];
 
162
events_to_check(Test, N) ->
 
163
    test_events(Test) ++ events_to_check(Test, N-1).
 
164
 
 
165
test_events(subgroup_return_fail) ->
 
166
    [
 
167
     {?eh,start_logging,{'DEF','RUNDIR'}},
 
168
     {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
 
169
     {?eh,start_info,{1,1,2}},
 
170
     [{?eh,tc_start,
 
171
       {subgroups_1_SUITE,{init_per_group,subgroup_return_fail,[sequence]}}},
 
172
      {?eh,tc_done,
 
173
       {subgroups_1_SUITE,{init_per_group,subgroup_return_fail,[sequence]},ok}},
 
174
      [{?eh,tc_start,
 
175
        {subgroups_1_SUITE,{init_per_group,return_fail,[]}}},
 
176
       {?eh,tc_done,
 
177
        {subgroups_1_SUITE,{init_per_group,return_fail,[]},ok}},
 
178
       {?eh,tc_start,{subgroups_1_SUITE,failing_tc}},
 
179
       {?eh,tc_done,
 
180
        {subgroups_1_SUITE,failing_tc,{failed,{error,{{badmatch,3},'_'}}}}},
 
181
       {?eh,test_stats,{0,1,{0,0}}},
 
182
       {?eh,tc_start,
 
183
        {subgroups_1_SUITE,{end_per_group,return_fail,[]}}},
 
184
       {?eh,tc_done,{subgroups_1_SUITE,{end_per_group,return_fail,[]},
 
185
                     {return_group_result,failed}}}],
 
186
      {?eh,tc_auto_skip,
 
187
       {subgroups_1_SUITE,ok_tc,{group_result,return_fail,failed}}},
 
188
      {?eh,test_stats,{0,1,{0,1}}},
 
189
      {?eh,tc_start,
 
190
       {subgroups_1_SUITE,{end_per_group,subgroup_return_fail,[sequence]}}},
 
191
      {?eh,tc_done,
 
192
       {subgroups_1_SUITE,{end_per_group,subgroup_return_fail,[sequence]},
 
193
        {return_group_result,failed}}}],
 
194
     {?eh,test_done,{'DEF','STOP_TIME'}},
 
195
     {?eh,stop_logging,[]}
 
196
    ];
 
197
 
 
198
test_events(subgroup_init_fail) ->
 
199
    [
 
200
     {?eh,start_logging,{'DEF','RUNDIR'}},
 
201
     {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
 
202
     {?eh,start_info,{1,1,2}},
 
203
     [{?eh,tc_start,
 
204
       {subgroups_1_SUITE,{init_per_group,subgroup_init_fail,[sequence]}}},
 
205
      {?eh,tc_done,
 
206
       {subgroups_1_SUITE,{init_per_group,subgroup_init_fail,[sequence]},ok}},
 
207
      [{?eh,tc_start,{subgroups_1_SUITE,{init_per_group,fail_init,[]}}},
 
208
       {?eh,tc_done,{subgroups_1_SUITE,{init_per_group,fail_init,[]},
 
209
                     {failed,{error,init_per_group_fails_on_purpose}}}},
 
210
       {?eh,tc_auto_skip,{subgroups_1_SUITE,ok_tc,
 
211
                          {failed,{subgroups_1_SUITE,init_per_group,
 
212
                                   {'EXIT',init_per_group_fails_on_purpose}}}}},
 
213
       {?eh,test_stats,{0,0,{0,1}}},
 
214
       {?eh,tc_auto_skip,{subgroups_1_SUITE,end_per_group,
 
215
             {failed,{subgroups_1_SUITE,init_per_group,
 
216
                      {'EXIT',init_per_group_fails_on_purpose}}}}}],
 
217
      {?eh,tc_auto_skip,{subgroups_1_SUITE,ok_tc,{group_result,fail_init,failed}}},
 
218
      {?eh,test_stats,{0,0,{0,2}}},
 
219
      {?eh,tc_start,{subgroups_1_SUITE,{end_per_group,subgroup_init_fail,[sequence]}}},
 
220
      {?eh,tc_done,{subgroups_1_SUITE,
 
221
                    {end_per_group,subgroup_init_fail,[sequence]},
 
222
                    {return_group_result,failed}}}],
 
223
     {?eh,test_done,{'DEF','STOP_TIME'}},
 
224
     {?eh,stop_logging,[]}
 
225
    ];
 
226
 
 
227
test_events(subgroup_after_failed_case) ->
 
228
    [
 
229
     {?eh,start_logging,{'DEF','RUNDIR'}},
 
230
     {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
 
231
     {?eh,start_info,{1,1,2}},
 
232
     [{?eh,tc_start,{subgroups_1_SUITE,
 
233
                     {init_per_group,subgroup_after_failed_case,[sequence]}}},
 
234
      {?eh,tc_done,{subgroups_1_SUITE,
 
235
                    {init_per_group,subgroup_after_failed_case,[sequence]},ok}},
 
236
      {?eh,tc_start,{subgroups_1_SUITE,failing_tc}},
 
237
      {?eh,tc_done,{subgroups_1_SUITE,failing_tc,{failed,{error,{{badmatch,3},'_'}}}}},
 
238
      {?eh,test_stats,{0,1,{0,0}}},
 
239
      {?eh,tc_auto_skip,{subgroups_1_SUITE,ok_tc,{failed,{subgroups_1_SUITE,failing_tc}}}},
 
240
      {?eh,test_stats,{0,1,{0,1}}},
 
241
      {?eh,tc_start,{subgroups_1_SUITE,
 
242
                     {end_per_group,subgroup_after_failed_case,[sequence]}}},
 
243
      {?eh,tc_done,{subgroups_1_SUITE,
 
244
                    {end_per_group,subgroup_after_failed_case,[sequence]},
 
245
                    {return_group_result,failed}}}],
 
246
     {?eh,test_done,{'DEF','STOP_TIME'}},
 
247
     {?eh,stop_logging,[]}
 
248
];
 
249
 
 
250
test_events(case_after_subgroup_return_fail) ->
 
251
    [
 
252
     {?eh,start_logging,{'DEF','RUNDIR'}},
 
253
     {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
 
254
     {?eh,start_info,{1,1,2}},
 
255
     [{?eh,tc_start,{subgroups_1_SUITE,
 
256
                     {init_per_group,case_after_subgroup_return_fail,[sequence]}}},
 
257
      {?eh,tc_done,{subgroups_1_SUITE,
 
258
                    {init_per_group,case_after_subgroup_return_fail,[sequence]},ok}},
 
259
      [{?eh,tc_start,{subgroups_1_SUITE,{init_per_group,return_fail,[]}}},
 
260
       {?eh,tc_done,{subgroups_1_SUITE,{init_per_group,return_fail,[]},ok}},
 
261
       {?eh,tc_start,{subgroups_1_SUITE,failing_tc}},
 
262
       {?eh,tc_done,{subgroups_1_SUITE,failing_tc,{failed,{error,{{badmatch,3},'_'}}}}},
 
263
       {?eh,test_stats,{0,1,{0,0}}},
 
264
       {?eh,tc_start,{subgroups_1_SUITE,{end_per_group,return_fail,[]}}},
 
265
       {?eh,tc_done,{subgroups_1_SUITE,{end_per_group,return_fail,[]},
 
266
                     {return_group_result,failed}}}],
 
267
      {?eh,tc_auto_skip,{subgroups_1_SUITE,ok_tc,{group_result,return_fail,failed}}},
 
268
      {?eh,test_stats,{0,1,{0,1}}},
 
269
      {?eh,tc_start,{subgroups_1_SUITE,
 
270
                     {end_per_group,case_after_subgroup_return_fail,[sequence]}}},
 
271
      {?eh,tc_done,{subgroups_1_SUITE,
 
272
                    {end_per_group,case_after_subgroup_return_fail,[sequence]},
 
273
                    {return_group_result,failed}}}],
 
274
     {?eh,test_done,{'DEF','STOP_TIME'}},
 
275
     {?eh,stop_logging,[]}
 
276
    ];
 
277
 
 
278
test_events(case_after_subgroup_fail_init) ->
 
279
    [
 
280
     {?eh,start_logging,{'DEF','RUNDIR'}},
 
281
     {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
 
282
     {?eh,start_info,{1,1,2}},
 
283
     [{?eh,tc_start,{subgroups_1_SUITE,
 
284
                     {init_per_group,case_after_subgroup_fail_init,[sequence]}}},
 
285
      {?eh,tc_done,{subgroups_1_SUITE,
 
286
                    {init_per_group,case_after_subgroup_fail_init,[sequence]},ok}},
 
287
      [{?eh,tc_start,{subgroups_1_SUITE,{init_per_group,fail_init,[]}}},
 
288
       {?eh,tc_done,{subgroups_1_SUITE,
 
289
                     {init_per_group,fail_init,[]},
 
290
                     {failed,{error,init_per_group_fails_on_purpose}}}},
 
291
       {?eh,tc_auto_skip,{subgroups_1_SUITE,ok_tc,
 
292
                          {failed,
 
293
                           {subgroups_1_SUITE,init_per_group,
 
294
                            {'EXIT',init_per_group_fails_on_purpose}}}}},
 
295
       {?eh,test_stats,{0,0,{0,1}}},
 
296
       {?eh,tc_auto_skip,{subgroups_1_SUITE,end_per_group,
 
297
                          {failed,
 
298
                           {subgroups_1_SUITE,init_per_group,
 
299
                            {'EXIT',init_per_group_fails_on_purpose}}}}}],
 
300
 
 
301
      {?eh,tc_auto_skip,
 
302
       {subgroups_1_SUITE,ok_tc,{group_result,fail_init,failed}}},
 
303
      {?eh,test_stats,{0,0,{0,2}}},
 
304
      {?eh,tc_start,{subgroups_1_SUITE,
 
305
                     {end_per_group,case_after_subgroup_fail_init,[sequence]}}},
 
306
      {?eh,tc_done,{subgroups_1_SUITE,
 
307
                    {end_per_group,case_after_subgroup_fail_init,[sequence]},
 
308
                    {return_group_result,failed}}}],
 
309
     {?eh,test_done,{'DEF','STOP_TIME'}},
 
310
     {?eh,stop_logging,[]}
 
311
    ].