summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asio/src/tests/unit/streambuf.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asio/src/tests/unit/streambuf.cpp')
-rw-r--r--3rdparty/asio/src/tests/unit/streambuf.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/3rdparty/asio/src/tests/unit/streambuf.cpp b/3rdparty/asio/src/tests/unit/streambuf.cpp
new file mode 100644
index 00000000000..5e10e726d1c
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/streambuf.cpp
@@ -0,0 +1,62 @@
+//
+// streambuf.cpp
+// ~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/streambuf.hpp"
+
+#include "asio/buffer.hpp"
+#include "unit_test.hpp"
+
+void streambuf_test()
+{
+ asio::streambuf sb;
+
+ sb.sputn("abcd", 4);
+
+ ASIO_CHECK(sb.size() == 4);
+
+ for (int i = 0; i < 100; ++i)
+ {
+ sb.consume(3);
+
+ ASIO_CHECK(sb.size() == 1);
+
+ char buf[1];
+ sb.sgetn(buf, 1);
+
+ ASIO_CHECK(sb.size() == 0);
+
+ sb.sputn("ab", 2);
+
+ ASIO_CHECK(sb.size() == 2);
+
+ asio::buffer_copy(sb.prepare(10), asio::buffer("cd", 2));
+ sb.commit(2);
+
+ ASIO_CHECK(sb.size() == 4);
+ }
+
+ ASIO_CHECK(sb.size() == 4);
+
+ sb.consume(4);
+
+ ASIO_CHECK(sb.size() == 0);
+}
+
+ASIO_TEST_SUITE
+(
+ "streambuf",
+ ASIO_TEST_CASE(streambuf_test)
+)