@@ -462,9 +462,13 @@ TEST(Option4ClientFqdnTest, constructFromWireInvalidFlags) {
462462 LenientOptionParsing lop (false );
463463 EXPECT_THROW (Option4ClientFqdn (in_buf.begin (), in_buf.end ()),
464464 InvalidOption4FqdnFlags);
465+ // Lenient parsing allows this but reset the N bit.
465466 Option::lenient_parsing_ = true ;
466- EXPECT_THROW (Option4ClientFqdn (in_buf.begin (), in_buf.end ()),
467- SkipThisOptionError);
467+ boost::scoped_ptr<Option4ClientFqdn> option;
468+ EXPECT_NO_THROW (option.reset (new Option4ClientFqdn (in_buf.begin (), in_buf.end ())));
469+ ASSERT_TRUE (option);
470+ EXPECT_TRUE (option->getFlag (Option4ClientFqdn::FLAG_S));
471+ EXPECT_FALSE (option->getFlag (Option4ClientFqdn::FLAG_N));
468472}
469473
470474// This test verifies that if invalid domain name is used the constructor
@@ -844,9 +848,11 @@ TEST(Option4ClientFqdnTest, unpack) {
844848 LenientOptionParsing lop (false );
845849 EXPECT_THROW (option->unpack (in_buf.begin (), in_buf.end ()),
846850 InvalidOption4FqdnFlags);
851+ // Lenient parsing allows bad flags but reset the N bit.
847852 Option::lenient_parsing_ = true ;
848- EXPECT_THROW (option->unpack (in_buf.begin (), in_buf.end ()),
849- SkipThisOptionError);
853+ ASSERT_NO_THROW (option->unpack (in_buf.begin (), in_buf.end ()));
854+ EXPECT_TRUE (option->getFlag (Option4ClientFqdn::FLAG_S));
855+ EXPECT_FALSE (option->getFlag (Option4ClientFqdn::FLAG_N));
850856}
851857
852858// This test verifies that on-wire option data holding partial domain name
0 commit comments