rj_schema 0.2.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (371) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rj_schema/rapidjson/CMakeLists.txt +9 -4
  3. data/ext/rj_schema/rapidjson/RapidJSONConfig.cmake.in +10 -0
  4. data/ext/rj_schema/rapidjson/appveyor.yml +22 -9
  5. data/ext/rj_schema/rapidjson/bin/data/abcde.txt +1 -0
  6. data/ext/rj_schema/rapidjson/bin/unittestschema/address.json +139 -0
  7. data/ext/rj_schema/rapidjson/bin/unittestschema/allOf_address.json +7 -0
  8. data/ext/rj_schema/rapidjson/bin/unittestschema/anyOf_address.json +7 -0
  9. data/ext/rj_schema/rapidjson/bin/unittestschema/oneOf_address.json +7 -0
  10. data/ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis +2 -2
  11. data/ext/rj_schema/rapidjson/doc/dom.md +1 -0
  12. data/ext/rj_schema/rapidjson/doc/dom.zh-cn.md +1 -0
  13. data/ext/rj_schema/rapidjson/doc/faq.md +3 -3
  14. data/ext/rj_schema/rapidjson/doc/faq.zh-cn.md +8 -8
  15. data/ext/rj_schema/rapidjson/doc/internals.md +1 -1
  16. data/ext/rj_schema/rapidjson/doc/internals.zh-cn.md +2 -2
  17. data/ext/rj_schema/rapidjson/doc/pointer.zh-cn.md +1 -1
  18. data/ext/rj_schema/rapidjson/doc/sax.md +1 -1
  19. data/ext/rj_schema/rapidjson/doc/sax.zh-cn.md +2 -2
  20. data/ext/rj_schema/rapidjson/doc/stream.md +1 -1
  21. data/ext/rj_schema/rapidjson/doc/tutorial.md +1 -1
  22. data/ext/rj_schema/rapidjson/doc/tutorial.zh-cn.md +7 -6
  23. data/ext/rj_schema/rapidjson/example/CMakeLists.txt +1 -0
  24. data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +118 -0
  25. data/ext/rj_schema/rapidjson/example/sortkeys/sortkeys.cpp +62 -0
  26. data/ext/rj_schema/rapidjson/example/tutorial/tutorial.cpp +1 -1
  27. data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +6 -6
  28. data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +1 -1
  29. data/ext/rj_schema/rapidjson/include/rapidjson/document.h +124 -35
  30. data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +1 -1
  31. data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +1 -1
  32. data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +49 -1
  33. data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +56 -1
  34. data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +2 -2
  35. data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +1 -1
  36. data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +2 -2
  37. data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +2 -2
  38. data/ext/rj_schema/rapidjson/include/rapidjson/internal/clzll.h +71 -0
  39. data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +3 -17
  40. data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +1 -1
  41. data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +1 -1
  42. data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +1 -1
  43. data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +1 -1
  44. data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +1 -1
  45. data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +20 -13
  46. data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +4 -3
  47. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +1 -1
  48. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +1 -1
  49. data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +1 -1
  50. data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +50 -35
  51. data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +1 -1
  52. data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +1 -1
  53. data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +1 -1
  54. data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +63 -5
  55. data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +2 -2
  56. data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +63 -1
  57. data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +67 -53
  58. data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +318 -164
  59. data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +1 -1
  60. data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +1 -1
  61. data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +10 -10
  62. data/ext/rj_schema/rapidjson/readme.md +51 -1
  63. data/ext/rj_schema/rapidjson/readme.zh-cn.md +2 -2
  64. data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +1 -1
  65. data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +1 -1
  66. data/ext/rj_schema/rapidjson/test/perftest/perftest.h +1 -1
  67. data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +2 -2
  68. data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +75 -1
  69. data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +1 -0
  70. data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +1 -1
  71. data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +1 -1
  72. data/ext/rj_schema/rapidjson/test/unittest/clzlltest.cpp +34 -0
  73. data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +19 -19
  74. data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +1 -1
  75. data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +1 -1
  76. data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +1 -1
  77. data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +1 -1
  78. data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +45 -2
  79. data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +1 -1
  80. data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +10 -10
  81. data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +8 -8
  82. data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +1 -1
  83. data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +1 -1
  84. data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +1 -1
  85. data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +157 -16
  86. data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +1 -1
  87. data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +113 -75
  88. data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +2 -1
  89. data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +593 -78
  90. data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +1 -1
  91. data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +1 -1
  92. data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +5 -5
  93. data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +1 -1
  94. data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +1 -1
  95. data/ext/rj_schema/rapidjson/test/unittest/unittest.h +4 -1
  96. data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +12 -12
  97. data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +1 -1
  98. data/ext/rj_schema/rapidjson/thirdparty/gtest/BUILD.bazel +175 -0
  99. data/ext/rj_schema/rapidjson/thirdparty/gtest/CMakeLists.txt +18 -1
  100. data/ext/rj_schema/rapidjson/thirdparty/gtest/CONTRIBUTING.md +160 -0
  101. data/ext/rj_schema/rapidjson/thirdparty/gtest/LICENSE +28 -0
  102. data/ext/rj_schema/rapidjson/thirdparty/gtest/Makefile.am +14 -0
  103. data/ext/rj_schema/rapidjson/thirdparty/gtest/README.md +16 -35
  104. data/ext/rj_schema/rapidjson/thirdparty/gtest/WORKSPACE +8 -0
  105. data/ext/rj_schema/rapidjson/thirdparty/gtest/appveyor.yml +104 -0
  106. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/build-linux-autotools.sh +44 -0
  107. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/build-linux-bazel.sh +36 -0
  108. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/env-linux.sh +41 -0
  109. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/env-osx.sh +40 -0
  110. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/get-nprocessors.sh +48 -0
  111. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/install-linux.sh +49 -0
  112. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/install-osx.sh +39 -0
  113. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/log-config.sh +51 -0
  114. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/travis.sh +44 -0
  115. data/ext/rj_schema/rapidjson/thirdparty/gtest/configure.ac +16 -0
  116. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CHANGES +1 -1
  117. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +72 -32
  118. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/README.md +53 -42
  119. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/cmake/gmock.pc.in +9 -0
  120. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/cmake/gmock_main.pc.in +9 -0
  121. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/configure.ac +4 -4
  122. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +6 -4
  123. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +117 -132
  124. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +7 -4
  125. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +20 -12
  126. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +1 -2
  127. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +83 -26
  128. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +262 -68
  129. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +45 -6
  130. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +650 -366
  131. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +76 -20
  132. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +308 -229
  133. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +18 -15
  134. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +87 -26
  135. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +33 -16
  136. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +1209 -353
  137. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +33 -0
  138. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +159 -88
  139. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +2 -1
  140. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +1 -1
  141. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +3 -4
  142. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +16 -9
  143. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +71 -8
  144. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +7 -11
  145. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +14 -0
  146. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +69 -6
  147. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +2 -2
  148. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +69 -6
  149. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +83 -8
  150. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +14 -0
  151. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +63 -2
  152. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +63 -2
  153. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +76 -3
  154. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +1 -1
  155. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +4 -5
  156. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +3 -3
  157. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +1 -1
  158. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +36 -6
  159. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +210 -135
  160. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +108 -48
  161. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +23 -1
  162. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/BUILD.bazel +123 -0
  163. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +166 -2
  164. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +1 -1
  165. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +64 -62
  166. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +43 -18
  167. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +11 -9
  168. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +91 -36
  169. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +33 -14
  170. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +1286 -167
  171. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +85 -83
  172. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +102 -15
  173. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +136 -9
  174. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +1 -1
  175. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +1 -1
  176. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +24 -2
  177. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +8 -5
  178. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +20 -1
  179. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +8 -1
  180. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +3 -2
  181. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +44 -2
  182. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +5 -7
  183. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +40 -14
  184. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/Makefile.am +60 -31
  185. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/README.md +232 -171
  186. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/gtest.pc.in +9 -0
  187. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/gtest_main.pc.in +10 -0
  188. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +54 -16
  189. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/configure.ac +1 -1
  190. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Pkgconfig.md +146 -0
  191. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +2 -2
  192. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +6 -6
  193. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/{AdvancedGuide.md → advanced.md} +260 -26
  194. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/{FAQ.md → faq.md} +62 -57
  195. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/{Primer.md → primer.md} +43 -9
  196. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/{Samples.md → samples.md} +0 -0
  197. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +53 -5
  198. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +1 -2
  199. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +30 -36
  200. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +8 -17
  201. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +140 -51
  202. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +2 -3
  203. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +4 -3
  204. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +126 -30
  205. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +6 -7
  206. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +8 -5
  207. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +6 -5
  208. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +4 -0
  209. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +13 -57
  210. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +1 -2
  211. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +98 -59
  212. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +34 -41
  213. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +3 -10
  214. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +9 -17
  215. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +8 -1
  216. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +232 -99
  217. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +3 -3
  218. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +17 -1
  219. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +17 -1
  220. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.sln +55 -0
  221. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj +149 -0
  222. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj.filters +18 -0
  223. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.sln +55 -0
  224. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj +149 -0
  225. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj.filters +18 -0
  226. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj +154 -0
  227. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj.filters +18 -0
  228. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj +162 -0
  229. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj.filters +18 -0
  230. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj +199 -0
  231. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj.filters +26 -0
  232. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj +191 -0
  233. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj.filters +26 -0
  234. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj +188 -0
  235. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj.filters +18 -0
  236. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj +180 -0
  237. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj.filters +18 -0
  238. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +6 -2
  239. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +1 -1
  240. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +0 -4
  241. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +2 -1
  242. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +2 -1
  243. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +7 -6
  244. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +5 -1
  245. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +3 -3
  246. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +2 -1
  247. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +10 -22
  248. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +2 -1
  249. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +0 -3
  250. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +1 -1
  251. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +10 -10
  252. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +1 -1
  253. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +1 -1
  254. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +226 -32
  255. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +5 -7
  256. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +21 -29
  257. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +85 -67
  258. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +93 -8
  259. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +1 -9
  260. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +1 -0
  261. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +622 -164
  262. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +1 -1
  263. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/BUILD.bazel +396 -0
  264. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +12 -15
  265. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +2 -12
  266. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +1 -1
  267. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +6 -8
  268. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +1 -5
  269. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +84 -29
  270. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +1 -5
  271. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +11 -12
  272. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +165 -63
  273. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +1 -1
  274. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +1 -1
  275. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +1 -1
  276. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +13 -13
  277. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_assert_by_exception_test.cc +119 -0
  278. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +1 -3
  279. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +1 -2
  280. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +0 -2
  281. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +1 -1
  282. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +1 -2
  283. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +0 -8
  284. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +6 -4
  285. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +0 -2
  286. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +0 -3
  287. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +20 -18
  288. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +0 -2
  289. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +1 -1
  290. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_outfiles_test.py +162 -0
  291. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_output_unittest.py +611 -0
  292. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_test_utils.py +60 -0
  293. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +4 -4
  294. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +2 -2
  295. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +11 -7
  296. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +17 -12
  297. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +104 -66
  298. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +1 -1
  299. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +2 -2
  300. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +2 -19
  301. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +0 -6
  302. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +12 -14
  303. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test.py +65 -0
  304. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test_.cc +44 -0
  305. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +1 -1
  306. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +4 -5
  307. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +2 -2
  308. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +240 -149
  309. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +0 -1
  310. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +0 -1
  311. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +15 -7
  312. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +100 -30
  313. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +0 -2
  314. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +25 -23
  315. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.cc +1 -1
  316. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.h +1 -1
  317. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +4 -4
  318. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +47 -0
  319. data/ext/rj_schema/rapidjson/travis-doxygen.sh +13 -6
  320. data/ext/rj_schema/rj_schema.cpp +161 -17
  321. data/lib/rj_schema.rb +1 -1
  322. metadata +63 -58
  323. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DevGuide.md +0 -132
  324. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CheatSheet.md +0 -525
  325. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CookBook.md +0 -3250
  326. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/Documentation.md +0 -11
  327. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/ForDummies.md +0 -439
  328. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/FrequentlyAskedQuestions.md +0 -624
  329. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CheatSheet.md +0 -534
  330. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CookBook.md +0 -3342
  331. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/Documentation.md +0 -12
  332. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/ForDummies.md +0 -439
  333. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/FrequentlyAskedQuestions.md +0 -628
  334. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CheatSheet.md +0 -556
  335. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CookBook.md +0 -3432
  336. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/Documentation.md +0 -12
  337. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/ForDummies.md +0 -439
  338. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/FrequentlyAskedQuestions.md +0 -628
  339. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/DevGuide.md +0 -126
  340. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Documentation.md +0 -14
  341. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_AdvancedGuide.md +0 -2096
  342. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Documentation.md +0 -12
  343. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_FAQ.md +0 -886
  344. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Primer.md +0 -497
  345. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_PumpManual.md +0 -177
  346. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_XcodeGuide.md +0 -93
  347. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_AdvancedGuide.md +0 -2178
  348. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Documentation.md +0 -14
  349. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_FAQ.md +0 -1038
  350. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Primer.md +0 -501
  351. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_PumpManual.md +0 -177
  352. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Samples.md +0 -14
  353. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_XcodeGuide.md +0 -93
  354. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_AdvancedGuide.md +0 -2181
  355. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Documentation.md +0 -14
  356. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_FAQ.md +0 -1082
  357. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Primer.md +0 -501
  358. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_PumpManual.md +0 -177
  359. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Samples.md +0 -14
  360. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_XcodeGuide.md +0 -93
  361. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.sln +0 -45
  362. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.vcproj +0 -126
  363. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.sln +0 -45
  364. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.vcproj +0 -126
  365. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main-md.vcproj +0 -129
  366. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main.vcproj +0 -129
  367. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test-md.vcproj +0 -164
  368. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test.vcproj +0 -164
  369. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest-md.vcproj +0 -147
  370. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest.vcproj +0 -147
  371. data/ext/rj_schema/rapidjson/thirdparty/gtest/travis.sh +0 -15
