]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/multiprecision/test/Jamfile.v2
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / multiprecision / test / Jamfile.v2
CommitLineData
7c673cae
FG
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
b32b8144 6import testing ;
7c673cae
FG
7import modules ;
8import path ;
9import ../../config/checks/config : requires ;
10
11local ntl-path = [ modules.peek : NTL_PATH ] ;
12local gmp_path = [ modules.peek : GMP_PATH ] ;
13local mpfr_path = [ modules.peek : MPFR_PATH ] ;
14local mpfi_path = [ modules.peek : MPFI_PATH ] ;
15local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
16
92f5a8d4
TL
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#
f67539c2 33# You can run an individual suite by passing its name to b2 on the command line.
92f5a8d4
TL
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
42path-constant here : . ;
43
7c673cae
FG
44project : 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
92f5a8d4 58 <toolset>msvc:<cxxflags>/fp\:precise
7c673cae
FG
59 <toolset>intel-win:<runtime-link>static
60 <toolset>intel-win:<link>static
f67539c2
TL
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
92f5a8d4
TL
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
7c673cae
FG
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
f67539c2 79 #<toolset>intel:<define>SLOW_COMPILER
7c673cae
FG
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
1e59de90
TL
84 [ requires
85 cxx11_rvalue_references cxx11_template_aliases cxx11_hdr_array cxx11_allocator cxx11_constexpr cxx11_explicit_conversion_operators cxx11_ref_qualifiers
86 cxx11_hdr_functional cxx11_variadic_templates cxx11_user_defined_literals cxx11_decltype cxx11_static_assert cxx11_defaulted_functions
87 cxx11_noexcept cxx11_ref_qualifiers cxx11_user_defined_literals cxx11_hdr_type_traits
88 ]
7c673cae
FG
89 ;
90
91local enable-specfun = [ MATCH (--enable-specfun) : [ modules.peek : ARGV ] ] ;
92local disable-concepts = [ MATCH (--disable-concepts) : [ modules.peek : ARGV ] ] ;
93
94lib gmp : : <search>$(gmp_path) ;
95lib mpfr : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug ;
96lib mpfi : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug <search>$(mpfi_path) <search>$(mpfi_path)/src ;
97lib quadmath ;
92f5a8d4 98lib mpc ;
7c673cae
FG
99
100if $(tommath_path)
101{
f67539c2 102 lib tommath : [ GLOB $(tommath_path) : *.c ] : <visibility>global ;
7c673cae
FG
103 TOMMATH = tommath ;
104}
105else
106{
107 lib tommath : : <search>$(tommath_path) ;
108 TOMMATH = tommath ;
109}
110
111lib no_eh_support : no_eh_test_support.cpp ;
112
92f5a8d4
TL
113test-suite arithmetic_tests :
114
115 [ run test_arithmetic_backend_concept.cpp no_eh_support ]
f67539c2 116 [ compile test_arithmetic_skeleton.cpp ]
92f5a8d4 117
1e59de90
TL
118 [ run test_arithmetic_cpp_dec_float_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
119 [ run test_arithmetic_cpp_dec_float_2.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
120 [ run test_arithmetic_cpp_dec_float_3.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
121 [ run test_arithmetic_cpp_dec_float_3m.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
122
123 [ run test_arithmetic_cpp_bin_float_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
124 [ run test_arithmetic_cpp_bin_float_2.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
125 [ run test_arithmetic_cpp_bin_float_2m.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
126 [ run test_arithmetic_cpp_bin_float_3.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
127 [ run test_arithmetic_cpp_bin_float_4.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
128 [ run test_arithmetic_cpp_bin_float_5.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
129
130 [ run test_arithmetic_mpf_50.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
131 [ run test_arithmetic_mpf.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
132 [ run test_arithmetic_mpz.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
133 [ run test_arithmetic_mpz_rat.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
134 [ run test_arithmetic_mpz_br.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
135 [ run test_arithmetic_mpq.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
136
137 [ run test_arithmetic_mpfr.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
138 [ run test_arithmetic_mpfr_50.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
139 [ run test_arithmetic_mpfr_50_static.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
140
141 [ run test_arithmetic_tommath.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
142 [ run test_arithmetic_tommath_rat.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
143 [ run test_arithmetic_tommath_br.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
144
145 [ run test_arithmetic_cpp_int_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
146 [ run test_arithmetic_cpp_int_2.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
147 [ run test_arithmetic_cpp_int_3.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
148 [ run test_arithmetic_cpp_int_4.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
149 [ run test_arithmetic_cpp_int_5.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
150 [ run test_arithmetic_cpp_int_6.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
151 [ run test_arithmetic_cpp_int_7.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
152 [ run test_arithmetic_cpp_int_8.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
153 [ run test_arithmetic_cpp_int_9.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
154 [ run test_arithmetic_cpp_int_10.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
155 [ run test_arithmetic_cpp_int_11.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
156 [ run test_arithmetic_cpp_int_12.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
157 [ run test_arithmetic_cpp_int_13.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
158 [ run test_arithmetic_cpp_int_14.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
159 [ run test_arithmetic_cpp_int_15.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
160 [ run test_arithmetic_cpp_int_16.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
161 [ run test_arithmetic_cpp_int_17.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
162 [ run test_arithmetic_cpp_int_18.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
163 [ run test_arithmetic_cpp_int_19.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
164 [ run test_arithmetic_cpp_int_20.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
165 [ run test_arithmetic_cpp_int_21.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
166 [ run test_arithmetic_cpp_int_22.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
167 [ run test_arithmetic_cpp_int_23.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
168 [ run test_arithmetic_cpp_int_br.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
169
170 [ run test_arithmetic_ab_1.cpp no_eh_support : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
171 [ run test_arithmetic_ab_2.cpp no_eh_support : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
172 [ run test_arithmetic_ab_3.cpp no_eh_support : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
92f5a8d4
TL
173
174 [ run test_cpp_dec_float_round.cpp no_eh_support ]
175
1e59de90
TL
176 [ run test_arithmetic_logged_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
177 [ run test_arithmetic_logged_2.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
178
179 [ run test_arithmetic_dbg_adptr1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
180 [ run test_arithmetic_dbg_adptr1m.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
181 [ run test_arithmetic_dbg_adptr2.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
182
183 [ run test_arithmetic_cpp_complex_dbg_adptr.cpp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
184 [ run test_arithmetic_cpp_int_dbg_adptr.cpp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
185 [ run test_arithmetic_cpp_rat_dbg_adptr.cpp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
186 [ run test_arithmetic_mpf_dbg_adptr.cpp gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
187 [ run test_arithmetic_mpc_dbg_adptr.cpp mpc mpfr gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_mpc : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
188 [ run test_arithmetic_mpfi_dbg_adptr.cpp mpfi mpfr gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_mpfi : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
189 [ run test_arithmetic_mpfr_dbg_adptr.cpp mpfr gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_mpfr : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
190 [ run test_arithmetic_mpq_dbg_adptr.cpp gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
191 [ run test_arithmetic_mpz_dbg_adptr.cpp gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
192
193 [ run test_arithmetic_cpp_complex_logged_adptr.cpp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
194 [ run test_arithmetic_cpp_int_logged_adptr.cpp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
195 [ run test_arithmetic_cpp_rat_logged_adptr.cpp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
196 [ run test_arithmetic_mpf_logged_adptr.cpp gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
197 [ run test_arithmetic_mpc_logged_adptr.cpp mpc mpfr gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_mpc : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
198 [ run test_arithmetic_mpfi_logged_adptr.cpp mpfi mpfr gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_mpfi : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
199 [ run test_arithmetic_mpfr_logged_adptr.cpp mpfr gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_mpfr : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
200 [ run test_arithmetic_mpq_logged_adptr.cpp gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
201 [ run test_arithmetic_mpz_logged_adptr.cpp gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
202
203 [ run test_arithmetic_mpfi_50.cpp mpfi mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfi : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
92f5a8d4
TL
204
205 [ run test_arithmetic_float_128.cpp quadmath no_eh_support : : : [ check-target-builds ../config//has_float128 : : <build>no ] ]
206 [ 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 ]
207
1e59de90
TL
208 [ run test_arithmetic_mpc.cpp mpc mpfr gmp : : : [ check-target-builds ../config//has_mpc : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
209 [ run test_mpfr_mpc_precisions.cpp mpc mpfr gmp : : : [ check-target-builds ../config//has_mpc : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
92f5a8d4
TL
210 [ run test_mpfi_precisions.cpp mpfi mpfr gmp : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ]
211 [ run test_mpf_precisions.cpp gmp : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
1e59de90 212 [ run test_threaded_precision.cpp mpfr gmp : : : [ check-target-builds ../config//has_mpfr : : <build>no ] <define>TEST_MPF_50 : test_threaded_precision_mpf ]
92f5a8d4 213 [ 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 ] ]
1e59de90
TL
214 [ run test_arithmetic_complex_adaptor.cpp : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
215 [ run test_arithmetic_complex_adaptor_2.cpp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
92f5a8d4
TL
216 [ run test_arithmetic_complex128.cpp : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
217
1e59de90
TL
218 [ run test_signed_zero.cpp : : : <define>TEST_CPP_BIN_FLOAT [ requires cxx17_if_constexpr ] : test_signed_zero_cpp_bin_float ]
219 [ run test_signed_zero.cpp mpfr gmp : : : <define>TEST_MPFR [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfr : : <build>no ] : test_signed_zero_mpfr ]
220
221 [ run test_complex_signed_zero.cpp : : : <define>TEST_CPP_BIN_FLOAT [ requires cxx17_if_constexpr ] : test_complex_signed_zero_cpp_bin_float ]
222 [ run test_complex_signed_zero.cpp mpc mpfr gmp : : : <define>TEST_MPC [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpc : : <build>no ] : test_complex_signed_zero_mpc ]
223
224 [ run test_preserve_source_precision.cpp gmp : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_gmp : : <build>no ] <define>TEST_MPF : test_preserve_source_precision_gmp ]
225 [ run test_preserve_source_precision.cpp gmp mpfr : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfr : : <build>no ] <define>TEST_MPFR : test_preserve_source_precision_mpfr ]
226 [ run test_preserve_source_precision.cpp gmp mpfr mpc : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpc : : <build>no ] <define>TEST_MPC : test_preserve_source_precision_mpc ]
227 [ run test_preserve_source_precision.cpp gmp mpfr mpfi : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfi : : <build>no ] <define>TEST_MPFI : test_preserve_source_precision_mpfi ]
228 [ run test_preserve_component_precision.cpp gmp : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_gmp : : <build>no ] <define>TEST_MPF : test_preserve_component_precision_gmp ]
229 [ run test_preserve_component_precision.cpp gmp mpfr : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfr : : <build>no ] <define>TEST_MPFR : test_preserve_component_precision_mpfr ]
230 [ run test_preserve_component_precision.cpp gmp mpfr mpc : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpc : : <build>no ] <define>TEST_MPC : test_preserve_component_precision_mpc ]
231 [ run test_preserve_component_precision.cpp gmp mpfr mpfi : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfi : : <build>no ] <define>TEST_MPFI : test_preserve_component_precision_mpfi ]
232 [ run test_preserve_related_precision.cpp gmp : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_gmp : : <build>no ] <define>TEST_MPF : test_preserve_related_precision_gmp ]
233 [ run test_preserve_related_precision.cpp gmp mpfr : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfr : : <build>no ] <define>TEST_MPFR : test_preserve_related_precision_mpfr ]
234 [ run test_preserve_related_precision.cpp gmp mpfr mpc : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpc : : <build>no ] <define>TEST_MPC : test_preserve_related_precision_mpc ]
235 [ run test_preserve_related_precision.cpp gmp mpfr mpfi : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfi : : <build>no ] <define>TEST_MPFI : test_preserve_related_precision_mpfi ]
236 [ run test_preserve_all_precision.cpp gmp : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_gmp : : <build>no ] <define>TEST_MPF : test_preserve_all_precision_gmp ]
237 [ run test_preserve_all_precision.cpp gmp mpfr : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfr : : <build>no ] <define>TEST_MPFR : test_preserve_all_precision_mpfr ]
238 [ run test_preserve_all_precision.cpp gmp mpfr mpc : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpc : : <build>no ] <define>TEST_MPC : test_preserve_all_precision_mpc ]
239 [ run test_preserve_all_precision.cpp gmp mpfr mpfi : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfi : : <build>no ] <define>TEST_MPFI : test_preserve_all_precision_mpfi ]
240 [ run test_preserve_target_precision.cpp gmp : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_gmp : : <build>no ] <define>TEST_MPF : test_preserve_target_precision_gmp ]
241 [ run test_preserve_target_precision.cpp gmp mpfr : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfr : : <build>no ] <define>TEST_MPFR : test_preserve_target_precision_mpfr ]
242 [ run test_preserve_target_precision.cpp gmp mpfr mpc : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpc : : <build>no ] <define>TEST_MPC : test_preserve_target_precision_mpc ]
243 [ run test_preserve_target_precision.cpp gmp mpfr mpfi : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfi : : <build>no ] <define>TEST_MPFI : test_preserve_target_precision_mpfi ]
244 [ run test_assume_uniform_precision.cpp gmp : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_gmp : : <build>no ] <define>TEST_MPF : test_assume_uniform_precision_gmp ]
245 [ run test_assume_uniform_precision.cpp gmp mpfr : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfr : : <build>no ] <define>TEST_MPFR : test_assume_uniform_precision_mpfr ]
246 [ run test_assume_uniform_precision.cpp gmp mpfr mpc : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpc : : <build>no ] <define>TEST_MPC : test_assume_uniform_precision_mpc ]
247 [ run test_assume_uniform_precision.cpp gmp mpfr mpfi : : : [ requires cxx17_if_constexpr ] [ check-target-builds ../config//has_mpfi : : <build>no ] <define>TEST_MPFI : test_assume_uniform_precision_mpfi ]
248
92f5a8d4
TL
249;
250
1e59de90
TL
251alias precision_tests : test_preserve_source_precision_gmp test_preserve_source_precision_mpfr test_preserve_source_precision_mpc test_preserve_source_precision_mpfi
252 test_preserve_component_precision_gmp test_preserve_component_precision_mpfr test_preserve_component_precision_mpc test_preserve_component_precision_mpfi
253 test_preserve_related_precision_gmp test_preserve_related_precision_mpfr test_preserve_related_precision_mpc test_preserve_related_precision_mpfi
254 test_preserve_all_precision_gmp test_preserve_all_precision_mpfr test_preserve_all_precision_mpc test_preserve_all_precision_mpfi
255 test_preserve_target_precision_gmp test_preserve_target_precision_mpfr test_preserve_target_precision_mpc test_preserve_target_precision_mpfi
256 test_assume_uniform_precision_gmp test_assume_uniform_precision_mpfr test_assume_uniform_precision_mpc test_assume_uniform_precision_mpfi
257 test_mpfr_mpc_precisions test_mpfi_precisions test_mpf_precisions test_threaded_precision_mpf ;
258
92f5a8d4 259rule get_function_tests
7c673cae 260{
92f5a8d4
TL
261 local result ;
262 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
263 {
264 result += [ run $(source) gmp no_eh_support
265 : # command line
266 : # input files
267 : # requirements
268 [ check-target-builds ../config//has_gmp : : <build>no ]
269 <define>TEST_MPF_50
270 : $(source:B)_mpf50 ] ;
271 result += [ run $(source) mpfr gmp no_eh_support
272 : # command line
273 : # input files
274 : # requirements
275 [ check-target-builds ../config//has_mpfr : : <build>no ]
276 <define>TEST_MPFR_50
277 : $(source:B)_mpfr50 ] ;
278 result += [ run $(source) mpfi mpfr gmp no_eh_support
279 : # command line
280 : # input files
281 : # requirements
282 [ check-target-builds ../config//has_mpfi : : <build>no ]
283 <define>TEST_MPFI_50
284 : $(source:B)_mpfi50 ] ;
285 result += [ run $(source) no_eh_support
286 : # command line
287 : # input files
288 : # requirements
289 <define>TEST_CPP_DEC_FLOAT
290 : $(source:B)_cpp_dec_float ] ;
291 result += [ run $(source) no_eh_support
292 : # command line
293 : # input files
294 : # requirements
295 <define>TEST_CPP_BIN_FLOAT
296 : $(source:B)_cpp_bin_float ] ;
297 result += [ run $(source) quadmath no_eh_support
298 : # command line
299 : # input files
300 : # requirements
301 [ check-target-builds ../config//has_float128 : : <build>no ]
302 <define>TEST_FLOAT128
303 : $(source:B)_float128 ] ;
304 result += [ run $(source) no_eh_support
305 : # command line
306 : # input files
307 : # requirements
308 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
309 <define>TEST_FLOAT128
310 : $(source:B)_intel_quad ] ;
311 }
312 return $(result) ;
313}
314
315test-suite functions_and_limits :
316
317 [ run test_numeric_limits.cpp no_eh_support
318 : # command line
319 : # input files
320 : # requirements
321 <define>TEST_BACKEND
322 : test_numeric_limits_backend_concept ]
323
324 [ run test_numeric_limits.cpp gmp no_eh_support
325 : # command line
326 : # input files
327 : # requirements
20effc67 328 <define>TEST_MPF_50 <define>PRINT_MAX_DIGITS10
92f5a8d4
TL
329 [ check-target-builds ../config//has_gmp : : <build>no ]
330 : test_numeric_limits_mpf50 ]
331
332 [ run test_numeric_limits.cpp gmp no_eh_support
333 : # command line
334 : # input files
335 : # requirements
20effc67 336 <define>TEST_MPF <define>PRINT_MAX_DIGITS10
92f5a8d4
TL
337 [ check-target-builds ../config//has_gmp : : <build>no ]
338 : test_numeric_limits_mpf ]
339
340 [ run test_numeric_limits.cpp gmp no_eh_support
341 : # command line
342 : # input files
343 : # requirements
344 <define>TEST_MPZ
345 [ check-target-builds ../config//has_gmp : : <build>no ]
346 : test_numeric_limits_mpz ]
347
348 [ run test_numeric_limits.cpp gmp no_eh_support
349 : # command line
350 : # input files
351 : # requirements
352 <define>TEST_MPQ
353 [ check-target-builds ../config//has_gmp : : <build>no ]
354 : test_numeric_limits_mpq ]
355
356 [ run test_numeric_limits.cpp mpfr gmp no_eh_support
357 : # command line
358 : # input files
359 : # requirements
20effc67 360 <define>TEST_MPFR <define>PRINT_MAX_DIGITS10
92f5a8d4
TL
361 [ check-target-builds ../config//has_mpfr : : <build>no ]
362 : test_numeric_limits_mpfr ]
363
364 [ run test_numeric_limits.cpp mpfr gmp no_eh_support
365 : # command line
366 : # input files
367 : # requirements
20effc67 368 <define>TEST_MPFR_50 <define>PRINT_MAX_DIGITS10
92f5a8d4
TL
369 [ check-target-builds ../config//has_mpfr : : <build>no ]
370 : test_numeric_limits_mpfr_50 ]
371
372 [ run test_numeric_limits.cpp no_eh_support
373 : # command line
374 : # input files
375 : # requirements
376 <define>TEST_CPP_DEC_FLOAT
377 : test_numeric_limits_cpp_dec_float ]
378
379 [ run test_numeric_limits.cpp no_eh_support
380 : # command line
381 : # input files
382 : # requirements
20effc67 383 <define>TEST_CPP_BIN_FLOAT <define>PRINT_MAX_DIGITS10
92f5a8d4
TL
384 : test_numeric_limits_cpp_bin_float ]
385
386 [ run test_numeric_limits.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_numeric_limits_tommath ]
393
394 [ run test_numeric_limits.cpp no_eh_support
395 : # command line
396 : # input files
397 : # requirements
398 <define>TEST_CPP_INT
399 : test_numeric_limits_cpp_int ]
400
401 [ run test_numeric_limits.cpp mpfi mpfr gmp no_eh_support
402 : # command line
403 : # input files
404 : # requirements
405 <define>TEST_MPFI_50
406 [ check-target-builds ../config//has_mpfi : : <build>no ]
407 : test_numeric_limits_mpfi_50 ]
408
92f5a8d4
TL
409 [ run test_numeric_limits.cpp quadmath no_eh_support
410 : # command line
411 : # input files
412 : # requirements
413 <define>TEST_FLOAT128
414 [ check-target-builds ../config//has_float128 : : <build>no ]
415 : test_numeric_limits_float128 ]
416 [ run test_numeric_limits.cpp no_eh_support
417 : # command line
418 : # input files
419 : # requirements
420 <define>TEST_FLOAT128
421 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
422 : test_numeric_limits_intel_quad ]
423
424 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_2 : test_sf_import_c99_cpp_dec_float_2 ]
425 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_3 : test_sf_import_c99_cpp_dec_float_3 ]
426 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_4 : test_sf_import_c99_cpp_dec_float_4 ]
427 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_5 : test_sf_import_c99_cpp_dec_float_5 ]
428 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_6 : test_sf_import_c99_cpp_dec_float_6 ]
429
430 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_BIN_FLOAT_2 : test_sf_import_c99_cpp_bin_float_2 ]
431 [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_BIN_FLOAT_2 : test_sf_import_c99_cpp_bin_float_3 ]
432
1e59de90
TL
433 [ run test_sf_import_c99.cpp mpfi mpfr gmp : : : <define>TEST_MPFI_DEBUG_ADAPTOR [ check-target-builds ../config//has_mpfi : : <build>no ] : test_sf_import_c99_mpfi_debug_adptr ]
434 [ run test_sf_import_c99.cpp mpfr gmp : : : <define>TEST_MPFR_DEBUG_ADAPTOR [ check-target-builds ../config//has_mpfr : : <build>no ] : test_sf_import_c99_mpfr_debug_adptr ]
435
436 [ run test_sf_import_c99.cpp mpfi mpfr gmp : : : <define>TEST_MPFI_LOGGED_ADAPTOR [ check-target-builds ../config//has_mpfi : : <build>no ] : test_sf_import_c99_mpfi_logged_adptr ]
437 [ run test_sf_import_c99.cpp mpfr gmp : : : <define>TEST_MPFR_LOGGED_ADAPTOR [ check-target-builds ../config//has_mpfr : : <build>no ] : test_sf_import_c99_mpfr_logged_adptr ]
438
92f5a8d4
TL
439 [ run test_move.cpp mpfr gmp no_eh_support
440 : # command line
441 : # input files
442 : # requirements
443 <define>TEST_MPFR
444 [ check-target-builds ../config//has_mpfr : : <build>no ]
445 : test_move_mpfr ]
446
447 [ run test_move.cpp mpc mpfr gmp no_eh_support
448 : # command line
449 : # input files
450 : # requirements
451 <define>TEST_MPC
452 [ check-target-builds ../config//has_mpc : : <build>no ]
453 : test_move_mpc ]
454
455 [ run test_move.cpp gmp no_eh_support
456 : # command line
457 : # input files
458 : # requirements
459 <define>TEST_GMP
460 [ check-target-builds ../config//has_gmp : : <build>no ]
461 : test_move_gmp ]
462
463 [ run test_move.cpp $(TOMMATH) no_eh_support
464 : # command line
465 : # input files
466 : # requirements
467 <define>TEST_TOMMATH
468 [ check-target-builds ../config//has_tommath : : <build>no ]
469 : test_move_tommath ]
470
471 [ run test_move.cpp no_eh_support
472 : # command line
473 : # input files
474 : # requirements
475 <define>TEST_CPP_INT
476 : test_move_cpp_int ]
477
20effc67
TL
478 [ run test_sin_near_half_pi.cpp mpfr gmp : : : <define>TEST_CPP_BIN_FLOAT release [ check-target-builds ../config//has_float128 : <source>quadmath : ] [ check-target-builds ../config//has_mpfr : : <build>no ] : test_sin_near_half_pi_cpp_bin_float ]
479 [ run test_sin_near_half_pi.cpp mpfr gmp : : : <define>TEST_CPP_DEC_FLOAT release [ check-target-builds ../config//has_mpfr : : <build>no ] : test_sin_near_half_pi_cpp_dec_float ]
480 [ run test_sin_near_half_pi.cpp mpfr gmp : : : <define>TEST_MPF_50 release [ check-target-builds ../config//has_mpfr : : <build>no ] : test_sin_near_half_pi_mpf_50 ]
1e59de90 481 [ run test_sin_near_half_pi.cpp mpfr gmp : : : <define>TEST_MPFR_50 release [ check-target-builds ../config//has_mpfr : : <build>no ] : test_sin_near_half_pi_mpfr_50 ]
20effc67
TL
482 [ run test_sin_near_half_pi.cpp mpfr gmp quadmath : : : <define>TEST_FLOAT128 release [ check-target-builds ../config//has_mpfr : : <build>no ] [ check-target-builds ../config//has_float128 : : <build>no ] : test_sin_near_half_pi_float128 ]
483 [ run test_cos_near_half_pi.cpp mpfr gmp : : : <define>TEST_CPP_BIN_FLOAT release [ check-target-builds ../config//has_float128 : <source>quadmath : ] [ check-target-builds ../config//has_mpfr : : <build>no ] : test_cos_near_half_pi_cpp_bin_float ]
484 [ run test_cos_near_half_pi.cpp mpfr gmp : : : <define>TEST_CPP_DEC_FLOAT release [ check-target-builds ../config//has_mpfr : : <build>no ] : test_cos_near_half_pi_cpp_dec_float ]
485 [ run test_cos_near_half_pi.cpp mpfr gmp : : : <define>TEST_MPF_50 release [ check-target-builds ../config//has_mpfr : : <build>no ] : test_cos_near_half_pi_mpf_50 ]
1e59de90 486 [ run test_cos_near_half_pi.cpp mpfr gmp : : : <define>TEST_MPFR_50 release [ check-target-builds ../config//has_mpfr : : <build>no ] : test_cos_near_half_pi_mpfr_50 ]
20effc67
TL
487 [ run test_cos_near_half_pi.cpp mpfr gmp quadmath : : : <define>TEST_FLOAT128 release [ check-target-builds ../config//has_mpfr : : <build>no ] [ check-target-builds ../config//has_float128 : : <build>no ] : test_cos_near_half_pi_float128 ]
488
1e59de90
TL
489 [ run test_cpp_bin_float_tgamma.cpp ]
490 [ run test_cpp_dec_float_tgamma.cpp ]
491
492 [ run test_roots_10k_digits.cpp
493 : # command line
494 : # input files
495 : # requirements
496 <define>TEST_CPP_DEC_FLOAT
497 : test_roots_10k_digits_cpp_dec_float ]
498
499 [ run test_roots_10k_digits.cpp
500 : # command line
501 : # input files
502 : # requirements
503 <define>TEST_CPP_BIN_FLOAT
504 : test_roots_10k_digits_cpp_bin_float ]
505
92f5a8d4
TL
506 [ get_function_tests ]
507;
508
509test-suite conversions :
510
511 [ run test_gmp_conversions.cpp gmp no_eh_support
512 : # command line
513 : # input files
514 : # requirements
1e59de90 515 [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath : ] ]
92f5a8d4
TL
516
517 [ run test_mpfr_conversions.cpp gmp mpfr no_eh_support
7c673cae
FG
518 : # command line
519 : # input files
520 : # requirements
92f5a8d4
TL
521 [ check-target-builds ../config//has_mpfr : : <build>no ] ]
522
523 [ run test_mpc_conversions.cpp gmp mpfr mpc no_eh_support
524 : # command line
525 : # input files
526 : # requirements
527 [ check-target-builds ../config//has_mpc : : <build>no ] ]
528
529 [ run test_constants.cpp gmp no_eh_support
530 : # command line
531 : # input files
532 : # requirements
533 <define>TEST_MPF_50
7c673cae 534 [ check-target-builds ../config//has_gmp : : <build>no ]
92f5a8d4
TL
535 : test_constants_mpf50 ]
536
537 [ run test_constants.cpp mpfr gmp no_eh_support
7c673cae
FG
538 : # command line
539 : # input files
540 : # requirements
92f5a8d4 541 <define>TEST_MPFR_50
7c673cae 542 [ check-target-builds ../config//has_mpfr : : <build>no ]
92f5a8d4
TL
543 : test_constants_mpfr_50 ]
544
545 [ run test_constants.cpp no_eh_support
7c673cae
FG
546 : # command line
547 : # input files
548 : # requirements
92f5a8d4
TL
549 <define>TEST_CPP_DEC_FLOAT
550 : test_constants_cpp_dec_float ]
551
552
553 [ run test_test.cpp ]
554 [ run test_cpp_int_lit.cpp no_eh_support ]
1e59de90 555 [ run test_convert_cpp_int_2_float.cpp no_eh_support ]
92f5a8d4
TL
556
557 #
558 # Interconversion tests:
559 #
560 [ run test_convert_from_cpp_int.cpp
561 : # command line
562 : # input files
563 : # requirements
564 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
565 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
566 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
567 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
568 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
569 ]
570 [ run test_convert_from_mpz_int.cpp
571 : # command line
572 : # input files
573 : # requirements
574 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
575 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
576 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
577 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
578 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
579 ]
580 [ run test_convert_from_tom_int.cpp
581 : # command line
582 : # input files
583 : # requirements
584 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
585 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
586 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
587 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
588 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
589 ]
590 [ run test_convert_from_cpp_rational.cpp
591 : # command line
592 : # input files
593 : # requirements
594 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
595 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
596 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
597 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
598 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
599 ]
600 [ run test_convert_from_gmp_rational.cpp
601 : # command line
602 : # input files
603 : # requirements
604 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
605 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
606 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
607 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
608 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
609 ]
610 [ run test_convert_from_tom_rational.cpp
611 : # command line
612 : # input files
613 : # requirements
614 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
615 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
616 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
617 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
618 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
619 ]
620 [ run test_convert_from_cpp_bin_float.cpp
621 : # command line
622 : # input files
623 : # requirements
624 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
625 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
626 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
627 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
628 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
629 ]
630 [ run test_convert_from_cpp_dec_float.cpp
631 : # command line
632 : # input files
633 : # requirements
634 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
635 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
636 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
637 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
638 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
639 ]
640 [ run test_convert_from_mpf_float.cpp
641 : # command line
642 : # input files
643 : # requirements
644 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
645 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
646 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
647 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
648 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
649 ]
650 [ run test_convert_from_mpfr_float.cpp
651 : # command line
652 : # input files
653 : # requirements
654 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
655 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
656 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
657 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
658 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
659 ]
660 [ run test_convert_from_mpfi_float.cpp
661 : # command line
662 : # input files
663 : # requirements
664 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
665 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
666 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
667 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
668 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
669 ]
670 [ run test_convert_from_float128.cpp
671 : # command line
672 : # input files
673 : # requirements
674 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
675 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
676 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
677 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
678 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
679 ]
680
681 [ run test_cpp_bin_float_conv.cpp ]
682
683 [ run test_cpp_bin_float_io.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
684 : # command line
685 : # input files
686 : # requirements
687 <define>TEST_CPP_BIN_FLOAT
688 <define>TEST1
689 release # Otherwise [ runtime is slow
690 : test_cpp_bin_float_io_1
691 ]
692
693 [ run test_cpp_bin_float_io.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
694 : # command line
695 : # input files
696 : # requirements
697 <define>TEST_CPP_BIN_FLOAT
698 <define>TEST2
699 release # Otherwise [ runtime is slow
700 : test_cpp_bin_float_io_2
701 ]
702
703 [ run test_cpp_bin_float.cpp no_eh_support mpfr gmp /boost/system//boost_system /boost/chrono//boost_chrono
704 : # command line
705 : # input files
706 : # requirements
707 <define>TEST_MPFR
1e59de90 708 [ check-target-builds ../config//is_ci_sanitizer_run "Sanitizer CI run" : <build>no : ]
92f5a8d4
TL
709 [ check-target-builds ../config//has_mpfr : : <build>no ]
710 release # Otherwise [ runtime is slow
711 ]
712
713 [ run test_float_io.cpp no_eh_support
714 : # command line
715 : # input files
716 : # requirements
717 <define>TEST_CPP_DEC_FLOAT
718 release # Otherwise [ runtime is slow
719 : test_float_io_cpp_dec_float ]
720
721 [ run test_float_io.cpp gmp no_eh_support
722 : # command line
723 : # input files
724 : # requirements
725 <define>TEST_MPF_50
726 release # Otherwise [ runtime is slow
727 [ check-target-builds ../config//has_gmp : : <build>no ]
728 : test_float_io_mpf ]
729
730 [ run test_float_io.cpp mpfr gmp no_eh_support
731 : # command line
732 : # input files
733 : # requirements
734 <define>TEST_MPFR_50
735 release # Otherwise [ runtime is slow
736 [ check-target-builds ../config//has_mpfr : : <build>no ]
737 : test_float_io_mpfr ]
738
739 [ run test_float_io.cpp mpfi mpfr gmp no_eh_support
740 : # command line
741 : # input files
742 : # requirements
743 <define>TEST_MPFI_50
744 release # Otherwise [ runtime is slow
745 [ check-target-builds ../config//has_mpfi : : <build>no ]
746 : test_float_io_mpfi ]
747
748 [ run test_float_io.cpp quadmath no_eh_support
749 : # command line
750 : # input files
751 : # requirements
752 <define>TEST_FLOAT128
753 release # Otherwise [ runtime is slow
754 [ check-target-builds ../config//has_float128 : : <build>no ]
755 : test_float_io_float128 ]
756 [ run test_float_io.cpp no_eh_support
757 : # command line
758 : # input files
759 : # requirements
760 <define>TEST_FLOAT128
761 release # Otherwise [ runtime is slow
762 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
763 : test_float_io_intel_quad ]
764
765 [ run test_int_io.cpp no_eh_support $(TOMMATH)
766 : # command line
767 : # input files
768 : # requirements
769 <define>TEST_TOMMATH
770 release # Otherwise [ runtime is slow
771 [ check-target-builds ../config//has_tommath : : <build>no ]
772 : test_int_io_tommath ]
773
774 [ run test_int_io.cpp no_eh_support gmp
775 : # command line
776 : # input files
777 : # requirements
778 <define>TEST_MPZ
779 release # Otherwise [ runtime is slow
780 [ check-target-builds ../config//has_gmp : : <build>no ]
781 : test_int_io_mpz ]
782
1e59de90
TL
783 [ run test_fixed_zero_precision_io.cpp
784 : # command line
785 : # input files
786 : # requirements
787 <define>TEST_BIN_FLOAT
788 release
789 : test_fixed_zero_precision_io_bin_float ]
790 [ run test_fixed_zero_precision_io.cpp
791 : # command line
792 : # input files
793 : # requirements
794 <define>TEST_DEC_FLOAT
795 release
796 : test_fixed_zero_precision_io_dec_float ]
797 [ run test_fixed_zero_precision_io.cpp no_eh_support gmp
798 : # command line
799 : # input files
800 : # requirements
801 <define>TEST_MPF
802 release
803 [ check-target-builds ../config//has_gmp : : <build>no ]
804 : test_fixed_zero_precision_io_mpf_float ]
805 [ run test_fixed_zero_precision_io.cpp no_eh_support mpfr gmp
806 : # command line
807 : # input files
808 : # requirements
809 <define>TEST_MPFR
810 release
811 [ check-target-builds ../config//has_mpfr : : <build>no ]
812 : test_fixed_zero_precision_io_mpfr_float ]
813 [ run test_fixed_zero_precision_io.cpp no_eh_support quadmath
814 : # command line
815 : # input files
816 : # requirements
817 <define>TEST_FLOAT128
818 release
819 [ check-target-builds ../config//has_float128 : : <build>no ]
820 : test_fixed_zero_precision_io_float128 ]
821
92f5a8d4
TL
822;
823
824
825test-suite cpp_int_tests :
826
827 [ run test_int_io.cpp no_eh_support
7c673cae
FG
828 : # command line
829 : # input files
830 : # requirements
92f5a8d4
TL
831 <define>TEST_CPP_INT
832 release # Otherwise [ runtime is slow
833 : test_int_io_cpp_int ]
834
835 [ run test_cpp_int_left_shift.cpp gmp no_eh_support
7c673cae
FG
836 : # command line
837 : # input files
838 : # requirements
92f5a8d4
TL
839 [ check-target-builds ../config//has_gmp : : <build>no ]
840 release # otherwise [ runtime is too slow!!
841 ]
842
843 [ run test_cpp_int.cpp gmp no_eh_support
7c673cae
FG
844 : # command line
845 : # input files
846 : # requirements
92f5a8d4
TL
847 [ check-target-builds ../config//has_gmp : : <build>no ]
848 release # otherwise [ runtime is too slow!!
849 <define>TEST1
850 : test_cpp_int_1
851 ]
852
853 [ run test_cpp_int.cpp gmp no_eh_support
7c673cae
FG
854 : # command line
855 : # input files
856 : # requirements
92f5a8d4
TL
857 [ check-target-builds ../config//has_gmp : : <build>no ]
858 release # otherwise [ runtime is too slow!!
859 <define>TEST2
860 : test_cpp_int_2
861 ]
7c673cae 862
92f5a8d4
TL
863 [ run test_cpp_int.cpp gmp no_eh_support
864 : # command line
865 : # input files
866 : # requirements
867 [ check-target-builds ../config//has_gmp : : <build>no ]
868 release # otherwise [ runtime is too slow!!
869 <define>TEST3
870 : test_cpp_int_3
871 ]
7c673cae 872
92f5a8d4
TL
873 [ run test_cpp_int.cpp gmp no_eh_support
874 : # command line
875 : # input files
876 : # requirements
877 [ check-target-builds ../config//has_gmp : : <build>no ]
878 release # otherwise [ runtime is too slow!!
879 <define>TEST4
880 : test_cpp_int_4
881 ]
882
883 [ run test_cpp_int.cpp gmp no_eh_support
884 : # command line
885 : # input files
886 : # requirements
887 [ check-target-builds ../config//has_gmp : : <build>no ]
888 release # otherwise [ runtime is too slow!!
889 <define>TEST5
890 : test_cpp_int_5
891 ]
892
f67539c2
TL
893 [ run test_cpp_int.cpp gmp no_eh_support
894 : # command line
895 : # input files
896 : # requirements
897 [ check-target-builds ../config//has_gmp : : <build>no ]
898 release # otherwise [ runtime is too slow!!
899 <define>TEST6
900 : test_cpp_int_6
901 ]
902
1e59de90
TL
903 [ run test_cpp_rational.cpp gmp no_eh_support
904 : # command line
905 : # input files
906 : # requirements
907 [ check-target-builds ../config//has_gmp : : <build>no ]
908 release # otherwise [ runtime is too slow!!
909 ]
910
f67539c2
TL
911 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
912 : # command line
913 : # input files
914 : # requirements
915 [ check-target-builds ../config//has_gmp : : <build>no ]
916 release # otherwise [ runtime is too slow!!
917 <define>TEST=1
918 : test_cpp_int_karatsuba_1
919 ]
920 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
921 : # command line
922 : # input files
923 : # requirements
924 [ check-target-builds ../config//has_gmp : : <build>no ]
925 release # otherwise [ runtime is too slow!!
926 <define>TEST=2
927 : test_cpp_int_karatsuba_2
928 ]
929 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
930 : # command line
931 : # input files
932 : # requirements
933 [ check-target-builds ../config//has_gmp : : <build>no ]
934 release # otherwise [ runtime is too slow!!
935 <define>TEST=3
936 : test_cpp_int_karatsuba_3
937 ]
938 [ run test_cpp_int_karatsuba.cpp gmp no_eh_support
939 : # command line
940 : # input files
941 : # requirements
942 [ check-target-builds ../config//has_gmp : : <build>no ]
943 release # otherwise [ runtime is too slow!!
944 <define>TEST=4
945 : test_cpp_int_karatsuba_4
946 ]
947
1e59de90
TL
948 [ run test_int_sqrt.cpp no_eh_support ]
949
92f5a8d4
TL
950 [ run test_checked_cpp_int.cpp no_eh_support ]
951 [ run test_unchecked_cpp_int.cpp no_eh_support : : : release ]
952
953 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST1 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_1 ]
954 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST2 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_2 ]
955 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST3 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_3 ]
956 [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST4 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_4 ]
957 [ run test_cpp_int_deserial.cpp ../../serialization/build//boost_serialization ../../filesystem/build//boost_filesystem : $(here)/serial_txts : : release <toolset>gcc-mingw:<link>static ]
958 [ run test_cpp_rat_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static ]
20effc67 959 [ run test_gcd.cpp : : : [ requires cxx11_hdr_random ] ]
92f5a8d4
TL
960;
961
962test-suite misc :
963
964 [ compile test_constexpr.cpp :
965 [ check-target-builds ../config//has_float128 : <define>HAVE_FLOAT128 : ]
966 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type <define>HAVE_FLOAT128 : ]
967 [ requires cxx11_constexpr cxx11_user_defined_literals ] ]
968
969 [ compile constexpr_test_arithmetic_backend.cpp :
970 [ requires cxx14_constexpr cxx17_if_constexpr ] ]
971 [ compile constexpr_test_float128.cpp :
972 [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_float128 : <source>quadmath : <build>no ] ]
973
974 [ run constexpr_test_cpp_int.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
975 [ run constexpr_test_cpp_int_2.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
976 [ run constexpr_test_cpp_int_3.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
977 [ run constexpr_test_cpp_int_4.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
978 [ run constexpr_test_cpp_int_5.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
f67539c2
TL
979 [ 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 ] ]
980 [ 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 ] ]
92f5a8d4
TL
981
982 [ compile test_nothrow_cpp_int.cpp ]
983 [ compile test_nothrow_cpp_rational.cpp ]
984 [ compile test_nothrow_cpp_bin_float.cpp ]
985 [ compile test_nothrow_cpp_dec_float.cpp ]
986 [ compile test_nothrow_float128.cpp : [ check-target-builds ../config//has_float128 : : <build>no ] ]
987 [ compile test_nothrow_gmp.cpp : [ check-target-builds ../config//has_gmp : : <build>no ] ]
988 [ compile test_nothrow_mpfr.cpp : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
989
990 [ run test_miller_rabin.cpp no_eh_support gmp
991 : # command line
992 : # input files
993 : # requirements
994 [ check-target-builds ../config//has_gmp : : <build>no ]
995 release # otherwise [ runtime is too slow!!
996 ]
997
998 [ run test_rational_io.cpp $(TOMMATH) no_eh_support
999 : # command line
1000 : # input files
1001 : # requirements
1002 <define>TEST_TOMMATH
1003 [ check-target-builds ../config//has_tommath : : <build>no ]
1004 release # Otherwise [ runtime is slow
1005 : test_rational_io_tommath ]
1006
1007 [ run test_rational_io.cpp gmp no_eh_support
1008 : # command line
1009 : # input files
1010 : # requirements
1011 <define>TEST_MPQ
1012 [ check-target-builds ../config//has_gmp : : <build>no ]
1013 release # Otherwise [ runtime is slow
1014 : test_rational_io_mpz ]
1015
1016 [ run test_rational_io.cpp no_eh_support
1017 : # command line
1018 : # input files
1019 : # requirements
1020 <define>TEST_CPP_INT
1021 release # Otherwise [ runtime is slow
1022 : test_rational_io_cpp_int ]
1023
1024 [ run test_generic_conv.cpp no_eh_support
1025 : # command line
1026 : # input files
1027 : # requirements
1028 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
1029 [ check-target-builds ../config//has_tommath : <define>TEST_TOMMATH <source>$(TOMMATH) : ]
1030 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>mpfr : ]
1031 release # Otherwise [ runtime is slow
1032 ]
1033
1034 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
1035 : # command line
1036 : # input files
1037 : # requirements
1038 <define>TEST1
1039 release
1040 : test_rat_float_interconv_1 ]
1041
1042 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
1043 : # command line
1044 : # input files
1045 : # requirements
1046 <define>TEST2
1047 release
1048 : test_rat_float_interconv_2 ]
1049
1050 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
1051 : # command line
1052 : # input files
1053 : # requirements
1054 <define>TEST3
1055 release
1056 : test_rat_float_interconv_3 ]
1057
1058 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
1059 : # command line
1060 : # input files
1061 : # requirements
1062 <define>TEST4
1063 release
1064 : test_rat_float_interconv_4 ]
1065
1066 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
1067 : # command line
1068 : # input files
1069 : # requirements
1070 <define>TEST5
1071 [ check-target-builds ../config//has_mpfr : : <build>no ]
1072 release
1073 : test_rat_float_interconv_5 ]
1074
1075 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
1076 : # command line
1077 : # input files
1078 : # requirements
1079 <define>TEST6
1080 [ check-target-builds ../config//has_mpfr : : <build>no ]
1081 release
1082 : test_rat_float_interconv_6 ]
1083
1084 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
1085 : # command line
1086 : # input files
1087 : # requirements
1088 <define>TEST7
1089 [ check-target-builds ../config//has_mpfr : : <build>no ]
1090 release
1091 : test_rat_float_interconv_7 ]
1092
1093 [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
1094 : # command line
1095 : # input files
1096 : # requirements
1097 <define>TEST8
1098 [ check-target-builds ../config//has_mpfr : : <build>no ]
1099 release
1100 : test_rat_float_interconv_8 ]
1101
1102 [ run test_cpp_int_conv.cpp no_eh_support ]
1103 [ run test_cpp_int_import_export.cpp no_eh_support ]
1104 [ run test_native_integer.cpp no_eh_support ]
1105
1e59de90 1106 [ run test_mixed_move_cpp_int.cpp no_eh_support ]
92f5a8d4
TL
1107 [ run test_mixed_cpp_int.cpp no_eh_support ]
1108 [ run test_mixed_float.cpp no_eh_support
1109 : # command line
1110 : # input files
1111 : # requirements
1112 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <library>gmp : ]
1113 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <library>mpfr <library>gmp : ] ]
1114 [ compile include_test/mpfr_include_test.cpp
1115 : # requirements
1116 [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1117 [ compile include_test/gmp_include_test.cpp
1118 : # requirements
1119 [ check-target-builds ../config//has_gmp : : <build>no ] ]
1120 [ compile include_test/tommath_include_test.cpp
1121 : # requirements
1122 [ check-target-builds ../config//has_tommath : : <build>no ] ]
1123 [ compile include_test/cpp_int_include_test.cpp ]
1124 [ compile include_test/cpp_dec_float_include_test.cpp ]
1125 [ compile include_test/cpp_bin_float_include_test.cpp ]
1126
1127 [ run ublas_interop/test1.cpp ublas_interop/test11.cpp ublas_interop/test12.cpp ublas_interop/test13.cpp no_eh_support ]
1128 [ run ublas_interop/test2.cpp ublas_interop/test21.cpp ublas_interop/test22.cpp ublas_interop/test23.cpp no_eh_support ]
1129 #[ run ublas_interop/test3.cpp ublas_interop/test31.cpp ublas_interop/test32.cpp ublas_interop/test33.cpp ]
1130 [ run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp no_eh_support ]
1131 [ run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp no_eh_support ]
1132 [ run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp no_eh_support ]
1133 #[ run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp ]
1134
1135 [ 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 ]
1136 [ 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 ]
1137 #[ run ublas_interop/test3.cpp ublas_interop/test31.cpp ublas_interop/test32.cpp ublas_interop/test33.cpp : : : <define>TEST_ET=1 : ublas3_et ]
1138 [ run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp no_eh_support : : : <define>TEST_ET=1 : ublas3_et ]
1139 [ run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp no_eh_support : : : <define>TEST_ET=1 : ublas4_et ]
1140 [ run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp no_eh_support : : : <define>TEST_ET=1 : ublas5_et ]
1141 #[ run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp : : : <define>TEST_ET=1 : ublas6_et ]
1142
1143 #
1144 # Serialization tests, run in release mode so we cycle through more values:
1145 #
1146 [ run test_adapt_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static ]
1147 [ 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 ]
1148 [ 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 ]
1149 [ run test_float128_serial.cpp ../../serialization/build//boost_serialization quadmath : : : release <toolset>gcc-mingw:<link>static [ check-target-builds ../config//has_float128 : : <build>no ] ]
1150 [ 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 ]
1151 [ 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 ]
1152
1153 #
1154 # Mixed mode comparison tests, see: https://svn.boost.org/trac/boost/ticket/11328
1155 #
1156 [ run test_checked_mixed_cpp_int.cpp no_eh_support ]
1157 [ run test_mixed_cpp_bin_float.cpp no_eh_support ]
1158 [ run test_mixed_cpp_dec_float.cpp no_eh_support ]
1159 [ run test_mixed_mpf_float.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
1160 [ run test_mixed_mpfr_float.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1161 #
1162 # Check for narrowing conversions:
1163 #
1164 [ run test_float_conversions.cpp no_eh_support ]
1165 #
1166 # specific bug cases:
1167 #
1168 [ compile bug11922.cpp ]
1169 [ run bug12039.cpp no_eh_support ]
1170 [ compile git_issue_30.cpp ]
f67539c2 1171 [ run git_issue_167.cpp ]
1e59de90 1172 [ run git_issue_370.cpp ]
f67539c2 1173 [ run git_issue_175.cpp ]
20effc67
TL
1174 [ run git_issue_248.cpp ]
1175 [ run git_issue_265.cpp : : : [ check-target-builds ../config//has_mpfr : <source>gmp <source>mpfr : <build>no ] ]
1e59de90
TL
1176 [ run git_issue_426.cpp : : : [ check-target-builds ../config//has_mpfr : <source>gmp <source>mpfr <define>TEST_MPFR ] [ check-target-builds ../config//has_float128 : <source>quadmath <define>TEST_FLOAT128 ] ]
1177 [ run git_issue_277.cpp ]
1178 [ run git_issue_313.cpp ]
92f5a8d4
TL
1179 [ compile git_issue_98.cpp :
1180 [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1181 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
1182 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
1183 [ check-target-builds ../config//has_mpc : <define>TEST_MPC <source>gmp <source>mpfr <source>mpc : ] ]
1184 [ run issue_13301.cpp ]
1185 [ run issue_13148.cpp ]
1186 [ run test_hash.cpp : : :
1187 [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1188 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
1189 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
1190 [ check-target-builds ../config//has_mpfi : <define>TEST_MPFI <source>gmp <source>mpfr <source>mpfi : ]
1191 [ check-target-builds ../config//has_tommath : <define>TEST_TOMMATH <source>tommath : ]
1192 ]
1193 [ run test_optional_compat.cpp ]
1194 #
1195 # Eigen interoperability:
1196 #
1197 [ run test_eigen_interop_cpp_int.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1198 [ run test_eigen_interop_cpp_dec_float.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1199 [ run test_eigen_interop_cpp_dec_float_2.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1200 [ run test_eigen_interop_cpp_dec_float_3.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1201 [ run test_eigen_interop_cpp_bin_float_1.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1202 [ run test_eigen_interop_cpp_bin_float_2.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1203 [ run test_eigen_interop_cpp_bin_float_3.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
1204 [ 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 ] ]
1205 [ 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 ] ]
1206 [ 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 ] ]
1e59de90
TL
1207 [ run test_eigen_interop_mpfr_4.cpp mpfr gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1208 [ run test_eigen_interop_mpfr_5.cpp mpfr gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_mpfr : : <build>no ] ]
1209 [ run test_eigen_interop_mpfr_6.cpp mpfr gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_mpfr : : <build>no ] ]
92f5a8d4 1210 [ run test_eigen_interop_gmp.cpp gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_gmp : : <build>no ] ]
1e59de90 1211 [ run test_eigen_interop_gmp_2.cpp gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_gmp : : <build>no ] ]
92f5a8d4 1212 [ 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 ] ]
1e59de90 1213 [ compile git_issue_393.cpp : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
92f5a8d4 1214;
7c673cae 1215
1e59de90
TL
1216alias eigen_tests :
1217 test_eigen_interop_cpp_int test_eigen_interop_cpp_dec_float test_eigen_interop_cpp_dec_float_2 test_eigen_interop_cpp_dec_float_3
1218 test_eigen_interop_cpp_bin_float_1 test_eigen_interop_cpp_bin_float_2 test_eigen_interop_cpp_bin_float_3 test_eigen_interop_mpfr_1
1219 test_eigen_interop_mpfr_2 test_eigen_interop_mpfr_3 test_eigen_interop_mpfr_4 test_eigen_interop_mpfr_5 test_eigen_interop_mpfr_6
1220 test_eigen_interop_gmp test_eigen_interop_gmp_2 test_eigen_interop_mpc git_issue_393 ;
1221
1222test-suite standalone :
1223
1224 [ run standalone_constexpr_test_cpp_int.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
1225 [ compile standalone_constexpr_test_float128.cpp :
1226 [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_float128 : <source>quadmath : <build>no ] ]
1227
1228 [ run standalone_test_arithmetic_complex128.cpp : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1229 [ run standalone_test_arithmetic_cpp_bin_float.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1230 [ run standalone_test_arithmetic_cpp_dec_float.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1231 [ run standalone_test_arithmetic_cpp_int.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1232 [ run standalone_test_arithmetic_int512.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1233 [ run standalone_test_arithmetic_cpp_rational.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1234 [ run standalone_test_arithmetic_tommath.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1235 [ run standalone_test_arithmetic_float_128.cpp quadmath no_eh_support : : : [ check-target-builds ../config//has_float128 : : <build>no ] ]
1236 [ run standalone_test_arithmetic_gmp.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1237 [ run standalone_test_arithmetic_mpf_logged_adptr.cpp gmp : : : <toolset>msvc:<cxxflags>-bigobj [ check-target-builds ../config//has_gmp : : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
1238
1239 [ run standalone_test_miller_rabin.cpp no_eh_support gmp
1240 : # command line
1241 : # input files
1242 : # requirements
1243 [ check-target-builds ../config//has_gmp : : <build>no ]
1244 release # otherwise [ runtime is too slow!!
1245 ]
1246
1247 [ run standalone_test_convert_from_tom_int.cpp
1248 : # command line
1249 : # input files
1250 : # requirements
1251 [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
1252 [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
1253 [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
1254 [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
1255 [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
1256 ]
1257;
b32b8144 1258
7c673cae
FG
1259#
1260# This take too long to run as a regular part of the tests:
1261#
b32b8144
FG
1262run test_cpp_bin_float_round.cpp mpfr gmp ;
1263explicit test_cpp_bin_float_round ;
1264
1e59de90
TL
1265high_precision_points = 35 40 41 50 51 60 61 70 71 80 81 100 101 450 ;
1266
20effc67 1267rule get_specfun_tests_mpfr
7c673cae 1268{
92f5a8d4 1269 local result ;
7c673cae
FG
1270 for local source in [ glob math/*.cpp ]
1271 {
92f5a8d4 1272 result += [ run $(source) mpfr gmp
7c673cae 1273 /boost/test//boost_unit_test_framework/<link>static
7c673cae
FG
1274 math/instances//test_instances_mpfr/<link>static
1275 : # command line
1276 : # input files
1277 : # requirements
1278 [ check-target-builds ../config//has_mpfr : : <build>no ]
20effc67 1279 [ check-target-builds ../config//has_float128 : <source>quadmath ]
7c673cae
FG
1280 <define>TEST_MPFR_50
1281 <optimization>speed
1282 <define>BOOST_ALL_NO_LIB
1283 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1284 <toolset>msvc:<cxxflags>-bigobj
1285 <include>../../math/include_private
1286 release
92f5a8d4 1287 : $(source:B)_mpfr ] ;
20effc67 1288 }
1e59de90 1289 for local digits in $(high_precision_points)
20effc67 1290 {
1e59de90 1291 result += [ run math/high_prec/test_gamma.cpp
20effc67 1292 /boost/test//boost_unit_test_framework/<link>static
20effc67
TL
1293 : # command line
1294 : # input files
1295 : # requirements
1296 <optimization>speed
1297 <define>BOOST_ALL_NO_LIB
1e59de90 1298 <define>TEST_PRECISION=$(digits)
20effc67 1299 <toolset>msvc:<cxxflags>-bigobj
1e59de90 1300 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : <build>no ]
20effc67
TL
1301 [ check-target-builds ../config//has_float128 : <source>quadmath ]
1302 <include>../../math/include_private
1e59de90
TL
1303 release
1304 : test_gamma_mpfr_$(digits) ] ;
1305
20effc67
TL
1306 }
1307 return $(result) ;
1308}
1309
1310rule get_specfun_tests_gmp
1311{
1312 local result ;
1313 for local source in [ glob math/*.cpp ]
1314 {
92f5a8d4 1315 result += [ run $(source) gmp
7c673cae 1316 /boost/test//boost_unit_test_framework/<link>static
7c673cae
FG
1317 math/instances//test_instances_mpf/<link>static
1318 : # command line
1319 : # input files
1320 : # requirements
1321 [ check-target-builds ../config//has_gmp : : <build>no ]
20effc67 1322 [ check-target-builds ../config//has_float128 : <source>quadmath ]
7c673cae
FG
1323 <optimization>speed
1324 <define>TEST_MPF_50
1325 <define>BOOST_ALL_NO_LIB
7c673cae
FG
1326 <toolset>msvc:<cxxflags>-bigobj
1327 <include>../../math/include_private
1328 release
92f5a8d4 1329 : $(source:B)_mpf ] ;
20effc67 1330 }
1e59de90
TL
1331 for local digits in $(high_precision_points)
1332 {
1333 result += [ run math/high_prec/test_gamma.cpp
1334 /boost/test//boost_unit_test_framework/<link>static
1335 : # command line
1336 : # input files
1337 : # requirements
1338 <optimization>speed
1339 <define>BOOST_ALL_NO_LIB
1340 <define>TEST_PRECISION=$(digits)
1341 <toolset>msvc:<cxxflags>-bigobj
1342 [ check-target-builds ../config//has_gmp : <define>TEST_MPF <source>gmp : <build>no ]
1343 [ check-target-builds ../config//has_float128 : <source>quadmath ]
1344 <include>../../math/include_private
1345 release
1346 : test_gamma_gmp_$(digits) ] ;
1347
1348 }
20effc67
TL
1349 return $(result) ;
1350}
1351
1352rule get_specfun_tests_cpp_dec_float
1353{
1354 local result ;
1355 for local source in [ glob math/*.cpp ]
1356 {
92f5a8d4 1357 result += [ run $(source) /boost/test//boost_unit_test_framework/<link>static
7c673cae
FG
1358 math/instances//test_instances_cpp_dec_float/<link>static
1359 : # command line
1360 : # input files
1361 : # requirements
20effc67 1362 [ check-target-builds ../config//has_float128 : <source>quadmath ]
7c673cae
FG
1363 <define>TEST_CPP_DEC_FLOAT
1364 <define>BOOST_ALL_NO_LIB
7c673cae
FG
1365 <toolset>msvc:<cxxflags>-bigobj
1366 <include>../../math/include_private
1367 release
92f5a8d4 1368 : $(source:B)_cpp_dec_float ] ;
20effc67 1369 }
1e59de90
TL
1370 for local digits in $(high_precision_points)
1371 {
1372 result += [ run math/high_prec/test_gamma.cpp
1373 /boost/test//boost_unit_test_framework/<link>static
1374 : # command line
1375 : # input files
1376 : # requirements
1377 <optimization>speed
1378 <define>BOOST_ALL_NO_LIB
1379 <define>TEST_PRECISION=$(digits)
1380 <toolset>msvc:<cxxflags>-bigobj
1381 <define>TEST_CPP_DEC_FLOAT
1382 <include>../../math/include_private
1383 release
1384 : test_gamma_cpp_dec_float_$(digits) ] ;
1385 }
20effc67
TL
1386 return $(result) ;
1387}
1388
1389rule get_specfun_tests_cpp_bin_float
1390{
1391 local result ;
1392 for local source in [ glob math/*.cpp ]
1393 {
92f5a8d4 1394 result += [ run $(source) /boost/test//boost_unit_test_framework/<link>static
7c673cae
FG
1395 math/instances//test_instances_cpp_bin_float/<link>static
1396 : # command line
1397 : # input files
1398 : # requirements
1399 <define>TEST_CPP_BIN_FLOAT
1400 <define>BOOST_ALL_NO_LIB
7c673cae
FG
1401 <toolset>msvc:<cxxflags>-bigobj
1402 <include>../../math/include_private
1403 release
20effc67 1404 [ check-target-builds ../config//has_float128 : <source>quadmath ]
92f5a8d4 1405 : $(source:B)_cpp_bin_float ] ;
20effc67 1406 }
1e59de90
TL
1407 for local digits in $(high_precision_points)
1408 {
1409 result += [ run math/high_prec/test_gamma.cpp
1410 /boost/test//boost_unit_test_framework/<link>static
1411 : # command line
1412 : # input files
1413 : # requirements
1414 <optimization>speed
1415 <define>BOOST_ALL_NO_LIB
1416 <define>TEST_PRECISION=$(digits)
1417 <toolset>msvc:<cxxflags>-bigobj
1418 <define>TEST_CPP_BIN_FLOAT
1419 [ check-target-builds ../config//has_float128 : <source>quadmath ]
1420 <include>../../math/include_private
1421 release
1422 : test_gamma_cpp_bin_float_$(digits) ] ;
1423
1424 }
20effc67
TL
1425 return $(result) ;
1426}
1427
1428rule get_specfun_tests_float128
1429{
1430 local result ;
1431 for local source in [ glob math/*.cpp ]
1432 {
92f5a8d4 1433 result += [ run $(source) quadmath
7c673cae 1434 /boost/test//boost_unit_test_framework/<link>static
7c673cae
FG
1435 math/instances//test_instances_float128/<link>static
1436 : # command line
1437 : # input files
1438 : # requirements
1439 [ check-target-builds ../config//has_float128 : : <build>no ]
1440 <optimization>speed
1441 <define>TEST_FLOAT128
1442 <define>BOOST_ALL_NO_LIB
1443 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1444 <toolset>msvc:<cxxflags>-bigobj
1445 <include>../../math/include_private
1446 release
92f5a8d4 1447 : $(source:B)_float128 ] ;
20effc67
TL
1448 }
1449 return $(result) ;
1450}
1451
1452rule get_specfun_tests_intel_quad
1453{
1454 local result ;
1455 for local source in [ glob math/*.cpp ]
1456 {
92f5a8d4 1457 result += [ run $(source)
7c673cae 1458 /boost/test//boost_unit_test_framework/<link>static
7c673cae
FG
1459 math/instances//test_instances_intel_quad/<link>static
1460 : # command line
1461 : # input files
1462 : # requirements
20effc67
TL
1463 [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ]
1464 [ check-target-builds ../config//has_float128 : <source>quadmath ]
7c673cae
FG
1465 <optimization>speed
1466 <define>TEST_FLOAT128
1467 <define>BOOST_ALL_NO_LIB
1468 <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
1469 <toolset>msvc:<cxxflags>-bigobj
1470 <include>../../math/include_private
1471 release
92f5a8d4 1472 : $(source:B)_intel_quad ] ;
7c673cae 1473 }
92f5a8d4 1474 return $(result) ;
7c673cae
FG
1475}
1476
20effc67
TL
1477test-suite specfun_mpfr : [ get_specfun_tests_mpfr ] ;
1478explicit specfun_mpfr ;
1479test-suite specfun_gmp : [ get_specfun_tests_gmp ] ;
1480explicit specfun_gmp ;
1481test-suite specfun_cpp_dec_float : [ get_specfun_tests_cpp_dec_float ] ;
1482explicit specfun_cpp_dec_float ;
1483test-suite specfun_cpp_bin_float : [ get_specfun_tests_cpp_bin_float ] ;
1484explicit specfun_cpp_bin_float ;
1485test-suite specfun_float128 : [ get_specfun_tests_float128 ] ;
1486explicit specfun_float128 ;
1487test-suite specfun_intel_quad : [ get_specfun_tests_intel_quad ] ;
1488explicit specfun_intel_quad ;
1489
1490test-suite specfun : specfun_mpfr specfun_gmp specfun_cpp_dec_float specfun_cpp_bin_float specfun_float128 specfun_intel_quad ;
92f5a8d4 1491explicit specfun ;
b32b8144 1492
92f5a8d4 1493rule get_compile_fail_tests
7c673cae 1494{
92f5a8d4
TL
1495
1496 local compile_fail_tests ;
1497
1498 for local source in [ glob compile_fail/*.cpp ]
1499 {
1500 compile_fail_tests += $(source:B) ;
1501 compile-fail $(source)
1502 :
1503 [ check-target-builds ../config//has_gmp : <define>TEST_GMP <debug-symbols>off : ]
1504 [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <debug-symbols>off : ]
1505 ;
1506 }
1507 return $(compile_fail_tests) ;
7c673cae
FG
1508}
1509
92f5a8d4 1510test-suite compile_fail : [ get_compile_fail_tests ] ;
b32b8144 1511
92f5a8d4 1512rule get_concept_checks
7c673cae 1513{
92f5a8d4 1514 local result ;
7c673cae
FG
1515 for local source in [ glob concepts/*.cpp ]
1516 {
1517
92f5a8d4 1518 result += [ compile $(source) mpfr
7c673cae 1519 : # requirements
92f5a8d4 1520 <define>TEST_MPFR_50
7c673cae
FG
1521 [ check-target-builds ../config//has_mpfr : : <build>no ]
1522 <debug-symbols>off
92f5a8d4
TL
1523 <optimization>space
1524 : $(source:B)_mpfr_50 ] ;
7c673cae 1525
92f5a8d4 1526 result += [ compile $(source) mpfr
7c673cae 1527 : # requirements
92f5a8d4 1528 <define>TEST_MPFR_6
7c673cae
FG
1529 [ check-target-builds ../config//has_mpfr : : <build>no ]
1530 <debug-symbols>off
92f5a8d4
TL
1531 <optimization>space
1532 : $(source:B)_mpfr_6 ] ;
7c673cae 1533
92f5a8d4 1534 result += [ compile $(source) mpfr
7c673cae 1535 : # requirements
92f5a8d4 1536 <define>TEST_MPFR_15
7c673cae
FG
1537 [ check-target-builds ../config//has_mpfr : : <build>no ]
1538 <debug-symbols>off
92f5a8d4
TL
1539 <optimization>space
1540 : $(source:B)_mpfr_15 ] ;
7c673cae 1541
92f5a8d4 1542 result += [ compile $(source) mpfr
7c673cae 1543 : # requirements
92f5a8d4 1544 <define>TEST_MPFR_17
7c673cae
FG
1545 [ check-target-builds ../config//has_mpfr : : <build>no ]
1546 <debug-symbols>off
92f5a8d4
TL
1547 <optimization>space
1548 : $(source:B)_mpfr_17 ] ;
7c673cae 1549
92f5a8d4 1550 result += [ compile $(source) mpfr
7c673cae 1551 : # requirements
92f5a8d4 1552 <define>TEST_MPFR_30
7c673cae
FG
1553 [ check-target-builds ../config//has_mpfr : : <build>no ]
1554 <debug-symbols>off
92f5a8d4
TL
1555 <optimization>space
1556 : $(source:B)_mpfr_30 ] ;
7c673cae 1557
92f5a8d4 1558 result += [ compile $(source) gmp
7c673cae 1559 : # requirements
92f5a8d4 1560 <define>TEST_MPF_50
7c673cae
FG
1561 [ check-target-builds ../config//has_gmp : : <build>no ]
1562 <debug-symbols>off
92f5a8d4
TL
1563 <optimization>space
1564 : $(source:B)_mpf50 ] ;
7c673cae 1565
92f5a8d4 1566 result += [ compile $(source)
7c673cae 1567 : # requirements
92f5a8d4 1568 <define>TEST_CPP_DEC_FLOAT
7c673cae 1569 <debug-symbols>off
92f5a8d4
TL
1570 <optimization>space
1571 : $(source:B)_cpp_dec_float ] ;
7c673cae 1572
92f5a8d4 1573 result += [ compile $(source)
7c673cae 1574 : # requirements
92f5a8d4 1575 <define>TEST_CPP_BIN_FLOAT
7c673cae 1576 <debug-symbols>off
92f5a8d4
TL
1577 <optimization>space
1578 : $(source:B)_cpp_bin_float ] ;
7c673cae 1579
92f5a8d4 1580 result += [ compile $(source)
7c673cae 1581 : # requirements
92f5a8d4 1582 <define>TEST_CPP_DEC_FLOAT_NO_ET
7c673cae 1583 <debug-symbols>off
92f5a8d4
TL
1584 <optimization>space
1585 : $(source:B)_cpp_dec_float_no_et ] ;
7c673cae 1586
92f5a8d4 1587 result += [ compile $(source)
7c673cae 1588 : # requirements
92f5a8d4 1589 <define>TEST_BACKEND
7c673cae 1590 <debug-symbols>off
92f5a8d4
TL
1591 <optimization>space
1592 : $(source:B)_backend_concept ] ;
7c673cae 1593
92f5a8d4 1594 result += [ compile $(source)
7c673cae 1595 : # requirements
92f5a8d4 1596 <define>TEST_LOGGED_ADAPTER
7c673cae 1597 <debug-symbols>off
92f5a8d4
TL
1598 <optimization>space
1599 : $(source:B)_logged_adaptor ] ;
7c673cae 1600 }
92f5a8d4 1601 return $(result) ;
7c673cae
FG
1602}
1603
92f5a8d4 1604test-suite concepts : [ get_concept_checks ] ;
7c673cae 1605
92f5a8d4 1606test-suite examples : ../example//examples ;
f67539c2 1607test-suite performance : ../performance//performance ;