Browse Source

[5014] Added 2 unit tests about keywords

Francis Dupont 8 years ago
parent
commit
340bc94d22
3 changed files with 37 additions and 15 deletions
  1. 13 13
      src/bin/dhcp6/dhcp6.dox
  2. 2 2
      src/bin/dhcp6/parser_context.h
  3. 22 0
      src/bin/dhcp6/tests/parser_unittest.cc

+ 13 - 13
src/bin/dhcp6/dhcp6.dox

@@ -84,10 +84,10 @@ general, the following issues of the existing code were noted:
    having trailing commas:
    @code
       "option-data": [
-	{
-	    "code": 12,
-	    "data": "2001:db8:1:0:ff00::1"
-	},
+        {
+            "code": 12,
+            "data": "2001:db8:1:0:ff00::1"
+        },
       ]
    @endcode
    or having incorrect types, e.g. specifying timer values as strings.
@@ -295,16 +295,16 @@ isc::dhcp::Triplet<uint32_t>
 SubnetConfigParser::getParam(const std::string& name) {
     uint32_t value = 0;
     try {
-	// look for local value
-	 value = uint32_values_->getParam(name);
+        // look for local value
+         value = uint32_values_->getParam(name);
     } catch (const DhcpConfigError &) {
-	try {
-	    // no local, use global value
-	    value = global_context_->uint32_values_->getParam(name);
-	} catch (const DhcpConfigError &) {
-	    isc_throw(DhcpConfigError, "Mandatory parameter " << name
-		      << " missing (no global default and no subnet-"
-		      << "specific value)");
+        try {
+            // no local, use global value
+            value = global_context_->uint32_values_->getParam(name);
+        } catch (const DhcpConfigError &) {
+            isc_throw(DhcpConfigError, "Mandatory parameter " << name
+                      << " missing (no global default and no subnet-"
+                      << "specific value)");
 	}
     }
 

+ 2 - 2
src/bin/dhcp6/parser_context.h

@@ -120,8 +120,8 @@ public:
         POOLS,
         PD_POOLS,
         RESERVATIONS,
-	/// client-classes
-	CLIENT_CLASS,
+        /// client-classes
+        CLIENT_CLASS,
         /// Logging
         LOGGERS,
         /// loggers

+ 22 - 0
src/bin/dhcp6/tests/parser_unittest.cc

@@ -106,6 +106,28 @@ TEST(ParserTest, types) {
     testParser(txt, Parser6Context::PARSER_GENERIC_JSON);
 }
 
+TEST(ParserTest, keywordJSON) {
+    string txt = "{ \"name\": \"user\","
+                   "\"type\": \"password\","
+                   "\"user\": \"name\","
+                   "\"password\": \"type\" }";
+    testParser(txt, Parser6Context::PARSER_GENERIC_JSON);
+}
+
+TEST(ParserTest, keywordDhcp6) {
+     string txt = "{ \"Dhcp6\": { \"interfaces-config\": {"
+                  " \"interfaces\": [ \"type\", \"htype\" ] },\n"
+                  "\"preferred-lifetime\": 3000,\n"
+                  "\"rebind-timer\": 2000, \n"
+                  "\"renew-timer\": 1000, \n"
+                  "\"subnet6\": [ { "
+                  "    \"pools\": [ { \"pool\": \"2001:db8:1::/64\" } ],"
+                  "    \"subnet\": \"2001:db8:1::/48\", "
+                  "    \"interface\": \"test\" } ],\n"
+                   "\"valid-lifetime\": 4000 } }";
+     testParser2(txt, Parser6Context::PARSER_DHCP6);
+}
+
 TEST(ParserTest, bashComments) {
     string txt= "{ \"Dhcp6\": { \"interfaces-config\": {"
                 "  \"interfaces\": [ \"*\" ]"