From: Mukund Sivaraman Date: Mon, 27 Jan 2014 08:06:53 +0000 (+0530) Subject: [2000] Add appendPseudoRR() unittests X-Git-Tag: bind10-1.2.0beta1-release~36^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a001951886e545f2f0a299fccbeb7fb9388deccf;p=thirdparty%2Fkea.git [2000] Add appendPseudoRR() unittests --- diff --git a/src/lib/dns/tests/rdata_opt_unittest.cc b/src/lib/dns/tests/rdata_opt_unittest.cc index 6f703bf268..e5695ac328 100644 --- a/src/lib/dns/tests/rdata_opt_unittest.cc +++ b/src/lib/dns/tests/rdata_opt_unittest.cc @@ -104,9 +104,23 @@ TEST_F(Rdata_OPT_Test, compare) { isc::InvalidOperation); } -TEST_F(Rdata_OPT_Test, append) { - EXPECT_THROW(rdata_opt.toText(), - isc::InvalidOperation); +TEST_F(Rdata_OPT_Test, appendPseudoRR) { + generic::OPT rdata_opt; + + // Append empty option data + rdata_opt.appendPseudoRR(0x0042, NULL, 0); + + // Append simple option data + const uint8_t option_data[] = {'H', 'e', 'l', 'l', 'o'}; + rdata_opt.appendPseudoRR(0x0043, option_data, sizeof(option_data)); + + // Duplicate option codes are okay. + rdata_opt.appendPseudoRR(0x0042, option_data, sizeof(option_data)); + + // When option length may overflow RDLEN, append should throw. + const std::vector buffer((1 << 16) - 1); + EXPECT_THROW(rdata_opt.appendPseudoRR(0x0044, &buffer[0], buffer.size()), + isc::InvalidParameter); } TEST_F(Rdata_OPT_Test, getPseudoRRs) {