|
|
|
@ -7415,30 +7415,33 @@ TEST_F(FeaturesTest, Proto2Features) { |
|
|
|
|
const FieldDescriptor* group = message->field(1); |
|
|
|
|
EXPECT_THAT(file->options(), EqualsProto("")); |
|
|
|
|
EXPECT_EQ(GetFeatures(file).GetExtension(pb::test).int_file_feature(), -2); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: CLOSED |
|
|
|
|
repeated_field_encoding: EXPANDED |
|
|
|
|
utf8_validation: NONE |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: LEGACY_BEST_EFFORT |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true })pb")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(field), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: CLOSED |
|
|
|
|
repeated_field_encoding: EXPANDED |
|
|
|
|
utf8_validation: NONE |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: LEGACY_BEST_EFFORT |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true })pb")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(group), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: CLOSED |
|
|
|
|
repeated_field_encoding: EXPANDED |
|
|
|
|
utf8_validation: NONE |
|
|
|
|
message_encoding: DELIMITED |
|
|
|
|
json_format: LEGACY_BEST_EFFORT |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: CLOSED |
|
|
|
|
repeated_field_encoding: EXPANDED |
|
|
|
|
utf8_validation: NONE |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: LEGACY_BEST_EFFORT |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true string_type: STRING })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(field), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: CLOSED |
|
|
|
|
repeated_field_encoding: EXPANDED |
|
|
|
|
utf8_validation: NONE |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: LEGACY_BEST_EFFORT |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true string_type: STRING })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(group), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: CLOSED |
|
|
|
|
repeated_field_encoding: EXPANDED |
|
|
|
|
utf8_validation: NONE |
|
|
|
|
message_encoding: DELIMITED |
|
|
|
|
json_format: LEGACY_BEST_EFFORT |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true string_type: STRING })pb")); |
|
|
|
|
EXPECT_TRUE(field->has_presence()); |
|
|
|
|
EXPECT_FALSE(field->requires_utf8_validation()); |
|
|
|
|
EXPECT_EQ( |
|
|
|
@ -7492,22 +7495,24 @@ TEST_F(FeaturesTest, Proto3Features) { |
|
|
|
|
const FieldDescriptor* field = message->field(0); |
|
|
|
|
EXPECT_THAT(file->options(), EqualsProto("")); |
|
|
|
|
EXPECT_EQ(GetFeatures(file).GetExtension(pb::test).int_file_feature(), -3); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(field), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(field), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
EXPECT_FALSE(field->has_presence()); |
|
|
|
|
EXPECT_FALSE(field->requires_utf8_validation()); |
|
|
|
|
EXPECT_EQ( |
|
|
|
@ -7646,7 +7651,7 @@ TEST_F(FeaturesTest, Edition2023Defaults) { |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false } |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING } |
|
|
|
|
)pb")); |
|
|
|
|
|
|
|
|
|
// Since pb::test is registered in the pool, it should end up with defaults in
|
|
|
|
@ -7674,7 +7679,7 @@ TEST_F(FeaturesBaseTest, DefaultEdition2023Defaults) { |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false } |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING } |
|
|
|
|
)pb")); |
|
|
|
|
EXPECT_FALSE(GetFeatures(file).HasExtension(pb::test)); |
|
|
|
|
} |
|
|
|
@ -7691,14 +7696,15 @@ TEST_F(FeaturesTest, ClearsOptions) { |
|
|
|
|
} |
|
|
|
|
)pb"); |
|
|
|
|
EXPECT_THAT(file->options(), EqualsProto("java_package: 'bar'")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, RestoresOptionsRoundTrip) { |
|
|
|
@ -8055,14 +8061,15 @@ TEST_F(FeaturesTest, NoOptions) { |
|
|
|
|
name: "foo.proto" syntax: "editions" edition: EDITION_2023 |
|
|
|
|
)pb"); |
|
|
|
|
EXPECT_EQ(&file->options(), &FileOptions::default_instance()); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, InvalidEdition) { |
|
|
|
@ -8084,14 +8091,15 @@ TEST_F(FeaturesTest, FileFeatures) { |
|
|
|
|
options { features { field_presence: IMPLICIT } } |
|
|
|
|
)pb"); |
|
|
|
|
EXPECT_THAT(file->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, FileFeaturesExtension) { |
|
|
|
@ -8159,14 +8167,15 @@ TEST_F(FeaturesTest, MessageFeaturesDefault) { |
|
|
|
|
)pb"); |
|
|
|
|
const Descriptor* message = file->message_type(0); |
|
|
|
|
EXPECT_THAT(message->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(message), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(message), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, MessageFeaturesInherit) { |
|
|
|
@ -8264,14 +8273,15 @@ TEST_F(FeaturesTest, FieldFeaturesDefault) { |
|
|
|
|
)pb"); |
|
|
|
|
const FieldDescriptor* field = file->message_type(0)->field(0); |
|
|
|
|
EXPECT_THAT(field->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(field), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(field), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, FieldFeaturesInherit) { |
|
|
|
@ -8652,14 +8662,15 @@ TEST_F(FeaturesTest, EnumFeaturesDefault) { |
|
|
|
|
)pb"); |
|
|
|
|
const EnumDescriptor* enm = file->enum_type(0); |
|
|
|
|
EXPECT_THAT(enm->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(enm), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(enm), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, EnumFeaturesInherit) { |
|
|
|
@ -8759,14 +8770,15 @@ TEST_F(FeaturesTest, EnumValueFeaturesDefault) { |
|
|
|
|
)pb"); |
|
|
|
|
const EnumValueDescriptor* value = file->enum_type(0)->value(0); |
|
|
|
|
EXPECT_THAT(value->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(value), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(value), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, EnumValueFeaturesInherit) { |
|
|
|
@ -8851,14 +8863,15 @@ TEST_F(FeaturesTest, OneofFeaturesDefault) { |
|
|
|
|
)pb"); |
|
|
|
|
const OneofDescriptor* oneof = file->message_type(0)->oneof_decl(0); |
|
|
|
|
EXPECT_THAT(oneof->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(oneof), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(oneof), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, OneofFeaturesInherit) { |
|
|
|
@ -8950,14 +8963,15 @@ TEST_F(FeaturesTest, ExtensionRangeFeaturesDefault) { |
|
|
|
|
const Descriptor::ExtensionRange* range = |
|
|
|
|
file->message_type(0)->extension_range(0); |
|
|
|
|
EXPECT_THAT(range->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(range), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(range), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, ExtensionRangeFeaturesInherit) { |
|
|
|
@ -9034,14 +9048,15 @@ TEST_F(FeaturesTest, ServiceFeaturesDefault) { |
|
|
|
|
)pb"); |
|
|
|
|
const ServiceDescriptor* service = file->service(0); |
|
|
|
|
EXPECT_THAT(service->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(service), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(service), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, ServiceFeaturesInherit) { |
|
|
|
@ -9100,14 +9115,15 @@ TEST_F(FeaturesTest, MethodFeaturesDefault) { |
|
|
|
|
)pb"); |
|
|
|
|
const MethodDescriptor* method = file->service(0)->method(0); |
|
|
|
|
EXPECT_THAT(method->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(method), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(method), EqualsProto(R"pb( |
|
|
|
|
field_presence: EXPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, MethodFeaturesInherit) { |
|
|
|
@ -9313,7 +9329,7 @@ TEST_F(FeaturesTest, EnumFeatureHelpers) { |
|
|
|
|
type_name: "FooOpen" |
|
|
|
|
options { |
|
|
|
|
features { |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true } |
|
|
|
|
[pb.cpp] { legacy_closed_enum: true string_type: STRING } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -9931,14 +9947,15 @@ TEST_F(FeaturesTest, UninterpretedOptions) { |
|
|
|
|
} |
|
|
|
|
)pb"); |
|
|
|
|
EXPECT_THAT(file->options(), EqualsProto("")); |
|
|
|
|
EXPECT_THAT(GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false })pb")); |
|
|
|
|
EXPECT_THAT( |
|
|
|
|
GetCoreFeatures(file), EqualsProto(R"pb( |
|
|
|
|
field_presence: IMPLICIT |
|
|
|
|
enum_type: OPEN |
|
|
|
|
repeated_field_encoding: PACKED |
|
|
|
|
utf8_validation: VERIFY |
|
|
|
|
message_encoding: LENGTH_PREFIXED |
|
|
|
|
json_format: ALLOW |
|
|
|
|
[pb.cpp] { legacy_closed_enum: false string_type: STRING })pb")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_F(FeaturesTest, UninterpretedOptionsMerge) { |
|
|
|
|