Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: third_party/protobuf/src/google/protobuf/wire_format_unittest.cc

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 1120 matching lines...) Expand 10 before | Expand all | Expand 10 after
1131 Utf8ValidationTest() {} 1131 Utf8ValidationTest() {}
1132 virtual ~Utf8ValidationTest() {} 1132 virtual ~Utf8ValidationTest() {}
1133 virtual void SetUp() { 1133 virtual void SetUp() {
1134 } 1134 }
1135 1135
1136 }; 1136 };
1137 1137
1138 TEST_F(Utf8ValidationTest, WriteInvalidUTF8String) { 1138 TEST_F(Utf8ValidationTest, WriteInvalidUTF8String) {
1139 string wire_buffer; 1139 string wire_buffer;
1140 protobuf_unittest::OneString input; 1140 protobuf_unittest::OneString input;
1141 vector<string> errors; 1141 std::vector<string> errors;
1142 { 1142 {
1143 ScopedMemoryLog log; 1143 ScopedMemoryLog log;
1144 WriteMessage(kInvalidUTF8String, &input, &wire_buffer); 1144 WriteMessage(kInvalidUTF8String, &input, &wire_buffer);
1145 errors = log.GetMessages(ERROR); 1145 errors = log.GetMessages(ERROR);
1146 } 1146 }
1147 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED 1147 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
1148 ASSERT_EQ(1, errors.size()); 1148 ASSERT_EQ(1, errors.size());
1149 EXPECT_TRUE(StartsWith(errors[0], 1149 EXPECT_TRUE(StartsWith(errors[0],
1150 "String field 'protobuf_unittest.OneString.data' " 1150 "String field 'protobuf_unittest.OneString.data' "
1151 "contains invalid UTF-8 data when " 1151 "contains invalid UTF-8 data when "
1152 "serializing a protocol buffer. Use the " 1152 "serializing a protocol buffer. Use the "
1153 "'bytes' type if you intend to send raw bytes.")); 1153 "'bytes' type if you intend to send raw bytes."));
1154 #else 1154 #else
1155 ASSERT_EQ(0, errors.size()); 1155 ASSERT_EQ(0, errors.size());
1156 #endif // GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED 1156 #endif // GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
1157 } 1157 }
1158 1158
1159 1159
1160 TEST_F(Utf8ValidationTest, ReadInvalidUTF8String) { 1160 TEST_F(Utf8ValidationTest, ReadInvalidUTF8String) {
1161 string wire_buffer; 1161 string wire_buffer;
1162 protobuf_unittest::OneString input; 1162 protobuf_unittest::OneString input;
1163 WriteMessage(kInvalidUTF8String, &input, &wire_buffer); 1163 WriteMessage(kInvalidUTF8String, &input, &wire_buffer);
1164 protobuf_unittest::OneString output; 1164 protobuf_unittest::OneString output;
1165 vector<string> errors; 1165 std::vector<string> errors;
1166 { 1166 {
1167 ScopedMemoryLog log; 1167 ScopedMemoryLog log;
1168 ReadMessage(wire_buffer, &output); 1168 ReadMessage(wire_buffer, &output);
1169 errors = log.GetMessages(ERROR); 1169 errors = log.GetMessages(ERROR);
1170 } 1170 }
1171 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED 1171 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
1172 ASSERT_EQ(1, errors.size()); 1172 ASSERT_EQ(1, errors.size());
1173 EXPECT_TRUE(StartsWith(errors[0], 1173 EXPECT_TRUE(StartsWith(errors[0],
1174 "String field 'protobuf_unittest.OneString.data' " 1174 "String field 'protobuf_unittest.OneString.data' "
1175 "contains invalid UTF-8 data when " 1175 "contains invalid UTF-8 data when "
1176 "parsing a protocol buffer. Use the " 1176 "parsing a protocol buffer. Use the "
1177 "'bytes' type if you intend to send raw bytes.")); 1177 "'bytes' type if you intend to send raw bytes."));
1178 1178
1179 #else 1179 #else
1180 ASSERT_EQ(0, errors.size()); 1180 ASSERT_EQ(0, errors.size());
1181 #endif // GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED 1181 #endif // GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
1182 } 1182 }
1183 1183
1184 1184
1185 TEST_F(Utf8ValidationTest, WriteValidUTF8String) { 1185 TEST_F(Utf8ValidationTest, WriteValidUTF8String) {
1186 string wire_buffer; 1186 string wire_buffer;
1187 protobuf_unittest::OneString input; 1187 protobuf_unittest::OneString input;
1188 vector<string> errors; 1188 std::vector<string> errors;
1189 { 1189 {
1190 ScopedMemoryLog log; 1190 ScopedMemoryLog log;
1191 WriteMessage(kValidUTF8String, &input, &wire_buffer); 1191 WriteMessage(kValidUTF8String, &input, &wire_buffer);
1192 errors = log.GetMessages(ERROR); 1192 errors = log.GetMessages(ERROR);
1193 } 1193 }
1194 ASSERT_EQ(0, errors.size()); 1194 ASSERT_EQ(0, errors.size());
1195 } 1195 }
1196 1196
1197 TEST_F(Utf8ValidationTest, ReadValidUTF8String) { 1197 TEST_F(Utf8ValidationTest, ReadValidUTF8String) {
1198 string wire_buffer; 1198 string wire_buffer;
1199 protobuf_unittest::OneString input; 1199 protobuf_unittest::OneString input;
1200 WriteMessage(kValidUTF8String, &input, &wire_buffer); 1200 WriteMessage(kValidUTF8String, &input, &wire_buffer);
1201 protobuf_unittest::OneString output; 1201 protobuf_unittest::OneString output;
1202 vector<string> errors; 1202 std::vector<string> errors;
1203 { 1203 {
1204 ScopedMemoryLog log; 1204 ScopedMemoryLog log;
1205 ReadMessage(wire_buffer, &output); 1205 ReadMessage(wire_buffer, &output);
1206 errors = log.GetMessages(ERROR); 1206 errors = log.GetMessages(ERROR);
1207 } 1207 }
1208 ASSERT_EQ(0, errors.size()); 1208 ASSERT_EQ(0, errors.size());
1209 EXPECT_EQ(input.data(), output.data()); 1209 EXPECT_EQ(input.data(), output.data());
1210 } 1210 }
1211 1211
1212 // Bytes: anything can pass as bytes, use invalid UTF-8 string to test 1212 // Bytes: anything can pass as bytes, use invalid UTF-8 string to test
1213 TEST_F(Utf8ValidationTest, WriteArbitraryBytes) { 1213 TEST_F(Utf8ValidationTest, WriteArbitraryBytes) {
1214 string wire_buffer; 1214 string wire_buffer;
1215 protobuf_unittest::OneBytes input; 1215 protobuf_unittest::OneBytes input;
1216 vector<string> errors; 1216 std::vector<string> errors;
1217 { 1217 {
1218 ScopedMemoryLog log; 1218 ScopedMemoryLog log;
1219 WriteMessage(kInvalidUTF8String, &input, &wire_buffer); 1219 WriteMessage(kInvalidUTF8String, &input, &wire_buffer);
1220 errors = log.GetMessages(ERROR); 1220 errors = log.GetMessages(ERROR);
1221 } 1221 }
1222 ASSERT_EQ(0, errors.size()); 1222 ASSERT_EQ(0, errors.size());
1223 } 1223 }
1224 1224
1225 TEST_F(Utf8ValidationTest, ReadArbitraryBytes) { 1225 TEST_F(Utf8ValidationTest, ReadArbitraryBytes) {
1226 string wire_buffer; 1226 string wire_buffer;
1227 protobuf_unittest::OneBytes input; 1227 protobuf_unittest::OneBytes input;
1228 WriteMessage(kInvalidUTF8String, &input, &wire_buffer); 1228 WriteMessage(kInvalidUTF8String, &input, &wire_buffer);
1229 protobuf_unittest::OneBytes output; 1229 protobuf_unittest::OneBytes output;
1230 vector<string> errors; 1230 std::vector<string> errors;
1231 { 1231 {
1232 ScopedMemoryLog log; 1232 ScopedMemoryLog log;
1233 ReadMessage(wire_buffer, &output); 1233 ReadMessage(wire_buffer, &output);
1234 errors = log.GetMessages(ERROR); 1234 errors = log.GetMessages(ERROR);
1235 } 1235 }
1236 ASSERT_EQ(0, errors.size()); 1236 ASSERT_EQ(0, errors.size());
1237 EXPECT_EQ(input.data(), output.data()); 1237 EXPECT_EQ(input.data(), output.data());
1238 } 1238 }
1239 1239
1240 TEST_F(Utf8ValidationTest, ParseRepeatedString) { 1240 TEST_F(Utf8ValidationTest, ParseRepeatedString) {
1241 protobuf_unittest::MoreBytes input; 1241 protobuf_unittest::MoreBytes input;
1242 input.add_data(kValidUTF8String); 1242 input.add_data(kValidUTF8String);
1243 input.add_data(kInvalidUTF8String); 1243 input.add_data(kInvalidUTF8String);
1244 input.add_data(kInvalidUTF8String); 1244 input.add_data(kInvalidUTF8String);
1245 string wire_buffer = input.SerializeAsString(); 1245 string wire_buffer = input.SerializeAsString();
1246 1246
1247 protobuf_unittest::MoreString output; 1247 protobuf_unittest::MoreString output;
1248 vector<string> errors; 1248 std::vector<string> errors;
1249 { 1249 {
1250 ScopedMemoryLog log; 1250 ScopedMemoryLog log;
1251 ReadMessage(wire_buffer, &output); 1251 ReadMessage(wire_buffer, &output);
1252 errors = log.GetMessages(ERROR); 1252 errors = log.GetMessages(ERROR);
1253 } 1253 }
1254 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED 1254 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
1255 ASSERT_EQ(2, errors.size()); 1255 ASSERT_EQ(2, errors.size());
1256 #else 1256 #else
1257 ASSERT_EQ(0, errors.size()); 1257 ASSERT_EQ(0, errors.size());
1258 #endif // GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED 1258 #endif // GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
1259 EXPECT_EQ(wire_buffer, output.SerializeAsString()); 1259 EXPECT_EQ(wire_buffer, output.SerializeAsString());
1260 } 1260 }
1261 1261
1262 // Test the old VerifyUTF8String() function, which may still be called by old 1262 // Test the old VerifyUTF8String() function, which may still be called by old
1263 // generated code. 1263 // generated code.
1264 TEST_F(Utf8ValidationTest, OldVerifyUTF8String) { 1264 TEST_F(Utf8ValidationTest, OldVerifyUTF8String) {
1265 string data(kInvalidUTF8String); 1265 string data(kInvalidUTF8String);
1266 1266
1267 vector<string> errors; 1267 std::vector<string> errors;
1268 { 1268 {
1269 ScopedMemoryLog log; 1269 ScopedMemoryLog log;
1270 WireFormat::VerifyUTF8String(data.data(), data.size(), 1270 WireFormat::VerifyUTF8String(data.data(), data.size(),
1271 WireFormat::SERIALIZE); 1271 WireFormat::SERIALIZE);
1272 errors = log.GetMessages(ERROR); 1272 errors = log.GetMessages(ERROR);
1273 } 1273 }
1274 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED 1274 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
1275 ASSERT_EQ(1, errors.size()); 1275 ASSERT_EQ(1, errors.size());
1276 EXPECT_TRUE(StartsWith(errors[0], 1276 EXPECT_TRUE(StartsWith(errors[0],
1277 "String field contains invalid UTF-8 data when " 1277 "String field contains invalid UTF-8 data when "
1278 "serializing a protocol buffer. Use the " 1278 "serializing a protocol buffer. Use the "
1279 "'bytes' type if you intend to send raw bytes.")); 1279 "'bytes' type if you intend to send raw bytes."));
1280 #else 1280 #else
1281 ASSERT_EQ(0, errors.size()); 1281 ASSERT_EQ(0, errors.size());
1282 #endif 1282 #endif
1283 } 1283 }
1284 1284
1285 1285
1286 } // namespace 1286 } // namespace
1287 } // namespace internal 1287 } // namespace internal
1288 } // namespace protobuf 1288 } // namespace protobuf
1289 } // namespace google 1289 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698