@@ -41,11 +41,6 @@
41
41
  // GTEST_DEFINE_int32_(name, default_val, doc)
42
42
  // GTEST_DEFINE_string_(name, default_val, doc)
43
43
  //
44
- // Test filtering:
45
- // GTEST_TEST_FILTER_ENV_VAR_ - The name of an environment variable that
46
- // will be used if --GTEST_FLAG(test_filter)
47
- // is not provided.
48
- //
49
44
  // Logging:
50
45
  // GTEST_LOG_(severity)
51
46
  // GTEST_CHECK_(condition)
@@ -61,6 +56,12 @@
61
56
  // GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
62
57
  // GTEST_LOCK_EXCLUDED_(locks)
63
58
  //
59
+ // Underlying library support features:
60
+ // GTEST_HAS_CXXABI_H_
61
+ //
62
+ // Exporting API symbols:
63
+ // GTEST_API_ - Specifier for exported symbols.
64
+ //
64
65
  // ** Custom implementation starts here **
65
66
 
66
67
  #ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
@@ -33,6 +33,10 @@
33
33
  // GTEST_OS_STACK_TRACE_GETTER_ - The name of an implementation of
34
34
  // OsStackTraceGetterInterface.
35
35
  //
36
+ // GTEST_CUSTOM_TEMPDIR_FUNCTION_ - An override for testing::TempDir().
37
+ // See testing::TempDir for semantics and
38
+ // signature.
39
+ //
36
40
  // ** Custom implementation starts here **
