]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/beast/test/beast/core/buffers_suffix.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / beast / test / beast / core / buffers_suffix.cpp
index 383d2a80ec9d891adc8c734a721eaf261dd825f6..e08bfdf300af8ef76d39dd10dad3fb1aca2c4659 100644 (file)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
+// Copyright (c) 2016-2019 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)
 // Test that header file is self-contained.
 #include <boost/beast/core/buffers_suffix.hpp>
 
-#include "buffer_test.hpp"
+#include "test_buffer.hpp"
 
+#include <boost/beast/core/buffer_traits.hpp>
 #include <boost/beast/core/buffers_cat.hpp>
-#include <boost/beast/core/ostream.hpp>
-#include <boost/beast/unit_test/suite.hpp>
+#include <boost/beast/_experimental/unit_test/suite.hpp>
 #include <boost/asio/buffer.hpp>
 #include <string>
 
@@ -24,6 +24,72 @@ namespace beast {
 class buffers_suffix_test : public beast::unit_test::suite
 {
 public:
+    void
+    testBufferSequence()
+    {
+        // mutable
+        {
+            char buf[13];
+            auto b = buffers_triple(buf, sizeof(buf));
+            buffers_suffix<decltype(b)> bs(b);
+            test_buffer_sequence(bs);
+        }
+
+        // const
+        {
+            string_view src = "Hello, world!";
+            std::array<net::const_buffer, 3> b{{
+                net::const_buffer(src.data(),     3),
+                net::const_buffer(src.data() + 3, 4),
+                net::const_buffer(src.data() + 7, 6) }};
+            buffers_suffix<decltype(b)> bs(b);
+            test_buffer_sequence(bs);
+        }
+    }
+
+    void
+    testSpecial()
+    {
+        // default construction
+        {
+            class test_buffer
+                : public net::const_buffer
+            {
+            public:
+                test_buffer()
+                    : net::const_buffer("\r\n", 2)
+                {
+                }
+            };
+
+            buffers_suffix<test_buffer> cb;
+            BEAST_EXPECT(buffers_to_string(cb) == "\r\n");
+            cb.consume(1);
+            BEAST_EXPECT(buffers_to_string(cb) == "\n");
+        }
+
+        // in-place init
+        {
+            buffers_suffix<buffers_cat_view<
+                net::const_buffer,
+                net::const_buffer>> cb(
+                    boost::in_place_init,
+                        net::const_buffer("\r", 1),
+                        net::const_buffer("\n", 1));
+            BEAST_EXPECT(buffers_to_string(cb) == "\r\n");
+        }
+
+        // empty sequence
+        {
+            buffers_suffix<net::mutable_buffer> cb(
+                net::mutable_buffer{});
+            BEAST_EXPECT(buffer_bytes(cb) == 0);
+            buffers_suffix<net::mutable_buffer> cb2(
+                net::mutable_buffer{});
+            BEAST_EXPECT(net::buffer_copy(cb2, cb) == 0);
+        }
+    }
+
     template<class BufferSequence>
     static
     buffers_suffix<BufferSequence>
@@ -39,45 +105,19 @@ public:
     bool
     eq(Buffers1 const& lhs, Buffers2 const& rhs)
     {
-        using namespace test;
-        return to_string(lhs) == to_string(rhs);
-    }
-
-    template<class ConstBufferSequence>
-    void
-    expect_size(std::size_t n, ConstBufferSequence const& buffers)
-    {
-        BEAST_EXPECT(test::size_pre(buffers) == n);
-        BEAST_EXPECT(test::size_post(buffers) == n);
-        BEAST_EXPECT(test::size_rev_pre(buffers) == n);
-        BEAST_EXPECT(test::size_rev_post(buffers) == n);
-    }
-
-    void
-    testMembers()
-    {
-        char buf[12];
-        buffers_suffix<
-            boost::asio::const_buffer> cb1{
-                boost::in_place_init, buf, sizeof(buf)};
-        buffers_suffix<
-            boost::asio::const_buffer> cb2{
-                boost::in_place_init, nullptr, 0};
-        cb2 = cb1;
-        cb1 = std::move(cb2);
+        return
+            buffers_to_string(lhs) ==
+            buffers_to_string(rhs);
     }
 
     void
     testMatrix()
     {
-        using namespace test;
-        using boost::asio::buffer;
-        using boost::asio::const_buffer;
         char buf[12];
         std::string const s = "Hello, world";
         BEAST_EXPECT(s.size() == sizeof(buf));
-        buffer_copy(buffer(buf), buffer(s));
-        BEAST_EXPECT(to_string(buffer(buf)) == s);
+        net::buffer_copy(net::buffer(buf), net::buffer(s));
+        BEAST_EXPECT(buffers_to_string(net::buffer(buf)) == s);
         for(std::size_t i = 1; i < 4; ++i) {
         for(std::size_t j = 1; j < 4; ++j) {
         for(std::size_t x = 1; x < 4; ++x) {
@@ -85,97 +125,39 @@ public:
         std::size_t k = sizeof(buf) - (i + j);
         std::size_t z = sizeof(buf) - (x + y);
         {
-            std::array<const_buffer, 3> bs{{
-                const_buffer{&buf[0], i},
-                const_buffer{&buf[i], j},
-                const_buffer{&buf[i+j], k}}};
+            std::array<net::const_buffer, 3> bs{{
+                net::const_buffer{&buf[0], i},
+                net::const_buffer{&buf[i], j},
+                net::const_buffer{&buf[i+j], k}}};
             buffers_suffix<decltype(bs)> cb(bs);
-            BEAST_EXPECT(to_string(cb) == s);
-            expect_size(s.size(), cb);
+            BEAST_EXPECT(buffers_to_string(cb) == s);
+            BEAST_EXPECT(buffer_bytes(cb) == s.size());
             cb.consume(0);
             BEAST_EXPECT(eq(cb, consumed_buffers(bs, 0)));
-            BEAST_EXPECT(to_string(cb) == s);
-            expect_size(s.size(), cb);
+            BEAST_EXPECT(buffers_to_string(cb) == s);
+            BEAST_EXPECT(buffer_bytes(cb) == s.size());
             cb.consume(x);
-            BEAST_EXPECT(to_string(cb) == s.substr(x));
+            BEAST_EXPECT(buffers_to_string(cb) == s.substr(x));
             BEAST_EXPECT(eq(cb, consumed_buffers(bs, x)));
             cb.consume(y);
-            BEAST_EXPECT(to_string(cb) == s.substr(x+y));
+            BEAST_EXPECT(buffers_to_string(cb) == s.substr(x+y));
             BEAST_EXPECT(eq(cb, consumed_buffers(bs, x+y)));
             cb.consume(z);
-            BEAST_EXPECT(to_string(cb) == "");
+            BEAST_EXPECT(buffers_to_string(cb) == "");
             BEAST_EXPECT(eq(cb, consumed_buffers(bs, x+y+z)));
             cb.consume(1);
-            BEAST_EXPECT(to_string(cb) == "");
+            BEAST_EXPECT(buffers_to_string(cb) == "");
             BEAST_EXPECT(eq(cb, consumed_buffers(bs, x+y+z)));
         }
         }}}}
     }
-    
-    void
-    testDefaultCtor()
-    {
-        using namespace test;
-        class test_buffer : public boost::asio::const_buffer
-        {
-        public:
-            test_buffer()
-                : boost::asio::const_buffer("\r\n", 2)
-            {
-            }
-        };
-
-        buffers_suffix<test_buffer> cb;
-        BEAST_EXPECT(to_string(cb) == "\r\n");
-    }
-
-    void
-    testInPlace()
-    {
-        using namespace test;
-        buffers_suffix<buffers_cat_view<
-            boost::asio::const_buffer,
-            boost::asio::const_buffer>> cb(
-                boost::in_place_init,
-                    boost::asio::const_buffer("\r", 1),
-                    boost::asio::const_buffer("\n", 1));
-        BEAST_EXPECT(to_string(cb) == "\r\n");
-    }
-
-    void
-    testEmptyBuffers()
-    {
-        using boost::asio::buffer_copy;
-        using boost::asio::buffer_size;
-        using boost::asio::mutable_buffer;
-        buffers_suffix<mutable_buffer> cb(
-            mutable_buffer{});
-        BEAST_EXPECT(buffer_size(cb) == 0);
-        buffers_suffix<mutable_buffer> cb2(
-            mutable_buffer{});
-        BEAST_EXPECT(buffer_copy(cb2, cb) == 0);
-    }
 
     void
-    testIterator()
-    {
-        using boost::asio::const_buffer;
-        std::array<const_buffer, 3> ba;
-        buffers_suffix<decltype(ba)> cb(ba);
-        std::size_t n = 0;
-        for(auto it = cb.end(); it != cb.begin(); --it)
-            ++n;
-        BEAST_EXPECT(n == 3);
-    }
-
-    void run() override
+    run() override
     {
-        testMembers();
+        testBufferSequence();
+        testSpecial();
         testMatrix();
-        testDefaultCtor();
-        testInPlace();
-        testEmptyBuffers();
-        testIterator();
     }
 };