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,227 @@
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
+ package com.google.protobuf;
32
+
33
+ import junit.framework.TestCase;
34
+
35
+ import java.util.Iterator;
36
+ import java.util.List;
37
+ import java.util.ListIterator;
38
+
39
+ /**
40
+ * Tests for {@link UnmodifiableLazyStringList}.
41
+ *
42
+ * @author jonp@google.com (Jon Perlow)
43
+ */
44
+ public class UnmodifiableLazyStringListTest extends TestCase {
45
+
46
+ private static String STRING_A = "A";
47
+ private static String STRING_B = "B";
48
+ private static String STRING_C = "C";
49
+
50
+ private static ByteString BYTE_STRING_A = ByteString.copyFromUtf8("A");
51
+ private static ByteString BYTE_STRING_B = ByteString.copyFromUtf8("B");
52
+ private static ByteString BYTE_STRING_C = ByteString.copyFromUtf8("C");
53
+
54
+ public void testReadOnlyMethods() {
55
+ LazyStringArrayList rawList = createSampleList();
56
+ UnmodifiableLazyStringList list = new UnmodifiableLazyStringList(rawList);
57
+ assertEquals(3, list.size());
58
+ assertSame(STRING_A, list.get(0));
59
+ assertSame(STRING_B, list.get(1));
60
+ assertSame(STRING_C, list.get(2));
61
+ assertEquals(BYTE_STRING_A, list.getByteString(0));
62
+ assertEquals(BYTE_STRING_B, list.getByteString(1));
63
+ assertEquals(BYTE_STRING_C, list.getByteString(2));
64
+
65
+ List<ByteString> byteStringList = list.asByteStringList();
66
+ assertSame(list.getByteString(0), byteStringList.get(0));
67
+ assertSame(list.getByteString(1), byteStringList.get(1));
68
+ assertSame(list.getByteString(2), byteStringList.get(2));
69
+ }
70
+
71
+ public void testModifyMethods() {
72
+ LazyStringArrayList rawList = createSampleList();
73
+ UnmodifiableLazyStringList list = new UnmodifiableLazyStringList(rawList);
74
+
75
+ try {
76
+ list.remove(0);
77
+ fail();
78
+ } catch (UnsupportedOperationException e) {
79
+ // expected
80
+ }
81
+ assertEquals(3, list.size());
82
+
83
+ try {
84
+ list.add(STRING_B);
85
+ fail();
86
+ } catch (UnsupportedOperationException e) {
87
+ // expected
88
+ }
89
+ assertEquals(3, list.size());
90
+
91
+ try {
92
+ list.set(1, STRING_B);
93
+ fail();
94
+ } catch (UnsupportedOperationException e) {
95
+ // expected
96
+ }
97
+ assertEquals(3, list.size());
98
+
99
+ List<ByteString> byteStringList = list.asByteStringList();
100
+ try {
101
+ byteStringList.remove(0);
102
+ fail();
103
+ } catch (UnsupportedOperationException e) {
104
+ // expected
105
+ }
106
+ assertEquals(3, list.size());
107
+ assertEquals(3, byteStringList.size());
108
+
109
+ try {
110
+ byteStringList.add(BYTE_STRING_B);
111
+ fail();
112
+ } catch (UnsupportedOperationException e) {
113
+ // expected
114
+ }
115
+ assertEquals(3, list.size());
116
+ assertEquals(3, byteStringList.size());
117
+
118
+ try {
119
+ byteStringList.set(1, BYTE_STRING_B);
120
+ fail();
121
+ } catch (UnsupportedOperationException e) {
122
+ // expected
123
+ }
124
+ assertEquals(3, list.size());
125
+ assertEquals(3, byteStringList.size());
126
+ }
127
+
128
+ public void testIterator() {
129
+ LazyStringArrayList rawList = createSampleList();
130
+ UnmodifiableLazyStringList list = new UnmodifiableLazyStringList(rawList);
131
+
132
+ Iterator<String> iter = list.iterator();
133
+ int count = 0;
134
+ while (iter.hasNext()) {
135
+ iter.next();
136
+ count++;
137
+ try {
138
+ iter.remove();
139
+ fail();
140
+ } catch (UnsupportedOperationException e) {
141
+ // expected
142
+ }
143
+ }
144
+ assertEquals(3, count);
145
+
146
+ List<ByteString> byteStringList = list.asByteStringList();
147
+ Iterator<ByteString> byteIter = byteStringList.iterator();
148
+ count = 0;
149
+ while (byteIter.hasNext()) {
150
+ byteIter.next();
151
+ count++;
152
+ try {
153
+ byteIter.remove();
154
+ fail();
155
+ } catch (UnsupportedOperationException e) {
156
+ // expected
157
+ }
158
+ }
159
+ assertEquals(3, count);
160
+ }
161
+
162
+ public void testListIterator() {
163
+ LazyStringArrayList rawList = createSampleList();
164
+ UnmodifiableLazyStringList list = new UnmodifiableLazyStringList(rawList);
165
+
166
+ ListIterator<String> iter = list.listIterator();
167
+ int count = 0;
168
+ while (iter.hasNext()) {
169
+ iter.next();
170
+ count++;
171
+ try {
172
+ iter.remove();
173
+ fail();
174
+ } catch (UnsupportedOperationException e) {
175
+ // expected
176
+ }
177
+ try {
178
+ iter.set("bar");
179
+ fail();
180
+ } catch (UnsupportedOperationException e) {
181
+ // expected
182
+ }
183
+ try {
184
+ iter.add("bar");
185
+ fail();
186
+ } catch (UnsupportedOperationException e) {
187
+ // expected
188
+ }
189
+ }
190
+ assertEquals(3, count);
191
+
192
+ List<ByteString> byteStringList = list.asByteStringList();
193
+ ListIterator<ByteString> byteIter = byteStringList.listIterator();
194
+ count = 0;
195
+ while (byteIter.hasNext()) {
196
+ byteIter.next();
197
+ count++;
198
+ try {
199
+ byteIter.remove();
200
+ fail();
201
+ } catch (UnsupportedOperationException e) {
202
+ // expected
203
+ }
204
+ try {
205
+ byteIter.set(BYTE_STRING_A);
206
+ fail();
207
+ } catch (UnsupportedOperationException e) {
208
+ // expected
209
+ }
210
+ try {
211
+ byteIter.add(BYTE_STRING_A);
212
+ fail();
213
+ } catch (UnsupportedOperationException e) {
214
+ // expected
215
+ }
216
+ }
217
+ assertEquals(3, count);
218
+ }
219
+
220
+ private LazyStringArrayList createSampleList() {
221
+ LazyStringArrayList rawList = new LazyStringArrayList();
222
+ rawList.add(STRING_A);
223
+ rawList.add(STRING_B);
224
+ rawList.add(STRING_C);
225
+ return rawList;
226
+ }
227
+ }
@@ -0,0 +1,606 @@
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
+ package com.google.protobuf;
32
+
33
+ import junit.framework.TestCase;
34
+
35
+ import java.io.ByteArrayInputStream;
36
+ import java.io.ByteArrayOutputStream;
37
+ import java.util.List;
38
+
39
+ import protobuf_unittest.UnittestProto;
40
+ import protobuf_unittest.UnittestProto.TestAllExtensions;
41
+ import protobuf_unittest.UnittestProto.TestAllTypes;
42
+ import protobuf_unittest.UnittestProto.TestFieldOrderings;
43
+ import protobuf_unittest.UnittestProto.TestOneof2;
44
+ import protobuf_unittest.UnittestProto.TestOneofBackwardsCompatible;
45
+ import protobuf_unittest.UnittestProto.TestPackedExtensions;
46
+ import protobuf_unittest.UnittestProto.TestPackedTypes;
47
+ import protobuf_unittest.UnittestMset.TestMessageSet;
48
+ import protobuf_unittest.UnittestMset.RawMessageSet;
49
+ import protobuf_unittest.UnittestMset.TestMessageSetExtension1;
50
+ import protobuf_unittest.UnittestMset.TestMessageSetExtension2;
51
+ import com.google.protobuf.UnittestLite.TestAllExtensionsLite;
52
+ import com.google.protobuf.UnittestLite.TestPackedExtensionsLite;
53
+
54
+ /**
55
+ * Tests related to parsing and serialization.
56
+ *
57
+ * @author kenton@google.com (Kenton Varda)
58
+ */
59
+ public class WireFormatTest extends TestCase {
60
+ public void testSerialization() throws Exception {
61
+ TestAllTypes message = TestUtil.getAllSet();
62
+
63
+ ByteString rawBytes = message.toByteString();
64
+ assertEquals(rawBytes.size(), message.getSerializedSize());
65
+
66
+ TestAllTypes message2 = TestAllTypes.parseFrom(rawBytes);
67
+
68
+ TestUtil.assertAllFieldsSet(message2);
69
+ }
70
+
71
+ public void testSerializationPacked() throws Exception {
72
+ TestPackedTypes message = TestUtil.getPackedSet();
73
+
74
+ ByteString rawBytes = message.toByteString();
75
+ assertEquals(rawBytes.size(), message.getSerializedSize());
76
+
77
+ TestPackedTypes message2 = TestPackedTypes.parseFrom(rawBytes);
78
+
79
+ TestUtil.assertPackedFieldsSet(message2);
80
+ }
81
+
82
+ public void testSerializeExtensions() throws Exception {
83
+ // TestAllTypes and TestAllExtensions should have compatible wire formats,
84
+ // so if we serialize a TestAllExtensions then parse it as TestAllTypes
85
+ // it should work.
86
+
87
+ TestAllExtensions message = TestUtil.getAllExtensionsSet();
88
+ ByteString rawBytes = message.toByteString();
89
+ assertEquals(rawBytes.size(), message.getSerializedSize());
90
+
91
+ TestAllTypes message2 = TestAllTypes.parseFrom(rawBytes);
92
+
93
+ TestUtil.assertAllFieldsSet(message2);
94
+ }
95
+
96
+ public void testSerializePackedExtensions() throws Exception {
97
+ // TestPackedTypes and TestPackedExtensions should have compatible wire
98
+ // formats; check that they serialize to the same string.
99
+ TestPackedExtensions message = TestUtil.getPackedExtensionsSet();
100
+ ByteString rawBytes = message.toByteString();
101
+
102
+ TestPackedTypes message2 = TestUtil.getPackedSet();
103
+ ByteString rawBytes2 = message2.toByteString();
104
+
105
+ assertEquals(rawBytes, rawBytes2);
106
+ }
107
+
108
+ public void testSerializationPackedWithoutGetSerializedSize()
109
+ throws Exception {
110
+ // Write directly to an OutputStream, without invoking getSerializedSize()
111
+ // This used to be a bug where the size of a packed field was incorrect,
112
+ // since getSerializedSize() was never invoked.
113
+ TestPackedTypes message = TestUtil.getPackedSet();
114
+
115
+ // Directly construct a CodedOutputStream around the actual OutputStream,
116
+ // in case writeTo(OutputStream output) invokes getSerializedSize();
117
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
118
+ CodedOutputStream codedOutput = CodedOutputStream.newInstance(outputStream);
119
+
120
+ message.writeTo(codedOutput);
121
+
122
+ codedOutput.flush();
123
+
124
+ TestPackedTypes message2 = TestPackedTypes.parseFrom(
125
+ outputStream.toByteArray());
126
+
127
+ TestUtil.assertPackedFieldsSet(message2);
128
+ }
129
+
130
+ public void testSerializeExtensionsLite() throws Exception {
131
+ // TestAllTypes and TestAllExtensions should have compatible wire formats,
132
+ // so if we serialize a TestAllExtensions then parse it as TestAllTypes
133
+ // it should work.
134
+
135
+ TestAllExtensionsLite message = TestUtil.getAllLiteExtensionsSet();
136
+ ByteString rawBytes = message.toByteString();
137
+ assertEquals(rawBytes.size(), message.getSerializedSize());
138
+
139
+ TestAllTypes message2 = TestAllTypes.parseFrom(rawBytes);
140
+
141
+ TestUtil.assertAllFieldsSet(message2);
142
+ }
143
+
144
+ public void testSerializePackedExtensionsLite() throws Exception {
145
+ // TestPackedTypes and TestPackedExtensions should have compatible wire
146
+ // formats; check that they serialize to the same string.
147
+ TestPackedExtensionsLite message = TestUtil.getLitePackedExtensionsSet();
148
+ ByteString rawBytes = message.toByteString();
149
+
150
+ TestPackedTypes message2 = TestUtil.getPackedSet();
151
+ ByteString rawBytes2 = message2.toByteString();
152
+
153
+ assertEquals(rawBytes, rawBytes2);
154
+ }
155
+
156
+ public void testParseExtensions() throws Exception {
157
+ // TestAllTypes and TestAllExtensions should have compatible wire formats,
158
+ // so if we serialize a TestAllTypes then parse it as TestAllExtensions
159
+ // it should work.
160
+
161
+ TestAllTypes message = TestUtil.getAllSet();
162
+ ByteString rawBytes = message.toByteString();
163
+
164
+ ExtensionRegistry registry = TestUtil.getExtensionRegistry();
165
+
166
+ TestAllExtensions message2 =
167
+ TestAllExtensions.parseFrom(rawBytes, registry);
168
+
169
+ TestUtil.assertAllExtensionsSet(message2);
170
+ }
171
+
172
+ public void testParsePackedExtensions() throws Exception {
173
+ // Ensure that packed extensions can be properly parsed.
174
+ TestPackedExtensions message = TestUtil.getPackedExtensionsSet();
175
+ ByteString rawBytes = message.toByteString();
176
+
177
+ ExtensionRegistry registry = TestUtil.getExtensionRegistry();
178
+
179
+ TestPackedExtensions message2 =
180
+ TestPackedExtensions.parseFrom(rawBytes, registry);
181
+
182
+ TestUtil.assertPackedExtensionsSet(message2);
183
+ }
184
+
185
+ public void testParseExtensionsLite() throws Exception {
186
+ // TestAllTypes and TestAllExtensions should have compatible wire formats,
187
+ // so if we serialize a TestAllTypes then parse it as TestAllExtensions
188
+ // it should work.
189
+
190
+ TestAllTypes message = TestUtil.getAllSet();
191
+ ByteString rawBytes = message.toByteString();
192
+
193
+ ExtensionRegistryLite registry_lite = TestUtil.getExtensionRegistryLite();
194
+
195
+ TestAllExtensionsLite message2 =
196
+ TestAllExtensionsLite.parseFrom(rawBytes, registry_lite);
197
+
198
+ TestUtil.assertAllExtensionsSet(message2);
199
+
200
+ // Try again using a full extension registry.
201
+ ExtensionRegistry registry = TestUtil.getExtensionRegistry();
202
+
203
+ TestAllExtensionsLite message3 =
204
+ TestAllExtensionsLite.parseFrom(rawBytes, registry);
205
+
206
+ TestUtil.assertAllExtensionsSet(message3);
207
+ }
208
+
209
+ public void testParsePackedExtensionsLite() throws Exception {
210
+ // Ensure that packed extensions can be properly parsed.
211
+ TestPackedExtensionsLite message = TestUtil.getLitePackedExtensionsSet();
212
+ ByteString rawBytes = message.toByteString();
213
+
214
+ ExtensionRegistryLite registry = TestUtil.getExtensionRegistryLite();
215
+
216
+ TestPackedExtensionsLite message2 =
217
+ TestPackedExtensionsLite.parseFrom(rawBytes, registry);
218
+
219
+ TestUtil.assertPackedExtensionsSet(message2);
220
+ }
221
+
222
+ public void testExtensionsSerializedSize() throws Exception {
223
+ assertNotSame(TestUtil.getAllSet().getSerializedSize(),
224
+ TestUtil.getAllExtensionsSet().getSerializedSize());
225
+ }
226
+
227
+ public void testSerializeDelimited() throws Exception {
228
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
229
+ TestUtil.getAllSet().writeDelimitedTo(output);
230
+ output.write(12);
231
+ TestUtil.getPackedSet().writeDelimitedTo(output);
232
+ output.write(34);
233
+
234
+ ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());
235
+
236
+ TestUtil.assertAllFieldsSet(TestAllTypes.parseDelimitedFrom(input));
237
+ assertEquals(12, input.read());
238
+ TestUtil.assertPackedFieldsSet(TestPackedTypes.parseDelimitedFrom(input));
239
+ assertEquals(34, input.read());
240
+ assertEquals(-1, input.read());
241
+
242
+ // We're at EOF, so parsing again should return null.
243
+ assertTrue(TestAllTypes.parseDelimitedFrom(input) == null);
244
+ }
245
+
246
+ private void assertFieldsInOrder(ByteString data) throws Exception {
247
+ CodedInputStream input = data.newCodedInput();
248
+ int previousTag = 0;
249
+
250
+ while (true) {
251
+ int tag = input.readTag();
252
+ if (tag == 0) {
253
+ break;
254
+ }
255
+
256
+ assertTrue(tag > previousTag);
257
+ previousTag = tag;
258
+ input.skipField(tag);
259
+ }
260
+ }
261
+
262
+ public void testInterleavedFieldsAndExtensions() throws Exception {
263
+ // Tests that fields are written in order even when extension ranges
264
+ // are interleaved with field numbers.
265
+ ByteString data =
266
+ TestFieldOrderings.newBuilder()
267
+ .setMyInt(1)
268
+ .setMyString("foo")
269
+ .setMyFloat(1.0F)
270
+ .setExtension(UnittestProto.myExtensionInt, 23)
271
+ .setExtension(UnittestProto.myExtensionString, "bar")
272
+ .build().toByteString();
273
+ assertFieldsInOrder(data);
274
+
275
+ Descriptors.Descriptor descriptor = TestFieldOrderings.getDescriptor();
276
+ ByteString dynamic_data =
277
+ DynamicMessage.newBuilder(TestFieldOrderings.getDescriptor())
278
+ .setField(descriptor.findFieldByName("my_int"), 1L)
279
+ .setField(descriptor.findFieldByName("my_string"), "foo")
280
+ .setField(descriptor.findFieldByName("my_float"), 1.0F)
281
+ .setField(UnittestProto.myExtensionInt.getDescriptor(), 23)
282
+ .setField(UnittestProto.myExtensionString.getDescriptor(), "bar")
283
+ .build().toByteString();
284
+ assertFieldsInOrder(dynamic_data);
285
+ }
286
+
287
+ private ExtensionRegistry getTestFieldOrderingsRegistry() {
288
+ ExtensionRegistry result = ExtensionRegistry.newInstance();
289
+ result.add(UnittestProto.myExtensionInt);
290
+ result.add(UnittestProto.myExtensionString);
291
+ return result;
292
+ }
293
+
294
+ public void testParseMultipleExtensionRanges() throws Exception {
295
+ // Make sure we can parse a message that contains multiple extensions
296
+ // ranges.
297
+ TestFieldOrderings source =
298
+ TestFieldOrderings.newBuilder()
299
+ .setMyInt(1)
300
+ .setMyString("foo")
301
+ .setMyFloat(1.0F)
302
+ .setExtension(UnittestProto.myExtensionInt, 23)
303
+ .setExtension(UnittestProto.myExtensionString, "bar")
304
+ .build();
305
+ TestFieldOrderings dest =
306
+ TestFieldOrderings.parseFrom(source.toByteString(),
307
+ getTestFieldOrderingsRegistry());
308
+ assertEquals(source, dest);
309
+ }
310
+
311
+ public void testParseMultipleExtensionRangesDynamic() throws Exception {
312
+ // Same as above except with DynamicMessage.
313
+ Descriptors.Descriptor descriptor = TestFieldOrderings.getDescriptor();
314
+ DynamicMessage source =
315
+ DynamicMessage.newBuilder(TestFieldOrderings.getDescriptor())
316
+ .setField(descriptor.findFieldByName("my_int"), 1L)
317
+ .setField(descriptor.findFieldByName("my_string"), "foo")
318
+ .setField(descriptor.findFieldByName("my_float"), 1.0F)
319
+ .setField(UnittestProto.myExtensionInt.getDescriptor(), 23)
320
+ .setField(UnittestProto.myExtensionString.getDescriptor(), "bar")
321
+ .build();
322
+ DynamicMessage dest =
323
+ DynamicMessage.parseFrom(descriptor, source.toByteString(),
324
+ getTestFieldOrderingsRegistry());
325
+ assertEquals(source, dest);
326
+ }
327
+
328
+ private static final int UNKNOWN_TYPE_ID = 1550055;
329
+ private static final int TYPE_ID_1 =
330
+ TestMessageSetExtension1.getDescriptor().getExtensions().get(0).getNumber();
331
+ private static final int TYPE_ID_2 =
332
+ TestMessageSetExtension2.getDescriptor().getExtensions().get(0).getNumber();
333
+
334
+ public void testSerializeMessageSetEagerly() throws Exception {
335
+ testSerializeMessageSetWithFlag(true);
336
+ }
337
+
338
+ public void testSerializeMessageSetNotEagerly() throws Exception {
339
+ testSerializeMessageSetWithFlag(false);
340
+ }
341
+
342
+ private void testSerializeMessageSetWithFlag(boolean eagerParsing)
343
+ throws Exception {
344
+ ExtensionRegistryLite.setEagerlyParseMessageSets(eagerParsing);
345
+ // Set up a TestMessageSet with two known messages and an unknown one.
346
+ TestMessageSet messageSet =
347
+ TestMessageSet.newBuilder()
348
+ .setExtension(
349
+ TestMessageSetExtension1.messageSetExtension,
350
+ TestMessageSetExtension1.newBuilder().setI(123).build())
351
+ .setExtension(
352
+ TestMessageSetExtension2.messageSetExtension,
353
+ TestMessageSetExtension2.newBuilder().setStr("foo").build())
354
+ .setUnknownFields(
355
+ UnknownFieldSet.newBuilder()
356
+ .addField(UNKNOWN_TYPE_ID,
357
+ UnknownFieldSet.Field.newBuilder()
358
+ .addLengthDelimited(ByteString.copyFromUtf8("bar"))
359
+ .build())
360
+ .build())
361
+ .build();
362
+
363
+ ByteString data = messageSet.toByteString();
364
+
365
+ // Parse back using RawMessageSet and check the contents.
366
+ RawMessageSet raw = RawMessageSet.parseFrom(data);
367
+
368
+ assertTrue(raw.getUnknownFields().asMap().isEmpty());
369
+
370
+ assertEquals(3, raw.getItemCount());
371
+ assertEquals(TYPE_ID_1, raw.getItem(0).getTypeId());
372
+ assertEquals(TYPE_ID_2, raw.getItem(1).getTypeId());
373
+ assertEquals(UNKNOWN_TYPE_ID, raw.getItem(2).getTypeId());
374
+
375
+ TestMessageSetExtension1 message1 =
376
+ TestMessageSetExtension1.parseFrom(
377
+ raw.getItem(0).getMessage().toByteArray());
378
+ assertEquals(123, message1.getI());
379
+
380
+ TestMessageSetExtension2 message2 =
381
+ TestMessageSetExtension2.parseFrom(
382
+ raw.getItem(1).getMessage().toByteArray());
383
+ assertEquals("foo", message2.getStr());
384
+
385
+ assertEquals("bar", raw.getItem(2).getMessage().toStringUtf8());
386
+ }
387
+
388
+ public void testParseMessageSetEagerly() throws Exception {
389
+ testParseMessageSetWithFlag(true);
390
+ }
391
+
392
+ public void testParseMessageSetNotEagerly()throws Exception {
393
+ testParseMessageSetWithFlag(false);
394
+ }
395
+
396
+ private void testParseMessageSetWithFlag(boolean eagerParsing)
397
+ throws Exception {
398
+ ExtensionRegistryLite.setEagerlyParseMessageSets(eagerParsing);
399
+ ExtensionRegistry extensionRegistry = ExtensionRegistry.newInstance();
400
+ extensionRegistry.add(TestMessageSetExtension1.messageSetExtension);
401
+ extensionRegistry.add(TestMessageSetExtension2.messageSetExtension);
402
+
403
+ // Set up a RawMessageSet with two known messages and an unknown one.
404
+ RawMessageSet raw =
405
+ RawMessageSet.newBuilder()
406
+ .addItem(
407
+ RawMessageSet.Item.newBuilder()
408
+ .setTypeId(TYPE_ID_1)
409
+ .setMessage(
410
+ TestMessageSetExtension1.newBuilder()
411
+ .setI(123)
412
+ .build().toByteString())
413
+ .build())
414
+ .addItem(
415
+ RawMessageSet.Item.newBuilder()
416
+ .setTypeId(TYPE_ID_2)
417
+ .setMessage(
418
+ TestMessageSetExtension2.newBuilder()
419
+ .setStr("foo")
420
+ .build().toByteString())
421
+ .build())
422
+ .addItem(
423
+ RawMessageSet.Item.newBuilder()
424
+ .setTypeId(UNKNOWN_TYPE_ID)
425
+ .setMessage(ByteString.copyFromUtf8("bar"))
426
+ .build())
427
+ .build();
428
+
429
+ ByteString data = raw.toByteString();
430
+
431
+ // Parse as a TestMessageSet and check the contents.
432
+ TestMessageSet messageSet =
433
+ TestMessageSet.parseFrom(data, extensionRegistry);
434
+
435
+ assertEquals(123, messageSet.getExtension(
436
+ TestMessageSetExtension1.messageSetExtension).getI());
437
+ assertEquals("foo", messageSet.getExtension(
438
+ TestMessageSetExtension2.messageSetExtension).getStr());
439
+
440
+ // Check for unknown field with type LENGTH_DELIMITED,
441
+ // number UNKNOWN_TYPE_ID, and contents "bar".
442
+ UnknownFieldSet unknownFields = messageSet.getUnknownFields();
443
+ assertEquals(1, unknownFields.asMap().size());
444
+ assertTrue(unknownFields.hasField(UNKNOWN_TYPE_ID));
445
+
446
+ UnknownFieldSet.Field field = unknownFields.getField(UNKNOWN_TYPE_ID);
447
+ assertEquals(1, field.getLengthDelimitedList().size());
448
+ assertEquals("bar", field.getLengthDelimitedList().get(0).toStringUtf8());
449
+ }
450
+
451
+ public void testParseMessageSetExtensionEagerly() throws Exception {
452
+ testParseMessageSetExtensionWithFlag(true);
453
+ }
454
+
455
+ public void testParseMessageSetExtensionNotEagerly() throws Exception {
456
+ testParseMessageSetExtensionWithFlag(false);
457
+ }
458
+
459
+ private void testParseMessageSetExtensionWithFlag(boolean eagerParsing)
460
+ throws Exception {
461
+ ExtensionRegistryLite.setEagerlyParseMessageSets(eagerParsing);
462
+ ExtensionRegistry extensionRegistry = ExtensionRegistry.newInstance();
463
+ extensionRegistry.add(TestMessageSetExtension1.messageSetExtension);
464
+
465
+ // Set up a RawMessageSet with a known messages.
466
+ int TYPE_ID_1 =
467
+ TestMessageSetExtension1
468
+ .getDescriptor().getExtensions().get(0).getNumber();
469
+ RawMessageSet raw =
470
+ RawMessageSet.newBuilder()
471
+ .addItem(
472
+ RawMessageSet.Item.newBuilder()
473
+ .setTypeId(TYPE_ID_1)
474
+ .setMessage(
475
+ TestMessageSetExtension1.newBuilder()
476
+ .setI(123)
477
+ .build().toByteString())
478
+ .build())
479
+ .build();
480
+
481
+ ByteString data = raw.toByteString();
482
+
483
+ // Parse as a TestMessageSet and check the contents.
484
+ TestMessageSet messageSet =
485
+ TestMessageSet.parseFrom(data, extensionRegistry);
486
+ assertEquals(123, messageSet.getExtension(
487
+ TestMessageSetExtension1.messageSetExtension).getI());
488
+ }
489
+
490
+ public void testMergeLazyMessageSetExtensionEagerly() throws Exception {
491
+ testMergeLazyMessageSetExtensionWithFlag(true);
492
+ }
493
+
494
+ public void testMergeLazyMessageSetExtensionNotEagerly() throws Exception {
495
+ testMergeLazyMessageSetExtensionWithFlag(false);
496
+ }
497
+
498
+ private void testMergeLazyMessageSetExtensionWithFlag(boolean eagerParsing)
499
+ throws Exception {
500
+ ExtensionRegistryLite.setEagerlyParseMessageSets(eagerParsing);
501
+ ExtensionRegistry extensionRegistry = ExtensionRegistry.newInstance();
502
+ extensionRegistry.add(TestMessageSetExtension1.messageSetExtension);
503
+
504
+ // Set up a RawMessageSet with a known messages.
505
+ int TYPE_ID_1 =
506
+ TestMessageSetExtension1
507
+ .getDescriptor().getExtensions().get(0).getNumber();
508
+ RawMessageSet raw =
509
+ RawMessageSet.newBuilder()
510
+ .addItem(
511
+ RawMessageSet.Item.newBuilder()
512
+ .setTypeId(TYPE_ID_1)
513
+ .setMessage(
514
+ TestMessageSetExtension1.newBuilder()
515
+ .setI(123)
516
+ .build().toByteString())
517
+ .build())
518
+ .build();
519
+
520
+ ByteString data = raw.toByteString();
521
+
522
+ // Parse as a TestMessageSet and store value into lazy field
523
+ TestMessageSet messageSet =
524
+ TestMessageSet.parseFrom(data, extensionRegistry);
525
+ // Merge lazy field check the contents.
526
+ messageSet =
527
+ messageSet.toBuilder().mergeFrom(data, extensionRegistry).build();
528
+ assertEquals(123, messageSet.getExtension(
529
+ TestMessageSetExtension1.messageSetExtension).getI());
530
+ }
531
+
532
+ public void testMergeMessageSetExtensionEagerly() throws Exception {
533
+ testMergeMessageSetExtensionWithFlag(true);
534
+ }
535
+
536
+ public void testMergeMessageSetExtensionNotEagerly() throws Exception {
537
+ testMergeMessageSetExtensionWithFlag(false);
538
+ }
539
+
540
+ private void testMergeMessageSetExtensionWithFlag(boolean eagerParsing)
541
+ throws Exception {
542
+ ExtensionRegistryLite.setEagerlyParseMessageSets(eagerParsing);
543
+ ExtensionRegistry extensionRegistry = ExtensionRegistry.newInstance();
544
+ extensionRegistry.add(TestMessageSetExtension1.messageSetExtension);
545
+
546
+ // Set up a RawMessageSet with a known messages.
547
+ int TYPE_ID_1 =
548
+ TestMessageSetExtension1
549
+ .getDescriptor().getExtensions().get(0).getNumber();
550
+ RawMessageSet raw =
551
+ RawMessageSet.newBuilder()
552
+ .addItem(
553
+ RawMessageSet.Item.newBuilder()
554
+ .setTypeId(TYPE_ID_1)
555
+ .setMessage(
556
+ TestMessageSetExtension1.newBuilder()
557
+ .setI(123)
558
+ .build().toByteString())
559
+ .build())
560
+ .build();
561
+
562
+ // Serialize RawMessageSet unnormally (message value before type id)
563
+ ByteString.CodedBuilder out = ByteString.newCodedBuilder(
564
+ raw.getSerializedSize());
565
+ CodedOutputStream output = out.getCodedOutput();
566
+ List<RawMessageSet.Item> items = raw.getItemList();
567
+ for (int i = 0; i < items.size(); i++) {
568
+ RawMessageSet.Item item = items.get(i);
569
+ output.writeTag(1, WireFormat.WIRETYPE_START_GROUP);
570
+ output.writeBytes(3, item.getMessage());
571
+ output.writeInt32(2, item.getTypeId());
572
+ output.writeTag(1, WireFormat.WIRETYPE_END_GROUP);
573
+ }
574
+ ByteString data = out.build();
575
+
576
+ // Merge bytes into TestMessageSet and check the contents.
577
+ TestMessageSet messageSet =
578
+ TestMessageSet.newBuilder().mergeFrom(data, extensionRegistry).build();
579
+ assertEquals(123, messageSet.getExtension(
580
+ TestMessageSetExtension1.messageSetExtension).getI());
581
+ }
582
+
583
+ // ================================================================
584
+ // oneof
585
+ public void testOneofWireFormat() throws Exception {
586
+ TestOneof2.Builder builder = TestOneof2.newBuilder();
587
+ TestUtil.setOneof(builder);
588
+ TestOneof2 message = builder.build();
589
+ ByteString rawBytes = message.toByteString();
590
+
591
+ assertEquals(rawBytes.size(), message.getSerializedSize());
592
+
593
+ TestOneof2 message2 = TestOneof2.parseFrom(rawBytes);
594
+ TestUtil.assertOneofSet(message2);
595
+ }
596
+
597
+ public void testOneofOnlyLastSet() throws Exception {
598
+ TestOneofBackwardsCompatible source = TestOneofBackwardsCompatible
599
+ .newBuilder().setFooInt(100).setFooString("101").build();
600
+
601
+ ByteString rawBytes = source.toByteString();
602
+ TestOneof2 message = TestOneof2.parseFrom(rawBytes);
603
+ assertFalse(message.hasFooInt());
604
+ assertTrue(message.hasFooString());
605
+ }
606
+ }