summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMukund Sivaraman <muks@isc.org>2012-11-30 05:20:23 +0100
committerMukund Sivaraman <muks@isc.org>2012-11-30 05:20:23 +0100
commitc73280d2ebe15512cd4f09ddbb28c2f5030cd86f (patch)
tree86db3e336050d63d5c417ef59834fbcae63822d2 /src
parent[2497] Add tests for AFSDB, DHCID and DNSKEY rrtypes (diff)
downloadkea-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.cc3
-rw-r--r--src/lib/dns/rrparamregistry-placeholder.cc3
-rw-r--r--src/lib/dns/tests/rdata_unittest.cc3
-rw-r--r--src/lib/dns/tests/rrparamregistry_unittest.cc31
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")));
}
}