Browse Source

[3082] Set E flag in Option4ClientFqdn unit tests by default.

Marcin Siodelski 11 years ago
parent
commit
4fbb85cb99
1 changed files with 63 additions and 35 deletions
  1. 63 35
      src/lib/dhcp/tests/option4_client_fqdn_unittest.cc

+ 63 - 35
src/lib/dhcp/tests/option4_client_fqdn_unittest.cc

@@ -40,7 +40,7 @@ TEST(Option4ClientFqdnTest, constructEmptyName) {
     // Create an instance of the source option.
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_S,
+        option.reset(new Option4ClientFqdn(FLAG_S | FLAG_E,
                                            Option4ClientFqdn::RCODE_SERVER(),
                                            "",
                                            Option4ClientFqdn::PARTIAL))
@@ -49,18 +49,19 @@ TEST(Option4ClientFqdnTest, constructEmptyName) {
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_S));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_TRUE(option->getDomainName().empty());
     EXPECT_EQ(Option4ClientFqdn::PARTIAL, option->getDomainNameType());
 
     // Constructor should not accept empty fully qualified domain name.
-    EXPECT_THROW(Option4ClientFqdn(Option4ClientFqdn::FLAG_S,
+    EXPECT_THROW(Option4ClientFqdn(FLAG_S | FLAG_E,
                                    Option4ClientFqdn::RCODE_CLIENT(),
                                    "",
                                    Option4ClientFqdn::FULL),
                  InvalidOption4ClientFqdnDomainName);
     // This check is similar to previous one, but using domain-name comprising
     // a single space character. This should be treated as empty domain-name.
-    EXPECT_THROW(Option4ClientFqdn(Option4ClientFqdn::FLAG_S,
+    EXPECT_THROW(Option4ClientFqdn(FLAG_S | FLAG_E,
                                    Option4ClientFqdn::RCODE_CLIENT(),
                                    " ",
                                    Option4ClientFqdn::FULL),
@@ -68,11 +69,12 @@ TEST(Option4ClientFqdnTest, constructEmptyName) {
 
     // Try different constructor.
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_O,
+        option.reset(new Option4ClientFqdn(FLAG_O | FLAG_E,
                                            Option4ClientFqdn::RCODE_SERVER()))
     );
     ASSERT_TRUE(option);
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_O));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_S));
     EXPECT_TRUE(option->getDomainName().empty());
@@ -86,7 +88,7 @@ TEST(Option4ClientFqdnTest, copyConstruct) {
     // Create an instance of the source option.
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_S,
+        option.reset(new Option4ClientFqdn(FLAG_S | FLAG_E,
                                            Option4ClientFqdn::RCODE_SERVER(),
                                            "myhost.example.com",
                                            Option4ClientFqdn::FULL))
@@ -107,6 +109,7 @@ TEST(Option4ClientFqdnTest, copyConstruct) {
 
     // Verify that all parameters have been copied to the target object.
     EXPECT_TRUE(option_copy->getFlag(Option4ClientFqdn::FLAG_S));
+    EXPECT_TRUE(option_copy->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_FALSE(option_copy->getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_FALSE(option_copy->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_EQ("myhost.example.com.", option_copy->getDomainName());
@@ -117,7 +120,7 @@ TEST(Option4ClientFqdnTest, copyConstruct) {
 
     // Create an option with different parameters.
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_O,
+        option.reset(new Option4ClientFqdn(FLAG_O | FLAG_E,
                                            Option4ClientFqdn::RCODE_SERVER(),
                                            "example",
                                            Option4ClientFqdn::PARTIAL))
@@ -133,6 +136,7 @@ TEST(Option4ClientFqdnTest, copyConstruct) {
     option.reset();
 
     EXPECT_FALSE(option_copy->getFlag(Option4ClientFqdn::FLAG_S));
+    EXPECT_TRUE(option_copy->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_TRUE(option_copy->getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_FALSE(option_copy->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_EQ("example", option_copy->getDomainName());
@@ -142,7 +146,7 @@ TEST(Option4ClientFqdnTest, copyConstruct) {
 // This test verifies that the option in the on-wire format is parsed correctly.
 TEST(Option4ClientFqdnTest, constructFromWire) {
     const uint8_t in_data[] = {
-        FLAG_S,                              // flags
+        FLAG_S | FLAG_E,                     // flags
         0,                                   // RCODE1
         0,                                   // RCODE2
         6, 109, 121, 104, 111, 115, 116,     // myhost.
@@ -160,6 +164,7 @@ TEST(Option4ClientFqdnTest, constructFromWire) {
     ASSERT_TRUE(option);
 
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_S));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_EQ("myhost.example.com.", option->getDomainName());
@@ -185,7 +190,7 @@ TEST(Option4ClientFqdnTest, constructFromWireTruncated) {
 // domain-name is parsed correctly.
 TEST(Option4ClientFqdnTest, constructFromWirePartial) {
     const uint8_t in_data[] = {
-        FLAG_N,                              // flags
+        FLAG_N | FLAG_E,                     // flags
         255,                                 // RCODE1
         255,                                 // RCODE2
         6, 109, 121, 104, 111, 115, 116      // myhost
@@ -201,6 +206,7 @@ TEST(Option4ClientFqdnTest, constructFromWirePartial) {
     ASSERT_TRUE(option);
 
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_S));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_EQ("myhost", option->getDomainName());
@@ -242,12 +248,12 @@ TEST(Option4ClientFqdnTest, assignment) {
     // assignment test. If these asserts do not fail, we can create options
     // for the assignment test, do not surround them with asserts and be sure
     // they will not throw.
-    ASSERT_NO_THROW(Option4ClientFqdn(Option4ClientFqdn::FLAG_S,
+    ASSERT_NO_THROW(Option4ClientFqdn(FLAG_S | FLAG_E,
                                       Option4ClientFqdn::RCODE_SERVER(),
                                       "myhost.example.com",
                                       Option4ClientFqdn::FULL));
 
-    ASSERT_NO_THROW(Option4ClientFqdn(Option4ClientFqdn::FLAG_N,
+    ASSERT_NO_THROW(Option4ClientFqdn(FLAG_N | FLAG_E,
                                       Option4ClientFqdn::RCODE_SERVER(),
                                       "myhost",
                                       Option4ClientFqdn::PARTIAL));
@@ -255,26 +261,28 @@ TEST(Option4ClientFqdnTest, assignment) {
     // Create options with the same parameters as tested above.
 
     // Create first option.
-    Option4ClientFqdn option(Option4ClientFqdn::FLAG_S,
+    Option4ClientFqdn option(FLAG_S | FLAG_E,
                              Option4ClientFqdn::RCODE_SERVER(),
                              "myhost.example.com",
                              Option4ClientFqdn::FULL);
 
     // Verify that the values have been set correctly.
     ASSERT_TRUE(option.getFlag(Option4ClientFqdn::FLAG_S));
+    ASSERT_TRUE(option.getFlag(Option4ClientFqdn::FLAG_E));
     ASSERT_FALSE(option.getFlag(Option4ClientFqdn::FLAG_O));
     ASSERT_FALSE(option.getFlag(Option4ClientFqdn::FLAG_N));
     ASSERT_EQ("myhost.example.com.", option.getDomainName());
     ASSERT_EQ(Option4ClientFqdn::FULL, option.getDomainNameType());
 
     // Create a second option.
-    Option4ClientFqdn option2(Option4ClientFqdn::FLAG_N,
+    Option4ClientFqdn option2(FLAG_N | FLAG_E,
                               Option4ClientFqdn::RCODE_SERVER(),
                               "myhost",
                               Option4ClientFqdn::PARTIAL);
 
     // Verify tha the values have been set correctly.
     ASSERT_FALSE(option2.getFlag(Option4ClientFqdn::FLAG_S));
+    ASSERT_TRUE(option2.getFlag(Option4ClientFqdn::FLAG_E));
     ASSERT_FALSE(option2.getFlag(Option4ClientFqdn::FLAG_O));
     ASSERT_TRUE(option2.getFlag(Option4ClientFqdn::FLAG_N));
     ASSERT_EQ("myhost", option2.getDomainName());
@@ -286,6 +294,7 @@ TEST(Option4ClientFqdnTest, assignment) {
 
     // Both options should now have the same values.
     EXPECT_TRUE(option2.getFlag(Option4ClientFqdn::FLAG_S));
+    EXPECT_TRUE(option2.getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_FALSE(option2.getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_FALSE(option2.getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_EQ(option.getDomainName(), option2.getDomainName());
@@ -340,11 +349,11 @@ TEST(Option4ClientFqdnTest, constructInvalidName) {
     // First, check that constructor does not throw when valid domain name
     // is specified. That way we eliminate the possibility that constructor
     // always throws exception.
-    ASSERT_NO_THROW(Option4ClientFqdn(0, Option4ClientFqdn::RCODE_CLIENT(),
+    ASSERT_NO_THROW(Option4ClientFqdn(FLAG_E, Option4ClientFqdn::RCODE_CLIENT(),
                                       "myhost.example.com"));
 
     // Specify invalid domain name and expect that exception is thrown.
-    EXPECT_THROW(Option4ClientFqdn(0, Option4ClientFqdn::RCODE_CLIENT(),
+    EXPECT_THROW(Option4ClientFqdn(FLAG_E, Option4ClientFqdn::RCODE_CLIENT(),
                                    "my...host.example.com"),
                  InvalidOption4ClientFqdnDomainName);
 }
@@ -354,7 +363,8 @@ TEST(Option4ClientFqdnTest, constructInvalidName) {
 TEST(Option4ClientFqdnTest, getFlag) {
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(0, Option4ClientFqdn::RCODE_CLIENT(),
+        option.reset(new Option4ClientFqdn(FLAG_E,
+                                           Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost.example.com"))
     );
     ASSERT_TRUE(option);
@@ -372,7 +382,8 @@ TEST(Option4ClientFqdnTest, setFlag) {
     // Create option instance. Check that constructor doesn't throw.
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(0, Option4ClientFqdn::RCODE_CLIENT(),
+        option.reset(new Option4ClientFqdn(0,
+                                           Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost.example.com"))
     );
     ASSERT_TRUE(option);
@@ -381,6 +392,11 @@ TEST(Option4ClientFqdnTest, setFlag) {
     ASSERT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     ASSERT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_S));
     ASSERT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_O));
+    ASSERT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_E));
+
+    // Set E = 1
+    ASSERT_NO_THROW(option->setFlag(Option4ClientFqdn::FLAG_E, true));
+    ASSERT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
 
     // Set N = 1
     ASSERT_NO_THROW(option->setFlag(Option4ClientFqdn::FLAG_N, true));
@@ -395,6 +411,10 @@ TEST(Option4ClientFqdnTest, setFlag) {
     ASSERT_THROW(option->setFlag(Option4ClientFqdn::FLAG_S, true),
                  InvalidOption4ClientFqdnFlags);
 
+    // Set E = 0
+    ASSERT_NO_THROW(option->setFlag(Option4ClientFqdn::FLAG_N, false));
+    ASSERT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
+
     // Set N = 0
     ASSERT_NO_THROW(option->setFlag(Option4ClientFqdn::FLAG_N, false));
     ASSERT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
@@ -418,7 +438,7 @@ TEST(Option4ClientFqdnTest, setFlag) {
                                  true),
                  InvalidOption4ClientFqdnFlags);
 
-    flags = 0x14;
+    flags = 0x18;
     ASSERT_THROW(option->setFlag(static_cast<Option4ClientFqdn::Flag>(flags),
                                  true),
                  InvalidOption4ClientFqdnFlags);
@@ -429,8 +449,7 @@ TEST(Option4ClientFqdnTest, setFlag) {
 TEST(Option4ClientFqdnTest, resetFlags) {
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_S |
-                                           Option4ClientFqdn::FLAG_O,
+        option.reset(new Option4ClientFqdn(FLAG_S | FLAG_O | FLAG_E,
                                            Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost.example.com",
                                            Option4ClientFqdn::FULL))
@@ -441,6 +460,7 @@ TEST(Option4ClientFqdnTest, resetFlags) {
     ASSERT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_S));
     ASSERT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_O));
     ASSERT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
+    ASSERT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
 
     option->resetFlags();
 
@@ -448,6 +468,7 @@ TEST(Option4ClientFqdnTest, resetFlags) {
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_S));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
+    EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_E));
 }
 
 // This test verifies that current domain-name can be replaced with a new
@@ -455,7 +476,7 @@ TEST(Option4ClientFqdnTest, resetFlags) {
 TEST(Option4ClientFqdnTest, setDomainName) {
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_S,
+        option.reset(new Option4ClientFqdn(FLAG_S | FLAG_E,
                                            Option4ClientFqdn::RCODE_SERVER(),
                                            "myhost.example.com",
                                            Option4ClientFqdn::FULL))
@@ -491,7 +512,7 @@ TEST(Option4ClientFqdnTest, setDomainName) {
 TEST(Option4ClientFqdnTest, resetDomainName) {
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_S,
+        option.reset(new Option4ClientFqdn(FLAG_S | FLAG_E,
                                            Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost.example.com",
                                            Option4ClientFqdn::FULL))
@@ -508,7 +529,7 @@ TEST(Option4ClientFqdnTest, resetDomainName) {
 // This test verifies on-wire format of the option is correctly created.
 TEST(Option4ClientFqdnTest, pack) {
     // Create option instance. Check that constructor doesn't throw.
-    const uint8_t flags = Option4ClientFqdn::FLAG_S;
+    const uint8_t flags = FLAG_S | FLAG_E;
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
         option.reset(new Option4ClientFqdn(flags,
@@ -524,7 +545,7 @@ TEST(Option4ClientFqdnTest, pack) {
     // Prepare reference data.
     const uint8_t ref_data[] = {
         81, 23,                              // header
-        FLAG_S,                              // flags
+        FLAG_S | FLAG_E,                     // flags
         0,                                   // RCODE1
         0,                                   // RCODE2
         6, 109, 121, 104, 111, 115, 116,     // myhost.
@@ -543,7 +564,7 @@ TEST(Option4ClientFqdnTest, pack) {
 // is correctly created.
 TEST(Option4ClientFqdnTest, packPartial) {
     // Create option instance. Check that constructor doesn't throw.
-    const uint8_t flags = Option4ClientFqdn::FLAG_S;
+    const uint8_t flags = FLAG_S | FLAG_E;
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
         option.reset(new Option4ClientFqdn(flags,
@@ -560,7 +581,7 @@ TEST(Option4ClientFqdnTest, packPartial) {
     // Prepare reference data.
     const uint8_t ref_data[] = {
         81, 10,                              // header
-        FLAG_S,                              // flags
+        FLAG_S | FLAG_E,                     // flags
         0,                                   // RCODE1
         0,                                   // RCODE2
         6, 109, 121, 104, 111, 115, 116      // myhost
@@ -579,7 +600,7 @@ TEST(Option4ClientFqdnTest, unpack) {
     // Create option instance. Check that constructor doesn't throw.
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_O,
+        option.reset(new Option4ClientFqdn(FLAG_O | FLAG_E,
                                            Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost",
                                            Option4ClientFqdn::PARTIAL))
@@ -591,11 +612,12 @@ TEST(Option4ClientFqdnTest, unpack) {
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_S));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_O));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_EQ("myhost", option->getDomainName());
     EXPECT_EQ(Option4ClientFqdn::PARTIAL, option->getDomainNameType());
 
     const uint8_t in_data[] = {
-        FLAG_S,                              // flags
+        FLAG_S | FLAG_E,                     // flags
         0,                                   // RCODE1
         0,                                   // RCODE2
         6, 109, 121, 104, 111, 115, 116,     // myhost.
@@ -612,6 +634,7 @@ TEST(Option4ClientFqdnTest, unpack) {
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_S));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_O));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_EQ("myhost.example.com.", option->getDomainName());
     EXPECT_EQ(Option4ClientFqdn::FULL, option->getDomainNameType());
 }
@@ -622,7 +645,7 @@ TEST(Option4ClientFqdnTest, unpackPartial) {
     // Create option instance. Check that constructor doesn't throw.
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_O,
+        option.reset(new Option4ClientFqdn(FLAG_O | FLAG_E,
                                            Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost.example.com"))
     );
@@ -633,11 +656,12 @@ TEST(Option4ClientFqdnTest, unpackPartial) {
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_S));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_O));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_EQ("myhost.example.com.", option->getDomainName());
     EXPECT_EQ(Option4ClientFqdn::FULL, option->getDomainNameType());
 
     const uint8_t in_data[] = {
-        FLAG_S,                              // flags
+        FLAG_S | FLAG_E,                     // flags
         0,                                   // RCODE1
         0,                                   // RCODE2
         6, 109, 121, 104, 111, 115, 116      // myhost
@@ -650,6 +674,7 @@ TEST(Option4ClientFqdnTest, unpackPartial) {
 
     // Check that new values are correct.
     EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_S));
+    EXPECT_TRUE(option->getFlag(Option4ClientFqdn::FLAG_E));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_N));
     EXPECT_FALSE(option->getFlag(Option4ClientFqdn::FLAG_O));
     EXPECT_EQ("myhost", option->getDomainName());
@@ -661,7 +686,7 @@ TEST(Option4ClientFqdnTest, unpackPartial) {
 TEST(Option4ClientFqdnTest, unpackTruncated) {
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(Option4ClientFqdn::FLAG_O,
+        option.reset(new Option4ClientFqdn(FLAG_O | FLAG_E,
                                            Option4ClientFqdn::RCODE_CLIENT()))
     );
     ASSERT_TRUE(option);
@@ -675,7 +700,7 @@ TEST(Option4ClientFqdnTest, unpackTruncated) {
 // toText method is correctly formatted.
 TEST(Option4ClientFqdnTest, toText) {
     // Create option instance. Check that constructor doesn't throw.
-    uint8_t flags = Option4ClientFqdn::FLAG_N | Option4ClientFqdn::FLAG_O;
+    uint8_t flags = FLAG_N | FLAG_O | FLAG_E;
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
         option.reset(new Option4ClientFqdn(flags,
@@ -690,7 +715,7 @@ TEST(Option4ClientFqdnTest, toText) {
         "  type=81(CLIENT_FQDN)\n"
         "  flags:\n"
         "    N=1\n"
-        "    E=0\n"
+        "    E=1\n"
         "    O=1\n"
         "    S=0\n"
         "  domain-name='myhost.example.com.' (full)\n";
@@ -725,7 +750,8 @@ TEST(Option4ClientFqdnTest, len) {
     // Create option instance. Check that constructor doesn't throw.
     boost::scoped_ptr<Option4ClientFqdn> option;
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(0, Option4ClientFqdn::RCODE_CLIENT(),
+        option.reset(new Option4ClientFqdn(FLAG_E,
+                                           Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost.example.com"))
     );
     ASSERT_TRUE(option);
@@ -738,14 +764,16 @@ TEST(Option4ClientFqdnTest, len) {
     // Let's check that the size will change when domain name of a different
     // size is used.
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(0, Option4ClientFqdn::RCODE_CLIENT(),
+        option.reset(new Option4ClientFqdn(FLAG_E,
+                                           Option4ClientFqdn::RCODE_CLIENT(),
                                            "example.com"))
     );
     ASSERT_TRUE(option);
     EXPECT_EQ(18, option->len());
 
     ASSERT_NO_THROW(
-        option.reset(new Option4ClientFqdn(0, Option4ClientFqdn::RCODE_CLIENT(),
+        option.reset(new Option4ClientFqdn(FLAG_E,
+                                           Option4ClientFqdn::RCODE_CLIENT(),
                                            "myhost",
                                            Option4ClientFqdn::PARTIAL))
     );