Compare commits

..

14 Commits

4 changed files with 93 additions and 35 deletions

View File

@ -101,7 +101,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
linux_pipeline( linux_pipeline(
"Linux 16.04 GCC 4.4", "Linux 16.04 GCC 4.4",
"cppalliance/droneubuntu1604:1", "cppalliance/droneubuntu1604:1",
{ TOOLSET: 'gcc', COMPILER: 'g++-4.4', CXXSTD: '98,0x' }, { TOOLSET: 'gcc', COMPILER: 'g++-4.4', CXXSTD: '98' },
"g++-4.4", "g++-4.4",
[ "ppa:ubuntu-toolchain-r/test" ], [ "ppa:ubuntu-toolchain-r/test" ],
), ),
@ -109,7 +109,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
linux_pipeline( linux_pipeline(
"Linux 16.04 GCC 4.6", "Linux 16.04 GCC 4.6",
"cppalliance/droneubuntu1604:1", "cppalliance/droneubuntu1604:1",
{ TOOLSET: 'gcc', COMPILER: 'g++-4.6', CXXSTD: '98,0x' }, { TOOLSET: 'gcc', COMPILER: 'g++-4.6', CXXSTD: '98' },
"g++-4.6", "g++-4.6",
[ "ppa:ubuntu-toolchain-r/test" ], [ "ppa:ubuntu-toolchain-r/test" ],
), ),
@ -117,7 +117,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
linux_pipeline( linux_pipeline(
"Linux 16.04 GCC 4.7", "Linux 16.04 GCC 4.7",
"cppalliance/droneubuntu1604:1", "cppalliance/droneubuntu1604:1",
{ TOOLSET: 'gcc', COMPILER: 'g++-4.7', CXXSTD: '98,0x' }, { TOOLSET: 'gcc', COMPILER: 'g++-4.7', CXXSTD: '98' },
"g++-4.7", "g++-4.7",
), ),
@ -202,8 +202,8 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
), ),
linux_pipeline( linux_pipeline(
"Linux 23.04 GCC 13 32/64 UBSAN", "Linux 24.04 GCC 13 32/64 UBSAN",
"cppalliance/droneubuntu2304:1", "cppalliance/droneubuntu2404:1",
{ TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32,64' } + ubsan, { TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32,64' } + ubsan,
"g++-13-multilib", "g++-13-multilib",
), ),
@ -265,22 +265,22 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
), ),
linux_pipeline( linux_pipeline(
"Linux 23.04 Clang 16", "Linux 24.04 Clang 16",
"cppalliance/droneubuntu2304:1", "cppalliance/droneubuntu2404:1",
{ TOOLSET: 'clang', COMPILER: 'clang++-16', CXXSTD: '03,11,14,17,20,2b' }, { TOOLSET: 'clang', COMPILER: 'clang++-16', CXXSTD: '03,11,14,17,20,2b' },
"clang-16", "clang-16",
), ),
linux_pipeline( linux_pipeline(
"Linux 23.10 Clang 17 UBSAN", "Linux 24.04 Clang 17 UBSAN",
"cppalliance/droneubuntu2310:1", "cppalliance/droneubuntu2404:1",
{ TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '03,11,14,17,20,2b' } + ubsan, { TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '03,11,14,17,20,2b' } + ubsan,
"clang-17", "clang-17",
), ),
linux_pipeline( linux_pipeline(
"Linux 23.10 Clang 17 ASAN", "Linux 24.04 Clang 17 ASAN",
"cppalliance/droneubuntu2310:1", "cppalliance/droneubuntu2404:1",
{ TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '03,11,14,17,20,2b' } + asan, { TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '03,11,14,17,20,2b' } + asan,
"clang-17", "clang-17",
), ),
@ -299,6 +299,13 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
"clang-18", "clang-18",
), ),
linux_pipeline(
"Linux 24.10 Clang 19",
"cppalliance/droneubuntu2410:1",
{ TOOLSET: 'clang', COMPILER: 'clang++-19', CXXSTD: '03,11,14,17,20,2b' },
"clang-19",
),
macos_pipeline( macos_pipeline(
"MacOS 10.15 Xcode 12.2 UBSAN", "MacOS 10.15 Xcode 12.2 UBSAN",
{ TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '03,11,14,1z' } + ubsan, { TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '03,11,14,1z' } + ubsan,

View File

@ -56,7 +56,7 @@ jobs:
install: g++-12 install: g++-12
- toolset: gcc-13 - toolset: gcc-13
cxxstd: "03,11,14,17,20,2b" cxxstd: "03,11,14,17,20,2b"
container: ubuntu:23.04 container: ubuntu:24.04
os: ubuntu-latest os: ubuntu-latest
install: g++-13 install: g++-13
- toolset: gcc-14 - toolset: gcc-14
@ -138,13 +138,13 @@ jobs:
- toolset: clang - toolset: clang
compiler: clang++-16 compiler: clang++-16
cxxstd: "03,11,14,17,20,2b" cxxstd: "03,11,14,17,20,2b"
container: ubuntu:23.04 container: ubuntu:24.04
os: ubuntu-latest os: ubuntu-latest
install: clang-16 install: clang-16
- toolset: clang - toolset: clang
compiler: clang++-17 compiler: clang++-17
cxxstd: "03,11,14,17,20,2b" cxxstd: "03,11,14,17,20,2b"
container: ubuntu:23.10 container: ubuntu:24.04
os: ubuntu-latest os: ubuntu-latest
install: clang-17 install: clang-17
- toolset: clang - toolset: clang
@ -154,34 +154,48 @@ jobs:
os: ubuntu-latest os: ubuntu-latest
install: clang-18 install: clang-18
- toolset: clang - toolset: clang
compiler: clang++-19
cxxstd: "03,11,14,17,20,2b" cxxstd: "03,11,14,17,20,2b"
os: macos-12 container: ubuntu:24.10
os: ubuntu-latest
install: clang-19
- toolset: clang - toolset: clang
cxxstd: "03,11,14,17,20,2b" cxxstd: "03,11,14,17,20,2b"
os: macos-13 os: macos-13
- toolset: clang - toolset: clang
cxxstd: "03,11,14,17,20,2b" cxxstd: "03,11,14,17,20,2b"
os: macos-14 os: macos-14
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-15
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
container: ${{matrix.container}}
container:
image: ${{matrix.container}}
volumes:
- /node20217:/node20217:rw,rshared
- ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
defaults: defaults:
run: run:
shell: bash shell: bash
steps: steps:
- name: Enable Node 16
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: Setup container environment - name: Setup container environment
if: matrix.container if: matrix.container
run: | run: |
apt-get update apt-get update
apt-get -y install sudo python3 git g++ apt-get -y install sudo python3 git g++ curl
- name: Install nodejs20glibc2.17
if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }}
run: |
curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz
tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
ldd /__e/node20/bin/node
- uses: actions/checkout@v4
- name: Install packages - name: Install packages
if: matrix.install if: matrix.install
@ -287,9 +301,10 @@ jobs:
include: include:
- os: ubuntu-20.04 - os: ubuntu-20.04
- os: ubuntu-22.04 - os: ubuntu-22.04
- os: macos-12 - os: ubuntu-24.04
- os: macos-13 - os: macos-13
- os: macos-14 - os: macos-14
- os: macos-15
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
@ -335,9 +350,10 @@ jobs:
include: include:
- os: ubuntu-20.04 - os: ubuntu-20.04
- os: ubuntu-22.04 - os: ubuntu-22.04
- os: macos-12 - os: ubuntu-24.04
- os: macos-13 - os: macos-13
- os: macos-14 - os: macos-14
- os: macos-15
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
@ -393,9 +409,10 @@ jobs:
include: include:
- os: ubuntu-20.04 - os: ubuntu-20.04
- os: ubuntu-22.04 - os: ubuntu-22.04
- os: macos-12 - os: ubuntu-24.04
- os: macos-13 - os: macos-13
- os: macos-14 - os: macos-14
- os: macos-15
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}