37
41
 
38
42
  #ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_
@@ -27,9 +27,8 @@
27
27
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
28
  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
29
  //
30
- // Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
31
30
  //
32
- // The Google C++ Testing Framework (Google Test)
31
+ // The Google C++ Testing and Mocking Framework (Google Test)
33
32
  //
34
33
  // This header file defines internal utilities needed for implementing
35
34
  // death tests. They are subject to change without notice.
@@ -218,14 +217,18 @@ GTEST_API_ bool ExitedUnsuccessfully(int exit_status);
218
217
  // can be streamed.
219
218
 
220
219
  // This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in
221
- // NDEBUG mode. In this case we need the statements to be executed, the regex is
222
- // ignored, and the macro must accept a streamed message even though the message
223
- // is never printed.
224
- # define GTEST_EXECUTE_STATEMENT_(statement, regex) \
225
- GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
226
- if (::testing::internal::AlwaysTrue()) { \
227
- GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
228
- } else \
220
+ // NDEBUG mode. In this case we need the statements to be executed and the macro
221
+ // must accept a streamed message even though the message is never printed.
222
+ // The regex object is not evaluated, but it is used to prevent "unused"
223
+ // warnings and to avoid an expression that doesn't compile in debug mode.
224
+ #define GTEST_EXECUTE_STATEMENT_(statement, regex) \
225
+ GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
226
+ if (::testing::internal::AlwaysTrue()) { \
227
+ GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
228
+ } else if (!::testing::internal::AlwaysTrue()) { \
229
+ const ::testing::internal::RE& gtest_regex = (regex); \
230
+ static_cast<void>(gtest_regex); \
231
+ } else \
229
232
  ::testing::Message()
230
233
 
231
234
  // A class representing the parsed contents of the
