• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#~ Copyright Rene Rivera 2008
2#~ Distributed under the Boost Software License, Version 1.0.
3#~ (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4
5import testing ;
6import cast ;
7
8project preprocessor_tests : requirements <warnings>on
9                                          <toolset>gcc-4.3.0:<warnings>all
10                                          <toolset>gcc-4.3.0:<cxxflags>-Wno-variadic-macros
11                                          <toolset>gcc-4.4.0:<warnings>all
12                                          <toolset>gcc-4.4.0:<cxxflags>-Wno-variadic-macros
13                                          <toolset>gcc-4.5.0:<warnings>all
14                                          <toolset>gcc-4.5.0:<cxxflags>-Wno-variadic-macros
15                                          <toolset>gcc-4.5.0:<linkflags>"-Wl,--enable-auto-import"
16                                          <toolset>gcc-4.5.2:<warnings>all
17                                          <toolset>gcc-4.5.2:<cxxflags>-Wno-variadic-macros
18                                          <toolset>msvc:<warnings>all
19                                          ;
20
21alias preprocessor : :
22        <toolset>gcc
23        <toolset-gcc:version>3.4
24    ;
25
26alias preprocessor : :
27        <toolset>gcc
28        <toolset-gcc:version>4.1
29    ;
30
31alias preprocessor : :
32        <toolset>gcc
33        <toolset-gcc:version>4.2
34    ;
35
36alias preprocessor
37   :
38        [ compile arithmetic.cpp ]
39        [ compile array.cpp ]
40        [ compile comparison.cpp ]
41        [ compile control.cpp ]
42        [ compile debug.cpp ]
43        [ compile facilities.cpp ]
44        [ compile iteration.cpp ]
45        [ compile list.cpp ]
46        [ compile logical.cpp ]
47        [ compile punctuation.cpp ]
48        [ compile repetition.cpp ]
49        [ compile selection.cpp ]
50        [ compile seq.cpp ]
51        [ compile slot.cpp ]
52        [ compile stringize.cpp ]
53        [ compile tuple.cpp ]
54        [ compile variadic.cpp ]
55  ;
56
57alias preprocessor_number_512
58   :
59        [ compile arithmetic.cpp : <define>BOOST_PP_LIMIT_MAG=512 : arithmetic_num_512 ]
60        [ compile array.cpp : <define>BOOST_PP_LIMIT_MAG=512 : array_num_512 ]
61        [ compile comparison.cpp : <define>BOOST_PP_LIMIT_MAG=512 : comparison_num_512 ]
62        [ compile control.cpp : <define>BOOST_PP_LIMIT_MAG=512 : control_num_512 ]
63        [ compile debug.cpp : <define>BOOST_PP_LIMIT_MAG=512 : debug_num_512 ]
64        [ compile facilities.cpp : <define>BOOST_PP_LIMIT_MAG=512 : facilities_num_512 ]
65        [ compile iteration.cpp : <define>BOOST_PP_LIMIT_MAG=512 <define>BOOST_PP_LIMIT_ITERATION=512 : iteration_num_512 ]
66        [ compile list.cpp : <define>BOOST_PP_LIMIT_MAG=512 <define>BOOST_PP_LIMIT_FOR=512 : list_num_512 ]
67        [ compile logical.cpp : <define>BOOST_PP_LIMIT_MAG=512 : logical_num_512 ]
68        [ compile repetition.cpp : <define>BOOST_PP_LIMIT_MAG=512 : repetition_num_512 ]
69        [ compile selection.cpp : <define>BOOST_PP_LIMIT_MAG=512 : selection_num_512 ]
70        [ compile seq.cpp : <define>BOOST_PP_LIMIT_MAG=512 <define>BOOST_PP_LIMIT_SEQ=512 : seq_num_512 ]
71        [ compile slot.cpp : <define>BOOST_PP_LIMIT_MAG=512 : slot_num_512 ]
72        [ compile stringize.cpp : <define>BOOST_PP_LIMIT_MAG=512 : stringize_num_512 ]
73        [ compile tuple.cpp : <define>BOOST_PP_LIMIT_MAG=512 : tuple_num_512 ]
74        [ compile variadic.cpp : <define>BOOST_PP_LIMIT_MAG=512 : variadic_num_512 ]
75  ;
76
77alias preprocessor_number_1024
78   :
79        [ compile arithmetic.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : arithmetic_num_1024 ]
80        [ compile array.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : array_num_1024 ]
81        [ compile comparison.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : comparison_num_1024 ]
82        [ compile control.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : control_num_1024 ]
83        [ compile debug.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : debug_num_1024 ]
84        [ compile facilities.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : facilities_num_1024 ]
85        [ compile iteration.cpp : <define>BOOST_PP_LIMIT_MAG=1024 <define>BOOST_PP_LIMIT_ITERATION=1024 : iteration_num_1024 ]
86        [ compile list.cpp : <define>BOOST_PP_LIMIT_MAG=1024 <define>BOOST_PP_LIMIT_FOR=1024 : list_num_1024 ]
87        [ compile logical.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : logical_num_1024 ]
88        [ compile repetition.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : repetition_num_1024 ]
89        [ compile selection.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : selection_num_1024 ]
90        [ compile seq.cpp : <define>BOOST_PP_LIMIT_MAG=1024 <define>BOOST_PP_LIMIT_SEQ=1024 : seq_num_1024 ]
91        [ compile slot.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : slot_num_1024 ]
92        [ compile stringize.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : stringize_num_1024 ]
93        [ compile tuple.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : tuple_num_1024 ]
94        [ compile variadic.cpp : <define>BOOST_PP_LIMIT_MAG=1024 : variadic_num_1024 ]
95  ;
96
97alias preprocessor_v_128
98   :
99        [ compile array.cpp : <define>BOOST_PP_LIMIT_TUPLE=128 : array_v_128 ]
100        [ compile tuple.cpp : <define>BOOST_PP_LIMIT_TUPLE=128 : tuple_v_128 ]
101        [ compile variadic.cpp : <define>BOOST_PP_LIMIT_VARIADIC=128 <define>BOOST_PP_LIMIT_TUPLE=128 : variadic_v_128 ]
102  ;
103
104alias preprocessor_v_256
105   :
106        [ compile array.cpp : <define>BOOST_PP_LIMIT_TUPLE=256 : array_v_256 ]
107        [ compile tuple.cpp : <define>BOOST_PP_LIMIT_TUPLE=256 : tuple_v_256 ]
108        [ compile variadic.cpp : <define>BOOST_PP_LIMIT_VARIADIC=256 <define>BOOST_PP_LIMIT_TUPLE=256 : variadic_v_256 ]
109  ;
110
111alias preprocessor_c
112   :
113        [ compile arithmetic.c
114          :
115          : arithmetic_c
116        ]
117        [ compile array.c
118          :
119          : array_c
120        ]
121        [ compile comparison.c
122          :
123          : comparison_c
124        ]
125        [ compile control.c
126          :
127          : control_c
128        ]
129        [ compile debug.c
130          :
131          : debug_c
132        ]
133        [ compile facilities.c
134          :
135          : facilities_c
136        ]
137        [ compile list.c
138          :
139          : list_c
140        ]
141        [ compile logical.c
142          :
143          : logical_c
144        ]
145        [ compile punctuation.c
146          :
147          : punctuation_c
148        ]
149        [ compile selection.c
150          :
151          : selection_c
152        ]
153        [ compile seq.c
154          :
155          : seq_c
156        ]
157        [ compile slot.c
158          :
159          : slot_c
160        ]
161        [ compile stringize.c
162          :
163          : stringize_c
164        ]
165        [ compile tuple.c
166          :
167          : tuple_c
168        ]
169        [ compile variadic.c
170          :
171          : variadic_c
172        ]
173  ;
174
175alias preprocessor_number_rep_512
176   :
177        [ compile repetition.cpp :
178          <define>BOOST_PP_LIMIT_MAG=512
179          <define>BOOST_PP_LIMIT_REPEAT=512
180          <define>BOOST_PP_LIMIT_FOR=512
181          : repetition_rep_num_512
182        ]
183  ;
184
185alias preprocessor_number_rep_1024
186   :
187        [ compile repetition.cpp :
188          <define>BOOST_PP_LIMIT_MAG=1024
189          <define>BOOST_PP_LIMIT_REPEAT=1024
190          <define>BOOST_PP_LIMIT_FOR=1024
191          : repetition_rep_num_1024
192        ]
193  ;
194
195alias preprocessor_isempty : :
196        <toolset>gcc
197        <toolset-gcc:version>3.4
198    ;
199
200alias preprocessor_isempty : :
201        <toolset>gcc
202        <toolset-gcc:version>4.1
203    ;
204
205alias preprocessor_isempty : :
206        <toolset>gcc
207        <toolset-gcc:version>4.2
208    ;
209
210alias preprocessor_isempty
211  :
212       [ compile isempty.cpp ]
213       [ compile checkempty.cpp ]
214       [ compile-fail isempty_variadic_standard_failure.cpp ]
215       [ compile-fail isempty_variadic_standard_failure2.cpp ]
216       [ compile vaopt.cpp ]
217 ;
218
219alias preprocessor_isempty_c
220  :
221       [ compile isempty.c
222         :
223         : isempty_c
224       ]
225       [ compile-fail isempty_variadic_standard_failure.c
226         :
227         : isempty_variadic_standard_failure_c
228       ]
229       [ compile-fail isempty_variadic_standard_failure2.c
230         :
231         : isempty_variadic_standard_failure2_c
232       ]
233 ;
234
235alias preprocessor_config
236   :
237        [ run config_info.cpp ]
238  ;
239
240explicit preprocessor_number_512 ;
241explicit preprocessor_number_1024 ;
242explicit preprocessor_v_128 ;
243explicit preprocessor_v_256 ;
244explicit preprocessor_number_rep_512 ;
245explicit preprocessor_number_rep_1024 ;
246
247alias preprocessor_128 : preprocessor_v_128 ;
248alias preprocessor_256 : preprocessor_v_256 ;
249alias preprocessor_512 : preprocessor_number_512 preprocessor_number_rep_512 ;
250alias preprocessor_1024 : preprocessor_number_1024 preprocessor_number_rep_1024 ;
251alias preprocessor_tup : preprocessor_128 preprocessor_256 ;
252alias preprocessor_num : preprocessor_512 preprocessor_1024 ;
253alias preprocessor_limits : preprocessor_tup preprocessor_num ;
254
255explicit preprocessor_128 ;
256explicit preprocessor_256 ;
257explicit preprocessor_512 ;
258explicit preprocessor_1024 ;
259explicit preprocessor_tup ;
260explicit preprocessor_num ;
261explicit preprocessor_limits ;
262
263alias test_clang_cuda
264   :
265        [ compile [ cast _ cpp : clang_cuda.cu ]
266          : <cxxflags>-nocudalib
267            <cxxflags>-nocudainc
268            <cxxflags>"-x cuda"
269          : clang_cuda_cu
270        ]
271  ;
272
273explicit test_clang_cuda ;
274
275alias test_iso
276   :
277        [ run cpp_standard.cpp ]
278  ;
279
280explicit test_iso ;
281
282explicit compile quick.cpp ; # "Quick" test (for CI)
283