21
build.jam Normal file
View File

@ -0,0 +1,21 @@
# Copyright 2023-2024 René Ferdinand Rivera Morell
# Copyright 2024 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
require-b2 5.2 ;
constant boost_dependencies :
/boost/assert//boost_assert
/boost/config//boost_config
;
project /boost/throw_exception ;
explicit
[ alias boost_throw_exception : : : : <include>include <library>$(boost_dependencies) ]
[ alias all : boost_throw_exception test ]
;
call-if : boost-library throw_exception
;

View File

@ -6,13 +6,19 @@
# Distributed under the Boost Software License, Version 1.0. (See accompanying # 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) # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
require-b2 5.0.1 ;
import testing ; import testing ;
import-search /boost/config/checks ;
import config : requires ;
local gcc-flags = -Wsign-promo -Wconversion -Wsign-conversion -Wshadow -Wundef ; local gcc-flags = -Wsign-promo -Wconversion -Wsign-conversion -Wshadow -Wundef ;
project project
: requirements : requirements
<library>/boost/throw_exception//boost_throw_exception
<library>/boost/core//boost_core
<warnings>extra <warnings>extra
<toolset>msvc:<warnings-as-errors>on <toolset>msvc:<warnings-as-errors>on
@ -23,6 +29,8 @@ project
<toolset>clang:<cxxflags>$(gcc-flags) <toolset>clang:<cxxflags>$(gcc-flags)
; ;
local with-boost-exception = <use>/boost/exception//boost_exception [ requires cxx11_noexcept ] ;
run throw_exception_test.cpp ; run throw_exception_test.cpp ;
run throw_exception_no_exceptions_test.cpp ; run throw_exception_no_exceptions_test.cpp ;
run throw_exception_no_integration_test.cpp ; run throw_exception_no_integration_test.cpp ;
@ -32,27 +40,32 @@ compile-fail throw_exception_fail.cpp
: <warnings-as-errors>off ; : <warnings-as-errors>off ;
run throw_exception_test2.cpp ; run throw_exception_test2.cpp ;
run throw_exception_test3.cpp ; run throw_exception_test3.cpp
run throw_exception_test4.cpp ; : : : $(with-boost-exception) ;
run throw_exception_test5.cpp ; run throw_exception_test4.cpp
: : : $(with-boost-exception) ;
run throw_exception_test5.cpp
: : : $(with-boost-exception) ;
lib lib1_throw : lib1_throw.cpp : <define>LIB1_SOURCE=1 <link>shared:<define>LIB1_DYN_LINK=1 : : <link>shared:<define>LIB1_DYN_LINK=1 ; lib lib1_throw : lib1_throw.cpp : <define>LIB1_SOURCE=1 <link>shared:<define>LIB1_DYN_LINK=1 : : <link>shared:<define>LIB1_DYN_LINK=1 ;
lib lib2_throw : lib2_throw.cpp : <define>LIB2_SOURCE=1 <link>shared:<define>LIB2_DYN_LINK=1 : : <link>shared:<define>LIB2_DYN_LINK=1 ; lib lib2_throw : lib2_throw.cpp : <define>LIB2_SOURCE=1 <link>shared:<define>LIB2_DYN_LINK=1 : : <link>shared:<define>LIB2_DYN_LINK=1 ;
lib lib3_throw : lib3_throw.cpp : <define>LIB3_SOURCE=1 <link>shared:<define>LIB3_DYN_LINK=1 : : <link>shared:<define>LIB3_DYN_LINK=1 ; lib lib3_throw : lib3_throw.cpp : <define>LIB3_SOURCE=1 <link>shared:<define>LIB3_DYN_LINK=1 : : <link>shared:<define>LIB3_DYN_LINK=1 ;
lib lib4_throw : lib4_throw.cpp : <define>LIB4_SOURCE=1 <link>shared:<define>LIB4_DYN_LINK=1 : : <link>shared:<define>LIB4_DYN_LINK=1 ; lib lib4_throw : lib4_throw.cpp : <define>LIB4_SOURCE=1 <link>shared:<define>LIB4_DYN_LINK=1 : : <link>shared:<define>LIB4_DYN_LINK=1 ;
run throw_from_library_test.cpp lib1_throw lib2_throw lib3_throw lib4_throw : : : <link>static : throw_from_library_static ; run throw_from_library_test.cpp lib1_throw lib2_throw lib3_throw lib4_throw : : : $(with-boost-exception) <link>static : throw_from_library_static ;
run throw_from_library_test.cpp lib1_throw lib2_throw lib3_throw lib4_throw : : : <link>shared <target-os>darwin,<undefined-sanitizer>norecover:<build>no : throw_from_library_shared ; run throw_from_library_test.cpp lib1_throw lib2_throw lib3_throw lib4_throw : : : $(with-boost-exception) <link>shared <target-os>darwin,<undefined-sanitizer>norecover:<build>no : throw_from_library_shared ;
run throw_exception_nx_test.cpp : : : <exception-handling>off ; run throw_exception_nx_test.cpp : : : <exception-handling>off ;
run throw_exception_nx_test2.cpp : : : <exception-handling>off ; run throw_exception_nx_test2.cpp : : : <exception-handling>off ;
run throw_exception_nx_test3.cpp : : : <exception-handling>off ; run throw_exception_nx_test3.cpp : : : <exception-handling>off ;
run make_exception_ptr_test.cpp ; run make_exception_ptr_test.cpp
run make_exception_ptr_test2.cpp ; : : : $(with-boost-exception) ;
run make_exception_ptr_test2.cpp
: : : $(with-boost-exception) ;
run make_exception_ptr_nx_test.cpp : : : <exception-handling>off ; run make_exception_ptr_nx_test.cpp : : : $(with-boost-exception) <exception-handling>off ;
run make_exception_ptr_nx_test2.cpp : : : <exception-handling>off ; run make_exception_ptr_nx_test2.cpp : : : $(with-boost-exception) <exception-handling>off ;
run throw_with_location_test.cpp ; run throw_with_location_test.cpp ;
run throw_with_location_test2.cpp ; run throw_with_location_test2.cpp ;