]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/beast/test/beast/zlib/error.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / beast / test / beast / zlib / error.cpp
1 //
2 // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/boostorg/beast
8 //
9
10 // Test that header file is self-contained.
11 #include <boost/beast/zlib/error.hpp>
12
13 #include <boost/beast/_experimental/unit_test/suite.hpp>
14 #include <memory>
15
16 namespace boost {
17 namespace beast {
18 namespace zlib {
19
20 class error_test : public unit_test::suite
21 {
22 public:
23 void check(char const* name, error ev)
24 {
25 auto const ec = make_error_code(ev);
26 auto const& cat = make_error_code(
27 static_cast<zlib::error>(0)).category();
28 BEAST_EXPECT(std::string{ec.category().name()} == name);
29 BEAST_EXPECT(! ec.message().empty());
30 BEAST_EXPECT(
31 std::addressof(ec.category()) == std::addressof(cat));
32 BEAST_EXPECT(cat.equivalent(
33 static_cast<std::underlying_type<error>::type>(ev),
34 ec.category().default_error_condition(
35 static_cast<std::underlying_type<error>::type>(ev))));
36 BEAST_EXPECT(cat.equivalent(ec,
37 static_cast<std::underlying_type<error>::type>(ev)));
38 }
39
40 void run() override
41 {
42 check("boost.beast.zlib", error::need_buffers);
43 check("boost.beast.zlib", error::end_of_stream);
44 check("boost.beast.zlib", error::need_dict);
45 check("boost.beast.zlib", error::stream_error);
46
47 check("boost.beast.zlib", error::invalid_block_type);
48 check("boost.beast.zlib", error::invalid_stored_length);
49 check("boost.beast.zlib", error::too_many_symbols);
50 check("boost.beast.zlib", error::invalid_code_lengths);
51 check("boost.beast.zlib", error::invalid_bit_length_repeat);
52 check("boost.beast.zlib", error::missing_eob);
53 check("boost.beast.zlib", error::invalid_literal_length);
54 check("boost.beast.zlib", error::invalid_distance_code);
55 check("boost.beast.zlib", error::invalid_distance);
56
57 check("boost.beast.zlib", error::over_subscribed_length);
58 check("boost.beast.zlib", error::incomplete_length_set);
59
60 check("boost.beast.zlib", error::general);
61 }
62 };
63
64 BEAST_DEFINE_TESTSUITE(beast,zlib,error);
65
66 } // zlib
67 } // beast
68 } // boost