Branch data Line data Source code
1 : : // Copyright (c) 2021-2022 The Bitcoin Core developers 2 : : // Distributed under the MIT software license, see the accompanying 3 : : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : : 5 : : #include <common/args.h> 6 : : #include <i2p.h> 7 : : #include <logging.h> 8 : : #include <netaddress.h> 9 : : #include <test/util/logging.h> 10 : : #include <test/util/net.h> 11 : : #include <test/util/setup_common.h> 12 : : #include <util/threadinterrupt.h> 13 : : 14 : : #include <boost/test/unit_test.hpp> 15 : : 16 : : #include <memory> 17 : 0 : #include <string> 18 : 0 : 19 : 0 : BOOST_FIXTURE_TEST_SUITE(i2p_tests, BasicTestingSetup) 20 : : 21 : 0 : BOOST_AUTO_TEST_CASE(unlimited_recv) 22 : : { 23 : 0 : const auto prev_log_level{LogInstance().LogLevel()}; 24 : 0 : LogInstance().SetLogLevel(BCLog::Level::Trace); 25 : 0 : auto CreateSockOrig = CreateSock; 26 : : 27 : : // Mock CreateSock() to create MockSock. 28 : 0 : CreateSock = [](const CService&) { 29 : 0 : return std::make_unique<StaticContentsSock>(std::string(i2p::sam::MAX_MSG_SIZE + 1, 'a')); 30 : 0 : }; 31 : : 32 : 0 : CThreadInterrupt interrupt; 33 : 0 : i2p::sam::Session session(gArgs.GetDataDirNet() / "test_i2p_private_key", CService{}, &interrupt); 34 : : 35 : : { 36 : 0 : ASSERT_DEBUG_LOG("Creating persistent SAM session"); 37 : 0 : ASSERT_DEBUG_LOG("too many bytes without a terminator"); 38 : : 39 : 0 : i2p::Connection conn; 40 : : bool proxy_error; 41 : 0 : BOOST_REQUIRE(!session.Connect(CService{}, conn, proxy_error)); 42 : 0 : } 43 : : 44 : 0 : CreateSock = CreateSockOrig; 45 : 0 : LogInstance().SetLogLevel(prev_log_level); 46 : 0 : } 47 : : 48 : 0 : BOOST_AUTO_TEST_SUITE_END()