|
@@ -229,6 +229,32 @@ TEST_F(ParserTest, WarnIfSyntaxIdentifierOmmitted) {
|
|
|
|
|
|
typedef ParserTest ParseMessageTest;
|
|
typedef ParserTest ParseMessageTest;
|
|
|
|
|
|
|
|
+TEST_F(ParseMessageTest, IgnoreBOM) {
|
|
|
|
+ char input[] = " message TestMessage {\n"
|
|
|
|
+ " required int32 foo = 1;\n"
|
|
|
|
+ "}\n";
|
|
|
|
+ // Set UTF-8 BOM.
|
|
|
|
+ input[0] = (char)0xEF;
|
|
|
|
+ input[1] = (char)0xBB;
|
|
|
|
+ input[2] = (char)0xBF;
|
|
|
|
+ ExpectParsesTo(input,
|
|
|
|
+ "message_type {"
|
|
|
|
+ " name: \"TestMessage\""
|
|
|
|
+ " field { name:\"foo\" label:LABEL_REQUIRED type:TYPE_INT32 number:1 }"
|
|
|
|
+ "}");
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+TEST_F(ParseMessageTest, BOMError) {
|
|
|
|
+ char input[] = " message TestMessage {\n"
|
|
|
|
+ " required int32 foo = 1;\n"
|
|
|
|
+ "}\n";
|
|
|
|
+ input[0] = (char)0xEF;
|
|
|
|
+ ExpectHasErrors(input,
|
|
|
|
+ "0:1: Proto file starts with 0xEF but not UTF-8 BOM. "
|
|
|
|
+ "Only UTF-8 is accepted for proto file.\n"
|
|
|
|
+ "0:0: Expected top-level statement (e.g. \"message\").\n");
|
|
|
|
+}
|
|
|
|
+
|
|
TEST_F(ParseMessageTest, SimpleMessage) {
|
|
TEST_F(ParseMessageTest, SimpleMessage) {
|
|
ExpectParsesTo(
|
|
ExpectParsesTo(
|
|
"message TestMessage {\n"
|
|
"message TestMessage {\n"
|