rj_schema 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. checksums.yaml +4 -4
  2. metadata +3 -615
  3. data/ext/rj_schema/rapidjson/CHANGELOG.md +0 -158
  4. data/ext/rj_schema/rapidjson/CMakeLists.txt +0 -221
  5. data/ext/rj_schema/rapidjson/CMakeModules/FindGTestSrc.cmake +0 -30
  6. data/ext/rj_schema/rapidjson/RapidJSON.pc.in +0 -7
  7. data/ext/rj_schema/rapidjson/RapidJSONConfig.cmake.in +0 -15
  8. data/ext/rj_schema/rapidjson/RapidJSONConfigVersion.cmake.in +0 -10
  9. data/ext/rj_schema/rapidjson/appveyor.yml +0 -41
  10. data/ext/rj_schema/rapidjson/bin/data/glossary.json +0 -22
  11. data/ext/rj_schema/rapidjson/bin/data/menu.json +0 -27
  12. data/ext/rj_schema/rapidjson/bin/data/readme.txt +0 -1
  13. data/ext/rj_schema/rapidjson/bin/data/sample.json +0 -3315
  14. data/ext/rj_schema/rapidjson/bin/data/webapp.json +0 -88
  15. data/ext/rj_schema/rapidjson/bin/data/widget.json +0 -26
  16. data/ext/rj_schema/rapidjson/bin/draft-04/schema +0 -150
  17. data/ext/rj_schema/rapidjson/bin/encodings/utf16be.json +0 -0
  18. data/ext/rj_schema/rapidjson/bin/encodings/utf16bebom.json +0 -0
  19. data/ext/rj_schema/rapidjson/bin/encodings/utf16le.json +0 -0
  20. data/ext/rj_schema/rapidjson/bin/encodings/utf16lebom.json +0 -0
  21. data/ext/rj_schema/rapidjson/bin/encodings/utf32be.json +0 -0
  22. data/ext/rj_schema/rapidjson/bin/encodings/utf32bebom.json +0 -0
  23. data/ext/rj_schema/rapidjson/bin/encodings/utf32le.json +0 -0
  24. data/ext/rj_schema/rapidjson/bin/encodings/utf32lebom.json +0 -0
  25. data/ext/rj_schema/rapidjson/bin/encodings/utf8.json +0 -7
  26. data/ext/rj_schema/rapidjson/bin/encodings/utf8bom.json +0 -7
  27. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail1.json +0 -1
  28. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail10.json +0 -1
  29. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail11.json +0 -1
  30. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail12.json +0 -1
  31. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail13.json +0 -1
  32. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail14.json +0 -1
  33. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail15.json +0 -1
  34. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail16.json +0 -1
  35. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail17.json +0 -1
  36. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail18.json +0 -1
  37. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail19.json +0 -1
  38. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail2.json +0 -1
  39. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail20.json +0 -1
  40. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail21.json +0 -1
  41. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail22.json +0 -1
  42. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail23.json +0 -1
  43. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail24.json +0 -1
  44. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail25.json +0 -1
  45. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail26.json +0 -1
  46. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail27.json +0 -2
  47. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail28.json +0 -2
  48. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail29.json +0 -1
  49. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail3.json +0 -1
  50. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail30.json +0 -1
  51. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail31.json +0 -1
  52. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail32.json +0 -1
  53. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail33.json +0 -1
  54. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail4.json +0 -1
  55. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail5.json +0 -1
  56. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail6.json +0 -1
  57. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail7.json +0 -1
  58. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail8.json +0 -1
  59. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail9.json +0 -1
  60. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass1.json +0 -58
  61. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass2.json +0 -1
  62. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass3.json +0 -6
  63. data/ext/rj_schema/rapidjson/bin/jsonchecker/readme.txt +0 -3
  64. data/ext/rj_schema/rapidjson/bin/jsonschema/LICENSE +0 -19
  65. data/ext/rj_schema/rapidjson/bin/jsonschema/README.md +0 -148
  66. data/ext/rj_schema/rapidjson/bin/jsonschema/bin/jsonschema_suite +0 -283
  67. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json +0 -3
  68. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/integer.json +0 -3
  69. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/subSchemas.json +0 -8
  70. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json +0 -82
  71. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json +0 -88
  72. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/default.json +0 -49
  73. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/dependencies.json +0 -108
  74. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/disallow.json +0 -80
  75. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json +0 -60
  76. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/enum.json +0 -71
  77. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/extends.json +0 -94
  78. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/items.json +0 -46
  79. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxItems.json +0 -28
  80. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxLength.json +0 -33
  81. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maximum.json +0 -42
  82. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minItems.json +0 -28
  83. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minLength.json +0 -33
  84. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minimum.json +0 -42
  85. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json +0 -107
  86. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/format.json +0 -222
  87. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json +0 -18
  88. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  89. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/pattern.json +0 -34
  90. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json +0 -110
  91. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/properties.json +0 -92
  92. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/ref.json +0 -159
  93. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/refRemote.json +0 -74
  94. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/required.json +0 -53
  95. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/type.json +0 -474
  96. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json +0 -79
  97. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json +0 -82
  98. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json +0 -88
  99. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/allOf.json +0 -112
  100. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/anyOf.json +0 -68
  101. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/default.json +0 -49
  102. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/definitions.json +0 -32
  103. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/dependencies.json +0 -113
  104. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/enum.json +0 -72
  105. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/items.json +0 -46
  106. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxItems.json +0 -28
  107. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxLength.json +0 -33
  108. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json +0 -28
  109. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maximum.json +0 -42
  110. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minItems.json +0 -28
  111. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minLength.json +0 -33
  112. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minProperties.json +0 -28
  113. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minimum.json +0 -42
  114. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json +0 -60
  115. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/not.json +0 -96
  116. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/oneOf.json +0 -68
  117. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json +0 -107
  118. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/format.json +0 -148
  119. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  120. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/pattern.json +0 -34
  121. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json +0 -110
  122. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/properties.json +0 -92
  123. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/ref.json +0 -159
  124. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/refRemote.json +0 -74
  125. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/required.json +0 -39
  126. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/type.json +0 -330
  127. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json +0 -79
  128. data/ext/rj_schema/rapidjson/bin/jsonschema/tox.ini +0 -8
  129. data/ext/rj_schema/rapidjson/bin/types/booleans.json +0 -102
  130. data/ext/rj_schema/rapidjson/bin/types/floats.json +0 -102
  131. data/ext/rj_schema/rapidjson/bin/types/guids.json +0 -102
  132. data/ext/rj_schema/rapidjson/bin/types/integers.json +0 -102
  133. data/ext/rj_schema/rapidjson/bin/types/mixed.json +0 -592
  134. data/ext/rj_schema/rapidjson/bin/types/nulls.json +0 -102
  135. data/ext/rj_schema/rapidjson/bin/types/paragraphs.json +0 -102
  136. data/ext/rj_schema/rapidjson/bin/types/readme.txt +0 -1
  137. data/ext/rj_schema/rapidjson/contrib/natvis/LICENSE +0 -45
  138. data/ext/rj_schema/rapidjson/contrib/natvis/README.md +0 -7
  139. data/ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis +0 -38
  140. data/ext/rj_schema/rapidjson/doc/CMakeLists.txt +0 -27
  141. data/ext/rj_schema/rapidjson/doc/Doxyfile.in +0 -2369
  142. data/ext/rj_schema/rapidjson/doc/Doxyfile.zh-cn.in +0 -2369
  143. data/ext/rj_schema/rapidjson/doc/diagram/architecture.dot +0 -50
  144. data/ext/rj_schema/rapidjson/doc/diagram/architecture.png +0 -0
  145. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.dot +0 -65
  146. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.png +0 -0
  147. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +0 -62
  148. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  149. data/ext/rj_schema/rapidjson/doc/diagram/makefile +0 -8
  150. data/ext/rj_schema/rapidjson/doc/diagram/move1.dot +0 -47
  151. data/ext/rj_schema/rapidjson/doc/diagram/move1.png +0 -0
  152. data/ext/rj_schema/rapidjson/doc/diagram/move2.dot +0 -62
  153. data/ext/rj_schema/rapidjson/doc/diagram/move2.png +0 -0
  154. data/ext/rj_schema/rapidjson/doc/diagram/move3.dot +0 -60
  155. data/ext/rj_schema/rapidjson/doc/diagram/move3.png +0 -0
  156. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.dot +0 -56
  157. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.png +0 -0
  158. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.dot +0 -54
  159. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.png +0 -0
  160. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.dot +0 -58
  161. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.png +0 -0
  162. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.dot +0 -73
  163. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.png +0 -0
  164. data/ext/rj_schema/rapidjson/doc/dom.md +0 -280
  165. data/ext/rj_schema/rapidjson/doc/dom.zh-cn.md +0 -284
  166. data/ext/rj_schema/rapidjson/doc/encoding.md +0 -146
  167. data/ext/rj_schema/rapidjson/doc/encoding.zh-cn.md +0 -152
  168. data/ext/rj_schema/rapidjson/doc/faq.md +0 -289
  169. data/ext/rj_schema/rapidjson/doc/faq.zh-cn.md +0 -290
  170. data/ext/rj_schema/rapidjson/doc/features.md +0 -104
  171. data/ext/rj_schema/rapidjson/doc/features.zh-cn.md +0 -103
  172. data/ext/rj_schema/rapidjson/doc/internals.md +0 -368
  173. data/ext/rj_schema/rapidjson/doc/internals.zh-cn.md +0 -363
  174. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.png +0 -0
  175. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.svg +0 -119
  176. data/ext/rj_schema/rapidjson/doc/misc/DoxygenLayout.xml +0 -194
  177. data/ext/rj_schema/rapidjson/doc/misc/doxygenextra.css +0 -274
  178. data/ext/rj_schema/rapidjson/doc/misc/footer.html +0 -11
  179. data/ext/rj_schema/rapidjson/doc/misc/header.html +0 -24
  180. data/ext/rj_schema/rapidjson/doc/npm.md +0 -31
  181. data/ext/rj_schema/rapidjson/doc/performance.md +0 -26
  182. data/ext/rj_schema/rapidjson/doc/performance.zh-cn.md +0 -26
  183. data/ext/rj_schema/rapidjson/doc/pointer.md +0 -234
  184. data/ext/rj_schema/rapidjson/doc/pointer.zh-cn.md +0 -234
  185. data/ext/rj_schema/rapidjson/doc/sax.md +0 -509
  186. data/ext/rj_schema/rapidjson/doc/sax.zh-cn.md +0 -487
  187. data/ext/rj_schema/rapidjson/doc/schema.md +0 -505
  188. data/ext/rj_schema/rapidjson/doc/schema.zh-cn.md +0 -237
  189. data/ext/rj_schema/rapidjson/doc/stream.md +0 -429
  190. data/ext/rj_schema/rapidjson/doc/stream.zh-cn.md +0 -429
  191. data/ext/rj_schema/rapidjson/doc/tutorial.md +0 -536
  192. data/ext/rj_schema/rapidjson/doc/tutorial.zh-cn.md +0 -534
  193. data/ext/rj_schema/rapidjson/docker/debian/Dockerfile +0 -8
  194. data/ext/rj_schema/rapidjson/example/CMakeLists.txt +0 -45
  195. data/ext/rj_schema/rapidjson/example/archiver/archiver.cpp +0 -292
  196. data/ext/rj_schema/rapidjson/example/archiver/archiver.h +0 -145
  197. data/ext/rj_schema/rapidjson/example/archiver/archivertest.cpp +0 -287
  198. data/ext/rj_schema/rapidjson/example/capitalize/capitalize.cpp +0 -67
  199. data/ext/rj_schema/rapidjson/example/condense/condense.cpp +0 -32
  200. data/ext/rj_schema/rapidjson/example/filterkey/filterkey.cpp +0 -135
  201. data/ext/rj_schema/rapidjson/example/filterkeydom/filterkeydom.cpp +0 -170
  202. data/ext/rj_schema/rapidjson/example/jsonx/jsonx.cpp +0 -207
  203. data/ext/rj_schema/rapidjson/example/lookaheadparser/lookaheadparser.cpp +0 -350
  204. data/ext/rj_schema/rapidjson/example/messagereader/messagereader.cpp +0 -105
  205. data/ext/rj_schema/rapidjson/example/parsebyparts/parsebyparts.cpp +0 -176
  206. data/ext/rj_schema/rapidjson/example/pretty/pretty.cpp +0 -30
  207. data/ext/rj_schema/rapidjson/example/prettyauto/prettyauto.cpp +0 -56
  208. data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +0 -78
  209. data/ext/rj_schema/rapidjson/example/serialize/serialize.cpp +0 -173
  210. data/ext/rj_schema/rapidjson/example/simpledom/simpledom.cpp +0 -29
  211. data/ext/rj_schema/rapidjson/example/simplepullreader/simplepullreader.cpp +0 -53
  212. data/ext/rj_schema/rapidjson/example/simplereader/simplereader.cpp +0 -42
  213. data/ext/rj_schema/rapidjson/example/simplewriter/simplewriter.cpp +0 -36
  214. data/ext/rj_schema/rapidjson/example/tutorial/tutorial.cpp +0 -151
  215. data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +0 -284
  216. data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +0 -78
  217. data/ext/rj_schema/rapidjson/include/rapidjson/document.h +0 -2648
  218. data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +0 -299
  219. data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +0 -716
  220. data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +0 -74
  221. data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +0 -161
  222. data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +0 -99
  223. data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +0 -104
  224. data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +0 -151
  225. data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +0 -290
  226. data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +0 -271
  227. data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +0 -245
  228. data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +0 -78
  229. data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +0 -308
  230. data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +0 -186
  231. data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +0 -55
  232. data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +0 -732
  233. data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +0 -231
  234. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +0 -69
  235. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +0 -290
  236. data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +0 -46
  237. data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +0 -113
  238. data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +0 -70
  239. data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +0 -71
  240. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/inttypes.h +0 -316
  241. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/stdint.h +0 -300
  242. data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +0 -81
  243. data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +0 -1357
  244. data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +0 -277
  245. data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +0 -630
  246. data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +0 -2230
  247. data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +0 -2494
  248. data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +0 -223
  249. data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +0 -121
  250. data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +0 -710
  251. data/ext/rj_schema/rapidjson/include_dirs.js +0 -2
  252. data/ext/rj_schema/rapidjson/library.json +0 -15
  253. data/ext/rj_schema/rapidjson/license.txt +0 -57
  254. data/ext/rj_schema/rapidjson/package.json +0 -24
  255. data/ext/rj_schema/rapidjson/rapidjson.autopkg +0 -77
  256. data/ext/rj_schema/rapidjson/readme.md +0 -160
  257. data/ext/rj_schema/rapidjson/readme.zh-cn.md +0 -152
  258. data/ext/rj_schema/rapidjson/test/CMakeLists.txt +0 -20
  259. data/ext/rj_schema/rapidjson/test/perftest/CMakeLists.txt +0 -28
  260. data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +0 -974
  261. data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +0 -24
  262. data/ext/rj_schema/rapidjson/test/perftest/perftest.h +0 -185
  263. data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +0 -166
  264. data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +0 -472
  265. data/ext/rj_schema/rapidjson/test/perftest/schematest.cpp +0 -223
  266. data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +0 -92
  267. data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +0 -100
  268. data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +0 -138
  269. data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +0 -115
  270. data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +0 -672
  271. data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +0 -98
  272. data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +0 -313
  273. data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +0 -451
  274. data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +0 -112
  275. data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +0 -230
  276. data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +0 -181
  277. data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +0 -160
  278. data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +0 -143
  279. data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +0 -70
  280. data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +0 -92
  281. data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +0 -1529
  282. data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +0 -373
  283. data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +0 -2190
  284. data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +0 -638
  285. data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +0 -2072
  286. data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +0 -219
  287. data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +0 -30
  288. data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +0 -192
  289. data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +0 -132
  290. data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +0 -51
  291. data/ext/rj_schema/rapidjson/test/unittest/unittest.h +0 -140
  292. data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +0 -1851
  293. data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +0 -598
  294. data/ext/rj_schema/rapidjson/test/valgrind.supp +0 -17
  295. data/ext/rj_schema/rapidjson/thirdparty/gtest/CMakeLists.txt +0 -16
  296. data/ext/rj_schema/rapidjson/thirdparty/gtest/README.md +0 -141
  297. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CHANGES +0 -126
  298. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +0 -202
  299. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +0 -40
  300. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/LICENSE +0 -28
  301. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/Makefile.am +0 -224
  302. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/README.md +0 -333
  303. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/configure.ac +0 -146
  304. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +0 -562
  305. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +0 -3675
  306. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +0 -280
  307. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DevGuide.md +0 -132
  308. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +0 -12
  309. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +0 -439
  310. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +0 -628
  311. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +0 -19
  312. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CheatSheet.md +0 -525
  313. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CookBook.md +0 -3250
  314. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/Documentation.md +0 -11
  315. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/ForDummies.md +0 -439
  316. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/FrequentlyAskedQuestions.md +0 -624
  317. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CheatSheet.md +0 -534
  318. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CookBook.md +0 -3342
  319. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/Documentation.md +0 -12
  320. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/ForDummies.md +0 -439
  321. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/FrequentlyAskedQuestions.md +0 -628
  322. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CheatSheet.md +0 -556
  323. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CookBook.md +0 -3432
  324. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/Documentation.md +0 -12
  325. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/ForDummies.md +0 -439
  326. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/FrequentlyAskedQuestions.md +0 -628
  327. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +0 -1205
  328. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +0 -147
  329. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +0 -2377
  330. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +0 -794
  331. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +0 -1095
  332. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +0 -291
  333. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +0 -2179
  334. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +0 -672
  335. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +0 -397
  336. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +0 -161
  337. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +0 -4399
  338. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +0 -246
  339. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +0 -58
  340. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +0 -1847
  341. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +0 -94
  342. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +0 -8
  343. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +0 -10
  344. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +0 -39
  345. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +0 -46
  346. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +0 -279
  347. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +0 -136
  348. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +0 -511
  349. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +0 -91
  350. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/make/Makefile +0 -101
  351. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +0 -32
  352. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +0 -191
  353. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +0 -15
  354. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +0 -187
  355. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +0 -201
  356. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +0 -32
  357. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +0 -82
  358. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +0 -19
  359. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +0 -88
  360. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +0 -101
  361. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +0 -32
  362. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +0 -84
  363. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +0 -19
  364. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +0 -90
  365. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +0 -103
  366. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +0 -240
  367. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +0 -203
  368. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +0 -35
  369. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +0 -115
  370. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  371. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +0 -1733
  372. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +0 -227
  373. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +0 -448
  374. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +0 -59
  375. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +0 -287
  376. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +0 -41
  377. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +0 -31
  378. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +0 -303
  379. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +0 -640
  380. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +0 -1387
  381. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +0 -78
  382. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +0 -47
  383. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +0 -156
  384. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +0 -174
  385. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +0 -498
  386. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +0 -823
  387. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +0 -183
  388. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +0 -54
  389. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +0 -1411
  390. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +0 -428
  391. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +0 -1228
  392. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +0 -622
  393. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +0 -127
  394. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +0 -1286
  395. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +0 -699
  396. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +0 -5648
  397. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +0 -708
  398. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +0 -424
  399. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +0 -43
  400. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +0 -2644
  401. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +0 -51
  402. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +0 -81
  403. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +0 -108
  404. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +0 -100
  405. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +0 -40
  406. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +0 -40
  407. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +0 -669
  408. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +0 -180
  409. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +0 -291
  410. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +0 -310
  411. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +0 -322
  412. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +0 -220
  413. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +0 -112
  414. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CHANGES +0 -157
  415. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +0 -286
  416. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +0 -37
  417. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/LICENSE +0 -28
  418. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/Makefile.am +0 -310
  419. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/README.md +0 -280
  420. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +0 -242
  421. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +0 -138
  422. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +0 -54
  423. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +0 -38
  424. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +0 -40
  425. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +0 -82
  426. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +0 -88
  427. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/configure.ac +0 -68
  428. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/AdvancedGuide.md +0 -2182
  429. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/DevGuide.md +0 -126
  430. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Documentation.md +0 -14
  431. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/FAQ.md +0 -1087
  432. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Primer.md +0 -502
  433. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +0 -177
  434. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Samples.md +0 -14
  435. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_AdvancedGuide.md +0 -2096
  436. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Documentation.md +0 -12
  437. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_FAQ.md +0 -886
  438. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Primer.md +0 -497
  439. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_PumpManual.md +0 -177
  440. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_XcodeGuide.md +0 -93
  441. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_AdvancedGuide.md +0 -2178
  442. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Documentation.md +0 -14
  443. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_FAQ.md +0 -1038
  444. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Primer.md +0 -501
  445. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_PumpManual.md +0 -177
  446. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Samples.md +0 -14
  447. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_XcodeGuide.md +0 -93
  448. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_AdvancedGuide.md +0 -2181
  449. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Documentation.md +0 -14
  450. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_FAQ.md +0 -1082
  451. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Primer.md +0 -501
  452. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_PumpManual.md +0 -177
  453. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Samples.md +0 -14
  454. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_XcodeGuide.md +0 -93
  455. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +0 -93
  456. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +0 -294
  457. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +0 -250
  458. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +0 -1444
  459. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +0 -510
  460. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +0 -993
  461. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +0 -232
  462. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +0 -179
  463. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +0 -263
  464. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +0 -2236
  465. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +0 -358
  466. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +0 -58
  467. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +0 -69
  468. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  469. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +0 -41
  470. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -319
  471. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +0 -206
  472. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +0 -1238
  473. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  474. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
  475. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
  476. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +0 -731
  477. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +0 -93
  478. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +0 -2554
  479. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +0 -167
  480. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  481. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  482. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +0 -3331
  483. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -297
  484. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +0 -363
  485. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +0 -74
  486. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/make/Makefile +0 -82
  487. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.sln +0 -45
  488. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.vcproj +0 -126
  489. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.sln +0 -45
  490. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.vcproj +0 -126
  491. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main-md.vcproj +0 -129
  492. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main.vcproj +0 -129
  493. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test-md.vcproj +0 -164
  494. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test.vcproj +0 -164
  495. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest-md.vcproj +0 -147
  496. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest.vcproj +0 -147
  497. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +0 -123
  498. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +0 -68
  499. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +0 -43
  500. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +0 -144
  501. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +0 -153
  502. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +0 -56
  503. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +0 -85
  504. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +0 -109
  505. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +0 -172
  506. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +0 -151
  507. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +0 -46
  508. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +0 -53
  509. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +0 -45
  510. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +0 -199
  511. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +0 -224
  512. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +0 -130
  513. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +0 -173
  514. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +0 -160
  515. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/common.py +0 -83
  516. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +0 -253
  517. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +0 -730
  518. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +0 -274
  519. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +0 -855
  520. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +0 -158
  521. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/test/Makefile +0 -59
  522. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +0 -1387
  523. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +0 -78
  524. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +0 -48
  525. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +0 -1342
  526. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +0 -387
  527. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +0 -1183
  528. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +0 -1259
  529. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +0 -373
  530. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +0 -110
  531. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +0 -118
  532. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +0 -5388
  533. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +0 -38
  534. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +0 -93
  535. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +0 -1427
  536. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +0 -662
  537. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +0 -154
  538. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +0 -311
  539. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +0 -159
  540. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +0 -215
  541. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +0 -65
  542. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +0 -1055
  543. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +0 -57
  544. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +0 -1304
  545. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +0 -1635
  546. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +0 -208
  547. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +0 -320
  548. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +0 -45
  549. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +0 -380
  550. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +0 -66
  551. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +0 -341
  552. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +0 -47
  553. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +0 -212
  554. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +0 -88
  555. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +0 -237
  556. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +0 -311
  557. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +0 -130
  558. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +0 -71
  559. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +0 -117
  560. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +0 -126
  561. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +0 -192
  562. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +0 -636
  563. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +0 -140
  564. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +0 -172
  565. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +0 -46
  566. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +0 -207
  567. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +0 -157
  568. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +0 -45
  569. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +0 -56
  570. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +0 -340
  571. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +0 -1062
  572. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +0 -743
  573. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +0 -2427
  574. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +0 -127
  575. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +0 -57
  576. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +0 -253
  577. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +0 -325
  578. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +0 -103
  579. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +0 -57
  580. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +0 -256
  581. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +0 -320
  582. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +0 -92
  583. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +0 -171
  584. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +0 -72
  585. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +0 -70
  586. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +0 -43
  587. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +0 -7706
  588. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +0 -49
  589. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +0 -49
  590. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +0 -132
  591. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +0 -308
  592. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +0 -181
  593. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +0 -194
  594. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.cc +0 -36
  595. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.h +0 -55
  596. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +0 -30
  597. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +0 -17
  598. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +0 -41
  599. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +0 -32
  600. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +0 -18
  601. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +0 -8
  602. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +0 -30
  603. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +0 -28
  604. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +0 -457
  605. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +0 -62
  606. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +0 -63
  607. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +0 -59
  608. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +0 -68
  609. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +0 -65
  610. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +0 -100
  611. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +0 -1135
  612. data/ext/rj_schema/rapidjson/thirdparty/gtest/travis.sh +0 -15
  613. data/ext/rj_schema/rapidjson/travis-doxygen.sh +0 -121
