forked from boostorg/exception
GHA CI
This commit is contained in:
185
.github/workflows/ci.yml
vendored
Normal file
185
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- feature/**
|
||||||
|
|
||||||
|
env:
|
||||||
|
UBSAN_OPTIONS: print_stacktrace=1
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
posix:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- toolset: gcc-4.7
|
||||||
|
cxxstd: "03,11"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: g++-4.7
|
||||||
|
- toolset: gcc-4.8
|
||||||
|
cxxstd: "03,11"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: g++-4.8
|
||||||
|
- toolset: gcc-4.9
|
||||||
|
cxxstd: "03,11"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: g++-4.9
|
||||||
|
- toolset: gcc-5
|
||||||
|
cxxstd: "03,11,14,1z"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
- toolset: gcc-6
|
||||||
|
cxxstd: "03,11,14,1z"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: g++-6
|
||||||
|
- toolset: gcc-7
|
||||||
|
cxxstd: "03,11,14,17"
|
||||||
|
os: ubuntu-18.04
|
||||||
|
- toolset: gcc-8
|
||||||
|
cxxstd: "03,11,14,17,2a"
|
||||||
|
os: ubuntu-18.04
|
||||||
|
- toolset: gcc-9
|
||||||
|
cxxstd: "03,11,14,17,2a"
|
||||||
|
os: ubuntu-18.04
|
||||||
|
- toolset: gcc-10
|
||||||
|
cxxstd: "03,11,14,17,2a"
|
||||||
|
os: ubuntu-18.04
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-3.5
|
||||||
|
cxxstd: "03,11,14"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: clang-3.5
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-3.6
|
||||||
|
cxxstd: "03,11,14"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: clang-3.6
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-3.7
|
||||||
|
cxxstd: "03,11,14"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: clang-3.7
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-3.8
|
||||||
|
cxxstd: "03,11,14"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: clang-3.8
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-3.9
|
||||||
|
cxxstd: "03,11,14"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: clang-3.9
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-4.0
|
||||||
|
cxxstd: "03,11,14"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: clang-4.0
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-5.0
|
||||||
|
cxxstd: "03,11,14,1z"
|
||||||
|
os: ubuntu-16.04
|
||||||
|
install: clang-5.0
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-6.0
|
||||||
|
cxxstd: "03,11,14,17"
|
||||||
|
os: ubuntu-18.04
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-7
|
||||||
|
cxxstd: "03,11,14,17"
|
||||||
|
os: ubuntu-18.04
|
||||||
|
install: clang-7
|
||||||
|
- toolset: clang
|
||||||
|
compiler: clang++-8
|
||||||
|
cxxstd: "03,11,14,17,2a"
|
||||||
|
os: ubuntu-20.04
|
||||||
|
- 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"
|
||||||
|
os: ubuntu-20.04
|
||||||
|
- toolset: clang
|
||||||
|
cxxstd: "03,11,14,17,2a"
|
||||||
|
os: macos-10.15
|
||||||
|
|
||||||
|
runs-on: ${{matrix.os}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
if: matrix.install
|
||||||
|
run: sudo apt install ${{matrix.install}}
|
||||||
|
|
||||||
|
- name: Setup Boost
|
||||||
|
run: |
|
||||||
|
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
||||||
|
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
||||||
|
cd ..
|
||||||
|
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||||
|
cd boost-root
|
||||||
|
cp -r $GITHUB_WORKSPACE/* libs/exception
|
||||||
|
git submodule update --init tools/boostdep
|
||||||
|
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" exception
|
||||||
|
./bootstrap.sh
|
||||||
|
./b2 -d0 headers
|
||||||
|
|
||||||
|
- 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
|
||||||
|
./b2 -j3 libs/exception/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release exception-handling=on,off rtti=on,off
|
||||||
|
|
||||||
|
windows:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- toolset: msvc-14.1
|
||||||
|
cxxstd: "14,17,latest"
|
||||||
|
addrmd: 32,64
|
||||||
|
os: windows-2016
|
||||||
|
- toolset: msvc-14.2
|
||||||
|
cxxstd: "14,17,latest"
|
||||||
|
addrmd: 32,64
|
||||||
|
os: windows-2019
|
||||||
|
- toolset: gcc
|
||||||
|
cxxstd: "03,11,14,17,2a"
|
||||||
|
addrmd: 64
|
||||||
|
os: windows-2019
|
||||||
|
|
||||||
|
runs-on: ${{matrix.os}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup Boost
|
||||||
|
shell: cmd
|
||||||
|
run: |
|
||||||
|
if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
|
||||||
|
set BOOST_BRANCH=develop
|
||||||
|
if "%GITHUB_BASE_REF%" == "master" set BOOST_BRANCH=master
|
||||||
|
cd ..
|
||||||
|
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||||
|
cd boost-root
|
||||||
|
xcopy /s /e /q %GITHUB_WORKSPACE% libs\exception\
|
||||||
|
git submodule update --init tools/boostdep
|
||||||
|
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" exception
|
||||||
|
cmd /c bootstrap
|
||||||
|
b2 -d0 headers
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
shell: cmd
|
||||||
|
run: |
|
||||||
|
cd ../boost-root
|
||||||
|
b2 -j3 libs/exception/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release exception-handling=on,off rtti=on,off
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
/.vscode/ipch/*
|
/.vscode/ipch/*
|
||||||
/.vscode/settings.json
|
/.vscode/settings.json
|
||||||
|
.DS_Store
|
||||||
|
@ -8,13 +8,12 @@
|
|||||||
#define BOOST_EXCEPTION_618474C2DE1511DEB74A388C56D89593
|
#define BOOST_EXCEPTION_618474C2DE1511DEB74A388C56D89593
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#ifdef BOOST_NO_EXCEPTIONS
|
|
||||||
#error This header requires exception handling to be enabled.
|
|
||||||
#endif
|
|
||||||
#include <boost/exception/exception.hpp>
|
#include <boost/exception/exception.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
#include <boost/exception/diagnostic_information.hpp>
|
#include <boost/exception/diagnostic_information.hpp>
|
||||||
#include <boost/exception/detail/clone_current_exception.hpp>
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
|
# include <boost/exception/detail/clone_current_exception.hpp>
|
||||||
|
#endif
|
||||||
#include <boost/exception/detail/type_info.hpp>
|
#include <boost/exception/detail/type_info.hpp>
|
||||||
#ifndef BOOST_NO_RTTI
|
#ifndef BOOST_NO_RTTI
|
||||||
#include <boost/core/demangle.hpp>
|
#include <boost/core/demangle.hpp>
|
||||||
@ -42,15 +41,14 @@ namespace
|
|||||||
boost
|
boost
|
||||||
{
|
{
|
||||||
class exception_ptr;
|
class exception_ptr;
|
||||||
BOOST_NORETURN void rethrow_exception( exception_ptr const & );
|
namespace exception_detail { void rethrow_exception_( exception_ptr const & ); }
|
||||||
exception_ptr current_exception();
|
|
||||||
|
|
||||||
class
|
class
|
||||||
exception_ptr
|
exception_ptr
|
||||||
{
|
{
|
||||||
typedef boost::shared_ptr<exception_detail::clone_base const> impl;
|
typedef boost::shared_ptr<exception_detail::clone_base const> impl;
|
||||||
impl ptr_;
|
impl ptr_;
|
||||||
friend void rethrow_exception( exception_ptr const & );
|
friend void exception_detail::rethrow_exception_( exception_ptr const & );
|
||||||
typedef exception_detail::clone_base const * (impl::*unspecified_bool_type)() const;
|
typedef exception_detail::clone_base const * (impl::*unspecified_bool_type)() const;
|
||||||
public:
|
public:
|
||||||
exception_ptr()
|
exception_ptr()
|
||||||
@ -106,6 +104,7 @@ boost
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
namespace
|
namespace
|
||||||
exception_detail
|
exception_detail
|
||||||
{
|
{
|
||||||
@ -499,34 +498,46 @@ boost
|
|||||||
BOOST_ASSERT(ret);
|
BOOST_ASSERT(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif // ifndef BOOST_NO_EXCEPTIONS
|
||||||
|
|
||||||
|
namespace
|
||||||
|
exception_detail
|
||||||
|
{
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
rethrow_exception_( exception_ptr const & p )
|
||||||
|
{
|
||||||
|
BOOST_ASSERT(p);
|
||||||
|
#if defined( BOOST_NO_CXX11_HDR_EXCEPTION ) || defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
p.ptr_->rethrow();
|
||||||
|
#else
|
||||||
|
try
|
||||||
|
{
|
||||||
|
p.ptr_->rethrow();
|
||||||
|
}
|
||||||
|
catch(
|
||||||
|
std_exception_ptr_wrapper const & wrp)
|
||||||
|
{
|
||||||
|
// if an std::exception_ptr was wrapped above then rethrow it
|
||||||
|
std::rethrow_exception(wrp.p);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_NORETURN
|
BOOST_NORETURN
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
rethrow_exception( exception_ptr const & p )
|
rethrow_exception( exception_ptr const & p )
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(p);
|
exception_detail::rethrow_exception_(p);
|
||||||
#ifndef BOOST_NO_CXX11_HDR_EXCEPTION
|
|
||||||
try
|
|
||||||
{
|
|
||||||
p.ptr_->rethrow();
|
|
||||||
}
|
|
||||||
catch(
|
|
||||||
exception_detail::std_exception_ptr_wrapper const & wrp)
|
|
||||||
{
|
|
||||||
// if an std::exception_ptr was wrapped above then rethrow it
|
|
||||||
std::rethrow_exception(wrp.p);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
p.ptr_->rethrow();
|
|
||||||
#endif
|
|
||||||
BOOST_ASSERT(0);
|
BOOST_ASSERT(0);
|
||||||
#if defined(UNDER_CE)
|
#if defined(UNDER_CE)
|
||||||
// some CE platforms don't define ::abort()
|
// some CE platforms don't define ::abort()
|
||||||
exit(-1);
|
exit(-1);
|
||||||
#else
|
#else
|
||||||
abort();
|
abort();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
@ -534,6 +545,9 @@ boost
|
|||||||
diagnostic_information( exception_ptr const & p, bool verbose=true )
|
diagnostic_information( exception_ptr const & p, bool verbose=true )
|
||||||
{
|
{
|
||||||
if( p )
|
if( p )
|
||||||
|
#ifdef BOOST_NO_EXCEPTIONS
|
||||||
|
return "<unavailable> due to BOOST_NO_EXCEPTIONS";
|
||||||
|
#else
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
rethrow_exception(p);
|
rethrow_exception(p);
|
||||||
@ -543,6 +557,7 @@ boost
|
|||||||
{
|
{
|
||||||
return current_exception_diagnostic_information(verbose);
|
return current_exception_diagnostic_information(verbose);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return "<empty>";
|
return "<empty>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,11 +3,15 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
|
||||||
|
|
||||||
class my_exception: public std::exception { };
|
class my_exception: public std::exception { };
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -3,7 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
#define BOOST_NO_EXCEPTIONS
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if !defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling disabled.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
@ -4,6 +4,13 @@
|
|||||||
//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)
|
||||||
|
|
||||||
#define BOOST_EXCEPTION_DISABLE
|
#define BOOST_EXCEPTION_DISABLE
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
|
||||||
|
@ -3,8 +3,14 @@
|
|||||||
//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)
|
||||||
|
|
||||||
#define BOOST_NO_EXCEPTIONS
|
|
||||||
#define BOOST_EXCEPTION_DISABLE
|
#define BOOST_EXCEPTION_DISABLE
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if !defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling disabled.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ import testing ;
|
|||||||
project
|
project
|
||||||
: requirements
|
: requirements
|
||||||
<link>static
|
<link>static
|
||||||
<exception-handling>on
|
|
||||||
;
|
;
|
||||||
|
|
||||||
#to_string
|
#to_string
|
||||||
@ -23,29 +22,30 @@ compile-fail to_string_fail.cpp ;
|
|||||||
|
|
||||||
#exception
|
#exception
|
||||||
|
|
||||||
run 1-throw_exception_test.cpp ;
|
run 1-throw_exception_test.cpp : : : <exception-handling>on ;
|
||||||
run 2-throw_exception_no_exceptions_test.cpp ;
|
run 2-throw_exception_no_exceptions_test.cpp : : : <exception-handling>off ;
|
||||||
run 3-throw_exception_no_integration_test.cpp ;
|
run 3-throw_exception_no_integration_test.cpp : : : <exception-handling>on ;
|
||||||
run 4-throw_exception_no_both_test.cpp ;
|
run 4-throw_exception_no_both_test.cpp : : : <exception-handling>off ;
|
||||||
run cloning_test.cpp ;
|
run cloning_test.cpp : : : <exception-handling>on ;
|
||||||
run copy_exception_test.cpp ../../thread/src/tss_null.cpp /boost//thread : : : <threading>multi ;
|
run copy_exception_test.cpp ../../thread/src/tss_null.cpp /boost//thread : : : <threading>multi <exception-handling>on ;
|
||||||
run unknown_exception_test.cpp ;
|
run copy_exception_no_exceptions_test.cpp : : : <exception-handling>off <rtti>on ;
|
||||||
run exception_test.cpp ;
|
run unknown_exception_test.cpp : : : <exception-handling>on ;
|
||||||
run enable_error_info_test.cpp helper1.cpp ;
|
run exception_test.cpp : : : <exception-handling>on ;
|
||||||
run throw_exception_test.cpp helper2.cpp ;
|
run enable_error_info_test.cpp helper1.cpp : : : <exception-handling>on ;
|
||||||
run errno_test.cpp ;
|
run throw_exception_test.cpp helper2.cpp : : : <exception-handling>on ;
|
||||||
run error_info_basic_test.cpp ;
|
run errno_test.cpp : : : <exception-handling>on ;
|
||||||
run error_info_lv_test.cpp ;
|
run error_info_basic_test.cpp : : : <exception-handling>on ;
|
||||||
run error_info_lv_const_test.cpp ;
|
run error_info_lv_test.cpp : : : <exception-handling>on ;
|
||||||
run error_info_rv_test.cpp ;
|
run error_info_lv_const_test.cpp : : : <exception-handling>on ;
|
||||||
run error_info_rv_const_test.cpp ;
|
run error_info_rv_test.cpp : : : <exception-handling>on ;
|
||||||
run diagnostic_information_test.cpp ;
|
run error_info_rv_const_test.cpp : : : <exception-handling>on ;
|
||||||
|
run diagnostic_information_test.cpp : : : <exception-handling>on ;
|
||||||
run refcount_ptr_test.cpp ;
|
run refcount_ptr_test.cpp ;
|
||||||
run current_exception_cast_test.cpp ;
|
run current_exception_cast_test.cpp : : : <exception-handling>on ;
|
||||||
run no_exceptions_test.cpp : : : <exception-handling>off ;
|
run no_exceptions_test.cpp : : : <exception-handling>off ;
|
||||||
run errinfos_test.cpp ;
|
run errinfos_test.cpp : : : <exception-handling>on ;
|
||||||
run exception_ptr_test.cpp/<define>BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR ../../thread/src/tss_null.cpp /boost/exception /boost//thread : : : <threading>multi : non_intrusive_exception_ptr_test ;
|
run exception_ptr_test.cpp/<define>BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR ../../thread/src/tss_null.cpp /boost/exception /boost//thread : : : <threading>multi <exception-handling>on : non_intrusive_exception_ptr_test ;
|
||||||
run exception_ptr_test.cpp ../../thread/src/tss_null.cpp /boost//thread : : : <threading>multi ;
|
run exception_ptr_test.cpp ../../thread/src/tss_null.cpp /boost//thread : : : <threading>multi <exception-handling>on ;
|
||||||
|
|
||||||
compile-fail exception_fail.cpp ;
|
compile-fail exception_fail.cpp ;
|
||||||
compile-fail throw_exception_fail.cpp ;
|
compile-fail throw_exception_fail.cpp ;
|
||||||
@ -71,5 +71,3 @@ compile errinfo_file_name_hpp_test.cpp ;
|
|||||||
compile errinfo_file_open_mode_hpp_test.cpp ;
|
compile errinfo_file_open_mode_hpp_test.cpp ;
|
||||||
compile errinfo_nested_exception_hpp_test.cpp ;
|
compile errinfo_nested_exception_hpp_test.cpp ;
|
||||||
compile errinfo_type_info_name_hpp_test.cpp ;
|
compile errinfo_type_info_name_hpp_test.cpp ;
|
||||||
|
|
||||||
compile bug_11874_test.cpp ;
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
//Copyright (c) 2006-2017 Emil Dotchevski and Reverge Studios, Inc.
|
|
||||||
|
|
||||||
//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)
|
|
||||||
|
|
||||||
#include <boost/thread.hpp>
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
}
|
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception_ptr.hpp>
|
#include <boost/exception_ptr.hpp>
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
#include <boost/exception/errinfo_nested_exception.hpp>
|
#include <boost/exception/errinfo_nested_exception.hpp>
|
||||||
@ -423,7 +429,9 @@ main()
|
|||||||
test_std_exception_what<std::range_error>();
|
test_std_exception_what<std::range_error>();
|
||||||
test_std_exception_what<std::overflow_error>();
|
test_std_exception_what<std::overflow_error>();
|
||||||
test_std_exception_what<std::underflow_error>();
|
test_std_exception_what<std::underflow_error>();
|
||||||
|
#if !defined(_GLIBCXX_USE_CXX11_ABI) || !_GLIBCXX_USE_CXX11_ABI
|
||||||
test_std_exception_what<std::ios_base::failure>();
|
test_std_exception_what<std::ios_base::failure>();
|
||||||
|
#endif
|
||||||
test_std_exception_what<std::runtime_error>();
|
test_std_exception_what<std::runtime_error>();
|
||||||
test_std_exception<std::bad_alloc>();
|
test_std_exception<std::bad_alloc>();
|
||||||
#ifndef BOOST_NO_TYPEID
|
#ifndef BOOST_NO_TYPEID
|
||||||
|
93
test/copy_exception_no_exceptions_test.cpp
Normal file
93
test/copy_exception_no_exceptions_test.cpp
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
|
||||||
|
|
||||||
|
//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)
|
||||||
|
|
||||||
|
#define BOOST_NORETURN
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if !defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling disabled.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/exception_ptr.hpp>
|
||||||
|
#include <boost/exception/get_error_info.hpp>
|
||||||
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
|
||||||
|
typedef boost::error_info<struct tag_answer,int> answer;
|
||||||
|
|
||||||
|
int exc_count;
|
||||||
|
|
||||||
|
struct
|
||||||
|
err:
|
||||||
|
virtual boost::exception,
|
||||||
|
virtual std::exception
|
||||||
|
{
|
||||||
|
err()
|
||||||
|
{
|
||||||
|
++exc_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
err( err const & )
|
||||||
|
{
|
||||||
|
++exc_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual
|
||||||
|
~err() BOOST_NOEXCEPT_OR_NOTHROW
|
||||||
|
{
|
||||||
|
--exc_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
err & operator=( err const & );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
bool throw_exception_called;
|
||||||
|
}
|
||||||
|
|
||||||
|
// It is not valid to return to the caller but we do for testing purposes.
|
||||||
|
namespace
|
||||||
|
boost
|
||||||
|
{
|
||||||
|
void
|
||||||
|
throw_exception( std::exception const & e )
|
||||||
|
{
|
||||||
|
throw_exception_called = true;
|
||||||
|
BOOST_TEST(dynamic_cast<err const *>(&e)!=0);
|
||||||
|
int const * ans=boost::get_error_info<answer>(e);
|
||||||
|
BOOST_TEST(ans && *ans==42);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct source_location;
|
||||||
|
void
|
||||||
|
throw_exception( std::exception const & e, boost::source_location const & )
|
||||||
|
{
|
||||||
|
throw_exception_called = true;
|
||||||
|
BOOST_TEST(dynamic_cast<err const *>(&e)!=0);
|
||||||
|
int const * ans=boost::get_error_info<answer>(e);
|
||||||
|
BOOST_TEST(ans && *ans==42);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
simple_test()
|
||||||
|
{
|
||||||
|
boost::exception_ptr p = boost::copy_exception(err() << answer(42));
|
||||||
|
throw_exception_called = false;
|
||||||
|
boost::exception_detail::rethrow_exception_(p);
|
||||||
|
BOOST_TEST(throw_exception_called);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
BOOST_TEST(++exc_count==1);
|
||||||
|
simple_test();
|
||||||
|
BOOST_TEST(!--exc_count);
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception_ptr.hpp>
|
#include <boost/exception_ptr.hpp>
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
@ -11,6 +17,8 @@
|
|||||||
|
|
||||||
typedef boost::error_info<struct tag_answer,int> answer;
|
typedef boost::error_info<struct tag_answer,int> answer;
|
||||||
|
|
||||||
|
int const thread_count = 100;
|
||||||
|
|
||||||
boost::detail::atomic_count exc_count(0);
|
boost::detail::atomic_count exc_count(0);
|
||||||
|
|
||||||
struct
|
struct
|
||||||
@ -39,20 +47,21 @@ err:
|
|||||||
err & operator=( err const & );
|
err & operator=( err const & );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class
|
class
|
||||||
future
|
future
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
future ():
|
future():
|
||||||
ready_ (false)
|
ready_(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
set_exception( boost::exception_ptr const & e )
|
set_exception( boost::exception_ptr const & e )
|
||||||
{
|
{
|
||||||
boost::unique_lock<boost::mutex> lck (mux_);
|
boost::unique_lock<boost::mutex> lck(mux_);
|
||||||
exc_ = e;
|
exc_ = e;
|
||||||
ready_ = true;
|
ready_ = true;
|
||||||
cond_.notify_all();
|
cond_.notify_all();
|
||||||
@ -61,10 +70,10 @@ future
|
|||||||
void
|
void
|
||||||
get_exception() const
|
get_exception() const
|
||||||
{
|
{
|
||||||
boost::unique_lock<boost::mutex> lck (mux_);
|
boost::unique_lock<boost::mutex> lck(mux_);
|
||||||
while (! ready_)
|
while( !ready_ )
|
||||||
cond_.wait (lck);
|
cond_.wait(lck);
|
||||||
rethrow_exception (exc_);
|
rethrow_exception(exc_);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -78,17 +87,17 @@ future
|
|||||||
void
|
void
|
||||||
producer( future & f )
|
producer( future & f )
|
||||||
{
|
{
|
||||||
f.set_exception (boost::copy_exception (err () << answer(42)));
|
f.set_exception(boost::copy_exception(err() << answer(42)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
consumer()
|
consumer()
|
||||||
{
|
{
|
||||||
future f;
|
future f;
|
||||||
boost::thread thr (boost::bind (&producer, boost::ref (f)));
|
boost::thread thr(boost::bind(&producer, boost::ref(f)));
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
f.get_exception ();
|
f.get_exception();
|
||||||
}
|
}
|
||||||
catch(
|
catch(
|
||||||
err & e )
|
err & e )
|
||||||
@ -102,7 +111,7 @@ consumer()
|
|||||||
void
|
void
|
||||||
consume()
|
consume()
|
||||||
{
|
{
|
||||||
for( int i=0; i!=100; ++i )
|
for( int i=0; i!=thread_count; ++i )
|
||||||
consumer();
|
consumer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,15 +119,15 @@ void
|
|||||||
thread_test()
|
thread_test()
|
||||||
{
|
{
|
||||||
boost::thread_group grp;
|
boost::thread_group grp;
|
||||||
for( int i=0; i!=100; ++i )
|
for( int i=0; i!=thread_count; ++i )
|
||||||
grp.create_thread(&consume);
|
grp.create_thread(&consume);
|
||||||
grp.join_all ();
|
grp.join_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
simple_test()
|
simple_test()
|
||||||
{
|
{
|
||||||
boost::exception_ptr p = boost::copy_exception(err());
|
boost::exception_ptr p = boost::copy_exception(err() << answer(42));
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
rethrow_exception(p);
|
rethrow_exception(p);
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/current_exception_cast.hpp>
|
#include <boost/exception/current_exception_cast.hpp>
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/diagnostic_information.hpp>
|
#include <boost/exception/diagnostic_information.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "helper1.hpp"
|
#include "helper1.hpp"
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/errinfo_api_function.hpp>
|
#include <boost/exception/errinfo_api_function.hpp>
|
||||||
#include <boost/exception/errinfo_at_line.hpp>
|
#include <boost/exception/errinfo_at_line.hpp>
|
||||||
#include <boost/exception/errinfo_errno.hpp>
|
#include <boost/exception/errinfo_errno.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/error_info.hpp>
|
#include <boost/exception/error_info.hpp>
|
||||||
#include <boost/exception/exception.hpp>
|
#include <boost/exception/exception.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
#include <boost/exception/info_tuple.hpp>
|
#include <boost/exception/info_tuple.hpp>
|
||||||
#include <boost/exception_ptr.hpp>
|
#include <boost/exception_ptr.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception_ptr.hpp>
|
#include <boost/exception_ptr.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/exception.hpp>
|
#include <boost/exception/exception.hpp>
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception/exception.hpp>
|
#include <boost/exception/exception.hpp>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "helper2.hpp"
|
#include "helper2.hpp"
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
|
|
||||||
|
@ -3,8 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
#define BOOST_NO_EXCEPTIONS
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if !defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling disabled.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
#include <boost/exception/diagnostic_information.hpp>
|
#include <boost/exception/diagnostic_information.hpp>
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "helper2.hpp"
|
#include "helper2.hpp"
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
@ -40,7 +46,7 @@ boost_throw_exception_test()
|
|||||||
int const * line=boost::get_error_info<boost::throw_line>(x);
|
int const * line=boost::get_error_info<boost::throw_line>(x);
|
||||||
BOOST_TEST( file && *file );
|
BOOST_TEST( file && *file );
|
||||||
BOOST_TEST( function && *function );
|
BOOST_TEST( function && *function );
|
||||||
BOOST_TEST( line && *line==32 );
|
BOOST_TEST( line && *line==38 );
|
||||||
}
|
}
|
||||||
catch(
|
catch(
|
||||||
... )
|
... )
|
||||||
@ -61,7 +67,7 @@ boost_throw_exception_test()
|
|||||||
int const * data=boost::get_error_info<test_data>(x);
|
int const * data=boost::get_error_info<test_data>(x);
|
||||||
BOOST_TEST( file && *file );
|
BOOST_TEST( file && *file );
|
||||||
BOOST_TEST( function && *function );
|
BOOST_TEST( function && *function );
|
||||||
BOOST_TEST( line && *line==52 );
|
BOOST_TEST( line && *line==58 );
|
||||||
BOOST_TEST( data && *data==42 );
|
BOOST_TEST( data && *data==42 );
|
||||||
}
|
}
|
||||||
catch(
|
catch(
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
//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)
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_EXCEPTIONS )
|
||||||
|
# error This program requires exception handling.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/exception_ptr.hpp>
|
#include <boost/exception_ptr.hpp>
|
||||||
#include <boost/exception/get_error_info.hpp>
|
#include <boost/exception/get_error_info.hpp>
|
||||||
#include <boost/exception/info.hpp>
|
#include <boost/exception/info.hpp>
|
||||||
|
Reference in New Issue
Block a user