1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240 |
- # copyright John Maddock 2011
- # Distributed under the Boost Software License, Version 1.0.
- # (See accompanying file LICENSE_1_0.txt or copy at
- # http://www.boost.org/LICENSE_1_0.txt.
- import testing ;
- import modules ;
- import path ;
- import ../../config/checks/config : requires ;
- local ntl-path = [ modules.peek : NTL_PATH ] ;
- local gmp_path = [ modules.peek : GMP_PATH ] ;
- local mpfr_path = [ modules.peek : MPFR_PATH ] ;
- local mpfi_path = [ modules.peek : MPFI_PATH ] ;
- local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
- #######################################################################################
- #
- # NOTE: Because these tests take a fair while to build and run, they are split up into
- # multiple smaller test suites which are:
- #
- # arithmetic_tests
- # functions_and_limits
- # conversions
- # cpp_int_tests
- # misc
- # specfun
- # compile_fail
- # concepts
- # examples
- #
- # You can run an individual suite by passing it's name to b2 on the command line.
- # Or you can run all except the "specfun" tests (which are very slow) by not specifying anything.
- #
- # Please make sure that any new tests are added to one of the test suites, and that the
- # build times for the various suites are reasonably balanced: otherwise the CI builds
- # will time out if one suite contains too many.
- #
- #######################################################################################################
- path-constant here : . ;
- project : requirements
- <include>$(gmp_path)
- <include>$(gmp_path)/mpfr
- <include>$(gmp_path)/gmpfrxx
- <include>$(mpfr_path)
- <include>$(mpfi_path)
- <include>$(mpfi_path)/src
- <include>$(tommath_path)
- <include>../include
- <include>../../..
- # We set these to make it easier to set up and test GMP and MPFR under Win32:
- <toolset>msvc:<runtime-link>static
- <toolset>msvc:<link>static
- <toolset>msvc:<warnings>all
- <toolset>msvc:<cxxflags>/fp\:precise
- <toolset>intel-win:<runtime-link>static
- <toolset>intel-win:<link>static
- <toolset>clang-win:<link>static
-
- # Assembler error "File too big" caused by lots of C++ templates, for example, math/floating_point_examples.cpp.
- # Some projects on some toolsets may require
- # <toolset>gcc-mingw:<cxxflags>\"-Wa,-mbig-obj\"
- # See https://digitalkarabela.com/mingw-w64-how-to-fix-file-too-big-too-many-sections/
- # <toolset>gcc-mingw:<cxxflags>-Wa,-mbig-obj # Some projects may overflow assembler and require equivalent of MSVC /bigobj.
- # Requires version 2.30 of GNU binutils.
- # Best applied only to projects that require this, see multiprecision/example run math/floating_point_examples.cpp.
-
- # Speed up compiles:
- <toolset>msvc:<debug-symbols>off
- <toolset>intel:<debug-symbols>off
- <toolset>gcc:<cxxflags>-Wall
- <toolset>gcc:<cxxflags>-Wextra
- <toolset>intel:<define>SLOW_COMPILER
- <toolset>msvc,<optimization>off:<cxxflags>-RTC1
- # We can't yet enable this - it breaks the STL in some tests...
- #<toolset>msvc,<optimization>off:<cxxflags>-RTCc
- #<toolset>msvc,<optimization>off:<define>_ALLOW_RTCc_IN_STL
- ;
- local enable-specfun = [ MATCH (--enable-specfun) : [ modules.peek : ARGV ] ] ;
- local disable-concepts = [ MATCH (--disable-concepts) : [ modules.peek : ARGV ] ] ;
- lib gmp : : <search>$(gmp_path) ;
- lib mpfr : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug ;
- lib mpfi : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug <search>$(mpfi_path) <search>$(mpfi_path)/src ;
- lib quadmath ;
- lib mpc ;
- if $(tommath_path)
- {
- lib tommath : [ GLOB $(tommath_path) : *.c ] ;
- TOMMATH = tommath ;
- }
- else
- {
- lib tommath : : <search>$(tommath_path) ;
- TOMMATH = tommath ;
- }
- lib no_eh_support : no_eh_test_support.cpp ;
- test-suite arithmetic_tests :
- [ run test_arithmetic_backend_concept.cpp no_eh_support ]
- [ run test_arithmetic_cpp_dec_float_1.cpp no_eh_support ]
- [ run test_arithmetic_cpp_dec_float_2.cpp no_eh_support ]
- [ run test_arithmetic_cpp_dec_float_3.cpp no_eh_support ]
- [ run test_arithmetic_cpp_dec_float_3m.cpp no_eh_support ]
- [ run test_arithmetic_cpp_bin_float_1.cpp no_eh_support ]
- [ run test_arithmetic_cpp_bin_float_2.cpp no_eh_support ]
- [ run test_arithmetic_cpp_bin_float_2m.cpp no_eh_support ]
- [ run test_arithmetic_cpp_bin_float_3.cpp no_eh_support ]
- [ run test_arithmetic_mpf_50.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_arithmetic_mpf.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_arithmetic_mpz.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_arithmetic_mpz_rat.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_arithmetic_mpz_br.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_arithmetic_mpq.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_arithmetic_mpfr.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
- [ run test_arithmetic_mpfr_50.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
- [ run test_arithmetic_mpfr_50_static.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
- [ run test_arithmetic_tommath.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
- [ run test_arithmetic_tommath_rat.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
- [ run test_arithmetic_tommath_br.cpp $(TOMMATH) no_eh_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ]
- [ run test_arithmetic_cpp_int_1.cpp no_eh_support : : : <toolset>msvc:<cxxflags>-bigobj ]
- [ run test_arithmetic_cpp_int_2.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_3.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_4.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_5.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_6.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_7.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_8.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_9.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_10.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_11.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_12.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_13.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_14.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_15.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_16.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_17.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_18.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_19.cpp no_eh_support ]
- [ run test_arithmetic_cpp_int_br.cpp no_eh_support ]
- [ run test_arithmetic_ab_1.cpp no_eh_support ]
- [ run test_arithmetic_ab_2.cpp no_eh_support ]
- [ run test_arithmetic_ab_3.cpp no_eh_support ]
- [ run test_cpp_dec_float_round.cpp no_eh_support ]
- [ run test_arithmetic_logged_1.cpp no_eh_support ]
- [ run test_arithmetic_logged_2.cpp no_eh_support ]
- [ run test_arithmetic_dbg_adptr1.cpp no_eh_support ]
- [ run test_arithmetic_dbg_adptr1m.cpp no_eh_support ]
- [ run test_arithmetic_dbg_adptr2.cpp no_eh_support ]
- [ run test_arithmetic_mpfi_50.cpp mpfi mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ]
- [ run test_arithmetic_float_128.cpp quadmath no_eh_support : : : [ check-target-builds ../config//has_float128 : : <build>no ] ]
- [ 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 ]
- [ run test_arithmetic_mpc.cpp mpc mpfr gmp : : : [ check-target-builds ../config//has_mpc : : <build>no ] ]
- [ run test_mpfr_mpc_precisions.cpp mpc mpfr gmp : : : [ check-target-builds ../config//has_mpc : : <build>no ] ]
- [ run test_mpfi_precisions.cpp mpfi mpfr gmp : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ]
- [ run test_mpf_precisions.cpp gmp : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ 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 ] ]
- [ run test_arithmetic_complex_adaptor.cpp ]
- [ run test_arithmetic_complex_adaptor_2.cpp ]
- [ run test_arithmetic_complex128.cpp : : : [ check-target-builds ../config//has_float128 : <source>quadmath ] ]
- ;
- rule get_function_tests
- {
- local result ;
- 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
- {
- result += [ run $(source) gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- <define>TEST_MPF_50
- : $(source:B)_mpf50 ] ;
- result += [ run $(source) mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- <define>TEST_MPFR_50
- : $(source:B)_mpfr50 ] ;
- result += [ run $(source) mpfi mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_mpfi : : <build>no ]
- <define>TEST_MPFI_50
- : $(source:B)_mpfi50 ] ;
- result += [ run $(source) no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : $(source:B)_cpp_dec_float ] ;
- result += [ run $(source) no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_BIN_FLOAT
- : $(source:B)_cpp_bin_float ] ;
- result += [ run $(source) quadmath no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_float128 : : <build>no ]
- <define>TEST_FLOAT128
- : $(source:B)_float128 ] ;
- result += [ run $(source) no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
- <define>TEST_FLOAT128
- : $(source:B)_intel_quad ] ;
- }
- return $(result) ;
- }
- test-suite functions_and_limits :
- [ run test_numeric_limits.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_BACKEND
- : test_numeric_limits_backend_concept ]
- [ run test_numeric_limits.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_numeric_limits_mpf50 ]
- [ run test_numeric_limits.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_numeric_limits_mpf ]
- [ run test_numeric_limits.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPZ
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_numeric_limits_mpz ]
- [ run test_numeric_limits.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPQ
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_numeric_limits_mpq ]
- [ run test_numeric_limits.cpp mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_numeric_limits_mpfr ]
- [ run test_numeric_limits.cpp mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_numeric_limits_mpfr_50 ]
- [ run test_numeric_limits.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_numeric_limits_cpp_dec_float ]
- [ run test_numeric_limits.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_BIN_FLOAT
- : test_numeric_limits_cpp_bin_float ]
- [ run test_numeric_limits.cpp $(TOMMATH) no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_TOMMATH
- [ check-target-builds ../config//has_tommath : : <build>no ]
- : test_numeric_limits_tommath ]
- [ run test_numeric_limits.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_INT
- : test_numeric_limits_cpp_int ]
- [ run test_numeric_limits.cpp mpfi mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFI_50
- [ check-target-builds ../config//has_mpfi : : <build>no ]
- : test_numeric_limits_mpfi_50 ]
- [ run test_numeric_limits.cpp quadmath no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_FLOAT128
- [ check-target-builds ../config//has_float128 : : <build>no ]
- : test_numeric_limits_float128 ]
- [ run test_numeric_limits.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_FLOAT128
- [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
- : test_numeric_limits_intel_quad ]
- [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_2 : test_sf_import_c99_cpp_dec_float_2 ]
- [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_3 : test_sf_import_c99_cpp_dec_float_3 ]
- [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_4 : test_sf_import_c99_cpp_dec_float_4 ]
- [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_5 : test_sf_import_c99_cpp_dec_float_5 ]
- [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_DEC_FLOAT_6 : test_sf_import_c99_cpp_dec_float_6 ]
- [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_BIN_FLOAT_2 : test_sf_import_c99_cpp_bin_float_2 ]
- [ run test_sf_import_c99.cpp : : : <define>TEST_CPP_BIN_FLOAT_2 : test_sf_import_c99_cpp_bin_float_3 ]
- [ run test_move.cpp mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_move_mpfr ]
- [ run test_move.cpp mpc mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPC
- [ check-target-builds ../config//has_mpc : : <build>no ]
- : test_move_mpc ]
- [ run test_move.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_GMP
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_move_gmp ]
- [ run test_move.cpp $(TOMMATH) no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_TOMMATH
- [ check-target-builds ../config//has_tommath : : <build>no ]
- : test_move_tommath ]
- [ run test_move.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_INT
- : test_move_cpp_int ]
- [ get_function_tests ]
- ;
- test-suite conversions :
- [ run test_gmp_conversions.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_mpfr_conversions.cpp gmp mpfr no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_mpfr : : <build>no ] ]
- [ run test_mpc_conversions.cpp gmp mpfr mpc no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_mpc : : <build>no ] ]
- [ run test_constants.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_constants_mpf50 ]
- [ run test_constants.cpp mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_constants_mpfr_50 ]
- [ run test_constants.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- : test_constants_cpp_dec_float ]
- [ run test_test.cpp ]
- [ run test_cpp_int_lit.cpp no_eh_support ]
- #
- # Interconversion tests:
- #
- [ run test_convert_from_cpp_int.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_mpz_int.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_tom_int.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_cpp_rational.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_gmp_rational.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_tom_rational.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_cpp_bin_float.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_cpp_dec_float.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_mpf_float.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_mpfr_float.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_mpfi_float.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_convert_from_float128.cpp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>HAS_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>HAS_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>HAS_TOMMATH <source>tommath : ]
- [ check-target-builds ../config//has_float128 : <define>HAS_FLOAT128 <source>quadmath : ]
- ]
- [ run test_cpp_bin_float_conv.cpp ]
- [ run test_cpp_bin_float_io.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_BIN_FLOAT
- <define>TEST1
- release # Otherwise [ runtime is slow
- : test_cpp_bin_float_io_1
- ]
- [ run test_cpp_bin_float_io.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_BIN_FLOAT
- <define>TEST2
- release # Otherwise [ runtime is slow
- : test_cpp_bin_float_io_2
- ]
- [ run test_cpp_bin_float.cpp no_eh_support mpfr gmp /boost/system//boost_system /boost/chrono//boost_chrono
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- release # Otherwise [ runtime is slow
- ]
- [ run test_float_io.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- release # Otherwise [ runtime is slow
- : test_float_io_cpp_dec_float ]
- [ run test_float_io.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPF_50
- release # Otherwise [ runtime is slow
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_float_io_mpf ]
- [ run test_float_io.cpp mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFR_50
- release # Otherwise [ runtime is slow
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- : test_float_io_mpfr ]
- [ run test_float_io.cpp mpfi mpfr gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPFI_50
- release # Otherwise [ runtime is slow
- [ check-target-builds ../config//has_mpfi : : <build>no ]
- : test_float_io_mpfi ]
- [ run test_float_io.cpp quadmath no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_FLOAT128
- release # Otherwise [ runtime is slow
- [ check-target-builds ../config//has_float128 : : <build>no ]
- : test_float_io_float128 ]
- [ run test_float_io.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_FLOAT128
- release # Otherwise [ runtime is slow
- [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
- : test_float_io_intel_quad ]
- [ run test_int_io.cpp no_eh_support $(TOMMATH)
- : # command line
- : # input files
- : # requirements
- <define>TEST_TOMMATH
- release # Otherwise [ runtime is slow
- [ check-target-builds ../config//has_tommath : : <build>no ]
- : test_int_io_tommath ]
- [ run test_int_io.cpp no_eh_support gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPZ
- release # Otherwise [ runtime is slow
- [ check-target-builds ../config//has_gmp : : <build>no ]
- : test_int_io_mpz ]
- ;
- test-suite cpp_int_tests :
- [ run test_int_io.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_INT
- release # Otherwise [ runtime is slow
- : test_int_io_cpp_int ]
- [ run test_cpp_int_left_shift.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # otherwise [ runtime is too slow!!
- ]
- [ run test_cpp_int.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # otherwise [ runtime is too slow!!
- <define>TEST1
- : test_cpp_int_1
- ]
- [ run test_cpp_int.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # otherwise [ runtime is too slow!!
- <define>TEST2
- : test_cpp_int_2
- ]
- [ run test_cpp_int.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # otherwise [ runtime is too slow!!
- <define>TEST3
- : test_cpp_int_3
- ]
- [ run test_cpp_int.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # otherwise [ runtime is too slow!!
- <define>TEST4
- : test_cpp_int_4
- ]
- [ run test_cpp_int.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # otherwise [ runtime is too slow!!
- <define>TEST5
- : test_cpp_int_5
- ]
- [ run test_checked_cpp_int.cpp no_eh_support ]
- [ run test_unchecked_cpp_int.cpp no_eh_support : : : release ]
- [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST1 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_1 ]
- [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST2 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_2 ]
- [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST3 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_3 ]
- [ run test_cpp_int_serial.cpp ../../serialization/build//boost_serialization : : : release <define>TEST4 <toolset>gcc-mingw:<link>static : test_cpp_int_serial_4 ]
- [ run test_cpp_int_deserial.cpp ../../serialization/build//boost_serialization ../../filesystem/build//boost_filesystem : $(here)/serial_txts : : release <toolset>gcc-mingw:<link>static ]
- [ run test_cpp_rat_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static ]
- ;
- test-suite misc :
- [ compile test_constexpr.cpp :
- [ check-target-builds ../config//has_float128 : <define>HAVE_FLOAT128 : ]
- [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type <define>HAVE_FLOAT128 : ]
- [ requires cxx11_constexpr cxx11_user_defined_literals ] ]
- [ compile constexpr_test_arithmetic_backend.cpp :
- [ requires cxx14_constexpr cxx17_if_constexpr ] ]
- [ compile constexpr_test_float128.cpp :
- [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_float128 : <source>quadmath : <build>no ] ]
- [ run constexpr_test_cpp_int.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
- [ run constexpr_test_cpp_int_2.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
- [ run constexpr_test_cpp_int_3.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
- [ run constexpr_test_cpp_int_4.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
- [ run constexpr_test_cpp_int_5.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : : <build>no ] ]
- [ run constexpr_test_cpp_int_6.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : <toolset>clang:<cxxflags>-fconstexpr-steps=268435456 : <build>no ] [ check-target-builds ../config//has_constexpr_limits : <cxxflags>-fconstexpr-ops-limit=268435456 ] ]
- [ run constexpr_test_cpp_int_7.cpp : : : [ requires cxx14_constexpr cxx17_if_constexpr ] [ check-target-builds ../config//has_is_constant_evaluated : <toolset>clang:<cxxflags>-fconstexpr-steps=268435456 : <build>no ] ]
- [ compile test_nothrow_cpp_int.cpp ]
- [ compile test_nothrow_cpp_rational.cpp ]
- [ compile test_nothrow_cpp_bin_float.cpp ]
- [ compile test_nothrow_cpp_dec_float.cpp ]
- [ compile test_nothrow_float128.cpp : [ check-target-builds ../config//has_float128 : : <build>no ] ]
- [ compile test_nothrow_gmp.cpp : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ compile test_nothrow_mpfr.cpp : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
- [ run test_miller_rabin.cpp no_eh_support gmp
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # otherwise [ runtime is too slow!!
- ]
- [ run test_rational_io.cpp $(TOMMATH) no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_TOMMATH
- [ check-target-builds ../config//has_tommath : : <build>no ]
- release # Otherwise [ runtime is slow
- : test_rational_io_tommath ]
- [ run test_rational_io.cpp gmp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_MPQ
- [ check-target-builds ../config//has_gmp : : <build>no ]
- release # Otherwise [ runtime is slow
- : test_rational_io_mpz ]
- [ run test_rational_io.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_INT
- release # Otherwise [ runtime is slow
- : test_rational_io_cpp_int ]
- [ run test_generic_conv.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
- [ check-target-builds ../config//has_tommath : <define>TEST_TOMMATH <source>$(TOMMATH) : ]
- [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>mpfr : ]
- release # Otherwise [ runtime is slow
- ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
- : # command line
- : # input files
- : # requirements
- <define>TEST1
- release
- : test_rat_float_interconv_1 ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
- : # command line
- : # input files
- : # requirements
- <define>TEST2
- release
- : test_rat_float_interconv_2 ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
- : # command line
- : # input files
- : # requirements
- <define>TEST3
- release
- : test_rat_float_interconv_3 ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono
- : # command line
- : # input files
- : # requirements
- <define>TEST4
- release
- : test_rat_float_interconv_4 ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST5
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- release
- : test_rat_float_interconv_5 ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST6
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- release
- : test_rat_float_interconv_6 ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST7
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- release
- : test_rat_float_interconv_7 ]
- [ run test_rat_float_interconv.cpp no_eh_support /boost/system//boost_system /boost/chrono//boost_chrono mpfr gmp
- : # command line
- : # input files
- : # requirements
- <define>TEST8
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- release
- : test_rat_float_interconv_8 ]
- [ run test_cpp_int_conv.cpp no_eh_support ]
- [ run test_cpp_int_import_export.cpp no_eh_support ]
- [ run test_native_integer.cpp no_eh_support ]
- [ run test_mixed_cpp_int.cpp no_eh_support ]
- [ run test_mixed_float.cpp no_eh_support
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : <define>TEST_GMP <library>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <library>mpfr <library>gmp : ] ]
- [ compile include_test/mpfr_include_test.cpp
- : # requirements
- [ check-target-builds ../config//has_mpfr : : <build>no ] ]
- [ compile include_test/gmp_include_test.cpp
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ compile include_test/tommath_include_test.cpp
- : # requirements
- [ check-target-builds ../config//has_tommath : : <build>no ] ]
- [ compile include_test/cpp_int_include_test.cpp ]
- [ compile include_test/cpp_dec_float_include_test.cpp ]
- [ compile include_test/cpp_bin_float_include_test.cpp ]
- [ run ublas_interop/test1.cpp ublas_interop/test11.cpp ublas_interop/test12.cpp ublas_interop/test13.cpp no_eh_support ]
- [ run ublas_interop/test2.cpp ublas_interop/test21.cpp ublas_interop/test22.cpp ublas_interop/test23.cpp no_eh_support ]
- #[ run ublas_interop/test3.cpp ublas_interop/test31.cpp ublas_interop/test32.cpp ublas_interop/test33.cpp ]
- [ run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp no_eh_support ]
- [ run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp no_eh_support ]
- [ run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp no_eh_support ]
- #[ run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp ]
- [ 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 ]
- [ 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 ]
- #[ run ublas_interop/test3.cpp ublas_interop/test31.cpp ublas_interop/test32.cpp ublas_interop/test33.cpp : : : <define>TEST_ET=1 : ublas3_et ]
- [ run ublas_interop/test4.cpp ublas_interop/test42.cpp ublas_interop/test43.cpp no_eh_support : : : <define>TEST_ET=1 : ublas3_et ]
- [ run ublas_interop/test5.cpp ublas_interop/test52.cpp ublas_interop/test53.cpp no_eh_support : : : <define>TEST_ET=1 : ublas4_et ]
- [ run ublas_interop/test6.cpp ublas_interop/test62.cpp ublas_interop/test63.cpp no_eh_support : : : <define>TEST_ET=1 : ublas5_et ]
- #[ run ublas_interop/test7.cpp ublas_interop/test71.cpp ublas_interop/test72.cpp ublas_interop/test73.cpp : : : <define>TEST_ET=1 : ublas6_et ]
- #
- # Serialization tests, run in release mode so we cycle through more values:
- #
- [ run test_adapt_serial.cpp ../../serialization/build//boost_serialization : : : release <toolset>gcc-mingw:<link>static ]
- [ 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 ]
- [ 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 ]
- [ run test_float128_serial.cpp ../../serialization/build//boost_serialization quadmath : : : release <toolset>gcc-mingw:<link>static [ check-target-builds ../config//has_float128 : : <build>no ] ]
- [ 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 ]
- [ 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 ]
- #
- # Mixed mode comparison tests, see: https://svn.boost.org/trac/boost/ticket/11328
- #
- [ run test_checked_mixed_cpp_int.cpp no_eh_support ]
- [ run test_mixed_cpp_bin_float.cpp no_eh_support ]
- [ run test_mixed_cpp_dec_float.cpp no_eh_support ]
- [ run test_mixed_mpf_float.cpp gmp no_eh_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ run test_mixed_mpfr_float.cpp mpfr gmp no_eh_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ]
- #
- # Check for narrowing conversions:
- #
- [ run test_float_conversions.cpp no_eh_support ]
- #
- # specific bug cases:
- #
- [ compile bug11922.cpp ]
- [ run bug12039.cpp no_eh_support ]
- [ compile git_issue_30.cpp ]
- [ compile git_issue_98.cpp :
- [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
- [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpc : <define>TEST_MPC <source>gmp <source>mpfr <source>mpc : ] ]
- [ run issue_13301.cpp ]
- [ run issue_13148.cpp ]
- [ run test_hash.cpp : : :
- [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
- [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
- [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
- [ check-target-builds ../config//has_mpfi : <define>TEST_MPFI <source>gmp <source>mpfr <source>mpfi : ]
- [ check-target-builds ../config//has_tommath : <define>TEST_TOMMATH <source>tommath : ]
- ]
- [ run test_optional_compat.cpp ]
- #
- # Eigen interoperability:
- #
- [ run test_eigen_interop_cpp_int.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
- [ run test_eigen_interop_cpp_dec_float.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
- [ run test_eigen_interop_cpp_dec_float_2.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
- [ run test_eigen_interop_cpp_dec_float_3.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
- [ run test_eigen_interop_cpp_bin_float_1.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
- [ run test_eigen_interop_cpp_bin_float_2.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
- [ run test_eigen_interop_cpp_bin_float_3.cpp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] ]
- [ 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 ] ]
- [ 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 ] ]
- [ 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 ] ]
- [ run test_eigen_interop_gmp.cpp gmp : : : release [ check-target-builds ../config//has_eigen : : <build>no ] [ check-target-builds ../config//has_gmp : : <build>no ] ]
- [ 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 ] ]
- ;
- #
- # This take too long to run as a regular part of the tests:
- #
- run test_cpp_bin_float_round.cpp mpfr gmp ;
- explicit test_cpp_bin_float_round ;
- rule get_specfun_tests
- {
- local result ;
- for local source in [ glob math/*.cpp ]
- {
- result += [ run $(source) mpfr gmp
- /boost/test//boost_unit_test_framework/<link>static
- /boost/regex//boost_regex/<link>static
- math/instances//test_instances_mpfr/<link>static
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- <define>TEST_MPFR_50
- <optimization>speed
- <define>BOOST_ALL_NO_LIB
- <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
- <toolset>msvc:<cxxflags>-bigobj
- <include>../../math/include_private
- release
- : $(source:B)_mpfr ] ;
- result += [ run $(source) gmp
- /boost/test//boost_unit_test_framework/<link>static
- /boost/regex//boost_regex/<link>static
- math/instances//test_instances_mpf/<link>static
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_gmp : : <build>no ]
- <optimization>speed
- <define>TEST_MPF_50
- <define>BOOST_ALL_NO_LIB
- <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
- <toolset>msvc:<cxxflags>-bigobj
- <include>../../math/include_private
- release
- : $(source:B)_mpf ] ;
- result += [ run $(source) /boost/test//boost_unit_test_framework/<link>static
- /boost/regex//boost_regex/<link>static
- math/instances//test_instances_cpp_dec_float/<link>static
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- <define>BOOST_ALL_NO_LIB
- <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
- <optimization>speed
- <toolset>msvc:<cxxflags>-bigobj
- <include>../../math/include_private
- release
- : $(source:B)_cpp_dec_float ] ;
- result += [ run $(source) /boost/test//boost_unit_test_framework/<link>static
- /boost/regex//boost_regex/<link>static
- math/instances//test_instances_cpp_bin_float/<link>static
- : # command line
- : # input files
- : # requirements
- <define>TEST_CPP_BIN_FLOAT
- <define>BOOST_ALL_NO_LIB
- <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
- <optimization>speed
- <toolset>msvc:<cxxflags>-bigobj
- <include>../../math/include_private
- release
- : $(source:B)_cpp_bin_float ] ;
- result += [ run $(source) quadmath
- /boost/test//boost_unit_test_framework/<link>static
- /boost/regex//boost_regex/<link>static
- math/instances//test_instances_float128/<link>static
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_float128 : : <build>no ]
- <optimization>speed
- <define>TEST_FLOAT128
- <define>BOOST_ALL_NO_LIB
- <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
- <toolset>msvc:<cxxflags>-bigobj
- <include>../../math/include_private
- release
- : $(source:B)_float128 ] ;
- result += [ run $(source)
- /boost/test//boost_unit_test_framework/<link>static
- /boost/regex//boost_regex/<link>static
- math/instances//test_instances_intel_quad/<link>static
- : # command line
- : # input files
- : # requirements
- [ check-target-builds ../config//has_intel_quad : <cxxflags>-Qoption,cpp,--extended_float_type : <build>no ] [ check-target-builds ../config//has_float128 : <source>quadmath ]
- <optimization>speed
- <define>TEST_FLOAT128
- <define>BOOST_ALL_NO_LIB
- <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
- <toolset>msvc:<cxxflags>-bigobj
- <include>../../math/include_private
- release
- : $(source:B)_intel_quad ] ;
- }
- #
- # High precision tests are rather different, as they test only one
- # multiprecision type and are more a test of Boost.Math:
- #
- for local source in [ glob math/high_prec/*.cpp ]
- {
- result += [ run $(source)
- /boost/test//boost_unit_test_framework/<link>static
- /boost/regex//boost_regex/<link>static
- : # command line
- : # input files
- : # requirements
- <optimization>speed
- <define>BOOST_ALL_NO_LIB
- <define>BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
- <toolset>msvc:<cxxflags>-bigobj
- [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <source>gmp <source>mpfr : ]
- <include>../../math/include_private
- release ] ;
- }
- return $(result) ;
- }
- test-suite specfun : [ get_specfun_tests ] ;
- explicit specfun ;
- rule get_compile_fail_tests
- {
- local compile_fail_tests ;
- for local source in [ glob compile_fail/*.cpp ]
- {
- compile_fail_tests += $(source:B) ;
- compile-fail $(source)
- :
- [ check-target-builds ../config//has_gmp : <define>TEST_GMP <debug-symbols>off : ]
- [ check-target-builds ../config//has_mpfr : <define>TEST_MPFR <debug-symbols>off : ]
- ;
- }
- return $(compile_fail_tests) ;
- }
- test-suite compile_fail : [ get_compile_fail_tests ] ;
- rule get_concept_checks
- {
- local result ;
- for local source in [ glob concepts/*.cpp ]
- {
- result += [ compile $(source) mpfr
- : # requirements
- <define>TEST_MPFR_50
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- <debug-symbols>off
- <optimization>space
- : $(source:B)_mpfr_50 ] ;
- result += [ compile $(source) mpfr
- : # requirements
- <define>TEST_MPFR_6
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- <debug-symbols>off
- <optimization>space
- : $(source:B)_mpfr_6 ] ;
- result += [ compile $(source) mpfr
- : # requirements
- <define>TEST_MPFR_15
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- <debug-symbols>off
- <optimization>space
- : $(source:B)_mpfr_15 ] ;
- result += [ compile $(source) mpfr
- : # requirements
- <define>TEST_MPFR_17
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- <debug-symbols>off
- <optimization>space
- : $(source:B)_mpfr_17 ] ;
- result += [ compile $(source) mpfr
- : # requirements
- <define>TEST_MPFR_30
- [ check-target-builds ../config//has_mpfr : : <build>no ]
- <debug-symbols>off
- <optimization>space
- : $(source:B)_mpfr_30 ] ;
- result += [ compile $(source) gmp
- : # requirements
- <define>TEST_MPF_50
- [ check-target-builds ../config//has_gmp : : <build>no ]
- <debug-symbols>off
- <optimization>space
- : $(source:B)_mpf50 ] ;
- result += [ compile $(source)
- : # requirements
- <define>TEST_CPP_DEC_FLOAT
- <debug-symbols>off
- <optimization>space
- : $(source:B)_cpp_dec_float ] ;
- result += [ compile $(source)
- : # requirements
- <define>TEST_CPP_BIN_FLOAT
- <debug-symbols>off
- <optimization>space
- : $(source:B)_cpp_bin_float ] ;
- result += [ compile $(source)
- : # requirements
- <define>TEST_CPP_DEC_FLOAT_NO_ET
- <debug-symbols>off
- <optimization>space
- : $(source:B)_cpp_dec_float_no_et ] ;
- result += [ compile $(source)
- : # requirements
- <define>TEST_BACKEND
- <debug-symbols>off
- <optimization>space
- : $(source:B)_backend_concept ] ;
- result += [ compile $(source)
- : # requirements
- <define>TEST_LOGGED_ADAPTER
- <debug-symbols>off
- <optimization>space
- : $(source:B)_logged_adaptor ] ;
- }
- return $(result) ;
- }
- test-suite concepts : [ get_concept_checks ] ;
- test-suite examples : ../example//examples ;
|