@@ -1,428 +0,0 @@
1
- // Copyright 2007, Google Inc.
2
- // All rights reserved.
3
- //
4
- // Redistribution and use in source and binary forms, with or without
5
- // modification, are permitted provided that the following conditions are
6
- // met:
7
- //
8
- // * Redistributions of source code must retain the above copyright
9
- // notice, this list of conditions and the following disclaimer.
10
- // * Redistributions in binary form must reproduce the above
11
- // copyright notice, this list of conditions and the following disclaimer
12
- // in the documentation and/or other materials provided with the
13
- // distribution.
14
- // * Neither the name of Google Inc. nor the names of its
15
- // contributors may be used to endorse or promote products derived from
16
- // this software without specific prior written permission.
17
- //
18
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
- //
30
- // Author: wan@google.com (Zhanyong Wan)
31
-
32
- // Google Mock - a framework for writing C++ mock classes.
33
- //
34
- // This file tests the built-in cardinalities.
35
-
36
- #include "gmock/gmock.h"
37
- #include "gtest/gtest.h"
38
- #include "gtest/gtest-spi.h"
39
-
40
- namespace {
41
-
42
- using std::stringstream;
43
- using testing::AnyNumber;
44
- using testing::AtLeast;
45
- using testing::AtMost;
46
- using testing::Between;
47
- using testing::Cardinality;
48
- using testing::CardinalityInterface;
49
- using testing::Exactly;
50
- using testing::IsSubstring;
51
- using testing::MakeCardinality;
52
-
53
- class MockFoo {
54
- public:
55
- MockFoo() {}
56
- MOCK_METHOD0(Bar, int()); // NOLINT
57
-
58
- private:
59
- GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFoo);
60
- };
61
-
62
- // Tests that Cardinality objects can be default constructed.
63
- TEST(CardinalityTest, IsDefaultConstructable) {
64
- Cardinality c;
65
- }
66
-
67
- // Tests that Cardinality objects are copyable.
68
- TEST(CardinalityTest, IsCopyable) {
69
- // Tests the copy constructor.
70
- Cardinality c = Exactly(1);
71
- EXPECT_FALSE(c.IsSatisfiedByCallCount(0));
72
- EXPECT_TRUE(c.IsSatisfiedByCallCount(1));
73
- EXPECT_TRUE(c.IsSaturatedByCallCount(1));
74
-
75
- // Tests the assignment operator.
76
- c = Exactly(2);
77
- EXPECT_FALSE(c.IsSatisfiedByCallCount(1));
78
- EXPECT_TRUE(c.IsSatisfiedByCallCount(2));
79
- EXPECT_TRUE(c.IsSaturatedByCallCount(2));
80
- }
81
-
82
- TEST(CardinalityTest, IsOverSaturatedByCallCountWorks) {
83
- const Cardinality c = AtMost(5);
84
- EXPECT_FALSE(c.IsOverSaturatedByCallCount(4));
85
- EXPECT_FALSE(c.IsOverSaturatedByCallCount(5));
86
- EXPECT_TRUE(c.IsOverSaturatedByCallCount(6));
87
- }
88
-
89
- // Tests that Cardinality::DescribeActualCallCountTo() creates the
90
- // correct description.
91
- TEST(CardinalityTest, CanDescribeActualCallCount) {
92
- stringstream ss0;
93
- Cardinality::DescribeActualCallCountTo(0, &ss0);
94
- EXPECT_EQ("never called", ss0.str());
95
-
96
- stringstream ss1;
97
- Cardinality::DescribeActualCallCountTo(1, &ss1);
98
- EXPECT_EQ("called once", ss1.str());
99
-
100
- stringstream ss2;
101
- Cardinality::DescribeActualCallCountTo(2, &ss2);
102
- EXPECT_EQ("called twice", ss2.str());
103
-
104
- stringstream ss3;
105
- Cardinality::DescribeActualCallCountTo(3, &ss3);
106
- EXPECT_EQ("called 3 times", ss3.str());
107
- }
108
-
109
- // Tests AnyNumber()
110
- TEST(AnyNumber, Works) {
111
- const Cardinality c = AnyNumber();
112
- EXPECT_TRUE(c.IsSatisfiedByCallCount(0));
113
- EXPECT_FALSE(c.IsSaturatedByCallCount(0));
114
-
115
- EXPECT_TRUE(c.IsSatisfiedByCallCount(1));
116
- EXPECT_FALSE(c.IsSaturatedByCallCount(1));
117
-
118
- EXPECT_TRUE(c.IsSatisfiedByCallCount(9));
119
- EXPECT_FALSE(c.IsSaturatedByCallCount(9));
120
-
121
- stringstream ss;
122
- c.DescribeTo(&ss);
123
- EXPECT_PRED_FORMAT2(IsSubstring, "called any number of times",
124
- ss.str());
125
- }
126
-
127
- TEST(AnyNumberTest, HasCorrectBounds) {
128
- const Cardinality c = AnyNumber();
129
- EXPECT_EQ(0, c.ConservativeLowerBound());
130
- EXPECT_EQ(INT_MAX, c.ConservativeUpperBound());
131
- }
132
-
133
- // Tests AtLeast(n).
134
-
135
- TEST(AtLeastTest, OnNegativeNumber) {
136
- EXPECT_NONFATAL_FAILURE({ // NOLINT
137
- AtLeast(-1);
138
- }, "The invocation lower bound must be >= 0");
139
- }
140
-
141
- TEST(AtLeastTest, OnZero) {
142
- const Cardinality c = AtLeast(0);
143
- EXPECT_TRUE(c.IsSatisfiedByCallCount(0));
144
- EXPECT_FALSE(c.IsSaturatedByCallCount(0));
145
-
146
- EXPECT_TRUE(c.IsSatisfiedByCallCount(1));
147
- EXPECT_FALSE(c.IsSaturatedByCallCount(1));
148
-
149
- stringstream ss;
150
- c.DescribeTo(&ss);
151
- EXPECT_PRED_FORMAT2(IsSubstring, "any number of times",
152
- ss.str());
153
- }
154
-
155
- TEST(AtLeastTest, OnPositiveNumber) {
156
- const Cardinality c = AtLeast(2);
157
- EXPECT_FALSE(c.IsSatisfiedByCallCount(0));
158
- EXPECT_FALSE(c.IsSaturatedByCallCount(0));
159
-
160
- EXPECT_FALSE(c.IsSatisfiedByCallCount(1));
161
- EXPECT_FALSE(c.IsSaturatedByCallCount(1));
162
-
163
- EXPECT_TRUE(c.IsSatisfiedByCallCount(2));
164
- EXPECT_FALSE(c.IsSaturatedByCallCount(2));
165
-
166
- stringstream ss1;
167
- AtLeast(1).DescribeTo(&ss1);
168
- EXPECT_PRED_FORMAT2(IsSubstring, "at least once",
169
- ss1.str());
170
-
171
- stringstream ss2;
172
- c.DescribeTo(&ss2);
173
- EXPECT_PRED_FORMAT2(IsSubstring, "at least twice",
174
- ss2.str());
175
-
176
- stringstream ss3;
177
- AtLeast(3).DescribeTo(&ss3);
178
- EXPECT_PRED_FORMAT2(IsSubstring, "at least 3 times",
179
- ss3.str());
180
- }
181
-
182
- TEST(AtLeastTest, HasCorrectBounds) {
183
- const Cardinality c = AtLeast(2);
184
- EXPECT_EQ(2, c.ConservativeLowerBound());
185
- EXPECT_EQ(INT_MAX, c.ConservativeUpperBound());
186
- }
187
-
188
- // Tests AtMost(n).
189
-
190
- TEST(AtMostTest, OnNegativeNumber) {
191
- EXPECT_NONFATAL_FAILURE({ // NOLINT
192
- AtMost(-1);
193
- }, "The invocation upper bound must be >= 0");
194
- }
195
-
196
- TEST(AtMostTest, OnZero) {
197
- const Cardinality c = AtMost(0);
198
- EXPECT_TRUE(c.IsSatisfiedByCallCount(0));
199
- EXPECT_TRUE(c.IsSaturatedByCallCount(0));
200
-
201
- EXPECT_FALSE(c.IsSatisfiedByCallCount(1));
202
- EXPECT_TRUE(c.IsSaturatedByCallCount(1));
203
-
204
- stringstream ss;
205
- c.DescribeTo(&ss);
206
- EXPECT_PRED_FORMAT2(IsSubstring, "never called",
207
- ss.str());
208
- }
209
-
210
- TEST(AtMostTest, OnPositiveNumber) {
211
- const Cardinality c = AtMost(2);
212
- EXPECT_TRUE(c.IsSatisfiedByCallCount(0));
213
- EXPECT_FALSE(c.IsSaturatedByCallCount(0));
214
-
215
- EXPECT_TRUE(c.IsSatisfiedByCallCount(1));
216
- EXPECT_FALSE(c.IsSaturatedByCallCount(1));
217
-
218
- EXPECT_TRUE(c.IsSatisfiedByCallCount(2));
219
- EXPECT_TRUE(c.IsSaturatedByCallCount(2));
220
-
221
- stringstream ss1;
222
- AtMost(1).DescribeTo(&ss1);
223
- EXPECT_PRED_FORMAT2(IsSubstring, "called at most once",
224
- ss1.str());
225
-
226
- stringstream ss2;
227
- c.DescribeTo(&ss2);
228
- EXPECT_PRED_FORMAT2(IsSubstring, "called at most twice",
229
- ss2.str());
230
-
231
- stringstream ss3;
232
- AtMost(3).DescribeTo(&ss3);
233
- EXPECT_PRED_FORMAT2(IsSubstring, "called at most 3 times",
234
- ss3.str());
235
- }
236
-
237
- TEST(AtMostTest, HasCorrectBounds) {
238
- const Cardinality c = AtMost(2);
239
- EXPECT_EQ(0, c.ConservativeLowerBound());
240
- EXPECT_EQ(2, c.ConservativeUpperBound());
241
- }
242
-
243
- // Tests Between(m, n).
244
-
245
- TEST(BetweenTest, OnNegativeStart) {
246
- EXPECT_NONFATAL_FAILURE({ // NOLINT
247
- Between(-1, 2);
248
- }, "The invocation lower bound must be >= 0, but is actually -1");
249
- }
250
-
251
- TEST(BetweenTest, OnNegativeEnd) {
252
- EXPECT_NONFATAL_FAILURE({ // NOLINT
253
- Between(1, -2);
254
- }, "The invocation upper bound must be >= 0, but is actually -2");
255
- }
256
-
257
- TEST(BetweenTest, OnStartBiggerThanEnd) {
258
- EXPECT_NONFATAL_FAILURE({ // NOLINT
259
- Between(2, 1);
260
- }, "The invocation upper bound (1) must be >= "
261
- "the invocation lower bound (2)");
262
- }
263
-
264
- TEST(BetweenTest, OnZeroStartAndZeroEnd) {
265
- const Cardinality c = Between(0, 0);
266
-
267
- EXPECT_TRUE(c.IsSatisfiedByCallCount(0));
268
- EXPECT_TRUE(c.IsSaturatedByCallCount(0));
269
-
270
- EXPECT_FALSE(c.IsSatisfiedByCallCount(1));
271
- EXPECT_TRUE(c.IsSaturatedByCallCount(1));
272
-
273
- stringstream ss;
274
- c.DescribeTo(&ss);
275
- EXPECT_PRED_FORMAT2(IsSubstring, "never called",
276
- ss.str());
277
- }
278
-
279
- TEST(BetweenTest, OnZeroStartAndNonZeroEnd) {
280
- const Cardinality c = Between(0, 2);
281
-
282
- EXPECT_TRUE(c.IsSatisfiedByCallCount(0));
283
- EXPECT_FALSE(c.IsSaturatedByCallCount(0));
284
-
285
- EXPECT_TRUE(c.IsSatisfiedByCallCount(2));
286
- EXPECT_TRUE(c.IsSaturatedByCallCount(2));
287
-
288
- EXPECT_FALSE(c.IsSatisfiedByCallCount(4));
289
- EXPECT_TRUE(c.IsSaturatedByCallCount(4));
290
-
291
- stringstream ss;
292
- c.DescribeTo(&ss);
293
- EXPECT_PRED_FORMAT2(IsSubstring, "called at most twice",
294
- ss.str());
295
- }
296
-
297
- TEST(BetweenTest, OnSameStartAndEnd) {
298
- const Cardinality c = Between(3, 3);
299
-
300
- EXPECT_FALSE(c.IsSatisfiedByCallCount(2));
301
- EXPECT_FALSE(c.IsSaturatedByCallCount(2));
302
-
303
- EXPECT_TRUE(c.IsSatisfiedByCallCount(3));
304
- EXPECT_TRUE(c.IsSaturatedByCallCount(3));
305
-
306
- EXPECT_FALSE(c.IsSatisfiedByCallCount(4));
307
- EXPECT_TRUE(c.IsSaturatedByCallCount(4));
308
-
309
- stringstream ss;
310
- c.DescribeTo(&ss);
311
- EXPECT_PRED_FORMAT2(IsSubstring, "called 3 times",
312
- ss.str());
313
- }
314
-
315
- TEST(BetweenTest, OnDifferentStartAndEnd) {
316
- const Cardinality c = Between(3, 5);
317
-
318
- EXPECT_FALSE(c.IsSatisfiedByCallCount(2));
319
- EXPECT_FALSE(c.IsSaturatedByCallCount(2));
320
-
321
- EXPECT_TRUE(c.IsSatisfiedByCallCount(3));
322
- EXPECT_FALSE(c.IsSaturatedByCallCount(3));
323
-
324
- EXPECT_TRUE(c.IsSatisfiedByCallCount(5));
325
- EXPECT_TRUE(c.IsSaturatedByCallCount(5));
326
-
327
- EXPECT_FALSE(c.IsSatisfiedByCallCount(6));
328
- EXPECT_TRUE(c.IsSaturatedByCallCount(6));
329
-
330
- stringstream ss;
331
- c.DescribeTo(&ss);
332
- EXPECT_PRED_FORMAT2(IsSubstring, "called between 3 and 5 times",
333
- ss.str());
334
- }
335
-
336
- TEST(BetweenTest, HasCorrectBounds) {
337
- const Cardinality c = Between(3, 5);
338
- EXPECT_EQ(3, c.ConservativeLowerBound());
339
- EXPECT_EQ(5, c.ConservativeUpperBound());
340
- }
341
-
342
- // Tests Exactly(n).
343
-
344
- TEST(ExactlyTest, OnNegativeNumber) {
345
- EXPECT_NONFATAL_FAILURE({ // NOLINT
346
- Exactly(-1);
347
- }, "The invocation lower bound must be >= 0");
348
- }
349
-
350
- TEST(ExactlyTest, OnZero) {
351
- const Cardinality c = Exactly(0);
352
- EXPECT_TRUE(c.IsSatisfiedByCallCount(0));
353
- EXPECT_TRUE(c.IsSaturatedByCallCount(0));
354
-
355
- EXPECT_FALSE(c.IsSatisfiedByCallCount(1));
356
- EXPECT_TRUE(c.IsSaturatedByCallCount(1));
357
-
358
- stringstream ss;
359
- c.DescribeTo(&ss);
360
- EXPECT_PRED_FORMAT2(IsSubstring, "never called",
361
- ss.str());
362
- }
363
-
364
- TEST(ExactlyTest, OnPositiveNumber) {
365
- const Cardinality c = Exactly(2);
366
- EXPECT_FALSE(c.IsSatisfiedByCallCount(0));
367
- EXPECT_FALSE(c.IsSaturatedByCallCount(0));
368
-
369
- EXPECT_TRUE(c.IsSatisfiedByCallCount(2));
370
- EXPECT_TRUE(c.IsSaturatedByCallCount(2));
371
-
372
- stringstream ss1;
373
- Exactly(1).DescribeTo(&ss1);
374
- EXPECT_PRED_FORMAT2(IsSubstring, "called once",
375
- ss1.str());
376
-
377
- stringstream ss2;
378
- c.DescribeTo(&ss2);
379
- EXPECT_PRED_FORMAT2(IsSubstring, "called twice",
380
- ss2.str());
381
-
382
- stringstream ss3;
383
- Exactly(3).DescribeTo(&ss3);
384
- EXPECT_PRED_FORMAT2(IsSubstring, "called 3 times",
385
- ss3.str());
386
- }
387
-
388
- TEST(ExactlyTest, HasCorrectBounds) {
389
- const Cardinality c = Exactly(3);
390
- EXPECT_EQ(3, c.ConservativeLowerBound());
391
- EXPECT_EQ(3, c.ConservativeUpperBound());
392
- }
393
-
394
- // Tests that a user can make his own cardinality by implementing
395
- // CardinalityInterface and calling MakeCardinality().
396
-
397
- class EvenCardinality : public CardinalityInterface {
398
- public:
399
- // Returns true iff call_count calls will satisfy this cardinality.
400
- virtual bool IsSatisfiedByCallCount(int call_count) const {
401
- return (call_count % 2 == 0);
402
- }
403
-
404
- // Returns true iff call_count calls will saturate this cardinality.
405
- virtual bool IsSaturatedByCallCount(int /* call_count */) const {
406
- return false;
407
- }
408
-
409
- // Describes self to an ostream.
410
- virtual void DescribeTo(::std::ostream* ss) const {
411
- *ss << "called even number of times";
412
- }
413
- };
414
-
415
- TEST(MakeCardinalityTest, ConstructsCardinalityFromInterface) {
416
- const Cardinality c = MakeCardinality(new EvenCardinality);
417
-
418
- EXPECT_TRUE(c.IsSatisfiedByCallCount(2));
419
- EXPECT_FALSE(c.IsSatisfiedByCallCount(3));
420
-
421
- EXPECT_FALSE(c.IsSaturatedByCallCount(10000));
422
-
423
- stringstream ss;
424
- c.DescribeTo(&ss);
425
- EXPECT_EQ("called even number of times", ss.str());
426
- }
427
-
428
- } // Unnamed namespace
@@ -1,1228 +0,0 @@
1
- // Copyright 2007, Google Inc.
2
- // All rights reserved.
3
- //
4
- // Redistribution and use in source and binary forms, with or without
5
- // modification, are permitted provided that the following conditions are
6
- // met:
7
- //
8
- // * Redistributions of source code must retain the above copyright
9
- // notice, this list of conditions and the following disclaimer.
10
- // * Redistributions in binary form must reproduce the above
11
- // copyright notice, this list of conditions and the following disclaimer
12
- // in the documentation and/or other materials provided with the
13
- // distribution.
14
- // * Neither the name of Google Inc. nor the names of its
15
- // contributors may be used to endorse or promote products derived from
16
- // this software without specific prior written permission.
17
- //
18
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
- //
30
- // Author: wan@google.com (Zhanyong Wan)
31
-
32
- // Google Mock - a framework for writing C++ mock classes.
33
- //
34
- // This file tests the built-in actions generated by a script.
35
-
36
- #include "gmock/gmock-generated-actions.h"
37
-
38
- #include <functional>
39
- #include <sstream>
40
- #include <string>
41
- #include "gmock/gmock.h"
42
- #include "gtest/gtest.h"
43
-
44
- namespace testing {
45
- namespace gmock_generated_actions_test {
46
-
47
- using ::std::plus;
48
- using ::std::string;
49
- using testing::get;
50
- using testing::make_tuple;
51
- using testing::tuple;
52
- using testing::tuple_element;
53
- using testing::_;
54
- using testing::Action;
55
- using testing::ActionInterface;
56
- using testing::ByRef;
57
- using testing::DoAll;
58
- using testing::Invoke;
59
- using testing::Return;
60
- using testing::ReturnNew;
61
- using testing::SetArgPointee;
62
- using testing::StaticAssertTypeEq;
63
- using testing::Unused;
64
- using testing::WithArgs;
65
-
66
- // For suppressing compiler warnings on conversion possibly losing precision.
67
- inline short Short(short n) { return n; } // NOLINT
68
- inline char Char(char ch) { return ch; }
69
-
70
- // Sample functions and functors for testing various actions.
71
- int Nullary() { return 1; }
72
-
73
- class NullaryFunctor {
74
- public:
75
- int operator()() { return 2; }
76
- };
77
-
78
- bool g_done = false;
79
-
80
- bool Unary(int x) { return x < 0; }
81
-
82
- const char* Plus1(const char* s) { return s + 1; }
83
-
84
- bool ByConstRef(const string& s) { return s == "Hi"; }
85
-
86
- const double g_double = 0;
87
- bool ReferencesGlobalDouble(const double& x) { return &x == &g_double; }
88
-
89
- string ByNonConstRef(string& s) { return s += "+"; } // NOLINT
90
-
91
- struct UnaryFunctor {
92
- int operator()(bool x) { return x ? 1 : -1; }
93
- };
94
-
95
- const char* Binary(const char* input, short n) { return input + n; } // NOLINT
96
-
97
- void VoidBinary(int, char) { g_done = true; }
98
-
99
- int Ternary(int x, char y, short z) { return x + y + z; } // NOLINT
100
-
101
- void VoidTernary(int, char, bool) { g_done = true; }
102
-
103
- int SumOf4(int a, int b, int c, int d) { return a + b + c + d; }
104
-
105
- string Concat4(const char* s1, const char* s2, const char* s3,
106
- const char* s4) {
107
- return string(s1) + s2 + s3 + s4;
108
- }
109
-
110
- int SumOf5(int a, int b, int c, int d, int e) { return a + b + c + d + e; }
111
-
112
- struct SumOf5Functor {
113
- int operator()(int a, int b, int c, int d, int e) {
114
- return a + b + c + d + e;
115
- }
116
- };
117
-
118
- string Concat5(const char* s1, const char* s2, const char* s3,
119
- const char* s4, const char* s5) {
120
- return string(s1) + s2 + s3 + s4 + s5;
121
- }
122
-
123
- int SumOf6(int a, int b, int c, int d, int e, int f) {
124
- return a + b + c + d + e + f;
125
- }
126
-
127
- struct SumOf6Functor {
128
- int operator()(int a, int b, int c, int d, int e, int f) {
129
- return a + b + c + d + e + f;
130
- }
131
- };
132
-
133
- string Concat6(const char* s1, const char* s2, const char* s3,
134
- const char* s4, const char* s5, const char* s6) {
135
- return string(s1) + s2 + s3 + s4 + s5 + s6;
136
- }
137
-
138
- string Concat7(const char* s1, const char* s2, const char* s3,
139
- const char* s4, const char* s5, const char* s6,
140
- const char* s7) {
141
- return string(s1) + s2 + s3 + s4 + s5 + s6 + s7;
142
- }
143
-
144
- string Concat8(const char* s1, const char* s2, const char* s3,
145
- const char* s4, const char* s5, const char* s6,
146
- const char* s7, const char* s8) {
147
- return string(s1) + s2 + s3 + s4 + s5 + s6 + s7 + s8;
148
- }
149
-
150
- string Concat9(const char* s1, const char* s2, const char* s3,
151
- const char* s4, const char* s5, const char* s6,
152
- const char* s7, const char* s8, const char* s9) {
153
- return string(s1) + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9;
154
- }
155
-
156
- string Concat10(const char* s1, const char* s2, const char* s3,
157
- const char* s4, const char* s5, const char* s6,
158
- const char* s7, const char* s8, const char* s9,
159
- const char* s10) {
160
- return string(s1) + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10;
161
- }
162
-
163
- // A helper that turns the type of a C-string literal from const
164
- // char[N] to const char*.
165
- inline const char* CharPtr(const char* s) { return s; }
166
-
167
- // Tests InvokeArgument<N>(...).
168
-
169
- // Tests using InvokeArgument with a nullary function.
170
- TEST(InvokeArgumentTest, Function0) {
171
- Action<int(int, int(*)())> a = InvokeArgument<1>(); // NOLINT
172
- EXPECT_EQ(1, a.Perform(make_tuple(2, &Nullary)));
173
- }
174
-
175
- // Tests using InvokeArgument with a unary function.
176
- TEST(InvokeArgumentTest, Functor1) {
177
- Action<int(UnaryFunctor)> a = InvokeArgument<0>(true); // NOLINT
178
- EXPECT_EQ(1, a.Perform(make_tuple(UnaryFunctor())));
179
- }
180
-
181
- // Tests using InvokeArgument with a 5-ary function.
182
- TEST(InvokeArgumentTest, Function5) {
183
- Action<int(int(*)(int, int, int, int, int))> a = // NOLINT
184
- InvokeArgument<0>(10000, 2000, 300, 40, 5);
185
- EXPECT_EQ(12345, a.Perform(make_tuple(&SumOf5)));
186
- }
187
-
188
- // Tests using InvokeArgument with a 5-ary functor.
189
- TEST(InvokeArgumentTest, Functor5) {
190
- Action<int(SumOf5Functor)> a = // NOLINT
191
- InvokeArgument<0>(10000, 2000, 300, 40, 5);
192
- EXPECT_EQ(12345, a.Perform(make_tuple(SumOf5Functor())));
193
- }
194
-
195
- // Tests using InvokeArgument with a 6-ary function.
196
- TEST(InvokeArgumentTest, Function6) {
197
- Action<int(int(*)(int, int, int, int, int, int))> a = // NOLINT
198
- InvokeArgument<0>(100000, 20000, 3000, 400, 50, 6);
199
- EXPECT_EQ(123456, a.Perform(make_tuple(&SumOf6)));
200
- }
201
-
202
- // Tests using InvokeArgument with a 6-ary functor.
203
- TEST(InvokeArgumentTest, Functor6) {
204
- Action<int(SumOf6Functor)> a = // NOLINT
205
- InvokeArgument<0>(100000, 20000, 3000, 400, 50, 6);
206
- EXPECT_EQ(123456, a.Perform(make_tuple(SumOf6Functor())));
207
- }
208
-
209
- // Tests using InvokeArgument with a 7-ary function.
210
- TEST(InvokeArgumentTest, Function7) {
211
- Action<string(string(*)(const char*, const char*, const char*,
212
- const char*, const char*, const char*,
213
- const char*))> a =
214
- InvokeArgument<0>("1", "2", "3", "4", "5", "6", "7");
215
- EXPECT_EQ("1234567", a.Perform(make_tuple(&Concat7)));
216
- }
217
-
218
- // Tests using InvokeArgument with a 8-ary function.
219
- TEST(InvokeArgumentTest, Function8) {
220
- Action<string(string(*)(const char*, const char*, const char*,
221
- const char*, const char*, const char*,
222
- const char*, const char*))> a =
223
- InvokeArgument<0>("1", "2", "3", "4", "5", "6", "7", "8");
224
- EXPECT_EQ("12345678", a.Perform(make_tuple(&Concat8)));
225
- }
226
-
227
- // Tests using InvokeArgument with a 9-ary function.
228
- TEST(InvokeArgumentTest, Function9) {
229
- Action<string(string(*)(const char*, const char*, const char*,
230
- const char*, const char*, const char*,
231
- const char*, const char*, const char*))> a =
232
- InvokeArgument<0>("1", "2", "3", "4", "5", "6", "7", "8", "9");
233
- EXPECT_EQ("123456789", a.Perform(make_tuple(&Concat9)));
234
- }
235
-
236
- // Tests using InvokeArgument with a 10-ary function.
237
- TEST(InvokeArgumentTest, Function10) {
238
- Action<string(string(*)(const char*, const char*, const char*,
239
- const char*, const char*, const char*,
240
- const char*, const char*, const char*,
241
- const char*))> a =
242
- InvokeArgument<0>("1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
243
- EXPECT_EQ("1234567890", a.Perform(make_tuple(&Concat10)));
244
- }
245
-
246
- // Tests using InvokeArgument with a function that takes a pointer argument.
247
- TEST(InvokeArgumentTest, ByPointerFunction) {
248
- Action<const char*(const char*(*)(const char* input, short n))> a = // NOLINT
249
- InvokeArgument<0>(static_cast<const char*>("Hi"), Short(1));
250
- EXPECT_STREQ("i", a.Perform(make_tuple(&Binary)));
251
- }
252
-
253
- // Tests using InvokeArgument with a function that takes a const char*
254
- // by passing it a C-string literal.
255
- TEST(InvokeArgumentTest, FunctionWithCStringLiteral) {
256
- Action<const char*(const char*(*)(const char* input, short n))> a = // NOLINT
257
- InvokeArgument<0>("Hi", Short(1));
258
- EXPECT_STREQ("i", a.Perform(make_tuple(&Binary)));
259
- }
260
-
261
- // Tests using InvokeArgument with a function that takes a const reference.
262
- TEST(InvokeArgumentTest, ByConstReferenceFunction) {
263
- Action<bool(bool(*function)(const string& s))> a = // NOLINT
264
- InvokeArgument<0>(string("Hi"));
265
- // When action 'a' is constructed, it makes a copy of the temporary
266
- // string object passed to it, so it's OK to use 'a' later, when the
267
- // temporary object has already died.
268
- EXPECT_TRUE(a.Perform(make_tuple(&ByConstRef)));
269
- }
270
-
271
- // Tests using InvokeArgument with ByRef() and a function that takes a
272
- // const reference.
273
- TEST(InvokeArgumentTest, ByExplicitConstReferenceFunction) {
274
- Action<bool(bool(*)(const double& x))> a = // NOLINT
275
- InvokeArgument<0>(ByRef(g_double));
276
- // The above line calls ByRef() on a const value.
277
- EXPECT_TRUE(a.Perform(make_tuple(&ReferencesGlobalDouble)));
278
-
279
- double x = 0;
280
- a = InvokeArgument<0>(ByRef(x)); // This calls ByRef() on a non-const.
281
- EXPECT_FALSE(a.Perform(make_tuple(&ReferencesGlobalDouble)));
282
- }
283
-
284
- // Tests using WithArgs and with an action that takes 1 argument.
285
- TEST(WithArgsTest, OneArg) {
286
- Action<bool(double x, int n)> a = WithArgs<1>(Invoke(Unary)); // NOLINT
287
- EXPECT_TRUE(a.Perform(make_tuple(1.5, -1)));
288
- EXPECT_FALSE(a.Perform(make_tuple(1.5, 1)));
289
- }
290
-
291
- // Tests using WithArgs with an action that takes 2 arguments.
292
- TEST(WithArgsTest, TwoArgs) {
293
- Action<const char*(const char* s, double x, short n)> a =
294
- WithArgs<0, 2>(Invoke(Binary));
295
- const char s[] = "Hello";
296
- EXPECT_EQ(s + 2, a.Perform(make_tuple(CharPtr(s), 0.5, Short(2))));
297
- }
298
-
299
- // Tests using WithArgs with an action that takes 3 arguments.
300
- TEST(WithArgsTest, ThreeArgs) {
301
- Action<int(int, double, char, short)> a = // NOLINT
302
- WithArgs<0, 2, 3>(Invoke(Ternary));
303
- EXPECT_EQ(123, a.Perform(make_tuple(100, 6.5, Char(20), Short(3))));
304
- }
305
-
306
- // Tests using WithArgs with an action that takes 4 arguments.
307
- TEST(WithArgsTest, FourArgs) {
308
- Action<string(const char*, const char*, double, const char*, const char*)> a =
309
- WithArgs<4, 3, 1, 0>(Invoke(Concat4));
310
- EXPECT_EQ("4310", a.Perform(make_tuple(CharPtr("0"), CharPtr("1"), 2.5,
311
- CharPtr("3"), CharPtr("4"))));
312
- }
313
-
314
- // Tests using WithArgs with an action that takes 5 arguments.
315
- TEST(WithArgsTest, FiveArgs) {
316
- Action<string(const char*, const char*, const char*,
317
- const char*, const char*)> a =
318
- WithArgs<4, 3, 2, 1, 0>(Invoke(Concat5));
319
- EXPECT_EQ("43210",
320
- a.Perform(make_tuple(CharPtr("0"), CharPtr("1"), CharPtr("2"),
321
- CharPtr("3"), CharPtr("4"))));
322
- }
323
-
324
- // Tests using WithArgs with an action that takes 6 arguments.
325
- TEST(WithArgsTest, SixArgs) {
326
- Action<string(const char*, const char*, const char*)> a =
327
- WithArgs<0, 1, 2, 2, 1, 0>(Invoke(Concat6));
328
- EXPECT_EQ("012210",
329
- a.Perform(make_tuple(CharPtr("0"), CharPtr("1"), CharPtr("2"))));
330
- }
331
-
332
- // Tests using WithArgs with an action that takes 7 arguments.
333
- TEST(WithArgsTest, SevenArgs) {
334
- Action<string(const char*, const char*, const char*, const char*)> a =
335
- WithArgs<0, 1, 2, 3, 2, 1, 0>(Invoke(Concat7));
336
- EXPECT_EQ("0123210",
337
- a.Perform(make_tuple(CharPtr("0"), CharPtr("1"), CharPtr("2"),
338
- CharPtr("3"))));
339
- }
340
-
341
- // Tests using WithArgs with an action that takes 8 arguments.
342
- TEST(WithArgsTest, EightArgs) {
343
- Action<string(const char*, const char*, const char*, const char*)> a =
344
- WithArgs<0, 1, 2, 3, 0, 1, 2, 3>(Invoke(Concat8));
345
- EXPECT_EQ("01230123",
346
- a.Perform(make_tuple(CharPtr("0"), CharPtr("1"), CharPtr("2"),
347
- CharPtr("3"))));
348
- }
349
-
350
- // Tests using WithArgs with an action that takes 9 arguments.
351
- TEST(WithArgsTest, NineArgs) {
352
- Action<string(const char*, const char*, const char*, const char*)> a =
353
- WithArgs<0, 1, 2, 3, 1, 2, 3, 2, 3>(Invoke(Concat9));
354
- EXPECT_EQ("012312323",
355
- a.Perform(make_tuple(CharPtr("0"), CharPtr("1"), CharPtr("2"),
356
- CharPtr("3"))));
357
- }
358
-
359
- // Tests using WithArgs with an action that takes 10 arguments.
360
- TEST(WithArgsTest, TenArgs) {
361
- Action<string(const char*, const char*, const char*, const char*)> a =
362
- WithArgs<0, 1, 2, 3, 2, 1, 0, 1, 2, 3>(Invoke(Concat10));
363
- EXPECT_EQ("0123210123",
364
- a.Perform(make_tuple(CharPtr("0"), CharPtr("1"), CharPtr("2"),
365
- CharPtr("3"))));
366
- }
367
-
368
- // Tests using WithArgs with an action that is not Invoke().
369
- class SubstractAction : public ActionInterface<int(int, int)> { // NOLINT
370
- public:
371
- virtual int Perform(const tuple<int, int>& args) {
372
- return get<0>(args) - get<1>(args);
373
- }
374
- };
375
-
376
- TEST(WithArgsTest, NonInvokeAction) {
377
- Action<int(const string&, int, int)> a = // NOLINT
378
- WithArgs<2, 1>(MakeAction(new SubstractAction));
379
- string s("hello");
380
- EXPECT_EQ(8, a.Perform(tuple<const string&, int, int>(s, 2, 10)));
381
- }
382
-
383
- // Tests using WithArgs to pass all original arguments in the original order.
384
- TEST(WithArgsTest, Identity) {
385
- Action<int(int x, char y, short z)> a = // NOLINT
386
- WithArgs<0, 1, 2>(Invoke(Ternary));
387
- EXPECT_EQ(123, a.Perform(make_tuple(100, Char(20), Short(3))));
388
- }
389
-
390
- // Tests using WithArgs with repeated arguments.
391
- TEST(WithArgsTest, RepeatedArguments) {
392
- Action<int(bool, int m, int n)> a = // NOLINT
393
- WithArgs<1, 1, 1, 1>(Invoke(SumOf4));
394
- EXPECT_EQ(4, a.Perform(make_tuple(false, 1, 10)));
395
- }
396
-
397
- // Tests using WithArgs with reversed argument order.
398
- TEST(WithArgsTest, ReversedArgumentOrder) {
399
- Action<const char*(short n, const char* input)> a = // NOLINT
400
- WithArgs<1, 0>(Invoke(Binary));
401
- const char s[] = "Hello";
402
- EXPECT_EQ(s + 2, a.Perform(make_tuple(Short(2), CharPtr(s))));
403
- }
404
-
405
- // Tests using WithArgs with compatible, but not identical, argument types.
406
- TEST(WithArgsTest, ArgsOfCompatibleTypes) {
407
- Action<long(short x, char y, double z, char c)> a = // NOLINT
408
- WithArgs<0, 1, 3>(Invoke(Ternary));
409
- EXPECT_EQ(123, a.Perform(make_tuple(Short(100), Char(20), 5.6, Char(3))));
410
- }
411
-
412
- // Tests using WithArgs with an action that returns void.
413
- TEST(WithArgsTest, VoidAction) {
414
- Action<void(double x, char c, int n)> a = WithArgs<2, 1>(Invoke(VoidBinary));
415
- g_done = false;
416
- a.Perform(make_tuple(1.5, 'a', 3));
417
- EXPECT_TRUE(g_done);
418
- }
419
-
420
- // Tests DoAll(a1, a2).
421
- TEST(DoAllTest, TwoActions) {
422
- int n = 0;
423
- Action<int(int*)> a = DoAll(SetArgPointee<0>(1), // NOLINT
424
- Return(2));
425
- EXPECT_EQ(2, a.Perform(make_tuple(&n)));
426
- EXPECT_EQ(1, n);
427
- }
428
-
429
- // Tests DoAll(a1, a2, a3).
430
- TEST(DoAllTest, ThreeActions) {
431
- int m = 0, n = 0;
432
- Action<int(int*, int*)> a = DoAll(SetArgPointee<0>(1), // NOLINT
433
- SetArgPointee<1>(2),
434
- Return(3));
435
- EXPECT_EQ(3, a.Perform(make_tuple(&m, &n)));
436
- EXPECT_EQ(1, m);
437
- EXPECT_EQ(2, n);
438
- }
439
-
440
- // Tests DoAll(a1, a2, a3, a4).
441
- TEST(DoAllTest, FourActions) {
442
- int m = 0, n = 0;
443
- char ch = '\0';
444
- Action<int(int*, int*, char*)> a = // NOLINT
445
- DoAll(SetArgPointee<0>(1),
446
- SetArgPointee<1>(2),
447
- SetArgPointee<2>('a'),
448
- Return(3));
449
- EXPECT_EQ(3, a.Perform(make_tuple(&m, &n, &ch)));
450
- EXPECT_EQ(1, m);
451
- EXPECT_EQ(2, n);
452
- EXPECT_EQ('a', ch);
453
- }
454
-
455
- // Tests DoAll(a1, a2, a3, a4, a5).
456
- TEST(DoAllTest, FiveActions) {
457
- int m = 0, n = 0;
458
- char a = '\0', b = '\0';
459
- Action<int(int*, int*, char*, char*)> action = // NOLINT
460
- DoAll(SetArgPointee<0>(1),
461
- SetArgPointee<1>(2),
462
- SetArgPointee<2>('a'),
463
- SetArgPointee<3>('b'),
464
- Return(3));
465
- EXPECT_EQ(3, action.Perform(make_tuple(&m, &n, &a, &b)));
466
- EXPECT_EQ(1, m);
467
- EXPECT_EQ(2, n);
468
- EXPECT_EQ('a', a);
469
- EXPECT_EQ('b', b);
470
- }
471
-
472
- // Tests DoAll(a1, a2, ..., a6).
473
- TEST(DoAllTest, SixActions) {
474
- int m = 0, n = 0;
475
- char a = '\0', b = '\0', c = '\0';
476
- Action<int(int*, int*, char*, char*, char*)> action = // NOLINT
477
- DoAll(SetArgPointee<0>(1),
478
- SetArgPointee<1>(2),
479
- SetArgPointee<2>('a'),
480
- SetArgPointee<3>('b'),
481
- SetArgPointee<4>('c'),
482
- Return(3));
483
- EXPECT_EQ(3, action.Perform(make_tuple(&m, &n, &a, &b, &c)));
484
- EXPECT_EQ(1, m);
485
- EXPECT_EQ(2, n);
486
- EXPECT_EQ('a', a);
487
- EXPECT_EQ('b', b);
488
- EXPECT_EQ('c', c);
489
- }
490
-
491
- // Tests DoAll(a1, a2, ..., a7).
492
- TEST(DoAllTest, SevenActions) {
493
- int m = 0, n = 0;
494
- char a = '\0', b = '\0', c = '\0', d = '\0';
495
- Action<int(int*, int*, char*, char*, char*, char*)> action = // NOLINT
496
- DoAll(SetArgPointee<0>(1),
497
- SetArgPointee<1>(2),
498
- SetArgPointee<2>('a'),
499
- SetArgPointee<3>('b'),
500
- SetArgPointee<4>('c'),
501
- SetArgPointee<5>('d'),
502
- Return(3));
503
- EXPECT_EQ(3, action.Perform(make_tuple(&m, &n, &a, &b, &c, &d)));
504
- EXPECT_EQ(1, m);
505
- EXPECT_EQ(2, n);
506
- EXPECT_EQ('a', a);
507
- EXPECT_EQ('b', b);
508
- EXPECT_EQ('c', c);
509
- EXPECT_EQ('d', d);
510
- }
511
-
512
- // Tests DoAll(a1, a2, ..., a8).
513
- TEST(DoAllTest, EightActions) {
514
- int m = 0, n = 0;
515
- char a = '\0', b = '\0', c = '\0', d = '\0', e = '\0';
516
- Action<int(int*, int*, char*, char*, char*, char*, // NOLINT
517
- char*)> action =
518
- DoAll(SetArgPointee<0>(1),
519
- SetArgPointee<1>(2),
520
- SetArgPointee<2>('a'),
521
- SetArgPointee<3>('b'),
522
- SetArgPointee<4>('c'),
523
- SetArgPointee<5>('d'),
524
- SetArgPointee<6>('e'),
525
- Return(3));
526
- EXPECT_EQ(3, action.Perform(make_tuple(&m, &n, &a, &b, &c, &d, &e)));
527
- EXPECT_EQ(1, m);
528
- EXPECT_EQ(2, n);
529
- EXPECT_EQ('a', a);
530
- EXPECT_EQ('b', b);
531
- EXPECT_EQ('c', c);
532
- EXPECT_EQ('d', d);
533
- EXPECT_EQ('e', e);
534
- }
535
-
536
- // Tests DoAll(a1, a2, ..., a9).
537
- TEST(DoAllTest, NineActions) {
538
- int m = 0, n = 0;
539
- char a = '\0', b = '\0', c = '\0', d = '\0', e = '\0', f = '\0';
540
- Action<int(int*, int*, char*, char*, char*, char*, // NOLINT
541
- char*, char*)> action =
542
- DoAll(SetArgPointee<0>(1),
543
- SetArgPointee<1>(2),
544
- SetArgPointee<2>('a'),
545
- SetArgPointee<3>('b'),
546
- SetArgPointee<4>('c'),
547
- SetArgPointee<5>('d'),
548
- SetArgPointee<6>('e'),
549
- SetArgPointee<7>('f'),
550
- Return(3));
551
- EXPECT_EQ(3, action.Perform(make_tuple(&m, &n, &a, &b, &c, &d, &e, &f)));
552
- EXPECT_EQ(1, m);
553
- EXPECT_EQ(2, n);
554
- EXPECT_EQ('a', a);
555
- EXPECT_EQ('b', b);
556
- EXPECT_EQ('c', c);
557
- EXPECT_EQ('d', d);
558
- EXPECT_EQ('e', e);
559
- EXPECT_EQ('f', f);
560
- }
561
-
562
- // Tests DoAll(a1, a2, ..., a10).
563
- TEST(DoAllTest, TenActions) {
564
- int m = 0, n = 0;
565
- char a = '\0', b = '\0', c = '\0', d = '\0';
566
- char e = '\0', f = '\0', g = '\0';
567
- Action<int(int*, int*, char*, char*, char*, char*, // NOLINT
568
- char*, char*, char*)> action =
569
- DoAll(SetArgPointee<0>(1),
570
- SetArgPointee<1>(2),
571
- SetArgPointee<2>('a'),
572
- SetArgPointee<3>('b'),
573
- SetArgPointee<4>('c'),
574
- SetArgPointee<5>('d'),
575
- SetArgPointee<6>('e'),
576
- SetArgPointee<7>('f'),
577
- SetArgPointee<8>('g'),
578
- Return(3));
579
- EXPECT_EQ(3, action.Perform(make_tuple(&m, &n, &a, &b, &c, &d, &e, &f, &g)));
580
- EXPECT_EQ(1, m);
581
- EXPECT_EQ(2, n);
582
- EXPECT_EQ('a', a);
583
- EXPECT_EQ('b', b);
584
- EXPECT_EQ('c', c);
585
- EXPECT_EQ('d', d);
586
- EXPECT_EQ('e', e);
587
- EXPECT_EQ('f', f);
588
- EXPECT_EQ('g', g);
589
- }
590
-
591
- // The ACTION*() macros trigger warning C4100 (unreferenced formal
592
- // parameter) in MSVC with -W4. Unfortunately they cannot be fixed in
593
- // the macro definition, as the warnings are generated when the macro
594
- // is expanded and macro expansion cannot contain #pragma. Therefore
595
- // we suppress them here.
596
- #ifdef _MSC_VER
597
- # pragma warning(push)
598
- # pragma warning(disable:4100)
599
- #endif
600
-
601
- // Tests the ACTION*() macro family.
602
-
603
- // Tests that ACTION() can define an action that doesn't reference the
604
- // mock function arguments.
605
- ACTION(Return5) { return 5; }
606
-
607
- TEST(ActionMacroTest, WorksWhenNotReferencingArguments) {
608
- Action<double()> a1 = Return5();
609
- EXPECT_DOUBLE_EQ(5, a1.Perform(make_tuple()));
610
-
611
- Action<int(double, bool)> a2 = Return5();
612
- EXPECT_EQ(5, a2.Perform(make_tuple(1, true)));
613
- }
614
-
615
- // Tests that ACTION() can define an action that returns void.
616
- ACTION(IncrementArg1) { (*arg1)++; }
617
-
618
- TEST(ActionMacroTest, WorksWhenReturningVoid) {
619
- Action<void(int, int*)> a1 = IncrementArg1();
620
- int n = 0;
621
- a1.Perform(make_tuple(5, &n));
622
- EXPECT_EQ(1, n);
623
- }
624
-
625
- // Tests that the body of ACTION() can reference the type of the
626
- // argument.
627
- ACTION(IncrementArg2) {
628
- StaticAssertTypeEq<int*, arg2_type>();
629
- arg2_type temp = arg2;
630
- (*temp)++;
631
- }
632
-
633
- TEST(ActionMacroTest, CanReferenceArgumentType) {
634
- Action<void(int, bool, int*)> a1 = IncrementArg2();
635
- int n = 0;
636
- a1.Perform(make_tuple(5, false, &n));
637
- EXPECT_EQ(1, n);
638
- }
639
-
640
- // Tests that the body of ACTION() can reference the argument tuple
641
- // via args_type and args.
642
- ACTION(Sum2) {
643
- StaticAssertTypeEq<tuple<int, char, int*>, args_type>();
644
- args_type args_copy = args;
645
- return get<0>(args_copy) + get<1>(args_copy);
646
- }
647
-
648
- TEST(ActionMacroTest, CanReferenceArgumentTuple) {
649
- Action<int(int, char, int*)> a1 = Sum2();
650
- int dummy = 0;
651
- EXPECT_EQ(11, a1.Perform(make_tuple(5, Char(6), &dummy)));
652
- }
653
-
654
- // Tests that the body of ACTION() can reference the mock function
655
- // type.
656
- int Dummy(bool flag) { return flag? 1 : 0; }
657
-
658
- ACTION(InvokeDummy) {
659
- StaticAssertTypeEq<int(bool), function_type>();
660
- function_type* fp = &Dummy;
661
- return (*fp)(true);
662
- }
663
-
664
- TEST(ActionMacroTest, CanReferenceMockFunctionType) {
665
- Action<int(bool)> a1 = InvokeDummy();
666
- EXPECT_EQ(1, a1.Perform(make_tuple(true)));
667
- EXPECT_EQ(1, a1.Perform(make_tuple(false)));
668
- }
669
-
670
- // Tests that the body of ACTION() can reference the mock function's
671
- // return type.
672
- ACTION(InvokeDummy2) {
673
- StaticAssertTypeEq<int, return_type>();
674
- return_type result = Dummy(true);
675
- return result;
676
- }
677
-
678
- TEST(ActionMacroTest, CanReferenceMockFunctionReturnType) {
679
- Action<int(bool)> a1 = InvokeDummy2();
680
- EXPECT_EQ(1, a1.Perform(make_tuple(true)));
681
- EXPECT_EQ(1, a1.Perform(make_tuple(false)));
682
- }
683
-
684
- // Tests that ACTION() works for arguments passed by const reference.
685
- ACTION(ReturnAddrOfConstBoolReferenceArg) {
686
- StaticAssertTypeEq<const bool&, arg1_type>();
687
- return &arg1;
688
- }
689
-
690
- TEST(ActionMacroTest, WorksForConstReferenceArg) {
691
- Action<const bool*(int, const bool&)> a = ReturnAddrOfConstBoolReferenceArg();
692
- const bool b = false;
693
- EXPECT_EQ(&b, a.Perform(tuple<int, const bool&>(0, b)));
694
- }
695
-
696
- // Tests that ACTION() works for arguments passed by non-const reference.
697
- ACTION(ReturnAddrOfIntReferenceArg) {
698
- StaticAssertTypeEq<int&, arg0_type>();
699
- return &arg0;
700
- }
701
-
702
- TEST(ActionMacroTest, WorksForNonConstReferenceArg) {
703
- Action<int*(int&, bool, int)> a = ReturnAddrOfIntReferenceArg();
704
- int n = 0;
705
- EXPECT_EQ(&n, a.Perform(tuple<int&, bool, int>(n, true, 1)));
706
- }
707
-
708
- // Tests that ACTION() can be used in a namespace.
709
- namespace action_test {
710
- ACTION(Sum) { return arg0 + arg1; }
711
- } // namespace action_test
712
-
713
- TEST(ActionMacroTest, WorksInNamespace) {
714
- Action<int(int, int)> a1 = action_test::Sum();
715
- EXPECT_EQ(3, a1.Perform(make_tuple(1, 2)));
716
- }
717
-
718
- // Tests that the same ACTION definition works for mock functions with
719
- // different argument numbers.
720
- ACTION(PlusTwo) { return arg0 + 2; }
721
-
722
- TEST(ActionMacroTest, WorksForDifferentArgumentNumbers) {
723
- Action<int(int)> a1 = PlusTwo();
724
- EXPECT_EQ(4, a1.Perform(make_tuple(2)));
725
-
726
- Action<double(float, void*)> a2 = PlusTwo();
727
- int dummy;
728
- EXPECT_DOUBLE_EQ(6, a2.Perform(make_tuple(4.0f, &dummy)));
729
- }
730
-
731
- // Tests that ACTION_P can define a parameterized action.
732
- ACTION_P(Plus, n) { return arg0 + n; }
733
-
734
- TEST(ActionPMacroTest, DefinesParameterizedAction) {
735
- Action<int(int m, bool t)> a1 = Plus(9);
736
- EXPECT_EQ(10, a1.Perform(make_tuple(1, true)));
737
- }
738
-
739
- // Tests that the body of ACTION_P can reference the argument types
740
- // and the parameter type.
741
- ACTION_P(TypedPlus, n) {
742
- arg0_type t1 = arg0;
743
- n_type t2 = n;
744
- return t1 + t2;
745
- }
746
-
747
- TEST(ActionPMacroTest, CanReferenceArgumentAndParameterTypes) {
748
- Action<int(char m, bool t)> a1 = TypedPlus(9);
749
- EXPECT_EQ(10, a1.Perform(make_tuple(Char(1), true)));
750
- }
751
-
752
- // Tests that a parameterized action can be used in any mock function
753
- // whose type is compatible.
754
- TEST(ActionPMacroTest, WorksInCompatibleMockFunction) {
755
- Action<std::string(const std::string& s)> a1 = Plus("tail");
756
- const std::string re = "re";
757
- EXPECT_EQ("retail", a1.Perform(tuple<const std::string&>(re)));
758
- }
759
-
760
- // Tests that we can use ACTION*() to define actions overloaded on the
761
- // number of parameters.
762
-
763
- ACTION(OverloadedAction) { return arg0 ? arg1 : "hello"; }
764
-
765
- ACTION_P(OverloadedAction, default_value) {
766
- return arg0 ? arg1 : default_value;
767
- }
768
-
769
- ACTION_P2(OverloadedAction, true_value, false_value) {
770
- return arg0 ? true_value : false_value;
771
- }
772
-
773
- TEST(ActionMacroTest, CanDefineOverloadedActions) {
774
- typedef Action<const char*(bool, const char*)> MyAction;
775
-
776
- const MyAction a1 = OverloadedAction();
777
- EXPECT_STREQ("hello", a1.Perform(make_tuple(false, CharPtr("world"))));
778
- EXPECT_STREQ("world", a1.Perform(make_tuple(true, CharPtr("world"))));
779
-
780
- const MyAction a2 = OverloadedAction("hi");
781
- EXPECT_STREQ("hi", a2.Perform(make_tuple(false, CharPtr("world"))));
782
- EXPECT_STREQ("world", a2.Perform(make_tuple(true, CharPtr("world"))));
783
-
784
- const MyAction a3 = OverloadedAction("hi", "you");
785
- EXPECT_STREQ("hi", a3.Perform(make_tuple(true, CharPtr("world"))));
786
- EXPECT_STREQ("you", a3.Perform(make_tuple(false, CharPtr("world"))));
787
- }
788
-
789
- // Tests ACTION_Pn where n >= 3.
790
-
791
- ACTION_P3(Plus, m, n, k) { return arg0 + m + n + k; }
792
-
793
- TEST(ActionPnMacroTest, WorksFor3Parameters) {
794
- Action<double(int m, bool t)> a1 = Plus(100, 20, 3.4);
795
- EXPECT_DOUBLE_EQ(3123.4, a1.Perform(make_tuple(3000, true)));
796
-
797
- Action<std::string(const std::string& s)> a2 = Plus("tail", "-", ">");
798
- const std::string re = "re";
799
- EXPECT_EQ("retail->", a2.Perform(tuple<const std::string&>(re)));
800
- }
801
-
802
- ACTION_P4(Plus, p0, p1, p2, p3) { return arg0 + p0 + p1 + p2 + p3; }
803
-
804
- TEST(ActionPnMacroTest, WorksFor4Parameters) {
805
- Action<int(int)> a1 = Plus(1, 2, 3, 4);
806
- EXPECT_EQ(10 + 1 + 2 + 3 + 4, a1.Perform(make_tuple(10)));
807
- }
808
-
809
- ACTION_P5(Plus, p0, p1, p2, p3, p4) { return arg0 + p0 + p1 + p2 + p3 + p4; }
810
-
811
- TEST(ActionPnMacroTest, WorksFor5Parameters) {
812
- Action<int(int)> a1 = Plus(1, 2, 3, 4, 5);
813
- EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5, a1.Perform(make_tuple(10)));
814
- }
815
-
816
- ACTION_P6(Plus, p0, p1, p2, p3, p4, p5) {
817
- return arg0 + p0 + p1 + p2 + p3 + p4 + p5;
818
- }
819
-
820
- TEST(ActionPnMacroTest, WorksFor6Parameters) {
821
- Action<int(int)> a1 = Plus(1, 2, 3, 4, 5, 6);
822
- EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5 + 6, a1.Perform(make_tuple(10)));
823
- }
824
-
825
- ACTION_P7(Plus, p0, p1, p2, p3, p4, p5, p6) {
826
- return arg0 + p0 + p1 + p2 + p3 + p4 + p5 + p6;
827
- }
828
-
829
- TEST(ActionPnMacroTest, WorksFor7Parameters) {
830
- Action<int(int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7);
831
- EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5 + 6 + 7, a1.Perform(make_tuple(10)));
832
- }
833
-
834
- ACTION_P8(Plus, p0, p1, p2, p3, p4, p5, p6, p7) {
835
- return arg0 + p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7;
836
- }
837
-
838
- TEST(ActionPnMacroTest, WorksFor8Parameters) {
839
- Action<int(int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7, 8);
840
- EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8, a1.Perform(make_tuple(10)));
841
- }
842
-
843
- ACTION_P9(Plus, p0, p1, p2, p3, p4, p5, p6, p7, p8) {
844
- return arg0 + p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8;
845
- }
846
-
847
- TEST(ActionPnMacroTest, WorksFor9Parameters) {
848
- Action<int(int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7, 8, 9);
849
- EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9, a1.Perform(make_tuple(10)));
850
- }
851
-
852
- ACTION_P10(Plus, p0, p1, p2, p3, p4, p5, p6, p7, p8, last_param) {
853
- arg0_type t0 = arg0;
854
- last_param_type t9 = last_param;
855
- return t0 + p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + t9;
856
- }
857
-
858
- TEST(ActionPnMacroTest, WorksFor10Parameters) {
859
- Action<int(int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
860
- EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10,
861
- a1.Perform(make_tuple(10)));
862
- }
863
-
864
- // Tests that the action body can promote the parameter types.
865
-
866
- ACTION_P2(PadArgument, prefix, suffix) {
867
- // The following lines promote the two parameters to desired types.
868
- std::string prefix_str(prefix);
869
- char suffix_char = static_cast<char>(suffix);
870
- return prefix_str + arg0 + suffix_char;
871
- }
872
-
873
- TEST(ActionPnMacroTest, SimpleTypePromotion) {
874
- Action<std::string(const char*)> no_promo =
875
- PadArgument(std::string("foo"), 'r');
876
- Action<std::string(const char*)> promo =
877
- PadArgument("foo", static_cast<int>('r'));
878
- EXPECT_EQ("foobar", no_promo.Perform(make_tuple(CharPtr("ba"))));
879
- EXPECT_EQ("foobar", promo.Perform(make_tuple(CharPtr("ba"))));
880
- }
881
-
882
- // Tests that we can partially restrict parameter types using a
883
- // straight-forward pattern.
884
-
885
- // Defines a generic action that doesn't restrict the types of its
886
- // parameters.
887
- ACTION_P3(ConcatImpl, a, b, c) {
888
- std::stringstream ss;
889
- ss << a << b << c;
890
- return ss.str();
891
- }
892
-
893
- // Next, we try to restrict that either the first parameter is a
894
- // string, or the second parameter is an int.
895
-
896
- // Defines a partially specialized wrapper that restricts the first
897
- // parameter to std::string.
898
- template <typename T1, typename T2>
899
- // ConcatImplActionP3 is the class template ACTION_P3 uses to
900
- // implement ConcatImpl. We shouldn't change the name as this
901
- // pattern requires the user to use it directly.
902
- ConcatImplActionP3<std::string, T1, T2>
903
- Concat(const std::string& a, T1 b, T2 c) {
904
- GTEST_INTENTIONAL_CONST_COND_PUSH_()
905
- if (true) {
906
- GTEST_INTENTIONAL_CONST_COND_POP_()
907
- // This branch verifies that ConcatImpl() can be invoked without
908
- // explicit template arguments.
909
- return ConcatImpl(a, b, c);
910
- } else {
911
- // This branch verifies that ConcatImpl() can also be invoked with
912
- // explicit template arguments. It doesn't really need to be
913
- // executed as this is a compile-time verification.
914
- return ConcatImpl<std::string, T1, T2>(a, b, c);
915
- }
916
- }
917
-
918
- // Defines another partially specialized wrapper that restricts the
919
- // second parameter to int.
920
- template <typename T1, typename T2>
921
- ConcatImplActionP3<T1, int, T2>
922
- Concat(T1 a, int b, T2 c) {
923
- return ConcatImpl(a, b, c);
924
- }
925
-
926
- TEST(ActionPnMacroTest, CanPartiallyRestrictParameterTypes) {
927
- Action<const std::string()> a1 = Concat("Hello", "1", 2);
928
- EXPECT_EQ("Hello12", a1.Perform(make_tuple()));
929
-
930
- a1 = Concat(1, 2, 3);
931
- EXPECT_EQ("123", a1.Perform(make_tuple()));
932
- }
933
-
934
- // Verifies the type of an ACTION*.
935
-
936
- ACTION(DoFoo) {}
937
- ACTION_P(DoFoo, p) {}
938
- ACTION_P2(DoFoo, p0, p1) {}
939
-
940
- TEST(ActionPnMacroTest, TypesAreCorrect) {
941
- // DoFoo() must be assignable to a DoFooAction variable.
942
- DoFooAction a0 = DoFoo();
943
-
944
- // DoFoo(1) must be assignable to a DoFooActionP variable.
945
- DoFooActionP<int> a1 = DoFoo(1);
946
-
947
- // DoFoo(p1, ..., pk) must be assignable to a DoFooActionPk
948
- // variable, and so on.
949
- DoFooActionP2<int, char> a2 = DoFoo(1, '2');
950
- PlusActionP3<int, int, char> a3 = Plus(1, 2, '3');
951
- PlusActionP4<int, int, int, char> a4 = Plus(1, 2, 3, '4');
952
- PlusActionP5<int, int, int, int, char> a5 = Plus(1, 2, 3, 4, '5');
953
- PlusActionP6<int, int, int, int, int, char> a6 = Plus(1, 2, 3, 4, 5, '6');
954
- PlusActionP7<int, int, int, int, int, int, char> a7 =
955
- Plus(1, 2, 3, 4, 5, 6, '7');
956
- PlusActionP8<int, int, int, int, int, int, int, char> a8 =
957
- Plus(1, 2, 3, 4, 5, 6, 7, '8');
958
- PlusActionP9<int, int, int, int, int, int, int, int, char> a9 =
959
- Plus(1, 2, 3, 4, 5, 6, 7, 8, '9');
960
- PlusActionP10<int, int, int, int, int, int, int, int, int, char> a10 =
961
- Plus(1, 2, 3, 4, 5, 6, 7, 8, 9, '0');
962
-
963
- // Avoid "unused variable" warnings.
964
- (void)a0;
965
- (void)a1;
966
- (void)a2;
967
- (void)a3;
968
- (void)a4;
969
- (void)a5;
970
- (void)a6;
971
- (void)a7;
972
- (void)a8;
973
- (void)a9;
974
- (void)a10;
975
- }
976
-
977
- // Tests that an ACTION_P*() action can be explicitly instantiated
978
- // with reference-typed parameters.
979
-
980
- ACTION_P(Plus1, x) { return x; }
981
- ACTION_P2(Plus2, x, y) { return x + y; }
982
- ACTION_P3(Plus3, x, y, z) { return x + y + z; }
983
- ACTION_P10(Plus10, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
984
- return a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9;
985
- }
986
-
987
- TEST(ActionPnMacroTest, CanExplicitlyInstantiateWithReferenceTypes) {
988
- int x = 1, y = 2, z = 3;
989
- const tuple<> empty = make_tuple();
990
-
991
- Action<int()> a = Plus1<int&>(x);
992
- EXPECT_EQ(1, a.Perform(empty));
993
-
994
- a = Plus2<const int&, int&>(x, y);
995
- EXPECT_EQ(3, a.Perform(empty));
996
-
997
- a = Plus3<int&, const int&, int&>(x, y, z);
998
- EXPECT_EQ(6, a.Perform(empty));
999
-
1000
- int n[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
1001
- a = Plus10<const int&, int&, const int&, int&, const int&, int&, const int&,
1002
- int&, const int&, int&>(n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7],
1003
- n[8], n[9]);
1004
- EXPECT_EQ(55, a.Perform(empty));
1005
- }
1006
-
1007
- class NullaryConstructorClass {
1008
- public:
1009
- NullaryConstructorClass() : value_(123) {}
1010
- int value_;
1011
- };
1012
-
1013
- // Tests using ReturnNew() with a nullary constructor.
1014
- TEST(ReturnNewTest, NoArgs) {
1015
- Action<NullaryConstructorClass*()> a = ReturnNew<NullaryConstructorClass>();
1016
- NullaryConstructorClass* c = a.Perform(make_tuple());
1017
- EXPECT_EQ(123, c->value_);
1018
- delete c;
1019
- }
1020
-
1021
- class UnaryConstructorClass {
1022
- public:
1023
- explicit UnaryConstructorClass(int value) : value_(value) {}
1024
- int value_;
1025
- };
1026
-
1027
- // Tests using ReturnNew() with a unary constructor.
1028
- TEST(ReturnNewTest, Unary) {
1029
- Action<UnaryConstructorClass*()> a = ReturnNew<UnaryConstructorClass>(4000);
1030
- UnaryConstructorClass* c = a.Perform(make_tuple());
1031
- EXPECT_EQ(4000, c->value_);
1032
- delete c;
1033
- }
1034
-
1035
- TEST(ReturnNewTest, UnaryWorksWhenMockMethodHasArgs) {
1036
- Action<UnaryConstructorClass*(bool, int)> a =
1037
- ReturnNew<UnaryConstructorClass>(4000);
1038
- UnaryConstructorClass* c = a.Perform(make_tuple(false, 5));
1039
- EXPECT_EQ(4000, c->value_);
1040
- delete c;
1041
- }
1042
-
1043
- TEST(ReturnNewTest, UnaryWorksWhenMockMethodReturnsPointerToConst) {
1044
- Action<const UnaryConstructorClass*()> a =
1045
- ReturnNew<UnaryConstructorClass>(4000);
1046
- const UnaryConstructorClass* c = a.Perform(make_tuple());
1047
- EXPECT_EQ(4000, c->value_);
1048
- delete c;
1049
- }
1050
-
1051
- class TenArgConstructorClass {
1052
- public:
1053
- TenArgConstructorClass(int a1, int a2, int a3, int a4, int a5,
1054
- int a6, int a7, int a8, int a9, int a10)
1055
- : value_(a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10) {
1056
- }
1057
- int value_;
1058
- };
1059
-
1060
- // Tests using ReturnNew() with a 10-argument constructor.
1061
- TEST(ReturnNewTest, ConstructorThatTakes10Arguments) {
1062
- Action<TenArgConstructorClass*()> a =
1063
- ReturnNew<TenArgConstructorClass>(1000000000, 200000000, 30000000,
1064
- 4000000, 500000, 60000,
1065
- 7000, 800, 90, 0);
1066
- TenArgConstructorClass* c = a.Perform(make_tuple());
1067
- EXPECT_EQ(1234567890, c->value_);
1068
- delete c;
1069
- }
1070
-
1071
- // Tests that ACTION_TEMPLATE works when there is no value parameter.
1072
- ACTION_TEMPLATE(CreateNew,
1073
- HAS_1_TEMPLATE_PARAMS(typename, T),
1074
- AND_0_VALUE_PARAMS()) {
1075
- return new T;
1076
- }
1077
-
1078
- TEST(ActionTemplateTest, WorksWithoutValueParam) {
1079
- const Action<int*()> a = CreateNew<int>();
1080
- int* p = a.Perform(make_tuple());
1081
- delete p;
1082
- }
1083
-
1084
- // Tests that ACTION_TEMPLATE works when there are value parameters.
1085
- ACTION_TEMPLATE(CreateNew,
1086
- HAS_1_TEMPLATE_PARAMS(typename, T),
1087
- AND_1_VALUE_PARAMS(a0)) {
1088
- return new T(a0);
1089
- }
1090
-
1091
- TEST(ActionTemplateTest, WorksWithValueParams) {
1092
- const Action<int*()> a = CreateNew<int>(42);
1093
- int* p = a.Perform(make_tuple());
1094
- EXPECT_EQ(42, *p);
1095
- delete p;
1096
- }
1097
-
1098
- // Tests that ACTION_TEMPLATE works for integral template parameters.
1099
- ACTION_TEMPLATE(MyDeleteArg,
1100
- HAS_1_TEMPLATE_PARAMS(int, k),
1101
- AND_0_VALUE_PARAMS()) {
1102
- delete get<k>(args);
1103
- }
1104
-
1105
- // Resets a bool variable in the destructor.
1106
- class BoolResetter {
1107
- public:
1108
- explicit BoolResetter(bool* value) : value_(value) {}
1109
- ~BoolResetter() { *value_ = false; }
1110
- private:
1111
- bool* value_;
1112
- };
1113
-
1114
- TEST(ActionTemplateTest, WorksForIntegralTemplateParams) {
1115
- const Action<void(int*, BoolResetter*)> a = MyDeleteArg<1>();
1116
- int n = 0;
1117
- bool b = true;
1118
- BoolResetter* resetter = new BoolResetter(&b);
1119
- a.Perform(make_tuple(&n, resetter));
1120
- EXPECT_FALSE(b); // Verifies that resetter is deleted.
1121
- }
1122
-
1123
- // Tests that ACTION_TEMPLATES works for template template parameters.
1124
- ACTION_TEMPLATE(ReturnSmartPointer,
1125
- HAS_1_TEMPLATE_PARAMS(template <typename Pointee> class,
1126
- Pointer),
1127
- AND_1_VALUE_PARAMS(pointee)) {
1128
- return Pointer<pointee_type>(new pointee_type(pointee));
1129
- }
1130
-
1131
- TEST(ActionTemplateTest, WorksForTemplateTemplateParameters) {
1132
- using ::testing::internal::linked_ptr;
1133
- const Action<linked_ptr<int>()> a = ReturnSmartPointer<linked_ptr>(42);
1134
- linked_ptr<int> p = a.Perform(make_tuple());
1135
- EXPECT_EQ(42, *p);
1136
- }
1137
-
1138
- // Tests that ACTION_TEMPLATE works for 10 template parameters.
1139
- template <typename T1, typename T2, typename T3, int k4, bool k5,
1140
- unsigned int k6, typename T7, typename T8, typename T9>
1141
- struct GiantTemplate {
1142
- public:
1143
- explicit GiantTemplate(int a_value) : value(a_value) {}
1144
- int value;
1145
- };
1146
-
1147
- ACTION_TEMPLATE(ReturnGiant,
1148
- HAS_10_TEMPLATE_PARAMS(
1149
- typename, T1,
1150
- typename, T2,
1151
- typename, T3,
1152
- int, k4,
1153
- bool, k5,
1154
- unsigned int, k6,
1155
- class, T7,
1156
- class, T8,
1157
- class, T9,
1158
- template <typename T> class, T10),
1159
- AND_1_VALUE_PARAMS(value)) {
1160
- return GiantTemplate<T10<T1>, T2, T3, k4, k5, k6, T7, T8, T9>(value);
1161
- }
1162
-
1163
- TEST(ActionTemplateTest, WorksFor10TemplateParameters) {
1164
- using ::testing::internal::linked_ptr;
1165
- typedef GiantTemplate<linked_ptr<int>, bool, double, 5,
1166
- true, 6, char, unsigned, int> Giant;
1167
- const Action<Giant()> a = ReturnGiant<
1168
- int, bool, double, 5, true, 6, char, unsigned, int, linked_ptr>(42);
1169
- Giant giant = a.Perform(make_tuple());
1170
- EXPECT_EQ(42, giant.value);
1171
- }
1172
-
1173
- // Tests that ACTION_TEMPLATE works for 10 value parameters.
1174
- ACTION_TEMPLATE(ReturnSum,
1175
- HAS_1_TEMPLATE_PARAMS(typename, Number),
1176
- AND_10_VALUE_PARAMS(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)) {
1177
- return static_cast<Number>(v1) + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10;
1178
- }
1179
-
1180
- TEST(ActionTemplateTest, WorksFor10ValueParameters) {
1181
- const Action<int()> a = ReturnSum<int>(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
1182
- EXPECT_EQ(55, a.Perform(make_tuple()));
1183
- }
1184
-
1185
- // Tests that ACTION_TEMPLATE and ACTION/ACTION_P* can be overloaded
1186
- // on the number of value parameters.
1187
-
1188
- ACTION(ReturnSum) { return 0; }
1189
-
1190
- ACTION_P(ReturnSum, x) { return x; }
1191
-
1192
- ACTION_TEMPLATE(ReturnSum,
1193
- HAS_1_TEMPLATE_PARAMS(typename, Number),
1194
- AND_2_VALUE_PARAMS(v1, v2)) {
1195
- return static_cast<Number>(v1) + v2;
1196
- }
1197
-
1198
- ACTION_TEMPLATE(ReturnSum,
1199
- HAS_1_TEMPLATE_PARAMS(typename, Number),
1200
- AND_3_VALUE_PARAMS(v1, v2, v3)) {
1201
- return static_cast<Number>(v1) + v2 + v3;
1202
- }
1203
-
1204
- ACTION_TEMPLATE(ReturnSum,
1205
- HAS_2_TEMPLATE_PARAMS(typename, Number, int, k),
1206
- AND_4_VALUE_PARAMS(v1, v2, v3, v4)) {
1207
- return static_cast<Number>(v1) + v2 + v3 + v4 + k;
1208
- }
1209
-
1210
- TEST(ActionTemplateTest, CanBeOverloadedOnNumberOfValueParameters) {
1211
- const Action<int()> a0 = ReturnSum();
1212
- const Action<int()> a1 = ReturnSum(1);
1213
- const Action<int()> a2 = ReturnSum<int>(1, 2);
1214
- const Action<int()> a3 = ReturnSum<int>(1, 2, 3);
1215
- const Action<int()> a4 = ReturnSum<int, 10000>(2000, 300, 40, 5);
1216
- EXPECT_EQ(0, a0.Perform(make_tuple()));
1217
- EXPECT_EQ(1, a1.Perform(make_tuple()));
1218
- EXPECT_EQ(3, a2.Perform(make_tuple()));
1219
- EXPECT_EQ(6, a3.Perform(make_tuple()));
1220
- EXPECT_EQ(12345, a4.Perform(make_tuple()));
1221
- }
1222
-
1223
- #ifdef _MSC_VER
1224
- # pragma warning(pop)
1225
- #endif
1226
-
1227
- } // namespace gmock_generated_actions_test
1228
- } // namespace testing