From: Mukund Sivaraman Date: Tue, 26 Mar 2013 14:13:09 +0000 (+0530) Subject: [2387] Unify string and lexer constructor tests X-Git-Tag: bind10-1.2.0beta1-release~481^2~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53e18a35628a7a595d0de637ae4a045e41fe6b64;p=thirdparty%2Fkea.git [2387] Unify string and lexer constructor tests --- diff --git a/src/lib/dns/tests/rdata_dnskey_unittest.cc b/src/lib/dns/tests/rdata_dnskey_unittest.cc index 80dbae1c5f..2b31066f3b 100644 --- a/src/lib/dns/tests/rdata_dnskey_unittest.cc +++ b/src/lib/dns/tests/rdata_dnskey_unittest.cc @@ -47,78 +47,74 @@ protected: "0BrN/9Bexjpiks3jRhZatEsXn3dTy47R09Uix5WcJt+xzqZ" "7+ysyLKOOedS39Z7SDmsn2eA0FKtQpwA6LXeG2w+jxmw3oA" "8lVUgEf/rzeC/bByBNsO70aEFTd"), - rdata_dnskey(dnskey_txt) + dnskey_txt2("257 3 5 YmluZDEwLmlzYy5vcmc="), + rdata_dnskey(dnskey_txt), + rdata_dnskey2(dnskey_txt2) {} const string dnskey_txt; + const string dnskey_txt2; const generic::DNSKEY rdata_dnskey; + const generic::DNSKEY rdata_dnskey2; }; TEST_F(Rdata_DNSKEY_Test, fromText) { EXPECT_EQ(dnskey_txt, rdata_dnskey.toText()); // Space in key data is OK - EXPECT_NO_THROW(generic::DNSKEY("257 3 5 YmluZDEw LmlzYy5vcmc=")); + checkFromText( + "257 3 5 YmluZDEw LmlzYy5vcmc=", rdata_dnskey2, false, false); // Delimited number in key data is OK - EXPECT_NO_THROW(generic::DNSKEY("257 3 5 YmluZDEwLmlzYy 5 vcmc=")); -} + checkFromText( + "257 3 5 YmluZDEwLmlzYy 5 vcmc=", rdata_dnskey2, false, false); -TEST_F(Rdata_DNSKEY_Test, assign) { - generic::DNSKEY rdata_dnskey2 = rdata_dnskey; - EXPECT_EQ(0, rdata_dnskey.compare(rdata_dnskey2)); -} + // Key data missing + checkFromText( + "257 3 5", rdata_dnskey2, true, true); -TEST_F(Rdata_DNSKEY_Test, badText) { - EXPECT_THROW(generic::DNSKEY("257 3 5"), - InvalidRdataText); - EXPECT_THROW(generic::DNSKEY("99999 3 5 BAAAAAAAAAAAD"), - InvalidRdataText); - EXPECT_THROW(generic::DNSKEY("257 300 5 BAAAAAAAAAAAD"), - InvalidRdataText); - EXPECT_THROW(generic::DNSKEY("257 3 500 BAAAAAAAAAAAD"), - InvalidRdataText); - EXPECT_THROW(generic::DNSKEY("257 3 5 BAAAAAAAAAAAD"), BadValue); + // Flags field out of range + checkFromText( + "65536 3 5 YmluZDEwLmlzYy5vcmc=", rdata_dnskey2, true, true); - // Key data too short for algorithm=1 - EXPECT_THROW(generic::DNSKEY("1 1 1 YQ=="), - InvalidRdataLength); + // Protocol field out of range + checkFromText( + "257 256 5 YmluZDEwLmlzYy5vcmc=", rdata_dnskey2, true, true); + + // Algorithm field out of range + checkFromText( + "257 3 256 YmluZDEwLmlzYy5vcmc=", rdata_dnskey2, true, true); - // Missing algorithm - EXPECT_THROW(generic::DNSKEY("257 3 YmFiYWJhYmE="), - InvalidRdataText); + // Missing algorithm field + checkFromText( + "257 3 YmluZDEwLmlzYy5vcmc=", rdata_dnskey2, true, true); + + // Invalid key data field (not Base64) + checkFromText( + "257 3 5 BAAAAAAAAAAAD", rdata_dnskey2, true, true); + + // Key data too short for algorithm=1 + checkFromText( + "1 1 1 YQ==", rdata_dnskey2, true, true); // String instead of number - EXPECT_THROW(generic::DNSKEY("foo 3 5 YmFiYWJhYmE="), - InvalidRdataText); - EXPECT_THROW(generic::DNSKEY("257 foo 5 YmFiYWJhYmE="), - InvalidRdataText); - EXPECT_THROW(generic::DNSKEY("257 3 foo YmFiYWJhYmE="), - InvalidRdataText); + checkFromText( + "foo 3 5 YmFiYWJhYmE=", rdata_dnskey2, true, true); + checkFromText( + "257 foo 5 YmFiYWJhYmE=", rdata_dnskey2, true, true); + checkFromText( + "257 3 foo YmFiYWJhYmE=", rdata_dnskey2, true, true); +} + +TEST_F(Rdata_DNSKEY_Test, assign) { + generic::DNSKEY rdata_dnskey2 = rdata_dnskey; + EXPECT_EQ(0, rdata_dnskey.compare(rdata_dnskey2)); } TEST_F(Rdata_DNSKEY_Test, createFromLexer) { EXPECT_EQ(0, rdata_dnskey.compare( *test::createRdataUsingLexer(RRType::DNSKEY(), RRClass::IN(), dnskey_txt))); - - // Exceptions cause NULL to be returned. - - // Key data missing - EXPECT_FALSE(test::createRdataUsingLexer(RRType::DNSKEY(), RRClass::IN(), - "257 3 5")); - // Bad flags - EXPECT_FALSE(test::createRdataUsingLexer(RRType::DNSKEY(), RRClass::IN(), - "65536 3 5 ABCDABCD")); - // Bad protocol - EXPECT_FALSE(test::createRdataUsingLexer(RRType::DNSKEY(), RRClass::IN(), - "1 256 1 ABCDABCD")); - // Bad algorithm - EXPECT_FALSE(test::createRdataUsingLexer(RRType::DNSKEY(), RRClass::IN(), - "1 1 256 ABCDABCD")); - // Key data too short for algorithm=1 - EXPECT_FALSE(test::createRdataUsingLexer(RRType::DNSKEY(), RRClass::IN(), - "1 1 1 YQ==")); } TEST_F(Rdata_DNSKEY_Test, toWireRenderer) {