@@ -264,53 +267,6 @@ class InternalRunDeathTestFlag {
264
267
  // the flag is specified; otherwise returns NULL.
265
268
  InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag();
266
269
 
267
- #else // GTEST_HAS_DEATH_TEST
268
-
269
- // This macro is used for implementing macros such as
270
- // EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where
271
- // death tests are not supported. Those macros must compile on such systems
272
- // iff EXPECT_DEATH and ASSERT_DEATH compile with the same parameters on
273
- // systems that support death tests. This allows one to write such a macro
274
- // on a system that does not support death tests and be sure that it will
275
- // compile on a death-test supporting system.
276
- //
277
- // Parameters:
278
- // statement - A statement that a macro such as EXPECT_DEATH would test
279
- // for program termination. This macro has to make sure this
280
- // statement is compiled but not executed, to ensure that
281
- // EXPECT_DEATH_IF_SUPPORTED compiles with a certain
282
- // parameter iff EXPECT_DEATH compiles with it.
283
- // regex - A regex that a macro such as EXPECT_DEATH would use to test
284
- // the output of statement. This parameter has to be
285
- // compiled but not evaluated by this macro, to ensure that
286
- // this macro only accepts expressions that a macro such as
287
- // EXPECT_DEATH would accept.
288
- // terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED
289
- // and a return statement for ASSERT_DEATH_IF_SUPPORTED.
290
- // This ensures that ASSERT_DEATH_IF_SUPPORTED will not
291
- // compile inside functions where ASSERT_DEATH doesn't
292
- // compile.
293
- //
294
- // The branch that has an always false condition is used to ensure that
295
- // statement and regex are compiled (and thus syntactically correct) but
296
- // never executed. The unreachable code macro protects the terminator
297
- // statement from generating an 'unreachable code' warning in case
298
- // statement unconditionally returns or throws. The Message constructor at
299
- // the end allows the syntax of streaming additional messages into the
300
- // macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH.
301
- # define GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, terminator) \
302
- GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
303
- if (::testing::internal::AlwaysTrue()) { \
304
- GTEST_LOG_(WARNING) \
305
- << "Death tests are not supported on this platform.\n" \
306
- << "Statement '" #statement "' cannot be verified."; \
307
- } else if (::testing::internal::AlwaysFalse()) { \
308
- ::testing::internal::RE::PartialMatch(".*", (regex)); \
309
- GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
310
- terminator; \
311
- } else \
312
- ::testing::Message()
313
-
314
270
  #endif // GTEST_HAS_DEATH_TEST
315
271
 
316
272
  } // namespace internal
@@ -27,14 +27,13 @@
27
27
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
28
  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
29
  //
30
- // Author: keith.ray@gmail.com (Keith Ray)
31
30
  //
32
31
  // Google Test filepath utilities
33
32
  //
34
33
  // This header file declares classes and functions used internally by
35
34
  // Google Test. They are subject to change without notice.
36
35
  //
37
- // This file is #included in <gtest/internal/gtest-internal.h>.
36
+ // This file is #included in gtest/internal/gtest-internal.h.
38
37
  // Do not include this header file separately!
39
38
 
40
39
  #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
@@ -27,9 +27,8 @@
27
27
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
28
  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
29
  //
30
- // Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
31
30
  //
32
- // The Google C++ Testing Framework (Google Test)
31
+ // The Google C++ Testing and Mocking Framework (Google Test)
33
32
  //
34
33
  // This header file declares functions and macros used internally by
35
34
  // Google Test. They are subject to change without notice.
@@ -61,8 +60,8 @@
61
60
  #include <vector>
62
61
 
63
62
  #include "gtest/gtest-message.h"
64
- #include "gtest/internal/gtest-string.h"
65
63
  #include "gtest/internal/gtest-filepath.h"
64
+ #include "gtest/internal/gtest-string.h"
66
65
  #include "gtest/internal/gtest-type-util.h"
67
66
 
68
67
  // Due to C++ preprocessor weirdness, we need double indirection to
@@ -76,6 +75,9 @@
76
75
  #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
77
76
  #define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
78
77
 
78
+ // Stringifies its argument.
79
+ #define GTEST_STRINGIFY_(name) #name
80
+
79
81
  class ProtocolMessage;
80
82
  namespace proto2 { class Message; }
81
83
 
