mirror of
https://github.com/monero-project/kovri
synced 2025-10-06 08:42:45 +02:00
Tests: add RI test cases for transports
This commit is contained in:
@@ -31,8 +31,9 @@
|
||||
#include "tests/unit_tests/main.h"
|
||||
|
||||
#include "core/router/identity.h"
|
||||
#include "core/router/info.h"
|
||||
|
||||
struct RouterInfoFixture
|
||||
struct RouterInfoFixture : public core::RouterInfoTraits
|
||||
{
|
||||
core::PrivateKeys keys = core::PrivateKeys::CreateRandomKeys(
|
||||
core::SIGNING_KEY_TYPE_EDDSA_SHA512_ED25519);
|
||||
@@ -53,4 +54,107 @@ BOOST_AUTO_TEST_CASE(InvalidSignature)
|
||||
BOOST_CHECK_THROW(router.CreateBuffer(keys), std::exception);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(IPv4)
|
||||
{
|
||||
core::RouterInfo ri(keys, {{"127.0.0.1", 12345}}, {true, true});
|
||||
|
||||
// Yes ipv4
|
||||
BOOST_CHECK_EQUAL(ri.HasNTCP(), true);
|
||||
BOOST_CHECK_EQUAL(ri.HasSSU(), true);
|
||||
|
||||
// No ipv6
|
||||
// TODO(unassigned): logic would dictate that we only allow true for ipv6 capable
|
||||
// but our current implementation doesn't allow this (these should return false)
|
||||
BOOST_CHECK_EQUAL(ri.HasNTCP(true), true);
|
||||
BOOST_CHECK_EQUAL(ri.HasSSU(true), true);
|
||||
//
|
||||
BOOST_CHECK_EQUAL(ri.HasV6(), false);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(IPv6)
|
||||
{
|
||||
core::RouterInfo ri(keys, {{"::1", 12345}}, {true, true});
|
||||
|
||||
// No ipv4
|
||||
BOOST_CHECK_EQUAL(ri.HasNTCP(), false);
|
||||
BOOST_CHECK_EQUAL(ri.HasSSU(), false);
|
||||
|
||||
// Yes ipv6
|
||||
BOOST_CHECK_EQUAL(ri.HasNTCP(true), true);
|
||||
BOOST_CHECK_EQUAL(ri.HasSSU(true), true);
|
||||
BOOST_CHECK_EQUAL(ri.HasV6(), true);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GetAddress)
|
||||
{
|
||||
core::RouterInfo ri(
|
||||
keys, {{"127.0.0.1", 54321}, {"::1", 12345}}, {true, true});
|
||||
|
||||
// Yes ipv4
|
||||
BOOST_CHECK_NE(ri.GetV4Address(Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetV4Address(Transport::SSU), nullptr);
|
||||
|
||||
// Yes ipv6
|
||||
BOOST_CHECK_NE(ri.GetV6Address(Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetV6Address(Transport::SSU), nullptr);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GetAddressIPv4only)
|
||||
{
|
||||
core::RouterInfo ri(keys, {{"127.0.0.1", 54321}}, {true, true});
|
||||
|
||||
// Yes ipv4
|
||||
BOOST_CHECK_NE(ri.GetV4Address(Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetV4Address(Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_NE(ri.GetAddress(false, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetAddress(false, Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_NE(ri.GetAnyAddress(false, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetAnyAddress(false, Transport::SSU), nullptr);
|
||||
|
||||
// No ipv6
|
||||
BOOST_CHECK_EQUAL(ri.GetV6Address(Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_EQUAL(ri.GetV6Address(Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_EQUAL(ri.GetAddress(true, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_EQUAL(ri.GetAddress(true, Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_NE(ri.GetAnyAddress(true, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetAnyAddress(true, Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_EQUAL(ri.GetAnyAddress(true, Transport::NTCP)->host.is_v6(), false);
|
||||
BOOST_CHECK_EQUAL(ri.GetAnyAddress(true, Transport::SSU)->host.is_v6(), false);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GetAddressIPv6only)
|
||||
{
|
||||
core::RouterInfo ri(keys, {{"::1", 54321}}, {true, true});
|
||||
|
||||
// No ipv4
|
||||
BOOST_CHECK_EQUAL(ri.GetV4Address(Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_EQUAL(ri.GetV4Address(Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_EQUAL(ri.GetAddress(false, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_EQUAL(ri.GetAddress(false, Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_EQUAL(ri.GetAnyAddress(false, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_EQUAL(ri.GetAnyAddress(false, Transport::SSU), nullptr);
|
||||
|
||||
// Yes ipv6
|
||||
BOOST_CHECK_NE(ri.GetV6Address(Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetV6Address(Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_NE(ri.GetAddress(true, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetAddress(true, Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_NE(ri.GetAnyAddress(true, Transport::NTCP), nullptr);
|
||||
BOOST_CHECK_NE(ri.GetAnyAddress(true, Transport::SSU), nullptr);
|
||||
|
||||
BOOST_CHECK_EQUAL(ri.GetAnyAddress(true, Transport::NTCP)->host.is_v6(), true);
|
||||
BOOST_CHECK_EQUAL(ri.GetAnyAddress(true, Transport::SSU)->host.is_v6(), true);
|
||||
}
|
||||
|
||||
// TODO(unassigned): expand test cases
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
Reference in New Issue
Block a user