]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/system/test/ec_location_test.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / system / test / ec_location_test.cpp
CommitLineData
1e59de90
TL
1// Copyright 2021 Peter Dimov.
2// Distributed under the Boost Software License, Version 1.0.
3// https://www.boost.org/LICENSE_1_0.txt
4
5#include <boost/system.hpp>
6#include <boost/core/lightweight_test.hpp>
7#include <cerrno>
8
9int main()
10{
11 int const val = ENOENT;
12 boost::system::error_category const & cat = boost::system::generic_category();
13
14 {
15 boost::system::error_code ec( val, cat );
16
17 BOOST_TEST_EQ( ec.value(), val );
18 BOOST_TEST_EQ( &ec.category(), &cat );
19
20 BOOST_TEST( ec.failed() );
21
22 BOOST_TEST( !ec.has_location() );
23 BOOST_TEST_EQ( ec.location().line(), 0 );
24 }
25
26 {
27 BOOST_STATIC_CONSTEXPR boost::source_location loc = BOOST_CURRENT_LOCATION;
28
29 boost::system::error_code ec( val, cat, &loc );
30
31 BOOST_TEST_EQ( ec.value(), val );
32 BOOST_TEST_EQ( &ec.category(), &cat );
33
34 BOOST_TEST( ec.failed() );
35
36 BOOST_TEST( ec.has_location() );
37 BOOST_TEST_EQ( ec.location().line(), 27 );
38 }
39
40 {
41 boost::system::error_code ec;
42
43 BOOST_TEST_EQ( ec.value(), 0 );
44 BOOST_TEST_EQ( &ec.category(), &boost::system::system_category() );
45
46 BOOST_TEST( !ec.failed() );
47
48 BOOST_TEST( !ec.has_location() );
49 BOOST_TEST_EQ( ec.location().line(), 0 );
50
51 BOOST_STATIC_CONSTEXPR boost::source_location loc = BOOST_CURRENT_LOCATION;
52
53 ec = boost::system::error_code( val, cat, &loc );
54
55 BOOST_TEST_EQ( ec.value(), val );
56 BOOST_TEST_EQ( &ec.category(), &cat );
57
58 BOOST_TEST( ec.failed() );
59
60 BOOST_TEST( ec.has_location() );
61 BOOST_TEST_EQ( ec.location().line(), 51 );
62 }
63
64 {
65 boost::system::error_code ec;
66
67 BOOST_TEST_EQ( ec.value(), 0 );
68 BOOST_TEST_EQ( &ec.category(), &boost::system::system_category() );
69
70 BOOST_TEST( !ec.failed() );
71
72 BOOST_TEST( !ec.has_location() );
73 BOOST_TEST_EQ( ec.location().line(), 0 );
74
75 BOOST_STATIC_CONSTEXPR boost::source_location loc = BOOST_CURRENT_LOCATION;
76
77 ec.assign( val, cat, &loc );
78
79 BOOST_TEST_EQ( ec.value(), val );
80 BOOST_TEST_EQ( &ec.category(), &cat );
81
82 BOOST_TEST( ec.failed() );
83
84 BOOST_TEST( ec.has_location() );
85 BOOST_TEST_EQ( ec.location().line(), 75 );
86 }
87
88#if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
89
90 {
91 std::error_code e2( val, std::generic_category() );
92
93 boost::system::error_code ec( e2 );
94
95 BOOST_TEST( ec.failed() );
96
97 BOOST_TEST( !ec.has_location() );
98 BOOST_TEST_EQ( ec.location().line(), 0 );
99
100 BOOST_STATIC_CONSTEXPR boost::source_location loc = BOOST_CURRENT_LOCATION;
101
102 ec.assign( val, cat, &loc );
103
104 BOOST_TEST_EQ( ec.value(), val );
105 BOOST_TEST_EQ( &ec.category(), &cat );
106
107 BOOST_TEST( ec.failed() );
108
109 BOOST_TEST( ec.has_location() );
110 BOOST_TEST_EQ( ec.location().line(), 100 );
111 }
112
113#endif
114
115 return boost::report_errors();
116}