]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/exception/test/errinfos_test.cpp
bf3ad5fce234158102b891e57246a0da98ae9416
1 //Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
3 //Distributed under the Boost Software License, Version 1.0. (See accompanying
4 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #include <boost/exception/errinfo_api_function.hpp>
7 #include <boost/exception/errinfo_at_line.hpp>
8 #include <boost/exception/errinfo_errno.hpp>
9 #include <boost/exception/errinfo_file_handle.hpp>
10 #include <boost/exception/errinfo_file_name.hpp>
11 #include <boost/exception/errinfo_file_open_mode.hpp>
12 #include <boost/exception/errinfo_type_info_name.hpp>
13 #include <boost/exception/info.hpp>
14 #include <boost/exception/get_error_info.hpp>
15 #include <boost/throw_exception.hpp>
16 #include <boost/weak_ptr.hpp>
17 #include <boost/detail/lightweight_test.hpp>
22 virtual boost::exception
,
23 virtual std::exception
30 using namespace boost
;
35 errinfo_api_function("failed_api_function") <<
36 errinfo_at_line(42) <<
38 errinfo_file_handle(weak_ptr
<FILE>()) <<
39 errinfo_file_name("filename.txt") <<
40 errinfo_file_open_mode("rb");
41 #ifdef BOOST_NO_TYPEID
42 BOOST_THROW_EXCEPTION(e
);
44 BOOST_THROW_EXCEPTION(e
<<errinfo_type_info_name(typeid(int).name()));
46 BOOST_ERROR("BOOST_THROW_EXCEPTION failed to throw.");
49 boost::exception
& e
)
51 BOOST_TEST(get_error_info
<errinfo_api_function
>(e
) && *get_error_info
<errinfo_api_function
>(e
)==std::string("failed_api_function"));
52 BOOST_TEST(get_error_info
<errinfo_at_line
>(e
) && *get_error_info
<errinfo_at_line
>(e
)==42);
53 BOOST_TEST(get_error_info
<errinfo_errno
>(e
) && *get_error_info
<errinfo_errno
>(e
)==0);
54 BOOST_TEST(get_error_info
<errinfo_file_handle
>(e
) && get_error_info
<errinfo_file_handle
>(e
)->expired());
55 BOOST_TEST(get_error_info
<errinfo_file_name
>(e
) && *get_error_info
<errinfo_file_name
>(e
)=="filename.txt");
56 BOOST_TEST(get_error_info
<errinfo_file_open_mode
>(e
) && *get_error_info
<errinfo_file_open_mode
>(e
)=="rb");
57 #ifndef BOOST_NO_TYPEID
58 BOOST_TEST(get_error_info
<errinfo_type_info_name
>(e
) && *get_error_info
<errinfo_type_info_name
>(e
)==typeid(int).name());
66 return boost::report_errors();