@ -75,6 +75,8 @@ run_config_test(mocks::Network env, std::string_view ini_str)
throw std : : runtime_error { " non zero return " } ;
}
const std : : string ini_minimal = " [lokid] \n rpc=ipc://dummy \n " ;
TEST_CASE ( " service node bind section on valid network " , " [config] " )
{
std : : unordered_multimap < std : : string , llarp : : IPRange > env {
@ -92,15 +94,14 @@ TEST_CASE("service node bind section on valid network", "[config]")
REQUIRE ( not mock_net . IsBogon ( * maybe_addr ) ) ;
}
SECTION ( " empty config" )
SECTION ( " minimal config" )
{
std : : string_view ini_str = " " ;
REQUIRE_NOTHROW ( run_config_test ( env , ini_str ) ) ;
REQUIRE_NOTHROW ( run_config_test ( env , ini_minimal ) ) ;
}
SECTION ( " explicit bind via ifname " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
mock0 = 443
) " ;
@ -108,7 +109,7 @@ mock0=443
}
SECTION ( " explicit bind via ip address " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
inbound = 1.1 .1 .1 : 443
) " ;
@ -116,7 +117,7 @@ inbound=1.1.1.1:443
}
SECTION ( " explicit bind via ip address with old syntax " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
1.1 .1 .1 = 443
) " ;
@ -125,7 +126,7 @@ inbound=1.1.1.1:443
}
SECTION ( " ip spoof fails " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 8.8 .8 .8
public - port = 443
@ -136,7 +137,7 @@ inbound=1.1.1.1:443
}
SECTION ( " explicit bind via ifname but fails from non existing ifname " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
ligma0 = 443
) " ;
@ -145,7 +146,7 @@ ligma0=443
SECTION ( " explicit bind via ifname but fails from using loopback " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
lo = 443
) " ;
@ -154,7 +155,7 @@ lo=443
SECTION ( " explicit bind via explicit loopback " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
inbound = 127.0 .0 .1 : 443
) " ;
@ -162,7 +163,7 @@ inbound=127.0.0.1:443
}
SECTION ( " public ip provided but no bind section " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 1.1 .1 .1
public - port = 443
@ -171,7 +172,7 @@ public-port=443
}
SECTION ( " public ip provided with ip in bind section " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 1.1 .1 .1
public - port = 443
@ -196,7 +197,7 @@ TEST_CASE("service node bind section on nat network", "[config]")
SECTION ( " public ip provided via inbound directive " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 1.1 .1 .1
public - port = 443
@ -209,7 +210,7 @@ inbound=10.1.1.1:443
SECTION ( " public ip provided with bind via ifname " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 1.1 .1 .1
public - port = 443
@ -222,7 +223,7 @@ mock0=443
SECTION ( " public ip provided bind via wildcard ip " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 1.1 .1 .1
public - port = 443
@ -232,7 +233,6 @@ inbound=0.0.0.0:443
) " ;
REQUIRE_THROWS ( run_config_test ( env , ini_str ) ) ;
}
}
TEST_CASE ( " service node bind section with multiple public ip " , " [config] " )
@ -242,14 +242,9 @@ TEST_CASE("service node bind section with multiple public ip", "[config]")
{ " mock0 " , llarp : : IPRange : : FromIPv4 ( 2 , 1 , 1 , 1 , 32 ) } ,
{ " lo " , llarp : : IPRange : : FromIPv4 ( 127 , 0 , 0 , 1 , 8 ) } ,
} ;
SECTION ( " empty config " )
{
std : : string_view ini_str = " " ;
REQUIRE_NOTHROW ( run_config_test ( env , ini_str ) ) ;
}
SECTION ( " with old style wildcard for inbound and no public ip, fails " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
0.0 .0 .0 = 443
) " ;
@ -257,7 +252,7 @@ TEST_CASE("service node bind section with multiple public ip", "[config]")
}
SECTION ( " with old style wildcard for outbound " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
* = 1443
) " ;
@ -265,7 +260,7 @@ TEST_CASE("service node bind section with multiple public ip", "[config]")
}
SECTION ( " with wildcard via inbound directive no public ip given, fails " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
inbound = 0.0 .0 .0 : 443
) " ;
@ -274,7 +269,7 @@ inbound=0.0.0.0:443
}
SECTION ( " with wildcard via inbound directive primary public ip given " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 1.1 .1 .1
public - port = 443
@ -286,7 +281,7 @@ inbound=0.0.0.0:443
}
SECTION ( " with wildcard via inbound directive secondary public ip given " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ router ]
public - ip = 2.1 .1 .1
public - port = 443
@ -298,7 +293,7 @@ inbound=0.0.0.0:443
}
SECTION ( " with bind via interface name " )
{
std : : string_view ini_str = R " (
auto ini_str = ini_minimal + R " (
[ bind ]
mock0 = 443
) " ;