Эх сурвалжийг харах

Add full-system test for custom enum value options. (Previously, only a
parsing test in parser_unittest.cc existed.)

kenton@google.com 17 жил өмнө
parent
commit
1ea526879c

+ 3 - 0
src/google/protobuf/descriptor_unittest.cc

@@ -1554,6 +1554,9 @@ TEST(CustomOptions, OptionLocations) {
             field->options().GetExtension(protobuf_unittest::field_opt2));
   EXPECT_EQ(-789,
             enm->options().GetExtension(protobuf_unittest::enum_opt1));
+  EXPECT_EQ(123,
+            enm->value(1)->options().GetExtension(
+              protobuf_unittest::enum_value_opt1));
   EXPECT_EQ(GOOGLE_LONGLONG(-9876543210),
             service->options().GetExtension(protobuf_unittest::service_opt1));
   EXPECT_EQ(protobuf_unittest::METHODOPT1_VAL2,

+ 4 - 2
src/google/protobuf/unittest_custom_options.proto

@@ -66,7 +66,9 @@ extend google.protobuf.EnumOptions {
   optional sfixed32 enum_opt1 = 7753576;
 }
 
-// TODO(benjy): Test options on enum values when the parser supports them.
+extend google.protobuf.EnumValueOptions {
+  optional int32 enum_value_opt1 = 1560678;
+}
 
 extend google.protobuf.ServiceOptions {
   optional sint64 service_opt1 = 7887650;
@@ -95,7 +97,7 @@ message TestMessageWithCustomOptions {
     option (enum_opt1) = -789;
 
     ANENUM_VAL1 = 1;
-    ANENUM_VAL2 = 2;
+    ANENUM_VAL2 = 2 [(enum_value_opt1) = 123];
   }
 }