rj_schema 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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