Add test::error to experimental

This commit is contained in:
Vinnie Falco
2018-05-02 08:32:09 -07:00
parent 292801fef7
commit 59f01a158b
14 changed files with 200 additions and 125 deletions
@@ -0,0 +1,60 @@
//
// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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)
//
// Official repository: https://github.com/boostorg/beast
//
#ifndef BOOST_BEAST_TEST_DETAIL_ERROR_HPP
#define BOOST_BEAST_TEST_DETAIL_ERROR_HPP
#include <boost/beast/core/error.hpp>
#include <boost/beast/core/string.hpp>
namespace boost {
namespace beast {
namespace test {
enum class error;
} // test
} // beast
namespace system {
template<>
struct is_error_code_enum<beast::test::error>
{
static bool const value = true;
};
} // system
namespace beast {
namespace test {
namespace detail {
class error_codes : public error_category
{
public:
const char*
name() const noexcept override;
std::string
message(int ev) const override;
error_condition
default_error_condition(int ev) const noexcept override;
};
} // detail
error_code
make_error_code(error e);
} // test
} // beast
} // boost
#endif
@@ -0,0 +1,37 @@
//
// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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)
//
// Official repository: https://github.com/boostorg/beast
//
#ifndef BOOST_BEAST_TEST_ERROR_HPP
#define BOOST_BEAST_TEST_ERROR_HPP
#include <boost/beast/core/error.hpp>
#include <boost/beast/experimental/test/detail/error.hpp>
namespace boost {
namespace beast {
namespace test {
/// Error codes returned from unit testing algorithms
enum class error
{
/** The test stream generated a simulated testing error
This error is returned by the test @ref stream when it
generates a simulated error.
*/
test_failure = 1
};
} // test
} // beast
} // boost
#include <boost/beast/experimental/test/impl/error.ipp>
#endif
@@ -0,0 +1,62 @@
//
// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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)
//
// Official repository: https://github.com/boostorg/beast
//
#ifndef BOOST_BEAST_TEST_IMPL_ERROR_IPP
#define BOOST_BEAST_TEST_IMPL_ERROR_IPP
namespace boost {
namespace beast {
namespace test {
namespace detail {
inline
const char*
error_codes::
name() const noexcept
{
return "boost.beast.test";
}
inline
std::string
error_codes::
message(int ev) const
{
switch(static_cast<error>(ev))
{
default:
case error::test_failure: return "The test stream generated a simulated error";
}
}
inline
error_condition
error_codes::
default_error_condition(int ev) const noexcept
{
return error_condition{ev, *this};
}
} // detail
inline
error_code
make_error_code(error e)
{
static detail::error_codes const cat{};
return error_code{static_cast<
std::underlying_type<error>::type>(e), cat};
}
} // test
} // beast
} // boost
#endif
@@ -7,8 +7,8 @@
// Official repository: https://github.com/boostorg/beast
//
#ifndef BOOST_BEAST_WEBSOCKET_DETAIL_ERROR_IPP
#define BOOST_BEAST_WEBSOCKET_DETAIL_ERROR_IPP
#ifndef BOOST_BEAST_WEBSOCKET_DETAIL_ERROR_HPP
#define BOOST_BEAST_WEBSOCKET_DETAIL_ERROR_HPP
#include <boost/beast/core/error.hpp>
#include <boost/beast/core/string.hpp>