2019-07-06 13:46:21 +00:00
|
|
|
#include <config/config.hpp>
|
|
|
|
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
#include <gmock/gmock.h>
|
|
|
|
|
|
|
|
using namespace llarp;
|
|
|
|
using namespace ::testing;
|
|
|
|
|
|
|
|
TEST(Config, smoke)
|
|
|
|
{
|
|
|
|
Config config;
|
|
|
|
(void)config;
|
|
|
|
SUCCEED();
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST(Config, sample_config)
|
|
|
|
{
|
|
|
|
std::string text = R"(
|
|
|
|
[router]
|
|
|
|
# number of crypto worker threads
|
|
|
|
threads=4
|
|
|
|
# path to store signed RC
|
|
|
|
contact-file=/home/lokinet/1/self.signed
|
|
|
|
# path to store transport private key
|
|
|
|
transport-privkey=/home/lokinet/1/transport.private
|
|
|
|
# path to store identity signing key
|
|
|
|
ident-privkey=/home/lokinet/1/identity.private
|
|
|
|
# encryption key for onion routing
|
|
|
|
encryption-privkey=/home/lokinet/1/encryption.private
|
|
|
|
|
|
|
|
# uncomment following line to set router nickname to 'lokinet'
|
|
|
|
netid=bunny
|
|
|
|
|
|
|
|
[logging]
|
|
|
|
level=info
|
|
|
|
# uncomment for logging to file
|
|
|
|
#type=file
|
|
|
|
#file=/path/to/logfile
|
|
|
|
# uncomment for syslog logging
|
|
|
|
#type=syslog
|
|
|
|
[metrics]
|
|
|
|
json-metrics-path=/home/lokinet/1/metrics.json
|
|
|
|
|
|
|
|
# admin api (disabled by default)
|
|
|
|
[api]
|
|
|
|
enabled=false
|
|
|
|
#authkey=insertpubkey1here
|
|
|
|
#authkey=insertpubkey2here
|
|
|
|
#authkey=insertpubkey3here
|
|
|
|
bind=127.0.0.1:1190
|
|
|
|
|
|
|
|
# system settings for privileges and such
|
|
|
|
[system]
|
|
|
|
user=lokinet
|
|
|
|
group=lokinet
|
|
|
|
pidfile=/home/lokinet/1/lokinet.pid
|
|
|
|
|
|
|
|
# dns provider configuration section
|
|
|
|
[dns]
|
|
|
|
# resolver
|
|
|
|
upstream=1.1.1.1
|
|
|
|
bind=127.0.1.1:53
|
|
|
|
|
|
|
|
# network database settings block
|
|
|
|
[netdb]
|
|
|
|
# directory for network database skiplist storage
|
|
|
|
dir=/home/lokinet/1/netdb
|
|
|
|
|
|
|
|
# bootstrap settings
|
|
|
|
[bootstrap]
|
|
|
|
# add a bootstrap node's signed identity to the list of nodes we want to bootstrap from
|
|
|
|
# if we don't have any peers we connect to this router
|
|
|
|
add-node=/home/lokinet/1/bootstrap.signed
|
|
|
|
|
|
|
|
# snapps configuration section
|
|
|
|
[services]# uncomment next line to enable a snapp
|
|
|
|
#example-snapp=/home/lokinet/1/snapp-example.ini
|
|
|
|
|
|
|
|
[bind]
|
|
|
|
eth0=5501
|
|
|
|
|
|
|
|
|
|
|
|
[network]
|
|
|
|
ifname=cluster-1
|
|
|
|
ifaddr=10.101.0.1/16
|
|
|
|
|
|
|
|
[metrics]
|
|
|
|
metric-tank-host=52.80.56.123:2003
|
|
|
|
)";
|
|
|
|
|
|
|
|
Config config;
|
2019-07-17 00:08:43 +00:00
|
|
|
ASSERT_TRUE(config.LoadFromStr(text));
|
2019-07-06 13:46:21 +00:00
|
|
|
|
|
|
|
{
|
2019-07-02 00:58:23 +00:00
|
|
|
using kv = NetworkConfig::NetConfig::value_type;
|
2019-07-06 13:46:21 +00:00
|
|
|
|
2019-07-02 00:58:23 +00:00
|
|
|
ASSERT_THAT(config.network.netConfig(),
|
2019-07-06 13:46:21 +00:00
|
|
|
UnorderedElementsAre(kv("ifname", "cluster-1"),
|
|
|
|
kv("ifaddr", "10.101.0.1/16")));
|
|
|
|
}
|
|
|
|
ASSERT_FALSE(config.metrics.disableMetricLogs);
|
|
|
|
ASSERT_FALSE(config.metrics.disableMetrics);
|
|
|
|
|
|
|
|
{
|
2019-08-07 16:33:29 +00:00
|
|
|
using kv = LinksConfig::Links::value_type;
|
2019-07-06 13:46:21 +00:00
|
|
|
|
2019-08-07 16:33:29 +00:00
|
|
|
ASSERT_THAT(config.links.inboundLinks(),
|
|
|
|
UnorderedElementsAre(kv("eth0", AF_INET, 5501, {})));
|
2019-07-06 13:46:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
ASSERT_THAT(config.bootstrap.routers,
|
|
|
|
ElementsAre("/home/lokinet/1/bootstrap.signed"));
|
|
|
|
}
|