src: Make conf keys with default values optional
refs: #1949
Change-Id: Ia9ba8707d27f2db96264f0480ffc72fd44a75099
diff --git a/tests/test-conf-file-processor.cpp b/tests/test-conf-file-processor.cpp
index ab24215..a86a965 100644
--- a/tests/test-conf-file-processor.cpp
+++ b/tests/test-conf-file-processor.cpp
@@ -195,6 +195,12 @@
return m_logFileName;
}
+ void
+ commentOut(const std::string& key, std::string& config)
+ {
+ boost::replace_all(config, key, ";" + key);
+ }
+
public:
shared_ptr<ndn::DummyFace> face;
Nlsr nlsr;
@@ -364,38 +370,75 @@
BOOST_CHECK_EQUAL(conf.getCorTheta(), 1.45);
}
-BOOST_AUTO_TEST_CASE(DefaultValues)
+BOOST_AUTO_TEST_CASE(DefaultValuesGeneral)
{
- // Missing adj-lsa-build-interval
- const std::string SECTION_NEIGHBORS_DEFAULT_VALUES =
- "neighbors\n"
- "{\n"
- " hello-retries 3\n"
- " hello-timeout 1\n"
- " hello-interval 60\n\n"
- " first-hello-interval 6\n"
- " neighbor\n"
- " {\n"
- " name /ndn/memphis.edu/cs/castor\n"
- " face-uri udp4://localhost\n"
- " link-cost 20\n"
- " }\n\n"
- " neighbor\n"
- " {\n"
- " name /ndn/memphis.edu/cs/mira\n"
- " face-uri udp4://localhost\n"
- " link-cost 30\n"
- " }\n"
- "}\n\n";
+ std::string config = SECTION_GENERAL;
- processConfigurationString(SECTION_NEIGHBORS_DEFAULT_VALUES);
+ commentOut("lsa-refresh-time", config);
+ commentOut("lsa-interest-lifetime", config);
+ commentOut("router-dead-interval", config);
+
+ BOOST_CHECK_EQUAL(processConfigurationString(config), true);
ConfParameter& conf = nlsr.getConfParameter();
+ BOOST_CHECK_EQUAL(conf.getLsaRefreshTime(), static_cast<int32_t>(LSA_REFRESH_TIME_DEFAULT));
+ BOOST_CHECK_EQUAL(conf.getLsaInterestLifetime(),
+ static_cast<ndn::time::seconds>(LSA_INTEREST_LIFETIME_DEFAULT));
+ BOOST_CHECK_EQUAL(conf.getRouterDeadInterval(), (2*conf.getLsaRefreshTime()));
+}
+
+BOOST_AUTO_TEST_CASE(DefaultValuesNeighbors)
+{
+ std::string config = SECTION_NEIGHBORS;
+
+ commentOut("hello-retries", config);
+ commentOut("hello-timeout", config);
+ commentOut("hello-interval", config);
+ commentOut("first-hello-interval", config);
+ commentOut("adj-lsa-build-interval", config);
+
+ BOOST_CHECK_EQUAL(processConfigurationString(config), true);
+
+ ConfParameter& conf = nlsr.getConfParameter();
+
+ BOOST_CHECK_EQUAL(conf.getInterestRetryNumber(), static_cast<uint32_t>(HELLO_RETRIES_DEFAULT));
+ BOOST_CHECK_EQUAL(conf.getInterestResendTime(), static_cast<int32_t>(HELLO_TIMEOUT_DEFAULT));
+ BOOST_CHECK_EQUAL(conf.getInfoInterestInterval(), static_cast<int32_t>(HELLO_INTERVAL_DEFAULT));
+ BOOST_CHECK_EQUAL(conf.getFirstHelloInterval(),
+ static_cast<uint32_t>(FIRST_HELLO_INTERVAL_DEFAULT));
BOOST_CHECK_EQUAL(conf.getAdjLsaBuildInterval(),
static_cast<uint32_t>(ADJ_LSA_BUILD_INTERVAL_DEFAULT));
+}
- BOOST_CHECK_EQUAL(conf.getFirstHelloInterval(), 6);
+BOOST_AUTO_TEST_CASE(DefaultValuesFib)
+{
+ std::string config = SECTION_FIB;
+
+ commentOut("max-faces-per-prefix", config);
+ commentOut("routing-calc-interval", config);
+
+ BOOST_CHECK_EQUAL(processConfigurationString(config), true);
+
+ ConfParameter& conf = nlsr.getConfParameter();
+
+ BOOST_CHECK_EQUAL(conf.getMaxFacesPerPrefix(),
+ static_cast<uint32_t>(MAX_FACES_PER_PREFIX_DEFAULT));
+ BOOST_CHECK_EQUAL(conf.getRoutingCalcInterval(),
+ static_cast<uint32_t>(ROUTING_CALC_INTERVAL_DEFAULT));
+}
+
+BOOST_AUTO_TEST_CASE(DefaultValuesHyperbolic)
+{
+ std::string config = SECTION_HYPERBOLIC_ON;
+
+ commentOut("state", config);
+
+ BOOST_CHECK_EQUAL(processConfigurationString(config), true);
+
+ ConfParameter& conf = nlsr.getConfParameter();
+
+ BOOST_CHECK_EQUAL(conf.getHyperbolicState(), static_cast<int32_t>(HYPERBOLIC_STATE_DEFAULT));
}
BOOST_AUTO_TEST_CASE(OutOfRangeValue)