Commit 45e97b85 authored by Michal 'vorner' Vaner's avatar Michal 'vorner' Vaner
Browse files

[2428] Test and fix error handling in $INCLUDE

parent 33fb59ee
......@@ -81,9 +81,7 @@ public:
std::string error;
if (!lexer_.pushSource(filename.c_str(), &error)) {
if (initialized_) {
// $INCLUDE file
reportError(lexer_.getSourceName(), lexer_.getSourceLine(),
error);
isc_throw(InternalException, error.c_str());
} else {
// Top-level file
reportError("", 0, error);
......@@ -116,7 +114,7 @@ public:
void doInclude() {
// First, get the filename to include
const MasterToken::StringRegion
filename(lexer_.getNextToken(MasterLexer::QSTRING).
filename(lexer_.getNextToken(MasterToken::QSTRING).
getStringRegion());
// TODO: Handle the case where there's Name after the
......
......@@ -282,6 +282,10 @@ struct ErrorCase {
// Check the unknown directive. The rest looks like ordinary RR,
// so we see the $ is actually special.
{ "$UNKNOWN 3600 IN A 192.0.2.1", "Unknown $ directive" },
{ "$INCLUDE", "Missing include path" },
{ "$INCLUDE /file/not/found", "Include file not found" },
{ "$INCLUDE /file/not/found and here goes bunch of garbage",
"Include file not found and garbage at the end of line" },
{ NULL, NULL }
};
......
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