From c5c01b675c7c1f874e1169329f7640ac12bad2fb Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 5 Jun 2022 19:43:43 +0100 Subject: [PATCH 1/4] Try and consolidate more Github tests. In the hopes of speeding up CI build times. --- .github/workflows/ci.yml | 12 ++++++------ test/Jamfile.v2 | 9 ++++++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f85be64d2..0b1ad2f4aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: matrix: compiler: [ g++-12, clang++-14 ] standard: [ c++14, c++17, c++20 ] - suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, mp, interpolators, autodiff, ../example//examples, ../tools ] + suite: [ github_ci_block_1, github_ci_block_2 ] steps: - uses: actions/checkout@v2 with: @@ -147,7 +147,7 @@ jobs: matrix: toolset: [ clang ] standard: [ 11, 14, 17, 20 ] - suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, mp, interpolators, autodiff, ../example//examples, ../tools ] + suite: [ github_ci_block_1, github_ci_block_2 ] steps: - uses: actions/checkout@v2 with: @@ -195,7 +195,7 @@ jobs: matrix: toolset: [ gcc, msvc-14.0, msvc-14.2 ] standard: [ 14, 17 ] - suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, mp, interpolators, autodiff, ../example//examples, ../tools ] + suite: [ github_ci_block_1, github_ci_block_2 ] steps: - uses: actions/checkout@v2 with: @@ -242,7 +242,7 @@ jobs: fail-fast: false matrix: standard: [ 14, 17, 20 ] - suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, mp, interpolators, autodiff, ../example//examples, ../tools ] + suite: [ github_ci_block_1, github_ci_block_2 ] steps: - uses: actions/checkout@v2 with: @@ -285,7 +285,7 @@ jobs: matrix: compiler: [ g++-11 ] standard: [ c++17 ] - suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, mp, interpolators, autodiff, ../example//examples, ../tools ] + suite: [ github_ci_block_1, github_ci_block_2 ] env: TOOLSET: gcc steps: @@ -415,7 +415,7 @@ jobs: matrix: compiler: [ g++-10 ] standard: [ c++14, c++17, c++20 ] - suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, interpolators, autodiff, ../example//examples, ../tools ] + suite: [ github_ci_block_1, github_ci_block_2 ] steps: - uses: actions/checkout@v2 with: diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index e4ab283cd7..2708b28096 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -1633,4 +1633,11 @@ alias no_eh_tests : tools_workaround_incl_test ; -explicit no_eh_tests ; \ No newline at end of file +explicit no_eh_tests ; + +# Some aliases which group blocks of tests for CI testing: + +alias github_ci_block_1 : special_fun float128_tests distribution_tests mp misc ; +alias github_ci_block_2 : quadrature interpolators autodiff ../example//examples ../tools ; +explicit github_ci_block_1 ; +explicit github_ci_block_2 ; From ce370f862747388d818029c34317cb2a45abfbef Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 6 Jun 2022 09:07:36 +0100 Subject: [PATCH 2/4] Fix up test_polynomial.cpp for standalone test. --- test/test_polynomial.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/test_polynomial.cpp b/test/test_polynomial.cpp index e13ceb6196..41a3a511de 100644 --- a/test/test_polynomial.cpp +++ b/test/test_polynomial.cpp @@ -7,13 +7,17 @@ #define BOOST_TEST_MAIN #include #include +#ifndef BOOST_MATH_STANDALONE #include +#endif #include #include #include +#ifndef BOOST_MATH_STANDALONE #include #include #include +#endif #include #include #include @@ -271,7 +275,7 @@ typedef boost::mpl::list large_integral_test_types; typedef boost::mpl::list<> mp_integral_test_types; #elif defined(TEST2) typedef boost::mpl::list< -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1500) +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1500) && !defined(BOOST_MATH_STANDALONE) boost::multiprecision::cpp_int #endif > integral_test_types; @@ -287,13 +291,13 @@ typedef large_integral_test_types mp_integral_test_types; typedef boost::mpl::list non_integral_test_types; #elif defined(TEST2) typedef boost::mpl::list< -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1500) +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1500) && !defined(BOOST_MATH_STANDALONE) boost::multiprecision::cpp_rational #endif > non_integral_test_types; #elif defined(TEST3) typedef boost::mpl::list< -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1500) +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1500) && !defined(BOOST_MATH_STANDALONE) boost::multiprecision::cpp_bin_float_single, boost::multiprecision::cpp_dec_float_50 #endif > non_integral_test_types; From d4c71ea9db462c4df0eb86cacfcdde48c4cde83b Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 6 Jun 2022 12:04:40 +0100 Subject: [PATCH 3/4] Fix up multiprc_concept_check_2.cpp for standalone tests. --- test/multiprc_concept_check_2.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/multiprc_concept_check_2.cpp b/test/multiprc_concept_check_2.cpp index 500e1fc4f3..30311fda24 100644 --- a/test/multiprc_concept_check_2.cpp +++ b/test/multiprc_concept_check_2.cpp @@ -35,7 +35,8 @@ void foo() int main() { - BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept)); + boost::math::concepts::RealTypeConcept checker; + checker.constraints(); } From 48f20e9f82cb5fca6c050f0b4426f1a483ceeaa5 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 6 Jun 2022 18:44:24 +0100 Subject: [PATCH 4/4] Split windows-gcc jobs into smaller chunks again. These are much much slower than anything else. --- .github/workflows/ci.yml | 52 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b1ad2f4aa..612fcebbd3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -193,7 +193,7 @@ jobs: strategy: fail-fast: false matrix: - toolset: [ gcc, msvc-14.0, msvc-14.2 ] + toolset: [ msvc-14.0, msvc-14.2 ] standard: [ 14, 17 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: @@ -231,6 +231,54 @@ jobs: - name: Test run: ..\..\..\b2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }} working-directory: ../boost-root/libs/math/test + windows_gcc: + runs-on: windows-2019 + defaults: + run: + shell: cmd + env: + ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }} + strategy: + fail-fast: false + matrix: + toolset: [ gcc ] + standard: [ 14, 17 ] + suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, mp, interpolators, autodiff, ../example//examples, ../tools ] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: mstachniuk/ci-skip@v1 + with: + commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX];[standalone];[STANDALONE];[cygwin];[CYGWIN]' + commit-filter-separator: ';' + fail-fast: true + - name: Checkout main boost + run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + - name: Update tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\math + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py math + working-directory: ../boost-root + - name: Bootstrap + run: bootstrap + working-directory: ../boost-root + - name: Generate headers + run: b2 headers + working-directory: ../boost-root + - name: Config info install + run: ..\..\..\b2 config_info_travis_install %ARGS% + working-directory: ../boost-root/libs/config/test + - name: Config info + run: config_info_travis + working-directory: ../boost-root/libs/config/test + - name: Test + run: ..\..\..\b2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }} + working-directory: ../boost-root/libs/math/test MSVC2022: runs-on: windows-2022 defaults: @@ -285,7 +333,7 @@ jobs: matrix: compiler: [ g++-11 ] standard: [ c++17 ] - suite: [ github_ci_block_1, github_ci_block_2 ] + suite: [ float128_tests, special_fun, distribution_tests, misc, quadrature, mp, interpolators, autodiff, ../example//examples, ../tools ] env: TOOLSET: gcc steps: