%code
{
#include <dhcp6/parser_context.h>
-
}
DHCP_DDNS "dhcp-ddns"
+ /// @todo: Implement proper parsing for those parameters in Dhcp6/dhcp-ddns/*.
+ /// This should be part of the #5043 ticket. Listing the keywords here for
+ /// completeness.
+
+ // These are tokens defined in Dhcp6/dhcp-ddns/*
+ // They're not
+ // ENABLE_UPDATES "enable-updates"
+ // SERVER_IP "server-ip"
+ // SENDER_IP "sender-ip"
+ // SENDER_PORT "sender-port"
+ // MAX_QUEUE_SIZE "max-queue-size"
+ // NCR_PROTOCOL "ncr-protocol"
+ // NCR_FORMAT "ncr-format"
+ // ALWAYS_INCLUDE_FQDN "always-include-fqdn"
+ // OVERRDIDE_NO_UPDATE "override-no-update"
+ // OVERRDIDE_CLIENT_UPDATE "override-client-update"
+ // REPLACE_CLIENT_NAME "replace-client-name"
+ // GENERATED_PREFIX "generated-prefix"
+ // QUALIFYING_SUFFIX "qualifying-suffix"
+
LOGGING "Logging"
LOGGERS "loggers"
OUTPUT_OPTIONS "output_options"
ElementPtr l(new ListElement(ctx.loc2pos(@1)));
ctx.stack_.back()->set("host-reservation-identifiers", l);
ctx.stack_.push_back(l);
- ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
+ ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
} COLON LSQUARE_BRACKET host_reservation_identifiers_list RSQUARE_BRACKET {
ctx.stack_.pop_back();
ctx.leave();
} COLON STRING {
ElementPtr lib(new StringElement($4, ctx.loc2pos(@4)));
ctx.stack_.back()->set("library", lib);
- ctx.leave();
+ ctx.leave();
};
parameters: PARAMETERS {
try {
Parser6Context ctx;
ConstElementPtr parsed = ctx.parseString(txt, parser_type);
- FAIL() << "Expected Dhcp6ParseError but nothing was raised";
+ FAIL() << "Expected Dhcp6ParseError but nothing was raised (expected: "
+ << msg << ")";
}
catch (const Dhcp6ParseError& ex) {
EXPECT_EQ(msg, ex.what());
// comments
testError("# nothing\n",
Parser6Context::PARSER_JSON,
- "<string>:2.1: syntax error, unexpected end of file, "
- "expecting {");
+ "<string>:2.1: syntax error, unexpected end of file");
testError(" #\n",
Parser6Context::PARSER_JSON,
- "<string>:2.1: syntax error, unexpected end of file, "
- "expecting {");
+ "<string>:2.1: syntax error, unexpected end of file");
testError("// nothing\n",
Parser6Context::PARSER_JSON,
- "<string>:2.1: syntax error, unexpected end of file, "
- "expecting {");
+ "<string>:2.1: syntax error, unexpected end of file");
testError("/* nothing */\n",
Parser6Context::PARSER_JSON,
- "<string>:2.1: syntax error, unexpected end of file, "
- "expecting {");
+ "<string>:2.1: syntax error, unexpected end of file");
testError("/* no\nthing */\n",
Parser6Context::PARSER_JSON,
- "<string>:3.1: syntax error, unexpected end of file, "
- "expecting {");
+ "<string>:3.1: syntax error, unexpected end of file");
testError("/* no\nthing */\n\n",
Parser6Context::PARSER_JSON,
- "<string>:4.1: syntax error, unexpected end of file, "
- "expecting {");
+ "<string>:4.1: syntax error, unexpected end of file");
testError("/* nothing\n",
Parser6Context::PARSER_JSON,
"Comment not closed. (/* in line 1");
// numbers
testError("123",
- Parser6Context::PARSER_JSON,
+ Parser6Context::PARSER_DHCP6,
"<string>:1.1-3: syntax error, unexpected integer, "
"expecting {");
testError("-456",
- Parser6Context::PARSER_JSON,
+ Parser6Context::PARSER_DHCP6,
"<string>:1.1-4: syntax error, unexpected integer, "
"expecting {");
testError("-0001",
- Parser6Context::PARSER_JSON,
+ Parser6Context::PARSER_DHCP6,
"<string>:1.1-5: syntax error, unexpected integer, "
"expecting {");
testError("1234567890123456789012345678901234567890",
"1234567890123456789012345678901234567890"
" to an integer.");
testError("-3.14e+0",
- Parser6Context::PARSER_JSON,
+ Parser6Context::PARSER_DHCP6,
"<string>:1.1-8: syntax error, unexpected floating point, "
"expecting {");
testError("1e50000",
// strings
testError("\"aabb\"",
- Parser6Context::PARSER_JSON,
+ Parser6Context::PARSER_DHCP6,
"<string>:1.1-6: syntax error, unexpected constant string, "
"expecting {");
testError("{ \"aabb\"err",
Parser6Context::PARSER_JSON,
"<string>:1.1-6: Invalid control in \"a\n\tb\"");
testError("\"a\\n\\tb\"",
- Parser6Context::PARSER_JSON,
+ Parser6Context::PARSER_DHCP6,
"<string>:1.1-8: syntax error, unexpected constant string, "
"expecting {");
testError("\"a\\x01b\"",
// want a map
testError("[]\n",
- Parser6Context::PARSER_JSON,
+ Parser6Context::PARSER_DHCP6,
"<string>:1.1: syntax error, unexpected [, "
"expecting {");
testError("[]\n",