1##==============================================================================
2#    Copyright (c) 2003-2006 Joel de Guzman
3#    Copyright (c) 2013 Mateusz Loskot
4#    Copyright (c) 2014-2018 Kohei Takahashi
5#
6#   Use, modification and distribution is subject to the Boost Software
7#   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8#   http://www.boost.org/LICENSE_1_0.txt)
9#==============================================================================
10# bring in rules for testing
11import testing ;
12import os ;
13import ../../config/checks/config : requires ;
14
15if [ os.environ CI ]
16{
17    CI_DEFINES = <define>CI_SKIP_KNOWN_FAILURE=1 ;
18}
19
20project
21    : requirements
22        $(CI_DEFINES)
23    ;
24
25{
26    test-suite fusion :
27
28    [ run algorithm/all.cpp ]
29    [ run algorithm/any.cpp ]
30    [ run algorithm/clear.cpp ]
31    [ run algorithm/copy.cpp ]
32    [ run algorithm/count.cpp ]
33    [ run algorithm/count_if.cpp ]
34    [ run algorithm/erase.cpp ]
35    [ run algorithm/erase_key.cpp ]
36    [ run algorithm/filter.cpp ]
37    [ run algorithm/filter_if.cpp ]
38    [ run algorithm/find.cpp ]
39    [ run algorithm/find_if.cpp ]
40    [ run algorithm/fold.cpp ]
41    [ run algorithm/for_each.cpp ]
42    [ run algorithm/insert.cpp ]
43    [ run algorithm/insert_range.cpp ]
44    [ run algorithm/iter_fold.cpp ]
45    [ run algorithm/move.cpp : :
46        : [ requires cxx11_rvalue_references ] ]
47    [ run algorithm/none.cpp ]
48    [ run algorithm/pop_back.cpp ]
49    [ run algorithm/pop_front.cpp ]
50    [ run algorithm/push_back.cpp ]
51    [ run algorithm/push_front.cpp ]
52    [ run algorithm/remove.cpp ]
53    [ run algorithm/remove_if.cpp ]
54    [ run algorithm/replace.cpp ]
55    [ run algorithm/replace_if.cpp ]
56    [ run algorithm/reverse_fold.cpp ]
57    [ run algorithm/reverse_iter_fold.cpp ]
58    [ run algorithm/reverse.cpp ]
59    [ run algorithm/segmented_for_each.cpp ]
60    [ run algorithm/segmented_find.cpp ]
61    [ run algorithm/segmented_find_if.cpp ]
62    [ run algorithm/segmented_fold.cpp ]
63    [ run algorithm/transform.cpp ]
64    [ run algorithm/join.cpp ]
65    [ run algorithm/zip.cpp ]
66    [ run algorithm/zip2.cpp ]
67    [ run algorithm/zip_ignore.cpp ]
68    [ run algorithm/flatten.cpp ]
69    [ compile algorithm/ticket-5490.cpp ]
70
71    [ run sequence/as_deque.cpp ]
72    [ run sequence/as_list.cpp ]
73    [ run sequence/as_map.cpp ]
74    [ run sequence/as_map_assoc.cpp ]
75    [ run sequence/as_set.cpp ]
76    [ run sequence/as_vector.cpp ]
77    [ run sequence/boost_tuple.cpp ]
78    [ run sequence/boost_tuple_iterator.cpp ]
79    [ run sequence/cons.cpp ]
80    [ run sequence/convert_boost_tuple.cpp ]
81    [ run sequence/convert_deque.cpp ]
82    [ run sequence/convert_list.cpp ]
83    [ run sequence/convert_std_pair.cpp ]
84    [ run sequence/convert_std_tuple.cpp : :
85        : [ requires cxx11_variadic_templates cxx11_hdr_tuple ] ]
86    [ run sequence/convert_vector.cpp ]
87    [ run sequence/filter_view.cpp ]
88    [ run sequence/hash.cpp ]
89    [ run sequence/io.cpp ]
90    [ run sequence/iterator_range.cpp ]
91    [ run sequence/joint_view.cpp ]
92    [ run sequence/list_comparison.cpp ]
93    [ run sequence/list_construction.cpp ]
94    [ run sequence/list_copy.cpp ]
95    [ run sequence/list_iterator.cpp ]
96    [ run sequence/list_hash.cpp ]
97    [ run sequence/list_make.cpp ]
98    [ run sequence/list_misc.cpp ]
99    [ run sequence/list_mutate.cpp ]
100    [ run sequence/list_nest.cpp ]
101    [ run sequence/list_tie.cpp ]
102    [ run sequence/list_value_at.cpp ]
103    [ run sequence/deque_comparison.cpp ]
104    [ run sequence/deque_construction.cpp ]
105    [ run sequence/deque_copy.cpp ]
106    [ run sequence/deque_iterator.cpp ]
107    [ run sequence/deque_hash.cpp ]
108    [ compile sequence/deque_is_constructible.cpp ]
109    [ run sequence/deque_make.cpp ]
110    [ run sequence/deque_misc.cpp ]
111    [ run sequence/deque_move.cpp : :
112        : [ requires cxx11_rvalue_references ] ]
113    [ run sequence/deque_mutate.cpp ]
114    [ run sequence/deque_nest.cpp ]
115    [ run sequence/deque_tie.cpp ]
116    [ run sequence/deque_value_at.cpp ]
117    [ run sequence/front_extended_deque.cpp ]
118    [ run sequence/back_extended_deque.cpp ]
119    [ run sequence/make_list.cpp ]
120    [ run sequence/make_vector.cpp ]
121    [ run sequence/map.cpp ]
122    [ run sequence/map_comparison.cpp ]
123    [ run sequence/map_construction.cpp ]
124    [ run sequence/map_copy.cpp ]
125    [ run sequence/map_misc.cpp ]
126    [ run sequence/map_move.cpp : :
127        : [ requires cxx11_rvalue_references ] ]
128    [ run sequence/map_mutate.cpp ]
129    [ run sequence/map_tie.cpp ]
130    [ run sequence/nil.cpp ]
131    [ run sequence/nview.cpp ]
132    [ run sequence/reverse_view.cpp ]
133    [ run sequence/segmented_iterator_range.cpp ]
134    [ run sequence/set.cpp ]
135    [ run sequence/single_view.cpp ]
136    [ run sequence/std_pair.cpp ]
137    [ run sequence/boost_array.cpp ]
138    [ run sequence/array.cpp ]
139    [ run sequence/std_array.cpp : :
140        : [ requires cxx11_hdr_array ] ]
141    [ run sequence/tuple_comparison.cpp ]
142    [ run sequence/tuple_construction.cpp ]
143    [ run sequence/tuple_conversion.cpp ]
144    [ run sequence/tuple_copy.cpp ]
145    [ run sequence/tuple_element.cpp ]
146    [ run sequence/tuple_make.cpp ]
147    [ run sequence/tuple_misc.cpp ]
148    [ run sequence/tuple_mutate.cpp ]
149    [ run sequence/tuple_nest.cpp ]
150    [ run sequence/tuple_hash.cpp ]
151    [ run sequence/tuple_tie.cpp ]
152    [ run sequence/tuple_traits.cpp : :
153        :
154        : tuple_traits__maybe_variadic ]
155    [ run sequence/tuple_traits.cpp : :
156        : <define>BOOST_FUSION_DISABLE_VARIADIC_VECTOR
157        : tuple_traits__no_variadic ]
158    [ run sequence/transform_view.cpp ]
159    [ run sequence/vector_comparison.cpp ]
160    [ run sequence/vector_construction.cpp ]
161    [ run sequence/vector_conversion.cpp ]
162    [ run sequence/vector_copy.cpp ]
163    [ run sequence/vector_iterator.cpp ]
164    [ run sequence/vector_make.cpp ]
165    [ run sequence/vector_misc.cpp ]
166    [ run sequence/vector_move.cpp : :
167        : [ requires cxx11_rvalue_references ] ]
168    [ run sequence/vector_mutate.cpp ]
169    [ run sequence/vector_n.cpp ]
170    [ run sequence/vector_nest.cpp ]
171    [ run sequence/vector_hash.cpp ]
172    [ run sequence/vector_tie.cpp ]
173    [ run sequence/vector_traits.cpp : :
174        :
175        : vector_traits__maybe_variadic ]
176    [ run sequence/vector_traits.cpp : :
177        : <define>BOOST_FUSION_DISABLE_VARIADIC_VECTOR
178        : vector_traits__no_variadic ]
179    [ run sequence/vector_value_at.cpp ]
180    [ run sequence/zip_view.cpp ]
181    [ run sequence/zip_view2.cpp ]
182    [ run sequence/zip_view_ignore.cpp ]
183    [ run sequence/repetitive_view.cpp ]
184    [ run sequence/deduce_sequence.cpp ]
185    [ run sequence/adapt_adt_named.cpp ]
186    [ run sequence/adapt_adt_named_empty.cpp ]
187    [ run sequence/adapt_adt.cpp ]
188    [ run sequence/adapt_adt_empty.cpp ]
189    [ run sequence/adapt_assoc_adt_named.cpp ]
190    [ run sequence/adapt_assoc_adt_named_empty.cpp ]
191    [ run sequence/adapt_assoc_adt.cpp ]
192    [ run sequence/adapt_assoc_adt_empty.cpp ]
193    [ run sequence/adapt_assoc_struct_named.cpp ]
194    [ run sequence/adapt_assoc_struct_named_empty.cpp ]
195    [ run sequence/adapt_assoc_struct.cpp ]
196    [ run sequence/adapt_assoc_struct_empty.cpp ]
197    [ run sequence/adapt_assoc_tpl_adt.cpp ]
198    [ run sequence/adapt_assoc_tpl_adt_empty.cpp ]
199    [ run sequence/adapt_assoc_tpl_struct.cpp ]
200    [ run sequence/adapt_assoc_tpl_struct_empty.cpp ]
201    [ run sequence/adapt_struct_named.cpp ]
202    [ run sequence/adapt_struct_named_empty.cpp ]
203    [ run sequence/adapt_struct.cpp ]
204    [ run sequence/adapt_struct_empty.cpp ]
205    [ run sequence/adapt_tpl_adt.cpp ]
206    [ run sequence/adapt_tpl_adt_empty.cpp ]
207    [ run sequence/adapt_tpl_struct.cpp ]
208    [ run sequence/adapt_tpl_struct_empty.cpp ]
209    [ run sequence/adt_attribute_proxy.cpp ]
210    [ run sequence/define_struct.cpp ]
211    [ run sequence/define_struct_empty.cpp ]
212    [ run sequence/define_struct_move.cpp : :
213        : [ requires cxx11_rvalue_references ] ]
214    [ run sequence/define_struct_inline.cpp ]
215    [ run sequence/define_struct_inline_empty.cpp ]
216    [ run sequence/define_struct_inline_move.cpp : :
217        : [ requires cxx11_rvalue_references ] ]
218    [ run sequence/define_assoc_struct.cpp ]
219    [ run sequence/define_assoc_struct_empty.cpp ]
220    [ run sequence/define_assoc_struct_move.cpp : :
221        : [ requires cxx11_rvalue_references ] ]
222    [ run sequence/define_tpl_struct.cpp ]
223    [ run sequence/define_tpl_struct_empty.cpp ]
224    [ run sequence/define_tpl_struct_move.cpp : :
225        : [ requires cxx11_rvalue_references ] ]
226    [ run sequence/define_tpl_struct_inline.cpp ]
227    [ run sequence/define_tpl_struct_inline_empty.cpp ]
228    [ run sequence/define_tpl_struct_inline_move.cpp : :
229        : [ requires cxx11_rvalue_references ] ]
230    [ run sequence/define_assoc_tpl_struct.cpp ]
231    [ run sequence/define_assoc_tpl_struct_empty.cpp ]
232    [ run sequence/define_assoc_tpl_struct_move.cpp : :
233        : [ requires cxx11_rvalue_references ] ]
234    [ run sequence/std_tuple.cpp : :
235        : [ requires cxx11_variadic_templates cxx11_hdr_tuple ] ]
236    [ run sequence/std_tuple_iterator.cpp : :
237        : [ requires cxx11_variadic_templates cxx11_hdr_tuple ] ]
238    [ run sequence/ref_vector.cpp ]
239    [ run sequence/flatten_view.cpp ]
240    [ compile sequence/github-159.cpp ]
241    [ run sequence/github-176.cpp ]
242
243    [ compile sequence/size.cpp ]
244
245    [ run functional/fused.cpp ]
246    [ run functional/fused_function_object.cpp ]
247    [ run functional/fused_procedure.cpp ]
248    [ run functional/unfused.cpp ]
249    [ run functional/unfused_typed.cpp ]
250    [ run functional/make_fused.cpp ]
251    [ run functional/make_fused_function_object.cpp ]
252    [ run functional/make_fused_procedure.cpp ]
253    [ run functional/make_unfused.cpp ]
254    [ run functional/invoke.cpp ]
255    [ run functional/invoke_function_object.cpp ]
256    [ run functional/invoke_procedure.cpp ]
257    [ run sequence/swap.cpp ]
258
259    [ compile support/is_sequence.cpp ]
260    [ compile support/is_view.cpp ]
261    [ compile support/pair_deque.cpp ]
262    [ compile support/pair_list.cpp ]
263    [ compile support/pair_map.cpp ]
264    [ compile support/pair_set.cpp ]
265    [ compile support/pair_vector.cpp ]
266    [ compile support/pair_nest.cpp ]
267    [ compile support/index_sequence.cpp
268        : [ requires cxx11_variadic_templates ] ]
269    [ compile support/and.cpp
270        : [ requires cxx11_variadic_templates ] ]
271    [ compile support/tag_of.cpp ]
272    [ compile support/unused.cpp ]
273
274#   [ compile-fail xxx.cpp  ]
275
276    ;
277}
278