@@ -96,7 +98,6 @@ template <typename T>
96
98
  namespace internal {
97
99
 
98
100
  struct TraceInfo; // Information about a trace point.
99
- class ScopedTrace; // Implements scoped trace.
100
101
  class TestInfoImpl; // Opaque implementation of TestInfo
101
102
  class UnitTestImpl; // Opaque implementation of UnitTest
102
103
 
@@ -152,30 +153,11 @@ class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error {
152
153
 
153
154
  #endif // GTEST_HAS_EXCEPTIONS
154
155
 
155
- // A helper class for creating scoped traces in user programs.
156
- class GTEST_API_ ScopedTrace {
157
- public:
158
- // The c'tor pushes the given source file location and message onto
159
- // a trace stack maintained by Google Test.
160
- ScopedTrace(const char* file, int line, const Message& message);
161
-
162
- // The d'tor pops the info pushed by the c'tor.
163
- //
164
- // Note that the d'tor is not virtual in order to be efficient.
165
- // Don't inherit from ScopedTrace!
166
- ~ScopedTrace();
167
-
168
- private:
169
- GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace);
170
- } GTEST_ATTRIBUTE_UNUSED_; // A ScopedTrace object does its job in its
171
- // c'tor and d'tor. Therefore it doesn't
172
- // need to be used otherwise.
173
-
174
156
  namespace edit_distance {
175
157
  // Returns the optimal edits to go from 'left' to 'right'.
176
158
  // All edits cost the same, with replace having lower priority than
177
159
  // add/remove.
178
- // Simple implementation of the WagnerFischer algorithm.
160
+ // Simple implementation of the Wagner-Fischer algorithm.
179
161
  // See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
180
162
  enum EditType { kMatch, kAdd, kRemove, kReplace };
181
163
  GTEST_API_ std::vector<EditType> CalculateOptimalEdits(
@@ -502,9 +484,10 @@ typedef void (*SetUpTestCaseFunc)();
502
484
  typedef void (*TearDownTestCaseFunc)();
503
485
 
504
486
  struct CodeLocation {
505
- CodeLocation(const string& a_file, int a_line) : file(a_file), line(a_line) {}
487
+ CodeLocation(const std::string& a_file, int a_line)
488
+ : file(a_file), line(a_line) {}
506
489
 
507
- string file;
490
+ std::string file;
508
491
  int line;
509
492
  };
510
493
 
@@ -627,7 +610,7 @@ class TypeParameterizedTest {
627
610
  // Types). Valid values for 'index' are [0, N - 1] where N is the
628
611
  // length of Types.
629
612
  static bool Register(const char* prefix,
630
- CodeLocation code_location,
613
+ const CodeLocation& code_location,
631
614
  const char* case_name, const char* test_names,
632
615
  int index) {
633
616
  typedef typename Types::Head Type;
@@ -658,7 +641,7 @@ class TypeParameterizedTest {
658
641
  template <GTEST_TEMPLATE_ Fixture, class TestSel>
659
642
  class TypeParameterizedTest<Fixture, TestSel, Types0> {
660
643
  public:
661
- static bool Register(const char* /*prefix*/, CodeLocation,
644
+ static bool Register(const char* /*prefix*/, const CodeLocation&,
662
645
  const char* /*case_name*/, const char* /*test_names*/,
663
646
  int /*index*/) {
664
647
  return true;
@@ -704,7 +687,7 @@ class TypeParameterizedTestCase {
704
687
  template <GTEST_TEMPLATE_ Fixture, typename Types>
705
688
  class TypeParameterizedTestCase<Fixture, Templates0, Types> {
706
689
  public:
707
- static bool Register(const char* /*prefix*/, CodeLocation,
690
+ static bool Register(const char* /*prefix*/, const CodeLocation&,
708
691
  const TypedTestCasePState* /*state*/,
709
692
  const char* /*case_name*/, const char* /*test_names*/) {
710
693
  return true;
@@ -823,31 +806,6 @@ struct RemoveConst<T[N]> {
823
806
  #define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \
824
807
  GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T))
825
808
 
826
- // Adds reference to a type if it is not a reference type,
827
- // otherwise leaves it unchanged. This is the same as
828
- // tr1::add_reference, which is not widely available yet.
829
- template <typename T>
830
- struct AddReference { typedef T& type; }; // NOLINT
831
- template <typename T>
832
- struct AddReference<T&> { typedef T& type; }; // NOLINT
833
-
834
- // A handy wrapper around AddReference that works when the argument T
835
- // depends on template parameters.
836
- #define GTEST_ADD_REFERENCE_(T) \
837
- typename ::testing::internal::AddReference<T>::type
838
-
839
- // Adds a reference to const on top of T as necessary. For example,
840
- // it transforms
841
- //
842
- // char ==> const char&
843
- // const char ==> const char&
844
- // char& ==> const char&
845
- // const char& ==> const char&
846
- //
847
- // The argument T must depend on some template parameters.
848
- #define GTEST_REFERENCE_TO_CONST_(T) \
849
- GTEST_ADD_REFERENCE_(const GTEST_REMOVE_REFERENCE_(T))
850
-
851
809
  // ImplicitlyConvertible<From, To>::value is a compile-time bool
852
810
  // constant that's true iff type From can be implicitly converted to
853
811
  // type To.
@@ -917,8 +875,11 @@ struct IsAProtocolMessage
917
875
  // a container class by checking the type of IsContainerTest<C>(0).
918
876
  // The value of the expression is insignificant.
919
877
  //
920
- // Note that we look for both C::iterator and C::const_iterator. The
921
- // reason is that C++ injects the name of a class as a member of the
878
+ // In C++11 mode we check the existence of a const_iterator and that an
879
+ // iterator is properly implemented for the container.
880
+ //
881
+ // For pre-C++11 that we look for both C::iterator and C::const_iterator.
882
+ // The reason is that C++ injects the name of a class as a member of the
922
883
  // class itself (e.g. you can refer to class iterator as either
923
884
  // 'iterator' or 'iterator::iterator'). If we look for C::iterator
924
885
  // only, for example, we would mistakenly think that a class named
@@ -928,17 +889,96 @@ struct IsAProtocolMessage
928
889
  // IsContainerTest(typename C::const_iterator*) and
929
890
  // IsContainerTest(...) doesn't work with Visual Age C++ and Sun C++.
930
891
  typedef int IsContainer;
892
+ #if GTEST_LANG_CXX11
893
+ template <class C,
894
+ class Iterator = decltype(::std::declval<const C&>().begin()),
895
+ class = decltype(::std::declval<const C&>().end()),
896
+ class = decltype(++::std::declval<Iterator&>()),
897
+ class = decltype(*::std::declval<Iterator>()),
898
+ class = typename C::const_iterator>
899
+ IsContainer IsContainerTest(int /* dummy */) {
900
+ return 0;
901
+ }
902
+ #else
931
903
  template <class C>
932
904
  IsContainer IsContainerTest(int /* dummy */,
933
905
  typename C::iterator* /* it */ = NULL,
934
906
  typename C::const_iterator* /* const_it */ = NULL) {
935
907
  return 0;
936
908
  }
909
+ #endif // GTEST_LANG_CXX11
937
910
 
938
911
  typedef char IsNotContainer;
939
912
  template <class C>
940
913
  IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; }
941
914
 
915
+ // Trait to detect whether a type T is a hash table.
916
+ // The heuristic used is that the type contains an inner type `hasher` and does
917
+ // not contain an inner type `reverse_iterator`.
918
+ // If the container is iterable in reverse, then order might actually matter.
919
+ template <typename T>
920
+ struct IsHashTable {
921
+ private:
922
+ template <typename U>
923
+ static char test(typename U::hasher*, typename U::reverse_iterator*);
924
+ template <typename U>
925
+ static int test(typename U::hasher*, ...);
926
+ template <typename U>
927
+ static char test(...);
928
+
929
+ public:
930
+ static const bool value = sizeof(test<T>(0, 0)) == sizeof(int);
931
+ };
932
+
933
+ template <typename T>
934
+ const bool IsHashTable<T>::value;
935
+
936
+ template<typename T>
937
+ struct VoidT {
938
+ typedef void value_type;
939
+ };
940
+
941
+ template <typename T, typename = void>
942
+ struct HasValueType : false_type {};
943
+ template <typename T>
944
+ struct HasValueType<T, VoidT<typename T::value_type> > : true_type {
945
+ };
946
+
947
+ template <typename C,
948
+ bool = sizeof(IsContainerTest<C>(0)) == sizeof(IsContainer),
949
+ bool = HasValueType<C>::value>
950
+ struct IsRecursiveContainerImpl;
951
+
952
+ template <typename C, bool HV>
953
+ struct IsRecursiveContainerImpl<C, false, HV> : public false_type {};
954
+
955
+ // Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to
956
+ // obey the same inconsistencies as the IsContainerTest, namely check if
957
+ // something is a container is relying on only const_iterator in C++11 and
958
+ // is relying on both const_iterator and iterator otherwise
959
+ template <typename C>
960
+ struct IsRecursiveContainerImpl<C, true, false> : public false_type {};
961
+
962
+ template <typename C>
963
+ struct IsRecursiveContainerImpl<C, true, true> {
964
+ #if GTEST_LANG_CXX11
965
+ typedef typename IteratorTraits<typename C::const_iterator>::value_type
966
+ value_type;
967
+ #else
968
+ typedef typename IteratorTraits<typename C::iterator>::value_type value_type;
969
+ #endif
970
+ typedef is_same<value_type, C> type;
971
+ };
972
+
973
+ // IsRecursiveContainer<Type> is a unary compile-time predicate that
974
+ // evaluates whether C is a recursive container type. A recursive container
975
+ // type is a container type whose value_type is equal to the container type
976
+ // itself. An example for a recursive container type is
977
+ // boost::filesystem::path, whose iterator has a value_type that is equal to
978
+ // boost::filesystem::path.
979
+ template <typename C>
980
+ struct IsRecursiveContainer : public IsRecursiveContainerImpl<C>::type {};
981
+
942
982
  // EnableIf<condition>::type is void when 'Cond' is true, and
943
983
  // undefined when 'Cond' is false. To use SFINAE to make a function
944
984
  // overload only apply when a particular expression is true, add
@@ -1070,7 +1110,7 @@ class NativeArray {
1070
1110
  private:
1071
1111
  enum {
1072
1112
  kCheckTypeIsNotConstOrAReference = StaticAssertTypeEqHelper<
1073
- Element, GTEST_REMOVE_REFERENCE_AND_CONST_(Element)>::value,
1113
+ Element, GTEST_REMOVE_REFERENCE_AND_CONST_(Element)>::value
1074
1114
  };
1075
1115
 
1076
1116
  // Initializes this object with a copy of the input.
@@ -1115,7 +1155,7 @@ class NativeArray {
1115
1155
  #define GTEST_SUCCESS_(message) \
1116
1156
  GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess)
1117
1157
 
1118
- // Suppresses MSVC warnings 4072 (unreachable code) for the code following
1158
+ // Suppress MSVC warning 4702 (unreachable code) for the code following
1119
1159
  // statement if it returns or throws (or doesn't return or throw in some
1120
1160
  // situations).
1121
1161
  #define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \
@@ -1235,4 +1275,3 @@ class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : public parent_class {\
1235
1275
  void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
1236
1276
 
1237
1277
  #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
1238
-
@@ -46,14 +46,9 @@
46
46
  #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
47
47
  #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
48
48
 
49
- // scripts/fuse_gtest.py depends on gtest's own header being #included
50
- // *unconditionally*. Therefore these #includes cannot be moved
51
- // inside #if GTEST_HAS_PARAM_TEST.
52
49
  #include "gtest/internal/gtest-param-util.h"
53
50
  #include "gtest/internal/gtest-port.h"
54
51
 
55
- #if GTEST_HAS_PARAM_TEST
56
-
57
52
  namespace testing {
58
53
 
59
54
  // Forward declarations of ValuesIn(), which is implemented in
@@ -3208,7 +3203,7 @@ class CartesianProductGenerator2
3208
3203
  virtual ParamIteratorInterface<ParamType>* Clone() const {
3209
3204
  return new Iterator(*this);
3210
3205
  }
3211
- virtual const ParamType* Current() const { return &current_value_; }
3206
+ virtual const ParamType* Current() const { return current_value_.get(); }
3212
3207
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
3213
3208
  // Having the same base generator guarantees that the other
3214
3209
  // iterator is of the same type and we can downcast.
@@ -3240,7 +3235,7 @@ class CartesianProductGenerator2
3240
3235
 
3241
3236
  void ComputeCurrentValue() {
3242
3237
  if (!AtEnd())
3243
- current_value_ = ParamType(*current1_, *current2_);
3238
+ current_value_.reset(new ParamType(*current1_, *current2_));
3244
3239
  }
3245
3240
  bool AtEnd() const {
3246
3241
  // We must report iterator past the end of the range when either of the
@@ -3262,7 +3257,7 @@ class CartesianProductGenerator2
3262
3257
  const typename ParamGenerator<T2>::iterator begin2_;
3263
3258
  const typename ParamGenerator<T2>::iterator end2_;
3264
3259
  typename ParamGenerator<T2>::iterator current2_;
3265
- ParamType current_value_;
3260
+ linked_ptr<ParamType> current_value_;
3266
3261
  }; // class CartesianProductGenerator2::Iterator
3267
3262
 
3268
3263
  // No implementation - assignment is unsupported.
@@ -3331,7 +3326,7 @@ class CartesianProductGenerator3
3331
3326
  virtual ParamIteratorInterface<ParamType>* Clone() const {
3332
3327
  return new Iterator(*this);
3333
3328
  }
3334
- virtual const ParamType* Current() const { return &current_value_; }
3329
+ virtual const ParamType* Current() const { return current_value_.get(); }
3335
3330
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
3336
3331
  // Having the same base generator guarantees that the other
3337
3332
  // iterator is of the same type and we can downcast.
@@ -3367,7 +3362,7 @@ class CartesianProductGenerator3
3367
3362
 
3368
3363
  void ComputeCurrentValue() {
3369
3364
  if (!AtEnd())
3370
- current_value_ = ParamType(*current1_, *current2_, *current3_);
3365
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_));
3371
3366
  }
3372
3367
  bool AtEnd() const {
3373
3368
  // We must report iterator past the end of the range when either of the
@@ -3393,7 +3388,7 @@ class CartesianProductGenerator3
3393
3388
  const typename ParamGenerator<T3>::iterator begin3_;
3394
3389
  const typename ParamGenerator<T3>::iterator end3_;
3395
3390
  typename ParamGenerator<T3>::iterator current3_;
3396
- ParamType current_value_;
3391
+ linked_ptr<ParamType> current_value_;
3397
3392
  }; // class CartesianProductGenerator3::Iterator
3398
3393
 
3399
3394
  // No implementation - assignment is unsupported.
@@ -3472,7 +3467,7 @@ class CartesianProductGenerator4
3472
3467
  virtual ParamIteratorInterface<ParamType>* Clone() const {
3473
3468
  return new Iterator(*this);
3474
3469
  }
3475
- virtual const ParamType* Current() const { return &current_value_; }
3470
+ virtual const ParamType* Current() const { return current_value_.get(); }
3476
3471
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
3477
3472
  // Having the same base generator guarantees that the other
3478
3473
  // iterator is of the same type and we can downcast.
@@ -3512,8 +3507,8 @@ class CartesianProductGenerator4
3512
3507
 
3513
3508
  void ComputeCurrentValue() {
3514
3509
  if (!AtEnd())
3515
- current_value_ = ParamType(*current1_, *current2_, *current3_,
3516
- *current4_);
3510
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
3511
+ *current4_));
3517
3512
  }
3518
3513
  bool AtEnd() const {
3519
3514
  // We must report iterator past the end of the range when either of the
@@ -3543,7 +3538,7 @@ class CartesianProductGenerator4
3543
3538
  const typename ParamGenerator<T4>::iterator begin4_;
3544
3539
  const typename ParamGenerator<T4>::iterator end4_;
3545
3540
  typename ParamGenerator<T4>::iterator current4_;
3546
- ParamType current_value_;
3541
+ linked_ptr<ParamType> current_value_;
3547
3542
  }; // class CartesianProductGenerator4::Iterator
3548
3543
 
3549
3544
  // No implementation - assignment is unsupported.
@@ -3630,7 +3625,7 @@ class CartesianProductGenerator5
3630
3625
  virtual ParamIteratorInterface<ParamType>* Clone() const {
3631
3626
  return new Iterator(*this);
3632
3627
  }
3633
- virtual const ParamType* Current() const { return &current_value_; }
3628
+ virtual const ParamType* Current() const { return current_value_.get(); }
3634
3629
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
3635
3630
  // Having the same base generator guarantees that the other
3636
3631
  // iterator is of the same type and we can downcast.
@@ -3674,8 +3669,8 @@ class CartesianProductGenerator5
3674
3669
 
3675
3670
  void ComputeCurrentValue() {
3676
3671
  if (!AtEnd())
3677
- current_value_ = ParamType(*current1_, *current2_, *current3_,
3678
- *current4_, *current5_);
3672
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
3673
+ *current4_, *current5_));
3679
3674
  }
3680
3675
  bool AtEnd() const {
3681
3676
  // We must report iterator past the end of the range when either of the
@@ -3709,7 +3704,7 @@ class CartesianProductGenerator5
3709
3704
  const typename ParamGenerator<T5>::iterator begin5_;
3710
3705
  const typename ParamGenerator<T5>::iterator end5_;
3711
3706
  typename ParamGenerator<T5>::iterator current5_;
3712
- ParamType current_value_;
3707
+ linked_ptr<ParamType> current_value_;
3713
3708
  }; // class CartesianProductGenerator5::Iterator
3714
3709
 
3715
3710
  // No implementation - assignment is unsupported.
@@ -3807,7 +3802,7 @@ class CartesianProductGenerator6
3807
3802
  virtual ParamIteratorInterface<ParamType>* Clone() const {
3808
3803
  return new Iterator(*this);
3809
3804
  }
3810
- virtual const ParamType* Current() const { return &current_value_; }
3805
+ virtual const ParamType* Current() const { return current_value_.get(); }
3811
3806
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
3812
3807
  // Having the same base generator guarantees that the other
3813
3808
  // iterator is of the same type and we can downcast.
@@ -3855,8 +3850,8 @@ class CartesianProductGenerator6
3855
3850
 
3856
3851
  void ComputeCurrentValue() {
3857
3852
  if (!AtEnd())
3858
- current_value_ = ParamType(*current1_, *current2_, *current3_,
3859
- *current4_, *current5_, *current6_);
3853
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
3854
+ *current4_, *current5_, *current6_));
3860
3855
  }
3861
3856
  bool AtEnd() const {
3862
3857
  // We must report iterator past the end of the range when either of the
@@ -3894,7 +3889,7 @@ class CartesianProductGenerator6
3894
3889
  const typename ParamGenerator<T6>::iterator begin6_;
3895
3890
  const typename ParamGenerator<T6>::iterator end6_;
3896
3891
  typename ParamGenerator<T6>::iterator current6_;
3897
- ParamType current_value_;
3892
+ linked_ptr<ParamType> current_value_;
3898
3893
  }; // class CartesianProductGenerator6::Iterator
3899
3894
 
3900
3895
  // No implementation - assignment is unsupported.
@@ -4001,7 +3996,7 @@ class CartesianProductGenerator7
4001
3996
  virtual ParamIteratorInterface<ParamType>* Clone() const {
4002
3997
  return new Iterator(*this);
4003
3998
  }
4004
- virtual const ParamType* Current() const { return &current_value_; }
3999
+ virtual const ParamType* Current() const { return current_value_.get(); }
4005
4000
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
4006
4001
  // Having the same base generator guarantees that the other
4007
4002
  // iterator is of the same type and we can downcast.
@@ -4053,8 +4048,8 @@ class CartesianProductGenerator7
4053
4048
 
4054
4049
  void ComputeCurrentValue() {
4055
4050
  if (!AtEnd())
4056
- current_value_ = ParamType(*current1_, *current2_, *current3_,
4057
- *current4_, *current5_, *current6_, *current7_);
4051
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
4052
+ *current4_, *current5_, *current6_, *current7_));
4058
4053
  }
4059
4054
  bool AtEnd() const {
4060
4055
  // We must report iterator past the end of the range when either of the
@@ -4096,7 +4091,7 @@ class CartesianProductGenerator7
4096
4091
  const typename ParamGenerator<T7>::iterator begin7_;
4097
4092
  const typename ParamGenerator<T7>::iterator end7_;
4098
4093
  typename ParamGenerator<T7>::iterator current7_;
4099
- ParamType current_value_;
4094
+ linked_ptr<ParamType> current_value_;
4100
4095
  }; // class CartesianProductGenerator7::Iterator
4101
4096
 
4102
4097
  // No implementation - assignment is unsupported.
@@ -4214,7 +4209,7 @@ class CartesianProductGenerator8
4214
4209
  virtual ParamIteratorInterface<ParamType>* Clone() const {
4215
4210
  return new Iterator(*this);
4216
4211
  }
4217
- virtual const ParamType* Current() const { return &current_value_; }
4212
+ virtual const ParamType* Current() const { return current_value_.get(); }
4218
4213
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
4219
4214
  // Having the same base generator guarantees that the other
4220
4215
  // iterator is of the same type and we can downcast.
@@ -4270,8 +4265,8 @@ class CartesianProductGenerator8
4270
4265
 
4271
4266
  void ComputeCurrentValue() {
4272
4267
  if (!AtEnd())
4273
- current_value_ = ParamType(*current1_, *current2_, *current3_,
4274
- *current4_, *current5_, *current6_, *current7_, *current8_);
4268
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
4269
+ *current4_, *current5_, *current6_, *current7_, *current8_));
4275
4270
  }
4276
4271
  bool AtEnd() const {
4277
4272
  // We must report iterator past the end of the range when either of the
@@ -4317,7 +4312,7 @@ class CartesianProductGenerator8
4317
4312
  const typename ParamGenerator<T8>::iterator begin8_;
4318
4313
  const typename ParamGenerator<T8>::iterator end8_;
4319
4314
  typename ParamGenerator<T8>::iterator current8_;
4320
- ParamType current_value_;
4315
+ linked_ptr<ParamType> current_value_;
4321
4316
  }; // class CartesianProductGenerator8::Iterator
4322
4317
 
4323
4318
  // No implementation - assignment is unsupported.
@@ -4443,7 +4438,7 @@ class CartesianProductGenerator9
4443
4438
  virtual ParamIteratorInterface<ParamType>* Clone() const {
4444
4439
  return new Iterator(*this);
4445
4440
  }
4446
- virtual const ParamType* Current() const { return &current_value_; }
4441
+ virtual const ParamType* Current() const { return current_value_.get(); }
4447
4442
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
4448
4443
  // Having the same base generator guarantees that the other
4449
4444
  // iterator is of the same type and we can downcast.
@@ -4503,9 +4498,9 @@ class CartesianProductGenerator9
4503
4498
 
4504
4499
  void ComputeCurrentValue() {
4505
4500
  if (!AtEnd())
4506
- current_value_ = ParamType(*current1_, *current2_, *current3_,
4501
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
4507
4502
  *current4_, *current5_, *current6_, *current7_, *current8_,
4508
- *current9_);
4503
+ *current9_));
4509
4504
  }
