|
xrpld
|
Test for TMGetObjectByHash reply size limiting. More...


Classes | |
| class | PeerTest |
| Test peer that captures sent messages for verification. More... | |
Public Member Functions | |
| template<class = void> | |
| void | operator() (Runner &r) |
| Invokes the test using the specified runner. | |
| template<class = void> | |
| void | pass () |
| Record a successful test condition. | |
| template<class F, class String> | |
| bool | except (F &&f, String const &reason) |
| template<class F> | |
| bool | except (F &&f) |
| template<class E, class F, class String> | |
| bool | except (F &&f, String const &reason) |
| template<class E, class F> | |
| bool | except (F &&f) |
| template<class F, class String> | |
| bool | unexcept (F &&f, String const &reason) |
| template<class F> | |
| bool | unexcept (F &&f) |
| std::string const & | arg () const |
| Return the argument associated with the runner. | |
| template<class Condition, class String> | |
| bool | unexpected (Condition shouldBeFalse, String const &reason) |
| template<class Condition> | |
| bool | unexpected (Condition shouldBeFalse) |
| template<class String> | |
| void | fail (String const &reason, char const *file, int line) |
| Record a failure. | |
| template<class = void> | |
| void | fail (std::string const &reason="") |
| template<class Condition> | |
| bool | expect (Condition const &shouldBeTrue) |
| Evaluate a test condition. | |
| template<class Condition, class String> | |
| bool | expect (Condition const &shouldBeTrue, String const &reason) |
| template<class Condition> | |
| bool | expect (Condition const &shouldBeTrue, char const *file, int line) |
| template<class Condition, class String> | |
| bool | expect (Condition const &shouldBeTrue, String const &reason, char const *file, int line) |
Static Public Member Functions | |
| static Suite * | thisSuite () |
| Returns the "current" running suite. | |
Public Attributes | |
| LogOs< char > | log |
| Logging output stream. | |
| TestcaseT | testcase |
| Memberspace for declaring test cases. | |
Private Types | |
| using | middle_type = boost::beast::tcp_stream |
| using | stream_type = boost::beast::ssl_stream<middle_type> |
| using | socket_type = boost::asio::ip::tcp::socket |
| using | shared_context = std::shared_ptr<boost::asio::ssl::context> |
Private Member Functions | |
| std::shared_ptr< PeerTest > | createPeer (jtx::Env &env) |
| void | testReplyLimit (size_t const numObjects, int const expectedReplySize) |
| Test that reply is limited to hardMaxReplyNodes when more objects are requested than the limit allows. | |
| void | run () override |
| Runs the suite. | |
| void | propagateAbort () const |
Static Private Member Functions | |
| static std::shared_ptr< protocol::TMGetObjectByHash > | createRequest (size_t const numObjects, Env &env) |
| static Suite ** | pThisSuite () |
Private Attributes | |
| shared_context | context_ {makeSslContext("")} |
| ProtocolVersion | protocolVersion_ {1, 7} |
| bool | abort_ = false |
| bool | aborted_ = false |
| Runner * | runner_ = nullptr |
Test for TMGetObjectByHash reply size limiting.
This verifies the fix that limits TMGetObjectByHash replies to Tuning::hardMaxReplyNodes to prevent excessive memory usage and potential DoS attacks from peers requesting large numbers of objects.
Definition at line 50 of file TMGetObjectByHash_test.cpp.
|
private |
Definition at line 52 of file TMGetObjectByHash_test.cpp.
|
private |
Definition at line 53 of file TMGetObjectByHash_test.cpp.
|
private |
Definition at line 54 of file TMGetObjectByHash_test.cpp.
|
private |
Definition at line 55 of file TMGetObjectByHash_test.cpp.
|
private |
Definition at line 129 of file TMGetObjectByHash_test.cpp.
|
staticprivate |
Definition at line 158 of file TMGetObjectByHash_test.cpp.
|
private |
Test that reply is limited to hardMaxReplyNodes when more objects are requested than the limit allows.
onMessage(TMGetObjectByHash) dispatches the generic-query path to the JobQueue, so tests invoke the synchronous processor directly via runProcessGetObjectByHash.
Definition at line 199 of file TMGetObjectByHash_test.cpp.
|
overrideprivatevirtual |
Runs the suite.
Implements beast::unit_test::Suite.
Definition at line 228 of file TMGetObjectByHash_test.cpp.
|
staticinherited |
|
inherited |
Invokes the test using the specified runner.
Data members are set up here instead of the constructor as a convenience to writing the derived class to avoid repetition of forwarded constructor arguments to the base. Normally this is called by the framework for you.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Evaluate a test condition.
This function provides improved logging by incorporating the file name and line number into the reported output on failure, as well as additional text specified by the caller.
| shouldBeTrue | The condition to test. The condition is evaluated in a boolean context. |
| reason | Optional added text to output on a failure. |
| file | The source code file where the test failed. |
| line | The source code line number where the test failed. |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
staticprivateinherited |
|
privateinherited |
|
private |
Definition at line 125 of file TMGetObjectByHash_test.cpp.
|
private |
Definition at line 126 of file TMGetObjectByHash_test.cpp.
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
inherited |