From: Casey Bodley Date: Mon, 3 Jun 2019 14:59:00 +0000 (-0400) Subject: test/rgw: test truncated reads in RGWHTTPManager X-Git-Tag: v13.2.7~205^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=073fa917fdf57d2959889123d07db65c0307b34a;p=ceph.git test/rgw: test truncated reads in RGWHTTPManager Signed-off-by: Casey Bodley (cherry picked from commit c669cf293f02b3c68a4c539d7accf7ddf35cb1ee) Conflicts: src/test/rgw/test_http_manager.cc - RGWHTTP::process() only takes one argument in mimic --- diff --git a/src/test/rgw/test_http_manager.cc b/src/test/rgw/test_http_manager.cc index b8129a1f598..ed49e4c80b4 100644 --- a/src/test/rgw/test_http_manager.cc +++ b/src/test/rgw/test_http_manager.cc @@ -16,8 +16,39 @@ #include "global/global_init.h" #include "common/ceph_argparse.h" #include +#include +#include +#include #include +TEST(HTTPManager, ReadTruncated) +{ + using tcp = boost::asio::ip::tcp; + tcp::endpoint endpoint(tcp::v4(), 0); + boost::asio::io_context ioctx; + tcp::acceptor acceptor(ioctx); + acceptor.open(endpoint.protocol()); + acceptor.bind(endpoint); + acceptor.listen(); + + std::thread server{[&] { + tcp::socket socket{ioctx}; + acceptor.accept(socket); + std::string_view response = + "HTTP/1.1 200 OK\r\n" + "Content-Length: 1024\r\n" + "\r\n" + "short body"; + boost::asio::write(socket, boost::asio::buffer(response)); + }}; + const auto url = std::string{"http://127.0.0.1:"} + std::to_string(acceptor.local_endpoint().port()); + + RGWHTTPClient client{g_ceph_context, "GET", url}; + EXPECT_EQ(-EAGAIN, RGWHTTP::process(&client)); + + server.join(); +} + TEST(HTTPManager, SignalThread) { auto cct = g_ceph_context;