1 //  (C) Copyright Gennadiy Rozental 2015.
2 //  Distributed under the Boost Software License, Version 1.0.
3 //  (See accompanying file LICENSE_1_0.txt or copy at
4 //  http://www.boost.org/LICENSE_1_0.txt)
5 
6 //  See http://www.boost.org/libs/test for the library home page.
7 
8 #define BOOST_TEST_MODULE filtering test
9 #include <boost/test/unit_test.hpp>
10 namespace bt=boost::unit_test;
11 
12 const std::string test1v("test1");
13 const std::string test2v("test2");
14 const std::string test3v("test3");
15 
16 //____________________________________________________________________________//
17 
18 BOOST_AUTO_TEST_SUITE( s1,
19 * bt::disabled()
20 * bt::description( "initially disabled suite 1")
21 * bt::label( "label1" )
22 * bt::label( "label2" ))
23 
24 BOOST_AUTO_TEST_CASE( test1,
25 * bt::enabled()
26 * bt::description("initially enabled case s1/t1"))
27 {
28     BOOST_TEST( "s1" == test1v );
29 }
30 
31 //____________________________________________________________________________//
32 
33 BOOST_AUTO_TEST_CASE( test2,
34 * bt::description( "initially defaulted case s1/t2")
35 * bt::expected_failures( 1 ))
36 {
37     BOOST_TEST( "s1" == test2v );
38 }
39 
40 //____________________________________________________________________________//
41 
42 BOOST_AUTO_TEST_CASE( test3,
43 * bt::description( "initially defaulted case s1/t3"))
44 {
45     BOOST_TEST( "s1" == test3v );
46 }
47 
48 //____________________________________________________________________________//
49 
50 BOOST_AUTO_TEST_SUITE_END()
51 
52 BOOST_AUTO_TEST_SUITE( s2,
53 * bt::disabled()
54 * bt::label( "label1" )
55 * bt::expected_failures( 3 ))
56 
57 BOOST_AUTO_TEST_CASE( test1,
58 * bt::description( "initially defaulted case s2/t1"))
59 {
60     BOOST_TEST( "s2" == test1v );
61 }
62 
63 //____________________________________________________________________________//
64 
65 boost::test_tools::assertion_result
do_it(bt::test_unit_id)66 do_it( bt::test_unit_id )
67 {
68    return false;
69 }
70 
71 BOOST_AUTO_TEST_CASE( test2,
72 * bt::enabled()
73 * bt::description( "initially enabled case s2/t2")
74 * bt::precondition(do_it))
75 {
76     BOOST_TEST( "s2" == test2v );
77 }
78 
79 //____________________________________________________________________________//
80 
81 BOOST_AUTO_TEST_CASE( test3,
82 * bt::description( "initially defaulted case s2/t3"))
83 {
84     BOOST_TEST( "s2" == test3v );
85 }
86 
87 //____________________________________________________________________________//
88 
89 BOOST_AUTO_TEST_SUITE_END()
90 
91 BOOST_AUTO_TEST_SUITE( s3,
92 * bt::disabled())
93 
BOOST_AUTO_TEST_CASE(test1)94 BOOST_AUTO_TEST_CASE( test1 )
95 {
96     BOOST_TEST( "s3" == test1v );
97 }
98 
99 //____________________________________________________________________________//
100 
101 BOOST_AUTO_TEST_CASE( test2,
102 * bt::timeout( 10 ))
103 {
104     BOOST_TEST( "s3" == test2v );
105 }
106 
107 //____________________________________________________________________________//
108 
109 BOOST_AUTO_TEST_CASE( test3,
110 * bt::enabled())
111 {
112     BOOST_TEST( "s3" == test3v );
113 }
114 
115 //____________________________________________________________________________//
116 
117 BOOST_AUTO_TEST_SUITE( s14,
118 * bt::depends_on( "s3/s15" )
119 * bt::description( "test suite which depends on another test suite"))
120 
121 BOOST_AUTO_TEST_CASE( test1,
122 * bt::depends_on( "s2" ))
123 {
124     BOOST_TEST( "s14" == test1v );
125 }
126 
127 //____________________________________________________________________________//
128 
129 BOOST_AUTO_TEST_SUITE_END()
130 
BOOST_AUTO_TEST_SUITE(s15)131 BOOST_AUTO_TEST_SUITE( s15 )
132 
133 BOOST_AUTO_TEST_CASE( test1 )
134 {
135     BOOST_TEST( "s15" == test1v );
136 }
137 
138 //____________________________________________________________________________//
139 
140 BOOST_AUTO_TEST_SUITE_END()
141 
BOOST_AUTO_TEST_SUITE_END()142 BOOST_AUTO_TEST_SUITE_END()
143 
144 BOOST_AUTO_TEST_SUITE( s4 )
145 
146 BOOST_AUTO_TEST_CASE( test1,
147 * bt::disabled()
148 * bt::label( "label2" ))
149 {
150     BOOST_TEST( "s4" == test1v );
151 }
152 
153 //____________________________________________________________________________//
154 
155 BOOST_AUTO_TEST_CASE( test2,
156 * bt::depends_on( "s4/test1" )
157 * bt::description( "test case which depends on disabled s4/t1"))
158 {
159     BOOST_TEST( "s4" == test2v );
160 }
161 
162 //____________________________________________________________________________//
163 
164 BOOST_AUTO_TEST_CASE( test3,
165 * bt::depends_on( "s4/test2" )
166 * bt::description( "test case which depends on enabled s4/t2, but indirectly on disabled s4/t1"))
167 {
168     BOOST_TEST( "s4" == test3v );
169 }
170 
171 //____________________________________________________________________________//
172 
173 BOOST_AUTO_TEST_SUITE_END()
174 
175 #if 0
176 BOOST_AUTO_TEST_SUITE( s5 )
177 
178 BOOST_AUTO_TEST_CASE( test1,
179 * bt::depends_on( "s5/test3" ))
180 {
181     BOOST_TEST( "s5" == test1v );
182 }
183 
184 //____________________________________________________________________________//
185 
186 BOOST_AUTO_TEST_CASE( test2,
187 * bt::depends_on( "s5/test1" ))
188 {
189     BOOST_TEST( "s5" == test2v );
190 }
191 
192 //____________________________________________________________________________//
193 
194 BOOST_AUTO_TEST_CASE( test3,
195 * bt::depends_on( "s5/test2" ))
196 {
197     BOOST_TEST( "s5" == test3v );
198 }
199 
200 //____________________________________________________________________________//
201 
202 BOOST_AUTO_TEST_SUITE_END()
203 #endif
204 
BOOST_AUTO_TEST_SUITE(s6)205 BOOST_AUTO_TEST_SUITE( s6 )
206 
207 BOOST_AUTO_TEST_CASE( test1,
208 * bt::depends_on( "s6/test3" )
209 * bt::description( "test case which depends on enabled s6/t3"))
210 {
211     BOOST_TEST( "s6" == test1v );
212 }
213 
214 //____________________________________________________________________________//
215 
216 BOOST_AUTO_TEST_CASE( test2,
217 * bt::depends_on( "s6/test1" )
218 * bt::description( "test case which depends on enabled s6/t1"))
219 {
220     BOOST_TEST( "s6" == test2v );
221 }
222 
223 //____________________________________________________________________________//
224 
BOOST_AUTO_TEST_CASE(test3)225 BOOST_AUTO_TEST_CASE( test3 )
226 {
227     BOOST_TEST( "s6" == test3v );
228 }
229 
230 //____________________________________________________________________________//
231 
232 BOOST_AUTO_TEST_SUITE( s9,
233 * bt::description( "test suite with all test cases disabled"))
234 
235 BOOST_AUTO_TEST_CASE( test1,
236 * bt::disabled()
237 * bt::label( "label1" ))
238 {
239     BOOST_TEST( "s9" == test1v );
240 }
241 
242 //____________________________________________________________________________//
243 
244 BOOST_AUTO_TEST_CASE( test2,
245 * bt::disabled())
246 {
247     BOOST_TEST( "s9" == test2v );
248 }
249 
250 //____________________________________________________________________________//
251 
252 BOOST_AUTO_TEST_SUITE_END()
253 
BOOST_AUTO_TEST_SUITE_END()254 BOOST_AUTO_TEST_SUITE_END()
255 
256 #if 0
257 BOOST_AUTO_TEST_SUITE( s7 )
258 
259 BOOST_AUTO_TEST_CASE( test1,
260 * bt::depends_on( "s8/test1" ))
261 {
262     BOOST_TEST( "s7" == test1v );
263 }
264 
265 //____________________________________________________________________________//
266 
267 BOOST_AUTO_TEST_CASE( test2,
268 * bt::depends_on( "s7/test1" ))
269 {
270     BOOST_TEST( "s7" == test2v );
271 }
272 
273 //____________________________________________________________________________//
274 
275 BOOST_AUTO_TEST_SUITE_END()
276 
277 BOOST_AUTO_TEST_SUITE( s8 )
278 
279 BOOST_AUTO_TEST_CASE( test1,
280 * bt::depends_on( "s8/test2" ))
281 {
282     BOOST_TEST( "s8" == test1v );
283 }
284 
285 //____________________________________________________________________________//
286 
287 BOOST_AUTO_TEST_CASE( test2,
288 * bt::depends_on( "s7/test2" ))
289 {
290     BOOST_TEST( "s8" == test2v );
291 }
292 
293 //____________________________________________________________________________//
294 `
295 BOOST_AUTO_TEST_SUITE_END()
296 
297 BOOST_AUTO_TEST_SUITE( s10 )
298 
299 BOOST_AUTO_TEST_CASE( test1,
300 * bt::depends_on( "s11" ))
301 {
302     BOOST_TEST( "s10" == test1v );
303 }
304 
305 //____________________________________________________________________________//
306 
307 BOOST_AUTO_TEST_CASE( test2,
308 * bt::depends_on( "s10/test1" ))
309 {
310     BOOST_TEST( "s10" == test2v );
311 }
312 
313 //____________________________________________________________________________//
314 
315 BOOST_AUTO_TEST_SUITE_END()
316 
317 BOOST_AUTO_TEST_SUITE( s11 )
318 
319 BOOST_AUTO_TEST_CASE( test1,
320 * bt::depends_on( "s11/test2" ))
321 {
322     BOOST_TEST( "s11" == test1v );
323 }
324 
325 //____________________________________________________________________________//
326 
327 BOOST_AUTO_TEST_CASE( test2,
328 * bt::depends_on( "s10" ))
329 {
330     BOOST_TEST( "s11" == test2v );
331 }
332 
333 //____________________________________________________________________________//
334 
335 BOOST_AUTO_TEST_SUITE_END()
336 
337 #endif
338 
339 BOOST_AUTO_TEST_SUITE( s12 )
340 
341 BOOST_AUTO_TEST_CASE( test1,
342 * bt::depends_on( "s13" )
343 * bt::description( "test test case which depends on test suite with all test cases skipped"))
344 {
345     BOOST_TEST( "s12" == test1v );
346 }
347 
348 //____________________________________________________________________________//
349 
350 BOOST_AUTO_TEST_SUITE_END()
351 
BOOST_AUTO_TEST_SUITE(s13)352 BOOST_AUTO_TEST_SUITE( s13 )
353 
354 BOOST_AUTO_TEST_CASE( test1,
355 * bt::depends_on( "s13/test2" ))
356 {
357     BOOST_TEST( "s13" == test1v );
358 }
359 
360 //____________________________________________________________________________//
361 
362 BOOST_AUTO_TEST_CASE( test2,
363 * bt::disabled())
364 {
365     BOOST_TEST( "s13" == test2v );
366 }
367 
368 //____________________________________________________________________________//
369 
370 BOOST_AUTO_TEST_SUITE_END()
371 
372 // EOF
373