protoc 2.6.1.1 → 2.6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. checksums.yaml +4 -4
  2. data/ext/protoc/Makefile.in +10 -13
  3. data/ext/protoc/extconf.rb +0 -1
  4. data/ext/protoc/protobuf/CHANGES.txt +593 -0
  5. data/ext/protoc/protobuf/CONTRIBUTORS.txt +93 -0
  6. data/ext/protoc/protobuf/INSTALL.txt +237 -0
  7. data/ext/protoc/protobuf/LICENSE +33 -0
  8. data/ext/protoc/protobuf/Makefile.am +267 -0
  9. data/ext/protoc/protobuf/README.md +167 -0
  10. data/ext/protoc/protobuf/autogen.sh +41 -0
  11. data/ext/protoc/protobuf/benchmarks/ProtoBench.java +203 -0
  12. data/ext/protoc/protobuf/benchmarks/google_message1.dat +0 -0
  13. data/ext/protoc/protobuf/benchmarks/google_message2.dat +0 -0
  14. data/ext/protoc/protobuf/benchmarks/google_size.proto +136 -0
  15. data/ext/protoc/protobuf/benchmarks/google_speed.proto +136 -0
  16. data/ext/protoc/protobuf/benchmarks/readme.txt +50 -0
  17. data/ext/protoc/protobuf/configure.ac +159 -0
  18. data/ext/protoc/protobuf/editors/README.txt +5 -0
  19. data/ext/protoc/protobuf/editors/proto.vim +105 -0
  20. data/ext/protoc/protobuf/editors/protobuf-mode.el +220 -0
  21. data/ext/protoc/protobuf/examples/AddPerson.java +95 -0
  22. data/ext/protoc/protobuf/examples/ListPeople.java +50 -0
  23. data/ext/protoc/protobuf/examples/Makefile +58 -0
  24. data/ext/protoc/protobuf/examples/README.txt +29 -0
  25. data/ext/protoc/protobuf/examples/add_person.cc +95 -0
  26. data/ext/protoc/protobuf/examples/add_person.py +58 -0
  27. data/ext/protoc/protobuf/examples/addressbook.proto +30 -0
  28. data/ext/protoc/protobuf/examples/list_people.cc +68 -0
  29. data/ext/protoc/protobuf/examples/list_people.py +38 -0
  30. data/ext/protoc/protobuf/generate_descriptor_proto.sh +33 -0
  31. data/ext/protoc/protobuf/java/README.txt +96 -0
  32. data/ext/protoc/protobuf/java/pom.xml +217 -0
  33. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractMessage.java +466 -0
  34. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractMessageLite.java +355 -0
  35. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractParser.java +253 -0
  36. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BlockingRpcChannel.java +51 -0
  37. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BlockingService.java +64 -0
  38. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BoundedByteString.java +163 -0
  39. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ByteString.java +1022 -0
  40. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/CodedInputStream.java +1311 -0
  41. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/CodedOutputStream.java +1297 -0
  42. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Descriptors.java +2238 -0
  43. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/DynamicMessage.java +622 -0
  44. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Extension.java +96 -0
  45. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ExtensionRegistry.java +392 -0
  46. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ExtensionRegistryLite.java +185 -0
  47. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/FieldSet.java +907 -0
  48. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessage.java +2213 -0
  49. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java +949 -0
  50. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Internal.java +391 -0
  51. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java +122 -0
  52. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyField.java +154 -0
  53. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyFieldLite.java +176 -0
  54. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyStringArrayList.java +367 -0
  55. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyStringList.java +163 -0
  56. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LiteralByteString.java +362 -0
  57. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Message.java +244 -0
  58. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageLite.java +320 -0
  59. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java +60 -0
  60. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageOrBuilder.java +143 -0
  61. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageReflection.java +931 -0
  62. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Parser.java +261 -0
  63. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ProtocolMessageEnum.java +58 -0
  64. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ProtocolStringList.java +48 -0
  65. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java +696 -0
  66. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RopeByteString.java +957 -0
  67. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcCallback.java +47 -0
  68. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcChannel.java +71 -0
  69. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcController.java +118 -0
  70. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcUtil.java +134 -0
  71. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Service.java +117 -0
  72. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ServiceException.java +52 -0
  73. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/SingleFieldBuilder.java +241 -0
  74. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/SmallSortedMap.java +618 -0
  75. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/TextFormat.java +1984 -0
  76. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UninitializedMessageException.java +99 -0
  77. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UnknownFieldSet.java +995 -0
  78. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java +205 -0
  79. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Utf8.java +349 -0
  80. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/WireFormat.java +163 -0
  81. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/AbstractMessageTest.java +527 -0
  82. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/BoundedByteStringTest.java +68 -0
  83. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ByteStringTest.java +759 -0
  84. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CheckUtf8Test.java +141 -0
  85. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CodedInputStreamTest.java +769 -0
  86. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CodedOutputStreamTest.java +401 -0
  87. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DeprecatedFieldTest.java +80 -0
  88. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DescriptorsTest.java +735 -0
  89. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DynamicMessageTest.java +326 -0
  90. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java +48 -0
  91. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/GeneratedMessageTest.java +1515 -0
  92. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/IsValidUtf8Test.java +180 -0
  93. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java +421 -0
  94. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyFieldLiteTest.java +134 -0
  95. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyFieldTest.java +121 -0
  96. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyMessageLiteTest.java +319 -0
  97. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java +174 -0
  98. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyStringEndToEndTest.java +143 -0
  99. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteEqualsAndHashTest.java +85 -0
  100. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteTest.java +148 -0
  101. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteralByteStringTest.java +396 -0
  102. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/MessageTest.java +353 -0
  103. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/NestedBuildersTest.java +185 -0
  104. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ParserTest.java +381 -0
  105. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RepeatedFieldBuilderTest.java +190 -0
  106. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RopeByteStringSubstringTest.java +97 -0
  107. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RopeByteStringTest.java +115 -0
  108. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ServiceTest.java +320 -0
  109. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/SingleFieldBuilderTest.java +155 -0
  110. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/SmallSortedMapTest.java +420 -0
  111. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TestBadIdentifiers.java +96 -0
  112. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TestUtil.java +4124 -0
  113. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TextFormatTest.java +994 -0
  114. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/UnknownFieldSetTest.java +653 -0
  115. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/UnmodifiableLazyStringListTest.java +227 -0
  116. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/WireFormatTest.java +606 -0
  117. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/lazy_fields_lite.proto +61 -0
  118. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/lite_equals_and_hash.proto +55 -0
  119. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/multiple_files_test.proto +77 -0
  120. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_builders_test.proto +53 -0
  121. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_extension.proto +46 -0
  122. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_extension_lite.proto +48 -0
  123. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/non_nested_extension.proto +49 -0
  124. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/non_nested_extension_lite.proto +50 -0
  125. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test.proto +38 -0
  126. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test2.proto +42 -0
  127. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test3.proto +43 -0
  128. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_bad_identifiers.proto +157 -0
  129. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_check_utf8.proto +50 -0
  130. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_check_utf8_size.proto +51 -0
  131. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_custom_options.proto +43 -0
  132. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_extra_interfaces.proto +60 -0
  133. data/ext/protoc/protobuf/m4/ac_system_extensions.m4 +37 -0
  134. data/ext/protoc/protobuf/m4/acx_check_suncc.m4 +75 -0
  135. data/ext/protoc/protobuf/m4/acx_pthread.m4 +397 -0
  136. data/ext/protoc/protobuf/m4/stl_hash.m4 +72 -0
  137. data/ext/protoc/protobuf/more_tests/Makefile +41 -0
  138. data/ext/protoc/protobuf/post_process_dist.sh +60 -0
  139. data/ext/protoc/protobuf/protobuf-lite.pc.in +13 -0
  140. data/ext/protoc/protobuf/protobuf.pc.in +14 -0
  141. data/ext/protoc/protobuf/python/README.txt +105 -0
  142. data/ext/protoc/protobuf/python/ez_setup.py +284 -0
  143. data/ext/protoc/protobuf/python/google/__init__.py +1 -0
  144. data/ext/protoc/protobuf/python/google/protobuf/__init__.py +0 -0
  145. data/ext/protoc/protobuf/python/google/protobuf/descriptor.py +849 -0
  146. data/ext/protoc/protobuf/python/google/protobuf/descriptor_database.py +137 -0
  147. data/ext/protoc/protobuf/python/google/protobuf/descriptor_pool.py +643 -0
  148. data/ext/protoc/protobuf/python/google/protobuf/internal/__init__.py +0 -0
  149. data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation.cc +139 -0
  150. data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation.py +89 -0
  151. data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation_default_test.py +63 -0
  152. data/ext/protoc/protobuf/python/google/protobuf/internal/containers.py +269 -0
  153. data/ext/protoc/protobuf/python/google/protobuf/internal/cpp_message.py +663 -0
  154. data/ext/protoc/protobuf/python/google/protobuf/internal/decoder.py +831 -0
  155. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_database_test.py +63 -0
  156. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test.py +564 -0
  157. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test1.proto +94 -0
  158. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test2.proto +70 -0
  159. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_python_test.py +54 -0
  160. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_test.py +669 -0
  161. data/ext/protoc/protobuf/python/google/protobuf/internal/encoder.py +788 -0
  162. data/ext/protoc/protobuf/python/google/protobuf/internal/enum_type_wrapper.py +89 -0
  163. data/ext/protoc/protobuf/python/google/protobuf/internal/factory_test1.proto +57 -0
  164. data/ext/protoc/protobuf/python/google/protobuf/internal/factory_test2.proto +92 -0
  165. data/ext/protoc/protobuf/python/google/protobuf/internal/generator_test.py +343 -0
  166. data/ext/protoc/protobuf/python/google/protobuf/internal/message_factory_python_test.py +54 -0
  167. data/ext/protoc/protobuf/python/google/protobuf/internal/message_factory_test.py +131 -0
  168. data/ext/protoc/protobuf/python/google/protobuf/internal/message_listener.py +78 -0
  169. data/ext/protoc/protobuf/python/google/protobuf/internal/message_python_test.py +54 -0
  170. data/ext/protoc/protobuf/python/google/protobuf/internal/message_test.py +681 -0
  171. data/ext/protoc/protobuf/python/google/protobuf/internal/missing_enum_values.proto +50 -0
  172. data/ext/protoc/protobuf/python/google/protobuf/internal/more_extensions.proto +58 -0
  173. data/ext/protoc/protobuf/python/google/protobuf/internal/more_extensions_dynamic.proto +49 -0
  174. data/ext/protoc/protobuf/python/google/protobuf/internal/more_messages.proto +51 -0
  175. data/ext/protoc/protobuf/python/google/protobuf/internal/python_message.py +1251 -0
  176. data/ext/protoc/protobuf/python/google/protobuf/internal/reflection_test.py +2934 -0
  177. data/ext/protoc/protobuf/python/google/protobuf/internal/service_reflection_test.py +136 -0
  178. data/ext/protoc/protobuf/python/google/protobuf/internal/symbol_database_test.py +120 -0
  179. data/ext/protoc/protobuf/python/google/protobuf/internal/test_bad_identifiers.proto +52 -0
  180. data/ext/protoc/protobuf/python/google/protobuf/internal/test_util.py +662 -0
  181. data/ext/protoc/protobuf/python/google/protobuf/internal/text_encoding_test.py +68 -0
  182. data/ext/protoc/protobuf/python/google/protobuf/internal/text_format_test.py +743 -0
  183. data/ext/protoc/protobuf/python/google/protobuf/internal/type_checkers.py +328 -0
  184. data/ext/protoc/protobuf/python/google/protobuf/internal/unknown_fields_test.py +231 -0
  185. data/ext/protoc/protobuf/python/google/protobuf/internal/wire_format.py +268 -0
  186. data/ext/protoc/protobuf/python/google/protobuf/internal/wire_format_test.py +253 -0
  187. data/ext/protoc/protobuf/python/google/protobuf/message.py +284 -0
  188. data/ext/protoc/protobuf/python/google/protobuf/message_factory.py +155 -0
  189. data/ext/protoc/protobuf/python/google/protobuf/pyext/README +6 -0
  190. data/ext/protoc/protobuf/python/google/protobuf/pyext/__init__.py +0 -0
  191. data/ext/protoc/protobuf/python/google/protobuf/pyext/cpp_message.py +61 -0
  192. data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor.cc +357 -0
  193. data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor.h +96 -0
  194. data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor_cpp2_test.py +58 -0
  195. data/ext/protoc/protobuf/python/google/protobuf/pyext/extension_dict.cc +338 -0
  196. data/ext/protoc/protobuf/python/google/protobuf/pyext/extension_dict.h +123 -0
  197. data/ext/protoc/protobuf/python/google/protobuf/pyext/message.cc +2561 -0
  198. data/ext/protoc/protobuf/python/google/protobuf/pyext/message.h +305 -0
  199. data/ext/protoc/protobuf/python/google/protobuf/pyext/message_factory_cpp2_test.py +56 -0
  200. data/ext/protoc/protobuf/python/google/protobuf/pyext/proto2_api_test.proto +38 -0
  201. data/ext/protoc/protobuf/python/google/protobuf/pyext/python.proto +66 -0
  202. data/ext/protoc/protobuf/python/google/protobuf/pyext/python_protobuf.h +57 -0
  203. data/ext/protoc/protobuf/python/google/protobuf/pyext/reflection_cpp2_generated_test.py +94 -0
  204. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_composite_container.cc +763 -0
  205. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_composite_container.h +172 -0
  206. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_scalar_container.cc +825 -0
  207. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_scalar_container.h +112 -0
  208. data/ext/protoc/protobuf/python/google/protobuf/pyext/scoped_pyobject_ptr.h +95 -0
  209. data/ext/protoc/protobuf/python/google/protobuf/reflection.py +205 -0
  210. data/ext/protoc/protobuf/python/google/protobuf/service.py +226 -0
  211. data/ext/protoc/protobuf/python/google/protobuf/service_reflection.py +284 -0
  212. data/ext/protoc/protobuf/python/google/protobuf/symbol_database.py +185 -0
  213. data/ext/protoc/protobuf/python/google/protobuf/text_encoding.py +110 -0
  214. data/ext/protoc/protobuf/python/google/protobuf/text_format.py +873 -0
  215. data/ext/protoc/protobuf/python/mox.py +1401 -0
  216. data/ext/protoc/protobuf/python/setup.py +201 -0
  217. data/ext/protoc/protobuf/python/stubout.py +140 -0
  218. data/ext/protoc/protobuf/src/Makefile.am +418 -0
  219. data/ext/protoc/protobuf/src/google/protobuf/SEBS +240 -0
  220. data/ext/protoc/protobuf/src/google/protobuf/compiler/code_generator.cc +84 -0
  221. data/ext/protoc/protobuf/src/google/protobuf/compiler/code_generator.h +145 -0
  222. data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface.cc +1603 -0
  223. data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface.h +378 -0
  224. data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface_unittest.cc +1654 -0
  225. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc +158 -0
  226. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc +288 -0
  227. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.h +103 -0
  228. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc +431 -0
  229. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.h +122 -0
  230. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc +210 -0
  231. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.h +86 -0
  232. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc +166 -0
  233. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h +185 -0
  234. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc +665 -0
  235. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_file.h +99 -0
  236. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc +125 -0
  237. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.h +72 -0
  238. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc +494 -0
  239. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h +206 -0
  240. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc +2645 -0
  241. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message.h +175 -0
  242. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc +375 -0
  243. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.h +121 -0
  244. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_options.h +58 -0
  245. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc +123 -0
  246. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc +451 -0
  247. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.h +123 -0
  248. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc +334 -0
  249. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h +118 -0
  250. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc +642 -0
  251. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.h +127 -0
  252. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto +132 -0
  253. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc +2074 -0
  254. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.h +51 -0
  255. data/ext/protoc/protobuf/src/google/protobuf/compiler/importer.cc +480 -0
  256. data/ext/protoc/protobuf/src/google/protobuf/compiler/importer.h +317 -0
  257. data/ext/protoc/protobuf/src/google/protobuf/compiler/importer_unittest.cc +617 -0
  258. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_context.cc +195 -0
  259. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_context.h +95 -0
  260. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc +233 -0
  261. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment.h +69 -0
  262. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment_unittest.cc +67 -0
  263. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum.cc +333 -0
  264. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum.h +99 -0
  265. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum_field.cc +778 -0
  266. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum_field.h +158 -0
  267. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_extension.cc +207 -0
  268. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_extension.h +109 -0
  269. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_field.cc +213 -0
  270. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_field.h +162 -0
  271. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_file.cc +534 -0
  272. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_file.h +115 -0
  273. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator.cc +158 -0
  274. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator.h +72 -0
  275. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc +77 -0
  276. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator_factory.h +101 -0
  277. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_helpers.cc +737 -0
  278. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_helpers.h +322 -0
  279. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.cc +826 -0
  280. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.h +121 -0
  281. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message.cc +1666 -0
  282. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message.h +140 -0
  283. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message_field.cc +1343 -0
  284. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message_field.h +173 -0
  285. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc +266 -0
  286. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_name_resolver.h +124 -0
  287. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_plugin_unittest.cc +124 -0
  288. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc +877 -0
  289. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_primitive_field.h +160 -0
  290. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_service.cc +473 -0
  291. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_service.h +135 -0
  292. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc +201 -0
  293. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.h +90 -0
  294. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_string_field.cc +1056 -0
  295. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_string_field.h +160 -0
  296. data/ext/protoc/protobuf/src/google/protobuf/compiler/main.cc +61 -0
  297. data/ext/protoc/protobuf/src/google/protobuf/compiler/mock_code_generator.cc +240 -0
  298. data/ext/protoc/protobuf/src/google/protobuf/compiler/mock_code_generator.h +117 -0
  299. data/ext/protoc/protobuf/src/google/protobuf/compiler/package_info.h +64 -0
  300. data/ext/protoc/protobuf/src/google/protobuf/compiler/parser.cc +1750 -0
  301. data/ext/protoc/protobuf/src/google/protobuf/compiler/parser.h +522 -0
  302. data/ext/protoc/protobuf/src/google/protobuf/compiler/parser_unittest.cc +2612 -0
  303. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.cc +163 -0
  304. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.h +72 -0
  305. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.pb.cc +1148 -0
  306. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.pb.h +897 -0
  307. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.proto +147 -0
  308. data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_generator.cc +1262 -0
  309. data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_generator.h +166 -0
  310. data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_plugin_unittest.cc +118 -0
  311. data/ext/protoc/protobuf/src/google/protobuf/compiler/subprocess.cc +463 -0
  312. data/ext/protoc/protobuf/src/google/protobuf/compiler/subprocess.h +108 -0
  313. data/ext/protoc/protobuf/src/google/protobuf/compiler/test_plugin.cc +51 -0
  314. data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_output_unittest.sh +91 -0
  315. data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_writer.cc +218 -0
  316. data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_writer.h +93 -0
  317. data/ext/protoc/protobuf/src/google/protobuf/descriptor.cc +5420 -0
  318. data/ext/protoc/protobuf/src/google/protobuf/descriptor.h +1691 -0
  319. data/ext/protoc/protobuf/src/google/protobuf/descriptor.pb.cc +9135 -0
  320. data/ext/protoc/protobuf/src/google/protobuf/descriptor.pb.h +6761 -0
  321. data/ext/protoc/protobuf/src/google/protobuf/descriptor.proto +687 -0
  322. data/ext/protoc/protobuf/src/google/protobuf/descriptor_database.cc +543 -0
  323. data/ext/protoc/protobuf/src/google/protobuf/descriptor_database.h +369 -0
  324. data/ext/protoc/protobuf/src/google/protobuf/descriptor_database_unittest.cc +748 -0
  325. data/ext/protoc/protobuf/src/google/protobuf/descriptor_pb2_test.py +54 -0
  326. data/ext/protoc/protobuf/src/google/protobuf/descriptor_unittest.cc +5501 -0
  327. data/ext/protoc/protobuf/src/google/protobuf/dynamic_message.cc +764 -0
  328. data/ext/protoc/protobuf/src/google/protobuf/dynamic_message.h +148 -0
  329. data/ext/protoc/protobuf/src/google/protobuf/dynamic_message_unittest.cc +230 -0
  330. data/ext/protoc/protobuf/src/google/protobuf/extension_set.cc +1663 -0
  331. data/ext/protoc/protobuf/src/google/protobuf/extension_set.h +1234 -0
  332. data/ext/protoc/protobuf/src/google/protobuf/extension_set_heavy.cc +734 -0
  333. data/ext/protoc/protobuf/src/google/protobuf/extension_set_unittest.cc +1095 -0
  334. data/ext/protoc/protobuf/src/google/protobuf/generated_enum_reflection.h +91 -0
  335. data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection.cc +1683 -0
  336. data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection.h +504 -0
  337. data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection_unittest.cc +795 -0
  338. data/ext/protoc/protobuf/src/google/protobuf/generated_message_util.cc +65 -0
  339. data/ext/protoc/protobuf/src/google/protobuf/generated_message_util.h +113 -0
  340. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream.cc +914 -0
  341. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream.h +1220 -0
  342. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream_inl.h +69 -0
  343. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream_unittest.cc +1378 -0
  344. data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream.cc +326 -0
  345. data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream.h +209 -0
  346. data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream_unittest.sh +44 -0
  347. data/ext/protoc/protobuf/src/google/protobuf/io/package_info.h +54 -0
  348. data/ext/protoc/protobuf/src/google/protobuf/io/printer.cc +198 -0
  349. data/ext/protoc/protobuf/src/google/protobuf/io/printer.h +136 -0
  350. data/ext/protoc/protobuf/src/google/protobuf/io/printer_unittest.cc +285 -0
  351. data/ext/protoc/protobuf/src/google/protobuf/io/strtod.cc +113 -0
  352. data/ext/protoc/protobuf/src/google/protobuf/io/strtod.h +50 -0
  353. data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer.cc +1127 -0
  354. data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer.h +402 -0
  355. data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer_unittest.cc +999 -0
  356. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream.cc +57 -0
  357. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream.h +248 -0
  358. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc +473 -0
  359. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h +358 -0
  360. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc +405 -0
  361. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h +354 -0
  362. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_unittest.cc +965 -0
  363. data/ext/protoc/protobuf/src/google/protobuf/lite_unittest.cc +350 -0
  364. data/ext/protoc/protobuf/src/google/protobuf/message.cc +358 -0
  365. data/ext/protoc/protobuf/src/google/protobuf/message.h +866 -0
  366. data/ext/protoc/protobuf/src/google/protobuf/message_lite.cc +335 -0
  367. data/ext/protoc/protobuf/src/google/protobuf/message_lite.h +247 -0
  368. data/ext/protoc/protobuf/src/google/protobuf/message_unittest.cc +427 -0
  369. data/ext/protoc/protobuf/src/google/protobuf/package_info.h +64 -0
  370. data/ext/protoc/protobuf/src/google/protobuf/reflection_ops.cc +269 -0
  371. data/ext/protoc/protobuf/src/google/protobuf/reflection_ops.h +81 -0
  372. data/ext/protoc/protobuf/src/google/protobuf/reflection_ops_unittest.cc +475 -0
  373. data/ext/protoc/protobuf/src/google/protobuf/repeated_field.cc +87 -0
  374. data/ext/protoc/protobuf/src/google/protobuf/repeated_field.h +1603 -0
  375. data/ext/protoc/protobuf/src/google/protobuf/repeated_field_reflection_unittest.cc +195 -0
  376. data/ext/protoc/protobuf/src/google/protobuf/repeated_field_unittest.cc +1442 -0
  377. data/ext/protoc/protobuf/src/google/protobuf/service.cc +46 -0
  378. data/ext/protoc/protobuf/src/google/protobuf/service.h +291 -0
  379. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops.h +227 -0
  380. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm64_gcc.h +325 -0
  381. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h +151 -0
  382. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_qnx.h +146 -0
  383. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_atomicword_compat.h +122 -0
  384. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h +137 -0
  385. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_macosx.h +225 -0
  386. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_mips_gcc.h +313 -0
  387. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_pnacl.h +73 -0
  388. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h +188 -0
  389. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_tsan.h +219 -0
  390. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc +137 -0
  391. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_gcc.h +293 -0
  392. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc +112 -0
  393. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_msvc.h +150 -0
  394. data/ext/protoc/protobuf/src/google/protobuf/stubs/common.cc +395 -0
  395. data/ext/protoc/protobuf/src/google/protobuf/stubs/common.h +1226 -0
  396. data/ext/protoc/protobuf/src/google/protobuf/stubs/common_unittest.cc +357 -0
  397. data/ext/protoc/protobuf/src/google/protobuf/stubs/hash.h +232 -0
  398. data/ext/protoc/protobuf/src/google/protobuf/stubs/map_util.h +771 -0
  399. data/ext/protoc/protobuf/src/google/protobuf/stubs/once.cc +99 -0
  400. data/ext/protoc/protobuf/src/google/protobuf/stubs/once.h +166 -0
  401. data/ext/protoc/protobuf/src/google/protobuf/stubs/once_unittest.cc +253 -0
  402. data/ext/protoc/protobuf/src/google/protobuf/stubs/platform_macros.h +103 -0
  403. data/ext/protoc/protobuf/src/google/protobuf/stubs/shared_ptr.h +470 -0
  404. data/ext/protoc/protobuf/src/google/protobuf/stubs/stl_util.h +121 -0
  405. data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf.cc +175 -0
  406. data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf.h +76 -0
  407. data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf_unittest.cc +152 -0
  408. data/ext/protoc/protobuf/src/google/protobuf/stubs/structurally_valid.cc +536 -0
  409. data/ext/protoc/protobuf/src/google/protobuf/stubs/structurally_valid_unittest.cc +40 -0
  410. data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil.cc +1279 -0
  411. data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil.h +562 -0
  412. data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil_unittest.cc +73 -0
  413. data/ext/protoc/protobuf/src/google/protobuf/stubs/substitute.cc +134 -0
  414. data/ext/protoc/protobuf/src/google/protobuf/stubs/substitute.h +170 -0
  415. data/ext/protoc/protobuf/src/google/protobuf/stubs/template_util.h +138 -0
  416. data/ext/protoc/protobuf/src/google/protobuf/stubs/template_util_unittest.cc +130 -0
  417. data/ext/protoc/protobuf/src/google/protobuf/stubs/type_traits.h +336 -0
  418. data/ext/protoc/protobuf/src/google/protobuf/stubs/type_traits_unittest.cc +628 -0
  419. data/ext/protoc/protobuf/src/google/protobuf/test_util.cc +3345 -0
  420. data/ext/protoc/protobuf/src/google/protobuf/test_util.h +215 -0
  421. data/ext/protoc/protobuf/src/google/protobuf/test_util_lite.cc +1585 -0
  422. data/ext/protoc/protobuf/src/google/protobuf/test_util_lite.h +101 -0
  423. data/ext/protoc/protobuf/src/google/protobuf/testdata/bad_utf8_string +1 -0
  424. data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_message +0 -0
  425. data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_message_oneof_implemented +0 -0
  426. data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_packed_fields_message +0 -0
  427. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data.txt +134 -0
  428. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_oneof_implemented.txt +129 -0
  429. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_pointy.txt +134 -0
  430. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_pointy_oneof.txt +129 -0
  431. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_extensions_data.txt +134 -0
  432. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_extensions_data_pointy.txt +134 -0
  433. data/ext/protoc/protobuf/src/google/protobuf/testing/file.cc +194 -0
  434. data/ext/protoc/protobuf/src/google/protobuf/testing/file.h +97 -0
  435. data/ext/protoc/protobuf/src/google/protobuf/testing/googletest.cc +255 -0
  436. data/ext/protoc/protobuf/src/google/protobuf/testing/googletest.h +102 -0
  437. data/ext/protoc/protobuf/src/google/protobuf/testing/zcgunzip.cc +73 -0
  438. data/ext/protoc/protobuf/src/google/protobuf/testing/zcgzip.cc +79 -0
  439. data/ext/protoc/protobuf/src/google/protobuf/text_format.cc +1746 -0
  440. data/ext/protoc/protobuf/src/google/protobuf/text_format.h +473 -0
  441. data/ext/protoc/protobuf/src/google/protobuf/text_format_unittest.cc +1479 -0
  442. data/ext/protoc/protobuf/src/google/protobuf/unittest.proto +861 -0
  443. data/ext/protoc/protobuf/src/google/protobuf/unittest_custom_options.proto +393 -0
  444. data/ext/protoc/protobuf/src/google/protobuf/unittest_embed_optimize_for.proto +50 -0
  445. data/ext/protoc/protobuf/src/google/protobuf/unittest_empty.proto +37 -0
  446. data/ext/protoc/protobuf/src/google/protobuf/unittest_enormous_descriptor.proto +1046 -0
  447. data/ext/protoc/protobuf/src/google/protobuf/unittest_import.proto +64 -0
  448. data/ext/protoc/protobuf/src/google/protobuf/unittest_import_lite.proto +51 -0
  449. data/ext/protoc/protobuf/src/google/protobuf/unittest_import_public.proto +40 -0
  450. data/ext/protoc/protobuf/src/google/protobuf/unittest_import_public_lite.proto +42 -0
  451. data/ext/protoc/protobuf/src/google/protobuf/unittest_lite.proto +384 -0
  452. data/ext/protoc/protobuf/src/google/protobuf/unittest_lite_imports_nonlite.proto +43 -0
  453. data/ext/protoc/protobuf/src/google/protobuf/unittest_mset.proto +83 -0
  454. data/ext/protoc/protobuf/src/google/protobuf/unittest_no_generic_services.proto +53 -0
  455. data/ext/protoc/protobuf/src/google/protobuf/unittest_optimize_for.proto +66 -0
  456. data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set.cc +265 -0
  457. data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set.h +318 -0
  458. data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set_unittest.cc +599 -0
  459. data/ext/protoc/protobuf/src/google/protobuf/wire_format.cc +1101 -0
  460. data/ext/protoc/protobuf/src/google/protobuf/wire_format.h +336 -0
  461. data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite.cc +471 -0
  462. data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite.h +661 -0
  463. data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite_inl.h +860 -0
  464. data/ext/protoc/protobuf/src/google/protobuf/wire_format_unittest.cc +1120 -0
  465. data/ext/protoc/protobuf/src/solaris/libstdc++.la +51 -0
  466. data/ext/protoc/protobuf/vsprojects/config.h +29 -0
  467. data/ext/protoc/protobuf/vsprojects/convert2008to2005.sh +20 -0
  468. data/ext/protoc/protobuf/vsprojects/extract_includes.bat +50 -0
  469. data/ext/protoc/protobuf/vsprojects/libprotobuf-lite.vcproj +302 -0
  470. data/ext/protoc/protobuf/vsprojects/libprotobuf.vcproj +470 -0
  471. data/ext/protoc/protobuf/vsprojects/libprotoc.vcproj +466 -0
  472. data/ext/protoc/protobuf/vsprojects/lite-test.vcproj +305 -0
  473. data/ext/protoc/protobuf/vsprojects/protobuf.sln +92 -0
  474. data/ext/protoc/protobuf/vsprojects/protoc.vcproj +192 -0
  475. data/ext/protoc/protobuf/vsprojects/readme.txt +114 -0
  476. data/ext/protoc/protobuf/vsprojects/test_plugin.vcproj +209 -0
  477. data/ext/protoc/protobuf/vsprojects/tests.vcproj +681 -0
  478. data/lib/protoc/version.rb +1 -1
  479. metadata +480 -3
