lokinet/test/exit_unittest.cpp
2018-11-19 04:29:39 -06:00

32 lines
970 B
C++

#include <gtest/gtest.h>
#include <llarp/exit.hpp>
#include "router.hpp"
struct ExitTest : public ::testing::Test
{
ExitTest()
{
llarp_crypto_init(&r.crypto);
r.netloop = nullptr; // only windows uses defined sentinel values in
// uninitialised blocks
}
llarp_router r;
};
TEST_F(ExitTest, AddMultipleIP)
{
llarp::PubKey pk;
pk.Randomize();
llarp::PathID_t firstPath, secondPath;
firstPath.Randomize();
secondPath.Randomize();
llarp::exit::Context::Config_t conf;
conf.emplace("exit", "true");
conf.emplace("type", "null");
conf.emplace("ifaddr", "10.0.0.1/24");
ASSERT_TRUE(r.exitContext.AddExitEndpoint("test-exit", conf));
ASSERT_TRUE(r.exitContext.ObtainNewExit(pk, firstPath, true));
ASSERT_TRUE(r.exitContext.ObtainNewExit(pk, secondPath, true));
ASSERT_TRUE(r.exitContext.FindEndpointForPath(firstPath)->LocalIP()
== r.exitContext.FindEndpointForPath(secondPath)->LocalIP());
};