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
@@ -1,5 +1,8 @@
1
- This page lists all documentation wiki pages for Google Mock **(the SVN trunk version)**
2
- - **if you use a released version of Google Mock, please read the documentation for that specific version instead.**
1
+ This page lists all documentation markdown files for Google Mock **(the
2
+ current git version)**
3
+ -- **if you use a former version of Google Mock, please read the
4
+ documentation for that specific version instead (e.g. by checking out
5
+ the respective git branch/tag).**
3
6
 
4
7
  * [ForDummies](ForDummies.md) -- start here if you are new to Google Mock.
5
8
  * [CheatSheet](CheatSheet.md) -- a quick reference.
@@ -8,5 +11,5 @@ This page lists all documentation wiki pages for Google Mock **(the SVN trunk ve
8
11
 
9
12
  To contribute code to Google Mock, read:
10
13
 
11
- * [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
12
- * [Pump Manual](../googletest/docs/PumpManual.md) -- how we generate some of Google Mock's source files.
14
+ * [CONTRIBUTING](../CONTRIBUTING.md) -- read this _before_ writing your first patch.
15
+ * [Pump Manual](../../googletest/docs/PumpManual.md) -- how we generate some of Google Mock's source files.
@@ -23,8 +23,8 @@ Using Google Mock involves three basic steps:
23
23
  # Why Google Mock? #
24
24
  While mock objects help you remove unnecessary dependencies in tests and make them fast and reliable, using mocks manually in C++ is _hard_:
25
25
 
26
- * Someone has to implement the mocks. The job is usually tedious and error-prone. No wonder people go great distance to avoid it.
27
- * The quality of those manually written mocks is a bit, uh, unpredictable. You may see some really polished ones, but you may also see some that were hacked up in a hurry and have all sorts of ad hoc restrictions.
26
+ * Someone has to implement the mocks. The job is usually tedious and error-prone. No wonder people go great distances to avoid it.
27
+ * The quality of those manually written mocks is a bit, uh, unpredictable. You may see some really polished ones, but you may also see some that were hacked up in a hurry and have all sorts of ad-hoc restrictions.
28
28
  * The knowledge you gained from using one mock doesn't transfer to the next.
29
29
 
30
30
  In contrast, Java and Python programmers have some fine mock frameworks, which automate the creation of mocks. As a result, mocking is a proven effective technique and widely adopted practice in those communities. Having the right tool absolutely makes the difference.
@@ -187,7 +187,7 @@ sometimes causes the test program to crash. You'll still be able to
187
187
  notice that the test has failed, but it's not a graceful failure.
188
188
 
189
189
  A better solution is to use Google Test's
190
- [event listener API](../../googletest/docs/AdvancedGuide.md#extending-google-test-by-handling-test-events)
190
+ [event listener API](../../googletest/docs/advanced.md#extending-google-test-by-handling-test-events)
191
191
  to report a test failure to your testing framework properly. You'll need to
192
192
  implement the `OnTestPartResult()` method of the event listener interface, but it
193
193
  should be straightforward.
@@ -217,7 +217,8 @@ The macro can be followed by some optional _clauses_ that provide more informati
217
217
  This syntax is designed to make an expectation read like English. For example, you can probably guess that
218
218
 
219
219
  ```
220
- using ::testing::Return;...
220
+ using ::testing::Return;
221
+ ...
221
222
  EXPECT_CALL(turtle, GetX())
222
223
  .Times(5)
223
224
  .WillOnce(Return(100))
@@ -251,7 +252,8 @@ EXPECT_CALL(turtle, Forward(_));
251
252
  A list of built-in matchers can be found in the [CheatSheet](CheatSheet.md). For example, here's the `Ge` (greater than or equal) matcher:
252
253
 
253
254
  ```
254
- using ::testing::Ge;...
255
+ using ::testing::Ge;
256
+ ...
255
257
  EXPECT_CALL(turtle, Forward(Ge(100)));
256
258
  ```
257
259
 
@@ -280,7 +282,8 @@ First, if the return type of a mock function is a built-in type or a pointer, th
280
282
  Second, if a mock function doesn't have a default action, or the default action doesn't suit you, you can specify the action to be taken each time the expectation matches using a series of `WillOnce()` clauses followed by an optional `WillRepeatedly()`. For example,
281
283
 
282
284
  ```
283
- using ::testing::Return;...
285
+ using ::testing::Return;
286
+ ...
284
287
  EXPECT_CALL(turtle, GetX())
285
288
  .WillOnce(Return(100))
286
289
  .WillOnce(Return(200))
@@ -290,7 +293,8 @@ EXPECT_CALL(turtle, GetX())
290
293
  This says that `turtle.GetX()` will be called _exactly three times_ (Google Mock inferred this from how many `WillOnce()` clauses we've written, since we didn't explicitly write `Times()`), and will return 100, 200, and 300 respectively.
291
294
 
292
295
  ```
293
- using ::testing::Return;...
296
+ using ::testing::Return;
297
+ ...
294
298
  EXPECT_CALL(turtle, GetY())
295
299
  .WillOnce(Return(100))
296
300
  .WillOnce(Return(200))
@@ -317,7 +321,8 @@ Instead of returning 100, 101, 102, ..., consecutively, this mock function will
317
321
  Time for another quiz! What do you think the following means?
318
322
 
319
323
  ```
320
- using ::testing::Return;...
324
+ using ::testing::Return;
325
+ ...
321
326
  EXPECT_CALL(turtle, GetY())
322
327
  .Times(4)
323
328
  .WillOnce(Return(100));
@@ -331,7 +336,8 @@ So far we've only shown examples where you have a single expectation. More reali
331
336
  By default, when a mock method is invoked, Google Mock will search the expectations in the **reverse order** they are defined, and stop when an active expectation that matches the arguments is found (you can think of it as "newer rules override older ones."). If the matching expectation cannot take any more calls, you will get an upper-bound-violated failure. Here's an example:
332
337
 
333
338
  ```
334
- using ::testing::_;...
339
+ using ::testing::_;
340
+ ...
335
341
  EXPECT_CALL(turtle, Forward(_)); // #1
336
342
  EXPECT_CALL(turtle, Forward(10)) // #2
337
343
  .Times(2);
@@ -347,7 +353,8 @@ By default, an expectation can match a call even though an earlier expectation h
347
353
  Sometimes, you may want all the expected calls to occur in a strict order. To say this in Google Mock is easy:
348
354
 
349
355
  ```
350
- using ::testing::InSequence;...
356
+ using ::testing::InSequence;
357
+ ...
351
358
  TEST(FooTest, DrawsLineSegment) {
352
359
  ...
353
360
  {
@@ -365,7 +372,7 @@ By creating an object of type `InSequence`, all expectations in its scope are pu
365
372
 
366
373
  In this example, we test that `Foo()` calls the three expected functions in the order as written. If a call is made out-of-order, it will be an error.
367
374
 
368
- (What if you care about the relative order of some of the calls, but not all of them? Can you specify an arbitrary partial order? The answer is ... yes! If you are impatient, the details can be found in the [CookBook](CookBook#Expecting_Partially_Ordered_Calls.md).)
375
+ (What if you care about the relative order of some of the calls, but not all of them? Can you specify an arbitrary partial order? The answer is ... yes! If you are impatient, the details can be found in the [CookBook](CookBook.md#expecting-partially-ordered-calls).)
369
376
 
370
377
  ## All Expectations Are Sticky (Unless Said Otherwise) ##
371
378
  Now let's do a quick quiz to see how well you can use this mock stuff already. How would you test that the turtle is asked to go to the origin _exactly twice_ (you want to ignore any other instructions it receives)?
@@ -373,7 +380,8 @@ Now let's do a quick quiz to see how well you can use this mock stuff already. H
373
380
  After you've come up with your answer, take a look at ours and compare notes (solve it yourself first - don't cheat!):
374
381
 
375
382
  ```
376
- using ::testing::_;...
383
+ using ::testing::_;
384
+ ...
377
385
  EXPECT_CALL(turtle, GoTo(_, _)) // #1
378
386
  .Times(AnyNumber());
379
387
  EXPECT_CALL(turtle, GoTo(0, 0)) // #2
@@ -240,7 +240,7 @@ You cannot mock a variadic function (i.e. a function taking ellipsis
240
240
  The problem is that in general, there is _no way_ for a mock object to
241
241
  know how many arguments are passed to the variadic method, and what
242
242
  the arguments' types are. Only the _author of the base class_ knows
243
- the protocol, and we cannot look into his head.
243
+ the protocol, and we cannot look into their head.
244
244
 
245
245
  Therefore, to mock such a function, the _user_ must teach the mock
246
246
  object how to figure out the number of arguments and their types. One
@@ -607,7 +607,6 @@ See this [recipe](CookBook.md#mocking_side_effects) for more details and an exam
607
607
  If you cannot find the answer to your question in this FAQ, there are
608
608
  some other resources you can use:
609
609
 
610
- 1. read other [documentation](Documentation.md),
611
610
  1. search the mailing list [archive](http://groups.google.com/group/googlemock/topics),
612
611
  1. ask it on [googlemock@googlegroups.com](mailto:googlemock@googlegroups.com) and someone will answer it (to prevent spam, we require you to join the [discussion group](http://groups.google.com/group/googlemock) before you can post.).
613
612
 
@@ -46,9 +46,10 @@
46
46
  #include "gmock/internal/gmock-internal-utils.h"
47
47
  #include "gmock/internal/gmock-port.h"
48
48
 
49
- #if GTEST_HAS_STD_TYPE_TRAITS_ // Defined by gtest-port.h via gmock-port.h.
49
+ #if GTEST_LANG_CXX11 // Defined by gtest-port.h via gmock-port.h.
50
+ #include <functional>
50
51
  #include <type_traits>
51
- #endif
52
+ #endif // GTEST_LANG_CXX11
52
53
 
53
54
  namespace testing {
54
55
 
@@ -96,7 +97,7 @@ struct BuiltInDefaultValueGetter<T, false> {
96
97
  template <typename T>
97
98
  class BuiltInDefaultValue {
98
99
  public:
99
- #if GTEST_HAS_STD_TYPE_TRAITS_
100
+ #if GTEST_LANG_CXX11
100
101
  // This function returns true iff type T has a built-in default value.
101
102
  static bool Exists() {
102
103
  return ::std::is_default_constructible<T>::value;
@@ -107,7 +108,7 @@ class BuiltInDefaultValue {
107
108
  T, ::std::is_default_constructible<T>::value>::Get();
108
109
  }
109
110
 
110
- #else // GTEST_HAS_STD_TYPE_TRAITS_
111
+ #else // GTEST_LANG_CXX11
111
112
  // This function returns true iff type T has a built-in default value.
112
113
  static bool Exists() {
113
114
  return false;
@@ -117,7 +118,7 @@ class BuiltInDefaultValue {
117
118
  return BuiltInDefaultValueGetter<T, false>::Get();
118
119
  }
119
120
 
120
- #endif // GTEST_HAS_STD_TYPE_TRAITS_
121
+ #endif // GTEST_LANG_CXX11
121
122
  };
122
123
 
123
124
  // This partial specialization says that we use the same built-in
@@ -359,14 +360,20 @@ class Action {
359
360
 
360
361
  // Constructs a null Action. Needed for storing Action objects in
361
362
  // STL containers.
362
- Action() : impl_(NULL) {}
363
+ Action() {}
363
364
 
364
- // Constructs an Action from its implementation. A NULL impl is
365
- // used to represent the "do-default" action.
366
- explicit Action(ActionInterface<F>* impl) : impl_(impl) {}
365
+ #if GTEST_LANG_CXX11
366
+ // Construct an Action from a specified callable.
367
+ // This cannot take std::function directly, because then Action would not be
368
+ // directly constructible from lambda (it would require two conversions).
369
+ template <typename G,
370
+ typename = typename ::std::enable_if<
371
+ ::std::is_constructible<::std::function<F>, G>::value>::type>
372
+ Action(G&& fun) : fun_(::std::forward<G>(fun)) {} // NOLINT
373
+ #endif
367
374
 
368
- // Copy constructor.
369
- Action(const Action& action) : impl_(action.impl_) {}
375
+ // Constructs an Action from its implementation.
376
+ explicit Action(ActionInterface<F>* impl) : impl_(impl) {}
370
377
 
371
378
  // This constructor allows us to turn an Action<Func> object into an
372
379
  // Action<F>, as long as F's arguments can be implicitly converted
@@ -376,7 +383,13 @@ class Action {
376
383
  explicit Action(const Action<Func>& action);
377
384
 
378
385
  // Returns true iff this is the DoDefault() action.
379
- bool IsDoDefault() const { return impl_.get() == NULL; }
386
+ bool IsDoDefault() const {
387
+ #if GTEST_LANG_CXX11
388
+ return impl_ == nullptr && fun_ == nullptr;
389
+ #else
390
+ return impl_ == NULL;
391
+ #endif
392
+ }
380
393
 
381
394
  // Performs the action. Note that this method is const even though
382
395
  // the corresponding method in ActionInterface is not. The reason
@@ -384,14 +397,15 @@ class Action {
384
397
  // another concrete action, not that the concrete action it binds to
385
398
  // cannot change state. (Think of the difference between a const
386
399
  // pointer and a pointer to const.)
387
- Result Perform(const ArgumentTuple& args) const {
388
- internal::Assert(
389
- !IsDoDefault(), __FILE__, __LINE__,
390
- "You are using DoDefault() inside a composite action like "
391
- "DoAll() or WithArgs(). This is not supported for technical "
392
- "reasons. Please instead spell out the default action, or "
393
- "assign the default action to an Action variable and use "
394
- "the variable in various places.");
400
+ Result Perform(ArgumentTuple args) const {
401
+ if (IsDoDefault()) {
402
+ internal::IllegalDoDefault(__FILE__, __LINE__);
403
+ }
404
+ #if GTEST_LANG_CXX11
405
+ if (fun_ != nullptr) {
406
+ return internal::Apply(fun_, ::std::move(args));
407
+ }
408
+ #endif
395
409
  return impl_->Perform(args);
396
410
  }
397
411
 
@@ -399,6 +413,18 @@ class Action {
399
413
  template <typename F1, typename F2>
400
414
  friend class internal::ActionAdaptor;
401
415
 
416
+ template <typename G>
417
+ friend class Action;
418
+
419
+ // In C++11, Action can be implemented either as a generic functor (through
420
+ // std::function), or legacy ActionInterface. In C++98, only ActionInterface
421
+ // is available. The invariants are as follows:
422
+ // * in C++98, impl_ is null iff this is the default action
423
+ // * in C++11, at most one of fun_ & impl_ may be nonnull; both are null iff
424
+ // this is the default action
425
+ #if GTEST_LANG_CXX11
426
+ ::std::function<F> fun_;
427
+ #endif
402
428
  internal::linked_ptr<ActionInterface<F> > impl_;
403
429
  };
404
430
 
@@ -530,6 +556,9 @@ struct ByMoveWrapper {
530
556
  // statement, and conversion of the result of Return to Action<T(U)> is a
531
557
  // good place for that.
532
558
  //
559
+ // The real life example of the above scenario happens when an invocation
560
+ // of gtl::Container() is passed into Return.
561
+ //
533
562
  template <typename R>
534
563
  class ReturnAction {
535
564
  public:
@@ -749,7 +778,7 @@ class DoDefaultAction {
749
778
  // This template type conversion operator allows DoDefault() to be
750
779
  // used in any function.
751
780
  template <typename F>
752
- operator Action<F>() const { return Action<F>(NULL); }
781
+ operator Action<F>() const { return Action<F>(); } // NOLINT
753
782
  };
754
783
 
755
784
  // Implements the Assign action to set a given pointer referent to a
@@ -885,6 +914,28 @@ class InvokeMethodWithoutArgsAction {
885
914
  GTEST_DISALLOW_ASSIGN_(InvokeMethodWithoutArgsAction);
886
915
  };
887
916
 
917
+ // Implements the InvokeWithoutArgs(callback) action.
918
+ template <typename CallbackType>
919
+ class InvokeCallbackWithoutArgsAction {
920
+ public:
921
+ // The c'tor takes ownership of the callback.
922
+ explicit InvokeCallbackWithoutArgsAction(CallbackType* callback)
923
+ : callback_(callback) {
924
+ callback->CheckIsRepeatable(); // Makes sure the callback is permanent.
925
+ }
926
+
927
+ // This type conversion operator template allows Invoke(callback) to
928
+ // be used wherever the callback's return type can be implicitly
929
+ // converted to that of the mock function.
930
+ template <typename Result, typename ArgumentTuple>
931
+ Result Perform(const ArgumentTuple&) const { return callback_->Run(); }
932
+
933
+ private:
934
+ const internal::linked_ptr<CallbackType> callback_;
935
+
936
+ GTEST_DISALLOW_ASSIGN_(InvokeCallbackWithoutArgsAction);
937
+ };
938
+
888
939
  // Implements the IgnoreResult(action) action.
889
940
  template <typename A>
890
941
  class IgnoreResultAction {
@@ -1029,9 +1080,9 @@ class DoBothAction {
1029
1080
  // return sqrt(x*x + y*y);
1030
1081
  // }
1031
1082
  // ...
1032
- // EXEPCT_CALL(mock, Foo("abc", _, _))
1083
+ // EXPECT_CALL(mock, Foo("abc", _, _))
1033
1084
  // .WillOnce(Invoke(DistanceToOriginWithLabel));
1034
- // EXEPCT_CALL(mock, Bar(5, _, _))
1085
+ // EXPECT_CALL(mock, Bar(5, _, _))
1035
1086
  // .WillOnce(Invoke(DistanceToOriginWithIndex));
1036
1087
  //
1037
1088
  // you could write
@@ -1041,8 +1092,8 @@ class DoBothAction {
1041
1092
  // return sqrt(x*x + y*y);
1042
1093
  // }
1043
1094
  // ...
1044
- // EXEPCT_CALL(mock, Foo("abc", _, _)).WillOnce(Invoke(DistanceToOrigin));
1045
- // EXEPCT_CALL(mock, Bar(5, _, _)).WillOnce(Invoke(DistanceToOrigin));
1095
+ // EXPECT_CALL(mock, Foo("abc", _, _)).WillOnce(Invoke(DistanceToOrigin));
1096
+ // EXPECT_CALL(mock, Bar(5, _, _)).WillOnce(Invoke(DistanceToOrigin));
1046
1097
  typedef internal::IgnoredValue Unused;
1047
1098
 
1048
1099
  // This constructor allows us to turn an Action<From> object into an
@@ -1052,7 +1103,13 @@ typedef internal::IgnoredValue Unused;
1052
1103
  template <typename To>
1053
1104
  template <typename From>
1054
1105
  Action<To>::Action(const Action<From>& from)
1055
- : impl_(new internal::ActionAdaptor<To, From>(from)) {}
1106
+ :
1107
+ #if GTEST_LANG_CXX11
1108
+ fun_(from.fun_),
1109
+ #endif
1110
+ impl_(from.impl_ == NULL ? NULL
1111
+ : new internal::ActionAdaptor<To, From>(from)) {
1112
+ }
1056
1113
 
1057
1114
  // Creates an action that returns 'value'. 'value' is passed by value
1058
1115
  // instead of const reference - otherwise Return("string literal")
@@ -1,4 +1,6 @@
1
- // This file was GENERATED by a script. DO NOT EDIT BY HAND!!!
1
+ // This file was GENERATED by command:
2
+ // pump.py gmock-generated-actions.h.pump
3
+ // DO NOT EDIT BY HAND!!!
2
4
 
3
5
  // Copyright 2007, Google Inc.
4
6
  // All rights reserved.
@@ -45,8 +47,8 @@ namespace testing {
45
47
  namespace internal {
46
48
 
47
49
  // InvokeHelper<F> knows how to unpack an N-tuple and invoke an N-ary
48
- // function or method with the unpacked values, where F is a function
49
- // type that takes N arguments.
50
+ // function, method, or callback with the unpacked values, where F is
51
+ // a function type that takes N arguments.
50
52
  template <typename Result, typename ArgumentTuple>
51
53
  class InvokeHelper;
52
54
 
@@ -64,6 +66,12 @@ class InvokeHelper<R, ::testing::tuple<> > {
64
66
  const ::testing::tuple<>&) {
65
67
  return (obj_ptr->*method_ptr)();
66
68
  }
69
+
70
+ template <typename CallbackType>
71
+ static R InvokeCallback(CallbackType* callback,
72
+ const ::testing::tuple<>&) {
73
+ return callback->Run();
74
+ }
67
75
  };
68
76
 
69
77
  template <typename R, typename A1>
@@ -80,6 +88,12 @@ class InvokeHelper<R, ::testing::tuple<A1> > {
80
88
  const ::testing::tuple<A1>& args) {
81
89
  return (obj_ptr->*method_ptr)(get<0>(args));
82
90
  }
91
+
92
+ template <typename CallbackType>
93
+ static R InvokeCallback(CallbackType* callback,
94
+ const ::testing::tuple<A1>& args) {
95
+ return callback->Run(get<0>(args));
96
+ }
83
97
  };
84
98
 
85
99
  template <typename R, typename A1, typename A2>
@@ -96,6 +110,12 @@ class InvokeHelper<R, ::testing::tuple<A1, A2> > {
96
110
  const ::testing::tuple<A1, A2>& args) {
97
111
  return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args));
98
112
  }
113
+
114
+ template <typename CallbackType>
115
+ static R InvokeCallback(CallbackType* callback,
116
+ const ::testing::tuple<A1, A2>& args) {
117
+ return callback->Run(get<0>(args), get<1>(args));
118
+ }
99
119
  };
100
120
 
101
121
  template <typename R, typename A1, typename A2, typename A3>
@@ -113,6 +133,12 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3> > {
113
133
  return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args),
114
134
  get<2>(args));
115
135
  }
136
+
137
+ template <typename CallbackType>
138
+ static R InvokeCallback(CallbackType* callback,
139
+ const ::testing::tuple<A1, A2, A3>& args) {
140
+ return callback->Run(get<0>(args), get<1>(args), get<2>(args));
141
+ }
116
142
  };
117
143
 
118
144
  template <typename R, typename A1, typename A2, typename A3, typename A4>
@@ -132,6 +158,13 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4> > {
132
158
  return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args),
133
159
  get<2>(args), get<3>(args));
134
160
  }
161
+
162
+ template <typename CallbackType>
163
+ static R InvokeCallback(CallbackType* callback,
164
+ const ::testing::tuple<A1, A2, A3, A4>& args) {
165
+ return callback->Run(get<0>(args), get<1>(args), get<2>(args),
166
+ get<3>(args));
167
+ }
135
168
  };
136
169
 
137
170
  template <typename R, typename A1, typename A2, typename A3, typename A4,
@@ -152,6 +185,13 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4, A5> > {
152
185
  return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args),
153
186
  get<2>(args), get<3>(args), get<4>(args));
154
187
  }
188
+
189
+ template <typename CallbackType>
190
+ static R InvokeCallback(CallbackType* callback,
191
+ const ::testing::tuple<A1, A2, A3, A4, A5>& args) {
192
+ return callback->Run(get<0>(args), get<1>(args), get<2>(args),
193
+ get<3>(args), get<4>(args));
194
+ }
155
195
  };
156
196
 
157
197
  template <typename R, typename A1, typename A2, typename A3, typename A4,
@@ -172,6 +212,9 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4, A5, A6> > {
172
212
  return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args),
173
213
  get<2>(args), get<3>(args), get<4>(args), get<5>(args));
174
214
  }
215
+
216
+ // There is no InvokeCallback() for 6-tuples, as google3 callbacks
217
+ // support 5 arguments at most.
175
218
  };
176
219
 
177
220
  template <typename R, typename A1, typename A2, typename A3, typename A4,
@@ -194,6 +237,9 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4, A5, A6, A7> > {
194
237
  get<2>(args), get<3>(args), get<4>(args), get<5>(args),
195
238
  get<6>(args));
196
239
  }
240
+
241
+ // There is no InvokeCallback() for 7-tuples, as google3 callbacks
242
+ // support 5 arguments at most.
197
243
  };
198
244
 
199
245
  template <typename R, typename A1, typename A2, typename A3, typename A4,
@@ -217,6 +263,9 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8> > {
217
263
  get<2>(args), get<3>(args), get<4>(args), get<5>(args),
218
264
  get<6>(args), get<7>(args));
219
265
  }
266
+
267
+ // There is no InvokeCallback() for 8-tuples, as google3 callbacks
268
+ // support 5 arguments at most.
220
269
  };
221
270
 
222
271
  template <typename R, typename A1, typename A2, typename A3, typename A4,
@@ -240,6 +289,9 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9> > {
240
289
  get<2>(args), get<3>(args), get<4>(args), get<5>(args),
241
290
  get<6>(args), get<7>(args), get<8>(args));
242
291
  }
292
+
293
+ // There is no InvokeCallback() for 9-tuples, as google3 callbacks
294
+ // support 5 arguments at most.
243
295
  };
244
296
 
245
297
  template <typename R, typename A1, typename A2, typename A3, typename A4,
@@ -265,6 +317,34 @@ class InvokeHelper<R, ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9,
265
317
  get<2>(args), get<3>(args), get<4>(args), get<5>(args),
266
318
  get<6>(args), get<7>(args), get<8>(args), get<9>(args));
267
319
  }
320
+
321
+ // There is no InvokeCallback() for 10-tuples, as google3 callbacks
322
+ // support 5 arguments at most.
323
+ };
324
+
325
+ // Implements the Invoke(callback) action.
326
+ template <typename CallbackType>
327
+ class InvokeCallbackAction {
328
+ public:
329
+ // The c'tor takes ownership of the callback.
330
+ explicit InvokeCallbackAction(CallbackType* callback)
331
+ : callback_(callback) {
332
+ callback->CheckIsRepeatable(); // Makes sure the callback is permanent.
333
+ }
334
+
335
+ // This type conversion operator template allows Invoke(callback) to
336
+ // be used wherever the callback's type is compatible with that of
337
+ // the mock function, i.e. if the mock function's arguments can be
338
+ // implicitly converted to the callback's arguments and the
339
+ // callback's result can be implicitly converted to the mock
340
+ // function's result.
341
+ template <typename Result, typename ArgumentTuple>
342
+ Result Perform(const ArgumentTuple& args) const {
343
+ return InvokeHelper<Result, ArgumentTuple>::InvokeCallback(
344
+ callback_.get(), args);
345
+ }
346
+ private:
347
+ const linked_ptr<CallbackType> callback_;
268
348
  };
269
349
 
270
350
  // An INTERNAL macro for extracting the type of a tuple field. It's
@@ -875,7 +955,7 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
875
955
  // MORE INFORMATION:
876
956
  //
877
957
  // To learn more about using these macros, please search for 'ACTION'
878
- // on http://code.google.com/p/googlemock/wiki/CookBook.
958
+ // on https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md
879
959
 
880
960
  // An internal macro needed for implementing ACTION*().
881
961
  #define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\
@@ -1073,52 +1153,90 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1073
1153
  #define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\
1074
1154
  ()
1075
1155
  #define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\
1076
- (p0##_type gmock_p0) : p0(gmock_p0)
1156
+ (p0##_type gmock_p0) : p0(::testing::internal::move(gmock_p0))
1077
1157
  #define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\
1078
- (p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), p1(gmock_p1)
1158
+ (p0##_type gmock_p0, \
1159
+ p1##_type gmock_p1) : p0(::testing::internal::move(gmock_p0)), \
1160
+ p1(::testing::internal::move(gmock_p1))
1079
1161
  #define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\
1080
1162
  (p0##_type gmock_p0, p1##_type gmock_p1, \
1081
- p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2)
1163
+ p2##_type gmock_p2) : p0(::testing::internal::move(gmock_p0)), \
1164
+ p1(::testing::internal::move(gmock_p1)), \
1165
+ p2(::testing::internal::move(gmock_p2))
1082
1166
  #define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\
1083
1167
  (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1084
- p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1085
- p3(gmock_p3)
1168
+ p3##_type gmock_p3) : p0(::testing::internal::move(gmock_p0)), \
1169
+ p1(::testing::internal::move(gmock_p1)), \
1170
+ p2(::testing::internal::move(gmock_p2)), \
1171
+ p3(::testing::internal::move(gmock_p3))
1086
1172
  #define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\
1087
1173
  (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1088
- p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), \
1089
- p2(gmock_p2), p3(gmock_p3), p4(gmock_p4)
1174
+ p3##_type gmock_p3, \
1175
+ p4##_type gmock_p4) : p0(::testing::internal::move(gmock_p0)), \
1176
+ p1(::testing::internal::move(gmock_p1)), \
1177
+ p2(::testing::internal::move(gmock_p2)), \
1178
+ p3(::testing::internal::move(gmock_p3)), \
1179
+ p4(::testing::internal::move(gmock_p4))
1090
1180
  #define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\
1091
1181
  (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1092
1182
  p3##_type gmock_p3, p4##_type gmock_p4, \
1093
- p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1094
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5)
1183
+ p5##_type gmock_p5) : p0(::testing::internal::move(gmock_p0)), \
1184
+ p1(::testing::internal::move(gmock_p1)), \
1185
+ p2(::testing::internal::move(gmock_p2)), \
1186
+ p3(::testing::internal::move(gmock_p3)), \
1187
+ p4(::testing::internal::move(gmock_p4)), \
1188
+ p5(::testing::internal::move(gmock_p5))
1095
1189
  #define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\
1096
1190
  (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1097
1191
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1098
- p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1099
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6)
1192
+ p6##_type gmock_p6) : p0(::testing::internal::move(gmock_p0)), \
1193
+ p1(::testing::internal::move(gmock_p1)), \
1194
+ p2(::testing::internal::move(gmock_p2)), \
1195
+ p3(::testing::internal::move(gmock_p3)), \
1196
+ p4(::testing::internal::move(gmock_p4)), \
1197
+ p5(::testing::internal::move(gmock_p5)), \
1198
+ p6(::testing::internal::move(gmock_p6))
1100
1199
  #define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\
1101
1200
  (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1102
1201
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1103
- p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), \
1104
- p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
1105
- p7(gmock_p7)
1202
+ p6##_type gmock_p6, \
1203
+ p7##_type gmock_p7) : p0(::testing::internal::move(gmock_p0)), \
1204
+ p1(::testing::internal::move(gmock_p1)), \
1205
+ p2(::testing::internal::move(gmock_p2)), \
1206
+ p3(::testing::internal::move(gmock_p3)), \
1207
+ p4(::testing::internal::move(gmock_p4)), \
1208
+ p5(::testing::internal::move(gmock_p5)), \
1209
+ p6(::testing::internal::move(gmock_p6)), \
1210
+ p7(::testing::internal::move(gmock_p7))
1106
1211
  #define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1107
1212
  p7, p8)\
1108
1213
  (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1109
1214
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1110
1215
  p6##_type gmock_p6, p7##_type gmock_p7, \
1111
- p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1112
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \
1113
- p8(gmock_p8)
1216
+ p8##_type gmock_p8) : p0(::testing::internal::move(gmock_p0)), \
1217
+ p1(::testing::internal::move(gmock_p1)), \
1218
+ p2(::testing::internal::move(gmock_p2)), \
1219
+ p3(::testing::internal::move(gmock_p3)), \
1220
+ p4(::testing::internal::move(gmock_p4)), \
1221
+ p5(::testing::internal::move(gmock_p5)), \
1222
+ p6(::testing::internal::move(gmock_p6)), \
1223
+ p7(::testing::internal::move(gmock_p7)), \
1224
+ p8(::testing::internal::move(gmock_p8))
1114
1225
  #define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1115
1226
  p7, p8, p9)\
1116
1227
  (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1117
1228
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1118
1229
  p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
1119
- p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1120
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \
1121
- p8(gmock_p8), p9(gmock_p9)
1230
+ p9##_type gmock_p9) : p0(::testing::internal::move(gmock_p0)), \
1231
+ p1(::testing::internal::move(gmock_p1)), \
1232
+ p2(::testing::internal::move(gmock_p2)), \
1233
+ p3(::testing::internal::move(gmock_p3)), \
1234
+ p4(::testing::internal::move(gmock_p4)), \
1235
+ p5(::testing::internal::move(gmock_p5)), \
1236
+ p6(::testing::internal::move(gmock_p6)), \
1237
+ p7(::testing::internal::move(gmock_p7)), \
1238
+ p8(::testing::internal::move(gmock_p8)), \
1239
+ p9(::testing::internal::move(gmock_p9))
1122
1240
 
1123
1241
  // Declares the fields for storing the value parameters.
1124
1242
  #define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS()
@@ -1354,7 +1472,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1354
1472
  template <typename p0##_type>\
1355
1473
  class name##ActionP {\
1356
1474
  public:\
1357
- explicit name##ActionP(p0##_type gmock_p0) : p0(gmock_p0) {}\
1475
+ explicit name##ActionP(p0##_type gmock_p0) : \
1476
+ p0(::testing::internal::forward<p0##_type>(gmock_p0)) {}\
1358
1477
  template <typename F>\
1359
1478
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1360
1479
  public:\
@@ -1362,7 +1481,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1362
1481
  typedef typename ::testing::internal::Function<F>::Result return_type;\
1363
1482
  typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1364
1483
  args_type;\
1365
- explicit gmock_Impl(p0##_type gmock_p0) : p0(gmock_p0) {}\
1484
+ explicit gmock_Impl(p0##_type gmock_p0) : \
1485
+ p0(::testing::internal::forward<p0##_type>(gmock_p0)) {}\
1366
1486
  virtual return_type Perform(const args_type& args) {\
1367
1487
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1368
1488
  Perform(this, args);\
@@ -1404,8 +1524,9 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1404
1524
  template <typename p0##_type, typename p1##_type>\
1405
1525
  class name##ActionP2 {\
1406
1526
  public:\
1407
- name##ActionP2(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \
1408
- p1(gmock_p1) {}\
1527
+ name##ActionP2(p0##_type gmock_p0, \
1528
+ p1##_type gmock_p1) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1529
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)) {}\
1409
1530
  template <typename F>\
1410
1531
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1411
1532
  public:\
@@ -1413,8 +1534,9 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1413
1534
  typedef typename ::testing::internal::Function<F>::Result return_type;\
1414
1535
  typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1415
1536
  args_type;\
1416
- gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \
1417
- p1(gmock_p1) {}\
1537
+ gmock_Impl(p0##_type gmock_p0, \
1538
+ p1##_type gmock_p1) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1539
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)) {}\
1418
1540
  virtual return_type Perform(const args_type& args) {\
1419
1541
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1420
1542
  Perform(this, args);\
@@ -1460,7 +1582,9 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1460
1582
  class name##ActionP3 {\
1461
1583
  public:\
1462
1584
  name##ActionP3(p0##_type gmock_p0, p1##_type gmock_p1, \
1463
- p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\
1585
+ p2##_type gmock_p2) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1586
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1587
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)) {}\
1464
1588
  template <typename F>\
1465
1589
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1466
1590
  public:\
@@ -1469,7 +1593,9 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1469
1593
  typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1470
1594
  args_type;\
1471
1595
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, \
1472
- p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\
1596
+ p2##_type gmock_p2) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1597
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1598
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)) {}\
1473
1599
  virtual return_type Perform(const args_type& args) {\
1474
1600
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1475
1601
  Perform(this, args);\
@@ -1519,8 +1645,11 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1519
1645
  class name##ActionP4 {\
1520
1646
  public:\
1521
1647
  name##ActionP4(p0##_type gmock_p0, p1##_type gmock_p1, \
1522
- p2##_type gmock_p2, p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), \
1523
- p2(gmock_p2), p3(gmock_p3) {}\
1648
+ p2##_type gmock_p2, \
1649
+ p3##_type gmock_p3) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1650
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1651
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1652
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)) {}\
1524
1653
  template <typename F>\
1525
1654
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1526
1655
  public:\
@@ -1529,8 +1658,10 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1529
1658
  typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1530
1659
  args_type;\
1531
1660
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1532
- p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1533
- p3(gmock_p3) {}\
1661
+ p3##_type gmock_p3) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1662
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1663
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1664
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)) {}\
1534
1665
  virtual return_type Perform(const args_type& args) {\
1535
1666
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1536
1667
  Perform(this, args);\
@@ -1587,8 +1718,11 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1587
1718
  public:\
1588
1719
  name##ActionP5(p0##_type gmock_p0, p1##_type gmock_p1, \
1589
1720
  p2##_type gmock_p2, p3##_type gmock_p3, \
1590
- p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1591
- p3(gmock_p3), p4(gmock_p4) {}\
1721
+ p4##_type gmock_p4) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1722
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1723
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1724
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1725
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)) {}\
1592
1726
  template <typename F>\
1593
1727
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1594
1728
  public:\
@@ -1597,8 +1731,12 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1597
1731
  typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1598
1732
  args_type;\
1599
1733
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1600
- p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), \
1601
- p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4) {}\
1734
+ p3##_type gmock_p3, \
1735
+ p4##_type gmock_p4) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1736
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1737
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1738
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1739
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)) {}\
1602
1740
  virtual return_type Perform(const args_type& args) {\
1603
1741
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1604
1742
  Perform(this, args);\
@@ -1657,8 +1795,12 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1657
1795
  public:\
1658
1796
  name##ActionP6(p0##_type gmock_p0, p1##_type gmock_p1, \
1659
1797
  p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1660
- p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1661
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\
1798
+ p5##_type gmock_p5) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1799
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1800
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1801
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1802
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
1803
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)) {}\
1662
1804
  template <typename F>\
1663
1805
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1664
1806
  public:\
@@ -1668,8 +1810,12 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1668
1810
  args_type;\
1669
1811
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1670
1812
  p3##_type gmock_p3, p4##_type gmock_p4, \
1671
- p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1672
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\
1813
+ p5##_type gmock_p5) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1814
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1815
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1816
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1817
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
1818
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)) {}\
1673
1819
  virtual return_type Perform(const args_type& args) {\
1674
1820
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1675
1821
  Perform(this, args);\
@@ -1731,9 +1877,14 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1731
1877
  public:\
1732
1878
  name##ActionP7(p0##_type gmock_p0, p1##_type gmock_p1, \
1733
1879
  p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1734
- p5##_type gmock_p5, p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), \
1735
- p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), \
1736
- p6(gmock_p6) {}\
1880
+ p5##_type gmock_p5, \
1881
+ p6##_type gmock_p6) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1882
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1883
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1884
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1885
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
1886
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
1887
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)) {}\
1737
1888
  template <typename F>\
1738
1889
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1739
1890
  public:\
@@ -1743,8 +1894,13 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1743
1894
  args_type;\
1744
1895
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1745
1896
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1746
- p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1747
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) {}\
1897
+ p6##_type gmock_p6) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1898
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1899
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1900
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1901
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
1902
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
1903
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)) {}\
1748
1904
  virtual return_type Perform(const args_type& args) {\
1749
1905
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1750
1906
  Perform(this, args);\
@@ -1813,9 +1969,14 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1813
1969
  name##ActionP8(p0##_type gmock_p0, p1##_type gmock_p1, \
1814
1970
  p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1815
1971
  p5##_type gmock_p5, p6##_type gmock_p6, \
1816
- p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1817
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
1818
- p7(gmock_p7) {}\
1972
+ p7##_type gmock_p7) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1973
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1974
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1975
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1976
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
1977
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
1978
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)), \
1979
+ p7(::testing::internal::forward<p7##_type>(gmock_p7)) {}\
1819
1980
  template <typename F>\
1820
1981
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1821
1982
  public:\
@@ -1825,9 +1986,15 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1825
1986
  args_type;\
1826
1987
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1827
1988
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1828
- p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), \
1829
- p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), \
1830
- p5(gmock_p5), p6(gmock_p6), p7(gmock_p7) {}\
1989
+ p6##_type gmock_p6, \
1990
+ p7##_type gmock_p7) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
1991
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
1992
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
1993
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
1994
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
1995
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
1996
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)), \
1997
+ p7(::testing::internal::forward<p7##_type>(gmock_p7)) {}\
1831
1998
  virtual return_type Perform(const args_type& args) {\
1832
1999
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1833
2000
  Perform(this, args);\
@@ -1900,9 +2067,15 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1900
2067
  name##ActionP9(p0##_type gmock_p0, p1##_type gmock_p1, \
1901
2068
  p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1902
2069
  p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
1903
- p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1904
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \
1905
- p8(gmock_p8) {}\
2070
+ p8##_type gmock_p8) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
2071
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
2072
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
2073
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
2074
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
2075
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
2076
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)), \
2077
+ p7(::testing::internal::forward<p7##_type>(gmock_p7)), \
2078
+ p8(::testing::internal::forward<p8##_type>(gmock_p8)) {}\
1906
2079
  template <typename F>\
1907
2080
  class gmock_Impl : public ::testing::ActionInterface<F> {\
1908
2081
  public:\
@@ -1913,9 +2086,15 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1913
2086
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1914
2087
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1915
2088
  p6##_type gmock_p6, p7##_type gmock_p7, \
1916
- p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1917
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
1918
- p7(gmock_p7), p8(gmock_p8) {}\
2089
+ p8##_type gmock_p8) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
2090
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
2091
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
2092
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
2093
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
2094
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
2095
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)), \
2096
+ p7(::testing::internal::forward<p7##_type>(gmock_p7)), \
2097
+ p8(::testing::internal::forward<p8##_type>(gmock_p8)) {}\
1919
2098
  virtual return_type Perform(const args_type& args) {\
1920
2099
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1921
2100
  Perform(this, args);\
@@ -1992,9 +2171,17 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1992
2171
  name##ActionP10(p0##_type gmock_p0, p1##_type gmock_p1, \
1993
2172
  p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1994
2173
  p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
1995
- p8##_type gmock_p8, p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), \
1996
- p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
1997
- p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\
2174
+ p8##_type gmock_p8, \
2175
+ p9##_type gmock_p9) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
2176
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
2177
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
2178
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
2179
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
2180
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
2181
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)), \
2182
+ p7(::testing::internal::forward<p7##_type>(gmock_p7)), \
2183
+ p8(::testing::internal::forward<p8##_type>(gmock_p8)), \
2184
+ p9(::testing::internal::forward<p9##_type>(gmock_p9)) {}\
1998
2185
  template <typename F>\
1999
2186
  class gmock_Impl : public ::testing::ActionInterface<F> {\
2000
2187
  public:\
@@ -2005,9 +2192,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
2005
2192
  gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
2006
2193
  p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
2007
2194
  p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
2008
- p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
2009
- p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
2010
- p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\
2195
+ p9##_type gmock_p9) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \
2196
+ p1(::testing::internal::forward<p1##_type>(gmock_p1)), \
2197
+ p2(::testing::internal::forward<p2##_type>(gmock_p2)), \
2198
+ p3(::testing::internal::forward<p3##_type>(gmock_p3)), \
2199
+ p4(::testing::internal::forward<p4##_type>(gmock_p4)), \
2200
+ p5(::testing::internal::forward<p5##_type>(gmock_p5)), \
2201
+ p6(::testing::internal::forward<p6##_type>(gmock_p6)), \
2202
+ p7(::testing::internal::forward<p7##_type>(gmock_p7)), \
2203
+ p8(::testing::internal::forward<p8##_type>(gmock_p8)), \
2204
+ p9(::testing::internal::forward<p9##_type>(gmock_p9)) {}\
2011
2205
  virtual return_type Perform(const args_type& args) {\
2012
2206
  return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
2013
2207
  Perform(this, args);\
@@ -2369,7 +2563,7 @@ ACTION_TEMPLATE(ReturnNew,
2369
2563
 
2370
2564
  } // namespace testing
2371
2565
 
2372
- // Include any custom actions added by the local installation.
2566
+ // Include any custom callback actions added by the local installation.
2373
2567
  // We must include this header at the end to make sure it can use the
2374
2568
  // declarations from this file.
2375
2569
  #include "gmock/internal/custom/gmock-generated-actions.h"