EXPECT_TRUE(configuration->getLoggingInfo().empty());
}
+// This test checks the data directory handling.
+TEST_F(CfgMgrTest, dataDir) {
+ // It is only in DHCPv6 systax so switch to IPv6.
+ CfgMgr::instance().setFamily(AF_INET6);
+
+ // Default.
+ EXPECT_TRUE(CfgMgr::instance().getDataDir().unspecified());
+ ConstElementPtr json = CfgMgr::instance().getCurrentCfg()->toElement();
+ ASSERT_TRUE(json);
+ ASSERT_EQ(Element::map, json->getType());
+ ConstElementPtr dhcp = json->get("Dhcp6");
+ ASSERT_TRUE(dhcp);
+ ASSERT_EQ(Element::map, dhcp->getType());
+ ConstElementPtr datadir = dhcp->get("data-directory");
+ EXPECT_FALSE(datadir);
+
+ // Set but not specified.
+ CfgMgr::instance().setDataDir("/tmp");
+ EXPECT_TRUE(CfgMgr::instance().getDataDir().unspecified());
+ EXPECT_EQ("/tmp", string(CfgMgr::instance().getDataDir()));
+ json = CfgMgr::instance().getCurrentCfg()->toElement();
+ ASSERT_TRUE(json);
+ ASSERT_EQ(Element::map, json->getType());
+ dhcp = json->get("Dhcp6");
+ ASSERT_TRUE(dhcp);
+ ASSERT_EQ(Element::map, dhcp->getType());
+ datadir = dhcp->get("data-directory");
+ EXPECT_FALSE(datadir);
+
+ // Set and specified.
+ CfgMgr::instance().setDataDir("/tmp", false);
+ EXPECT_FALSE(CfgMgr::instance().getDataDir().unspecified());
+ EXPECT_EQ("/tmp", string(CfgMgr::instance().getDataDir()));
+ json = CfgMgr::instance().getCurrentCfg()->toElement();
+ ASSERT_TRUE(json);
+ ASSERT_EQ(Element::map, json->getType());
+ dhcp = json->get("Dhcp6");
+ ASSERT_TRUE(dhcp);
+ ASSERT_EQ(Element::map, dhcp->getType());
+ datadir = dhcp->get("data-directory");
+ ASSERT_TRUE(datadir);
+ ASSERT_EQ(Element::string, datadir->getType());
+ EXPECT_EQ("/tmp", datadir->stringValue());
+
+ // Still IPv6 only.
+ CfgMgr::instance().setFamily(AF_INET);
+ EXPECT_FALSE(CfgMgr::instance().getDataDir().unspecified());
+ EXPECT_EQ("/tmp", string(CfgMgr::instance().getDataDir()));
+ json = CfgMgr::instance().getCurrentCfg()->toElement();
+ ASSERT_TRUE(json);
+ ASSERT_EQ(Element::map, json->getType());
+ dhcp = json->get("Dhcp4");
+ ASSERT_TRUE(dhcp);
+ ASSERT_EQ(Element::map, dhcp->getType());
+ datadir = dhcp->get("data-directory");
+ EXPECT_FALSE(datadir);
+}
+
// This test checks the D2ClientMgr wrapper methods.
TEST_F(CfgMgrTest, d2ClientConfig) {
// After CfgMgr construction, D2ClientMgr member should be initialized