MCPcopy Create free account
hub / github.com/boostorg/beast / testWriteStream

Method testWriteStream

test/beast/http/write.cpp:725–835  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

723
724 template<class Body>
725 void
726 testWriteStream(net::yield_context yield)
727 {
728 test::stream ts{ioc_}, tr{ioc_};
729 ts.connect(tr);
730 ts.write_size(3);
731
732 response<Body> m0;
733 m0.version(11);
734 m0.result(status::ok);
735 m0.reason("OK");
736 m0.set(field::server, "test");
737 m0.body().s = "Hello, world!\n";
738
739 {
740 std::string const result =
741 "HTTP/1.1 200 OK\r\n"
742 "Server: test\r\n"
743 "\r\n"
744 "Hello, world!\n";
745 {
746 auto m = m0;
747 error_code ec;
748 do_write(ts, m, ec);
749 BEAST_EXPECT(tr.str() == result);
750 BEAST_EXPECT(equal_body<false>(
751 tr.str(), m.body().s));
752 tr.clear();
753 }
754 {
755 auto m = m0;
756 error_code ec;
757 do_async_write(ts, m, ec, yield);
758 BEAST_EXPECT(tr.str() == result);
759 BEAST_EXPECT(equal_body<false>(
760 tr.str(), m.body().s));
761 tr.clear();
762 }
763 {
764 auto m = m0;
765 response_serializer<Body, fields> sr{m};
766 sr.split(true);
767 for(;;)
768 {
769 write_some(ts, sr);
770 if(sr.is_header_done())
771 break;
772 }
773 BEAST_EXPECT(! m.body().read);
774 tr.clear();
775 }
776 {
777 auto m = m0;
778 response_serializer<Body, fields> sr{m};
779 sr.split(true);
780 for(;;)
781 {
782 async_write_some(ts, sr, yield);

Callers

nothing calls this directly

Calls 9

write_sizeMethod · 0.80
bodyMethod · 0.80
splitMethod · 0.80
write_someFunction · 0.50
async_write_someFunction · 0.50
versionMethod · 0.45
strMethod · 0.45
clearMethod · 0.45
is_header_doneMethod · 0.45

Tested by

no test coverage detected