Report a warning if the proto file doesn't have a syntax statement.
This commit is contained in:
parent
f157a5651c
commit
3eb55df6a4
@ -468,6 +468,10 @@ bool Parser::Parse(io::Tokenizer* input, FileDescriptorProto* file) {
|
||||
// Store the syntax into the file.
|
||||
if (file != NULL) file->set_syntax(syntax_identifier_);
|
||||
} else if (!stop_after_syntax_identifier_) {
|
||||
GOOGLE_LOG(WARNING) << "No syntax specified for the proto file. "
|
||||
<< "Please use 'syntax = \"proto2\";' or "
|
||||
<< "'syntax = \"proto3\";' to specify a syntax "
|
||||
<< "version. (Defaulted to proto2 syntax.)";
|
||||
syntax_identifier_ = "proto2";
|
||||
}
|
||||
|
||||
|
@ -216,6 +216,15 @@ TEST_F(ParserTest, StopAfterSyntaxIdentifierWithErrors) {
|
||||
EXPECT_EQ("1:9: Expected syntax identifier.\n", error_collector_.text_);
|
||||
}
|
||||
|
||||
TEST_F(ParserTest, WarnIfSyntaxIdentifierOmmitted) {
|
||||
SetupParser("message A {}");
|
||||
FileDescriptorProto file;
|
||||
CaptureTestStderr();
|
||||
EXPECT_TRUE(parser_->Parse(input_.get(), &file));
|
||||
EXPECT_TRUE(
|
||||
GetCapturedTestStderr().find("No syntax specified") != string::npos);
|
||||
}
|
||||
|
||||
// ===================================================================
|
||||
|
||||
typedef ParserTest ParseMessageTest;
|
||||
|
Loading…
Reference in New Issue
Block a user