BIND 10 trac2387, updated. c70bba06b9157645d6493b16ef0ee414277ce7b1 [2387] Unify NSEC3PARAM string and lexer constructor tests
BIND 10 source code commits
bind10-changes at lists.isc.org
Thu Mar 28 02:36:42 UTC 2013
The branch, trac2387 has been updated
via c70bba06b9157645d6493b16ef0ee414277ce7b1 (commit)
via ad6d16107655d744062af1e0570abc2023ee1ee2 (commit)
from b5d7336d2353cd552c2b253a358f612b54b56e54 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c70bba06b9157645d6493b16ef0ee414277ce7b1
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu Mar 28 07:58:09 2013 +0530
[2387] Unify NSEC3PARAM string and lexer constructor tests
commit ad6d16107655d744062af1e0570abc2023ee1ee2
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu Mar 28 07:38:38 2013 +0530
[2387] Remove some redundant variables that shadow the member variable
-----------------------------------------------------------------------
Summary of changes:
src/lib/dns/tests/rdata_nsec3_unittest.cc | 2 -
src/lib/dns/tests/rdata_nsec3param_unittest.cc | 121 ++++++++++++------------
2 files changed, 61 insertions(+), 62 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/dns/tests/rdata_nsec3_unittest.cc b/src/lib/dns/tests/rdata_nsec3_unittest.cc
index 959ae73..c4817eb 100644
--- a/src/lib/dns/tests/rdata_nsec3_unittest.cc
+++ b/src/lib/dns/tests/rdata_nsec3_unittest.cc
@@ -167,7 +167,6 @@ TEST_F(Rdata_NSEC3_Test, createFromWire) {
}
TEST_F(Rdata_NSEC3_Test, createFromLexer) {
- const generic::NSEC3 rdata_nsec3(nsec3_txt);
EXPECT_EQ(0, rdata_nsec3.compare(
*test::createRdataUsingLexer(RRType::NSEC3(), RRClass::IN(),
nsec3_txt)));
@@ -180,7 +179,6 @@ TEST_F(Rdata_NSEC3_Test, createFromLexer) {
}
TEST_F(Rdata_NSEC3_Test, assign) {
- generic::NSEC3 rdata_nsec3(nsec3_txt);
generic::NSEC3 other_nsec3 = rdata_nsec3;
EXPECT_EQ(0, rdata_nsec3.compare(other_nsec3));
}
diff --git a/src/lib/dns/tests/rdata_nsec3param_unittest.cc b/src/lib/dns/tests/rdata_nsec3param_unittest.cc
index 79e255a..9752a3c 100644
--- a/src/lib/dns/tests/rdata_nsec3param_unittest.cc
+++ b/src/lib/dns/tests/rdata_nsec3param_unittest.cc
@@ -40,27 +40,72 @@ using namespace isc::dns::rdata;
namespace {
class Rdata_NSEC3PARAM_Test : public RdataTest {
-public:
+protected:
Rdata_NSEC3PARAM_Test() :
nsec3param_txt("1 1 1 D399EAAB"),
- nsec3param_nosalt_txt("1 1 1 -")
+ nsec3param_nosalt_txt("1 1 1 -"),
+ rdata_nsec3param(nsec3param_txt)
{}
+
+ void checkFromText_None(const string& rdata_str) {
+ checkFromText<generic::NSEC3PARAM, isc::Exception, isc::Exception>(
+ rdata_str, rdata_nsec3param, false, false);
+ }
+
+ void checkFromText_InvalidText(const string& rdata_str) {
+ checkFromText<generic::NSEC3PARAM, InvalidRdataText, InvalidRdataText>(
+ rdata_str, rdata_nsec3param, true, true);
+ }
+
+ void checkFromText_BadValue(const string& rdata_str) {
+ checkFromText<generic::NSEC3PARAM, BadValue, BadValue>(
+ rdata_str, rdata_nsec3param, true, true);
+ }
+
+ void checkFromText_LexerError(const string& rdata_str) {
+ checkFromText
+ <generic::NSEC3PARAM, InvalidRdataText, MasterLexer::LexerError>(
+ rdata_str, rdata_nsec3param, true, true);
+ }
+
const string nsec3param_txt;
const string nsec3param_nosalt_txt;
+ const generic::NSEC3PARAM rdata_nsec3param;
};
TEST_F(Rdata_NSEC3PARAM_Test, fromText) {
- // With a salt
- EXPECT_EQ(1, generic::NSEC3PARAM(nsec3param_txt).getHashalg());
- EXPECT_EQ(1, generic::NSEC3PARAM(nsec3param_txt).getFlags());
- // (salt is checked in the toText test)
-
// Empty salt is okay.
EXPECT_EQ(0, generic::NSEC3PARAM(nsec3param_nosalt_txt).getSalt().size());
+
+ // Salt is missing.
+ checkFromText_LexerError("1 1 1");
+
+ // Salt has whitespace within. This only fails in the string
+ // constructor, as the lexer constructor stops reading at the end of
+ // its RDATA.
+ const generic::NSEC3PARAM rdata_nsec3param2("1 1 1 D399");
+ checkFromText<generic::NSEC3PARAM, InvalidRdataText, isc::Exception>(
+ "1 1 1 D399 EAAB", rdata_nsec3param2, true, false);
+
+ // Hash algorithm out of range.
+ checkFromText_InvalidText("256 1 1 D399EAAB");
+
+ // Flags out of range.
+ checkFromText_InvalidText("1 256 1 D399EAAB");
+
+ // Iterations out of range.
+ checkFromText_InvalidText("1 1 65536 D399EAAB");
+
+ // Bad base32 hex sequence
+ checkFromText_BadValue("1 1 256 D399EAABZOO");
+
+ // String instead of number
+ checkFromText_LexerError("foo 1 256 D399EAAB");
+ checkFromText_LexerError("1 foo 256 D399EAAB");
+ checkFromText_LexerError("1 1 foo D399EAAB");
}
TEST_F(Rdata_NSEC3PARAM_Test, toText) {
- const generic::NSEC3PARAM rdata_nsec3param(nsec3param_txt);
EXPECT_EQ(nsec3param_txt, rdata_nsec3param.toText());
// Garbage space at the end should be ok. RFC5155 only forbids
@@ -78,36 +123,7 @@ TEST_F(Rdata_NSEC3PARAM_Test, toText) {
EXPECT_NO_THROW(generic::NSEC3PARAM("1 1 65535 D399EAAB"));
}
-TEST_F(Rdata_NSEC3PARAM_Test, badText) {
- // Salt is missing.
- EXPECT_THROW(generic::NSEC3PARAM("1 1 1"), InvalidRdataText);
-
- // Salt has whitespace within.
- EXPECT_THROW(generic::NSEC3PARAM("1 1 1 D399 EAAB"), InvalidRdataText);
-
- // Hash algorithm out of range.
- EXPECT_THROW(generic::NSEC3PARAM("256 1 1 D399EAAB"), InvalidRdataText);
-
- // Flags out of range.
- EXPECT_THROW(generic::NSEC3PARAM("1 256 1 D399EAAB"), InvalidRdataText);
-
- // Iterations out of range.
- EXPECT_THROW(generic::NSEC3PARAM("1 1 65536 D399EAAB"), InvalidRdataText);
-
- // Bad base32 hex sequence
- EXPECT_THROW(generic::NSEC3PARAM("1 1 256 D399EAABZOO"), BadValue);
-
- // String instead of number
- EXPECT_THROW(generic::NSEC3PARAM("foo 1 256 D399EAAB"),
- InvalidRdataText);
- EXPECT_THROW(generic::NSEC3PARAM("1 foo 256 D399EAAB"),
- InvalidRdataText);
- EXPECT_THROW(generic::NSEC3PARAM("1 1 foo D399EAAB"),
- InvalidRdataText);
-}
-
TEST_F(Rdata_NSEC3PARAM_Test, createFromWire) {
- const generic::NSEC3PARAM rdata_nsec3param(nsec3param_txt);
EXPECT_EQ(0, rdata_nsec3param.compare(
*rdataFactoryFromFile(RRType::NSEC3PARAM(), RRClass::IN(),
"rdata_nsec3param_fromWire1")));
@@ -127,7 +143,6 @@ TEST_F(Rdata_NSEC3PARAM_Test, createFromWire) {
}
TEST_F(Rdata_NSEC3PARAM_Test, createFromLexer) {
- const generic::NSEC3PARAM rdata_nsec3param(nsec3param_txt);
EXPECT_EQ(0, rdata_nsec3param.compare(
*test::createRdataUsingLexer(RRType::NSEC3PARAM(), RRClass::IN(),
nsec3param_txt)));
@@ -137,30 +152,10 @@ TEST_F(Rdata_NSEC3PARAM_Test, createFromLexer) {
EXPECT_EQ(0, rdata_nosalt_nsec3param.compare(
*test::createRdataUsingLexer(RRType::NSEC3PARAM(), RRClass::IN(),
nsec3param_nosalt_txt)));
-
- // Exceptions cause NULL to be returned.
-
- // hash algorithm out of range
- EXPECT_FALSE(test::createRdataUsingLexer(RRType::NSEC3PARAM(),
- RRClass::IN(),
- "256 1 1 D399EAAB"));
- // flags out of range
- EXPECT_FALSE(test::createRdataUsingLexer(RRType::NSEC3PARAM(),
- RRClass::IN(),
- "1 256 1 D399EAAB"));
- // iterations out of range
- EXPECT_FALSE(test::createRdataUsingLexer(RRType::NSEC3PARAM(),
- RRClass::IN(),
- "1 1 65536 D399EAAB"));
- // space is not allowed in salt
- EXPECT_FALSE(test::createRdataUsingLexer(RRType::NSEC3PARAM(),
- RRClass::IN(),
- "1 1 1 D399 EAAB"));
}
TEST_F(Rdata_NSEC3PARAM_Test, toWireRenderer) {
renderer.skip(2);
- const generic::NSEC3PARAM rdata_nsec3param(nsec3param_txt);
rdata_nsec3param.toWire(renderer);
vector<unsigned char> data;
@@ -171,12 +166,18 @@ TEST_F(Rdata_NSEC3PARAM_Test, toWireRenderer) {
}
TEST_F(Rdata_NSEC3PARAM_Test, toWireBuffer) {
- const generic::NSEC3PARAM rdata_nsec3param(nsec3param_txt);
rdata_nsec3param.toWire(obuffer);
}
+TEST_F(Rdata_NSEC3PARAM_Test, getHashAlg) {
+ EXPECT_EQ(1, rdata_nsec3param.getHashalg());
+}
+
+TEST_F(Rdata_NSEC3PARAM_Test, getFlags) {
+ EXPECT_EQ(1, rdata_nsec3param.getFlags());
+}
+
TEST_F(Rdata_NSEC3PARAM_Test, assign) {
- generic::NSEC3PARAM rdata_nsec3param(nsec3param_txt);
generic::NSEC3PARAM other_nsec3param = rdata_nsec3param;
EXPECT_EQ(0, rdata_nsec3param.compare(other_nsec3param));
}
More information about the bind10-changes
mailing list