]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/multiprecision/test/Jamfile.v2
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / boost / libs / multiprecision / test / Jamfile.v2
1 # copyright John Maddock 2011
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 import testing ;
7 import modules ;
8 import path ;
9 import ../../config/checks/config : requires ;
10
11 local ntl-path = [ modules.peek : NTL_PATH ] ;
12 local gmp_path = [ modules.peek : GMP_PATH ] ;
13 local mpfr_path = [ modules.peek : MPFR_PATH ] ;
14 local mpfi_path = [ modules.peek : MPFI_PATH ] ;
15 local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
16
17
18 #######################################################################################
19 #
20 # NOTE: Because these tests take a fair while to build and run, they are split up into
21 # multiple smaller test suites which are:
22 #
23 # arithmetic_tests
24 # functions_and_limits
25 # conversions
26 # cpp_int_tests
27 # misc
28 # specfun
29 # compile_fail
30 # concepts
31 # examples
32 #
33 # You can run an individual suite by passing its name to b2 on the command line.
34 # Or you can run all except the "specfun" tests (which are very slow) by not specifying anything.
35 #
36 # Please make sure that any new tests are added to one of the test suites, and that the
37 # build times for the various suites are reasonably balanced: otherwise the CI builds
38 # will time out if one suite contains too many.
39 #
40 #######################################################################################################
41
42 path-constant here : . ;
43
44 project : requirements
45 <include>$(gmp_path)
46 <include>$(gmp_path)/mpfr
47 <include>$(gmp_path)/gmpfrxx
48 <include>$(mpfr_path)
49 <include>$(mpfi_path)
50 <include>$(mpfi_path)/src
51 <include>$(tommath_path)
52 <include>../include
53 <include>../../..
54 # We set these to make it easier to set up and test GMP and MPFR under Win32:
55 <toolset>msvc:<runtime-link>static
56 <toolset>msvc:<link>static
57 <toolset>msvc:<warnings>all
58 <toolset>msvc:<cxxflags>/fp\:precise
59 <toolset>intel-win:<runtime-link>static
60 <toolset>intel-win:<link>static
61 <toolset>clang-win:<link>static # Clang-win does not generate .dlls.
62 <toolset>clang:<link>static # Clang-linux does not generate .dlls.
63 <toolset>clang:<cxxflags>-Wno-unused-variable # warning: unused variable 'tolerance' [-Wunused-variable]
64 <toolset>clang:<cxxflags>-v
65
66 # Assembler error "File too big" caused by lots of C++ templates, for example, math/floating_point_examples.cpp.
67 # Some projects on some toolsets may require
68 # <toolset>gcc-mingw:<cxxflags>\"-Wa,-mbig-obj\"
69 # See https://digitalkarabela.com/mingw-w64-how-to-fix-file-too-big-too-many-sections/
70 # <toolset>gcc-mingw:<cxxflags>-Wa,-mbig-obj # Some projects may overflow assembler and require equivalent of MSVC /bigobj.
71 # Requires version 2.30 of GNU binutils.
72 # Best applied only to projects that require this, see multiprecision/example run math/floating_point_examples.cpp.
73
74 # Speed up compiles:
75 <toolset>msvc:<debug-symbols>off
76 <toolset>intel:<debug-symbols>off
77 <toolset>gcc:<cxxflags>-Wall
78 <toolset>gcc:<cxxflags>-Wextra
79 #<toolset>intel:<define>SLOW_COMPILER
80 <toolset>msvc,<optimization>off:<cxxflags>-RTC1
81 # We can't yet enable this - it breaks the STL in some tests...
82 #<toolset>msvc,<optimization>off:<cxxflags>-RTCc
83 #<toolset>msvc,<optimization>off:<define>_ALLOW_RTCc_IN_STL
84 ;
85
86 local enable-specfun = [ MATCH (--enable-specfun) : [ modules.peek : ARGV ] ] ;
87 local disable-concepts = [ MATCH (--disable-concepts) : [ modules.peek : ARGV ] ] ;
88
89 lib gmp : : <search>$(gmp_path) ;
90 lib mpfr : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug ;
91 lib mpfi : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug <search>$(mpfi_path) <search>$(mpfi_path)/src ;
92 lib quadmath ;
93 lib mpc ;
94
95 if $(tommath_path)
96 {
97 lib tommath : [ GLOB $(tommath_path) : *.c ] : <visibility>global ;
98 TOMMATH = tommath ;
99 }
100 else
101 {
102 lib tommath : : <search>$(tommath_path) ;
103 TOMMATH = tommath ;
104 }
105
106 lib no_eh_support : no_eh_test_support.cpp ;
107
108 test-suite arithmetic_tests :
109
110 [ run test_arithmetic_backend_concept.cpp no_eh_support ]
111 [ compile test_arithmetic_skeleton.cpp ]
112
113 [ run test_arithmetic_cpp_dec_float_1.cpp no_eh_support ]
114 [ run test_arithmetic_cpp_dec_float_2.cpp no_eh_support ]
115 [ run test_arithmetic_cpp_dec_float_3.cpp no_eh_support ]
116 [ run test_arithmetic_cpp_dec_float_3m.cpp no_eh_support ]
117
118 [ run test_arithmetic_cpp_bin_float_1.cpp no_eh_support ]
119 [ run test_arithmetic_cpp_bin_float_2.cpp no_eh_support ]
120 [ run test_arithmetic_cpp_bin_float_2m.cpp no_eh_support ]
121 [ run test_arithmetic_cpp_bin_float_3.cpp no_eh_support ]
122
123 [ run test_arithmetic_mpf_50.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
124 [ run test_arithmetic_mpf.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
125 [ run test_arithmetic_mpz.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
126 [ run test_arithmetic_mpz_rat.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
127 [ run test_arithmetic_mpz_br.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
128 [ run test_arithmetic_mpq.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
129
130 [ run test_arithmetic_mpfr.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
131 [ run test_arithmetic_mpfr_50.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
132 [ run test_arithmetic_mpfr_50_static.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
133
134 [ run test_arithmetic_tommath.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
135 [ run test_arithmetic_tommath_rat.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
136 [ run test_arithmetic_tommath_br.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
137
138 [ run test_arithmetic_cpp_int_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj ]
139 [ run test_arithmetic_cpp_int_2.cpp no_eh_support ]
140 [ run test_arithmetic_cpp_int_3.cpp no_eh_support ]
141 [ run test_arithmetic_cpp_int_4.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj ]
142 [ run test_arithmetic_cpp_int_5.cpp no_eh_support ]
143 [ run test_arithmetic_cpp_int_6.cpp no_eh_support ]
144 [ run test_arithmetic_cpp_int_7.cpp no_eh_support ]
145 [ run test_arithmetic_cpp_int_8.cpp no_eh_support ]
146 [ run test_arithmetic_cpp_int_9.cpp no_eh_support ]
147 [ run test_arithmetic_cpp_int_10.cpp no_eh_support ]
148 [ run test_arithmetic_cpp_int_11.cpp no_eh_support ]
149 [ run test_arithmetic_cpp_int_12.cpp no_eh_support ]
150 [ run test_arithmetic_cpp_int_13.cpp no_eh_support ]
151 [ run test_arithmetic_cpp_int_14.cpp no_eh_support ]
152 [ run test_arithmetic_cpp_int_15.cpp no_eh_support ]
153 [ run test_arithmetic_cpp_int_16.cpp no_eh_support ]
154 [ run test_arithmetic_cpp_int_17.cpp no_eh_support ]
155 [ run test_arithmetic_cpp_int_18.cpp no_eh_support ]
156 [ run test_arithmetic_cpp_int_19.cpp no_eh_support ]
157 [ run test_arithmetic_cpp_int_br.cpp no_eh_support ]
158
159 [ run test_arithmetic_ab_1.cpp no_eh_support ]
160 [ run test_arithmetic_ab_2.cpp no_eh_support ]
161 [ run test_arithmetic_ab_3.cpp no_eh_support ]
162
163 [ run test_cpp_dec_float_round.cpp no_eh_support ]
164
165 [ run test_arithmetic_logged_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj ]
166 [ run test_arithmetic_logged_2.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj ]
167
168 [ run test_arithmetic_dbg_adptr1.cpp no_eh_support ]
169 [ run test_arithmetic_dbg_adptr1m.cpp no_eh_support ]
170 [ run test_arithmetic_dbg_adptr2.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj ]
171
172 [ run test_arithmetic_mpfi_50.cpp mpfi mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ]
173
174 [ run test_arithmetic_float_128.cpp quadmath no_eh_support : : : [ check-target-builds ../config//has_float128 : : <build>no ] ]
175 [ run test_arithmetic_float_128.cpp no_eh_support : : : [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] : test_arithmetic_intel_quad ]
176
177 [ run test_arithmetic_mpc.cpp mpc mpfr gmp : : : [ check-target-builds ../config//has_mpc : : <build>no ] ]
178 [ run test_mpfr_mpc_precisions.cpp mpc mpfr gmp : : : [ check-target-builds ../config//has_mpc : : <build>no ] ]
179 [ run test_mpfi_precisions.cpp mpfi mpfr gmp : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ]
180 [ run test_mpf_precisions.cpp gmp : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
181 [ run test_complex.cpp : : : [ check-target-builds ../config//has_mpc : <define>TEST_MPC <source>mpc <source>mpfr <source>gmp ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
182 [ run test_arithmetic_complex_adaptor.cpp ]
183 [ run test_arithmetic_complex_adaptor_2.cpp : : : <toolset>msvc:<cxxflags>-bigobj ]
184 [ run test_arithmetic_complex128.cpp : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
185
186 ;
187
188 rule get_function_tests
189 {
190 local result ;
191 for local source in test_exp.cpp test_log.cpp test_pow.cpp test_sinh.cpp test_sqrt.cpp test_cosh.cpp test_tanh.cpp test_sin.cpp test_cos.cpp test_tan.cpp test_asin.cpp test_acos.cpp test_atan.cpp test_round.cpp test_fpclassify.cpp test_sf_import_c99.cpp
192 {
193 result += [ run $(source) gmp no_eh_support
194 : # command line
195 : # input files
196 : # requirements
197 [ check-target-builds ../config//has_gmp : : <build>no ]
198 <define>TEST_MPF_50
199 : $(source:B)_mpf50 ] ;
200 result += [ run $(source) mpfr gmp no_eh_support
201 : # command line
202 : # input files
203 : # requirements
204 [ check-target-builds ../config//has_mpfr : : <build>no ]
205 <define>TEST_MPFR_50
206 : $(source:B)_mpfr50 ] ;
207 result += [ run $(source) mpfi mpfr gmp no_eh_support
208 : # command line
209 : # input files
210 : # requirements
211 [ check-target-builds ../config//has_mpfi : : <build>no ]
212 <define>TEST_MPFI_50
213 : $(source:B)_mpfi50 ] ;
214 result += [ run $(source) no_eh_support
215 : # command line
216 : # input files
217 : # requirements
218 <define>TEST_CPP_DEC_FLOAT
219 : $(source:B)_cpp_dec_float ] ;
220 result += [ run $(source) no_eh_support
221 : # command line
222 : # input files
223 : # requirements
224 <define>TEST_CPP_BIN_FLOAT
225 : $(source:B)_cpp_bin_float ] ;
226 result += [ run $(source) quadmath no_eh_support
227 : # command line
228 : # input files
229 : # requirements
230 [ check-target-builds ../config//has_float128 : : <build>no ]
231 <define>TEST_FLOAT128
232 : $(source:B)_float128 ] ;
233 result += [ run $(source) no_eh_support
234 : # command line
235 : # input files
236 : # requirements
237 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
238 <define>TEST_FLOAT128
239 : $(source:B)_intel_quad ] ;
240 }
241 return $(result) ;
242 }
243
244 test-suite functions_and_limits :
245
246 [ run test_numeric_limits.cpp no_eh_support
247 : # command line
248 : # input files
249 : # requirements
250 <define>TEST_BACKEND
251 : test_numeric_limits_backend_concept ]
252
253 [ run test_numeric_limits.cpp gmp no_eh_support
254 : # command line
255 : # input files
256 : # requirements
257 <define>TEST_MPF_50
258 [ check-target-builds ../config//has_gmp : : <build>no ]
259 : test_numeric_limits_mpf50 ]
260
261 [ run test_numeric_limits.cpp gmp no_eh_support
262 : # command line
263 : # input files
264 : # requirements
265 <define>TEST_MPF
266 [ check-target-builds ../config//has_gmp : : <build>no ]
267 : test_numeric_limits_mpf ]
268
269 [ run test_numeric_limits.cpp gmp no_eh_support
270 : # command line
271 : # input files
272 : # requirements
273 <define>TEST_MPZ
274 [ check-target-builds ../config//has_gmp : : <build>no ]
275 : test_numeric_limits_mpz ]
276
277 [ run test_numeric_limits.cpp gmp no_eh_support
278 : # command line
279 : # input files
280 : # requirements
281 <define>TEST_MPQ
282 [ check-target-builds ../config//has_gmp : : <build>no ]
283 : test_numeric_limits_mpq ]
284
285 [ run test_numeric_limits.cpp mpfr gmp no_eh_support
286 : # command line
287 : # input files
288 : # requirements
289 <define>TEST_MPFR
290 [ check-target-builds ../config//has_mpfr : : <build>no ]
291 : test_numeric_limits_mpfr ]
292
293 [ run test_numeric_limits.cpp mpfr gmp no_eh_support
294 : # command line
295 : # input files
296 : # requirements
297 <define>TEST_MPFR_50
298 [ check-target-builds ../config//has_mpfr : : <build>no ]
299 : test_numeric_limits_mpfr_50 ]
300
301 [ run test_numeric_limits.cpp no_eh_support
302 : # command line
303 : # input files
304 : # requirements
305 <define>TEST_CPP_DEC_FLOAT
306 : test_numeric_limits_cpp_dec_float ]
307
308 [ run test_numeric_limits.cpp no_eh_support
309 : # command line
310 : # input files
311 : # requirements
312 <define>TEST_CPP_BIN_FLOAT
313 : test_numeric_limits_cpp_bin_float ]
314
315 [ run test_numeric_limits.cpp $(TOMMATH) no_eh_support
316 : # command line
317 : # input files
318 : # requirements
319 <define>TEST_TOMMATH
320 [ check-target-builds ../config//has_tommath : : <build>no ]
321 : test_numeric_limits_tommath ]
322
323 [ run test_numeric_limits.cpp no_eh_support
324 : # command line
325 : # input files
326 : # requirements
327 <define>TEST_CPP_INT
328 : test_numeric_limits_cpp_int ]
329
330 [ run test_numeric_limits.cpp mpfi mpfr gmp no_eh_support
331 : # command line
332 : # input files
333 : # requirements
334 <define>TEST_MPFI_50
335 [ check-target-builds ../config//has_mpfi : : <build>no ]
336 : test_numeric_limits_mpfi_50 ]
337
338 [ run test_numeric_limits.cpp quadmath no_eh_support
339 : # command line
340 : # input files
341 : # requirements
342 <define>TEST_FLOAT128
343 [ check-target-builds ../config//has_float128 : : <build>no ]
344 : test_numeric_limits_float128 ]
345 [ run test_numeric_limits.cpp no_eh_support
346 : # command line
347 : # input files
348 : # requirements
349 <define>TEST_FLOAT128
350 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
351 : test_numeric_limits_intel_quad ]
352
353 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_2 : test_sf_import_c99_cpp_dec_float_2 ]
354 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_3 : test_sf_import_c99_cpp_dec_float_3 ]
355 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_4 : test_sf_import_c99_cpp_dec_float_4 ]
356 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_5 : test_sf_import_c99_cpp_dec_float_5 ]
357 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_6 : test_sf_import_c99_cpp_dec_float_6 ]
358
359 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_BIN_FLOAT_2 : test_sf_import_c99_cpp_bin_float_2 ]
360 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_BIN_FLOAT_2 : test_sf_import_c99_cpp_bin_float_3 ]
361
362 [ run test_move.cpp mpfr gmp no_eh_support
363 : # command line
364 : # input files
365 : # requirements
366 <define>TEST_MPFR
367 [ check-target-builds ../config//has_mpfr : : <build>no ]
368 : test_move_mpfr ]
369
370 [ run test_move.cpp mpc mpfr gmp no_eh_support
371 : # command line
372 : # input files
373 : # requirements
374 <define>TEST_MPC
375 [ check-target-builds ../config//has_mpc : : <build>no ]
376 : test_move_mpc ]
377
378 [ run test_move.cpp gmp no_eh_support
379 : # command line
380 : # input files
381 : # requirements
382 <define>TEST_GMP
383 [ check-target-builds ../config//has_gmp : : <build>no ]
384 : test_move_gmp ]
385
386 [ run test_move.cpp $(TOMMATH) no_eh_support
387 : # command line
388 : # input files
389 : # requirements
390 <define>TEST_TOMMATH
391 [ check-target-builds ../config//has_tommath : : <build>no ]
392 : test_move_tommath ]
393
394 [ run test_move.cpp no_eh_support
395 : # command line
396 : # input files
397 : # requirements
398 <define>TEST_CPP_INT
399 : test_move_cpp_int ]
400
401 [ get_function_tests ]
402 ;
403
404 test-suite conversions :
405
406 [ run test_gmp_conversions.cpp gmp no_eh_support
407 : # command line
408 : # input files
409 : # requirements
410 [ check-target-builds ../config//has_gmp : : <build>no ] ]
411
412 [ run test_mpfr_conversions.cpp gmp mpfr no_eh_support
413 : # command line
414 : # input files
415 : # requirements
416 [ check-target-builds ../config//has_mpfr : : <build>no ] ]
417
418 [ run test_mpc_conversions.cpp gmp mpfr mpc no_eh_support
419 : # command line
420 : # input files
421 : # requirements
422 [ check-target-builds ../config//has_mpc : : <build>no ] ]
423
424 [ run test_constants.cpp gmp no_eh_support
425 : # command line
426 : # input files
427 : # requirements
428 <define>TEST_MPF_50
429 [ check-target-builds ../config//has_gmp : : <build>no ]
430 : test_constants_mpf50 ]
431
432 [ run test_constants.cpp mpfr gmp no_eh_support
433 : # command line
434 : # input files
435 : # requirements
436 <define>TEST_MPFR_50
437 [ check-target-builds ../config//has_mpfr : : <build>no ]
438 : test_constants_mpfr_50 ]
439
440 [ run test_constants.cpp no_eh_support
441 : # command line
442 : # input files
443 : # requirements
444 <define>TEST_CPP_DEC_FLOAT
445 : test_constants_cpp_dec_float ]
446
447
448 [ run test_test.cpp ]
449 [ run test_cpp_int_lit.cpp no_eh_support ]
450
451 #
452 # Interconversion tests:
453 #
454 [ run test_convert_from_cpp_int.cpp
455 : # command line
456 : # input files
457 : # requirements
458 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
459 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
460 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
461 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
462 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
463 ]
464 [ run test_convert_from_mpz_int.cpp
465 : # command line
466 : # input files
467 : # requirements
468 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
469 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
470 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
471 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
472 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
473 ]
474 [ run test_convert_from_tom_int.cpp
475 : # command line
476 : # input files
477 : # requirements
478 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
479 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
480 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
481 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
482 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
483 ]
484 [ run test_convert_from_cpp_rational.cpp
485 : # command line
486 : # input files
487 : # requirements
488 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
489 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
490 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
491 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
492 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
493 ]
494 [ run test_convert_from_gmp_rational.cpp
495 : # command line
496 : # input files
497 : # requirements
498 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
499 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
500 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
501 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
502 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
503 ]
504 [ run test_convert_from_tom_rational.cpp
505 : # command line
506 : # input files
507 : # requirements
508 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
509 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
510 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
511 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
512 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
513 ]
514 [ run test_convert_from_cpp_bin_float.cpp
515 : # command line
516 : # input files
517 : # requirements
518 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
519 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
520 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
521 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
522 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
523 ]
524 [ run test_convert_from_cpp_dec_float.cpp
525 : # command line
526 : # input files
527 : # requirements
528 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
529 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
530 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
531 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
532 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
533 ]
534 [ run test_convert_from_mpf_float.cpp
535 : # command line
536 : # input files
537 : # requirements
538 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
539 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
540 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
541 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
542 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
543 ]
544 [ run test_convert_from_mpfr_float.cpp
545 : # command line
546 : # input files
547 : # requirements
548 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
549 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
550 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
551 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
552 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
553 ]
554 [ run test_convert_from_mpfi_float.cpp
555 : # command line
556 : # input files
557 : # requirements
558 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
559 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
560 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
561 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
562 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
563 ]
564 [ run test_convert_from_float128.cpp
565 : # command line
566 : # input files
567 : # requirements
568 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
569 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
570 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
571 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
572 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
573 ]
574
575 [ run test_cpp_bin_float_conv.cpp ]
576
577 [ run test_cpp_bin_float_io.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
578 : # command line
579 : # input files
580 : # requirements
581 <define>TEST_CPP_BIN_FLOAT
582 <define>TEST1
583 release # Otherwise [ runtime is slow
584 : test_cpp_bin_float_io_1
585 ]
586
587 [ run test_cpp_bin_float_io.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
588 : # command line
589 : # input files
590 : # requirements
591 <define>TEST_CPP_BIN_FLOAT
592 <define>TEST2
593 release # Otherwise [ runtime is slow
594 : test_cpp_bin_float_io_2
595 ]
596
597 [ run test_cpp_bin_float.cpp no_eh_support mpfr gmp /boost/system//boost_system /boost/chrono//boost_chrono
598 : # command line
599 : # input files
600 : # requirements
601 <define>TEST_MPFR
602 [ check-target-builds ../config//has_mpfr : : <build>no ]
603 release # Otherwise [ runtime is slow
604 ]
605
606 [ run test_float_io.cpp no_eh_support
607 : # command line
608 : # input files
609 : # requirements
610 <define>TEST_CPP_DEC_FLOAT
611 release # Otherwise [ runtime is slow
612 : test_float_io_cpp_dec_float ]
613
614 [ run test_float_io.cpp gmp no_eh_support
615 : # command line
616 : # input files
617 : # requirements
618 <define>TEST_MPF_50
619 release # Otherwise [ runtime is slow
620 [ check-target-builds ../config//has_gmp : : <build>no ]
621 : test_float_io_mpf ]
622
623 [ run test_float_io.cpp mpfr gmp no_eh_support
624 : # command line
625 : # input files
626 : # requirements
627 <define>TEST_MPFR_50
628 release # Otherwise [ runtime is slow
629 [ check-target-builds ../config//has_mpfr : : <build>no ]
630 : test_float_io_mpfr ]
631
632 [ run test_float_io.cpp mpfi mpfr gmp no_eh_support
633 : # command line
634 : # input files
635 : # requirements
636 <define>TEST_MPFI_50
637 release # Otherwise [ runtime is slow
638 [ check-target-builds ../config//has_mpfi : : <build>no ]
639 : test_float_io_mpfi ]
640
641 [ run test_float_io.cpp quadmath no_eh_support
642 : # command line
643 : # input files
644 : # requirements
645 <define>TEST_FLOAT128
646 release # Otherwise [ runtime is slow
647 [ check-target-builds ../config//has_float128 : : <build>no ]
648 : test_float_io_float128 ]
649 [ run test_float_io.cpp no_eh_support
650 : # command line
651 : # input files
652 : # requirements
653 <define>TEST_FLOAT128
654 release # Otherwise [ runtime is slow
655 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
656 : test_float_io_intel_quad ]
657
658 [ run test_int_io.cpp no_eh_support $(TOMMATH)
659 : # command line
660 : # input files
661 : # requirements
662 <define>TEST_TOMMATH
663 release # Otherwise [ runtime is slow
664 [ check-target-builds ../config//has_tommath : : <build>no ]
665 : test_int_io_tommath ]
666
667 [ run test_int_io.cpp no_eh_support gmp
668 : # command line
669 : # input files
670 : # requirements
671 <define>TEST_MPZ
672 release # Otherwise [ runtime is slow
673 [ check-target-builds ../config//has_gmp : : <build>no ]
674 : test_int_io_mpz ]
675
676 ;
677
678
679 test-suite cpp_int_tests :
680
681 [ run test_int_io.cpp no_eh_support
682 : # command line
683 : # input files
684 : # requirements
685 <define>TEST_CPP_INT
686 release # Otherwise [ runtime is slow
687 : test_int_io_cpp_int ]
688
689 [ run test_cpp_int_left_shift.cpp gmp no_eh_support
690 : # command line
691 : # input files
692 : # requirements
693 [ check-target-builds ../config//has_gmp : : <build>no ]
694 release # otherwise [ runtime is too slow!!
695 ]
696
697 [ run test_cpp_int.cpp gmp no_eh_support
698 : # command line
699 : # input files
700 : # requirements
701 [ check-target-builds ../config//has_gmp : : <build>no ]
702 release # otherwise [ runtime is too slow!!
703 <define>TEST1
704 : test_cpp_int_1
705 ]
706
707 [ run test_cpp_int.cpp gmp no_eh_support
708 : # command line
709 : # input files
710 : # requirements
711 [ check-target-builds ../config//has_gmp : : <build>no ]
712 release # otherwise [ runtime is too slow!!
713 <define>TEST2
714 : test_cpp_int_2
715 ]
716
717 [ run test_cpp_int.cpp gmp no_eh_support
718 : # command line
719 : # input files
720 : # requirements
721 [ check-target-builds ../config//has_gmp : : <build>no ]
722 release # otherwise [ runtime is too slow!!
723 <define>TEST3
724 : test_cpp_int_3
725 ]
726
727 [ run test_cpp_int.cpp gmp no_eh_support
728 : # command line
729 : # input files
730 : # requirements
731 [ check-target-builds ../config//has_gmp : : <build>no ]
732 release # otherwise [ runtime is too slow!!
733 <define>TEST4
734 : test_cpp_int_4
735 ]
736
737 [ run test_cpp_int.cpp gmp no_eh_support
738 : # command line
739 : # input files
740 : # requirements
741 [ check-target-builds ../config//has_gmp : : <build>no ]
742 release # otherwise [ runtime is too slow!!
743 <define>TEST5
744 : test_cpp_int_5
745 ]
746
747 [ run test_cpp_int.cpp gmp no_eh_support
748 : # command line
749 : # input files
750 : # requirements
751 [ check-target-builds ../config//has_gmp : : <build>no ]
752 release # otherwise [ runtime is too slow!!
753 <define>TEST6
754 : test_cpp_int_6
755 ]
756
757 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
758 : # command line
759 : # input files
760 : # requirements
761 [ check-target-builds ../config//has_gmp : : <build>no ]
762 release # otherwise [ runtime is too slow!!
763 <define>TEST=1
764 : test_cpp_int_karatsuba_1
765 ]
766 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
767 : # command line
768 : # input files
769 : # requirements
770 [ check-target-builds ../config//has_gmp : : <build>no ]
771 release # otherwise [ runtime is too slow!!
772 <define>TEST=2
773 : test_cpp_int_karatsuba_2
774 ]
775 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
776 : # command line
777 : # input files
778 : # requirements
779 [ check-target-builds ../config//has_gmp : : <build>no ]
780 release # otherwise [ runtime is too slow!!
781 <define>TEST=3
782 : test_cpp_int_karatsuba_3
783 ]
784 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
785 : # command line
786 : # input files
787 : # requirements
788 [ check-target-builds ../config//has_gmp : : <build>no ]
789 release # otherwise [ runtime is too slow!!
790 <define>TEST=4
791 : test_cpp_int_karatsuba_4
792 ]
793
794 [ run test_checked_cpp_int.cpp no_eh_support ]
795 [ run test_unchecked_cpp_int.cpp no_eh_support : : : release ]
796
797 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST1 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_1 ]
798 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST2 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_2 ]
799 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST3 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_3 ]
800 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST4 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_4 ]
801 [ run test_cpp_int_deserial.cpp ../../serialization/build//boost_serialization ../../filesystem/build//boost_filesystem : $(here)/serial_txts : : release <toolset>gcc-mingw:<link>static ]
802 [ run test_cpp_rat_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static ]
803
804 ;
805
806 test-suite misc :
807
808 [ compile test_constexpr.cpp :
809 [ check-target-builds ../config//has_float128 : <define>HAVE_FLOAT128 : ]
810 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type <define>HAVE_FLOAT128 : ]
811 [ requires cxx11_constexpr cxx11_user_defined_literals ] ]
812
813 [ compile constexpr_test_arithmetic_backend.cpp :
814 [ requires cxx14_constexpr cxx17_if_constexpr ] ]
815 [ compile constexpr_test_float128.cpp :
816 [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_float128 : <source>quadmath : <build>no ] ]
817
818 [ run constexpr_test_cpp_int.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
819 [ run constexpr_test_cpp_int_2.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
820 [ run constexpr_test_cpp_int_3.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
821 [ run constexpr_test_cpp_int_4.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
822 [ run constexpr_test_cpp_int_5.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
823 [ run constexpr_test_cpp_int_6.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : <toolset>msvc:<cxxflags>-constexpr:steps10000000 <toolset>clang:<cxxflags>-fconstexpr-steps=268435456 : <build>no ] [ check-target-builds ../config//has_constexpr_limits : <cxxflags>-fconstexpr-ops-limit=268435456 ] ]
824 [ run constexpr_test_cpp_int_7.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : <toolset>msvc:<cxxflags>-constexpr:steps10000000 <toolset>clang:<cxxflags>-fconstexpr-steps=268435456 : <build>no ] ]
825
826 [ compile test_nothrow_cpp_int.cpp ]
827 [ compile test_nothrow_cpp_rational.cpp ]
828 [ compile test_nothrow_cpp_bin_float.cpp ]
829 [ compile test_nothrow_cpp_dec_float.cpp ]
830 [ compile test_nothrow_float128.cpp : [ check-target-builds ../config//has_float128 : : <build>no ] ]
831 [ compile test_nothrow_gmp.cpp : [ check-target-builds ../config//has_gmp : : <build>no ] ]
832 [ compile test_nothrow_mpfr.cpp : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
833
834 [ run test_miller_rabin.cpp no_eh_support gmp
835 : # command line
836 : # input files
837 : # requirements
838 [ check-target-builds ../config//has_gmp : : <build>no ]
839 release # otherwise [ runtime is too slow!!
840 ]
841
842 [ run test_rational_io.cpp $(TOMMATH) no_eh_support
843 : # command line
844 : # input files
845 : # requirements
846 <define>TEST_TOMMATH
847 [ check-target-builds ../config//has_tommath : : <build>no ]
848 release # Otherwise [ runtime is slow
849 : test_rational_io_tommath ]
850
851 [ run test_rational_io.cpp gmp no_eh_support
852 : # command line
853 : # input files
854 : # requirements
855 <define>TEST_MPQ
856 [ check-target-builds ../config//has_gmp : : <build>no ]
857 release # Otherwise [ runtime is slow
858 : test_rational_io_mpz ]
859
860 [ run test_rational_io.cpp no_eh_support
861 : # command line
862 : # input files
863 : # requirements
864 <define>TEST_CPP_INT
865 release # Otherwise [ runtime is slow
866 : test_rational_io_cpp_int ]
867
868 [ run test_generic_conv.cpp no_eh_support
869 : # command line
870 : # input files
871 : # requirements
872 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
873 [ check-target-builds ../config//has_tommath : <define>TEST_TOMMATH <source>$(TOMMATH) : ]
874 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>mpfr : ]
875 release # Otherwise [ runtime is slow
876 ]
877
878 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
879 : # command line
880 : # input files
881 : # requirements
882 <define>TEST1
883 release
884 : test_rat_float_interconv_1 ]
885
886 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
887 : # command line
888 : # input files
889 : # requirements
890 <define>TEST2
891 release
892 : test_rat_float_interconv_2 ]
893
894 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
895 : # command line
896 : # input files
897 : # requirements
898 <define>TEST3
899 release
900 : test_rat_float_interconv_3 ]
901
902 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
903 : # command line
904 : # input files
905 : # requirements
906 <define>TEST4
907 release
908 : test_rat_float_interconv_4 ]
909
910 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
911 : # command line
912 : # input files
913 : # requirements
914 <define>TEST5
915 [ check-target-builds ../config//has_mpfr : : <build>no ]
916 release
917 : test_rat_float_interconv_5 ]
918
919 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
920 : # command line
921 : # input files
922 : # requirements
923 <define>TEST6
924 [ check-target-builds ../config//has_mpfr : : <build>no ]
925 release
926 : test_rat_float_interconv_6 ]
927
928 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
929 : # command line
930 : # input files
931 : # requirements
932 <define>TEST7
933 [ check-target-builds ../config//has_mpfr : : <build>no ]
934 release
935 : test_rat_float_interconv_7 ]
936
937 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
938 : # command line
939 : # input files
940 : # requirements
941 <define>TEST8
942 [ check-target-builds ../config//has_mpfr : : <build>no ]
943 release
944 : test_rat_float_interconv_8 ]
945
946 [ run test_cpp_int_conv.cpp no_eh_support ]
947 [ run test_cpp_int_import_export.cpp no_eh_support ]
948 [ run test_native_integer.cpp no_eh_support ]
949
950 [ run test_mixed_cpp_int.cpp no_eh_support ]
951 [ run test_mixed_float.cpp no_eh_support
952 : # command line
953 : # input files
954 : # requirements
955 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <library>gmp : ]
956 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <library>mpfr <library>gmp : ] ]
957 [ compile include_test/mpfr_include_test.cpp
958 : # requirements
959 [ check-target-builds ../config//has_mpfr : : <build>no ] ]
960 [ compile include_test/gmp_include_test.cpp
961 : # requirements
962 [ check-target-builds ../config//has_gmp : : <build>no ] ]
963 [ compile include_test/tommath_include_test.cpp
964 : # requirements
965 [ check-target-builds ../config//has_tommath : : <build>no ] ]
966 [ compile include_test/cpp_int_include_test.cpp ]
967 [ compile include_test/cpp_dec_float_include_test.cpp ]
968 [ compile include_test/cpp_bin_float_include_test.cpp ]
969
970 [ run ublas_interop/test1.cpp ublas_interop/test11.cpp ublas_interop/test12.cpp ublas_interop/test13.cpp no_eh_support ]
971 [ run ublas_interop/test2.cpp ublas_interop/test21.cpp ublas_interop/test22.cpp ublas_interop/test23.cpp no_eh_support ]
972 #[ run ublas_interop/test3.cpp ublas_interop/test31.cpp ublas_interop/test32.cpp ublas_interop/test33.cpp ]
973 [ run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp no_eh_support ]
974 [ run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp no_eh_support ]
975 [ run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp no_eh_support ]
976 #[ run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp ]
977
978 [ run ublas_interop/test1.cpp ublas_interop/test11.cpp ublas_interop/test12.cpp ublas_interop/test13.cpp no_eh_support : : : <define>TEST_ET=1 : ublas1_et ]
979 [ run ublas_interop/test2.cpp ublas_interop/test21.cpp ublas_interop/test22.cpp ublas_interop/test23.cpp no_eh_support : : : <define>TEST_ET=1 : ublas2_et ]
980 #[ run ublas_interop/test3.cpp ublas_interop/test31.cpp ublas_interop/test32.cpp ublas_interop/test33.cpp : : : <define>TEST_ET=1 : ublas3_et ]
981 [ run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp no_eh_support : : : <define>TEST_ET=1 : ublas3_et ]
982 [ run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp no_eh_support : : : <define>TEST_ET=1 : ublas4_et ]
983 [ run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp no_eh_support : : : <define>TEST_ET=1 : ublas5_et ]
984 #[ run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp : : : <define>TEST_ET=1 : ublas6_et ]
985
986 #
987 # Serialization tests, run in release mode so we cycle through more values:
988 #
989 [ run test_adapt_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static ]
990 [ run test_cpp_dec_float_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST1 <toolset>gcc-mingw:<link>static : test_cpp_dec_float_serial_1 ]
991 [ run test_cpp_dec_float_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST2 <toolset>gcc-mingw:<link>static : test_cpp_dec_float_serial_2 ]
992 [ run test_float128_serial.cpp ../../serialization/build//boost_serialization quadmath : : : release <toolset>gcc-mingw:<link>static [ check-target-builds ../config//has_float128 : : <build>no ] ]
993 [ run test_cpp_bin_float_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static <define>TEST1 : test_bin_dec_float_serial_1 ]
994 [ run test_cpp_bin_float_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST2 <toolset>gcc-mingw:<link>static : test_bin_dec_float_serial_2 ]
995
996 #
997 # Mixed mode comparison tests, see: https://svn.boost.org/trac/boost/ticket/11328
998 #
999 [ run test_checked_mixed_cpp_int.cpp no_eh_support ]
1000 [ run test_mixed_cpp_bin_float.cpp no_eh_support ]
1001 [ run test_mixed_cpp_dec_float.cpp no_eh_support ]
1002 [ run test_mixed_mpf_float.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
1003 [ run test_mixed_mpfr_float.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1004 #
1005 # Check for narrowing conversions:
1006 #
1007 [ run test_float_conversions.cpp no_eh_support ]
1008 #
1009 # specific bug cases:
1010 #
1011 [ compile bug11922.cpp ]
1012 [ run bug12039.cpp no_eh_support ]
1013 [ compile git_issue_30.cpp ]
1014 [ run git_issue_167.cpp ]
1015 [ run git_issue_175.cpp ]
1016 [ compile git_issue_98.cpp :
1017 [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1018 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
1019 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
1020 [ check-target-builds ../config//has_mpc : <define>TEST_MPC <source>gmp <source>mpfr <source>mpc : ] ]
1021 [ run issue_13301.cpp ]
1022 [ run issue_13148.cpp ]
1023 [ run test_hash.cpp : : :
1024 [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1025 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
1026 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
1027 [ check-target-builds ../config//has_mpfi : <define>TEST_MPFI <source>gmp <source>mpfr <source>mpfi : ]
1028 [ check-target-builds ../config//has_tommath : <define>TEST_TOMMATH <source>tommath : ]
1029 ]
1030 [ run test_optional_compat.cpp ]
1031 #
1032 # Eigen interoperability:
1033 #
1034 [ run test_eigen_interop_cpp_int.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1035 [ run test_eigen_interop_cpp_dec_float.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1036 [ run test_eigen_interop_cpp_dec_float_2.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1037 [ run test_eigen_interop_cpp_dec_float_3.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1038 [ run test_eigen_interop_cpp_bin_float_1.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1039 [ run test_eigen_interop_cpp_bin_float_2.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1040 [ run test_eigen_interop_cpp_bin_float_3.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1041 [ run test_eigen_interop_mpfr_1.cpp mpfr gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1042 [ run test_eigen_interop_mpfr_2.cpp mpfr gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1043 [ run test_eigen_interop_mpfr_3.cpp mpfr gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1044 [ run test_eigen_interop_gmp.cpp gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_gmp : : <build>no ] ]
1045 [ run test_eigen_interop_mpc.cpp mpc mpfr gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_mpc : : <build>no ] ]
1046 ;
1047
1048
1049 #
1050 # This take too long to run as a regular part of the tests:
1051 #
1052 run test_cpp_bin_float_round.cpp mpfr gmp ;
1053 explicit test_cpp_bin_float_round ;
1054
1055 rule get_specfun_tests
1056 {
1057 local result ;
1058 for local source in [ glob math/*.cpp ]
1059 {
1060 result += [ run $(source) mpfr gmp
1061 /boost/test//boost_unit_test_framework/<link>static
1062 /boost/regex//boost_regex/<link>static
1063 math/instances//test_instances_mpfr/<link>static
1064 : # command line
1065 : # input files
1066 : # requirements
1067 [ check-target-builds ../config//has_mpfr : : <build>no ]
1068 <define>TEST_MPFR_50
1069 <optimization>speed
1070 <define>BOOST_ALL_NO_LIB
1071 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1072 <toolset>msvc:<cxxflags>-bigobj
1073 <include>../../math/include_private
1074 release
1075 : $(source:B)_mpfr ] ;
1076 result += [ run $(source) gmp
1077 /boost/test//boost_unit_test_framework/<link>static
1078 /boost/regex//boost_regex/<link>static
1079 math/instances//test_instances_mpf/<link>static
1080 : # command line
1081 : # input files
1082 : # requirements
1083 [ check-target-builds ../config//has_gmp : : <build>no ]
1084 <optimization>speed
1085 <define>TEST_MPF_50
1086 <define>BOOST_ALL_NO_LIB
1087 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1088 <toolset>msvc:<cxxflags>-bigobj
1089 <include>../../math/include_private
1090 release
1091 : $(source:B)_mpf ] ;
1092 result += [ run $(source) /boost/test//boost_unit_test_framework/<link>static
1093 /boost/regex//boost_regex/<link>static
1094 math/instances//test_instances_cpp_dec_float/<link>static
1095 : # command line
1096 : # input files
1097 : # requirements
1098 <define>TEST_CPP_DEC_FLOAT
1099 <define>BOOST_ALL_NO_LIB
1100 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1101 <optimization>speed
1102 <toolset>msvc:<cxxflags>-bigobj
1103 <include>../../math/include_private
1104 release
1105 : $(source:B)_cpp_dec_float ] ;
1106 result += [ run $(source) /boost/test//boost_unit_test_framework/<link>static
1107 /boost/regex//boost_regex/<link>static
1108 math/instances//test_instances_cpp_bin_float/<link>static
1109 : # command line
1110 : # input files
1111 : # requirements
1112 <define>TEST_CPP_BIN_FLOAT
1113 <define>BOOST_ALL_NO_LIB
1114 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1115 <optimization>speed
1116 <toolset>msvc:<cxxflags>-bigobj
1117 <include>../../math/include_private
1118 release
1119 : $(source:B)_cpp_bin_float ] ;
1120 result += [ run $(source) quadmath
1121 /boost/test//boost_unit_test_framework/<link>static
1122 /boost/regex//boost_regex/<link>static
1123 math/instances//test_instances_float128/<link>static
1124 : # command line
1125 : # input files
1126 : # requirements
1127 [ check-target-builds ../config//has_float128 : : <build>no ]
1128 <optimization>speed
1129 <define>TEST_FLOAT128
1130 <define>BOOST_ALL_NO_LIB
1131 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1132 <toolset>msvc:<cxxflags>-bigobj
1133 <include>../../math/include_private
1134 release
1135 : $(source:B)_float128 ] ;
1136 result += [ run $(source)
1137 /boost/test//boost_unit_test_framework/<link>static
1138 /boost/regex//boost_regex/<link>static
1139 math/instances//test_instances_intel_quad/<link>static
1140 : # command line
1141 : # input files
1142 : # requirements
1143 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
1144 <optimization>speed
1145 <define>TEST_FLOAT128
1146 <define>BOOST_ALL_NO_LIB
1147 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1148 <toolset>msvc:<cxxflags>-bigobj
1149 <include>../../math/include_private
1150 release
1151 : $(source:B)_intel_quad ] ;
1152 }
1153 #
1154 # High precision tests are rather different, as they test only one
1155 # multiprecision type and are more a test of Boost.Math:
1156 #
1157 for local source in [ glob math/high_prec/*.cpp ]
1158 {
1159 result += [ run $(source)
1160 /boost/test//boost_unit_test_framework/<link>static
1161 /boost/regex//boost_regex/<link>static
1162 : # command line
1163 : # input files
1164 : # requirements
1165 <optimization>speed
1166 <define>BOOST_ALL_NO_LIB
1167 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1168 <toolset>msvc:<cxxflags>-bigobj
1169 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
1170 <include>../../math/include_private
1171 release ] ;
1172 }
1173 return $(result) ;
1174 }
1175
1176 test-suite specfun : [ get_specfun_tests ] ;
1177 explicit specfun ;
1178
1179 rule get_compile_fail_tests
1180 {
1181
1182 local compile_fail_tests ;
1183
1184 for local source in [ glob compile_fail/*.cpp ]
1185 {
1186 compile_fail_tests += $(source:B) ;
1187 compile-fail $(source)
1188 :
1189 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <debug-symbols>off : ]
1190 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <debug-symbols>off : ]
1191 ;
1192 }
1193 return $(compile_fail_tests) ;
1194 }
1195
1196 test-suite compile_fail : [ get_compile_fail_tests ] ;
1197
1198 rule get_concept_checks
1199 {
1200 local result ;
1201 for local source in [ glob concepts/*.cpp ]
1202 {
1203
1204 result += [ compile $(source) mpfr
1205 : # requirements
1206 <define>TEST_MPFR_50
1207 [ check-target-builds ../config//has_mpfr : : <build>no ]
1208 <debug-symbols>off
1209 <optimization>space
1210 : $(source:B)_mpfr_50 ] ;
1211
1212 result += [ compile $(source) mpfr
1213 : # requirements
1214 <define>TEST_MPFR_6
1215 [ check-target-builds ../config//has_mpfr : : <build>no ]
1216 <debug-symbols>off
1217 <optimization>space
1218 : $(source:B)_mpfr_6 ] ;
1219
1220 result += [ compile $(source) mpfr
1221 : # requirements
1222 <define>TEST_MPFR_15
1223 [ check-target-builds ../config//has_mpfr : : <build>no ]
1224 <debug-symbols>off
1225 <optimization>space
1226 : $(source:B)_mpfr_15 ] ;
1227
1228 result += [ compile $(source) mpfr
1229 : # requirements
1230 <define>TEST_MPFR_17
1231 [ check-target-builds ../config//has_mpfr : : <build>no ]
1232 <debug-symbols>off
1233 <optimization>space
1234 : $(source:B)_mpfr_17 ] ;
1235
1236 result += [ compile $(source) mpfr
1237 : # requirements
1238 <define>TEST_MPFR_30
1239 [ check-target-builds ../config//has_mpfr : : <build>no ]
1240 <debug-symbols>off
1241 <optimization>space
1242 : $(source:B)_mpfr_30 ] ;
1243
1244 result += [ compile $(source) gmp
1245 : # requirements
1246 <define>TEST_MPF_50
1247 [ check-target-builds ../config//has_gmp : : <build>no ]
1248 <debug-symbols>off
1249 <optimization>space
1250 : $(source:B)_mpf50 ] ;
1251
1252 result += [ compile $(source)
1253 : # requirements
1254 <define>TEST_CPP_DEC_FLOAT
1255 <debug-symbols>off
1256 <optimization>space
1257 : $(source:B)_cpp_dec_float ] ;
1258
1259 result += [ compile $(source)
1260 : # requirements
1261 <define>TEST_CPP_BIN_FLOAT
1262 <debug-symbols>off
1263 <optimization>space
1264 : $(source:B)_cpp_bin_float ] ;
1265
1266 result += [ compile $(source)
1267 : # requirements
1268 <define>TEST_CPP_DEC_FLOAT_NO_ET
1269 <debug-symbols>off
1270 <optimization>space
1271 : $(source:B)_cpp_dec_float_no_et ] ;
1272
1273 result += [ compile $(source)
1274 : # requirements
1275 <define>TEST_BACKEND
1276 <debug-symbols>off
1277 <optimization>space
1278 : $(source:B)_backend_concept ] ;
1279
1280 result += [ compile $(source)
1281 : # requirements
1282 <define>TEST_LOGGED_ADAPTER
1283 <debug-symbols>off
1284 <optimization>space
1285 : $(source:B)_logged_adaptor ] ;
1286 }
1287 return $(result) ;
1288 }
1289
1290 test-suite concepts : [ get_concept_checks ] ;
1291
1292 test-suite examples : ../example//examples ;
1293 test-suite performance : ../performance//performance ;