@@ -0,0 +1,795 @@
1
+ // Protocol Buffers - Google's data interchange format
2
+ // Copyright 2008 Google Inc. All rights reserved.
3
+ // https://developers.google.com/protocol-buffers/
4
+ //
5
+ // Redistribution and use in source and binary forms, with or without
6
+ // modification, are permitted provided that the following conditions are
7
+ // met:
8
+ //
9
+ // * Redistributions of source code must retain the above copyright
10
+ // notice, this list of conditions and the following disclaimer.
11
+ // * Redistributions in binary form must reproduce the above
12
+ // copyright notice, this list of conditions and the following disclaimer
13
+ // in the documentation and/or other materials provided with the
14
+ // distribution.
15
+ // * Neither the name of Google Inc. nor the names of its
16
+ // contributors may be used to endorse or promote products derived from
17
+ // this software without specific prior written permission.
18
+ //
19
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+ // Author: kenton@google.com (Kenton Varda)
32
+ // Based on original Protocol Buffers design by
33
+ // Sanjay Ghemawat, Jeff Dean, and others.
34
+ //
35
+ // To test GeneratedMessageReflection, we actually let the protocol compiler
36
+ // generate a full protocol message implementation and then test its
37
+ // reflection interface. This is much easier and more maintainable than
38
+ // trying to create our own Message class for GeneratedMessageReflection
39
+ // to wrap.
40
+ //
41
+ // The tests here closely mirror some of the tests in
42
+ // compiler/cpp/unittest, except using the reflection interface
43
+ // rather than generated accessors.
44
+
45
+ #include <google/protobuf/generated_message_reflection.h>
46
+ #include <google/protobuf/descriptor.h>
47
+ #include <google/protobuf/test_util.h>
48
+ #include <google/protobuf/unittest.pb.h>
49
+
50
+ #include <google/protobuf/stubs/common.h>
51
+ #include <google/protobuf/testing/googletest.h>
52
+ #include <gtest/gtest.h>
53
+
54
+ namespace google {
55
+ namespace protobuf {
56
+
57
+ namespace {
58
+
59
+ // Shorthand to get a FieldDescriptor for a field of unittest::TestAllTypes.
60
+ const FieldDescriptor* F(const string& name) {
61
+ const FieldDescriptor* result =
62
+ unittest::TestAllTypes::descriptor()->FindFieldByName(name);
63
+ GOOGLE_CHECK(result != NULL);
64
+ return result;
65
+ }
66
+
67
+ TEST(GeneratedMessageReflectionTest, Defaults) {
68
+ // Check that all default values are set correctly in the initial message.
69
+ unittest::TestAllTypes message;
70
+ TestUtil::ReflectionTester reflection_tester(
71
+ unittest::TestAllTypes::descriptor());
72
+
73
+ reflection_tester.ExpectClearViaReflection(message);
74
+
75
+ const Reflection* reflection = message.GetReflection();
76
+
77
+ // Messages should return pointers to default instances until first use.
78
+ // (This is not checked by ExpectClear() since it is not actually true after
79
+ // the fields have been set and then cleared.)
80
+ EXPECT_EQ(&unittest::TestAllTypes::OptionalGroup::default_instance(),
81
+ &reflection->GetMessage(message, F("optionalgroup")));
82
+ EXPECT_EQ(&unittest::TestAllTypes::NestedMessage::default_instance(),
83
+ &reflection->GetMessage(message, F("optional_nested_message")));
84
+ EXPECT_EQ(&unittest::ForeignMessage::default_instance(),
85
+ &reflection->GetMessage(message, F("optional_foreign_message")));
86
+ EXPECT_EQ(&unittest_import::ImportMessage::default_instance(),
87
+ &reflection->GetMessage(message, F("optional_import_message")));
88
+ }
89
+
90
+ TEST(GeneratedMessageReflectionTest, Accessors) {
91
+ // Set every field to a unique value then go back and check all those
92
+ // values.
93
+ unittest::TestAllTypes message;
94
+ TestUtil::ReflectionTester reflection_tester(
95
+ unittest::TestAllTypes::descriptor());
96
+
97
+ reflection_tester.SetAllFieldsViaReflection(&message);
98
+ TestUtil::ExpectAllFieldsSet(message);
99
+ reflection_tester.ExpectAllFieldsSetViaReflection(message);
100
+
101
+ reflection_tester.ModifyRepeatedFieldsViaReflection(&message);
102
+ TestUtil::ExpectRepeatedFieldsModified(message);
103
+ }
104
+
105
+ TEST(GeneratedMessageReflectionTest, GetStringReference) {
106
+ // Test that GetStringReference() returns the underlying string when it is
107
+ // a normal string field.
108
+ unittest::TestAllTypes message;
109
+ message.set_optional_string("foo");
110
+ message.add_repeated_string("foo");
111
+
112
+ const Reflection* reflection = message.GetReflection();
113
+ string scratch;
114
+
115
+ EXPECT_EQ(&message.optional_string(),
116
+ &reflection->GetStringReference(message, F("optional_string"), &scratch))
117
+ << "For simple string fields, GetStringReference() should return a "
118
+ "reference to the underlying string.";
119
+ EXPECT_EQ(&message.repeated_string(0),
120
+ &reflection->GetRepeatedStringReference(message, F("repeated_string"),
121
+ 0, &scratch))
122
+ << "For simple string fields, GetRepeatedStringReference() should return "
123
+ "a reference to the underlying string.";
124
+ }
125
+
126
+
127
+ TEST(GeneratedMessageReflectionTest, DefaultsAfterClear) {
128
+ // Check that after setting all fields and then clearing, getting an
129
+ // embedded message does NOT return the default instance.
130
+ unittest::TestAllTypes message;
131
+ TestUtil::ReflectionTester reflection_tester(
132
+ unittest::TestAllTypes::descriptor());
133
+
134
+ TestUtil::SetAllFields(&message);
135
+ message.Clear();
136
+
137
+ const Reflection* reflection = message.GetReflection();
138
+
139
+ EXPECT_NE(&unittest::TestAllTypes::OptionalGroup::default_instance(),
140
+ &reflection->GetMessage(message, F("optionalgroup")));
141
+ EXPECT_NE(&unittest::TestAllTypes::NestedMessage::default_instance(),
142
+ &reflection->GetMessage(message, F("optional_nested_message")));
143
+ EXPECT_NE(&unittest::ForeignMessage::default_instance(),
144
+ &reflection->GetMessage(message, F("optional_foreign_message")));
145
+ EXPECT_NE(&unittest_import::ImportMessage::default_instance(),
146
+ &reflection->GetMessage(message, F("optional_import_message")));
147
+ }
148
+
149
+
150
+ TEST(GeneratedMessageReflectionTest, Swap) {
151
+ unittest::TestAllTypes message1;
152
+ unittest::TestAllTypes message2;
153
+
154
+ TestUtil::SetAllFields(&message1);
155
+
156
+ const Reflection* reflection = message1.GetReflection();
157
+ reflection->Swap(&message1, &message2);
158
+
159
+ TestUtil::ExpectClear(message1);
160
+ TestUtil::ExpectAllFieldsSet(message2);
161
+ }
162
+
163
+ TEST(GeneratedMessageReflectionTest, SwapWithBothSet) {
164
+ unittest::TestAllTypes message1;
165
+ unittest::TestAllTypes message2;
166
+
167
+ TestUtil::SetAllFields(&message1);
168
+ TestUtil::SetAllFields(&message2);
169
+ TestUtil::ModifyRepeatedFields(&message2);
170
+
171
+ const Reflection* reflection = message1.GetReflection();
172
+ reflection->Swap(&message1, &message2);
173
+
174
+ TestUtil::ExpectRepeatedFieldsModified(message1);
175
+ TestUtil::ExpectAllFieldsSet(message2);
176
+
177
+ message1.set_optional_int32(532819);
178
+
179
+ reflection->Swap(&message1, &message2);
180
+
181
+ EXPECT_EQ(532819, message2.optional_int32());
182
+ }
183
+
184
+ TEST(GeneratedMessageReflectionTest, SwapExtensions) {
185
+ unittest::TestAllExtensions message1;
186
+ unittest::TestAllExtensions message2;
187
+
188
+ TestUtil::SetAllExtensions(&message1);
189
+
190
+ const Reflection* reflection = message1.GetReflection();
191
+ reflection->Swap(&message1, &message2);
192
+
193
+ TestUtil::ExpectExtensionsClear(message1);
194
+ TestUtil::ExpectAllExtensionsSet(message2);
195
+ }
196
+
197
+ TEST(GeneratedMessageReflectionTest, SwapUnknown) {
198
+ unittest::TestEmptyMessage message1, message2;
199
+
200
+ message1.mutable_unknown_fields()->AddVarint(1234, 1);
201
+
202
+ EXPECT_EQ(1, message1.unknown_fields().field_count());
203
+ EXPECT_EQ(0, message2.unknown_fields().field_count());
204
+ const Reflection* reflection = message1.GetReflection();
205
+ reflection->Swap(&message1, &message2);
206
+ EXPECT_EQ(0, message1.unknown_fields().field_count());
207
+ EXPECT_EQ(1, message2.unknown_fields().field_count());
208
+ }
209
+
210
+ TEST(GeneratedMessageReflectionTest, SwapFields) {
211
+ unittest::TestAllTypes message1, message2;
212
+ message1.set_optional_double(12.3);
213
+ message1.mutable_repeated_int32()->Add(10);
214
+ message1.mutable_repeated_int32()->Add(20);
215
+
216
+ message2.set_optional_string("hello");
217
+ message2.mutable_repeated_int64()->Add(30);
218
+
219
+ vector<const FieldDescriptor*> fields;
220
+ const Descriptor* descriptor = message1.GetDescriptor();
221
+ fields.push_back(descriptor->FindFieldByName("optional_double"));
222
+ fields.push_back(descriptor->FindFieldByName("repeated_int32"));
223
+ fields.push_back(descriptor->FindFieldByName("optional_string"));
224
+ fields.push_back(descriptor->FindFieldByName("optional_uint64"));
225
+
226
+ const Reflection* reflection = message1.GetReflection();
227
+ reflection->SwapFields(&message1, &message2, fields);
228
+
229
+ EXPECT_FALSE(message1.has_optional_double());
230
+ EXPECT_EQ(0, message1.repeated_int32_size());
231
+ EXPECT_TRUE(message1.has_optional_string());
232
+ EXPECT_EQ("hello", message1.optional_string());
233
+ EXPECT_EQ(0, message1.repeated_int64_size());
234
+ EXPECT_FALSE(message1.has_optional_uint64());
235
+
236
+ EXPECT_TRUE(message2.has_optional_double());
237
+ EXPECT_EQ(12.3, message2.optional_double());
238
+ EXPECT_EQ(2, message2.repeated_int32_size());
239
+ EXPECT_EQ(10, message2.repeated_int32(0));
240
+ EXPECT_EQ(20, message2.repeated_int32(1));
241
+ EXPECT_FALSE(message2.has_optional_string());
242
+ EXPECT_EQ(1, message2.repeated_int64_size());
243
+ EXPECT_FALSE(message2.has_optional_uint64());
244
+ }
245
+
246
+ TEST(GeneratedMessageReflectionTest, SwapFieldsAll) {
247
+ unittest::TestAllTypes message1;
248
+ unittest::TestAllTypes message2;
249
+
250
+ TestUtil::SetAllFields(&message2);
251
+
252
+ vector<const FieldDescriptor*> fields;
253
+ const Reflection* reflection = message1.GetReflection();
254
+ reflection->ListFields(message2, &fields);
255
+ reflection->SwapFields(&message1, &message2, fields);
256
+
257
+ TestUtil::ExpectAllFieldsSet(message1);
258
+ TestUtil::ExpectClear(message2);
259
+ }
260
+
261
+ TEST(GeneratedMessageReflectionTest, SwapFieldsAllExtension) {
262
+ unittest::TestAllExtensions message1;
263
+ unittest::TestAllExtensions message2;
264
+
265
+ TestUtil::SetAllExtensions(&message1);
266
+
267
+ vector<const FieldDescriptor*> fields;
268
+ const Reflection* reflection = message1.GetReflection();
269
+ reflection->ListFields(message1, &fields);
270
+ reflection->SwapFields(&message1, &message2, fields);
271
+
272
+ TestUtil::ExpectExtensionsClear(message1);
273
+ TestUtil::ExpectAllExtensionsSet(message2);
274
+ }
275
+
276
+ TEST(GeneratedMessageReflectionTest, SwapOneof) {
277
+ unittest::TestOneof2 message1, message2;
278
+ TestUtil::SetOneof1(&message1);
279
+
280
+ const Reflection* reflection = message1.GetReflection();
281
+ reflection->Swap(&message1, &message2);
282
+
283
+ TestUtil::ExpectOneofClear(message1);
284
+ TestUtil::ExpectOneofSet1(message2);
285
+ }
286
+
287
+ TEST(GeneratedMessageReflectionTest, SwapOneofBothSet) {
288
+ unittest::TestOneof2 message1, message2;
289
+ TestUtil::SetOneof1(&message1);
290
+ TestUtil::SetOneof2(&message2);
291
+
292
+ const Reflection* reflection = message1.GetReflection();
293
+ reflection->Swap(&message1, &message2);
294
+
295
+ TestUtil::ExpectOneofSet2(message1);
296
+ TestUtil::ExpectOneofSet1(message2);
297
+ }
298
+
299
+ TEST(GeneratedMessageReflectionTest, SwapFieldsOneof) {
300
+ unittest::TestOneof2 message1, message2;
301
+ TestUtil::SetOneof1(&message1);
302
+
303
+ vector<const FieldDescriptor*> fields;
304
+ const Descriptor* descriptor = message1.GetDescriptor();
305
+ for (int i = 0; i < descriptor->field_count(); i++) {
306
+ fields.push_back(descriptor->field(i));
307
+ }
308
+ const Reflection* reflection = message1.GetReflection();
309
+ reflection->SwapFields(&message1, &message2, fields);
310
+
311
+ TestUtil::ExpectOneofClear(message1);
312
+ TestUtil::ExpectOneofSet1(message2);
313
+ }
314
+
315
+ TEST(GeneratedMessageReflectionTest, RemoveLast) {
316
+ unittest::TestAllTypes message;
317
+ TestUtil::ReflectionTester reflection_tester(
318
+ unittest::TestAllTypes::descriptor());
319
+
320
+ TestUtil::SetAllFields(&message);
321
+
322
+ reflection_tester.RemoveLastRepeatedsViaReflection(&message);
323
+
324
+ TestUtil::ExpectLastRepeatedsRemoved(message);
325
+ }
326
+
327
+ TEST(GeneratedMessageReflectionTest, RemoveLastExtensions) {
328
+ unittest::TestAllExtensions message;
329
+ TestUtil::ReflectionTester reflection_tester(
330
+ unittest::TestAllExtensions::descriptor());
331
+
332
+ TestUtil::SetAllExtensions(&message);
333
+
334
+ reflection_tester.RemoveLastRepeatedsViaReflection(&message);
335
+
336
+ TestUtil::ExpectLastRepeatedExtensionsRemoved(message);
337
+ }
338
+
339
+ TEST(GeneratedMessageReflectionTest, ReleaseLast) {
340
+ unittest::TestAllTypes message;
341
+ const Descriptor* descriptor = message.GetDescriptor();
342
+ TestUtil::ReflectionTester reflection_tester(descriptor);
343
+
344
+ TestUtil::SetAllFields(&message);
345
+
346
+ reflection_tester.ReleaseLastRepeatedsViaReflection(&message, false);
347
+
348
+ TestUtil::ExpectLastRepeatedsReleased(message);
349
+
350
+ // Now test that we actually release the right message.
351
+ message.Clear();
352
+ TestUtil::SetAllFields(&message);
353
+ ASSERT_EQ(2, message.repeated_foreign_message_size());
354
+ const protobuf_unittest::ForeignMessage* expected =
355
+ message.mutable_repeated_foreign_message(1);
356
+ scoped_ptr<Message> released(message.GetReflection()->ReleaseLast(
357
+ &message, descriptor->FindFieldByName("repeated_foreign_message")));
358
+ EXPECT_EQ(expected, released.get());
359
+ }
360
+
361
+ TEST(GeneratedMessageReflectionTest, ReleaseLastExtensions) {
362
+ unittest::TestAllExtensions message;
363
+ const Descriptor* descriptor = message.GetDescriptor();
364
+ TestUtil::ReflectionTester reflection_tester(descriptor);
365
+
366
+ TestUtil::SetAllExtensions(&message);
367
+
368
+ reflection_tester.ReleaseLastRepeatedsViaReflection(&message, true);
369
+
370
+ TestUtil::ExpectLastRepeatedExtensionsReleased(message);
371
+
372
+ // Now test that we actually release the right message.
373
+ message.Clear();
374
+ TestUtil::SetAllExtensions(&message);
375
+ ASSERT_EQ(2, message.ExtensionSize(
376
+ unittest::repeated_foreign_message_extension));
377
+ const protobuf_unittest::ForeignMessage* expected = message.MutableExtension(
378
+ unittest::repeated_foreign_message_extension, 1);
379
+ scoped_ptr<Message> released(message.GetReflection()->ReleaseLast(
380
+ &message, descriptor->file()->FindExtensionByName(
381
+ "repeated_foreign_message_extension")));
382
+ EXPECT_EQ(expected, released.get());
383
+
384
+ }
385
+
386
+ TEST(GeneratedMessageReflectionTest, SwapRepeatedElements) {
387
+ unittest::TestAllTypes message;
388
+ TestUtil::ReflectionTester reflection_tester(
389
+ unittest::TestAllTypes::descriptor());
390
+
391
+ TestUtil::SetAllFields(&message);
392
+
393
+ // Swap and test that fields are all swapped.
394
+ reflection_tester.SwapRepeatedsViaReflection(&message);
395
+ TestUtil::ExpectRepeatedsSwapped(message);
396
+
397
+ // Swap back and test that fields are all back to original values.
398
+ reflection_tester.SwapRepeatedsViaReflection(&message);
399
+ TestUtil::ExpectAllFieldsSet(message);
400
+ }
401
+
402
+ TEST(GeneratedMessageReflectionTest, SwapRepeatedElementsExtension) {
403
+ unittest::TestAllExtensions message;
404
+ TestUtil::ReflectionTester reflection_tester(
405
+ unittest::TestAllExtensions::descriptor());
406
+
407
+ TestUtil::SetAllExtensions(&message);
408
+
409
+ // Swap and test that fields are all swapped.
410
+ reflection_tester.SwapRepeatedsViaReflection(&message);
411
+ TestUtil::ExpectRepeatedExtensionsSwapped(message);
412
+
413
+ // Swap back and test that fields are all back to original values.
414
+ reflection_tester.SwapRepeatedsViaReflection(&message);
415
+ TestUtil::ExpectAllExtensionsSet(message);
416
+ }
417
+
418
+ TEST(GeneratedMessageReflectionTest, Extensions) {
419
+ // Set every extension to a unique value then go back and check all those
420
+ // values.
421
+ unittest::TestAllExtensions message;
422
+ TestUtil::ReflectionTester reflection_tester(
423
+ unittest::TestAllExtensions::descriptor());
424
+
425
+ reflection_tester.SetAllFieldsViaReflection(&message);
426
+ TestUtil::ExpectAllExtensionsSet(message);
427
+ reflection_tester.ExpectAllFieldsSetViaReflection(message);
428
+
429
+ reflection_tester.ModifyRepeatedFieldsViaReflection(&message);
430
+ TestUtil::ExpectRepeatedExtensionsModified(message);
431
+ }
432
+
433
+ TEST(GeneratedMessageReflectionTest, FindExtensionTypeByNumber) {
434
+ const Reflection* reflection =
435
+ unittest::TestAllExtensions::default_instance().GetReflection();
436
+
437
+ const FieldDescriptor* extension1 =
438
+ unittest::TestAllExtensions::descriptor()->file()->FindExtensionByName(
439
+ "optional_int32_extension");
440
+ const FieldDescriptor* extension2 =
441
+ unittest::TestAllExtensions::descriptor()->file()->FindExtensionByName(
442
+ "repeated_string_extension");
443
+
444
+ EXPECT_EQ(extension1,
445
+ reflection->FindKnownExtensionByNumber(extension1->number()));
446
+ EXPECT_EQ(extension2,
447
+ reflection->FindKnownExtensionByNumber(extension2->number()));
448
+
449
+ // Non-existent extension.
450
+ EXPECT_TRUE(reflection->FindKnownExtensionByNumber(62341) == NULL);
451
+
452
+ // Extensions of TestAllExtensions should not show up as extensions of
453
+ // other types.
454
+ EXPECT_TRUE(unittest::TestAllTypes::default_instance().GetReflection()->
455
+ FindKnownExtensionByNumber(extension1->number()) == NULL);
456
+ }
457
+
458
+ TEST(GeneratedMessageReflectionTest, FindKnownExtensionByName) {
459
+ const Reflection* reflection =
460
+ unittest::TestAllExtensions::default_instance().GetReflection();
461
+
462
+ const FieldDescriptor* extension1 =
463
+ unittest::TestAllExtensions::descriptor()->file()->FindExtensionByName(
464
+ "optional_int32_extension");
465
+ const FieldDescriptor* extension2 =
466
+ unittest::TestAllExtensions::descriptor()->file()->FindExtensionByName(
467
+ "repeated_string_extension");
468
+
469
+ EXPECT_EQ(extension1,
470
+ reflection->FindKnownExtensionByName(extension1->full_name()));
471
+ EXPECT_EQ(extension2,
472
+ reflection->FindKnownExtensionByName(extension2->full_name()));
473
+
474
+ // Non-existent extension.
475
+ EXPECT_TRUE(reflection->FindKnownExtensionByName("no_such_ext") == NULL);
476
+
477
+ // Extensions of TestAllExtensions should not show up as extensions of
478
+ // other types.
479
+ EXPECT_TRUE(unittest::TestAllTypes::default_instance().GetReflection()->
480
+ FindKnownExtensionByName(extension1->full_name()) == NULL);
481
+ }
482
+
483
+ TEST(GeneratedMessageReflectionTest, SetAllocatedMessageTest) {
484
+ unittest::TestAllTypes from_message1;
485
+ unittest::TestAllTypes from_message2;
486
+ unittest::TestAllTypes to_message;
487
+ TestUtil::ReflectionTester reflection_tester(
488
+ unittest::TestAllTypes::descriptor());
489
+ reflection_tester.SetAllFieldsViaReflection(&from_message1);
490
+ reflection_tester.SetAllFieldsViaReflection(&from_message2);
491
+
492
+ // Before moving fields, we expect the nested messages to be NULL.
493
+ reflection_tester.ExpectMessagesReleasedViaReflection(
494
+ &to_message, TestUtil::ReflectionTester::IS_NULL);
495
+
496
+ // After fields are moved we should get non-NULL releases.
497
+ reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
498
+ &from_message1, &to_message);
499
+ reflection_tester.ExpectMessagesReleasedViaReflection(
500
+ &to_message, TestUtil::ReflectionTester::NOT_NULL);
501
+
502
+ // Another move to make sure that we can SetAllocated several times.
503
+ reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
504
+ &from_message2, &to_message);
505
+ reflection_tester.ExpectMessagesReleasedViaReflection(
506
+ &to_message, TestUtil::ReflectionTester::NOT_NULL);
507
+
508
+ // After SetAllocatedOptionalMessageFieldsToNullViaReflection() we expect the
509
+ // releases to be NULL again.
510
+ reflection_tester.SetAllocatedOptionalMessageFieldsToNullViaReflection(
511
+ &to_message);
512
+ reflection_tester.ExpectMessagesReleasedViaReflection(
513
+ &to_message, TestUtil::ReflectionTester::IS_NULL);
514
+ }
515
+
516
+ TEST(GeneratedMessageReflectionTest, SetAllocatedExtensionMessageTest) {
517
+ unittest::TestAllExtensions from_message1;
518
+ unittest::TestAllExtensions from_message2;
519
+ unittest::TestAllExtensions to_message;
520
+ TestUtil::ReflectionTester reflection_tester(
521
+ unittest::TestAllExtensions::descriptor());
522
+ reflection_tester.SetAllFieldsViaReflection(&from_message1);
523
+ reflection_tester.SetAllFieldsViaReflection(&from_message2);
524
+
525
+ // Before moving fields, we expect the nested messages to be NULL.
526
+ reflection_tester.ExpectMessagesReleasedViaReflection(
527
+ &to_message, TestUtil::ReflectionTester::IS_NULL);
528
+
529
+ // After fields are moved we should get non-NULL releases.
530
+ reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
531
+ &from_message1, &to_message);
532
+ reflection_tester.ExpectMessagesReleasedViaReflection(
533
+ &to_message, TestUtil::ReflectionTester::NOT_NULL);
534
+
535
+ // Another move to make sure that we can SetAllocated several times.
536
+ reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
537
+ &from_message2, &to_message);
538
+ reflection_tester.ExpectMessagesReleasedViaReflection(
539
+ &to_message, TestUtil::ReflectionTester::NOT_NULL);
540
+
541
+ // After SetAllocatedOptionalMessageFieldsToNullViaReflection() we expect the
542
+ // releases to be NULL again.
543
+ reflection_tester.SetAllocatedOptionalMessageFieldsToNullViaReflection(
544
+ &to_message);
545
+ reflection_tester.ExpectMessagesReleasedViaReflection(
546
+ &to_message, TestUtil::ReflectionTester::IS_NULL);
547
+ }
548
+
549
+ TEST(GeneratedMessageReflectionTest, ListFieldsOneOf) {
550
+ unittest::TestOneof2 message;
551
+ TestUtil::SetOneof1(&message);
552
+
553
+ const Reflection* reflection = message.GetReflection();
554
+ vector<const FieldDescriptor*> fields;
555
+ reflection->ListFields(message, &fields);
556
+ EXPECT_EQ(4, fields.size());
557
+ }
558
+
559
+ TEST(GeneratedMessageReflectionTest, Oneof) {
560
+ unittest::TestOneof2 message;
561
+ const Descriptor* descriptor = message.GetDescriptor();
562
+ const Reflection* reflection = message.GetReflection();
563
+
564
+ // Check default values.
565
+ EXPECT_EQ(0, reflection->GetInt32(
566
+ message, descriptor->FindFieldByName("foo_int")));
567
+ EXPECT_EQ("", reflection->GetString(
568
+ message, descriptor->FindFieldByName("foo_string")));
569
+ EXPECT_EQ("", reflection->GetString(
570
+ message, descriptor->FindFieldByName("foo_cord")));
571
+ EXPECT_EQ("", reflection->GetString(
572
+ message, descriptor->FindFieldByName("foo_string_piece")));
573
+ EXPECT_EQ("", reflection->GetString(
574
+ message, descriptor->FindFieldByName("foo_bytes")));
575
+ EXPECT_EQ(unittest::TestOneof2::FOO, reflection->GetEnum(
576
+ message, descriptor->FindFieldByName("foo_enum"))->number());
577
+ EXPECT_EQ(&unittest::TestOneof2::NestedMessage::default_instance(),
578
+ &reflection->GetMessage(
579
+ message, descriptor->FindFieldByName("foo_message")));
580
+ EXPECT_EQ(&unittest::TestOneof2::FooGroup::default_instance(),
581
+ &reflection->GetMessage(
582
+ message, descriptor->FindFieldByName("foogroup")));
583
+ EXPECT_NE(&unittest::TestOneof2::FooGroup::default_instance(),
584
+ &reflection->GetMessage(
585
+ message, descriptor->FindFieldByName("foo_lazy_message")));
586
+ EXPECT_EQ(5, reflection->GetInt32(
587
+ message, descriptor->FindFieldByName("bar_int")));
588
+ EXPECT_EQ("STRING", reflection->GetString(
589
+ message, descriptor->FindFieldByName("bar_string")));
590
+ EXPECT_EQ("CORD", reflection->GetString(
591
+ message, descriptor->FindFieldByName("bar_cord")));
592
+ EXPECT_EQ("SPIECE", reflection->GetString(
593
+ message, descriptor->FindFieldByName("bar_string_piece")));
594
+ EXPECT_EQ("BYTES", reflection->GetString(
595
+ message, descriptor->FindFieldByName("bar_bytes")));
596
+ EXPECT_EQ(unittest::TestOneof2::BAR, reflection->GetEnum(
597
+ message, descriptor->FindFieldByName("bar_enum"))->number());
598
+
599
+ // Check Set functions.
600
+ reflection->SetInt32(
601
+ &message, descriptor->FindFieldByName("foo_int"), 123);
602
+ EXPECT_EQ(123, reflection->GetInt32(
603
+ message, descriptor->FindFieldByName("foo_int")));
604
+ reflection->SetString(
605
+ &message, descriptor->FindFieldByName("foo_string"), "abc");
606
+ EXPECT_EQ("abc", reflection->GetString(
607
+ message, descriptor->FindFieldByName("foo_string")));
608
+ reflection->SetString(
609
+ &message, descriptor->FindFieldByName("foo_bytes"), "bytes");
610
+ EXPECT_EQ("bytes", reflection->GetString(
611
+ message, descriptor->FindFieldByName("foo_bytes")));
612
+ reflection->SetString(
613
+ &message, descriptor->FindFieldByName("bar_cord"), "change_cord");
614
+ EXPECT_EQ("change_cord", reflection->GetString(
615
+ message, descriptor->FindFieldByName("bar_cord")));
616
+ reflection->SetString(
617
+ &message, descriptor->FindFieldByName("bar_string_piece"),
618
+ "change_spiece");
619
+ EXPECT_EQ("change_spiece", reflection->GetString(
620
+ message, descriptor->FindFieldByName("bar_string_piece")));
621
+ }
622
+
623
+ TEST(GeneratedMessageReflectionTest, SetAllocatedOneofMessageTest) {
624
+ unittest::TestOneof2 from_message1;
625
+ unittest::TestOneof2 from_message2;
626
+ unittest::TestOneof2 to_message;
627
+ const Descriptor* descriptor = unittest::TestOneof2::descriptor();
628
+ const Reflection* reflection = to_message.GetReflection();
629
+
630
+ Message* released = reflection->ReleaseMessage(
631
+ &to_message, descriptor->FindFieldByName("foo_lazy_message"));
632
+ EXPECT_TRUE(released == NULL);
633
+ released = reflection->ReleaseMessage(
634
+ &to_message, descriptor->FindFieldByName("foo_message"));
635
+ EXPECT_TRUE(released == NULL);
636
+
637
+ TestUtil::ReflectionTester::SetOneofViaReflection(&from_message1);
638
+ TestUtil::ReflectionTester::ExpectOneofSetViaReflection(from_message1);
639
+
640
+ TestUtil::ReflectionTester::
641
+ SetAllocatedOptionalMessageFieldsToMessageViaReflection(
642
+ &from_message1, &to_message);
643
+ const Message& sub_message = reflection->GetMessage(
644
+ to_message, descriptor->FindFieldByName("foo_lazy_message"));
645
+ released = reflection->ReleaseMessage(
646
+ &to_message, descriptor->FindFieldByName("foo_lazy_message"));
647
+ EXPECT_TRUE(released != NULL);
648
+ EXPECT_EQ(&sub_message, released);
649
+ delete released;
650
+
651
+ TestUtil::ReflectionTester::SetOneofViaReflection(&from_message2);
652
+
653
+ reflection->MutableMessage(
654
+ &from_message2, descriptor->FindFieldByName("foo_message"));
655
+
656
+ TestUtil::ReflectionTester::
657
+ SetAllocatedOptionalMessageFieldsToMessageViaReflection(
658
+ &from_message2, &to_message);
659
+
660
+ const Message& sub_message2 = reflection->GetMessage(
661
+ to_message, descriptor->FindFieldByName("foo_message"));
662
+ released = reflection->ReleaseMessage(
663
+ &to_message, descriptor->FindFieldByName("foo_message"));
664
+ EXPECT_TRUE(released != NULL);
665
+ EXPECT_EQ(&sub_message2, released);
666
+ delete released;
667
+ }
668
+
669
+ TEST(GeneratedMessageReflectionTest, ReleaseMessageTest) {
670
+ unittest::TestAllTypes message;
671
+ TestUtil::ReflectionTester reflection_tester(
672
+ unittest::TestAllTypes::descriptor());
673
+
674
+ // When nothing is set, we expect all released messages to be NULL.
675
+ reflection_tester.ExpectMessagesReleasedViaReflection(
676
+ &message, TestUtil::ReflectionTester::IS_NULL);
677
+
678
+ // After fields are set we should get non-NULL releases.
679
+ reflection_tester.SetAllFieldsViaReflection(&message);
680
+ reflection_tester.ExpectMessagesReleasedViaReflection(
681
+ &message, TestUtil::ReflectionTester::NOT_NULL);
682
+
683
+ // After Clear() we may or may not get a message from ReleaseMessage().
684
+ // This is implementation specific.
685
+ reflection_tester.SetAllFieldsViaReflection(&message);
686
+ message.Clear();
687
+ reflection_tester.ExpectMessagesReleasedViaReflection(
688
+ &message, TestUtil::ReflectionTester::CAN_BE_NULL);
689
+
690
+ // Test a different code path for setting after releasing.
691
+ TestUtil::SetAllFields(&message);
692
+ TestUtil::ExpectAllFieldsSet(message);
693
+ }
694
+
695
+ TEST(GeneratedMessageReflectionTest, ReleaseExtensionMessageTest) {
696
+ unittest::TestAllExtensions message;
697
+ TestUtil::ReflectionTester reflection_tester(
698
+ unittest::TestAllExtensions::descriptor());
699
+
700
+ // When nothing is set, we expect all released messages to be NULL.
701
+ reflection_tester.ExpectMessagesReleasedViaReflection(
702
+ &message, TestUtil::ReflectionTester::IS_NULL);
703
+
704
+ // After fields are set we should get non-NULL releases.
705
+ reflection_tester.SetAllFieldsViaReflection(&message);
706
+ reflection_tester.ExpectMessagesReleasedViaReflection(
707
+ &message, TestUtil::ReflectionTester::NOT_NULL);
708
+
709
+ // After Clear() we may or may not get a message from ReleaseMessage().
710
+ // This is implementation specific.
711
+ reflection_tester.SetAllFieldsViaReflection(&message);
712
+ message.Clear();
713
+ reflection_tester.ExpectMessagesReleasedViaReflection(
714
+ &message, TestUtil::ReflectionTester::CAN_BE_NULL);
715
+
716
+ // Test a different code path for setting after releasing.
717
+ TestUtil::SetAllExtensions(&message);
718
+ TestUtil::ExpectAllExtensionsSet(message);
719
+ }
720
+
721
+ TEST(GeneratedMessageReflectionTest, ReleaseOneofMessageTest) {
722
+ unittest::TestOneof2 message;
723
+ TestUtil::ReflectionTester::SetOneofViaReflection(&message);
724
+
725
+ const Descriptor* descriptor = unittest::TestOneof2::descriptor();
726
+ const Reflection* reflection = message.GetReflection();
727
+ const Message& sub_message = reflection->GetMessage(
728
+ message, descriptor->FindFieldByName("foo_lazy_message"));
729
+ Message* released = reflection->ReleaseMessage(
730
+ &message, descriptor->FindFieldByName("foo_lazy_message"));
731
+
732
+ EXPECT_TRUE(released != NULL);
733
+ EXPECT_EQ(&sub_message, released);
734
+ delete released;
735
+
736
+ released = reflection->ReleaseMessage(
737
+ &message, descriptor->FindFieldByName("foo_lazy_message"));
738
+ EXPECT_TRUE(released == NULL);
739
+ }
740
+
741
+ #ifdef PROTOBUF_HAS_DEATH_TEST
742
+
743
+ TEST(GeneratedMessageReflectionTest, UsageErrors) {
744
+ unittest::TestAllTypes message;
745
+ const Reflection* reflection = message.GetReflection();
746
+ const Descriptor* descriptor = message.GetDescriptor();
747
+
748
+ #define f(NAME) descriptor->FindFieldByName(NAME)
749
+
750
+ // Testing every single failure mode would be too much work. Let's just
751
+ // check a few.
752
+ EXPECT_DEATH(
753
+ reflection->GetInt32(
754
+ message, descriptor->FindFieldByName("optional_int64")),
755
+ "Protocol Buffer reflection usage error:\n"
756
+ " Method : google::protobuf::Reflection::GetInt32\n"
757
+ " Message type: protobuf_unittest\\.TestAllTypes\n"
758
+ " Field : protobuf_unittest\\.TestAllTypes\\.optional_int64\n"
759
+ " Problem : Field is not the right type for this message:\n"
760
+ " Expected : CPPTYPE_INT32\n"
761
+ " Field type: CPPTYPE_INT64");
762
+ EXPECT_DEATH(
763
+ reflection->GetInt32(
764
+ message, descriptor->FindFieldByName("repeated_int32")),
765
+ "Protocol Buffer reflection usage error:\n"
766
+ " Method : google::protobuf::Reflection::GetInt32\n"
767
+ " Message type: protobuf_unittest.TestAllTypes\n"
768
+ " Field : protobuf_unittest.TestAllTypes.repeated_int32\n"
769
+ " Problem : Field is repeated; the method requires a singular field.");
770
+ EXPECT_DEATH(
771
+ reflection->GetInt32(
772
+ message, unittest::ForeignMessage::descriptor()->FindFieldByName("c")),
773
+ "Protocol Buffer reflection usage error:\n"
774
+ " Method : google::protobuf::Reflection::GetInt32\n"
775
+ " Message type: protobuf_unittest.TestAllTypes\n"
776
+ " Field : protobuf_unittest.ForeignMessage.c\n"
777
+ " Problem : Field does not match message type.");
778
+ EXPECT_DEATH(
779
+ reflection->HasField(
780
+ message, unittest::ForeignMessage::descriptor()->FindFieldByName("c")),
781
+ "Protocol Buffer reflection usage error:\n"
782
+ " Method : google::protobuf::Reflection::HasField\n"
783
+ " Message type: protobuf_unittest.TestAllTypes\n"
784
+ " Field : protobuf_unittest.ForeignMessage.c\n"
785
+ " Problem : Field does not match message type.");
786
+
787
+ #undef f
788
+ }
789
+
790
+ #endif // PROTOBUF_HAS_DEATH_TEST
791
+
792
+
793
+ } // namespace
794
+ } // namespace protobuf
795
+ } // namespace google