1#==============================================================================
2#    Copyright (c) 2003-2006 Joel de Guzman
3#    Copyright (c) 2014-2015 John Fletcher
4#
5#   Use, modification and distribution is subject to the Boost Software
6#   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7#   http://www.boost.org/LICENSE_1_0.txt)
8#==============================================================================
9
10# bring in rules for testing
11import testing ;
12import os ;
13
14import ../../config/checks/config : requires ;
15
16if [ os.environ CI ]
17{
18    CI_DEFINES = <define>CI_SKIP_KNOWN_FAILURE=1 ;
19    CI_DEFINES += <define>RUNNING_ON_TRAVIS=1 ;   # for backward compatibility
20    CI_DEFINES += <define>RUNNING_ON_APPVEYOR=1 ; # for backward compatibility
21}
22
23project
24    : requirements
25        <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
26        <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS
27        <toolset>msvc:<define>_CRT_SECURE_NO_DEPRECATE
28        <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS
29        $(CI_DEFINES)
30    ;
31
32local multi-threading = <library>/boost/thread
33                        <threading>multi <define>BOOST_ALL_NO_LIB=1 ;
34
35test-suite phoenix_core :
36    [ run core/custom_terminal.cpp ]
37    [ run core/intel_test.cpp ]
38    [ run core/primitives_tests.cpp ]
39    ;
40
41test-suite phoenix_stdlib :
42    [ run stdlib/cmath.cpp ]
43    ;
44
45test-suite phoenix_operator :
46    [ run operator/arithmetic_tests.cpp ]
47    [ run operator/bitwise_tests.cpp ]
48    [ run operator/comparison_tests.cpp ]
49    [ run operator/if_else_tests.cpp ]
50    [ run operator/io_tests.cpp ]
51    [ run operator/logical_tests.cpp ]
52    [ run operator/misc_binary_tests.cpp ]
53    [ run operator/self_tests.cpp ]
54    [ run operator/unary_tests.cpp ]
55    [ run operator/member.cpp ]
56    ;
57
58test-suite phoenix_object :
59    [ run object/cast_tests.cpp ]
60    [ run object/new_delete_tests.cpp ]
61    ;
62
63test-suite phoenix_function :
64    [ run function/adapt_function.cpp ]
65    [ run function/function_tests.cpp ]
66    [ run function/lazy_argument_tests.cpp ]
67#    [ run function/lazy_compose_tests.cpp ]
68#    [ run function/lazy_fold_tests.cpp ]
69    [ run function/lazy_list_tests.cpp ]
70    [ run function/lazy_list2_tests.cpp ]
71    [ run function/lazy_list3_tests.cpp ]
72    [ run function/lazy_make_pair_tests.cpp ]
73#    [ run function/lazy_ptr_tests.cpp ]
74#    [ run function/lazy_scan_tests.cpp ]
75    [ run function/lazy_templated_struct_tests.cpp ]
76#    [ run function/lazy_thunk_tests.cpp ]
77    [ run function/lazy_operator_tests.cpp ]
78    ;
79
80test-suite phoenix_bind :
81    [ run bind/bind_function_tests.cpp ]
82    [ run bind/bind_function_object_tests.cpp ]
83    [ run bind/bind_member_function_tests.cpp ]
84    [ run bind/bind_member_variable_tests.cpp ]
85    [ run bind/bug5782.cpp ]
86    ;
87
88test-suite phoenix_statement :
89    [ run statement/if_tests.cpp ]
90    [ run statement/loops_tests.cpp ]
91    [ run statement/switch_tests.cpp ]
92    [ run statement/exceptions.cpp ]
93    [ run statement/bug5715.cpp ]
94    ;
95
96test-suite phoenix_container :
97    [ run container/container_tests1a.cpp ]
98    [ run container/container_tests1b.cpp ]
99    [ run container/container_tests2a.cpp ]
100    [ run container/container_tests2b.cpp ]
101    [ run container/container_tests3a.cpp ]
102    [ run container/container_tests3b.cpp ]
103    [ run container/container_tests4a.cpp ]
104    [ run container/container_tests4b.cpp ]
105    [ run container/container_tests5a.cpp ]
106    [ run container/container_tests5b.cpp ]
107    [ run container/container_tests6a.cpp ]
108    [ run container/container_tests6b.cpp ]
109    [ run container/container_tests7a.cpp ]
110    [ run container/container_tests7b.cpp ]
111    [ run container/container_tests8a.cpp ]
112    [ run container/container_tests8b.cpp : : : [ requires cxx11_hdr_unordered_map ] ]
113    [ run container/container_tests9a.cpp : : : [ requires cxx11_hdr_unordered_map ] ]
114    [ run container/container_tests9b.cpp : : : [ requires cxx11_hdr_unordered_map ] ]
115    [ run container/container_tests10a.cpp : : : [ requires cxx11_hdr_unordered_map ] ]
116    [ run container/container_tests10b.cpp : : : [ requires cxx11_hdr_unordered_map ] ]
117    [ run container/container_tests11a.cpp : : : [ requires cxx11_hdr_unordered_set ] ]
118    [ run container/container_tests11b.cpp : : : [ requires cxx11_hdr_unordered_set ] ]
119    [ run container/container_tests12a.cpp : : : [ requires cxx11_hdr_unordered_set ] ]
120    [ run container/container_tests12b.cpp : : : [ requires cxx11_hdr_unordered_set ] ]
121    ;
122
123test-suite phoenix_scope :
124    [ run scope/lambda_tests1.cpp ]
125    [ run scope/lambda_tests2.cpp ]
126    [ run scope/lambda_tests3.cpp ]
127    [ run scope/lambda_tests4.cpp ]
128    [ run scope/lambda_tests5.cpp ]
129    [ run scope/lambda_tests6.cpp ]
130    [ run scope/lambda_tests7.cpp ]
131    [ run scope/lambda_tests8.cpp ]
132    [ run scope/lambda_tests9.cpp ]
133    [ run scope/lambda_tests10.cpp ]
134    [ run scope/lambda_tests11.cpp ]
135    [ run scope/lambda_tests12.cpp ]
136    [ run scope/lambda_tests13.cpp ]
137    [ run scope/lambda_tests14.cpp ]
138    [ run scope/lambda_tests15.cpp ]
139    [ run scope/lambda_tests16.cpp ]
140    [ run scope/lambda_tests17.cpp ]
141    [ run scope/lambda_tests18.cpp ]
142    [ run scope/lambda_tests19.cpp ]
143    [ run scope/lambda_tests20.cpp ]
144    [ run scope/lambda_tests21.cpp ]
145    [ run scope/lambda_tests22.cpp ]
146    [ run scope/lambda_tests23.cpp ]
147    [ run scope/let_tests.cpp ]
148    [ run scope/let_tests_113.cpp ]
149#    [ run scope/let_tests_113a.cpp ]
150    [ run scope/let_tests_157.cpp ]
151#    [ run scope/let_tests_157a.cpp ]
152    [ run scope/let_tests_rest.cpp ]
153    [ run scope/more_lambda_tests.cpp ]
154    [ run scope/more_let_tests.cpp ]
155#    [ run scope/more_let_tests1.cpp ]
156#    [ run scope/more_let_tests2a.cpp ]
157#    [ run scope/more_let_tests2b.cpp ]
158    [ run scope/dynamic_tests.cpp ]
159    [ run scope/bug3289.cpp ]
160    [ run scope/bug8298.cpp ]
161    [ compile-fail scope/bug8298f.cpp ]
162    [ run scope/bug_000008.cpp : : : $(multi-threading) ]
163    ;
164
165test-suite phoenix_algorithm :
166    [ run algorithm/for_each.cpp ]
167    [ run algorithm/for_each2.cpp ]
168    [ run algorithm/for_test.cpp ]
169    [ run algorithm/for_test2.cpp ]
170    [ run algorithm/iteration.cpp ]
171    [ run algorithm/transformation1.cpp ]
172    [ run algorithm/transformation2.cpp ]
173    [ run algorithm/transformation3.cpp ]
174    [ run algorithm/transformation4.cpp ]
175    [ run algorithm/querying.cpp ]
176    [ run algorithm/querying_find.cpp ]
177    [ run algorithm/querying2.cpp ]
178    [ run algorithm/querying_find2.cpp ]
179    ;
180
181test-suite phoenix_boost_bind_compatibility :
182    [ run boost_bind_compatibility/bind_and_or_test.cpp ]
183    [ run boost_bind_compatibility/bind_const_test.cpp ]
184    [ run boost_bind_compatibility/bind_cv_test.cpp ]
185    [ run boost_bind_compatibility/bind_dm_test.cpp ]
186#    [ run boost_bind_compatibility/bind_dm1_test.cpp ]
187    [ run boost_bind_compatibility/bind_dm2_test.cpp ]
188    [ run boost_bind_compatibility/bind_dm3_test.cpp ]
189    [ run boost_bind_compatibility/bind_eq_test.cpp ]
190    [ run boost_bind_compatibility/bind_eq2_test.cpp ]
191    [ run boost_bind_compatibility/bind_eq3_test.cpp ]
192    [ run boost_bind_compatibility/bind_fn2_test.cpp ]
193    [ run boost_bind_compatibility/bind_function_test.cpp ]
194    [ run boost_bind_compatibility/bind_interoperation_test.cpp ]
195    [ run boost_bind_compatibility/bind_mf2_test.cpp ]
196    [ run boost_bind_compatibility/bind_not_test.cpp ]
197    [ run boost_bind_compatibility/bind_placeholder_test.cpp ]
198    [ run boost_bind_compatibility/bind_ref_test.cpp ]
199    [ run boost_bind_compatibility/bind_rel_test.cpp ]
200    [ run boost_bind_compatibility/bind_rvalue_test.cpp ]
201    [ run boost_bind_compatibility/bind_rv_sp_test.cpp ]
202#    [ run boost_bind_compatibility/bind_rv_sp1_test.cpp ]
203#    [ run boost_bind_compatibility/bind_rv_sp2_test.cpp ]
204#    [ run boost_bind_compatibility/bind_rv_sp3_test.cpp ]
205#    [ run boost_bind_compatibility/bind_rv_sp4_test.cpp ]
206#    [ run boost_bind_compatibility/bind_rv_sp5_test.cpp ]
207#    [ run boost_bind_compatibility/bind_rv_sp6_test.cpp ]
208#    [ run boost_bind_compatibility/bind_rv_sp7_test.cpp ]
209    [ run boost_bind_compatibility/bind_stateful_test.cpp ]
210    [ run boost_bind_compatibility/bind_test.cpp ]
211#    [ run boost_bind_compatibility/bind_void_dm_test.cpp ]
212    ;
213
214test-suite phoenix_bll_compatibility :
215    [ run bll_compatibility/algorithm_test.cpp ]
216    [ run bll_compatibility/bind_tests_advanced.cpp ]
217#    [ run bll_compatibility/bind_tests_simple.cpp ]
218#    [ run bll_compatibility/bind_tests_simple_f_refs.cpp ]
219#    [ run bll_compatibility/bll_and_function.cpp ]
220#    [ run bll_compatibility/cast_test.cpp ]
221#    [ run bll_compatibility/constructor_tests.cpp ]
222#    [ run bll_compatibility/control_structures.cpp ]
223#    [ run bll_compatibility/exception_test.cpp ]
224#    [ run bll_compatibility/extending_rt_traits.cpp ]
225#    [ run bll_compatibility/is_instance_of_test.cpp ]
226#    [ run bll_compatibility/istreambuf_test.cpp ]
227#    [ run bll_compatibility/member_pointer_test.cpp ]
228#    [ run bll_compatibility/operator_tests_simple.cpp ]
229#    [ run bll_compatibility/phoenix_control_structures.cpp ]
230#    [ run bll_compatibility/result_of_tests.cpp ]
231#    [ run bll_compatibility/ret_test.cpp ]
232#    [ run bll_compatibility/rvalue_test.cpp ]
233#    [ run bll_compatibility/switch_construct.cpp ]
234    ;
235
236test-suite phoenix_regression :
237    [ run regression/bug4853.cpp ]
238    [ run regression/bug5626.cpp ]
239    [ run regression/bug5824.cpp ]
240 #   [ run regression/bug5875.cpp ]
241    [ run regression/bug5968.cpp ]
242    [ run regression/bug6040.cpp ]
243    [ run regression/bug6268.cpp ]
244    [ run regression/bug7165.cpp ]
245    [ compile-fail regression/bug7166.cpp ]
246    [ run regression/bug7624.cpp ]
247    [ compile regression/from_array.cpp ]
248    [ run regression/actor_assignment.cpp ]
249    ;
250
251test-suite phoenix_include :
252    [ run include/bind.cpp ]
253    [ run include/core.cpp ]
254    [ run include/function.cpp ]
255    [ run include/fusion.cpp ]
256    [ run include/object.cpp ]
257    [ run include/operator.cpp ]
258    [ run include/scope.cpp ]
259#    [ run include/spirit.cpp ]
260#    [ run include/spirit_no_specialize.cpp ]
261    [ run include/statement.cpp ]
262    [ run include/stl.cpp ]
263    [ run include/version.cpp ]
264    [ run include/bind/bind_member_function.cpp ]
265    [ run include/bind/bind_member_variable.cpp ]
266    [ run include/core/actor.cpp ]
267    [ run include/core/argument.cpp ]
268    [ run include/core/arity.cpp ]
269    [ run include/core/debug.cpp ]
270    [ run include/core/domain.cpp ]
271    [ run include/core/environment.cpp ]
272    [ run include/core/expression.cpp ]
273    [ run include/core/function_equal.cpp ]
274    [ run include/core/is_actor.cpp ]
275    [ run include/core/is_nullary.cpp ]
276    [ run include/core/limits.cpp ]
277    [ run include/core/meta_grammar.cpp ]
278    [ run include/core/nothing.cpp ]
279    [ run include/core/reference.cpp ]
280    [ run include/core/terminal.cpp ]
281 #   [ run include/core/bug7730.cpp ]
282    [ run include/core/value.cpp ]
283    [ run include/function/function.cpp : : : : function_function ]
284    [ run include/function/lazy_headers.cpp ]
285    [ run include/fusion/at.cpp ]
286    [ run include/object/const_cast.cpp ]
287    [ run include/object/construct.cpp ]
288    [ run include/object/delete.cpp ]
289    [ run include/object/dynamic_cast.cpp ]
290    [ run include/object/new.cpp ]
291    [ run include/object/reinterpret_cast.cpp ]
292    [ run include/object/static_cast.cpp ]
293    [ run include/operator/arithmetic.cpp ]
294    [ run include/operator/bitwise.cpp ]
295    [ run include/operator/comparison.cpp ]
296    [ run include/operator/if_else.cpp ]
297    [ run include/operator/io.cpp ]
298    [ run include/operator/logical.cpp ]
299    [ run include/operator/member.cpp : : : : operator_member ]
300    [ run include/operator/self.cpp ]
301    [ run include/scope/dynamic.cpp ]
302    [ run include/scope/lambda.cpp ]
303    [ run include/scope/let.cpp ]
304    [ run include/scope/local_variable.cpp ]
305    [ run include/scope/scoped_environment.cpp ]
306    [ run include/scope/this.cpp ]
307    [ run include/statement/do_while.cpp ]
308    [ run include/statement/for.cpp ]
309    [ run include/statement/if.cpp ]
310    [ run include/statement/sequence.cpp ]
311    [ run include/statement/switch.cpp ]
312    [ run include/statement/throw.cpp ]
313    [ run include/statement/try_catch.cpp ]
314    [ run include/statement/while.cpp ]
315    [ run include/stl/algorithm.cpp ]
316    [ run include/stl/container.cpp ]
317    [ run include/stl/container/container.cpp : : : : container_container ]
318    [ run include/stl/algorithm/iteration.cpp : : : : include_iteration ]
319    [ run include/stl/algorithm/querying.cpp : : : : include_querying ]
320    [ run include/stl/algorithm/transformation.cpp ]
321    [ run include/support/iterate.cpp ]
322    [ run include/support/preprocessor/round.cpp ]
323    ;
324