diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e942b9..629c45f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,31 +17,22 @@ jobs: fail-fast: false matrix: include: - - toolset: gcc-4.8 - cxxstd: "03,11" - os: ubuntu-16.04 - install: g++-4.8 - toolset: gcc-7 cxxstd: "03,11,14,17" os: ubuntu-18.04 - toolset: gcc-9 cxxstd: "03,11,14,17,2a" os: ubuntu-18.04 + cxxflags: "cxxflags=--coverage -fsanitize=address,leak" + linkflags: "linkflags=--coverage -lasan" + launcher: "testing.launcher=LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5" + gcov_tool: "gcov-9" - toolset: gcc-10 cxxstd: "03,11,14,17,2a" os: ubuntu-18.04 cxxflags: "cxxflags=-fsanitize=address,leak,undefined -fno-sanitize-recover=undefined" linkflags: "linkflags=-lasan -lubsan" launcher: "testing.launcher=LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.6" - - toolset: clang - compiler: clang++-3.7 - cxxstd: "03,11,14" - os: ubuntu-16.04 - install: clang-3.7 - - toolset: clang - compiler: clang++-9 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - toolset: clang compiler: clang++-10 cxxstd: "03,11,14,17,2a" @@ -91,11 +82,6 @@ jobs: ./b2 -d0 headers ./b2 -j4 variant=debug tools/inspect/build - - name: Create user-config.jam - if: matrix.compiler - run: | - echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam - - name: Run tests run: | cd ../boost-root @@ -167,7 +153,7 @@ jobs: for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master echo BOOST_BRANCH: %BOOST_BRANCH% cd .. - git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root + git clone -b %BOOST_BRANCH% --depth 10 https://github.com/boostorg/boost.git boost-root cd boost-root xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\ git submodule update --init tools/boostdep diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f6fc31..0000000 --- a/.travis.yml +++ /dev/null @@ -1,159 +0,0 @@ -# Use, modification, and distribution are -# subject to 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) -# -# Copyright Antony Polukhin 2014-2021. - -# -# See https://svn.boost.org/trac/boost/wiki/TravisCoverals for description of this file -# and how it can be used with Boost libraries. -# -# File revision #10 - -language: cpp -os: linux - -# `--coverage` flags required to generate coverage info for Coveralls -matrix: - include: - - env: B2_ARGS='cxxstd=98,03,11,14,1y toolset=gcc-6 cxxflags="--coverage -fsanitize=address,leak,undefined -fno-sanitize-recover=undefined -DBOOST_TRAVISCI_BUILD" linkflags="--coverage -lasan -lubsan" "testing.launcher=LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.3"' GCOVTOOL='gcov-6' - name: "GCC-6" - addons: - apt: - sources: ubuntu-toolchain-r-test - packages: g++-6 - - - env: B2_ARGS='cxxstd=98,03,11,14,1z toolset=gcc-8 cxxflags="--coverage -fsanitize=address,leak,undefined -fno-sanitize-recover=undefined -DBOOST_TRAVISCI_BUILD" linkflags="--coverage -lasan -lubsan" "testing.launcher=LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5"' GCOVTOOL='gcov-8' - name: "GCC-8" - sudo: required # Required by leak sanitizer - addons: - apt: - sources: ubuntu-toolchain-r-test - packages: g++-8 - - - env: B2_ARGS='cxxstd=98,0x toolset=gcc-4.6 cxxflags="--coverage -DBOOST_TRAVISCI_BUILD" linkflags="--coverage"' GCOVTOOL='gcov-4.6' - name: "GCC-4.6" - addons: - apt: - sources: ubuntu-toolchain-r-test - packages: g++-4.6 - -# - env: B2_ARGS='cxxstd=98,03,11,14,1y toolset=gcc-8 cxxflags="--coverage -fsanitize=address,leak,undefined -fno-sanitize-recover=undefined -DBOOST_TRAVISCI_BUILD -fno-exceptions" linkflags="--coverage -lasan -lubsan"' -# name: "GCC-8, no exceptions" -# sudo: required # Required by leak sanitizer -# addons: -# apt: -# sources: ubuntu-toolchain-r-test -# packages: g++-8 - - # UBSan is disables as one of the tests was causing UB: - # boost/numeric/conversion/converter_policies.hpp:188:94: runtime error: 1.79769e+308 is outside the range of representable values of type 'float' - - env: B2_ARGS='cxxstd=98,03,11,14,1z toolset=clang-8 cxxflags="--coverage -fsanitize=address,leak -DBOOST_TRAVISCI_BUILD" linkflags="--coverage -fsanitize=address,leak"' GCOVTOOL='gcov_for_clang.sh' - name: "Clang-8" - sudo: required # Required by leak sanitizer - addons: - apt: - sources: llvm-toolchain-trusty-8 - packages: clang-8 - - # This test is not run because of the floating point conversion issues in old libc++. - # - # Sanitizers disabled for this toolset as they started causing link troubles: - # hidden symbol `_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE11__recommendEm' isn't defined - #- env: B2_ARGS='cxxstd=03,11,14 toolset=clang-libc++ cxxflags="--coverage -DBOOST_TRAVISCI_BUILD" linkflags="--coverage"' - # name: "Clang-3.8, libc++" - # addons: - # apt: - # packages: libc++-dev - -############################################################################################################### -# From this point and below code is same for all the Boost libs -############################################################################################################### - -# Installing additional tools -addons: - apt: - sources: git-core - packages: - - git - - python-yaml - -before_install: - # Autodetect Boost branch by using the following code: - BOOST_BRANCH=$TRAVIS_BRANCH - # or just directly specify it - - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true - - # Files, which coverage results must be ignored (files from other projects). - # Example: - IGNORE_COVERAGE='*/boost/progress.hpp */filesystem/src/*' - - IGNORE_COVERAGE='*/filesystem/src/*' - - # boost-local/libs/ folder to put this library into. This may be useful, if you're for example running Travis - # from `Boost.DLL` repo while Boost already has `dll` and with to replace `dll` with content of`Boost.DLL`. - # - # Otherwise just leave the default value - BOOST_LIBS_FOLDER=$(basename $TRAVIS_BUILD_DIR) - - BOOST_LIBS_FOLDER=$(basename $TRAVIS_BUILD_DIR) - - # Global options for sanitizers - - UBSAN_OPTIONS=print_stacktrace=1 - - LSAN_OPTIONS=verbosity=1:log_threads=1 - # Cloning minimal set of Boost libraries - - BOOST=$HOME/boost-local - - git clone -b $BOOST_BRANCH --depth 10 https://github.com/boostorg/boost.git $BOOST - - cd $BOOST - - git submodule update --init --depth 10 --jobs 2 tools/build tools/boostdep tools/inspect libs/filesystem libs/variant - - python tools/boostdep/depinst/depinst.py --git_args "--depth 10 --jobs 2" $BOOST/libs/filesystem - - # Replacing Boost module with this project and installing Boost dependencies - - echo "Testing $BOOST/libs/$BOOST_LIBS_FOLDER moved from $TRAVIS_BUILD_DIR, branch $BOOST_BRANCH" - - rm -rf $BOOST/libs/$BOOST_LIBS_FOLDER || true - - mv $TRAVIS_BUILD_DIR $BOOST/libs/$BOOST_LIBS_FOLDER - - python tools/boostdep/depinst/depinst.py --git_args "--depth 10 --jobs 2" $BOOST_LIBS_FOLDER - - git status - - # Adding missing toolsets and preparing Boost headers - - ./bootstrap.sh - - ./b2 headers - - ./b2 -j4 variant=debug tools/inspect/build - - |- - echo "using gcc ;" >> ~/user-config.jam - echo "using clang ;" >> ~/user-config.jam - echo "using clang : 3.8 : clang++-3.8 ;" >> ~/user-config.jam - echo "using clang : 4 : clang++-4.0 ;" >> ~/user-config.jam - echo "using clang : 5 : clang++-5.0 ;" >> ~/user-config.jam - echo "using clang : 6 : clang++-6.0 ;" >> ~/user-config.jam - echo "using clang : 7 : clang++-7.0 ;" >> ~/user-config.jam - echo "using clang : 8 : clang++-8 ;" >> ~/user-config.jam - echo "using clang : libc++ : clang++-libc++ ;" >> ~/user-config.jam - - cd $BOOST/libs/$BOOST_LIBS_FOLDER/test/ - -script: - - sh -c "../../../b2 -j2 $B2_ARGS" - - ../../../dist/bin/inspect .. # inspect tool run - -after_success: - # Copying Coveralls data to a separate folder - - mkdir -p $TRAVIS_BUILD_DIR/coverals - - wget https://github.com/linux-test-project/lcov/archive/v1.15.zip - - unzip v1.15.zip - - LCOV="`pwd`/lcov-1.15/bin/lcov --gcov-tool $GCOVTOOL" - - mkdir -p ~/.local/bin - - echo -e '#!/bin/bash\nexec llvm-cov gcov "$@"' > ~/.local/bin/gcov_for_clang.sh - - chmod 755 ~/.local/bin/gcov_for_clang.sh - - # Preparing Coveralls data by changind data format to a readable one - - echo "$LCOV --directory $BOOST/bin.v2/libs/$BOOST_LIBS_FOLDER --base-directory `pwd` --capture --output-file $TRAVIS_BUILD_DIR/coverals/coverage.info" - - $LCOV --directory $BOOST/bin.v2/libs/$BOOST_LIBS_FOLDER --base-directory `pwd` --capture --output-file $TRAVIS_BUILD_DIR/coverals/coverage.info - - # ... erasing /test/ /example/ folder data - - cd $BOOST - - $LCOV --remove $TRAVIS_BUILD_DIR/coverals/coverage.info "/usr*" "*/$BOOST_LIBS_FOLDER/test/*" $IGNORE_COVERAGE "*/$BOOST_LIBS_FOLDER/tests/*" "*/$BOOST_LIBS_FOLDER/examples/*" "*/$BOOST_LIBS_FOLDER/example/*" -o $TRAVIS_BUILD_DIR/coverals/coverage.info - - # ... erasing data that is not related to this project directly - - OTHER_LIBS=`grep "submodule .*" .gitmodules | sed 's/\[submodule\ "\(.*\)"\]/"\*\/boost\/\1\.hpp" "\*\/boost\/\1\/\*" "\*\/libs\/\1\/src\/\*"/g'| sed "/\"\*\/boost\/$BOOST_LIBS_FOLDER\/\*\"/d" | sed ':a;N;$!ba;s/\n/ /g'` - - echo $OTHER_LIBS - - eval "$LCOV --remove $TRAVIS_BUILD_DIR/coverals/coverage.info $OTHER_LIBS -o $TRAVIS_BUILD_DIR/coverals/coverage.info" - - # Sending data to Coveralls - - cd $TRAVIS_BUILD_DIR - - gem install coveralls-lcov - - coveralls-lcov coverals/coverage.info