Commit c73280d2 authored by Mukund Sivaraman's avatar Mukund Sivaraman
Browse files

[2497] Also check and stop at END_OF_LINE

parent 1c4683dd
......@@ -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;
}
......
......@@ -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;
}
......
......@@ -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
......
......@@ -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")));
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment