diff options
author | Mukund Sivaraman <muks@isc.org> | 2012-11-30 05:20:23 +0100 |
---|---|---|
committer | Mukund Sivaraman <muks@isc.org> | 2012-11-30 05:20:23 +0100 |
commit | c73280d2ebe15512cd4f09ddbb28c2f5030cd86f (patch) | |
tree | 86db3e336050d63d5c417ef59834fbcae63822d2 /src | |
parent | [2497] Add tests for AFSDB, DHCID and DNSKEY rrtypes (diff) | |
download | kea-c73280d2ebe15512cd4f09ddbb28c2f5030cd86f.tar.xz kea-c73280d2ebe15512cd4f09ddbb28c2f5030cd86f.zip |
[2497] Also check and stop at END_OF_LINE
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/dns/rdata.cc | 3 | ||||
-rw-r--r-- | src/lib/dns/rrparamregistry-placeholder.cc | 3 | ||||
-rw-r--r-- | src/lib/dns/tests/rdata_unittest.cc | 3 | ||||
-rw-r--r-- | src/lib/dns/tests/rrparamregistry_unittest.cc | 31 |
4 files changed, 27 insertions, 13 deletions
diff --git a/src/lib/dns/rdata.cc b/src/lib/dns/rdata.cc index 06472b0b30..40b6d79dbc 100644 --- a/src/lib/dns/rdata.cc +++ b/src/lib/dns/rdata.cc @@ -204,7 +204,8 @@ Generic::Generic(MasterLexer& lexer, const Name*, while (true) { const MasterLexer::Token& token = lexer.getNextToken(); - if (token.getType() == MasterLexer::Token::END_OF_FILE) { + if ((token.getType() == MasterLexer::Token::END_OF_FILE) || + (token.getType() == MasterLexer::Token::END_OF_LINE)) { break; } diff --git a/src/lib/dns/rrparamregistry-placeholder.cc b/src/lib/dns/rrparamregistry-placeholder.cc index e21444732b..e35b2f4664 100644 --- a/src/lib/dns/rrparamregistry-placeholder.cc +++ b/src/lib/dns/rrparamregistry-placeholder.cc @@ -53,7 +53,8 @@ AbstractRdataFactory::create(MasterLexer& lexer, const Name*, while (true) { const MasterLexer::Token& token = lexer.getNextToken(); - if (token.getType() == MasterLexer::Token::END_OF_FILE) { + if ((token.getType() == MasterLexer::Token::END_OF_FILE) || + (token.getType() == MasterLexer::Token::END_OF_LINE)) { break; } diff --git a/src/lib/dns/tests/rdata_unittest.cc b/src/lib/dns/tests/rdata_unittest.cc index c80fdd0a04..984289c773 100644 --- a/src/lib/dns/tests/rdata_unittest.cc +++ b/src/lib/dns/tests/rdata_unittest.cc @@ -59,7 +59,8 @@ RdataTest::rdataFactoryFromFile(const RRType& rrtype, const RRClass& rrclass, namespace test { -void dummyCallback(const string&, size_t, const string&) { +void +dummyCallback(const string&, size_t, const string&) { } RdataPtr diff --git a/src/lib/dns/tests/rrparamregistry_unittest.cc b/src/lib/dns/tests/rrparamregistry_unittest.cc index 7e683834b6..b749d74db7 100644 --- a/src/lib/dns/tests/rrparamregistry_unittest.cc +++ b/src/lib/dns/tests/rrparamregistry_unittest.cc @@ -157,16 +157,15 @@ TEST_F(RRParamRegistryTest, addRemoveFactory) { RRType(test_type_code))); } -void dummyCallback(const string&, size_t, const string&) { +void +dummyCallback(const string&, size_t, const string&) { } -TEST_F(RRParamRegistryTest, createFromLexer) { - // This test basically checks that the string version of - // AbstractRdataFactory::create() is called by the MasterLexer - // variant of create(). +RdataPtr +createRdataHelper(const std::string& str) { boost::scoped_ptr<AbstractRdataFactory> rdf(new TestRdataFactory); - std::stringstream ss("192.168.0.1"); + std::stringstream ss(str); MasterLexer lexer; lexer.pushSource(ss); @@ -175,10 +174,22 @@ TEST_F(RRParamRegistryTest, createFromLexer) { MasterLoaderCallbacks callbacks(callback, callback); Name origin("example.org."); - const RdataPtr rdata = rdf->create(lexer, &origin, - MasterLoader::MANY_ERRORS, - callbacks); - EXPECT_EQ(0, in::A("192.168.0.1").compare(*rdata)); + return (rdf->create(lexer, &origin, + MasterLoader::MANY_ERRORS, + callbacks)); +} + +TEST_F(RRParamRegistryTest, createFromLexer) { + // This test basically checks that the string version of + // AbstractRdataFactory::create() is called by the MasterLexer + // variant of create(). + EXPECT_EQ(0, in::A("192.168.0.1").compare( + *createRdataHelper("192.168.0.1"))); + + // This should parse only up to the end of line. Everything that + // comes afterwards is not parsed. + EXPECT_EQ(0, in::A("192.168.0.42").compare( + *createRdataHelper("192.168.0.42\na b c d e f"))); } } |