4510
4505
  bool AtEnd() const {
4511
4506
  // We must report iterator past the end of the range when either of the
@@ -4555,7 +4550,7 @@ class CartesianProductGenerator9
4555
4550
  const typename ParamGenerator<T9>::iterator begin9_;
4556
4551
  const typename ParamGenerator<T9>::iterator end9_;
4557
4552
  typename ParamGenerator<T9>::iterator current9_;
4558
- ParamType current_value_;
4553
+ linked_ptr<ParamType> current_value_;
4559
4554
  }; // class CartesianProductGenerator9::Iterator
4560
4555
 
4561
4556
  // No implementation - assignment is unsupported.
@@ -4690,7 +4685,7 @@ class CartesianProductGenerator10
4690
4685
  virtual ParamIteratorInterface<ParamType>* Clone() const {
4691
4686
  return new Iterator(*this);
4692
4687
  }
4693
- virtual const ParamType* Current() const { return &current_value_; }
4688
+ virtual const ParamType* Current() const { return current_value_.get(); }
4694
4689
  virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
4695
4690
  // Having the same base generator guarantees that the other
4696
4691
  // iterator is of the same type and we can downcast.
@@ -4754,9 +4749,9 @@ class CartesianProductGenerator10
4754
4749
 
4755
4750
  void ComputeCurrentValue() {
4756
4751
  if (!AtEnd())
4757
- current_value_ = ParamType(*current1_, *current2_, *current3_,
4752
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
4758
4753
  *current4_, *current5_, *current6_, *current7_, *current8_,
4759
- *current9_, *current10_);
4754
+ *current9_, *current10_));
4760
4755
  }
4761
4756
  bool AtEnd() const {
4762
4757
  // We must report iterator past the end of the range when either of the
@@ -4810,7 +4805,7 @@ class CartesianProductGenerator10
4810
4805
  const typename ParamGenerator<T10>::iterator begin10_;
4811
4806
  const typename ParamGenerator<T10>::iterator end10_;
4812
4807
  typename ParamGenerator<T10>::iterator current10_;
4813
- ParamType current_value_;
4808
+ linked_ptr<ParamType> current_value_;
4814
4809
  }; // class CartesianProductGenerator10::Iterator
4815
4810
 
4816
4811
  // No implementation - assignment is unsupported.
@@ -5141,6 +5136,4 @@ CartesianProductHolder10(const Generator1& g1, const Generator2& g2,
5141
5136
  } // namespace internal
5142
5137
  } // namespace testing
5143
5138
 
5144
- #endif // GTEST_HAS_PARAM_TEST
5145
-
5146
5139
  #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_