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,396 @@
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.ByteArrayOutputStream;
36
+ import java.io.IOException;
37
+ import java.io.InputStream;
38
+ import java.io.OutputStream;
39
+ import java.io.UnsupportedEncodingException;
40
+ import java.nio.ByteBuffer;
41
+ import java.util.Arrays;
42
+ import java.util.List;
43
+ import java.util.NoSuchElementException;
44
+
45
+ /**
46
+ * Test {@link LiteralByteString} by setting up a reference string in {@link #setUp()}.
47
+ * This class is designed to be extended for testing extensions of {@link LiteralByteString}
48
+ * such as {@link BoundedByteString}, see {@link BoundedByteStringTest}.
49
+ *
50
+ * @author carlanton@google.com (Carl Haverl)
51
+ */
52
+ public class LiteralByteStringTest extends TestCase {
53
+ protected static final String UTF_8 = "UTF-8";
54
+
55
+ protected String classUnderTest;
56
+ protected byte[] referenceBytes;
57
+ protected ByteString stringUnderTest;
58
+ protected int expectedHashCode;
59
+
60
+ @Override
61
+ protected void setUp() throws Exception {
62
+ classUnderTest = "LiteralByteString";
63
+ referenceBytes = ByteStringTest.getTestBytes(1234, 11337766L);
64
+ stringUnderTest = ByteString.copyFrom(referenceBytes);
65
+ expectedHashCode = 331161852;
66
+ }
67
+
68
+ public void testExpectedType() {
69
+ String actualClassName = getActualClassName(stringUnderTest);
70
+ assertEquals(classUnderTest + " should match type exactly", classUnderTest, actualClassName);
71
+ }
72
+
73
+ protected String getActualClassName(Object object) {
74
+ String actualClassName = object.getClass().getName();
75
+ actualClassName = actualClassName.substring(actualClassName.lastIndexOf('.') + 1);
76
+ return actualClassName;
77
+ }
78
+
79
+ public void testByteAt() {
80
+ boolean stillEqual = true;
81
+ for (int i = 0; stillEqual && i < referenceBytes.length; ++i) {
82
+ stillEqual = (referenceBytes[i] == stringUnderTest.byteAt(i));
83
+ }
84
+ assertTrue(classUnderTest + " must capture the right bytes", stillEqual);
85
+ }
86
+
87
+ public void testByteIterator() {
88
+ boolean stillEqual = true;
89
+ ByteString.ByteIterator iter = stringUnderTest.iterator();
90
+ for (int i = 0; stillEqual && i < referenceBytes.length; ++i) {
91
+ stillEqual = (iter.hasNext() && referenceBytes[i] == iter.nextByte());
92
+ }
93
+ assertTrue(classUnderTest + " must capture the right bytes", stillEqual);
94
+ assertFalse(classUnderTest + " must have exhausted the itertor", iter.hasNext());
95
+
96
+ try {
97
+ iter.nextByte();
98
+ fail("Should have thrown an exception.");
99
+ } catch (NoSuchElementException e) {
100
+ // This is success
101
+ }
102
+ }
103
+
104
+ public void testByteIterable() {
105
+ boolean stillEqual = true;
106
+ int j = 0;
107
+ for (byte quantum : stringUnderTest) {
108
+ stillEqual = (referenceBytes[j] == quantum);
109
+ ++j;
110
+ }
111
+ assertTrue(classUnderTest + " must capture the right bytes as Bytes", stillEqual);
112
+ assertEquals(classUnderTest + " iterable character count", referenceBytes.length, j);
113
+ }
114
+
115
+ public void testSize() {
116
+ assertEquals(classUnderTest + " must have the expected size", referenceBytes.length,
117
+ stringUnderTest.size());
118
+ }
119
+
120
+ public void testGetTreeDepth() {
121
+ assertEquals(classUnderTest + " must have depth 0", 0, stringUnderTest.getTreeDepth());
122
+ }
123
+
124
+ public void testIsBalanced() {
125
+ assertTrue(classUnderTest + " is technically balanced", stringUnderTest.isBalanced());
126
+ }
127
+
128
+ public void testCopyTo_ByteArrayOffsetLength() {
129
+ int destinationOffset = 50;
130
+ int length = 100;
131
+ byte[] destination = new byte[destinationOffset + length];
132
+ int sourceOffset = 213;
133
+ stringUnderTest.copyTo(destination, sourceOffset, destinationOffset, length);
134
+ boolean stillEqual = true;
135
+ for (int i = 0; stillEqual && i < length; ++i) {
136
+ stillEqual = referenceBytes[i + sourceOffset] == destination[i + destinationOffset];
137
+ }
138
+ assertTrue(classUnderTest + ".copyTo(4 arg) must give the expected bytes", stillEqual);
139
+ }
140
+
141
+ public void testCopyTo_ByteArrayOffsetLengthErrors() {
142
+ int destinationOffset = 50;
143
+ int length = 100;
144
+ byte[] destination = new byte[destinationOffset + length];
145
+
146
+ try {
147
+ // Copy one too many bytes
148
+ stringUnderTest.copyTo(destination, stringUnderTest.size() + 1 - length,
149
+ destinationOffset, length);
150
+ fail("Should have thrown an exception when copying too many bytes of a "
151
+ + classUnderTest);
152
+ } catch (IndexOutOfBoundsException expected) {
153
+ // This is success
154
+ }
155
+
156
+ try {
157
+ // Copy with illegal negative sourceOffset
158
+ stringUnderTest.copyTo(destination, -1, destinationOffset, length);
159
+ fail("Should have thrown an exception when given a negative sourceOffset in "
160
+ + classUnderTest);
161
+ } catch (IndexOutOfBoundsException expected) {
162
+ // This is success
163
+ }
164
+
165
+ try {
166
+ // Copy with illegal negative destinationOffset
167
+ stringUnderTest.copyTo(destination, 0, -1, length);
168
+ fail("Should have thrown an exception when given a negative destinationOffset in "
169
+ + classUnderTest);
170
+ } catch (IndexOutOfBoundsException expected) {
171
+ // This is success
172
+ }
173
+
174
+ try {
175
+ // Copy with illegal negative size
176
+ stringUnderTest.copyTo(destination, 0, 0, -1);
177
+ fail("Should have thrown an exception when given a negative size in "
178
+ + classUnderTest);
179
+ } catch (IndexOutOfBoundsException expected) {
180
+ // This is success
181
+ }
182
+
183
+ try {
184
+ // Copy with illegal too-large sourceOffset
185
+ stringUnderTest.copyTo(destination, 2 * stringUnderTest.size(), 0, length);
186
+ fail("Should have thrown an exception when the destinationOffset is too large in "
187
+ + classUnderTest);
188
+ } catch (IndexOutOfBoundsException expected) {
189
+ // This is success
190
+ }
191
+
192
+ try {
193
+ // Copy with illegal too-large destinationOffset
194
+ stringUnderTest.copyTo(destination, 0, 2 * destination.length, length);
195
+ fail("Should have thrown an exception when the destinationOffset is too large in "
196
+ + classUnderTest);
197
+ } catch (IndexOutOfBoundsException expected) {
198
+ // This is success
199
+ }
200
+ }
201
+
202
+ public void testCopyTo_ByteBuffer() {
203
+ ByteBuffer myBuffer = ByteBuffer.allocate(referenceBytes.length);
204
+ stringUnderTest.copyTo(myBuffer);
205
+ assertTrue(classUnderTest + ".copyTo(ByteBuffer) must give back the same bytes",
206
+ Arrays.equals(referenceBytes, myBuffer.array()));
207
+ }
208
+
209
+ public void testAsReadOnlyByteBuffer() {
210
+ ByteBuffer byteBuffer = stringUnderTest.asReadOnlyByteBuffer();
211
+ byte[] roundTripBytes = new byte[referenceBytes.length];
212
+ assertTrue(byteBuffer.remaining() == referenceBytes.length);
213
+ assertTrue(byteBuffer.isReadOnly());
214
+ byteBuffer.get(roundTripBytes);
215
+ assertTrue(classUnderTest + ".asReadOnlyByteBuffer() must give back the same bytes",
216
+ Arrays.equals(referenceBytes, roundTripBytes));
217
+ }
218
+
219
+ public void testAsReadOnlyByteBufferList() {
220
+ List<ByteBuffer> byteBuffers = stringUnderTest.asReadOnlyByteBufferList();
221
+ int bytesSeen = 0;
222
+ byte[] roundTripBytes = new byte[referenceBytes.length];
223
+ for (ByteBuffer byteBuffer : byteBuffers) {
224
+ int thisLength = byteBuffer.remaining();
225
+ assertTrue(byteBuffer.isReadOnly());
226
+ assertTrue(bytesSeen + thisLength <= referenceBytes.length);
227
+ byteBuffer.get(roundTripBytes, bytesSeen, thisLength);
228
+ bytesSeen += thisLength;
229
+ }
230
+ assertTrue(bytesSeen == referenceBytes.length);
231
+ assertTrue(classUnderTest + ".asReadOnlyByteBufferTest() must give back the same bytes",
232
+ Arrays.equals(referenceBytes, roundTripBytes));
233
+ }
234
+
235
+ public void testToByteArray() {
236
+ byte[] roundTripBytes = stringUnderTest.toByteArray();
237
+ assertTrue(classUnderTest + ".toByteArray() must give back the same bytes",
238
+ Arrays.equals(referenceBytes, roundTripBytes));
239
+ }
240
+
241
+ public void testWriteTo() throws IOException {
242
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
243
+ stringUnderTest.writeTo(bos);
244
+ byte[] roundTripBytes = bos.toByteArray();
245
+ assertTrue(classUnderTest + ".writeTo() must give back the same bytes",
246
+ Arrays.equals(referenceBytes, roundTripBytes));
247
+ }
248
+
249
+ public void testWriteTo_mutating() throws IOException {
250
+ OutputStream os = new OutputStream() {
251
+ @Override
252
+ public void write(byte[] b, int off, int len) {
253
+ for (int x = 0; x < len; ++x) {
254
+ b[off + x] = (byte) 0;
255
+ }
256
+ }
257
+
258
+ @Override
259
+ public void write(int b) {
260
+ // Purposefully left blank.
261
+ }
262
+ };
263
+
264
+ stringUnderTest.writeTo(os);
265
+ byte[] newBytes = stringUnderTest.toByteArray();
266
+ assertTrue(classUnderTest + ".writeTo() must not grant access to underlying array",
267
+ Arrays.equals(referenceBytes, newBytes));
268
+ }
269
+
270
+ public void testNewOutput() throws IOException {
271
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
272
+ ByteString.Output output = ByteString.newOutput();
273
+ stringUnderTest.writeTo(output);
274
+ assertEquals("Output Size returns correct result",
275
+ output.size(), stringUnderTest.size());
276
+ output.writeTo(bos);
277
+ assertTrue("Output.writeTo() must give back the same bytes",
278
+ Arrays.equals(referenceBytes, bos.toByteArray()));
279
+
280
+ // write the output stream to itself! This should cause it to double
281
+ output.writeTo(output);
282
+ assertEquals("Writing an output stream to itself is successful",
283
+ stringUnderTest.concat(stringUnderTest), output.toByteString());
284
+
285
+ output.reset();
286
+ assertEquals("Output.reset() resets the output", 0, output.size());
287
+ assertEquals("Output.reset() resets the output",
288
+ ByteString.EMPTY, output.toByteString());
289
+
290
+ }
291
+
292
+ public void testToString() throws UnsupportedEncodingException {
293
+ String testString = "I love unicode \u1234\u5678 characters";
294
+ LiteralByteString unicode = new LiteralByteString(testString.getBytes(UTF_8));
295
+ String roundTripString = unicode.toString(UTF_8);
296
+ assertEquals(classUnderTest + " unicode must match", testString, roundTripString);
297
+ }
298
+
299
+ public void testEquals() {
300
+ assertEquals(classUnderTest + " must not equal null", false, stringUnderTest.equals(null));
301
+ assertEquals(classUnderTest + " must equal self", stringUnderTest, stringUnderTest);
302
+ assertFalse(classUnderTest + " must not equal the empty string",
303
+ stringUnderTest.equals(ByteString.EMPTY));
304
+ assertEquals(classUnderTest + " empty strings must be equal",
305
+ new LiteralByteString(new byte[]{}), stringUnderTest.substring(55, 55));
306
+ assertEquals(classUnderTest + " must equal another string with the same value",
307
+ stringUnderTest, new LiteralByteString(referenceBytes));
308
+
309
+ byte[] mungedBytes = new byte[referenceBytes.length];
310
+ System.arraycopy(referenceBytes, 0, mungedBytes, 0, referenceBytes.length);
311
+ mungedBytes[mungedBytes.length - 5] ^= 0xFF;
312
+ assertFalse(classUnderTest + " must not equal every string with the same length",
313
+ stringUnderTest.equals(new LiteralByteString(mungedBytes)));
314
+ }
315
+
316
+ public void testHashCode() {
317
+ int hash = stringUnderTest.hashCode();
318
+ assertEquals(classUnderTest + " must have expected hashCode", expectedHashCode, hash);
319
+ }
320
+
321
+ public void testPeekCachedHashCode() {
322
+ assertEquals(classUnderTest + ".peekCachedHashCode() should return zero at first", 0,
323
+ stringUnderTest.peekCachedHashCode());
324
+ stringUnderTest.hashCode();
325
+ assertEquals(classUnderTest + ".peekCachedHashCode should return zero at first",
326
+ expectedHashCode, stringUnderTest.peekCachedHashCode());
327
+ }
328
+
329
+ public void testPartialHash() {
330
+ // partialHash() is more strenuously tested elsewhere by testing hashes of substrings.
331
+ // This test would fail if the expected hash were 1. It's not.
332
+ int hash = stringUnderTest.partialHash(stringUnderTest.size(), 0, stringUnderTest.size());
333
+ assertEquals(classUnderTest + ".partialHash() must yield expected hashCode",
334
+ expectedHashCode, hash);
335
+ }
336
+
337
+ public void testNewInput() throws IOException {
338
+ InputStream input = stringUnderTest.newInput();
339
+ assertEquals("InputStream.available() returns correct value",
340
+ stringUnderTest.size(), input.available());
341
+ boolean stillEqual = true;
342
+ for (byte referenceByte : referenceBytes) {
343
+ int expectedInt = (referenceByte & 0xFF);
344
+ stillEqual = (expectedInt == input.read());
345
+ }
346
+ assertEquals("InputStream.available() returns correct value",
347
+ 0, input.available());
348
+ assertTrue(classUnderTest + " must give the same bytes from the InputStream", stillEqual);
349
+ assertEquals(classUnderTest + " InputStream must now be exhausted", -1, input.read());
350
+ }
351
+
352
+ public void testNewInput_skip() throws IOException {
353
+ InputStream input = stringUnderTest.newInput();
354
+ int stringSize = stringUnderTest.size();
355
+ int nearEndIndex = stringSize * 2 / 3;
356
+ long skipped1 = input.skip(nearEndIndex);
357
+ assertEquals("InputStream.skip()", skipped1, nearEndIndex);
358
+ assertEquals("InputStream.available()",
359
+ stringSize - skipped1, input.available());
360
+ assertTrue("InputStream.mark() is available", input.markSupported());
361
+ input.mark(0);
362
+ assertEquals("InputStream.skip(), read()",
363
+ stringUnderTest.byteAt(nearEndIndex) & 0xFF, input.read());
364
+ assertEquals("InputStream.available()",
365
+ stringSize - skipped1 - 1, input.available());
366
+ long skipped2 = input.skip(stringSize);
367
+ assertEquals("InputStream.skip() incomplete",
368
+ skipped2, stringSize - skipped1 - 1);
369
+ assertEquals("InputStream.skip(), no more input", 0, input.available());
370
+ assertEquals("InputStream.skip(), no more input", -1, input.read());
371
+ input.reset();
372
+ assertEquals("InputStream.reset() succeded",
373
+ stringSize - skipped1, input.available());
374
+ assertEquals("InputStream.reset(), read()",
375
+ stringUnderTest.byteAt(nearEndIndex) & 0xFF, input.read());
376
+ }
377
+
378
+ public void testNewCodedInput() throws IOException {
379
+ CodedInputStream cis = stringUnderTest.newCodedInput();
380
+ byte[] roundTripBytes = cis.readRawBytes(referenceBytes.length);
381
+ assertTrue(classUnderTest + " must give the same bytes back from the CodedInputStream",
382
+ Arrays.equals(referenceBytes, roundTripBytes));
383
+ assertTrue(classUnderTest + " CodedInputStream must now be exhausted", cis.isAtEnd());
384
+ }
385
+
386
+ /**
387
+ * Make sure we keep things simple when concatenating with empty. See also
388
+ * {@link ByteStringTest#testConcat_empty()}.
389
+ */
390
+ public void testConcat_empty() {
391
+ assertSame(classUnderTest + " concatenated with empty must give " + classUnderTest,
392
+ stringUnderTest.concat(ByteString.EMPTY), stringUnderTest);
393
+ assertSame("empty concatenated with " + classUnderTest + " must give " + classUnderTest,
394
+ ByteString.EMPTY.concat(stringUnderTest), stringUnderTest);
395
+ }
396
+ }
@@ -0,0 +1,353 @@
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 protobuf_unittest.UnittestProto.TestAllTypes;
34
+ import protobuf_unittest.UnittestProto.TestAllExtensions;
35
+ import protobuf_unittest.UnittestProto.TestRequired;
36
+ import protobuf_unittest.UnittestProto.TestRequiredForeign;
37
+ import protobuf_unittest.UnittestProto.ForeignMessage;
38
+
39
+ import junit.framework.TestCase;
40
+
41
+ import java.util.List;
42
+
43
+ /**
44
+ * Misc. unit tests for message operations that apply to both generated
45
+ * and dynamic messages.
46
+ *
47
+ * @author kenton@google.com Kenton Varda
48
+ */
49
+ public class MessageTest extends TestCase {
50
+ // =================================================================
51
+ // Message-merging tests.
52
+
53
+ static final TestAllTypes MERGE_SOURCE =
54
+ TestAllTypes.newBuilder()
55
+ .setOptionalInt32(1)
56
+ .setOptionalString("foo")
57
+ .setOptionalForeignMessage(ForeignMessage.getDefaultInstance())
58
+ .addRepeatedString("bar")
59
+ .build();
60
+
61
+ static final TestAllTypes MERGE_DEST =
62
+ TestAllTypes.newBuilder()
63
+ .setOptionalInt64(2)
64
+ .setOptionalString("baz")
65
+ .setOptionalForeignMessage(ForeignMessage.newBuilder().setC(3).build())
66
+ .addRepeatedString("qux")
67
+ .build();
68
+
69
+ static final String MERGE_RESULT_TEXT =
70
+ "optional_int32: 1\n" +
71
+ "optional_int64: 2\n" +
72
+ "optional_string: \"foo\"\n" +
73
+ "optional_foreign_message {\n" +
74
+ " c: 3\n" +
75
+ "}\n" +
76
+ "repeated_string: \"qux\"\n" +
77
+ "repeated_string: \"bar\"\n";
78
+
79
+ public void testMergeFrom() throws Exception {
80
+ TestAllTypes result =
81
+ TestAllTypes.newBuilder(MERGE_DEST)
82
+ .mergeFrom(MERGE_SOURCE).build();
83
+
84
+ assertEquals(MERGE_RESULT_TEXT, result.toString());
85
+ }
86
+
87
+ /**
88
+ * Test merging a DynamicMessage into a GeneratedMessage. As long as they
89
+ * have the same descriptor, this should work, but it is an entirely different
90
+ * code path.
91
+ */
92
+ public void testMergeFromDynamic() throws Exception {
93
+ TestAllTypes result =
94
+ TestAllTypes.newBuilder(MERGE_DEST)
95
+ .mergeFrom(DynamicMessage.newBuilder(MERGE_SOURCE).build())
96
+ .build();
97
+
98
+ assertEquals(MERGE_RESULT_TEXT, result.toString());
99
+ }
100
+
101
+ /** Test merging two DynamicMessages. */
102
+ public void testDynamicMergeFrom() throws Exception {
103
+ DynamicMessage result =
104
+ DynamicMessage.newBuilder(MERGE_DEST)
105
+ .mergeFrom(DynamicMessage.newBuilder(MERGE_SOURCE).build())
106
+ .build();
107
+
108
+ assertEquals(MERGE_RESULT_TEXT, result.toString());
109
+ }
110
+
111
+ // =================================================================
112
+ // Required-field-related tests.
113
+
114
+ private static final TestRequired TEST_REQUIRED_UNINITIALIZED =
115
+ TestRequired.getDefaultInstance();
116
+ private static final TestRequired TEST_REQUIRED_INITIALIZED =
117
+ TestRequired.newBuilder().setA(1).setB(2).setC(3).build();
118
+
119
+ public void testRequired() throws Exception {
120
+ TestRequired.Builder builder = TestRequired.newBuilder();
121
+
122
+ assertFalse(builder.isInitialized());
123
+ builder.setA(1);
124
+ assertFalse(builder.isInitialized());
125
+ builder.setB(1);
126
+ assertFalse(builder.isInitialized());
127
+ builder.setC(1);
128
+ assertTrue(builder.isInitialized());
129
+ }
130
+
131
+ public void testRequiredForeign() throws Exception {
132
+ TestRequiredForeign.Builder builder = TestRequiredForeign.newBuilder();
133
+
134
+ assertTrue(builder.isInitialized());
135
+
136
+ builder.setOptionalMessage(TEST_REQUIRED_UNINITIALIZED);
137
+ assertFalse(builder.isInitialized());
138
+
139
+ builder.setOptionalMessage(TEST_REQUIRED_INITIALIZED);
140
+ assertTrue(builder.isInitialized());
141
+
142
+ builder.addRepeatedMessage(TEST_REQUIRED_UNINITIALIZED);
143
+ assertFalse(builder.isInitialized());
144
+
145
+ builder.setRepeatedMessage(0, TEST_REQUIRED_INITIALIZED);
146
+ assertTrue(builder.isInitialized());
147
+ }
148
+
149
+ public void testRequiredExtension() throws Exception {
150
+ TestAllExtensions.Builder builder = TestAllExtensions.newBuilder();
151
+
152
+ assertTrue(builder.isInitialized());
153
+
154
+ builder.setExtension(TestRequired.single, TEST_REQUIRED_UNINITIALIZED);
155
+ assertFalse(builder.isInitialized());
156
+
157
+ builder.setExtension(TestRequired.single, TEST_REQUIRED_INITIALIZED);
158
+ assertTrue(builder.isInitialized());
159
+
160
+ builder.addExtension(TestRequired.multi, TEST_REQUIRED_UNINITIALIZED);
161
+ assertFalse(builder.isInitialized());
162
+
163
+ builder.setExtension(TestRequired.multi, 0, TEST_REQUIRED_INITIALIZED);
164
+ assertTrue(builder.isInitialized());
165
+ }
166
+
167
+ public void testRequiredDynamic() throws Exception {
168
+ Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
169
+ DynamicMessage.Builder builder = DynamicMessage.newBuilder(descriptor);
170
+
171
+ assertFalse(builder.isInitialized());
172
+ builder.setField(descriptor.findFieldByName("a"), 1);
173
+ assertFalse(builder.isInitialized());
174
+ builder.setField(descriptor.findFieldByName("b"), 1);
175
+ assertFalse(builder.isInitialized());
176
+ builder.setField(descriptor.findFieldByName("c"), 1);
177
+ assertTrue(builder.isInitialized());
178
+ }
179
+
180
+ public void testRequiredDynamicForeign() throws Exception {
181
+ Descriptors.Descriptor descriptor = TestRequiredForeign.getDescriptor();
182
+ DynamicMessage.Builder builder = DynamicMessage.newBuilder(descriptor);
183
+
184
+ assertTrue(builder.isInitialized());
185
+
186
+ builder.setField(descriptor.findFieldByName("optional_message"),
187
+ TEST_REQUIRED_UNINITIALIZED);
188
+ assertFalse(builder.isInitialized());
189
+
190
+ builder.setField(descriptor.findFieldByName("optional_message"),
191
+ TEST_REQUIRED_INITIALIZED);
192
+ assertTrue(builder.isInitialized());
193
+
194
+ builder.addRepeatedField(descriptor.findFieldByName("repeated_message"),
195
+ TEST_REQUIRED_UNINITIALIZED);
196
+ assertFalse(builder.isInitialized());
197
+
198
+ builder.setRepeatedField(descriptor.findFieldByName("repeated_message"), 0,
199
+ TEST_REQUIRED_INITIALIZED);
200
+ assertTrue(builder.isInitialized());
201
+ }
202
+
203
+ public void testUninitializedException() throws Exception {
204
+ try {
205
+ TestRequired.newBuilder().build();
206
+ fail("Should have thrown an exception.");
207
+ } catch (UninitializedMessageException e) {
208
+ assertEquals("Message missing required fields: a, b, c", e.getMessage());
209
+ }
210
+ }
211
+
212
+ public void testBuildPartial() throws Exception {
213
+ // We're mostly testing that no exception is thrown.
214
+ TestRequired message = TestRequired.newBuilder().buildPartial();
215
+ assertFalse(message.isInitialized());
216
+ }
217
+
218
+ public void testNestedUninitializedException() throws Exception {
219
+ try {
220
+ TestRequiredForeign.newBuilder()
221
+ .setOptionalMessage(TEST_REQUIRED_UNINITIALIZED)
222
+ .addRepeatedMessage(TEST_REQUIRED_UNINITIALIZED)
223
+ .addRepeatedMessage(TEST_REQUIRED_UNINITIALIZED)
224
+ .build();
225
+ fail("Should have thrown an exception.");
226
+ } catch (UninitializedMessageException e) {
227
+ assertEquals(
228
+ "Message missing required fields: " +
229
+ "optional_message.a, " +
230
+ "optional_message.b, " +
231
+ "optional_message.c, " +
232
+ "repeated_message[0].a, " +
233
+ "repeated_message[0].b, " +
234
+ "repeated_message[0].c, " +
235
+ "repeated_message[1].a, " +
236
+ "repeated_message[1].b, " +
237
+ "repeated_message[1].c",
238
+ e.getMessage());
239
+ }
240
+ }
241
+
242
+ public void testBuildNestedPartial() throws Exception {
243
+ // We're mostly testing that no exception is thrown.
244
+ TestRequiredForeign message =
245
+ TestRequiredForeign.newBuilder()
246
+ .setOptionalMessage(TEST_REQUIRED_UNINITIALIZED)
247
+ .addRepeatedMessage(TEST_REQUIRED_UNINITIALIZED)
248
+ .addRepeatedMessage(TEST_REQUIRED_UNINITIALIZED)
249
+ .buildPartial();
250
+ assertFalse(message.isInitialized());
251
+ }
252
+
253
+ public void testParseUnititialized() throws Exception {
254
+ try {
255
+ TestRequired.parseFrom(ByteString.EMPTY);
256
+ fail("Should have thrown an exception.");
257
+ } catch (InvalidProtocolBufferException e) {
258
+ assertEquals("Message missing required fields: a, b, c", e.getMessage());
259
+ }
260
+ }
261
+
262
+ public void testParseNestedUnititialized() throws Exception {
263
+ ByteString data =
264
+ TestRequiredForeign.newBuilder()
265
+ .setOptionalMessage(TEST_REQUIRED_UNINITIALIZED)
266
+ .addRepeatedMessage(TEST_REQUIRED_UNINITIALIZED)
267
+ .addRepeatedMessage(TEST_REQUIRED_UNINITIALIZED)
268
+ .buildPartial().toByteString();
269
+
270
+ try {
271
+ TestRequiredForeign.parseFrom(data);
272
+ fail("Should have thrown an exception.");
273
+ } catch (InvalidProtocolBufferException e) {
274
+ assertEquals(
275
+ "Message missing required fields: " +
276
+ "optional_message.a, " +
277
+ "optional_message.b, " +
278
+ "optional_message.c, " +
279
+ "repeated_message[0].a, " +
280
+ "repeated_message[0].b, " +
281
+ "repeated_message[0].c, " +
282
+ "repeated_message[1].a, " +
283
+ "repeated_message[1].b, " +
284
+ "repeated_message[1].c",
285
+ e.getMessage());
286
+ }
287
+ }
288
+
289
+ public void testDynamicUninitializedException() throws Exception {
290
+ try {
291
+ DynamicMessage.newBuilder(TestRequired.getDescriptor()).build();
292
+ fail("Should have thrown an exception.");
293
+ } catch (UninitializedMessageException e) {
294
+ assertEquals("Message missing required fields: a, b, c", e.getMessage());
295
+ }
296
+ }
297
+
298
+ public void testDynamicBuildPartial() throws Exception {
299
+ // We're mostly testing that no exception is thrown.
300
+ DynamicMessage message =
301
+ DynamicMessage.newBuilder(TestRequired.getDescriptor())
302
+ .buildPartial();
303
+ assertFalse(message.isInitialized());
304
+ }
305
+
306
+ public void testDynamicParseUnititialized() throws Exception {
307
+ try {
308
+ Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
309
+ DynamicMessage.parseFrom(descriptor, ByteString.EMPTY);
310
+ fail("Should have thrown an exception.");
311
+ } catch (InvalidProtocolBufferException e) {
312
+ assertEquals("Message missing required fields: a, b, c", e.getMessage());
313
+ }
314
+ }
315
+
316
+ /** Test reading unset repeated message from DynamicMessage. */
317
+ public void testDynamicRepeatedMessageNull() throws Exception {
318
+ Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
319
+ DynamicMessage result =
320
+ DynamicMessage.newBuilder(TestAllTypes.getDescriptor())
321
+ .mergeFrom(DynamicMessage.newBuilder(MERGE_SOURCE).build())
322
+ .build();
323
+
324
+ assertTrue(result.getField(result.getDescriptorForType()
325
+ .findFieldByName("repeated_foreign_message")) instanceof List<?>);
326
+ assertEquals(result.getRepeatedFieldCount(result.getDescriptorForType()
327
+ .findFieldByName("repeated_foreign_message")), 0);
328
+ }
329
+
330
+ /** Test reading repeated message from DynamicMessage. */
331
+ public void testDynamicRepeatedMessageNotNull() throws Exception {
332
+
333
+ TestAllTypes REPEATED_NESTED =
334
+ TestAllTypes.newBuilder()
335
+ .setOptionalInt32(1)
336
+ .setOptionalString("foo")
337
+ .setOptionalForeignMessage(ForeignMessage.getDefaultInstance())
338
+ .addRepeatedString("bar")
339
+ .addRepeatedForeignMessage(ForeignMessage.getDefaultInstance())
340
+ .addRepeatedForeignMessage(ForeignMessage.getDefaultInstance())
341
+ .build();
342
+ Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
343
+ DynamicMessage result =
344
+ DynamicMessage.newBuilder(TestAllTypes.getDescriptor())
345
+ .mergeFrom(DynamicMessage.newBuilder(REPEATED_NESTED).build())
346
+ .build();
347
+
348
+ assertTrue(result.getField(result.getDescriptorForType()
349
+ .findFieldByName("repeated_foreign_message")) instanceof List<?>);
350
+ assertEquals(result.getRepeatedFieldCount(result.getDescriptorForType()
351
+ .findFieldByName("repeated_foreign_message")), 2);
352
+ }
353
+ }