Bitcoin Core 31.99.0
P2P Digital Currency
Functions | Variables
httpserver_tests.cpp File Reference
#include <httpserver.h>
#include <rpc/protocol.h>
#include <test/util/common.h>
#include <test/util/setup_common.h>
#include <util/string.h>
#include <boost/test/unit_test.hpp>
Include dependency graph for httpserver_tests.cpp:

Go to the source code of this file.

Functions

 BOOST_CHECK_EXCEPTION (HTTPHeaders{}.Read(reader), std::runtime_error, HasReason{"Empty HTTP header name"})
 
 BOOST_CHECK_EXCEPTION (HTTPHeaders{}.Read(reader), std::runtime_error, HasReason{"Header contains invalid character"})
 
 BOOST_CHECK_EXCEPTION (HTTPHeaders{}.Read(reader), std::runtime_error, HasReason{"Invalid header field-name contains whitespace"})
 
lines reserve (820 *10)
 
 for (int i=0;i< 820;++i)
 
 BOOST_CHECK_GT (excessive_headers.size(), MAX_HEADERS_SIZE)
 
 BOOST_CHECK_EXCEPTION (HTTPHeaders{}.Read(reader), std::runtime_error, HasReason{"HTTP headers exceed size limit"})
 
headers Read (reader)
 
 BOOST_CHECK_EQUAL (headers.FindFirst("key"), "value")
 
 BOOST_AUTO_TEST_CASE (http_response_tests)
 
 BOOST_AUTO_TEST_CASE (http_request_tests)
 
 BOOST_AUTO_TEST_CASE (http_server_socket_tests)
 

Variables

constexpr std::string_view full_request
 
std::string_view excessive_headers {lines}
 
util::LineReader reader {excessive_headers, MAX_HEADERS_SIZE}
 
HTTPHeaders headers {}
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/3]

BOOST_AUTO_TEST_CASE ( http_request_tests  )

Definition at line 199 of file httpserver_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [2/3]

BOOST_AUTO_TEST_CASE ( http_response_tests  )

Definition at line 180 of file httpserver_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [3/3]

BOOST_AUTO_TEST_CASE ( http_server_socket_tests  )

Definition at line 452 of file httpserver_tests.cpp.

◆ BOOST_CHECK_EQUAL()

BOOST_CHECK_EQUAL ( headers.  FindFirst"key",
"value"   
)

◆ BOOST_CHECK_EXCEPTION() [1/4]

BOOST_CHECK_EXCEPTION ( HTTPHeaders{}.  Readreader,
std::runtime_error  ,
HasReason{"Empty HTTP header name"}   
)
Here is the caller graph for this function:

◆ BOOST_CHECK_EXCEPTION() [2/4]

BOOST_CHECK_EXCEPTION ( HTTPHeaders{}.  Readreader,
std::runtime_error  ,
HasReason{"Header contains invalid character"}   
)
Initial value:
{
util::LineReader reader{std::string_view{"X-Custom: foo\rbar\n"}, MAX_HEADERS_SIZE}
util::LineReader reader
constexpr size_t MAX_HEADERS_SIZE
Maximum size of each headers line in an HTTP request, also the maximum size of all headers total.
Definition: httpserver.h:77

◆ BOOST_CHECK_EXCEPTION() [3/4]

BOOST_CHECK_EXCEPTION ( HTTPHeaders{}.  Readreader,
std::runtime_error  ,
HasReason{"HTTP headers exceed size limit"}   
)

◆ BOOST_CHECK_EXCEPTION() [4/4]

BOOST_CHECK_EXCEPTION ( HTTPHeaders{}.  Readreader,
std::runtime_error  ,
HasReason{"Invalid header field-name contains whitespace"}   
)

◆ BOOST_CHECK_GT()

BOOST_CHECK_GT ( excessive_headers.  size(),
MAX_HEADERS_SIZE   
)
Here is the caller graph for this function:

◆ for()

for ( )

Definition at line 163 of file httpserver_tests.cpp.

◆ Read()

headers Read ( reader  )

◆ reserve()

lines reserve ( 820 *  10)

Variable Documentation

◆ excessive_headers

std::string_view excessive_headers {lines}

Definition at line 166 of file httpserver_tests.cpp.

◆ full_request

constexpr std::string_view full_request
constexpr

Definition at line 24 of file httpserver_tests.cpp.

◆ headers

HTTPHeaders headers {}

Definition at line 174 of file httpserver_tests.cpp.

◆ reader

util::LineReader reader {excessive_headers, MAX_HEADERS_SIZE}

Definition at line 168 of file httpserver_tests.cpp.