script_core 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2211) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +7 -1
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +1 -1
  5. data/Gemfile +8 -1
  6. data/{LICENSE → MIT-LICENSE} +0 -0
  7. data/bootstrap.sh +1 -1
  8. data/dev.yml +1 -2
  9. data/ext/enterprise_script_service/Rakefile +7 -1
  10. data/ext/enterprise_script_service/data.cpp +21 -11
  11. data/ext/enterprise_script_service/libseccomp/.gitignore +4 -0
  12. data/ext/enterprise_script_service/libseccomp/.mailmap +10 -0
  13. data/ext/enterprise_script_service/libseccomp/.travis.yml +71 -0
  14. data/ext/enterprise_script_service/libseccomp/CHANGELOG +33 -0
  15. data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +134 -0
  16. data/ext/enterprise_script_service/libseccomp/CREDITS +16 -1
  17. data/ext/enterprise_script_service/libseccomp/Makefile.am +32 -1
  18. data/ext/enterprise_script_service/libseccomp/README.md +113 -0
  19. data/ext/enterprise_script_service/libseccomp/RELEASE_PROCESS.md +97 -0
  20. data/ext/enterprise_script_service/libseccomp/configure.ac +8 -1
  21. data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +3 -1
  22. data/ext/enterprise_script_service/libseccomp/doc/credits_updater +35 -0
  23. data/ext/enterprise_script_service/libseccomp/doc/man/man1/scmp_sys_resolver.1 +3 -1
  24. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +101 -0
  25. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_set.3 +1 -0
  26. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +1 -1
  27. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +23 -4
  28. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -0
  29. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +2 -2
  30. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +80 -15
  31. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_resolve_name.3 +15 -1
  32. data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +185 -22
  33. data/ext/enterprise_script_service/libseccomp/src/Makefile.am +13 -4
  34. data/ext/enterprise_script_service/libseccomp/src/api.c +87 -8
  35. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +18 -7
  36. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +2 -1
  37. data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +17 -6
  38. data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -1
  39. data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +17 -6
  40. data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +1 -1
  41. data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +17 -6
  42. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +1 -1
  43. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +17 -6
  44. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +1 -1
  45. data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +510 -0
  46. data/ext/enterprise_script_service/libseccomp/src/arch-parisc.c +22 -0
  47. data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +38 -0
  48. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +22 -0
  49. data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +18 -7
  50. data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -1
  51. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +18 -7
  52. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +1 -1
  53. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +19 -7
  54. data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +43 -45
  55. data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +2 -3
  56. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +18 -7
  57. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +43 -45
  58. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +2 -3
  59. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-check.c +56 -53
  60. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +23 -18
  61. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +52 -49
  62. data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +17 -6
  63. data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +1 -1
  64. data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +18 -7
  65. data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +41 -45
  66. data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +2 -3
  67. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +17 -6
  68. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -1
  69. data/ext/enterprise_script_service/libseccomp/src/arch.c +48 -83
  70. data/ext/enterprise_script_service/libseccomp/src/arch.h +4 -21
  71. data/ext/enterprise_script_service/libseccomp/src/db.c +1184 -541
  72. data/ext/enterprise_script_service/libseccomp/src/db.h +12 -32
  73. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +43 -24
  74. data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +20 -7
  75. data/ext/enterprise_script_service/libseccomp/src/hash.c +65 -649
  76. data/ext/enterprise_script_service/libseccomp/src/hash.h +3 -13
  77. data/ext/enterprise_script_service/libseccomp/src/helper.c +49 -0
  78. data/ext/enterprise_script_service/libseccomp/src/helper.h +27 -0
  79. data/ext/enterprise_script_service/libseccomp/src/python/Makefile.am +9 -4
  80. data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +9 -0
  81. data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +72 -8
  82. data/ext/enterprise_script_service/libseccomp/src/python/setup.py +0 -0
  83. data/ext/enterprise_script_service/libseccomp/src/system.c +137 -4
  84. data/ext/enterprise_script_service/libseccomp/src/system.h +32 -2
  85. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +17 -0
  86. data/ext/enterprise_script_service/libseccomp/tests/01-sim-allow.tests +2 -2
  87. data/ext/enterprise_script_service/libseccomp/tests/05-sim-long_jumps.tests +18 -18
  88. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.c +12 -0
  89. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.py +4 -0
  90. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +13 -8
  91. data/ext/enterprise_script_service/libseccomp/tests/08-sim-subtree_checks.c +2 -2
  92. data/ext/enterprise_script_service/libseccomp/tests/08-sim-subtree_checks.py +2 -2
  93. data/ext/enterprise_script_service/libseccomp/tests/08-sim-subtree_checks.tests +27 -27
  94. data/ext/enterprise_script_service/libseccomp/tests/09-sim-syscall_priority_pre.tests +7 -7
  95. data/ext/enterprise_script_service/libseccomp/tests/10-sim-syscall_priority_post.tests +7 -7
  96. data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +12 -0
  97. data/ext/enterprise_script_service/libseccomp/tests/12-sim-basic_masked_ops.tests +29 -29
  98. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +37 -0
  99. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -0
  100. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +79 -21
  101. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.py +2 -2
  102. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +44 -0
  103. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +4 -0
  104. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.c +6 -6
  105. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.py +6 -6
  106. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +12 -12
  107. data/ext/enterprise_script_service/libseccomp/tests/20-live-basic_die.py +1 -0
  108. data/ext/enterprise_script_service/libseccomp/tests/20-live-basic_die.tests +4 -4
  109. data/ext/enterprise_script_service/libseccomp/tests/21-live-basic_allow.py +2 -0
  110. data/ext/enterprise_script_service/libseccomp/tests/21-live-basic_allow.tests +2 -2
  111. data/ext/enterprise_script_service/libseccomp/tests/24-live-arg_allow.py +3 -2
  112. data/ext/enterprise_script_service/libseccomp/tests/24-live-arg_allow.tests +2 -2
  113. data/ext/enterprise_script_service/libseccomp/tests/25-sim-multilevel_chains_adv.tests +6 -6
  114. data/ext/enterprise_script_service/libseccomp/tests/26-sim-arch_all_be_basic.c +6 -0
  115. data/ext/enterprise_script_service/libseccomp/tests/26-sim-arch_all_be_basic.py +2 -0
  116. data/ext/enterprise_script_service/libseccomp/tests/27-sim-bpf_blk_state.tests +5 -5
  117. data/ext/enterprise_script_service/libseccomp/tests/28-sim-arch_x86.py +0 -0
  118. data/ext/enterprise_script_service/libseccomp/tests/29-sim-pseudo_syscall.py +0 -0
  119. data/ext/enterprise_script_service/libseccomp/tests/32-live-tsync_allow.py +1 -0
  120. data/ext/enterprise_script_service/libseccomp/tests/32-live-tsync_allow.tests +2 -2
  121. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.c +74 -0
  122. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.py +45 -0
  123. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +32 -0
  124. data/ext/enterprise_script_service/libseccomp/tests/35-sim-negative_one.c +73 -0
  125. data/ext/enterprise_script_service/libseccomp/tests/35-sim-negative_one.py +46 -0
  126. data/ext/enterprise_script_service/libseccomp/tests/35-sim-negative_one.tests +18 -0
  127. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +112 -0
  128. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +56 -0
  129. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +39 -0
  130. data/ext/enterprise_script_service/libseccomp/tests/37-sim-ipc_syscalls_be.c +109 -0
  131. data/ext/enterprise_script_service/libseccomp/tests/37-sim-ipc_syscalls_be.py +55 -0
  132. data/ext/enterprise_script_service/libseccomp/tests/37-sim-ipc_syscalls_be.tests +27 -0
  133. data/ext/enterprise_script_service/libseccomp/tests/38-basic-pfc_coverage.c +104 -0
  134. data/ext/enterprise_script_service/libseccomp/tests/38-basic-pfc_coverage.sh +46 -0
  135. data/ext/enterprise_script_service/libseccomp/tests/38-basic-pfc_coverage.tests +11 -0
  136. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +67 -0
  137. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +68 -0
  138. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.tests +11 -0
  139. data/ext/enterprise_script_service/libseccomp/tests/40-sim-log.c +59 -0
  140. data/ext/enterprise_script_service/libseccomp/tests/40-sim-log.py +47 -0
  141. data/ext/enterprise_script_service/libseccomp/tests/40-sim-log.tests +21 -0
  142. data/ext/enterprise_script_service/libseccomp/tests/41-sim-syscall_priority_arch.c +63 -0
  143. data/ext/enterprise_script_service/libseccomp/tests/41-sim-syscall_priority_arch.py +44 -0
  144. data/ext/enterprise_script_service/libseccomp/tests/41-sim-syscall_priority_arch.tests +19 -0
  145. data/ext/enterprise_script_service/libseccomp/tests/42-sim-adv_chains.c +198 -0
  146. data/ext/enterprise_script_service/libseccomp/tests/42-sim-adv_chains.py +128 -0
  147. data/ext/enterprise_script_service/libseccomp/tests/42-sim-adv_chains.tests +54 -0
  148. data/ext/enterprise_script_service/libseccomp/tests/43-sim-a2_order.c +132 -0
  149. data/ext/enterprise_script_service/libseccomp/tests/43-sim-a2_order.py +62 -0
  150. data/ext/enterprise_script_service/libseccomp/tests/43-sim-a2_order.tests +55 -0
  151. data/ext/enterprise_script_service/libseccomp/tests/44-live-a2_order.c +178 -0
  152. data/ext/enterprise_script_service/libseccomp/tests/44-live-a2_order.py +107 -0
  153. data/ext/enterprise_script_service/libseccomp/tests/44-live-a2_order.tests +11 -0
  154. data/ext/enterprise_script_service/libseccomp/tests/45-sim-chain_code_coverage.c +108 -0
  155. data/ext/enterprise_script_service/libseccomp/tests/45-sim-chain_code_coverage.py +48 -0
  156. data/ext/enterprise_script_service/libseccomp/tests/45-sim-chain_code_coverage.tests +16 -0
  157. data/ext/enterprise_script_service/libseccomp/tests/46-sim-kill_process.c +78 -0
  158. data/ext/enterprise_script_service/libseccomp/tests/46-sim-kill_process.py +47 -0
  159. data/ext/enterprise_script_service/libseccomp/tests/46-sim-kill_process.tests +16 -0
  160. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +102 -0
  161. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.py +68 -0
  162. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.tests +11 -0
  163. data/ext/enterprise_script_service/libseccomp/tests/48-sim-32b_args.c +84 -0
  164. data/ext/enterprise_script_service/libseccomp/tests/48-sim-32b_args.py +50 -0
  165. data/ext/enterprise_script_service/libseccomp/tests/48-sim-32b_args.tests +38 -0
  166. data/ext/enterprise_script_service/libseccomp/tests/49-sim-64b_comparisons.c +56 -0
  167. data/ext/enterprise_script_service/libseccomp/tests/49-sim-64b_comparisons.py +45 -0
  168. data/ext/enterprise_script_service/libseccomp/tests/49-sim-64b_comparisons.tests +25 -0
  169. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +68 -6
  170. data/ext/enterprise_script_service/libseccomp/tests/miniseq.c +3 -2
  171. data/ext/enterprise_script_service/libseccomp/tests/regression +102 -10
  172. data/ext/enterprise_script_service/libseccomp/tests/util.c +4 -0
  173. data/ext/enterprise_script_service/libseccomp/tests/util.py +2 -2
  174. data/ext/enterprise_script_service/libseccomp/tools/.gitignore +1 -0
  175. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +5 -1
  176. data/ext/enterprise_script_service/libseccomp/tools/bpf.h +8 -1
  177. data/ext/enterprise_script_service/libseccomp/tools/scmp_api_level.c +39 -0
  178. data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +6 -0
  179. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +14 -2
  180. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +12 -2
  181. data/ext/enterprise_script_service/libseccomp/tools/util.c +4 -0
  182. data/ext/enterprise_script_service/mruby/.gitignore +15 -8
  183. data/ext/enterprise_script_service/mruby/.travis.yml +3 -4
  184. data/ext/enterprise_script_service/mruby/.yardopts +1 -1
  185. data/ext/enterprise_script_service/mruby/AUTHORS +6 -2
  186. data/ext/enterprise_script_service/mruby/LEGAL +1 -1
  187. data/ext/enterprise_script_service/mruby/LICENSE +20 -0
  188. data/ext/enterprise_script_service/mruby/README.md +2 -2
  189. data/ext/enterprise_script_service/mruby/Rakefile +28 -12
  190. data/ext/enterprise_script_service/mruby/TODO +0 -2
  191. data/ext/enterprise_script_service/mruby/appveyor.yml +11 -7
  192. data/ext/enterprise_script_service/mruby/benchmark/bm_app_lc_fizzbuzz.rb +1 -2
  193. data/ext/enterprise_script_service/mruby/build_config.rb +3 -2
  194. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
  195. data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +7 -2
  196. data/ext/enterprise_script_service/mruby/doc/limitations.md +69 -7
  197. data/ext/enterprise_script_service/mruby/doc/opcode.md +127 -0
  198. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +2 -2
  199. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +2 -2
  200. data/ext/enterprise_script_service/mruby/include/mrbconf.h +9 -3
  201. data/ext/enterprise_script_service/mruby/include/mruby.h +45 -34
  202. data/ext/enterprise_script_service/mruby/include/mruby/array.h +17 -0
  203. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +1 -1
  204. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +12 -4
  205. data/ext/enterprise_script_service/mruby/include/mruby/class.h +18 -15
  206. data/ext/enterprise_script_service/mruby/include/mruby/common.h +6 -1
  207. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +6 -5
  208. data/ext/enterprise_script_service/mruby/include/mruby/data.h +5 -4
  209. data/ext/enterprise_script_service/mruby/include/mruby/debug.h +5 -5
  210. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +2 -2
  211. data/ext/enterprise_script_service/mruby/include/mruby/error.h +1 -1
  212. data/ext/enterprise_script_service/mruby/include/mruby/hash.h +56 -9
  213. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +17 -4
  214. data/ext/enterprise_script_service/mruby/include/mruby/object.h +5 -6
  215. data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +47 -139
  216. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +117 -0
  217. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +8 -8
  218. data/ext/enterprise_script_service/mruby/include/mruby/range.h +29 -5
  219. data/ext/enterprise_script_service/mruby/include/mruby/string.h +20 -10
  220. data/ext/enterprise_script_service/mruby/include/mruby/throw.h +4 -4
  221. data/ext/enterprise_script_service/mruby/include/mruby/value.h +4 -0
  222. data/ext/enterprise_script_service/mruby/include/mruby/variable.h +7 -4
  223. data/ext/enterprise_script_service/mruby/include/mruby/version.h +7 -7
  224. data/ext/enterprise_script_service/mruby/lib/mruby-core-ext.rb +23 -17
  225. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +35 -9
  226. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +5 -5
  227. data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +5 -3
  228. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +26 -27
  229. data/ext/enterprise_script_service/mruby/minirake +136 -15
  230. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -0
  231. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +54 -50
  232. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +3 -46
  233. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +9 -24
  234. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +23 -0
  235. data/ext/enterprise_script_service/mruby/mrbgems/{mruby-bin-mruby-config → mruby-bin-config}/mruby-config +0 -0
  236. data/ext/enterprise_script_service/mruby/mrbgems/{mruby-bin-mruby-config → mruby-bin-config}/mruby-config.bat +0 -0
  237. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +13 -13
  238. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +9 -7
  239. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +1 -1
  240. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +7 -2
  241. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +1 -1
  242. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +3 -3
  243. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +7 -1
  244. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +24 -1
  245. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +1 -1
  246. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +8 -5
  247. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -0
  248. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +22 -0
  249. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +84 -17
  250. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +1 -1
  251. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +9 -0
  252. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +38 -1
  253. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
  254. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +60 -7
  255. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +3 -3
  256. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +1 -17
  257. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/mrblib/module.rb +89 -0
  258. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/test/module.rb +55 -1
  259. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +918 -767
  260. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/node.h +4 -20
  261. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +552 -273
  262. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +3 -3
  263. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/mrbgem.rake +6 -0
  264. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/mrblib/chain.rb +60 -0
  265. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/test/enum_chain.rb +76 -0
  266. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +57 -37
  267. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/test/enum.rb +10 -2
  268. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +1 -1
  269. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +1 -1
  270. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +47 -35
  271. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +22 -17
  272. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +90 -40
  273. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +33 -2
  274. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +15 -12
  275. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +42 -47
  276. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +4 -47
  277. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +0 -6
  278. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +12 -10
  279. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.rb +17 -50
  280. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -1
  281. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +3 -2
  282. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +11 -8
  283. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +128 -117
  284. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +17 -21
  285. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file_test.rb +4 -4
  286. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +16 -53
  287. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrblib/kernel.rb +2 -0
  288. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +12 -30
  289. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +4 -2
  290. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +7 -10
  291. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +31 -51
  292. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/mrbgem.rake +5 -0
  293. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +702 -0
  294. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +369 -0
  295. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/kernel.rb +3 -2
  296. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/method.rb +8 -0
  297. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -4
  298. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +27 -9
  299. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +7 -10
  300. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +2 -1
  301. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/test/nil.rb +2 -1
  302. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -1
  303. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +1 -1
  304. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +126 -79
  305. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/test/pack.rb +2 -2
  306. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -4
  307. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +0 -1
  308. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +9 -1
  309. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +34 -19
  310. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.rb +18 -0
  311. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +7 -7
  312. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +0 -12
  313. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +1 -4
  314. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +13 -14
  315. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.gitignore +4 -0
  316. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis.yml +29 -0
  317. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis_build_config.rb +6 -0
  318. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +27 -0
  319. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/Rakefile +29 -0
  320. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/example/sleep.rb +3 -0
  321. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/mrbgem.rake +5 -0
  322. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +135 -0
  323. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/test/sleep_test.rb +29 -0
  324. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -0
  325. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb +3 -3
  326. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/const.cstub +6 -0
  327. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/const.def +2 -0
  328. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +48 -20
  329. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/addrinfo.rb +5 -5
  330. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/socket.rb +2 -2
  331. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +1 -0
  332. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +14 -13
  333. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +6 -3
  334. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +96 -21
  335. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +626 -190
  336. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/string.rb +102 -59
  337. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +15 -16
  338. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +16 -15
  339. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/test/struct.rb +2 -2
  340. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +0 -6
  341. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +13 -6
  342. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +21 -13
  343. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +22 -39
  344. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +22 -23
  345. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/include/mruby/time.h +25 -0
  346. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +26 -22
  347. data/ext/enterprise_script_service/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +2 -2
  348. data/ext/enterprise_script_service/mruby/mrblib/array.rb +70 -40
  349. data/ext/enterprise_script_service/mruby/mrblib/enum.rb +4 -3
  350. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +17 -46
  351. data/ext/enterprise_script_service/mruby/mrblib/kernel.rb +1 -1
  352. data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +1 -4
  353. data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +2 -2
  354. data/ext/enterprise_script_service/mruby/mrblib/string.rb +7 -8
  355. data/ext/enterprise_script_service/mruby/mrblib/symbol.rb +7 -0
  356. data/ext/enterprise_script_service/mruby/src/array.c +97 -44
  357. data/ext/enterprise_script_service/mruby/src/backtrace.c +14 -16
  358. data/ext/enterprise_script_service/mruby/src/class.c +156 -464
  359. data/ext/enterprise_script_service/mruby/src/codedump.c +436 -364
  360. data/ext/enterprise_script_service/mruby/src/debug.c +42 -45
  361. data/ext/enterprise_script_service/mruby/src/dump.c +27 -152
  362. data/ext/enterprise_script_service/mruby/src/enum.c +18 -2
  363. data/ext/enterprise_script_service/mruby/src/error.c +5 -4
  364. data/ext/enterprise_script_service/mruby/src/etc.c +1 -0
  365. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +15 -1
  366. data/ext/enterprise_script_service/mruby/src/gc.c +76 -30
  367. data/ext/enterprise_script_service/mruby/src/hash.c +768 -256
  368. data/ext/enterprise_script_service/mruby/src/kernel.c +24 -446
  369. data/ext/enterprise_script_service/mruby/src/load.c +35 -35
  370. data/ext/enterprise_script_service/mruby/src/mruby_core.rake +2 -3
  371. data/ext/enterprise_script_service/mruby/src/numeric.c +96 -32
  372. data/ext/enterprise_script_service/mruby/src/object.c +88 -43
  373. data/ext/enterprise_script_service/mruby/src/proc.c +16 -14
  374. data/ext/enterprise_script_service/mruby/src/range.c +186 -176
  375. data/ext/enterprise_script_service/mruby/src/state.c +5 -5
  376. data/ext/enterprise_script_service/mruby/src/string.c +79 -93
  377. data/ext/enterprise_script_service/mruby/src/symbol.c +173 -85
  378. data/ext/enterprise_script_service/mruby/src/variable.c +283 -177
  379. data/ext/enterprise_script_service/mruby/src/vm.c +711 -688
  380. data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +4 -3
  381. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +3 -2
  382. data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +1 -0
  383. data/ext/enterprise_script_service/mruby/tasks/toolchains/clang.rake +1 -1
  384. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +4 -6
  385. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +0 -2
  386. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +12 -11
  387. data/ext/enterprise_script_service/mruby/test/assert.rb +114 -121
  388. data/ext/enterprise_script_service/mruby/test/bintest.rb +10 -1
  389. data/ext/enterprise_script_service/mruby/test/t/array.rb +11 -11
  390. data/ext/enterprise_script_service/mruby/test/t/bs_block.rb +32 -31
  391. data/ext/enterprise_script_service/mruby/test/t/class.rb +11 -23
  392. data/ext/enterprise_script_service/mruby/test/t/codegen.rb +3 -3
  393. data/ext/enterprise_script_service/mruby/test/t/enumerable.rb +1 -1
  394. data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
  395. data/ext/enterprise_script_service/mruby/test/t/float.rb +41 -2
  396. data/ext/enterprise_script_service/mruby/test/t/hash.rb +6 -5
  397. data/ext/enterprise_script_service/mruby/test/t/integer.rb +26 -44
  398. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +7 -119
  399. data/ext/enterprise_script_service/mruby/test/t/literals.rb +1 -1
  400. data/ext/enterprise_script_service/mruby/test/t/module.rb +93 -282
  401. data/ext/enterprise_script_service/mruby/test/t/numeric.rb +40 -11
  402. data/ext/enterprise_script_service/mruby/test/t/proc.rb +1 -1
  403. data/ext/enterprise_script_service/mruby/test/t/range.rb +19 -2
  404. data/ext/enterprise_script_service/mruby/test/t/string.rb +17 -24
  405. data/ext/enterprise_script_service/mruby/test/t/symbol.rb +6 -2
  406. data/ext/enterprise_script_service/mruby/test/t/syntax.rb +191 -3
  407. data/ext/enterprise_script_service/mruby/travis_config.rb +1 -1
  408. data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
  409. data/ext/enterprise_script_service/mruby_engine.gembox +1 -0
  410. data/ext/enterprise_script_service/msgpack/.travis.yml +77 -44
  411. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +75 -0
  412. data/ext/enterprise_script_service/msgpack/CMakeLists.txt +187 -50
  413. data/ext/enterprise_script_service/msgpack/Doxyfile +1 -1
  414. data/ext/enterprise_script_service/msgpack/Files.cmake +87 -0
  415. data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +3 -3
  416. data/ext/enterprise_script_service/msgpack/QUICKSTART-CPP.md +1 -1
  417. data/ext/enterprise_script_service/msgpack/README.md +15 -7
  418. data/ext/enterprise_script_service/msgpack/appveyor.yml +9 -5
  419. data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +2 -2
  420. data/ext/enterprise_script_service/msgpack/ci/build_regression.sh +49 -0
  421. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_define_array.hpp.erb +4 -2
  422. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_define_map.hpp.erb +2 -1
  423. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple.hpp.erb +1 -1
  424. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_zone.hpp.erb +25 -18
  425. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_zone_decl.hpp.erb +8 -0
  426. data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +28 -1
  427. data/ext/enterprise_script_service/msgpack/example/boost/asio_send_recv.cpp +104 -0
  428. data/ext/enterprise_script_service/msgpack/example/boost/asio_send_recv_zlib.cpp +176 -0
  429. data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +4 -2
  430. data/ext/enterprise_script_service/msgpack/example/c/speed_test_uint32_array.c +1 -1
  431. data/ext/enterprise_script_service/msgpack/example/c/speed_test_uint64_array.c +1 -1
  432. data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +15 -3
  433. data/ext/enterprise_script_service/msgpack/example/cpp03/class_non_intrusive.cpp +1 -1
  434. data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +5 -1
  435. data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +12 -4
  436. data/ext/enterprise_script_service/msgpack/example/x3/parse.cpp +7 -1
  437. data/ext/enterprise_script_service/msgpack/example/x3/stream_unpack.cpp +9 -0
  438. data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitattributes +96 -0
  439. data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitignore +3 -0
  440. data/ext/enterprise_script_service/msgpack/external/boost/predef/.project +17 -0
  441. data/ext/enterprise_script_service/msgpack/external/boost/predef/.pydevproject +5 -0
  442. data/ext/enterprise_script_service/msgpack/external/boost/predef/.travis.yml +109 -0
  443. data/ext/enterprise_script_service/msgpack/external/boost/predef/appveyor.yml +149 -0
  444. data/ext/enterprise_script_service/msgpack/external/boost/predef/build.jam +6 -0
  445. data/ext/enterprise_script_service/msgpack/external/boost/predef/check/predef.jam +17 -0
  446. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/.gitignore +1 -0
  447. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/build.jam +100 -0
  448. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/hardware_simd.qbk +89 -0
  449. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/history.qbk +93 -0
  450. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/predef.qbk +734 -0
  451. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/todo.qbk +12 -0
  452. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/detail/endian.hpp +11 -0
  453. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef.h +24 -0
  454. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture.h +33 -0
  455. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/alpha.h +59 -0
  456. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/arm.h +80 -0
  457. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/blackfin.h +46 -0
  458. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/convex.h +65 -0
  459. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ia64.h +49 -0
  460. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/m68k.h +82 -0
  461. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/mips.h +73 -0
  462. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/parisc.h +64 -0
  463. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ppc.h +72 -0
  464. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ptx.h +44 -0
  465. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/pyramid.h +42 -0
  466. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/rs6k.h +56 -0
  467. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sparc.h +54 -0
  468. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/superh.h +67 -0
  469. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys370.h +43 -0
  470. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys390.h +43 -0
  471. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86.h +38 -0
  472. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/32.h +87 -0
  473. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/64.h +50 -0
  474. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/z.h +42 -0
  475. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler.h +44 -0
  476. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/borland.h +63 -0
  477. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/clang.h +56 -0
  478. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/comeau.h +61 -0
  479. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/compaq.h +66 -0
  480. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/diab.h +56 -0
  481. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/digitalmars.h +56 -0
  482. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/dignus.h +56 -0
  483. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/edg.h +56 -0
  484. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ekopath.h +57 -0
  485. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc.h +68 -0
  486. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc_xml.h +53 -0
  487. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/greenhills.h +66 -0
  488. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/hp_acc.h +61 -0
  489. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/iar.h +56 -0
  490. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ibm.h +72 -0
  491. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/intel.h +79 -0
  492. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/kai.h +56 -0
  493. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/llvm.h +57 -0
  494. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metaware.h +53 -0
  495. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metrowerks.h +77 -0
  496. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/microtec.h +53 -0
  497. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/mpw.h +63 -0
  498. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/nvcc.h +60 -0
  499. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/palm.h +56 -0
  500. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/pgi.h +60 -0
  501. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sgi_mipspro.h +66 -0
  502. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sunpro.h +76 -0
  503. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/tendra.h +53 -0
  504. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/visualc.h +105 -0
  505. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/watcom.h +56 -0
  506. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_cassert.h +17 -0
  507. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_exception.h +15 -0
  508. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/comp_detected.h +10 -0
  509. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/endian_compat.h +26 -0
  510. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/os_detected.h +10 -0
  511. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/platform_detected.h +10 -0
  512. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test.h +17 -0
  513. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test_def.h +71 -0
  514. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware.h +16 -0
  515. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd.h +119 -0
  516. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm.h +59 -0
  517. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm/versions.h +32 -0
  518. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc.h +69 -0
  519. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc/versions.h +51 -0
  520. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86.h +123 -0
  521. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86/versions.h +129 -0
  522. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd.h +87 -0
  523. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd/versions.h +51 -0
  524. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language.h +18 -0
  525. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/cuda.h +52 -0
  526. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/objc.h +42 -0
  527. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdc.h +53 -0
  528. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdcpp.h +121 -0
  529. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library.h +16 -0
  530. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c.h +21 -0
  531. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/_prefix.h +13 -0
  532. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/cloudabi.h +53 -0
  533. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/gnu.h +61 -0
  534. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/uc.h +47 -0
  535. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/vms.h +47 -0
  536. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/zos.h +56 -0
  537. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std.h +25 -0
  538. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/_prefix.h +23 -0
  539. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/cxx.h +46 -0
  540. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/dinkumware.h +52 -0
  541. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/libcomo.h +47 -0
  542. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/modena.h +45 -0
  543. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/msl.h +53 -0
  544. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/roguewave.h +56 -0
  545. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/sgi.h +51 -0
  546. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stdcpp3.h +53 -0
  547. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stlport.h +59 -0
  548. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/vacpp.h +44 -0
  549. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/make.h +97 -0
  550. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os.h +33 -0
  551. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/aix.h +66 -0
  552. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/amigaos.h +46 -0
  553. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/android.h +45 -0
  554. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/beos.h +45 -0
  555. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd.h +103 -0
  556. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/bsdi.h +48 -0
  557. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/dragonfly.h +50 -0
  558. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/free.h +67 -0
  559. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/net.h +84 -0
  560. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/open.h +251 -0
  561. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/cygwin.h +45 -0
  562. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/haiku.h +46 -0
  563. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/hpux.h +47 -0
  564. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/ios.h +51 -0
  565. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/irix.h +46 -0
  566. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/linux.h +46 -0
  567. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/macos.h +65 -0
  568. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/os400.h +45 -0
  569. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/qnxnto.h +59 -0
  570. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/solaris.h +46 -0
  571. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/unix.h +76 -0
  572. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/vms.h +52 -0
  573. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/windows.h +51 -0
  574. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other.h +16 -0
  575. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/endian.h +203 -0
  576. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/workaround.h +87 -0
  577. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform.h +28 -0
  578. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/cloudabi.h +43 -0
  579. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/ios.h +58 -0
  580. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw.h +69 -0
  581. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw32.h +63 -0
  582. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw64.h +63 -0
  583. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_desktop.h +51 -0
  584. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_phone.h +48 -0
  585. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_runtime.h +53 -0
  586. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_server.h +47 -0
  587. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_store.h +50 -0
  588. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_system.h +47 -0
  589. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_uwp.h +60 -0
  590. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version.h +15 -0
  591. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version_number.h +72 -0
  592. data/ext/enterprise_script_service/msgpack/external/boost/predef/index.html +14 -0
  593. data/ext/enterprise_script_service/msgpack/external/boost/predef/meta/libraries.json +14 -0
  594. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/.gitignore +3 -0
  595. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/build.jam +80 -0
  596. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/check_value.cpp +26 -0
  597. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_c.c +7 -0
  598. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_cpp.cpp +7 -0
  599. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objc.m +7 -0
  600. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objcpp.mm +7 -0
  601. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_endian.c +21 -0
  602. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_vs_bsd.c +19 -0
  603. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/make.cpp +94 -0
  604. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/platform_windows.cpp +177 -0
  605. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/predef_info.h +46 -0
  606. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at.cpp +62 -0
  607. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at_outdated.cpp +18 -0
  608. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/version.cpp +83 -0
  609. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround.cpp +62 -0
  610. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround_strict_config.cpp +17 -0
  611. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/build.jam +9 -0
  612. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef.jam +202 -0
  613. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check.h +98 -0
  614. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_c.c +7 -0
  615. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_cpp.cpp +7 -0
  616. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objc.m +7 -0
  617. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objcpp.mm +7 -0
  618. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc.h +19 -0
  619. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_c.c +7 -0
  620. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_cpp.cpp +7 -0
  621. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objc.m +7 -0
  622. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objcpp.mm +7 -0
  623. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/build_log.py +428 -0
  624. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/common.py +878 -0
  625. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/library_test.py +198 -0
  626. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.gitattributes +96 -0
  627. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.travis.yml +39 -0
  628. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/appveyor.yml +36 -0
  629. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html +2494 -0
  630. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/acknowledgements.html +58 -0
  631. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/bibliography.html +58 -0
  632. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/contents.html +38 -0
  633. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data.html +27 -0
  634. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/arrays.html +55 -0
  635. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/lists.html +42 -0
  636. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/sequences.html +60 -0
  637. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/tuples.html +42 -0
  638. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples.html +27 -0
  639. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/array_arithmetic.c +196 -0
  640. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/catch_builtin.cpp +51 -0
  641. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/delay.c +95 -0
  642. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/duffs_device.c +61 -0
  643. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/is_integral.cpp +49 -0
  644. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/linear_fib.c +91 -0
  645. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers.html +249 -0
  646. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic.html +36 -0
  647. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/add.html +31 -0
  648. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/dec.html +30 -0
  649. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/div.html +31 -0
  650. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/inc.html +30 -0
  651. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mod.html +31 -0
  652. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mul.html +31 -0
  653. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/sub.html +31 -0
  654. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array.html +43 -0
  655. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/data.html +30 -0
  656. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/elem.html +30 -0
  657. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/enum.html +24 -0
  658. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/insert.html +31 -0
  659. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_back.html +31 -0
  660. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_front.html +31 -0
  661. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_back.html +30 -0
  662. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_front.html +30 -0
  663. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/remove.html +31 -0
  664. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/replace.html +31 -0
  665. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/reverse.html +30 -0
  666. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/size.html +30 -0
  667. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_list.html +24 -0
  668. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_seq.html +24 -0
  669. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_tuple.html +24 -0
  670. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/assert_msg.html +31 -0
  671. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/cat.html +30 -0
  672. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma.html +31 -0
  673. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma_if.html +31 -0
  674. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison.html +35 -0
  675. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/equal.html +31 -0
  676. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater.html +31 -0
  677. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater_equal.html +31 -0
  678. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less.html +31 -0
  679. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less_equal.html +31 -0
  680. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/not_equal.html +31 -0
  681. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/limits.html +44 -0
  682. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/variadics.html +32 -0
  683. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control.html +35 -0
  684. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/deduce_d.html +30 -0
  685. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_if.html +30 -0
  686. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_iif.html +30 -0
  687. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/if.html +30 -0
  688. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/iif.html +30 -0
  689. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/while.html +31 -0
  690. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug.html +31 -0
  691. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/assert.html +31 -0
  692. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/line.html +30 -0
  693. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/dec.html +31 -0
  694. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/empty.html +31 -0
  695. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum.html +31 -0
  696. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_params.html +31 -0
  697. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted.html +31 -0
  698. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted_params.html +31 -0
  699. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwad.html +31 -0
  700. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwd.html +31 -0
  701. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expand.html +31 -0
  702. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expr_if.html +31 -0
  703. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities.html +34 -0
  704. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/apply.html +30 -0
  705. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/empty.html +30 -0
  706. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/expand.html +30 -0
  707. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/identity.html +32 -0
  708. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/intercept.html +30 -0
  709. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/overload.html +28 -0
  710. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/for.html +31 -0
  711. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/identity.html +31 -0
  712. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/if.html +31 -0
  713. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/inc.html +31 -0
  714. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iterate.html +31 -0
  715. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration.html +32 -0
  716. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/iterate.html +43 -0
  717. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/local.html +30 -0
  718. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/self.html +30 -0
  719. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/library.html +26 -0
  720. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/limits.html +31 -0
  721. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list.html +47 -0
  722. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/adt.html +35 -0
  723. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/append.html +31 -0
  724. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/at.html +31 -0
  725. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/cat.html +31 -0
  726. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/enum.html +31 -0
  727. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/filter.html +31 -0
  728. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/first_n.html +31 -0
  729. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_left.html +34 -0
  730. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_right.html +34 -0
  731. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each.html +31 -0
  732. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_i.html +31 -0
  733. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_product.html +31 -0
  734. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/rest_n.html +31 -0
  735. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/reverse.html +31 -0
  736. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/size.html +31 -0
  737. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_array.html +29 -0
  738. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_seq.html +25 -0
  739. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_tuple.html +31 -0
  740. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/transform.html +31 -0
  741. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical.html +40 -0
  742. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/and.html +30 -0
  743. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitand.html +30 -0
  744. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitnor.html +30 -0
  745. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitor.html +30 -0
  746. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitxor.html +30 -0
  747. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bool.html +30 -0
  748. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/compl.html +30 -0
  749. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/nor.html +30 -0
  750. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/not.html +30 -0
  751. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/or.html +30 -0
  752. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/xor.html +30 -0
  753. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/max.html +31 -0
  754. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/min.html +31 -0
  755. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/preprocessor.html +26 -0
  756. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation.html +33 -0
  757. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma.html +30 -0
  758. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma_if.html +30 -0
  759. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/is_begin_parens.html +26 -0
  760. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren.html +31 -0
  761. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren_if.html +31 -0
  762. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/remove_parens.html +26 -0
  763. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat.html +31 -0
  764. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_2nd.html +31 -0
  765. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_3rd.html +31 -0
  766. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to.html +31 -0
  767. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_2nd.html +31 -0
  768. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_3rd.html +31 -0
  769. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition.html +44 -0
  770. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_r.html +30 -0
  771. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_z.html +30 -0
  772. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum.html +31 -0
  773. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_binary_params.html +31 -0
  774. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_params.html +31 -0
  775. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted.html +31 -0
  776. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted_params.html +31 -0
  777. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing.html +31 -0
  778. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing_params.html +31 -0
  779. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwad.html +30 -0
  780. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwd.html +30 -0
  781. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/esbp.html +31 -0
  782. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/etbp.html +31 -0
  783. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/for.html +31 -0
  784. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat.html +34 -0
  785. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat_from_to.html +36 -0
  786. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection.html +31 -0
  787. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/max.html +31 -0
  788. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/min.html +31 -0
  789. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq.html +86 -0
  790. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/cat.html +38 -0
  791. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/elem.html +35 -0
  792. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/enum.html +35 -0
  793. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/filter.html +37 -0
  794. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/first_n.html +36 -0
  795. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_left.html +38 -0
  796. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_right.html +38 -0
  797. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each.html +38 -0
  798. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_i.html +38 -0
  799. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_product.html +38 -0
  800. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/insert.html +35 -0
  801. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_back.html +36 -0
  802. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_front.html +36 -0
  803. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_back.html +35 -0
  804. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_front.html +35 -0
  805. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/remove.html +35 -0
  806. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/replace.html +35 -0
  807. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/rest_n.html +36 -0
  808. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/reverse.html +37 -0
  809. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/seq.html +39 -0
  810. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/size.html +35 -0
  811. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/subseq.html +35 -0
  812. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_array.html +36 -0
  813. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_list.html +30 -0
  814. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_tuple.html +36 -0
  815. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/transform.html +37 -0
  816. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/variadic_seq_to_seq.html +34 -0
  817. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot.html +30 -0
  818. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/counter.html +31 -0
  819. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/slot.html +31 -0
  820. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/stringize.html +30 -0
  821. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple.html +59 -0
  822. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/eat.html +25 -0
  823. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/elem.html +25 -0
  824. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/enum.html +25 -0
  825. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/insert.html +27 -0
  826. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_back.html +28 -0
  827. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_front.html +28 -0
  828. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_back.html +26 -0
  829. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_front.html +26 -0
  830. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/rem.html +27 -0
  831. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/remove.html +27 -0
  832. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/replace.html +28 -0
  833. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/reverse.html +25 -0
  834. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/size.html +25 -0
  835. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_array.html +25 -0
  836. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_list.html +25 -0
  837. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_seq.html +31 -0
  838. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic.html +33 -0
  839. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/elem.html +29 -0
  840. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/size.html +25 -0
  841. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_array.html +25 -0
  842. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_list.html +25 -0
  843. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_seq.html +30 -0
  844. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_tuple.html +31 -0
  845. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/while.html +31 -0
  846. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/wstringize.html +30 -0
  847. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/index.html +23 -0
  848. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/miscellanea.html +24 -0
  849. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref.html +319 -0
  850. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add.html +68 -0
  851. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add_d.html +90 -0
  852. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/and.html +64 -0
  853. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/apply.html +64 -0
  854. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_data.html +49 -0
  855. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_elem.html +51 -0
  856. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_enum.html +37 -0
  857. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert.html +71 -0
  858. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert_d.html +63 -0
  859. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back.html +59 -0
  860. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back_z.html +51 -0
  861. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front.html +51 -0
  862. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front_z.html +51 -0
  863. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_back.html +49 -0
  864. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_front.html +49 -0
  865. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove.html +60 -0
  866. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove_d.html +51 -0
  867. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace.html +64 -0
  868. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace_d.html +55 -0
  869. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_reverse.html +45 -0
  870. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_size.html +45 -0
  871. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_list.html +41 -0
  872. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_seq.html +37 -0
  873. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_tuple.html +39 -0
  874. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert.html +114 -0
  875. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert_msg.html +66 -0
  876. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assign_slot.html +61 -0
  877. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitand.html +65 -0
  878. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitnor.html +65 -0
  879. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitor.html +65 -0
  880. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitxor.html +66 -0
  881. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bool.html +54 -0
  882. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/cat.html +57 -0
  883. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma.html +43 -0
  884. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma_if.html +60 -0
  885. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/compl.html +58 -0
  886. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/config_extended_line_info.html +54 -0
  887. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/counter.html +58 -0
  888. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/dec.html +54 -0
  889. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_d.html +82 -0
  890. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_r.html +48 -0
  891. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_z.html +48 -0
  892. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div.html +63 -0
  893. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div_d.html +85 -0
  894. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/empty.html +47 -0
  895. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum.html +80 -0
  896. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params.html +76 -0
  897. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params_z.html +93 -0
  898. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params.html +69 -0
  899. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_a_default.html +83 -0
  900. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_defaults.html +84 -0
  901. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_z.html +82 -0
  902. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted.html +82 -0
  903. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params.html +73 -0
  904. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params_z.html +79 -0
  905. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_z.html +93 -0
  906. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing.html +83 -0
  907. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params.html +66 -0
  908. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params_z.html +81 -0
  909. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_z.html +96 -0
  910. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_z.html +96 -0
  911. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal.html +64 -0
  912. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal_d.html +69 -0
  913. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbp.html +65 -0
  914. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbpz.html +67 -0
  915. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbp.html +83 -0
  916. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbpz.html +67 -0
  917. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expand.html +67 -0
  918. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_if.html +70 -0
  919. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_iif.html +67 -0
  920. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/filename_x.html +52 -0
  921. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for.html +105 -0
  922. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r.html +148 -0
  923. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r_macros.html +44 -0
  924. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_finish.html +42 -0
  925. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_flags.html +42 -0
  926. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_iteration.html +73 -0
  927. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_start.html +42 -0
  928. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater.html +65 -0
  929. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_d.html +69 -0
  930. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal.html +65 -0
  931. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal_d.html +69 -0
  932. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity.html +57 -0
  933. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity_n.html +58 -0
  934. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/if.html +63 -0
  935. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iif.html +66 -0
  936. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/inc.html +54 -0
  937. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/include_self.html +101 -0
  938. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/indirect_self.html +45 -0
  939. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/intercept.html +51 -0
  940. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_begin_parens.html +47 -0
  941. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_iterating.html +38 -0
  942. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_selfish.html +38 -0
  943. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iterate.html +83 -0
  944. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration.html +55 -0
  945. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_depth.html +73 -0
  946. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_finish.html +57 -0
  947. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_flags.html +68 -0
  948. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_limits.html +59 -0
  949. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_params_x.html +77 -0
  950. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_start.html +57 -0
  951. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less.html +65 -0
  952. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_d.html +70 -0
  953. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal.html +65 -0
  954. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal_d.html +70 -0
  955. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_dim.html +35 -0
  956. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_for.html +34 -0
  957. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration.html +34 -0
  958. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration_dim.html +34 -0
  959. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_mag.html +34 -0
  960. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_repeat.html +39 -0
  961. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_seq.html +41 -0
  962. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_count.html +34 -0
  963. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_sig.html +34 -0
  964. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_tuple.html +33 -0
  965. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_variadic.html +24 -0
  966. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_while.html +34 -0
  967. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/line.html +112 -0
  968. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append.html +69 -0
  969. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append_d.html +96 -0
  970. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at.html +61 -0
  971. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at_d.html +63 -0
  972. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat.html +58 -0
  973. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat_d.html +67 -0
  974. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cons.html +87 -0
  975. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum.html +62 -0
  976. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum_r.html +69 -0
  977. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter.html +76 -0
  978. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter_d.html +86 -0
  979. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first.html +62 -0
  980. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n.html +62 -0
  981. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n_d.html +71 -0
  982. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left.html +75 -0
  983. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd.html +75 -0
  984. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd_d.html +86 -0
  985. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d.html +81 -0
  986. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d_old.html +86 -0
  987. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right.html +79 -0
  988. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd.html +79 -0
  989. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd_d.html +86 -0
  990. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d.html +81 -0
  991. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d_old.html +90 -0
  992. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each.html +75 -0
  993. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i.html +75 -0
  994. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i_r.html +82 -0
  995. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product.html +86 -0
  996. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product_r.html +118 -0
  997. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_r.html +81 -0
  998. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_cons.html +51 -0
  999. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_nil.html +51 -0
  1000. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_nil.html +68 -0
  1001. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest.html +62 -0
  1002. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n.html +62 -0
  1003. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n_d.html +71 -0
  1004. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse.html +55 -0
  1005. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse_d.html +63 -0
  1006. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size.html +55 -0
  1007. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size_d.html +67 -0
  1008. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array.html +47 -0
  1009. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array_d.html +34 -0
  1010. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq.html +44 -0
  1011. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq_r.html +32 -0
  1012. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple.html +55 -0
  1013. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple_r.html +62 -0
  1014. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform.html +78 -0
  1015. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform_d.html +86 -0
  1016. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_iterate.html +62 -0
  1017. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_limits.html +80 -0
  1018. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_macro.html +64 -0
  1019. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen.html +52 -0
  1020. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen_if.html +61 -0
  1021. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max.html +64 -0
  1022. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max_d.html +70 -0
  1023. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min.html +64 -0
  1024. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min_d.html +70 -0
  1025. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod.html +63 -0
  1026. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod_d.html +75 -0
  1027. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul.html +68 -0
  1028. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul_d.html +91 -0
  1029. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nil.html +41 -0
  1030. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nor.html +64 -0
  1031. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not.html +59 -0
  1032. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal.html +64 -0
  1033. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal_d.html +69 -0
  1034. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/or.html +64 -0
  1035. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/overload.html +58 -0
  1036. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_finish.html +46 -0
  1037. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_flags.html +46 -0
  1038. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_iteration.html +101 -0
  1039. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_start.html +46 -0
  1040. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/remove_parens.html +44 -0
  1041. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat.html +80 -0
  1042. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_1st.html +82 -0
  1043. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_2nd.html +82 -0
  1044. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_3rd.html +82 -0
  1045. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to.html +102 -0
  1046. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_1st.html +91 -0
  1047. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_2nd.html +91 -0
  1048. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_3rd.html +91 -0
  1049. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d.html +83 -0
  1050. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d_z.html +84 -0
  1051. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_z.html +105 -0
  1052. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z.html +92 -0
  1053. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z_macros.html +45 -0
  1054. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen.html +53 -0
  1055. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen_if.html +61 -0
  1056. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat.html +64 -0
  1057. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat_s.html +60 -0
  1058. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_elem.html +59 -0
  1059. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_enum.html +66 -0
  1060. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter.html +93 -0
  1061. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter_s.html +79 -0
  1062. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_first_n.html +67 -0
  1063. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left.html +90 -0
  1064. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left_s.html +96 -0
  1065. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right.html +92 -0
  1066. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right_s.html +97 -0
  1067. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each.html +90 -0
  1068. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i.html +91 -0
  1069. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i_r.html +78 -0
  1070. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product.html +100 -0
  1071. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product_r.html +81 -0
  1072. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_r.html +77 -0
  1073. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_head.html +63 -0
  1074. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_insert.html +70 -0
  1075. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_nil.html +81 -0
  1076. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_back.html +68 -0
  1077. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_front.html +68 -0
  1078. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_back.html +76 -0
  1079. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_front.html +78 -0
  1080. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_remove.html +66 -0
  1081. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_replace.html +71 -0
  1082. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_rest_n.html +55 -0
  1083. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse.html +68 -0
  1084. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse_s.html +55 -0
  1085. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_size.html +55 -0
  1086. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_subseq.html +69 -0
  1087. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_tail.html +63 -0
  1088. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_array.html +55 -0
  1089. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_list.html +34 -0
  1090. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_tuple.html +55 -0
  1091. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform.html +93 -0
  1092. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform_s.html +79 -0
  1093. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/slot.html +60 -0
  1094. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/stringize.html +50 -0
  1095. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub.html +63 -0
  1096. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub_d.html +85 -0
  1097. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_eat.html +58 -0
  1098. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_elem.html +65 -0
  1099. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_enum.html +55 -0
  1100. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert.html +54 -0
  1101. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert_d.html +46 -0
  1102. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back.html +48 -0
  1103. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back_z.html +40 -0
  1104. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front.html +47 -0
  1105. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front_z.html +40 -0
  1106. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_back.html +39 -0
  1107. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_front.html +39 -0
  1108. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem.html +60 -0
  1109. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem_ctor.html +61 -0
  1110. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove.html +50 -0
  1111. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove_d.html +41 -0
  1112. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace.html +51 -0
  1113. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace_d.html +42 -0
  1114. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_reverse.html +61 -0
  1115. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_size.html +32 -0
  1116. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_array.html +50 -0
  1117. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_list.html +60 -0
  1118. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_seq.html +51 -0
  1119. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/update_counter.html +34 -0
  1120. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/value.html +37 -0
  1121. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_elem.html +42 -0
  1122. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_seq_to_seq.html +35 -0
  1123. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_size.html +33 -0
  1124. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_array.html +32 -0
  1125. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_list.html +31 -0
  1126. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_seq.html +32 -0
  1127. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_tuple.html +32 -0
  1128. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadics.html +30 -0
  1129. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while.html +116 -0
  1130. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d.html +117 -0
  1131. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d_macros.html +89 -0
  1132. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/wstringize.html +49 -0
  1133. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/xor.html +64 -0
  1134. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/styles.css +87 -0
  1135. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/syntax.html +307 -0
  1136. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms.html +23 -0
  1137. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/evaluated.html +27 -0
  1138. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/named_external.html +25 -0
  1139. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/title.html +25 -0
  1140. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/top.html +32 -0
  1141. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics.html +27 -0
  1142. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/evaluated_slots.html +157 -0
  1143. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/file_iteration.html +1044 -0
  1144. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/incompatible.html +140 -0
  1145. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/local_iteration.html +156 -0
  1146. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/motivation.html +119 -0
  1147. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/problems.html +135 -0
  1148. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/reentrancy.html +298 -0
  1149. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/techniques.html +350 -0
  1150. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/variadic_macros.html +262 -0
  1151. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor.hpp +19 -0
  1152. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic.hpp +25 -0
  1153. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/add.hpp +51 -0
  1154. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/dec.hpp +289 -0
  1155. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
  1156. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/div.hpp +39 -0
  1157. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/inc.hpp +288 -0
  1158. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mod.hpp +39 -0
  1159. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mul.hpp +53 -0
  1160. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/sub.hpp +50 -0
  1161. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array.hpp +32 -0
  1162. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/data.hpp +28 -0
  1163. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/detail/get_data.hpp +55 -0
  1164. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/elem.hpp +29 -0
  1165. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/enum.hpp +33 -0
  1166. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/insert.hpp +55 -0
  1167. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_back.hpp +37 -0
  1168. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_front.hpp +38 -0
  1169. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_back.hpp +35 -0
  1170. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_front.hpp +35 -0
  1171. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/remove.hpp +54 -0
  1172. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/replace.hpp +49 -0
  1173. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/reverse.hpp +29 -0
  1174. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/size.hpp +28 -0
  1175. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_list.hpp +47 -0
  1176. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_seq.hpp +46 -0
  1177. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_tuple.hpp +33 -0
  1178. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/assert_msg.hpp +17 -0
  1179. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/cat.hpp +35 -0
  1180. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma.hpp +17 -0
  1181. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma_if.hpp +17 -0
  1182. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison.hpp +24 -0
  1183. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/equal.hpp +34 -0
  1184. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater.hpp +38 -0
  1185. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater_equal.hpp +38 -0
  1186. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less.hpp +46 -0
  1187. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less_equal.hpp +39 -0
  1188. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/not_equal.hpp +814 -0
  1189. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/config.hpp +106 -0
  1190. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/limits.hpp +30 -0
  1191. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control.hpp +22 -0
  1192. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/deduce_d.hpp +22 -0
  1193. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/dmc/while.hpp +536 -0
  1194. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/edg/while.hpp +534 -0
  1195. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/msvc/while.hpp +277 -0
  1196. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/while.hpp +536 -0
  1197. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_if.hpp +30 -0
  1198. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_iif.hpp +31 -0
  1199. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/if.hpp +30 -0
  1200. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/iif.hpp +34 -0
  1201. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/while.hpp +312 -0
  1202. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug.hpp +18 -0
  1203. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/assert.hpp +44 -0
  1204. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/error.hpp +33 -0
  1205. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/line.hpp +35 -0
  1206. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/dec.hpp +17 -0
  1207. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/auto_rec.hpp +293 -0
  1208. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/check.hpp +48 -0
  1209. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/dmc/auto_rec.hpp +286 -0
  1210. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_binary.hpp +30 -0
  1211. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_nullary.hpp +30 -0
  1212. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_unary.hpp +30 -0
  1213. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/null.hpp +17 -0
  1214. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/split.hpp +35 -0
  1215. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/empty.hpp +17 -0
  1216. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum.hpp +17 -0
  1217. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params.hpp +17 -0
  1218. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_a_default.hpp +17 -0
  1219. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_defaults.hpp +17 -0
  1220. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted.hpp +17 -0
  1221. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted_params.hpp +17 -0
  1222. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expand.hpp +17 -0
  1223. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expr_if.hpp +17 -0
  1224. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities.hpp +23 -0
  1225. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/apply.hpp +34 -0
  1226. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/detail/is_empty.hpp +55 -0
  1227. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/empty.hpp +23 -0
  1228. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/expand.hpp +28 -0
  1229. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/identity.hpp +27 -0
  1230. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/intercept.hpp +277 -0
  1231. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_1.hpp +23 -0
  1232. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty.hpp +56 -0
  1233. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_or_1.hpp +31 -0
  1234. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_variadic.hpp +57 -0
  1235. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/overload.hpp +25 -0
  1236. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/for.hpp +17 -0
  1237. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/identity.hpp +17 -0
  1238. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/if.hpp +17 -0
  1239. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/inc.hpp +17 -0
  1240. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iterate.hpp +17 -0
  1241. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration.hpp +19 -0
  1242. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
  1243. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower2.hpp +99 -0
  1244. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower3.hpp +99 -0
  1245. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower4.hpp +99 -0
  1246. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower5.hpp +99 -0
  1247. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
  1248. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper2.hpp +99 -0
  1249. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper3.hpp +99 -0
  1250. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper4.hpp +99 -0
  1251. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper5.hpp +99 -0
  1252. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/finish.hpp +99 -0
  1253. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
  1254. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward2.hpp +1338 -0
  1255. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward3.hpp +1338 -0
  1256. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward4.hpp +1338 -0
  1257. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward5.hpp +1338 -0
  1258. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp +1296 -0
  1259. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse2.hpp +1296 -0
  1260. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse3.hpp +1296 -0
  1261. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse4.hpp +1296 -0
  1262. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse5.hpp +1296 -0
  1263. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/local.hpp +812 -0
  1264. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/rlocal.hpp +782 -0
  1265. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/self.hpp +21 -0
  1266. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/start.hpp +99 -0
  1267. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/iterate.hpp +82 -0
  1268. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/local.hpp +26 -0
  1269. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/self.hpp +19 -0
  1270. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/library.hpp +37 -0
  1271. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/limits.hpp +17 -0
  1272. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list.hpp +37 -0
  1273. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/adt.hpp +73 -0
  1274. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/append.hpp +40 -0
  1275. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/at.hpp +39 -0
  1276. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/cat.hpp +42 -0
  1277. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +279 -0
  1278. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_left.hpp +536 -0
  1279. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_right.hpp +794 -0
  1280. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_left.hpp +279 -0
  1281. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_right.hpp +277 -0
  1282. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/enum.hpp +41 -0
  1283. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/filter.hpp +54 -0
  1284. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/first_n.hpp +58 -0
  1285. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_left.hpp +303 -0
  1286. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_right.hpp +40 -0
  1287. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each.hpp +49 -0
  1288. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_i.hpp +65 -0
  1289. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_product.hpp +141 -0
  1290. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/rest_n.hpp +55 -0
  1291. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/reverse.hpp +40 -0
  1292. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/size.hpp +58 -0
  1293. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_array.hpp +155 -0
  1294. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_seq.hpp +32 -0
  1295. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_tuple.hpp +61 -0
  1296. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/transform.hpp +49 -0
  1297. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical.hpp +29 -0
  1298. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/and.hpp +30 -0
  1299. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitand.hpp +38 -0
  1300. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitnor.hpp +38 -0
  1301. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitor.hpp +38 -0
  1302. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitxor.hpp +38 -0
  1303. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bool.hpp +288 -0
  1304. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/compl.hpp +36 -0
  1305. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/nor.hpp +30 -0
  1306. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/not.hpp +30 -0
  1307. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/or.hpp +30 -0
  1308. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/xor.hpp +30 -0
  1309. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/max.hpp +17 -0
  1310. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/min.hpp +17 -0
  1311. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation.hpp +22 -0
  1312. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma.hpp +21 -0
  1313. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma_if.hpp +31 -0
  1314. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +48 -0
  1315. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/is_begin_parens.hpp +51 -0
  1316. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren.hpp +23 -0
  1317. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren_if.hpp +38 -0
  1318. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/remove_parens.hpp +39 -0
  1319. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat.hpp +17 -0
  1320. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_2nd.hpp +17 -0
  1321. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_3rd.hpp +17 -0
  1322. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to.hpp +17 -0
  1323. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_2nd.hpp +17 -0
  1324. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_3rd.hpp +17 -0
  1325. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition.hpp +32 -0
  1326. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_r.hpp +22 -0
  1327. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_z.hpp +22 -0
  1328. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/dmc/for.hpp +536 -0
  1329. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/edg/for.hpp +534 -0
  1330. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/for.hpp +536 -0
  1331. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/msvc/for.hpp +277 -0
  1332. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum.hpp +66 -0
  1333. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_binary_params.hpp +54 -0
  1334. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params.hpp +41 -0
  1335. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp +25 -0
  1336. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_defaults.hpp +24 -0
  1337. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted.hpp +68 -0
  1338. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +51 -0
  1339. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
  1340. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing.hpp +63 -0
  1341. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +53 -0
  1342. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
  1343. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/for.hpp +324 -0
  1344. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat.hpp +825 -0
  1345. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat_from_to.hpp +87 -0
  1346. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection.hpp +18 -0
  1347. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/max.hpp +39 -0
  1348. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/min.hpp +39 -0
  1349. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq.hpp +44 -0
  1350. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/cat.hpp +49 -0
  1351. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/binary_transform.hpp +47 -0
  1352. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/is_empty.hpp +49 -0
  1353. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/split.hpp +284 -0
  1354. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
  1355. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/elem.hpp +304 -0
  1356. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/enum.hpp +288 -0
  1357. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/filter.hpp +54 -0
  1358. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/first_n.hpp +30 -0
  1359. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_left.hpp +1070 -0
  1360. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_right.hpp +288 -0
  1361. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each.hpp +107 -0
  1362. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_i.hpp +109 -0
  1363. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_product.hpp +126 -0
  1364. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/insert.hpp +28 -0
  1365. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_back.hpp +29 -0
  1366. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_front.hpp +27 -0
  1367. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_back.hpp +19 -0
  1368. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_front.hpp +19 -0
  1369. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/remove.hpp +29 -0
  1370. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/replace.hpp +45 -0
  1371. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/rest_n.hpp +46 -0
  1372. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/reverse.hpp +39 -0
  1373. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/seq.hpp +44 -0
  1374. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/size.hpp +548 -0
  1375. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/subseq.hpp +28 -0
  1376. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_array.hpp +28 -0
  1377. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_list.hpp +41 -0
  1378. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_tuple.hpp +27 -0
  1379. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/transform.hpp +48 -0
  1380. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/variadic_seq_to_seq.hpp +28 -0
  1381. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot.hpp +17 -0
  1382. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/counter.hpp +25 -0
  1383. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/counter.hpp +269 -0
  1384. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/def.hpp +49 -0
  1385. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/shared.hpp +247 -0
  1386. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot1.hpp +267 -0
  1387. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot2.hpp +267 -0
  1388. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot3.hpp +267 -0
  1389. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot4.hpp +267 -0
  1390. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot5.hpp +267 -0
  1391. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/slot.hpp +32 -0
  1392. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/stringize.hpp +33 -0
  1393. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple.hpp +35 -0
  1394. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/detail/is_single_return.hpp +28 -0
  1395. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/eat.hpp +115 -0
  1396. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/elem.hpp +201 -0
  1397. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/enum.hpp +22 -0
  1398. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/insert.hpp +37 -0
  1399. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_back.hpp +64 -0
  1400. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_front.hpp +65 -0
  1401. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_back.hpp +31 -0
  1402. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_front.hpp +32 -0
  1403. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/rem.hpp +149 -0
  1404. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/remove.hpp +64 -0
  1405. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/replace.hpp +37 -0
  1406. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/reverse.hpp +117 -0
  1407. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/size.hpp +28 -0
  1408. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_array.hpp +39 -0
  1409. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_list.hpp +118 -0
  1410. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_seq.hpp +119 -0
  1411. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic.hpp +23 -0
  1412. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/detail/is_single_return.hpp +28 -0
  1413. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/elem.hpp +94 -0
  1414. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/size.hpp +30 -0
  1415. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_array.hpp +32 -0
  1416. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_list.hpp +25 -0
  1417. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_seq.hpp +25 -0
  1418. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_tuple.hpp +24 -0
  1419. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/while.hpp +17 -0
  1420. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/wstringize.hpp +29 -0
  1421. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/index.html +18 -0
  1422. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/meta/libraries.json +15 -0
  1423. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/Jamfile.v2 +252 -0
  1424. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.c +12 -0
  1425. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cpp +12 -0
  1426. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cxx +82 -0
  1427. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.c +14 -0
  1428. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cpp +14 -0
  1429. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cxx +192 -0
  1430. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.c +13 -0
  1431. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cpp +12 -0
  1432. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cxx +45 -0
  1433. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/config_info.cpp +93 -0
  1434. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.c +12 -0
  1435. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cpp +12 -0
  1436. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cxx +40 -0
  1437. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.c +12 -0
  1438. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cpp +12 -0
  1439. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cxx +21 -0
  1440. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.c +12 -0
  1441. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cpp +12 -0
  1442. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cxx +55 -0
  1443. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.c +12 -0
  1444. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cpp +12 -0
  1445. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cxx +145 -0
  1446. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.c +12 -0
  1447. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cpp +12 -0
  1448. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cxx +25 -0
  1449. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.c +12 -0
  1450. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cpp +12 -0
  1451. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cxx +25 -0
  1452. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.cpp +33 -0
  1453. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.h +62 -0
  1454. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.c +14 -0
  1455. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cpp +14 -0
  1456. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cxx +91 -0
  1457. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.c +12 -0
  1458. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cpp +12 -0
  1459. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cxx +59 -0
  1460. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.c +14 -0
  1461. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cpp +14 -0
  1462. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cxx +54 -0
  1463. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/repetition.cpp +50 -0
  1464. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.c +12 -0
  1465. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cpp +12 -0
  1466. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cxx +21 -0
  1467. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.c +14 -0
  1468. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cpp +14 -0
  1469. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cxx +222 -0
  1470. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.c +12 -0
  1471. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cpp +12 -0
  1472. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cxx +53 -0
  1473. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/test.h +37 -0
  1474. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.c +14 -0
  1475. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cpp +14 -0
  1476. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cxx +266 -0
  1477. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple_elem_bug_test.cxx +38 -0
  1478. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.c +12 -0
  1479. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cpp +12 -0
  1480. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cxx +56 -0
  1481. data/ext/enterprise_script_service/msgpack/fuzz/CMakeLists.txt +43 -0
  1482. data/ext/enterprise_script_service/msgpack/fuzz/regression_runner.cpp +50 -0
  1483. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer.cpp +23 -0
  1484. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_regressions/clusterfuzz-testcase-minimized-unpack_pack_fuzzer-5656982724804608 +0 -0
  1485. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_regressions/clusterfuzz-testcase-minimized-unpack_pack_fuzzer-6022481354686464 +0 -0
  1486. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/EmptyArray +1 -0
  1487. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/EmptyObject +1 -0
  1488. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/ExcessiveNesting +2 -0
  1489. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/OpenWeatherMap +0 -0
  1490. data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/WeatherUnderground +0 -0
  1491. data/ext/enterprise_script_service/msgpack/include/msgpack.hpp +4 -0
  1492. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/adaptor_base.hpp +1 -0
  1493. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/adaptor_base_decl.hpp +1 -0
  1494. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/array_ref_decl.hpp +1 -0
  1495. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp +1 -0
  1496. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/check_container_size_decl.hpp +1 -0
  1497. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp11/chrono.hpp +16 -0
  1498. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/byte.hpp +16 -0
  1499. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/carray_byte.hpp +16 -0
  1500. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/optional.hpp +16 -0
  1501. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/string_view.hpp +16 -0
  1502. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/vector_byte.hpp +16 -0
  1503. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/define_decl.hpp +25 -24
  1504. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/ext_decl.hpp +1 -0
  1505. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/fixint_decl.hpp +1 -0
  1506. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/int_decl.hpp +1 -0
  1507. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/map_decl.hpp +1 -0
  1508. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/msgpack_tuple_decl.hpp +1 -0
  1509. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/nil_decl.hpp +1 -0
  1510. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/raw_decl.hpp +1 -0
  1511. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/size_equal_only_decl.hpp +1 -0
  1512. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/tr1/unordered_map.hpp +2 -2
  1513. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/tr1/unordered_set.hpp +2 -2
  1514. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/v4raw_decl.hpp +1 -0
  1515. data/ext/enterprise_script_service/msgpack/include/msgpack/cpp_config_decl.hpp +1 -0
  1516. data/ext/enterprise_script_service/msgpack/include/msgpack/create_object_visitor.hpp +17 -0
  1517. data/ext/enterprise_script_service/msgpack/include/msgpack/create_object_visitor_decl.hpp +16 -0
  1518. data/ext/enterprise_script_service/msgpack/include/msgpack/fbuffer_decl.hpp +1 -0
  1519. data/ext/enterprise_script_service/msgpack/include/msgpack/iterator_decl.hpp +2 -1
  1520. data/ext/enterprise_script_service/msgpack/include/msgpack/meta_decl.hpp +1 -0
  1521. data/ext/enterprise_script_service/msgpack/include/msgpack/null_visitor.hpp +17 -0
  1522. data/ext/enterprise_script_service/msgpack/include/msgpack/null_visitor_decl.hpp +16 -0
  1523. data/ext/enterprise_script_service/msgpack/include/msgpack/object_decl.hpp +1 -0
  1524. data/ext/enterprise_script_service/msgpack/include/msgpack/object_fwd.hpp +1 -0
  1525. data/ext/enterprise_script_service/msgpack/include/msgpack/object_fwd_decl.hpp +1 -0
  1526. data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +4 -0
  1527. data/ext/enterprise_script_service/msgpack/include/msgpack/pack_decl.hpp +1 -0
  1528. data/ext/enterprise_script_service/msgpack/include/msgpack/pack_template.h +28 -0
  1529. data/ext/enterprise_script_service/msgpack/include/msgpack/parse.hpp +18 -0
  1530. data/ext/enterprise_script_service/msgpack/include/msgpack/parse_decl.hpp +16 -0
  1531. data/ext/enterprise_script_service/msgpack/include/msgpack/parse_return.hpp +1 -0
  1532. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture.h +1 -0
  1533. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture/arm.h +11 -1
  1534. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture/parisc.h +1 -1
  1535. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture/ptx.h +44 -0
  1536. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler.h +1 -0
  1537. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler/intel.h +17 -3
  1538. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler/nvcc.h +60 -0
  1539. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler/visualc.h +15 -1
  1540. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/hardware/simd/arm.h +3 -1
  1541. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/hardware/simd/x86_amd/versions.h +3 -3
  1542. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/language.h +1 -0
  1543. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/language/cuda.h +52 -0
  1544. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/library/c.h +1 -0
  1545. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/library/c/cloudabi.h +53 -0
  1546. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/make.h +8 -0
  1547. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/os/android.h +2 -2
  1548. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/os/bsd/free.h +10 -3
  1549. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/os/bsd/open.h +80 -0
  1550. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/other/endian.h +1 -2
  1551. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/other/workaround.h +87 -0
  1552. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform.h +9 -2
  1553. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/cloudabi.h +43 -0
  1554. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/ios.h +58 -0
  1555. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/mingw.h +4 -4
  1556. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/mingw32.h +63 -0
  1557. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/mingw64.h +63 -0
  1558. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_desktop.h +9 -3
  1559. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_phone.h +7 -2
  1560. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_runtime.h +13 -5
  1561. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_server.h +47 -0
  1562. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_store.h +11 -4
  1563. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_system.h +47 -0
  1564. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_uwp.h +60 -0
  1565. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/version.h +1 -1
  1566. data/ext/enterprise_script_service/msgpack/include/msgpack/predef/version_number.h +20 -1
  1567. data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/cat.hpp +1 -1
  1568. data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/config/config.hpp +13 -11
  1569. data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/seq/detail/binary_transform.hpp +5 -6
  1570. data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
  1571. data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/seq/to_list.hpp +12 -0
  1572. data/ext/enterprise_script_service/msgpack/include/msgpack/sbuffer_decl.hpp +1 -0
  1573. data/ext/enterprise_script_service/msgpack/include/msgpack/sysdep.h +31 -26
  1574. data/ext/enterprise_script_service/msgpack/include/msgpack/timestamp.h +58 -0
  1575. data/ext/enterprise_script_service/msgpack/include/msgpack/type.hpp +13 -0
  1576. data/ext/enterprise_script_service/msgpack/include/msgpack/unpack.hpp +1 -1
  1577. data/ext/enterprise_script_service/msgpack/include/msgpack/unpack_decl.hpp +1 -0
  1578. data/ext/enterprise_script_service/msgpack/include/msgpack/unpack_template.h +1 -0
  1579. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +6 -6
  1580. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/fusion.hpp +48 -5
  1581. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/carray.hpp +5 -5
  1582. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/char_ptr.hpp +1 -1
  1583. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/array.hpp +1 -1
  1584. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/array_char.hpp +8 -1
  1585. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp +8 -1
  1586. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp +215 -0
  1587. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/forward_list.hpp +1 -1
  1588. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/tuple.hpp +1 -1
  1589. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp +2 -2
  1590. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp +2 -2
  1591. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/byte.hpp +74 -0
  1592. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp +109 -0
  1593. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/optional.hpp +90 -0
  1594. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/string_view.hpp +86 -0
  1595. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +119 -0
  1596. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/deque.hpp +1 -1
  1597. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp +1088 -32
  1598. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp +32 -16
  1599. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp +32 -32
  1600. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp +45 -0
  1601. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp +4 -3
  1602. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp +4 -2
  1603. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp +1 -1
  1604. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/ext.hpp +3 -3
  1605. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/fixint.hpp +40 -24
  1606. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int.hpp +55 -33
  1607. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/list.hpp +1 -1
  1608. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +7 -7
  1609. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/pair.hpp +1 -1
  1610. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/set.hpp +2 -2
  1611. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/string.hpp +1 -1
  1612. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/tr1/unordered_map.hpp +2 -2
  1613. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/tr1/unordered_set.hpp +2 -2
  1614. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +5 -5
  1615. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_bool.hpp +1 -1
  1616. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +9 -9
  1617. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +9 -9
  1618. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/cpp_config.hpp +4 -0
  1619. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/cpp_config_decl.hpp +6 -0
  1620. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp +41 -34
  1621. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp03_zone_decl.hpp +8 -0
  1622. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp +25 -19
  1623. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp11_zone_decl.hpp +8 -0
  1624. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object.hpp +768 -404
  1625. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object_decl.hpp +8 -1
  1626. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object_fwd.hpp +1 -1
  1627. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/unpack.hpp +5 -6
  1628. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/vrefbuffer.hpp +15 -3
  1629. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor.hpp +14 -7
  1630. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor_decl.hpp +33 -0
  1631. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/null_visitor.hpp +5 -3
  1632. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/null_visitor_decl.hpp +29 -0
  1633. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/object_decl.hpp +4 -0
  1634. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/object_fwd.hpp +1 -1
  1635. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/pack_decl.hpp +1 -0
  1636. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse.hpp +41 -23
  1637. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse_decl.hpp +79 -0
  1638. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/unpack.hpp +7 -3
  1639. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/unpack_decl.hpp +8 -36
  1640. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_parse.hpp +5 -6
  1641. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_parse_decl.hpp +36 -0
  1642. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_unpack.hpp +13 -12
  1643. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_unpack_decl.hpp +71 -0
  1644. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/adaptor_base.hpp +58 -0
  1645. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/adaptor_base_decl.hpp +52 -0
  1646. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/array_ref_decl.hpp +36 -0
  1647. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp +42 -0
  1648. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/check_container_size_decl.hpp +39 -0
  1649. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/define_decl.hpp +23 -0
  1650. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp +31 -0
  1651. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp +31 -0
  1652. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp +43 -0
  1653. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp +32 -0
  1654. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp +31 -0
  1655. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp +59 -0
  1656. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/ext_decl.hpp +34 -0
  1657. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/fixint_decl.hpp +43 -0
  1658. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/int_decl.hpp +54 -0
  1659. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/map_decl.hpp +33 -0
  1660. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp +21 -0
  1661. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/nil_decl.hpp +42 -0
  1662. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/raw_decl.hpp +33 -0
  1663. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/size_equal_only_decl.hpp +35 -0
  1664. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/v4raw_decl.hpp +34 -0
  1665. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/cpp_config_decl.hpp +84 -0
  1666. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/create_object_visitor_decl.hpp +33 -0
  1667. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/detail/cpp03_zone_decl.hpp +31 -0
  1668. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/detail/cpp11_zone_decl.hpp +31 -0
  1669. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/fbuffer_decl.hpp +32 -0
  1670. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/iterator_decl.hpp +33 -0
  1671. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/meta_decl.hpp +50 -0
  1672. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/null_visitor_decl.hpp +29 -0
  1673. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/object_decl.hpp +53 -0
  1674. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/object_fwd.hpp +70 -0
  1675. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/object_fwd_decl.hpp +75 -0
  1676. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/pack_decl.hpp +55 -0
  1677. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse.hpp +677 -0
  1678. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse_decl.hpp +49 -0
  1679. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse_return.hpp +35 -0
  1680. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/sbuffer_decl.hpp +33 -0
  1681. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +192 -0
  1682. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack_decl.hpp +304 -0
  1683. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/vrefbuffer_decl.hpp +29 -0
  1684. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/x3_parse_decl.hpp +34 -0
  1685. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/x3_unpack.hpp +97 -0
  1686. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/x3_unpack_decl.hpp +65 -0
  1687. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/zbuffer_decl.hpp +29 -0
  1688. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/zone_decl.hpp +21 -0
  1689. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +1 -1
  1690. data/ext/enterprise_script_service/msgpack/include/msgpack/versioning.hpp +3 -1
  1691. data/ext/enterprise_script_service/msgpack/include/msgpack/vrefbuffer.h +1 -2
  1692. data/ext/enterprise_script_service/msgpack/include/msgpack/vrefbuffer_decl.hpp +1 -0
  1693. data/ext/enterprise_script_service/msgpack/include/msgpack/x3_parse.hpp +15 -0
  1694. data/ext/enterprise_script_service/msgpack/include/msgpack/x3_parse_decl.hpp +16 -0
  1695. data/ext/enterprise_script_service/msgpack/include/msgpack/x3_unpack.hpp +16 -0
  1696. data/ext/enterprise_script_service/msgpack/include/msgpack/x3_unpack_decl.hpp +16 -0
  1697. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer_decl.hpp +1 -0
  1698. data/ext/enterprise_script_service/msgpack/include/msgpack/zone_decl.hpp +1 -0
  1699. data/ext/enterprise_script_service/msgpack/makedist.sh +2 -0
  1700. data/ext/enterprise_script_service/msgpack/msgpack-config.cmake.in +23 -0
  1701. data/ext/enterprise_script_service/msgpack/src/objectc.c +1 -1
  1702. data/ext/enterprise_script_service/msgpack/src/unpack.c +8 -8
  1703. data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +13 -1
  1704. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +13 -6
  1705. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +31 -0
  1706. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +3 -3
  1707. data/ext/enterprise_script_service/msgpack/test/cases.cpp +7 -0
  1708. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +8 -0
  1709. data/ext/enterprise_script_service/msgpack/test/json.cpp +1 -1
  1710. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +114 -6
  1711. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +188 -0
  1712. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +333 -0
  1713. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +11 -0
  1714. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +9 -3
  1715. data/ext/enterprise_script_service/msgpack/test/object.cpp +11 -2
  1716. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +72 -8
  1717. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +96 -0
  1718. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +1 -1
  1719. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +38 -13
  1720. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +350 -6
  1721. data/ext/enterprise_script_service/msgpack/update_version.sh +17 -0
  1722. data/lib/script_core/version.rb +1 -1
  1723. data/lib/tasks/script_core.rake +5 -2
  1724. data/script_core.gemspec +0 -1
  1725. data/spec/dummy/app/controllers/application_controller.rb +18 -0
  1726. data/spec/dummy/app/controllers/fields/choices_controller.rb +50 -0
  1727. data/spec/dummy/app/controllers/forms/formulas/playgrounds_controller.rb +2 -2
  1728. data/spec/dummy/app/controllers/playgrounds_controller.rb +18 -3
  1729. data/spec/dummy/app/controllers/time_zones_controller.rb +14 -0
  1730. data/spec/dummy/app/helpers/fields_helper.rb +0 -4
  1731. data/spec/dummy/app/lib/script_engine.rb +18 -7
  1732. data/spec/dummy/app/models/choice.rb +10 -0
  1733. data/spec/dummy/app/models/concerns/fields/helper.rb +23 -0
  1734. data/spec/dummy/app/models/concerns/fields/validations/acceptance.rb +1 -1
  1735. data/spec/dummy/app/models/concerns/fields/validations/confirmation.rb +1 -1
  1736. data/spec/dummy/app/models/concerns/fields/validations/exclusion.rb +2 -2
  1737. data/spec/dummy/app/models/concerns/fields/validations/format.rb +5 -7
  1738. data/spec/dummy/app/models/concerns/fields/validations/inclusion.rb +2 -2
  1739. data/spec/dummy/app/models/concerns/fields/validations/length.rb +2 -2
  1740. data/spec/dummy/app/models/concerns/fields/validations/numericality.rb +2 -2
  1741. data/spec/dummy/app/models/concerns/fields/validations/presence.rb +1 -1
  1742. data/spec/dummy/app/models/field.rb +8 -8
  1743. data/spec/dummy/app/models/field_options.rb +16 -8
  1744. data/spec/dummy/app/models/fields.rb +4 -0
  1745. data/spec/dummy/app/models/fields/boolean_field.rb +1 -1
  1746. data/spec/dummy/app/models/fields/date_field.rb +24 -0
  1747. data/spec/dummy/app/models/fields/datetime_field.rb +24 -0
  1748. data/spec/dummy/app/models/fields/multiple_nested_form_field.rb +8 -3
  1749. data/spec/dummy/app/models/fields/multiple_select_field.rb +42 -0
  1750. data/spec/dummy/app/models/fields/nested_form_field.rb +6 -5
  1751. data/spec/dummy/app/models/fields/options/date_field.rb +138 -0
  1752. data/spec/dummy/app/models/fields/options/datetime_field.rb +138 -0
  1753. data/spec/dummy/app/models/fields/options/multiple_select_field.rb +7 -0
  1754. data/spec/dummy/app/models/fields/options/select_field.rb +7 -0
  1755. data/spec/dummy/app/models/fields/select_field.rb +25 -0
  1756. data/spec/dummy/app/models/fields/validations/boolean_field.rb +1 -1
  1757. data/spec/dummy/app/models/fields/validations/date_field.rb +7 -0
  1758. data/spec/dummy/app/models/fields/validations/datetime_field.rb +7 -0
  1759. data/spec/dummy/app/models/fields/validations/decimal_field.rb +2 -2
  1760. data/spec/dummy/app/models/fields/validations/integer_field.rb +2 -2
  1761. data/spec/dummy/app/models/fields/validations/multiple_nested_form_field.rb +2 -2
  1762. data/spec/dummy/app/models/fields/validations/multiple_select_field.rb +8 -0
  1763. data/spec/dummy/app/models/fields/validations/nested_form_field.rb +1 -1
  1764. data/spec/dummy/app/models/fields/validations/select_field.rb +7 -0
  1765. data/spec/dummy/app/models/fields/validations/text_field.rb +3 -3
  1766. data/spec/dummy/app/models/metal_form.rb +4 -0
  1767. data/spec/dummy/app/models/non_configurable.rb +4 -0
  1768. data/spec/dummy/app/models/virtual_model.rb +8 -0
  1769. data/spec/dummy/app/presenters/fields/date_field_presenter.rb +53 -0
  1770. data/spec/dummy/app/presenters/fields/datetime_field_presenter.rb +53 -0
  1771. data/spec/dummy/app/presenters/fields/field_presenter.rb +3 -2
  1772. data/spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb +37 -0
  1773. data/spec/dummy/app/presenters/fields/select_field_presenter.rb +26 -0
  1774. data/spec/dummy/app/views/_form_core/field_options/_date_field.html.erb +97 -0
  1775. data/spec/dummy/app/views/_form_core/field_options/_datetime_field.html.erb +97 -0
  1776. data/spec/dummy/app/views/_form_core/field_options/_multiple_select_field.html.erb +12 -0
  1777. data/spec/dummy/app/views/_form_core/field_options/_select_field.html.erb +12 -0
  1778. data/spec/dummy/app/views/_form_core/fields/_date_field.html.erb +9 -0
  1779. data/spec/dummy/app/views/_form_core/fields/_datetime_field.html.erb +9 -0
  1780. data/spec/dummy/app/views/_form_core/fields/_multiple_select_field.html.erb +18 -0
  1781. data/spec/dummy/app/views/_form_core/fields/_select_field.html.erb +17 -0
  1782. data/spec/dummy/app/views/fields/choices/_form.html.erb +34 -0
  1783. data/spec/dummy/app/views/fields/choices/edit.html.erb +6 -0
  1784. data/spec/dummy/app/views/fields/choices/index.html.erb +27 -0
  1785. data/spec/dummy/app/views/fields/choices/new.html.erb +6 -0
  1786. data/spec/dummy/app/views/forms/fields/index.html.erb +4 -1
  1787. data/spec/dummy/app/views/forms/formulas/playgrounds/create.html.erb +1 -1
  1788. data/spec/dummy/app/views/layouts/_nav.html.erb +22 -0
  1789. data/spec/dummy/app/views/nested_forms/fields/index.html.erb +10 -3
  1790. data/spec/dummy/app/views/playgrounds/_form.html.erb +1 -1
  1791. data/spec/dummy/config/application.rb +2 -1
  1792. data/spec/dummy/config/initializers/validates_timeliness.rb +42 -0
  1793. data/spec/dummy/config/routes.rb +3 -0
  1794. data/spec/dummy/db/migrate/20180916202025_create_forms.form_core.rb +1 -0
  1795. data/spec/dummy/db/migrate/20180916202122_create_choices.rb +12 -0
  1796. data/spec/dummy/db/migrate/20180916202123_add_position_to_choices.rb +9 -0
  1797. data/spec/dummy/db/schema.rb +19 -5
  1798. data/spec/dummy/lib/monkey_patches/big_decimal.rb +7 -3
  1799. data/spec/dummy/lib/monkey_patches/date.rb +12 -0
  1800. data/spec/dummy/lib/monkey_patches/time.rb +12 -0
  1801. data/spec/dummy/mruby/engine.gembox +1 -0
  1802. data/spec/dummy/mruby/lib/core_ext.rb +64 -2
  1803. data/spec/dummy/mruby/lib/input.rb +16 -4
  1804. data/spec/dummy/mruby/lib/io.rb +4 -3
  1805. data/spec/dummy/mruby/lib/output.rb +2 -28
  1806. data/spec/dummy/mruby/lib/script_kernel.rb +8 -7
  1807. data/spec/script_core_spec.rb +2 -2
  1808. data/tests/googletest/.clang-format +4 -0
  1809. data/tests/googletest/.gitignore +82 -0
  1810. data/tests/googletest/.travis.yml +68 -29
  1811. data/tests/googletest/BUILD.bazel +179 -0
  1812. data/tests/googletest/CMakeLists.txt +21 -4
  1813. data/tests/googletest/CONTRIBUTING.md +161 -0
  1814. data/tests/googletest/LICENSE +28 -0
  1815. data/tests/googletest/Makefile.am +12 -0
  1816. data/tests/googletest/README.md +28 -41
  1817. data/tests/googletest/WORKSPACE +10 -0
  1818. data/tests/googletest/appveyor.yml +118 -35
  1819. data/tests/googletest/ci/build-linux-autotools.sh +44 -0
  1820. data/tests/googletest/ci/build-linux-bazel.sh +36 -0
  1821. data/tests/googletest/ci/build-platformio.sh +2 -0
  1822. data/tests/googletest/ci/env-linux.sh +41 -0
  1823. data/tests/googletest/ci/env-osx.sh +47 -0
  1824. data/tests/googletest/ci/get-nprocessors.sh +48 -0
  1825. data/tests/googletest/ci/install-linux.sh +49 -0
  1826. data/tests/googletest/ci/install-osx.sh +40 -0
  1827. data/tests/googletest/ci/install-platformio.sh +5 -0
  1828. data/tests/googletest/ci/log-config.sh +51 -0
  1829. data/tests/googletest/ci/travis.sh +44 -0
  1830. data/tests/googletest/configure.ac +16 -0
  1831. data/tests/googletest/googlemock/CMakeLists.txt +78 -55
  1832. data/tests/googletest/googlemock/Makefile.am +6 -8
  1833. data/tests/googletest/googlemock/README.md +33 -73
  1834. data/tests/googletest/googlemock/cmake/gmock.pc.in +11 -0
  1835. data/tests/googletest/googlemock/cmake/gmock_main.pc.in +11 -0
  1836. data/tests/googletest/googlemock/configure.ac +6 -18
  1837. data/tests/googletest/googlemock/docs/CheatSheet.md +126 -99
  1838. data/tests/googletest/googlemock/docs/CookBook.md +271 -286
  1839. data/tests/googletest/googlemock/docs/DesignDoc.md +29 -27
  1840. data/tests/googletest/googlemock/docs/Documentation.md +7 -4
  1841. data/tests/googletest/googlemock/docs/ForDummies.md +41 -33
  1842. data/tests/googletest/googlemock/docs/FrequentlyAskedQuestions.md +28 -29
  1843. data/tests/googletest/googlemock/include/gmock/gmock-actions.h +232 -240
  1844. data/tests/googletest/googlemock/include/gmock/gmock-cardinalities.h +12 -6
  1845. data/tests/googletest/googlemock/include/gmock/gmock-function-mocker.h +218 -0
  1846. data/tests/googletest/googlemock/include/gmock/gmock-generated-actions.h +304 -796
  1847. data/tests/googletest/googlemock/include/gmock/gmock-generated-actions.h.pump +18 -184
  1848. data/tests/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h +330 -673
  1849. data/tests/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +77 -141
  1850. data/tests/googletest/googlemock/include/gmock/gmock-generated-matchers.h +293 -1372
  1851. data/tests/googletest/googlemock/include/gmock/gmock-generated-matchers.h.pump +22 -345
  1852. data/tests/googletest/googlemock/include/gmock/gmock-matchers.h +1382 -1218
  1853. data/tests/googletest/googlemock/include/gmock/gmock-more-actions.h +12 -96
  1854. data/tests/googletest/googlemock/include/gmock/gmock-more-matchers.h +39 -5
  1855. data/tests/googletest/googlemock/include/gmock/gmock-nice-strict.h +215 -0
  1856. data/tests/googletest/googlemock/include/gmock/gmock-spec-builders.h +362 -228
  1857. data/tests/googletest/googlemock/include/gmock/gmock.h +10 -3
  1858. data/tests/googletest/googlemock/include/gmock/internal/custom/README.md +16 -0
  1859. data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +2 -0
  1860. data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +3 -1
  1861. data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +5 -8
  1862. data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +3 -10
  1863. data/tests/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +114 -54
  1864. data/tests/googletest/googlemock/include/gmock/internal/gmock-port.h +13 -17
  1865. data/tests/googletest/googlemock/include/gmock/internal/gmock-pp.h +317 -0
  1866. data/tests/googletest/googlemock/make/Makefile +23 -7
  1867. data/tests/googletest/googlemock/msvc/2010/gmock.sln +14 -0
  1868. data/tests/googletest/googlemock/msvc/2010/gmock.vcxproj +69 -6
  1869. data/tests/googletest/googlemock/msvc/2010/gmock_config.props +2 -2
  1870. data/tests/googletest/googlemock/msvc/2010/gmock_main.vcxproj +69 -6
  1871. data/tests/googletest/googlemock/msvc/2010/gmock_test.vcxproj +83 -8
  1872. data/tests/googletest/googlemock/msvc/2015/gmock.sln +14 -0
  1873. data/tests/googletest/googlemock/msvc/2015/gmock.vcxproj +63 -2
  1874. data/tests/googletest/googlemock/msvc/2015/gmock_main.vcxproj +63 -2
  1875. data/tests/googletest/googlemock/msvc/2015/gmock_test.vcxproj +76 -3
  1876. data/tests/googletest/googlemock/scripts/fuse_gmock_files.py +1 -1
  1877. data/tests/googletest/googlemock/scripts/generator/README +4 -5
  1878. data/tests/googletest/googlemock/scripts/generator/cpp/ast.py +6 -3
  1879. data/tests/googletest/googlemock/scripts/generator/cpp/gmock_class_test.py +18 -0
  1880. data/tests/googletest/googlemock/scripts/upload.py +4 -4
  1881. data/tests/googletest/googlemock/src/gmock-all.cc +1 -2
  1882. data/tests/googletest/googlemock/src/gmock-cardinalities.cc +7 -8
  1883. data/tests/googletest/googlemock/src/gmock-internal-utils.cc +38 -12
  1884. data/tests/googletest/googlemock/src/gmock-matchers.cc +127 -163
  1885. data/tests/googletest/googlemock/src/gmock-spec-builders.cc +150 -86
  1886. data/tests/googletest/googlemock/src/gmock.cc +41 -11
  1887. data/tests/googletest/googlemock/src/gmock_main.cc +14 -3
  1888. data/tests/googletest/googlemock/test/BUILD.bazel +106 -0
  1889. data/tests/googletest/googlemock/test/gmock-actions_test.cc +370 -328
  1890. data/tests/googletest/googlemock/test/gmock-cardinalities_test.cc +5 -6
  1891. data/tests/googletest/googlemock/test/gmock-function-mocker_nc.cc +16 -0
  1892. data/tests/googletest/googlemock/test/gmock-function-mocker_nc_test.py +43 -0
  1893. data/tests/googletest/googlemock/test/gmock-function-mocker_test.cc +660 -0
  1894. data/tests/googletest/googlemock/test/gmock-generated-actions_test.cc +137 -301
  1895. data/tests/googletest/googlemock/test/gmock-generated-function-mockers_test.cc +80 -43
  1896. data/tests/googletest/googlemock/test/gmock-generated-matchers_test.cc +239 -201
  1897. data/tests/googletest/googlemock/test/gmock-internal-utils_test.cc +126 -68
  1898. data/tests/googletest/googlemock/test/gmock-matchers_test.cc +1811 -674
  1899. data/tests/googletest/googlemock/test/gmock-more-actions_test.cc +162 -171
  1900. data/tests/googletest/googlemock/test/gmock-nice-strict_test.cc +121 -45
  1901. data/tests/googletest/googlemock/test/gmock-port_test.cc +1 -2
  1902. data/tests/googletest/googlemock/test/gmock-pp-string_test.cc +206 -0
  1903. data/tests/googletest/googlemock/test/gmock-pp_test.cc +73 -0
  1904. data/tests/googletest/googlemock/test/gmock-spec-builders_test.cc +152 -23
  1905. data/tests/googletest/googlemock/test/gmock_all_test.cc +1 -3
  1906. data/tests/googletest/googlemock/test/gmock_ex_test.cc +4 -5
  1907. data/tests/googletest/googlemock/test/gmock_leak_test.py +0 -4
  1908. data/tests/googletest/googlemock/test/gmock_leak_test_.cc +1 -2
  1909. data/tests/googletest/googlemock/test/gmock_link2_test.cc +2 -3
  1910. data/tests/googletest/googlemock/test/gmock_link_test.cc +2 -3
  1911. data/tests/googletest/googlemock/test/gmock_link_test.h +45 -24
  1912. data/tests/googletest/googlemock/test/gmock_output_test.py +10 -9
  1913. data/tests/googletest/googlemock/test/gmock_output_test_.cc +21 -3
  1914. data/tests/googletest/googlemock/test/gmock_output_test_golden.txt +8 -1
  1915. data/tests/googletest/googlemock/test/gmock_stress_test.cc +7 -89
  1916. data/tests/googletest/googlemock/test/gmock_test.cc +57 -96
  1917. data/tests/googletest/googlemock/test/gmock_test_utils.py +5 -9
  1918. data/tests/googletest/googletest/CMakeLists.txt +122 -83
  1919. data/tests/googletest/googletest/Makefile.am +103 -75
  1920. data/tests/googletest/googletest/README.md +236 -189
  1921. data/tests/googletest/googletest/cmake/Config.cmake.in +9 -0
  1922. data/tests/googletest/googletest/cmake/gtest.pc.in +10 -0
  1923. data/tests/googletest/googletest/cmake/gtest_main.pc.in +11 -0
  1924. data/tests/googletest/googletest/cmake/internal_utils.cmake +158 -58
  1925. data/tests/googletest/googletest/cmake/libgtest.la.in +21 -0
  1926. data/tests/googletest/googletest/configure.ac +2 -2
  1927. data/tests/googletest/googletest/docs/Pkgconfig.md +146 -0
  1928. data/tests/googletest/googletest/docs/PumpManual.md +5 -5
  1929. data/tests/googletest/googletest/docs/XcodeGuide.md +9 -9
  1930. data/tests/googletest/googletest/docs/advanced.md +2523 -0
  1931. data/tests/googletest/googletest/docs/faq.md +770 -0
  1932. data/tests/googletest/googletest/docs/primer.md +564 -0
  1933. data/tests/googletest/googletest/docs/samples.md +22 -0
  1934. data/tests/googletest/googletest/include/gtest/gtest-death-test.h +60 -11
  1935. data/tests/googletest/googletest/include/gtest/gtest-matchers.h +741 -0
  1936. data/tests/googletest/googletest/include/gtest/gtest-message.h +12 -44
  1937. data/tests/googletest/googletest/include/gtest/gtest-param-test.h +139 -1080
  1938. data/tests/googletest/googletest/include/gtest/gtest-printers.h +202 -268
  1939. data/tests/googletest/googletest/include/gtest/gtest-spi.h +13 -7
  1940. data/tests/googletest/googletest/include/gtest/gtest-test-part.h +21 -16
  1941. data/tests/googletest/googletest/include/gtest/gtest-typed-test.h +157 -84
  1942. data/tests/googletest/googletest/include/gtest/gtest.h +494 -277
  1943. data/tests/googletest/googletest/include/gtest/gtest_pred_impl.h +41 -40
  1944. data/tests/googletest/googletest/include/gtest/gtest_prod.h +10 -7
  1945. data/tests/googletest/googletest/include/gtest/internal/custom/README.md +56 -0
  1946. data/tests/googletest/googletest/include/gtest/internal/custom/gtest-port.h +1 -33
  1947. data/tests/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +2 -2
  1948. data/tests/googletest/googletest/include/gtest/internal/custom/gtest.h +1 -5
  1949. data/tests/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +80 -95
  1950. data/tests/googletest/googletest/include/gtest/internal/gtest-filepath.h +8 -3
  1951. data/tests/googletest/googletest/include/gtest/internal/gtest-internal.h +415 -231
  1952. data/tests/googletest/googletest/include/gtest/internal/gtest-param-util.h +323 -174
  1953. data/tests/googletest/googletest/include/gtest/internal/gtest-port-arch.h +19 -5
  1954. data/tests/googletest/googletest/include/gtest/internal/gtest-port.h +289 -549
  1955. data/tests/googletest/googletest/include/gtest/internal/gtest-string.h +4 -4
  1956. data/tests/googletest/googletest/include/gtest/internal/gtest-type-util.h +23 -7
  1957. data/tests/googletest/googletest/include/gtest/internal/gtest-type-util.h.pump +24 -7
  1958. data/tests/googletest/googletest/make/Makefile +13 -7
  1959. data/tests/googletest/googletest/msvc/2010/gtest-md.sln +55 -0
  1960. data/tests/googletest/googletest/msvc/2010/gtest-md.vcxproj +149 -0
  1961. data/tests/googletest/googletest/msvc/2010/gtest-md.vcxproj.filters +18 -0
  1962. data/tests/googletest/googletest/msvc/2010/gtest.sln +55 -0
  1963. data/tests/googletest/googletest/msvc/2010/gtest.vcxproj +149 -0
  1964. data/tests/googletest/googletest/msvc/2010/gtest.vcxproj.filters +18 -0
  1965. data/tests/googletest/googletest/msvc/2010/gtest_main-md.vcxproj +154 -0
  1966. data/tests/googletest/googletest/msvc/2010/gtest_main-md.vcxproj.filters +18 -0
  1967. data/tests/googletest/googletest/msvc/2010/gtest_main.vcxproj +162 -0
  1968. data/tests/googletest/googletest/msvc/2010/gtest_main.vcxproj.filters +18 -0
  1969. data/tests/googletest/googletest/msvc/2010/gtest_prod_test-md.vcxproj +199 -0
  1970. data/tests/googletest/googletest/msvc/2010/gtest_prod_test-md.vcxproj.filters +26 -0
  1971. data/tests/googletest/googletest/msvc/2010/gtest_prod_test.vcxproj +191 -0
  1972. data/tests/googletest/googletest/msvc/2010/gtest_prod_test.vcxproj.filters +26 -0
  1973. data/tests/googletest/googletest/msvc/2010/gtest_unittest-md.vcxproj +188 -0
  1974. data/tests/googletest/googletest/msvc/2010/gtest_unittest-md.vcxproj.filters +18 -0
  1975. data/tests/googletest/googletest/msvc/2010/gtest_unittest.vcxproj +180 -0
  1976. data/tests/googletest/googletest/msvc/2010/gtest_unittest.vcxproj.filters +18 -0
  1977. data/tests/googletest/googletest/samples/prime_tables.h +13 -10
  1978. data/tests/googletest/googletest/samples/sample1.cc +1 -3
  1979. data/tests/googletest/googletest/samples/sample1.h +0 -2
  1980. data/tests/googletest/googletest/samples/sample10_unittest.cc +4 -9
  1981. data/tests/googletest/googletest/samples/sample1_unittest.cc +2 -4
  1982. data/tests/googletest/googletest/samples/sample2.cc +1 -3
  1983. data/tests/googletest/googletest/samples/sample2.h +4 -8
  1984. data/tests/googletest/googletest/samples/sample2_unittest.cc +5 -7
  1985. data/tests/googletest/googletest/samples/sample3-inl.h +9 -9
  1986. data/tests/googletest/googletest/samples/sample3_unittest.cc +13 -15
  1987. data/tests/googletest/googletest/samples/sample4.cc +10 -2
  1988. data/tests/googletest/googletest/samples/sample4.h +3 -3
  1989. data/tests/googletest/googletest/samples/sample4_unittest.cc +11 -3
  1990. data/tests/googletest/googletest/samples/sample5_unittest.cc +11 -14
  1991. data/tests/googletest/googletest/samples/sample6_unittest.cc +12 -12
  1992. data/tests/googletest/googletest/samples/sample7_unittest.cc +14 -27
  1993. data/tests/googletest/googletest/samples/sample8_unittest.cc +20 -39
  1994. data/tests/googletest/googletest/samples/sample9_unittest.cc +6 -10
  1995. data/tests/googletest/googletest/scripts/fuse_gtest_files.py +1 -1
  1996. data/tests/googletest/googletest/scripts/gen_gtest_pred_impl.py +10 -10
  1997. data/tests/googletest/googletest/scripts/upload.py +5 -5
  1998. data/tests/googletest/googletest/src/gtest-all.cc +3 -3
  1999. data/tests/googletest/googletest/src/gtest-death-test.cc +417 -121
  2000. data/tests/googletest/googletest/src/gtest-filepath.cc +15 -23
  2001. data/tests/googletest/googletest/src/gtest-internal-inl.h +145 -122
  2002. data/tests/googletest/googletest/src/gtest-matchers.cc +97 -0
  2003. data/tests/googletest/googletest/src/gtest-port.cc +263 -129
  2004. data/tests/googletest/googletest/src/gtest-printers.cc +92 -24
  2005. data/tests/googletest/googletest/src/gtest-test-part.cc +13 -19
  2006. data/tests/googletest/googletest/src/gtest-typed-test.cc +5 -5
  2007. data/tests/googletest/googletest/src/gtest.cc +1469 -742
  2008. data/tests/googletest/googletest/src/gtest_main.cc +12 -3
  2009. data/tests/googletest/googletest/test/BUILD.bazel +518 -0
  2010. data/tests/googletest/googletest/test/googletest-break-on-failure-unittest.py +208 -0
  2011. data/tests/googletest/googletest/test/googletest-break-on-failure-unittest_.cc +86 -0
  2012. data/tests/googletest/googletest/test/googletest-catch-exceptions-test.py +231 -0
  2013. data/tests/googletest/googletest/test/googletest-catch-exceptions-test_.cc +293 -0
  2014. data/tests/googletest/googletest/test/googletest-color-test.py +127 -0
  2015. data/tests/googletest/googletest/test/googletest-color-test_.cc +62 -0
  2016. data/tests/googletest/googletest/test/googletest-death-test-test.cc +1458 -0
  2017. data/tests/googletest/googletest/test/googletest-death-test_ex_test.cc +92 -0
  2018. data/tests/googletest/googletest/test/googletest-env-var-test.py +117 -0
  2019. data/tests/googletest/googletest/test/googletest-env-var-test_.cc +122 -0
  2020. data/tests/googletest/googletest/test/googletest-filepath-test.cc +649 -0
  2021. data/tests/googletest/googletest/test/googletest-filter-unittest.py +639 -0
  2022. data/tests/googletest/googletest/test/googletest-filter-unittest_.cc +137 -0
  2023. data/tests/googletest/googletest/test/googletest-json-outfiles-test.py +185 -0
  2024. data/tests/googletest/googletest/test/googletest-json-output-unittest.py +758 -0
  2025. data/tests/googletest/googletest/test/googletest-list-tests-unittest.py +205 -0
  2026. data/tests/googletest/googletest/test/googletest-list-tests-unittest_.cc +156 -0
  2027. data/tests/googletest/googletest/test/googletest-listener-test.cc +407 -0
  2028. data/tests/googletest/googletest/test/googletest-message-test.cc +158 -0
  2029. data/tests/googletest/googletest/test/googletest-options-test.cc +216 -0
  2030. data/tests/googletest/googletest/test/googletest-output-test-golden-lin.txt +1128 -0
  2031. data/tests/googletest/googletest/test/googletest-output-test.py +346 -0
  2032. data/tests/googletest/googletest/test/googletest-output-test_.cc +1145 -0
  2033. data/tests/googletest/googletest/test/googletest-param-test-invalid-name1-test.py +63 -0
  2034. data/tests/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc +50 -0
  2035. data/tests/googletest/googletest/test/googletest-param-test-invalid-name2-test.py +62 -0
  2036. data/tests/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc +55 -0
  2037. data/tests/googletest/googletest/test/googletest-param-test-test.cc +1055 -0
  2038. data/tests/googletest/googletest/test/googletest-param-test-test.h +51 -0
  2039. data/tests/googletest/googletest/test/googletest-param-test2-test.cc +61 -0
  2040. data/tests/googletest/googletest/test/googletest-port-test.cc +1290 -0
  2041. data/tests/googletest/googletest/test/googletest-printers-test.cc +1561 -0
  2042. data/tests/googletest/googletest/test/googletest-shuffle-test.py +323 -0
  2043. data/tests/googletest/googletest/test/googletest-shuffle-test_.cc +101 -0
  2044. data/tests/googletest/googletest/test/googletest-test-part-test.cc +230 -0
  2045. data/tests/googletest/googletest/test/googletest-test2_test.cc +61 -0
  2046. data/tests/googletest/googletest/test/googletest-throw-on-failure-test.py +168 -0
  2047. data/tests/googletest/googletest/test/googletest-throw-on-failure-test_.cc +71 -0
  2048. data/tests/googletest/googletest/test/googletest-uninitialized-test.py +67 -0
  2049. data/tests/googletest/googletest/test/googletest-uninitialized-test_.cc +42 -0
  2050. data/tests/googletest/googletest/test/gtest-typed-test2_test.cc +3 -4
  2051. data/tests/googletest/googletest/test/gtest-typed-test_test.cc +144 -63
  2052. data/tests/googletest/googletest/test/gtest-typed-test_test.h +4 -5
  2053. data/tests/googletest/googletest/test/gtest-unittest-api_test.cc +122 -123
  2054. data/tests/googletest/googletest/test/gtest_all_test.cc +10 -11
  2055. data/tests/googletest/googletest/test/gtest_assert_by_exception_test.cc +116 -0
  2056. data/tests/googletest/googletest/test/gtest_environment_test.cc +3 -7
  2057. data/tests/googletest/googletest/test/gtest_help_test.py +1 -3
  2058. data/tests/googletest/googletest/test/gtest_help_test_.cc +1 -2
  2059. data/tests/googletest/googletest/test/gtest_json_test_utils.py +60 -0
  2060. data/tests/googletest/googletest/test/gtest_list_output_unittest.py +141 -0
  2061. data/tests/googletest/googletest/test/gtest_list_output_unittest_.cc +51 -0
  2062. data/tests/googletest/googletest/test/gtest_main_unittest.cc +3 -4
  2063. data/tests/googletest/googletest/test/gtest_no_test_unittest.cc +0 -2
  2064. data/tests/googletest/googletest/test/gtest_pred_impl_unittest.cc +11 -11
  2065. data/tests/googletest/googletest/test/gtest_premature_exit_test.cc +3 -4
  2066. data/tests/googletest/googletest/test/gtest_prod_test.cc +3 -4
  2067. data/tests/googletest/googletest/test/gtest_repeat_test.cc +8 -28
  2068. data/tests/googletest/googletest/test/gtest_skip_environment_check_output_test.py +54 -0
  2069. data/tests/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc +49 -0
  2070. data/tests/googletest/googletest/test/gtest_skip_test.cc +55 -0
  2071. data/tests/googletest/googletest/test/gtest_sole_header_test.cc +1 -2
  2072. data/tests/googletest/googletest/test/gtest_stress_test.cc +3 -11
  2073. data/tests/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc +89 -0
  2074. data/tests/googletest/googletest/test/gtest_test_utils.py +15 -22
  2075. data/tests/googletest/googletest/test/gtest_testbridge_test.py +63 -0
  2076. data/tests/googletest/googletest/test/gtest_testbridge_test_.cc +43 -0
  2077. data/tests/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc +2 -4
  2078. data/tests/googletest/googletest/test/gtest_unittest.cc +770 -924
  2079. data/tests/googletest/googletest/test/gtest_xml_outfile1_test_.cc +2 -8
  2080. data/tests/googletest/googletest/test/gtest_xml_outfile2_test_.cc +2 -8
  2081. data/tests/googletest/googletest/test/gtest_xml_outfiles_test.py +14 -11
  2082. data/tests/googletest/googletest/test/gtest_xml_output_unittest.py +132 -51
  2083. data/tests/googletest/googletest/test/gtest_xml_output_unittest_.cc +21 -14
  2084. data/tests/googletest/googletest/test/gtest_xml_test_utils.py +24 -22
  2085. data/tests/googletest/googletest/test/production.cc +2 -3
  2086. data/tests/googletest/googletest/test/production.h +2 -3
  2087. data/tests/googletest/googletest/xcode/Config/DebugProject.xcconfig +1 -1
  2088. data/tests/googletest/googletest/xcode/Config/FrameworkTarget.xcconfig +1 -1
  2089. data/tests/googletest/googletest/xcode/Config/General.xcconfig +3 -3
  2090. data/tests/googletest/googletest/xcode/Config/ReleaseProject.xcconfig +1 -1
  2091. data/tests/googletest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +1 -1
  2092. data/tests/googletest/googletest/xcode/Scripts/versiongenerate.py +4 -4
  2093. data/tests/googletest/googletest/xcode/gtest.xcodeproj/project.pbxproj +51 -16
  2094. data/tests/googletest/library.json +59 -0
  2095. data/tests/googletest/platformio.ini +31 -0
  2096. metadata +1391 -137
  2097. data/ext/enterprise_script_service/libseccomp/README +0 -65
  2098. data/ext/enterprise_script_service/libseccomp/SUBMITTING_PATCHES +0 -123
  2099. data/ext/enterprise_script_service/mruby/MITL +0 -20
  2100. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +0 -30
  2101. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/gc_filedes.sh +0 -4
  2102. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/init_mrbtest.c +0 -38
  2103. data/ext/enterprise_script_service/mruby/mrblib/float.rb +0 -9
  2104. data/ext/enterprise_script_service/mruby/src/ext/.gitkeep +0 -0
  2105. data/ext/enterprise_script_service/mruby/test/report.rb +0 -4
  2106. data/spec/dummy/app/models/fields/options/boolean_field.rb +0 -6
  2107. data/spec/dummy/app/models/fields/options/multiple_nested_form_field.rb +0 -6
  2108. data/spec/dummy/app/models/fields/options/nested_form_field.rb +0 -6
  2109. data/tests/googletest/googlemock/CHANGES +0 -126
  2110. data/tests/googletest/googlemock/docs/DevGuide.md +0 -132
  2111. data/tests/googletest/googlemock/docs/v1_5/CheatSheet.md +0 -525
  2112. data/tests/googletest/googlemock/docs/v1_5/CookBook.md +0 -3250
  2113. data/tests/googletest/googlemock/docs/v1_5/Documentation.md +0 -11
  2114. data/tests/googletest/googlemock/docs/v1_5/ForDummies.md +0 -439
  2115. data/tests/googletest/googlemock/docs/v1_5/FrequentlyAskedQuestions.md +0 -624
  2116. data/tests/googletest/googlemock/docs/v1_6/CheatSheet.md +0 -534
  2117. data/tests/googletest/googlemock/docs/v1_6/CookBook.md +0 -3342
  2118. data/tests/googletest/googlemock/docs/v1_6/Documentation.md +0 -12
  2119. data/tests/googletest/googlemock/docs/v1_6/ForDummies.md +0 -439
  2120. data/tests/googletest/googlemock/docs/v1_6/FrequentlyAskedQuestions.md +0 -628
  2121. data/tests/googletest/googlemock/docs/v1_7/CheatSheet.md +0 -556
  2122. data/tests/googletest/googlemock/docs/v1_7/CookBook.md +0 -3432
  2123. data/tests/googletest/googlemock/docs/v1_7/Documentation.md +0 -12
  2124. data/tests/googletest/googlemock/docs/v1_7/ForDummies.md +0 -439
  2125. data/tests/googletest/googlemock/docs/v1_7/FrequentlyAskedQuestions.md +0 -628
  2126. data/tests/googletest/googlemock/include/gmock/gmock-generated-nice-strict.h +0 -397
  2127. data/tests/googletest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +0 -161
  2128. data/tests/googletest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +0 -279
  2129. data/tests/googletest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +0 -136
  2130. data/tests/googletest/googlemock/test/gmock-generated-internal-utils_test.cc +0 -127
  2131. data/tests/googletest/googletest/.gitignore +0 -2
  2132. data/tests/googletest/googletest/CHANGES +0 -157
  2133. data/tests/googletest/googletest/build-aux/.keep +0 -0
  2134. data/tests/googletest/googletest/docs/AdvancedGuide.md +0 -2182
  2135. data/tests/googletest/googletest/docs/DevGuide.md +0 -126
  2136. data/tests/googletest/googletest/docs/Documentation.md +0 -14
  2137. data/tests/googletest/googletest/docs/FAQ.md +0 -1087
  2138. data/tests/googletest/googletest/docs/Primer.md +0 -502
  2139. data/tests/googletest/googletest/docs/Samples.md +0 -14
  2140. data/tests/googletest/googletest/docs/V1_5_AdvancedGuide.md +0 -2096
  2141. data/tests/googletest/googletest/docs/V1_5_Documentation.md +0 -12
  2142. data/tests/googletest/googletest/docs/V1_5_FAQ.md +0 -886
  2143. data/tests/googletest/googletest/docs/V1_5_Primer.md +0 -497
  2144. data/tests/googletest/googletest/docs/V1_5_PumpManual.md +0 -177
  2145. data/tests/googletest/googletest/docs/V1_5_XcodeGuide.md +0 -93
  2146. data/tests/googletest/googletest/docs/V1_6_AdvancedGuide.md +0 -2178
  2147. data/tests/googletest/googletest/docs/V1_6_Documentation.md +0 -14
  2148. data/tests/googletest/googletest/docs/V1_6_FAQ.md +0 -1038
  2149. data/tests/googletest/googletest/docs/V1_6_Primer.md +0 -501
  2150. data/tests/googletest/googletest/docs/V1_6_PumpManual.md +0 -177
  2151. data/tests/googletest/googletest/docs/V1_6_Samples.md +0 -14
  2152. data/tests/googletest/googletest/docs/V1_6_XcodeGuide.md +0 -93
  2153. data/tests/googletest/googletest/docs/V1_7_AdvancedGuide.md +0 -2181
  2154. data/tests/googletest/googletest/docs/V1_7_Documentation.md +0 -14
  2155. data/tests/googletest/googletest/docs/V1_7_FAQ.md +0 -1082
  2156. data/tests/googletest/googletest/docs/V1_7_Primer.md +0 -501
  2157. data/tests/googletest/googletest/docs/V1_7_PumpManual.md +0 -177
  2158. data/tests/googletest/googletest/docs/V1_7_Samples.md +0 -14
  2159. data/tests/googletest/googletest/docs/V1_7_XcodeGuide.md +0 -93
  2160. data/tests/googletest/googletest/include/gtest/gtest-param-test.h.pump +0 -510
  2161. data/tests/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  2162. data/tests/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
  2163. data/tests/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
  2164. data/tests/googletest/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  2165. data/tests/googletest/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  2166. data/tests/googletest/googletest/msvc/gtest-md.sln +0 -45
  2167. data/tests/googletest/googletest/msvc/gtest-md.vcproj +0 -126
  2168. data/tests/googletest/googletest/msvc/gtest.sln +0 -45
  2169. data/tests/googletest/googletest/msvc/gtest.vcproj +0 -126
  2170. data/tests/googletest/googletest/msvc/gtest_main-md.vcproj +0 -129
  2171. data/tests/googletest/googletest/msvc/gtest_main.vcproj +0 -129
  2172. data/tests/googletest/googletest/msvc/gtest_prod_test-md.vcproj +0 -164
  2173. data/tests/googletest/googletest/msvc/gtest_prod_test.vcproj +0 -164
  2174. data/tests/googletest/googletest/msvc/gtest_unittest-md.vcproj +0 -147
  2175. data/tests/googletest/googletest/msvc/gtest_unittest.vcproj +0 -147
  2176. data/tests/googletest/googletest/test/gtest-death-test_ex_test.cc +0 -93
  2177. data/tests/googletest/googletest/test/gtest-death-test_test.cc +0 -1427
  2178. data/tests/googletest/googletest/test/gtest-filepath_test.cc +0 -662
  2179. data/tests/googletest/googletest/test/gtest-linked_ptr_test.cc +0 -154
  2180. data/tests/googletest/googletest/test/gtest-listener_test.cc +0 -311
  2181. data/tests/googletest/googletest/test/gtest-message_test.cc +0 -159
  2182. data/tests/googletest/googletest/test/gtest-options_test.cc +0 -215
  2183. data/tests/googletest/googletest/test/gtest-param-test2_test.cc +0 -65
  2184. data/tests/googletest/googletest/test/gtest-param-test_test.cc +0 -1055
  2185. data/tests/googletest/googletest/test/gtest-param-test_test.h +0 -57
  2186. data/tests/googletest/googletest/test/gtest-port_test.cc +0 -1304
  2187. data/tests/googletest/googletest/test/gtest-printers_test.cc +0 -1635
  2188. data/tests/googletest/googletest/test/gtest-test-part_test.cc +0 -208
  2189. data/tests/googletest/googletest/test/gtest-tuple_test.cc +0 -320
  2190. data/tests/googletest/googletest/test/gtest_break_on_failure_unittest.py +0 -212
  2191. data/tests/googletest/googletest/test/gtest_break_on_failure_unittest_.cc +0 -88
  2192. data/tests/googletest/googletest/test/gtest_catch_exceptions_test.py +0 -237
  2193. data/tests/googletest/googletest/test/gtest_catch_exceptions_test_.cc +0 -311
  2194. data/tests/googletest/googletest/test/gtest_color_test.py +0 -130
  2195. data/tests/googletest/googletest/test/gtest_color_test_.cc +0 -71
  2196. data/tests/googletest/googletest/test/gtest_env_var_test.py +0 -117
  2197. data/tests/googletest/googletest/test/gtest_env_var_test_.cc +0 -126
  2198. data/tests/googletest/googletest/test/gtest_filter_unittest.py +0 -636
  2199. data/tests/googletest/googletest/test/gtest_filter_unittest_.cc +0 -140
  2200. data/tests/googletest/googletest/test/gtest_list_tests_unittest.py +0 -207
  2201. data/tests/googletest/googletest/test/gtest_list_tests_unittest_.cc +0 -157
  2202. data/tests/googletest/googletest/test/gtest_output_test.py +0 -340
  2203. data/tests/googletest/googletest/test/gtest_output_test_.cc +0 -1062
  2204. data/tests/googletest/googletest/test/gtest_output_test_golden_lin.txt +0 -743
  2205. data/tests/googletest/googletest/test/gtest_shuffle_test.py +0 -325
  2206. data/tests/googletest/googletest/test/gtest_shuffle_test_.cc +0 -103
  2207. data/tests/googletest/googletest/test/gtest_throw_on_failure_test.py +0 -171
  2208. data/tests/googletest/googletest/test/gtest_throw_on_failure_test_.cc +0 -72
  2209. data/tests/googletest/googletest/test/gtest_uninitialized_test.py +0 -70
  2210. data/tests/googletest/googletest/test/gtest_uninitialized_test_.cc +0 -43
  2211. data/tests/googletest/travis.sh +0 -15
@@ -26,8 +26,7 @@
26
26
  // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
27
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
28
  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
- //
30
- // Author: wan@google.com (Zhanyong Wan)
29
+
31
30
 
32
31
  // Google Mock - a framework for writing C++ mock classes.
33
32
  //
@@ -49,7 +48,7 @@
49
48
  // implementation. It must come before gtest-internal-inl.h is
50
49
  // included, or there will be a compiler error. This trick is to
51
50
  // prevent a user from accidentally including gtest-internal-inl.h in
52
- // his code.
51
+ // their code.
53
52
  #define GTEST_IMPLEMENTATION_ 1
54
53
  #include "src/gtest-internal-inl.h"
55
54
  #undef GTEST_IMPLEMENTATION_
@@ -58,8 +57,6 @@
58
57
  # include <sys/types.h> // For ssize_t. NOLINT
59
58
  #endif
60
59
 
61
- class ProtocolMessage;
62
-
63
60
  namespace proto2 {
64
61
  class Message;
65
62
  } // namespace proto2
@@ -69,6 +66,26 @@ namespace internal {
69
66
 
70
67
  namespace {
71
68
 
69
+ TEST(JoinAsTupleTest, JoinsEmptyTuple) {
70
+ EXPECT_EQ("", JoinAsTuple(Strings()));
71
+ }
72
+
73
+ TEST(JoinAsTupleTest, JoinsOneTuple) {
74
+ const char* fields[] = {"1"};
75
+ EXPECT_EQ("1", JoinAsTuple(Strings(fields, fields + 1)));
76
+ }
77
+
78
+ TEST(JoinAsTupleTest, JoinsTwoTuple) {
79
+ const char* fields[] = {"1", "a"};
80
+ EXPECT_EQ("(1, a)", JoinAsTuple(Strings(fields, fields + 2)));
81
+ }
82
+
83
+ TEST(JoinAsTupleTest, JoinsTenTuple) {
84
+ const char* fields[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
85
+ EXPECT_EQ("(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)",
86
+ JoinAsTuple(Strings(fields, fields + 10)));
87
+ }
88
+
72
89
  TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameContainsNoWord) {
73
90
  EXPECT_EQ("", ConvertIdentifierNameToWords(""));
74
91
  EXPECT_EQ("", ConvertIdentifierNameToWords("_"));
@@ -104,15 +121,9 @@ TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameIsMixture) {
104
121
  }
105
122
 
106
123
  TEST(PointeeOfTest, WorksForSmartPointers) {
107
- CompileAssertTypesEqual<const char,
108
- PointeeOf<internal::linked_ptr<const char> >::type>();
109
- #if GTEST_HAS_STD_UNIQUE_PTR_
110
124
  CompileAssertTypesEqual<int, PointeeOf<std::unique_ptr<int> >::type>();
111
- #endif // GTEST_HAS_STD_UNIQUE_PTR_
112
- #if GTEST_HAS_STD_SHARED_PTR_
113
125
  CompileAssertTypesEqual<std::string,
114
126
  PointeeOf<std::shared_ptr<std::string> >::type>();
115
- #endif // GTEST_HAS_STD_SHARED_PTR_
116
127
  }
117
128
 
118
129
  TEST(PointeeOfTest, WorksForRawPointers) {
@@ -122,26 +133,17 @@ TEST(PointeeOfTest, WorksForRawPointers) {
122
133
  }
123
134
 
124
135
  TEST(GetRawPointerTest, WorksForSmartPointers) {
125
- #if GTEST_HAS_STD_UNIQUE_PTR_
126
136
  const char* const raw_p1 = new const char('a'); // NOLINT
127
137
  const std::unique_ptr<const char> p1(raw_p1);
128
138
  EXPECT_EQ(raw_p1, GetRawPointer(p1));
129
- #endif // GTEST_HAS_STD_UNIQUE_PTR_
130
- #if GTEST_HAS_STD_SHARED_PTR_
131
139
  double* const raw_p2 = new double(2.5); // NOLINT
132
140
  const std::shared_ptr<double> p2(raw_p2);
133
141
  EXPECT_EQ(raw_p2, GetRawPointer(p2));
134
- #endif // GTEST_HAS_STD_SHARED_PTR_
135
-
136
- const char* const raw_p4 = new const char('a'); // NOLINT
137
- const internal::linked_ptr<const char> p4(raw_p4);
138
- EXPECT_EQ(raw_p4, GetRawPointer(p4));
139
142
  }
140
143
 
141
144
  TEST(GetRawPointerTest, WorksForRawPointers) {
142
- int* p = NULL;
143
- // Don't use EXPECT_EQ as no NULL-testing magic on Symbian.
144
- EXPECT_TRUE(NULL == GetRawPointer(p));
145
+ int* p = nullptr;
146
+ EXPECT_TRUE(nullptr == GetRawPointer(p));
145
147
  int n = 1;
146
148
  EXPECT_EQ(&n, GetRawPointer(&n));
147
149
  }
@@ -289,26 +291,23 @@ TEST(LosslessArithmeticConvertibleTest, FloatingPointToFloatingPoint) {
289
291
  // Tests the TupleMatches() template function.
290
292
 
291
293
  TEST(TupleMatchesTest, WorksForSize0) {
292
- tuple<> matchers;
293
- tuple<> values;
294
+ std::tuple<> matchers;
295
+ std::tuple<> values;
294
296
 
295
297
  EXPECT_TRUE(TupleMatches(matchers, values));
296
298
  }
297
299
 
298
300
  TEST(TupleMatchesTest, WorksForSize1) {
299
- tuple<Matcher<int> > matchers(Eq(1));
300
- tuple<int> values1(1),
301
- values2(2);
301
+ std::tuple<Matcher<int> > matchers(Eq(1));
302
+ std::tuple<int> values1(1), values2(2);
302
303
 
303
304
  EXPECT_TRUE(TupleMatches(matchers, values1));
304
305
  EXPECT_FALSE(TupleMatches(matchers, values2));
305
306
  }
306
307
 
307
308
  TEST(TupleMatchesTest, WorksForSize2) {
308
- tuple<Matcher<int>, Matcher<char> > matchers(Eq(1), Eq('a'));
309
- tuple<int, char> values1(1, 'a'),
310
- values2(1, 'b'),
311
- values3(2, 'a'),
309
+ std::tuple<Matcher<int>, Matcher<char> > matchers(Eq(1), Eq('a'));
310
+ std::tuple<int, char> values1(1, 'a'), values2(1, 'b'), values3(2, 'a'),
312
311
  values4(2, 'b');
313
312
 
314
313
  EXPECT_TRUE(TupleMatches(matchers, values1));
@@ -318,12 +317,12 @@ TEST(TupleMatchesTest, WorksForSize2) {
318
317
  }
319
318
 
320
319
  TEST(TupleMatchesTest, WorksForSize5) {
321
- tuple<Matcher<int>, Matcher<char>, Matcher<bool>, Matcher<long>, // NOLINT
322
- Matcher<string> >
320
+ std::tuple<Matcher<int>, Matcher<char>, Matcher<bool>,
321
+ Matcher<long>, // NOLINT
322
+ Matcher<std::string> >
323
323
  matchers(Eq(1), Eq('a'), Eq(true), Eq(2L), Eq("hi"));
324
- tuple<int, char, bool, long, string> // NOLINT
325
- values1(1, 'a', true, 2L, "hi"),
326
- values2(1, 'a', true, 2L, "hello"),
324
+ std::tuple<int, char, bool, long, std::string> // NOLINT
325
+ values1(1, 'a', true, 2L, "hi"), values2(1, 'a', true, 2L, "hello"),
327
326
  values3(2, 'a', true, 2L, "hi");
328
327
 
329
328
  EXPECT_TRUE(TupleMatches(matchers, values1));
@@ -369,13 +368,11 @@ TEST(ExpectTest, FailsNonfatallyOnFalse) {
369
368
 
370
369
  class LogIsVisibleTest : public ::testing::Test {
371
370
  protected:
372
- virtual void SetUp() {
373
- original_verbose_ = GMOCK_FLAG(verbose);
374
- }
371
+ void SetUp() override { original_verbose_ = GMOCK_FLAG(verbose); }
375
372
 
376
- virtual void TearDown() { GMOCK_FLAG(verbose) = original_verbose_; }
373
+ void TearDown() override { GMOCK_FLAG(verbose) = original_verbose_; }
377
374
 
378
- string original_verbose_;
375
+ std::string original_verbose_;
379
376
  };
380
377
 
381
378
  TEST_F(LogIsVisibleTest, AlwaysReturnsTrueIfVerbosityIsInfo) {
@@ -402,9 +399,9 @@ TEST_F(LogIsVisibleTest, WorksWhenVerbosityIsWarning) {
402
399
 
403
400
  // Verifies that Log() behaves correctly for the given verbosity level
404
401
  // and log severity.
405
- void TestLogWithSeverity(const string& verbosity, LogSeverity severity,
402
+ void TestLogWithSeverity(const std::string& verbosity, LogSeverity severity,
406
403
  bool should_print) {
407
- const string old_flag = GMOCK_FLAG(verbose);
404
+ const std::string old_flag = GMOCK_FLAG(verbose);
408
405
  GMOCK_FLAG(verbose) = verbosity;
409
406
  CaptureStdout();
410
407
  Log(severity, "Test log.\n", 0);
@@ -423,7 +420,7 @@ void TestLogWithSeverity(const string& verbosity, LogSeverity severity,
423
420
  // Tests that when the stack_frames_to_skip parameter is negative,
424
421
  // Log() doesn't include the stack trace in the output.
425
422
  TEST(LogTest, NoStackTraceWhenStackFramesToSkipIsNegative) {
426
- const string saved_flag = GMOCK_FLAG(verbose);
423
+ const std::string saved_flag = GMOCK_FLAG(verbose);
427
424
  GMOCK_FLAG(verbose) = kInfoVerbosity;
428
425
  CaptureStdout();
429
426
  Log(kInfo, "Test log.\n", -1);
@@ -432,11 +429,11 @@ TEST(LogTest, NoStackTraceWhenStackFramesToSkipIsNegative) {
432
429
  }
433
430
 
434
431
  struct MockStackTraceGetter : testing::internal::OsStackTraceGetterInterface {
435
- virtual string CurrentStackTrace(int max_depth, int skip_count) {
432
+ std::string CurrentStackTrace(int max_depth, int skip_count) override {
436
433
  return (testing::Message() << max_depth << "::" << skip_count << "\n")
437
434
  .GetString();
438
435
  }
439
- virtual void UponLeavingGTest() {}
436
+ void UponLeavingGTest() override {}
440
437
  };
441
438
 
442
439
  // Tests that in opt mode, a positive stack_frames_to_skip argument is
@@ -447,11 +444,11 @@ TEST(LogTest, NoSkippingStackFrameInOptMode) {
447
444
 
448
445
  CaptureStdout();
449
446
  Log(kWarning, "Test log.\n", 100);
450
- const string log = GetCapturedStdout();
447
+ const std::string log = GetCapturedStdout();
451
448
 
452
- string expected_trace =
449
+ std::string expected_trace =
453
450
  (testing::Message() << GTEST_FLAG(stack_trace_depth) << "::").GetString();
454
- string expected_message =
451
+ std::string expected_message =
455
452
  "\nGMOCK WARNING:\n"
456
453
  "Test log.\n"
457
454
  "Stack trace:\n" +
@@ -474,7 +471,7 @@ TEST(LogTest, NoSkippingStackFrameInOptMode) {
474
471
  AllOf(Ge(expected_skip_count), Le(expected_skip_count + 10)));
475
472
 
476
473
  // Restores the default OS stack trace getter.
477
- GetUnitTestImpl()->set_os_stack_trace_getter(NULL);
474
+ GetUnitTestImpl()->set_os_stack_trace_getter(nullptr);
478
475
  }
479
476
 
480
477
  // Tests that all logs are printed when the value of the
@@ -521,12 +518,6 @@ TEST(TypeTraitsTest, is_reference) {
521
518
  EXPECT_TRUE(is_reference<const int&>::value);
522
519
  }
523
520
 
524
- TEST(TypeTraitsTest, is_pointer) {
525
- EXPECT_FALSE(is_pointer<int>::value);
526
- EXPECT_FALSE(is_pointer<char&>::value);
527
- EXPECT_TRUE(is_pointer<const int*>::value);
528
- }
529
-
530
521
  TEST(TypeTraitsTest, type_equals) {
531
522
  EXPECT_FALSE((type_equals<int, const int>::value));
532
523
  EXPECT_FALSE((type_equals<int, int&>::value));
@@ -547,7 +538,7 @@ TEST(TypeTraitsTest, remove_reference) {
547
538
  // Verifies that Log() behaves correctly for the given verbosity level
548
539
  // and log severity.
549
540
  std::string GrabOutput(void(*logger)(), const char* verbosity) {
550
- const string saved_flag = GMOCK_FLAG(verbose);
541
+ const std::string saved_flag = GMOCK_FLAG(verbose);
551
542
  GMOCK_FLAG(verbose) = verbosity;
552
543
  CaptureStdout();
553
544
  logger();
@@ -565,7 +556,7 @@ void ExpectCallLogger() {
565
556
  DummyMock mock;
566
557
  EXPECT_CALL(mock, TestMethod());
567
558
  mock.TestMethod();
568
- };
559
+ }
569
560
 
570
561
  // Verifies that EXPECT_CALL logs if the --gmock_verbose flag is set to "info".
571
562
  TEST(ExpectCallTest, LogsWhenVerbosityIsInfo) {
@@ -588,7 +579,7 @@ TEST(ExpectCallTest, DoesNotLogWhenVerbosityIsError) {
588
579
  void OnCallLogger() {
589
580
  DummyMock mock;
590
581
  ON_CALL(mock, TestMethod());
591
- };
582
+ }
592
583
 
593
584
  // Verifies that ON_CALL logs if the --gmock_verbose flag is set to "info".
594
585
  TEST(OnCallTest, LogsWhenVerbosityIsInfo) {
@@ -668,22 +659,25 @@ TEST(StlContainerViewTest, WorksForStaticNativeArray) {
668
659
 
669
660
  TEST(StlContainerViewTest, WorksForDynamicNativeArray) {
670
661
  StaticAssertTypeEq<NativeArray<int>,
671
- StlContainerView<tuple<const int*, size_t> >::type>();
672
- StaticAssertTypeEq<NativeArray<double>,
673
- StlContainerView<tuple<linked_ptr<double>, int> >::type>();
662
+ StlContainerView<std::tuple<const int*, size_t> >::type>();
663
+ StaticAssertTypeEq<
664
+ NativeArray<double>,
665
+ StlContainerView<std::tuple<std::shared_ptr<double>, int> >::type>();
674
666
 
675
- StaticAssertTypeEq<const NativeArray<int>,
676
- StlContainerView<tuple<const int*, int> >::const_reference>();
667
+ StaticAssertTypeEq<
668
+ const NativeArray<int>,
669
+ StlContainerView<std::tuple<const int*, int> >::const_reference>();
677
670
 
678
671
  int a1[3] = { 0, 1, 2 };
679
672
  const int* const p1 = a1;
680
- NativeArray<int> a2 = StlContainerView<tuple<const int*, int> >::
681
- ConstReference(make_tuple(p1, 3));
673
+ NativeArray<int> a2 =
674
+ StlContainerView<std::tuple<const int*, int> >::ConstReference(
675
+ std::make_tuple(p1, 3));
682
676
  EXPECT_EQ(3U, a2.size());
683
677
  EXPECT_EQ(a1, a2.begin());
684
678
 
685
- const NativeArray<int> a3 = StlContainerView<tuple<int*, size_t> >::
686
- Copy(make_tuple(static_cast<int*>(a1), 3));
679
+ const NativeArray<int> a3 = StlContainerView<std::tuple<int*, size_t> >::Copy(
680
+ std::make_tuple(static_cast<int*>(a1), 3));
687
681
  ASSERT_EQ(3U, a3.size());
688
682
  EXPECT_EQ(0, a3.begin()[0]);
689
683
  EXPECT_EQ(1, a3.begin()[1]);
@@ -694,6 +688,70 @@ TEST(StlContainerViewTest, WorksForDynamicNativeArray) {
694
688
  EXPECT_EQ(0, a3.begin()[0]);
695
689
  }
696
690
 
691
+ // Tests the Function template struct.
692
+
693
+ TEST(FunctionTest, Nullary) {
694
+ typedef Function<int()> F; // NOLINT
695
+ EXPECT_EQ(0u, F::ArgumentCount);
696
+ CompileAssertTypesEqual<int, F::Result>();
697
+ CompileAssertTypesEqual<std::tuple<>, F::ArgumentTuple>();
698
+ CompileAssertTypesEqual<std::tuple<>, F::ArgumentMatcherTuple>();
699
+ CompileAssertTypesEqual<void(), F::MakeResultVoid>();
700
+ CompileAssertTypesEqual<IgnoredValue(), F::MakeResultIgnoredValue>();
701
+ }
702
+
703
+ TEST(FunctionTest, Unary) {
704
+ typedef Function<int(bool)> F; // NOLINT
705
+ EXPECT_EQ(1u, F::ArgumentCount);
706
+ CompileAssertTypesEqual<int, F::Result>();
707
+ CompileAssertTypesEqual<bool, F::Arg<0>::type>();
708
+ CompileAssertTypesEqual<std::tuple<bool>, F::ArgumentTuple>();
709
+ CompileAssertTypesEqual<std::tuple<Matcher<bool> >,
710
+ F::ArgumentMatcherTuple>();
711
+ CompileAssertTypesEqual<void(bool), F::MakeResultVoid>(); // NOLINT
712
+ CompileAssertTypesEqual<IgnoredValue(bool), // NOLINT
713
+ F::MakeResultIgnoredValue>();
714
+ }
715
+
716
+ TEST(FunctionTest, Binary) {
717
+ typedef Function<int(bool, const long&)> F; // NOLINT
718
+ EXPECT_EQ(2u, F::ArgumentCount);
719
+ CompileAssertTypesEqual<int, F::Result>();
720
+ CompileAssertTypesEqual<bool, F::Arg<0>::type>();
721
+ CompileAssertTypesEqual<const long&, F::Arg<1>::type>(); // NOLINT
722
+ CompileAssertTypesEqual<std::tuple<bool, const long&>, // NOLINT
723
+ F::ArgumentTuple>();
724
+ CompileAssertTypesEqual<
725
+ std::tuple<Matcher<bool>, Matcher<const long&> >, // NOLINT
726
+ F::ArgumentMatcherTuple>();
727
+ CompileAssertTypesEqual<void(bool, const long&), F::MakeResultVoid>(); // NOLINT
728
+ CompileAssertTypesEqual<IgnoredValue(bool, const long&), // NOLINT
729
+ F::MakeResultIgnoredValue>();
730
+ }
731
+
732
+ TEST(FunctionTest, LongArgumentList) {
733
+ typedef Function<char(bool, int, char*, int&, const long&)> F; // NOLINT
734
+ EXPECT_EQ(5u, F::ArgumentCount);
735
+ CompileAssertTypesEqual<char, F::Result>();
736
+ CompileAssertTypesEqual<bool, F::Arg<0>::type>();
737
+ CompileAssertTypesEqual<int, F::Arg<1>::type>();
738
+ CompileAssertTypesEqual<char*, F::Arg<2>::type>();
739
+ CompileAssertTypesEqual<int&, F::Arg<3>::type>();
740
+ CompileAssertTypesEqual<const long&, F::Arg<4>::type>(); // NOLINT
741
+ CompileAssertTypesEqual<
742
+ std::tuple<bool, int, char*, int&, const long&>, // NOLINT
743
+ F::ArgumentTuple>();
744
+ CompileAssertTypesEqual<
745
+ std::tuple<Matcher<bool>, Matcher<int>, Matcher<char*>, Matcher<int&>,
746
+ Matcher<const long&> >, // NOLINT
747
+ F::ArgumentMatcherTuple>();
748
+ CompileAssertTypesEqual<void(bool, int, char*, int&, const long&), // NOLINT
749
+ F::MakeResultVoid>();
750
+ CompileAssertTypesEqual<
751
+ IgnoredValue(bool, int, char*, int&, const long&), // NOLINT
752
+ F::MakeResultIgnoredValue>();
753
+ }
754
+
697
755
  } // namespace
698
756
  } // namespace internal
699
757
  } // namespace testing
@@ -26,45 +26,47 @@
26
26
  // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
27
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
28
  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
- //
30
- // Author: wan@google.com (Zhanyong Wan)
29
+
31
30
 
32
31
  // Google Mock - a framework for writing C++ mock classes.
33
32
  //
34
33
  // This file tests some commonly used argument matchers.
35
34
 
35
+ // Silence warning C4244: 'initializing': conversion from 'int' to 'short',
36
+ // possible loss of data and C4100, unreferenced local parameter
37
+ #ifdef _MSC_VER
38
+ # pragma warning(push)
39
+ # pragma warning(disable:4244)
40
+ # pragma warning(disable:4100)
41
+ #endif
42
+
36
43
  #include "gmock/gmock-matchers.h"
37
44
  #include "gmock/gmock-more-matchers.h"
38
45
 
39
46
  #include <string.h>
40
47
  #include <time.h>
41
48
  #include <deque>
49
+ #include <forward_list>
42
50
  #include <functional>
43
51
  #include <iostream>
44
52
  #include <iterator>
45
53
  #include <limits>
46
54
  #include <list>
47
55
  #include <map>
56
+ #include <memory>
48
57
  #include <set>
49
58
  #include <sstream>
50
59
  #include <string>
60
+ #include <type_traits>
51
61
  #include <utility>
52
62
  #include <vector>
53
63
  #include "gmock/gmock.h"
54
64
  #include "gtest/gtest.h"
55
65
  #include "gtest/gtest-spi.h"
56
66
 
57
- #if GTEST_HAS_STD_FORWARD_LIST_
58
- # include <forward_list> // NOLINT
59
- #endif
60
-
61
67
  namespace testing {
62
-
63
- namespace internal {
64
- GTEST_API_ string JoinAsTuple(const Strings& fields);
65
- } // namespace internal
66
-
67
68
  namespace gmock_matchers_test {
69
+ namespace {
68
70
 
69
71
  using std::greater;
70
72
  using std::less;
@@ -78,66 +80,6 @@ using std::pair;
78
80
  using std::set;
79
81
  using std::stringstream;
80
82
  using std::vector;
81
- using testing::A;
82
- using testing::AllArgs;
83
- using testing::AllOf;
84
- using testing::An;
85
- using testing::AnyOf;
86
- using testing::ByRef;
87
- using testing::ContainsRegex;
88
- using testing::DoubleEq;
89
- using testing::DoubleNear;
90
- using testing::EndsWith;
91
- using testing::Eq;
92
- using testing::ExplainMatchResult;
93
- using testing::Field;
94
- using testing::FloatEq;
95
- using testing::FloatNear;
96
- using testing::Ge;
97
- using testing::Gt;
98
- using testing::HasSubstr;
99
- using testing::IsEmpty;
100
- using testing::IsNull;
101
- using testing::Key;
102
- using testing::Le;
103
- using testing::Lt;
104
- using testing::MakeMatcher;
105
- using testing::MakePolymorphicMatcher;
106
- using testing::MatchResultListener;
107
- using testing::Matcher;
108
- using testing::MatcherCast;
109
- using testing::MatcherInterface;
110
- using testing::Matches;
111
- using testing::MatchesRegex;
112
- using testing::NanSensitiveDoubleEq;
113
- using testing::NanSensitiveDoubleNear;
114
- using testing::NanSensitiveFloatEq;
115
- using testing::NanSensitiveFloatNear;
116
- using testing::Ne;
117
- using testing::Not;
118
- using testing::NotNull;
119
- using testing::Pair;
120
- using testing::Pointee;
121
- using testing::Pointwise;
122
- using testing::PolymorphicMatcher;
123
- using testing::Property;
124
- using testing::Ref;
125
- using testing::ResultOf;
126
- using testing::SizeIs;
127
- using testing::StartsWith;
128
- using testing::StrCaseEq;
129
- using testing::StrCaseNe;
130
- using testing::StrEq;
131
- using testing::StrNe;
132
- using testing::StringMatchResultListener;
133
- using testing::Truly;
134
- using testing::TypedEq;
135
- using testing::UnorderedPointwise;
136
- using testing::Value;
137
- using testing::WhenSorted;
138
- using testing::WhenSortedBy;
139
- using testing::_;
140
- using testing::get;
141
83
  using testing::internal::DummyMatchResultListener;
142
84
  using testing::internal::ElementMatcherPair;
143
85
  using testing::internal::ElementMatcherPairs;
@@ -145,30 +87,33 @@ using testing::internal::ExplainMatchFailureTupleTo;
145
87
  using testing::internal::FloatingEqMatcher;
146
88
  using testing::internal::FormatMatcherDescription;
147
89
  using testing::internal::IsReadableTypeName;
148
- using testing::internal::JoinAsTuple;
149
- using testing::internal::linked_ptr;
150
90
  using testing::internal::MatchMatrix;
91
+ using testing::internal::PredicateFormatterFromMatcher;
151
92
  using testing::internal::RE;
152
- using testing::internal::scoped_ptr;
153
93
  using testing::internal::StreamMatchResultListener;
154
94
  using testing::internal::Strings;
155
- using testing::internal::linked_ptr;
156
- using testing::internal::scoped_ptr;
157
- using testing::internal::string;
158
- using testing::make_tuple;
159
- using testing::tuple;
95
+
96
+ // Helper for testing container-valued matchers in mock method context. It is
97
+ // important to test matchers in this context, since it requires additional type
98
+ // deduction beyond what EXPECT_THAT does, thus making it more restrictive.
99
+ struct ContainerHelper {
100
+ MOCK_METHOD1(Call, void(std::vector<std::unique_ptr<int>>));
101
+ };
102
+
103
+ std::vector<std::unique_ptr<int>> MakeUniquePtrs(const std::vector<int>& ints) {
104
+ std::vector<std::unique_ptr<int>> pointers;
105
+ for (int i : ints) pointers.emplace_back(new int(i));
106
+ return pointers;
107
+ }
160
108
 
161
109
  // For testing ExplainMatchResultTo().
162
110
  class GreaterThanMatcher : public MatcherInterface<int> {
163
111
  public:
164
112
  explicit GreaterThanMatcher(int rhs) : rhs_(rhs) {}
165
113
 
166
- virtual void DescribeTo(ostream* os) const {
167
- *os << "is > " << rhs_;
168
- }
114
+ void DescribeTo(ostream* os) const override { *os << "is > " << rhs_; }
169
115
 
170
- virtual bool MatchAndExplain(int lhs,
171
- MatchResultListener* listener) const {
116
+ bool MatchAndExplain(int lhs, MatchResultListener* listener) const override {
172
117
  const int diff = lhs - rhs_;
173
118
  if (diff > 0) {
174
119
  *listener << "which is " << diff << " more than " << rhs_;
@@ -189,7 +134,7 @@ Matcher<int> GreaterThan(int n) {
189
134
  return MakeMatcher(new GreaterThanMatcher(n));
190
135
  }
191
136
 
192
- string OfType(const string& type_name) {
137
+ std::string OfType(const std::string& type_name) {
193
138
  #if GTEST_HAS_RTTI
194
139
  return " (of type " + type_name + ")";
195
140
  #else
@@ -199,28 +144,30 @@ string OfType(const string& type_name) {
199
144
 
200
145
  // Returns the description of the given matcher.
201
146
  template <typename T>
202
- string Describe(const Matcher<T>& m) {
203
- stringstream ss;
204
- m.DescribeTo(&ss);
205
- return ss.str();
147
+ std::string Describe(const Matcher<T>& m) {
148
+ return DescribeMatcher<T>(m);
206
149
  }
207
150
 
208
151
  // Returns the description of the negation of the given matcher.
209
152
  template <typename T>
210
- string DescribeNegation(const Matcher<T>& m) {
211
- stringstream ss;
212
- m.DescribeNegationTo(&ss);
213
- return ss.str();
153
+ std::string DescribeNegation(const Matcher<T>& m) {
154
+ return DescribeMatcher<T>(m, true);
214
155
  }
215
156
 
216
157
  // Returns the reason why x matches, or doesn't match, m.
217
158
  template <typename MatcherType, typename Value>
218
- string Explain(const MatcherType& m, const Value& x) {
159
+ std::string Explain(const MatcherType& m, const Value& x) {
219
160
  StringMatchResultListener listener;
220
161
  ExplainMatchResult(m, x, &listener);
221
162
  return listener.str();
222
163
  }
223
164
 
165
+ TEST(MonotonicMatcherTest, IsPrintable) {
166
+ stringstream ss;
167
+ ss << GreaterThan(5);
168
+ EXPECT_EQ("is > 5", ss.str());
169
+ }
170
+
224
171
  TEST(MatchResultListenerTest, StreamingWorks) {
225
172
  StringMatchResultListener listener;
226
173
  listener << "hi" << 5;
@@ -238,8 +185,8 @@ TEST(MatchResultListenerTest, StreamingWorks) {
238
185
  }
239
186
 
240
187
  TEST(MatchResultListenerTest, CanAccessUnderlyingStream) {
241
- EXPECT_TRUE(DummyMatchResultListener().stream() == NULL);
242
- EXPECT_TRUE(StreamMatchResultListener(NULL).stream() == NULL);
188
+ EXPECT_TRUE(DummyMatchResultListener().stream() == nullptr);
189
+ EXPECT_TRUE(StreamMatchResultListener(nullptr).stream() == nullptr);
243
190
 
244
191
  EXPECT_EQ(&std::cout, StreamMatchResultListener(&std::cout).stream());
245
192
  }
@@ -249,21 +196,19 @@ TEST(MatchResultListenerTest, IsInterestedWorks) {
249
196
  EXPECT_TRUE(StreamMatchResultListener(&std::cout).IsInterested());
250
197
 
251
198
  EXPECT_FALSE(DummyMatchResultListener().IsInterested());
252
- EXPECT_FALSE(StreamMatchResultListener(NULL).IsInterested());
199
+ EXPECT_FALSE(StreamMatchResultListener(nullptr).IsInterested());
253
200
  }
254
201
 
255
202
  // Makes sure that the MatcherInterface<T> interface doesn't
256
203
  // change.
257
204
  class EvenMatcherImpl : public MatcherInterface<int> {
258
205
  public:
259
- virtual bool MatchAndExplain(int x,
260
- MatchResultListener* /* listener */) const {
206
+ bool MatchAndExplain(int x,
207
+ MatchResultListener* /* listener */) const override {
261
208
  return x % 2 == 0;
262
209
  }
263
210
 
264
- virtual void DescribeTo(ostream* os) const {
265
- *os << "is an even number";
266
- }
211
+ void DescribeTo(ostream* os) const override { *os << "is an even number"; }
267
212
 
268
213
  // We deliberately don't define DescribeNegationTo() and
269
214
  // ExplainMatchResultTo() here, to make sure the definition of these
@@ -279,11 +224,11 @@ TEST(MatcherInterfaceTest, CanBeImplementedUsingPublishedAPI) {
279
224
 
280
225
  class NewEvenMatcherImpl : public MatcherInterface<int> {
281
226
  public:
282
- virtual bool MatchAndExplain(int x, MatchResultListener* listener) const {
227
+ bool MatchAndExplain(int x, MatchResultListener* listener) const override {
283
228
  const bool match = x % 2 == 0;
284
229
  // Verifies that we can stream to a listener directly.
285
230
  *listener << "value % " << 2;
286
- if (listener->stream() != NULL) {
231
+ if (listener->stream() != nullptr) {
287
232
  // Verifies that we can stream to a listener's underlying stream
288
233
  // too.
289
234
  *listener->stream() << " == " << (x % 2);
@@ -291,9 +236,7 @@ class NewEvenMatcherImpl : public MatcherInterface<int> {
291
236
  return match;
292
237
  }
293
238
 
294
- virtual void DescribeTo(ostream* os) const {
295
- *os << "is an even number";
296
- }
239
+ void DescribeTo(ostream* os) const override { *os << "is an even number"; }
297
240
  };
298
241
 
299
242
  TEST(MatcherInterfaceTest, CanBeImplementedUsingNewAPI) {
@@ -326,12 +269,28 @@ TEST(MatcherTest, CanBeImplicitlyConstructedFromValue) {
326
269
 
327
270
  // Tests that NULL can be used in place of Eq(NULL).
328
271
  TEST(MatcherTest, CanBeImplicitlyConstructedFromNULL) {
329
- Matcher<int*> m1 = NULL;
330
- EXPECT_TRUE(m1.Matches(NULL));
272
+ Matcher<int*> m1 = nullptr;
273
+ EXPECT_TRUE(m1.Matches(nullptr));
331
274
  int n = 0;
332
275
  EXPECT_FALSE(m1.Matches(&n));
333
276
  }
334
277
 
278
+ // Tests that matchers can be constructed from a variable that is not properly
279
+ // defined. This should be illegal, but many users rely on this accidentally.
280
+ struct Undefined {
281
+ virtual ~Undefined() = 0;
282
+ static const int kInt = 1;
283
+ };
284
+
285
+ TEST(MatcherTest, CanBeConstructedFromUndefinedVariable) {
286
+ Matcher<int> m1 = Undefined::kInt;
287
+ EXPECT_TRUE(m1.Matches(1));
288
+ EXPECT_FALSE(m1.Matches(2));
289
+ }
290
+
291
+ // Test that a matcher parameterized with an abstract class compiles.
292
+ TEST(MatcherTest, CanAcceptAbstractClass) { Matcher<const Undefined&> m = _; }
293
+
335
294
  // Tests that matchers are copyable.
336
295
  TEST(MatcherTest, IsCopyable) {
337
296
  // Tests the copy constructor.
@@ -365,72 +324,86 @@ TEST(MatcherTest, MatchAndExplain) {
365
324
  }
366
325
 
367
326
  // Tests that a C-string literal can be implicitly converted to a
368
- // Matcher<string> or Matcher<const string&>.
327
+ // Matcher<std::string> or Matcher<const std::string&>.
369
328
  TEST(StringMatcherTest, CanBeImplicitlyConstructedFromCStringLiteral) {
370
- Matcher<string> m1 = "hi";
329
+ Matcher<std::string> m1 = "hi";
371
330
  EXPECT_TRUE(m1.Matches("hi"));
372
331
  EXPECT_FALSE(m1.Matches("hello"));
373
332
 
374
- Matcher<const string&> m2 = "hi";
333
+ Matcher<const std::string&> m2 = "hi";
375
334
  EXPECT_TRUE(m2.Matches("hi"));
376
335
  EXPECT_FALSE(m2.Matches("hello"));
377
336
  }
378
337
 
379
338
  // Tests that a string object can be implicitly converted to a
380
- // Matcher<string> or Matcher<const string&>.
339
+ // Matcher<std::string> or Matcher<const std::string&>.
381
340
  TEST(StringMatcherTest, CanBeImplicitlyConstructedFromString) {
382
- Matcher<string> m1 = string("hi");
341
+ Matcher<std::string> m1 = std::string("hi");
383
342
  EXPECT_TRUE(m1.Matches("hi"));
384
343
  EXPECT_FALSE(m1.Matches("hello"));
385
344
 
386
- Matcher<const string&> m2 = string("hi");
345
+ Matcher<const std::string&> m2 = std::string("hi");
387
346
  EXPECT_TRUE(m2.Matches("hi"));
388
347
  EXPECT_FALSE(m2.Matches("hello"));
389
348
  }
390
349
 
391
- #if GTEST_HAS_STRING_PIECE_
350
+ #if GTEST_HAS_ABSL
392
351
  // Tests that a C-string literal can be implicitly converted to a
393
- // Matcher<StringPiece> or Matcher<const StringPiece&>.
394
- TEST(StringPieceMatcherTest, CanBeImplicitlyConstructedFromCStringLiteral) {
395
- Matcher<StringPiece> m1 = "cats";
352
+ // Matcher<absl::string_view> or Matcher<const absl::string_view&>.
353
+ TEST(StringViewMatcherTest, CanBeImplicitlyConstructedFromCStringLiteral) {
354
+ Matcher<absl::string_view> m1 = "cats";
396
355
  EXPECT_TRUE(m1.Matches("cats"));
397
356
  EXPECT_FALSE(m1.Matches("dogs"));
398
357
 
399
- Matcher<const StringPiece&> m2 = "cats";
358
+ Matcher<const absl::string_view&> m2 = "cats";
400
359
  EXPECT_TRUE(m2.Matches("cats"));
401
360
  EXPECT_FALSE(m2.Matches("dogs"));
402
361
  }
403
362
 
404
- // Tests that a string object can be implicitly converted to a
405
- // Matcher<StringPiece> or Matcher<const StringPiece&>.
406
- TEST(StringPieceMatcherTest, CanBeImplicitlyConstructedFromString) {
407
- Matcher<StringPiece> m1 = string("cats");
363
+ // Tests that a std::string object can be implicitly converted to a
364
+ // Matcher<absl::string_view> or Matcher<const absl::string_view&>.
365
+ TEST(StringViewMatcherTest, CanBeImplicitlyConstructedFromString) {
366
+ Matcher<absl::string_view> m1 = std::string("cats");
367
+ EXPECT_TRUE(m1.Matches("cats"));
368
+ EXPECT_FALSE(m1.Matches("dogs"));
369
+
370
+ Matcher<const absl::string_view&> m2 = std::string("cats");
371
+ EXPECT_TRUE(m2.Matches("cats"));
372
+ EXPECT_FALSE(m2.Matches("dogs"));
373
+ }
374
+
375
+ // Tests that a absl::string_view object can be implicitly converted to a
376
+ // Matcher<absl::string_view> or Matcher<const absl::string_view&>.
377
+ TEST(StringViewMatcherTest, CanBeImplicitlyConstructedFromStringView) {
378
+ Matcher<absl::string_view> m1 = absl::string_view("cats");
408
379
  EXPECT_TRUE(m1.Matches("cats"));
409
380
  EXPECT_FALSE(m1.Matches("dogs"));
410
381
 
411
- Matcher<const StringPiece&> m2 = string("cats");
382
+ Matcher<const absl::string_view&> m2 = absl::string_view("cats");
412
383
  EXPECT_TRUE(m2.Matches("cats"));
413
384
  EXPECT_FALSE(m2.Matches("dogs"));
414
385
  }
386
+ #endif // GTEST_HAS_ABSL
415
387
 
416
- // Tests that a StringPiece object can be implicitly converted to a
417
- // Matcher<StringPiece> or Matcher<const StringPiece&>.
418
- TEST(StringPieceMatcherTest, CanBeImplicitlyConstructedFromStringPiece) {
419
- Matcher<StringPiece> m1 = StringPiece("cats");
388
+ // Tests that a std::reference_wrapper<std::string> object can be implicitly
389
+ // converted to a Matcher<std::string> or Matcher<const std::string&> via Eq().
390
+ TEST(StringMatcherTest,
391
+ CanBeImplicitlyConstructedFromEqReferenceWrapperString) {
392
+ std::string value = "cats";
393
+ Matcher<std::string> m1 = Eq(std::ref(value));
420
394
  EXPECT_TRUE(m1.Matches("cats"));
421
395
  EXPECT_FALSE(m1.Matches("dogs"));
422
396
 
423
- Matcher<const StringPiece&> m2 = StringPiece("cats");
397
+ Matcher<const std::string&> m2 = Eq(std::ref(value));
424
398
  EXPECT_TRUE(m2.Matches("cats"));
425
399
  EXPECT_FALSE(m2.Matches("dogs"));
426
400
  }
427
- #endif // GTEST_HAS_STRING_PIECE_
428
401
 
429
402
  // Tests that MakeMatcher() constructs a Matcher<T> from a
430
403
  // MatcherInterface* without requiring the user to explicitly
431
404
  // write the type.
432
405
  TEST(MakeMatcherTest, ConstructsMatcherFromMatcherInterface) {
433
- const MatcherInterface<int>* dummy_impl = NULL;
406
+ const MatcherInterface<int>* dummy_impl = nullptr;
434
407
  Matcher<int> m = MakeMatcher(dummy_impl);
435
408
  }
436
409
 
@@ -489,7 +462,7 @@ class PolymorphicIsEvenImpl {
489
462
  bool MatchAndExplain(const T& x, MatchResultListener* listener) const {
490
463
  // Verifies that we can stream to the listener directly.
491
464
  *listener << "% " << 2;
492
- if (listener->stream() != NULL) {
465
+ if (listener->stream() != nullptr) {
493
466
  // Verifies that we can stream to the listener's underlying stream
494
467
  // too.
495
468
  *listener->stream() << " == " << (x % 2);
@@ -609,11 +582,76 @@ TEST(MatcherCastTest, FromSameType) {
609
582
  EXPECT_FALSE(m2.Matches(1));
610
583
  }
611
584
 
585
+ // Tests that MatcherCast<T>(m) works when m is a value of the same type as the
586
+ // value type of the Matcher.
587
+ TEST(MatcherCastTest, FromAValue) {
588
+ Matcher<int> m = MatcherCast<int>(42);
589
+ EXPECT_TRUE(m.Matches(42));
590
+ EXPECT_FALSE(m.Matches(239));
591
+ }
592
+
593
+ // Tests that MatcherCast<T>(m) works when m is a value of the type implicitly
594
+ // convertible to the value type of the Matcher.
595
+ TEST(MatcherCastTest, FromAnImplicitlyConvertibleValue) {
596
+ const int kExpected = 'c';
597
+ Matcher<int> m = MatcherCast<int>('c');
598
+ EXPECT_TRUE(m.Matches(kExpected));
599
+ EXPECT_FALSE(m.Matches(kExpected + 1));
600
+ }
601
+
602
+ struct NonImplicitlyConstructibleTypeWithOperatorEq {
603
+ friend bool operator==(
604
+ const NonImplicitlyConstructibleTypeWithOperatorEq& /* ignored */,
605
+ int rhs) {
606
+ return 42 == rhs;
607
+ }
608
+ friend bool operator==(
609
+ int lhs,
610
+ const NonImplicitlyConstructibleTypeWithOperatorEq& /* ignored */) {
611
+ return lhs == 42;
612
+ }
613
+ };
614
+
615
+ // Tests that MatcherCast<T>(m) works when m is a neither a matcher nor
616
+ // implicitly convertible to the value type of the Matcher, but the value type
617
+ // of the matcher has operator==() overload accepting m.
618
+ TEST(MatcherCastTest, NonImplicitlyConstructibleTypeWithOperatorEq) {
619
+ Matcher<NonImplicitlyConstructibleTypeWithOperatorEq> m1 =
620
+ MatcherCast<NonImplicitlyConstructibleTypeWithOperatorEq>(42);
621
+ EXPECT_TRUE(m1.Matches(NonImplicitlyConstructibleTypeWithOperatorEq()));
622
+
623
+ Matcher<NonImplicitlyConstructibleTypeWithOperatorEq> m2 =
624
+ MatcherCast<NonImplicitlyConstructibleTypeWithOperatorEq>(239);
625
+ EXPECT_FALSE(m2.Matches(NonImplicitlyConstructibleTypeWithOperatorEq()));
626
+
627
+ // When updating the following lines please also change the comment to
628
+ // namespace convertible_from_any.
629
+ Matcher<int> m3 =
630
+ MatcherCast<int>(NonImplicitlyConstructibleTypeWithOperatorEq());
631
+ EXPECT_TRUE(m3.Matches(42));
632
+ EXPECT_FALSE(m3.Matches(239));
633
+ }
634
+
635
+ // ConvertibleFromAny does not work with MSVC. resulting in
636
+ // error C2440: 'initializing': cannot convert from 'Eq' to 'M'
637
+ // No constructor could take the source type, or constructor overload
638
+ // resolution was ambiguous
639
+
640
+ #if !defined _MSC_VER
641
+
642
+ // The below ConvertibleFromAny struct is implicitly constructible from anything
643
+ // and when in the same namespace can interact with other tests. In particular,
644
+ // if it is in the same namespace as other tests and one removes
645
+ // NonImplicitlyConstructibleTypeWithOperatorEq::operator==(int lhs, ...);
646
+ // then the corresponding test still compiles (and it should not!) by implicitly
647
+ // converting NonImplicitlyConstructibleTypeWithOperatorEq to ConvertibleFromAny
648
+ // in m3.Matcher().
649
+ namespace convertible_from_any {
612
650
  // Implicitly convertible from any type.
613
651
  struct ConvertibleFromAny {
614
652
  ConvertibleFromAny(int a_value) : value(a_value) {}
615
653
  template <typename T>
616
- explicit ConvertibleFromAny(const T& /*a_value*/) : value(-1) {
654
+ ConvertibleFromAny(const T& /*a_value*/) : value(-1) {
617
655
  ADD_FAILURE() << "Conversion constructor called";
618
656
  }
619
657
  int value;
@@ -639,6 +677,9 @@ TEST(MatcherCastTest, FromConvertibleFromAny) {
639
677
  EXPECT_TRUE(m.Matches(ConvertibleFromAny(1)));
640
678
  EXPECT_FALSE(m.Matches(ConvertibleFromAny(2)));
641
679
  }
680
+ } // namespace convertible_from_any
681
+
682
+ #endif // !defined _MSC_VER
642
683
 
643
684
  struct IntReferenceWrapper {
644
685
  IntReferenceWrapper(const int& a_value) : value(&a_value) {}
@@ -744,6 +785,9 @@ TEST(SafeMatcherCastTest, FromSameType) {
744
785
  EXPECT_FALSE(m2.Matches(1));
745
786
  }
746
787
 
788
+ #if !defined _MSC_VER
789
+
790
+ namespace convertible_from_any {
747
791
  TEST(SafeMatcherCastTest, ConversionConstructorIsUsed) {
748
792
  Matcher<ConvertibleFromAny> m = SafeMatcherCast<ConvertibleFromAny>(1);
749
793
  EXPECT_TRUE(m.Matches(ConvertibleFromAny(1)));
@@ -756,6 +800,9 @@ TEST(SafeMatcherCastTest, FromConvertibleFromAny) {
756
800
  EXPECT_TRUE(m.Matches(ConvertibleFromAny(1)));
757
801
  EXPECT_FALSE(m.Matches(ConvertibleFromAny(2)));
758
802
  }
803
+ } // namespace convertible_from_any
804
+
805
+ #endif // !defined _MSC_VER
759
806
 
760
807
  TEST(SafeMatcherCastTest, ValueIsNotCopied) {
761
808
  int n = 42;
@@ -767,7 +814,7 @@ TEST(SafeMatcherCastTest, ValueIsNotCopied) {
767
814
  TEST(ExpectThat, TakesLiterals) {
768
815
  EXPECT_THAT(1, 1);
769
816
  EXPECT_THAT(1.0, 1.0);
770
- EXPECT_THAT(string(), "");
817
+ EXPECT_THAT(std::string(), "");
771
818
  }
772
819
 
773
820
  TEST(ExpectThat, TakesFunctions) {
@@ -867,15 +914,13 @@ class Unprintable {
867
914
  public:
868
915
  Unprintable() : c_('a') {}
869
916
 
917
+ bool operator==(const Unprintable& /* rhs */) const { return true; }
918
+ // -Wunused-private-field: dummy accessor for `c_`.
919
+ char dummy_c() { return c_; }
870
920
  private:
871
921
  char c_;
872
922
  };
873
923
 
874
- inline bool operator==(const Unprintable& /* lhs */,
875
- const Unprintable& /* rhs */) {
876
- return true;
877
- }
878
-
879
924
  TEST(EqTest, CanDescribeSelf) {
880
925
  Matcher<Unprintable> m = Eq(Unprintable());
881
926
  EXPECT_EQ("is equal to 1-byte object <61>", Describe(m));
@@ -914,7 +959,7 @@ TEST(TypedEqTest, CanDescribeSelf) {
914
959
  // Type<T>::IsTypeOf(v) compiles iff the type of value v is T, where T
915
960
  // is a "bare" type (i.e. not in the form of const U or U&). If v's
916
961
  // type is not T, the compiler will generate a message about
917
- // "undefined referece".
962
+ // "undefined reference".
918
963
  template <typename T>
919
964
  struct Type {
920
965
  static bool IsTypeOf(const T& /* v */) { return true; }
@@ -973,7 +1018,7 @@ TEST(LeTest, CanDescribeSelf) {
973
1018
 
974
1019
  // Tests that Lt(v) matches anything < v.
975
1020
  TEST(LtTest, ImplementsLessThan) {
976
- Matcher<const string&> m1 = Lt("Hello");
1021
+ Matcher<const std::string&> m1 = Lt("Hello");
977
1022
  EXPECT_TRUE(m1.Matches("Abc"));
978
1023
  EXPECT_FALSE(m1.Matches("Hello"));
979
1024
  EXPECT_FALSE(m1.Matches("Hello, world!"));
@@ -999,61 +1044,72 @@ TEST(NeTest, CanDescribeSelf) {
999
1044
  EXPECT_EQ("isn't equal to 5", Describe(m));
1000
1045
  }
1001
1046
 
1047
+ class MoveOnly {
1048
+ public:
1049
+ explicit MoveOnly(int i) : i_(i) {}
1050
+ MoveOnly(const MoveOnly&) = delete;
1051
+ MoveOnly(MoveOnly&&) = default;
1052
+ MoveOnly& operator=(const MoveOnly&) = delete;
1053
+ MoveOnly& operator=(MoveOnly&&) = default;
1054
+
1055
+ bool operator==(const MoveOnly& other) const { return i_ == other.i_; }
1056
+ bool operator!=(const MoveOnly& other) const { return i_ != other.i_; }
1057
+ bool operator<(const MoveOnly& other) const { return i_ < other.i_; }
1058
+ bool operator<=(const MoveOnly& other) const { return i_ <= other.i_; }
1059
+ bool operator>(const MoveOnly& other) const { return i_ > other.i_; }
1060
+ bool operator>=(const MoveOnly& other) const { return i_ >= other.i_; }
1061
+
1062
+ private:
1063
+ int i_;
1064
+ };
1065
+
1066
+ struct MoveHelper {
1067
+ MOCK_METHOD1(Call, void(MoveOnly));
1068
+ };
1069
+
1070
+ TEST(ComparisonBaseTest, WorksWithMoveOnly) {
1071
+ MoveOnly m{0};
1072
+ MoveHelper helper;
1073
+
1074
+ EXPECT_CALL(helper, Call(Eq(ByRef(m))));
1075
+ helper.Call(MoveOnly(0));
1076
+ EXPECT_CALL(helper, Call(Ne(ByRef(m))));
1077
+ helper.Call(MoveOnly(1));
1078
+ EXPECT_CALL(helper, Call(Le(ByRef(m))));
1079
+ helper.Call(MoveOnly(0));
1080
+ EXPECT_CALL(helper, Call(Lt(ByRef(m))));
1081
+ helper.Call(MoveOnly(-1));
1082
+ EXPECT_CALL(helper, Call(Ge(ByRef(m))));
1083
+ helper.Call(MoveOnly(0));
1084
+ EXPECT_CALL(helper, Call(Gt(ByRef(m))));
1085
+ helper.Call(MoveOnly(1));
1086
+ }
1087
+
1002
1088
  // Tests that IsNull() matches any NULL pointer of any type.
1003
1089
  TEST(IsNullTest, MatchesNullPointer) {
1004
1090
  Matcher<int*> m1 = IsNull();
1005
- int* p1 = NULL;
1091
+ int* p1 = nullptr;
1006
1092
  int n = 0;
1007
1093
  EXPECT_TRUE(m1.Matches(p1));
1008
1094
  EXPECT_FALSE(m1.Matches(&n));
1009
1095
 
1010
1096
  Matcher<const char*> m2 = IsNull();
1011
- const char* p2 = NULL;
1097
+ const char* p2 = nullptr;
1012
1098
  EXPECT_TRUE(m2.Matches(p2));
1013
1099
  EXPECT_FALSE(m2.Matches("hi"));
1014
1100
 
1015
- #if !GTEST_OS_SYMBIAN
1016
- // Nokia's Symbian compiler generates:
1017
- // gmock-matchers.h: ambiguous access to overloaded function
1018
- // gmock-matchers.h: 'testing::Matcher<void *>::Matcher(void *)'
1019
- // gmock-matchers.h: 'testing::Matcher<void *>::Matcher(const testing::
1020
- // MatcherInterface<void *> *)'
1021
- // gmock-matchers.h: (point of instantiation: 'testing::
1022
- // gmock_matchers_test::IsNullTest_MatchesNullPointer_Test::TestBody()')
1023
- // gmock-matchers.h: (instantiating: 'testing::PolymorphicMatc
1024
1101
  Matcher<void*> m3 = IsNull();
1025
- void* p3 = NULL;
1102
+ void* p3 = nullptr;
1026
1103
  EXPECT_TRUE(m3.Matches(p3));
1027
1104
  EXPECT_FALSE(m3.Matches(reinterpret_cast<void*>(0xbeef)));
1028
- #endif
1029
- }
1030
-
1031
- TEST(IsNullTest, LinkedPtr) {
1032
- const Matcher<linked_ptr<int> > m = IsNull();
1033
- const linked_ptr<int> null_p;
1034
- const linked_ptr<int> non_null_p(new int);
1035
-
1036
- EXPECT_TRUE(m.Matches(null_p));
1037
- EXPECT_FALSE(m.Matches(non_null_p));
1038
- }
1039
-
1040
- TEST(IsNullTest, ReferenceToConstLinkedPtr) {
1041
- const Matcher<const linked_ptr<double>&> m = IsNull();
1042
- const linked_ptr<double> null_p;
1043
- const linked_ptr<double> non_null_p(new double);
1044
-
1045
- EXPECT_TRUE(m.Matches(null_p));
1046
- EXPECT_FALSE(m.Matches(non_null_p));
1047
1105
  }
1048
1106
 
1049
- #if GTEST_HAS_STD_FUNCTION_
1050
1107
  TEST(IsNullTest, StdFunction) {
1051
1108
  const Matcher<std::function<void()>> m = IsNull();
1052
1109
 
1053
1110
  EXPECT_TRUE(m.Matches(std::function<void()>()));
1054
1111
  EXPECT_FALSE(m.Matches([]{}));
1055
1112
  }
1056
- #endif // GTEST_HAS_STD_FUNCTION_
1057
1113
 
1058
1114
  // Tests that IsNull() describes itself properly.
1059
1115
  TEST(IsNullTest, CanDescribeSelf) {
@@ -1065,43 +1121,41 @@ TEST(IsNullTest, CanDescribeSelf) {
1065
1121
  // Tests that NotNull() matches any non-NULL pointer of any type.
1066
1122
  TEST(NotNullTest, MatchesNonNullPointer) {
1067
1123
  Matcher<int*> m1 = NotNull();
1068
- int* p1 = NULL;
1124
+ int* p1 = nullptr;
1069
1125
  int n = 0;
1070
1126
  EXPECT_FALSE(m1.Matches(p1));
1071
1127
  EXPECT_TRUE(m1.Matches(&n));
1072
1128
 
1073
1129
  Matcher<const char*> m2 = NotNull();
1074
- const char* p2 = NULL;
1130
+ const char* p2 = nullptr;
1075
1131
  EXPECT_FALSE(m2.Matches(p2));
1076
1132
  EXPECT_TRUE(m2.Matches("hi"));
1077
1133
  }
1078
1134
 
1079
1135
  TEST(NotNullTest, LinkedPtr) {
1080
- const Matcher<linked_ptr<int> > m = NotNull();
1081
- const linked_ptr<int> null_p;
1082
- const linked_ptr<int> non_null_p(new int);
1136
+ const Matcher<std::shared_ptr<int>> m = NotNull();
1137
+ const std::shared_ptr<int> null_p;
1138
+ const std::shared_ptr<int> non_null_p(new int);
1083
1139
 
1084
1140
  EXPECT_FALSE(m.Matches(null_p));
1085
1141
  EXPECT_TRUE(m.Matches(non_null_p));
1086
1142
  }
1087
1143
 
1088
1144
  TEST(NotNullTest, ReferenceToConstLinkedPtr) {
1089
- const Matcher<const linked_ptr<double>&> m = NotNull();
1090
- const linked_ptr<double> null_p;
1091
- const linked_ptr<double> non_null_p(new double);
1145
+ const Matcher<const std::shared_ptr<double>&> m = NotNull();
1146
+ const std::shared_ptr<double> null_p;
1147
+ const std::shared_ptr<double> non_null_p(new double);
1092
1148
 
1093
1149
  EXPECT_FALSE(m.Matches(null_p));
1094
1150
  EXPECT_TRUE(m.Matches(non_null_p));
1095
1151
  }
1096
1152
 
1097
- #if GTEST_HAS_STD_FUNCTION_
1098
1153
  TEST(NotNullTest, StdFunction) {
1099
1154
  const Matcher<std::function<void()>> m = NotNull();
1100
1155
 
1101
1156
  EXPECT_TRUE(m.Matches([]{}));
1102
1157
  EXPECT_FALSE(m.Matches(std::function<void()>()));
1103
1158
  }
1104
- #endif // GTEST_HAS_STD_FUNCTION_
1105
1159
 
1106
1160
  // Tests that NotNull() describes itself properly.
1107
1161
  TEST(NotNullTest, CanDescribeSelf) {
@@ -1125,7 +1179,7 @@ TEST(RefTest, CanDescribeSelf) {
1125
1179
  Matcher<int&> m = Ref(n);
1126
1180
  stringstream ss;
1127
1181
  ss << "references the variable @" << &n << " 5";
1128
- EXPECT_EQ(string(ss.str()), Describe(m));
1182
+ EXPECT_EQ(ss.str(), Describe(m));
1129
1183
  }
1130
1184
 
1131
1185
  // Test that Ref(non_const_varialbe) can be used as a matcher for a
@@ -1169,39 +1223,58 @@ TEST(RefTest, ExplainsResult) {
1169
1223
  // Tests string comparison matchers.
1170
1224
 
1171
1225
  TEST(StrEqTest, MatchesEqualString) {
1172
- Matcher<const char*> m = StrEq(string("Hello"));
1226
+ Matcher<const char*> m = StrEq(std::string("Hello"));
1173
1227
  EXPECT_TRUE(m.Matches("Hello"));
1174
1228
  EXPECT_FALSE(m.Matches("hello"));
1175
- EXPECT_FALSE(m.Matches(NULL));
1229
+ EXPECT_FALSE(m.Matches(nullptr));
1176
1230
 
1177
- Matcher<const string&> m2 = StrEq("Hello");
1231
+ Matcher<const std::string&> m2 = StrEq("Hello");
1178
1232
  EXPECT_TRUE(m2.Matches("Hello"));
1179
1233
  EXPECT_FALSE(m2.Matches("Hi"));
1234
+
1235
+ #if GTEST_HAS_ABSL
1236
+ Matcher<const absl::string_view&> m3 = StrEq("Hello");
1237
+ EXPECT_TRUE(m3.Matches(absl::string_view("Hello")));
1238
+ EXPECT_FALSE(m3.Matches(absl::string_view("hello")));
1239
+ EXPECT_FALSE(m3.Matches(absl::string_view()));
1240
+
1241
+ Matcher<const absl::string_view&> m_empty = StrEq("");
1242
+ EXPECT_TRUE(m_empty.Matches(absl::string_view("")));
1243
+ EXPECT_TRUE(m_empty.Matches(absl::string_view()));
1244
+ EXPECT_FALSE(m_empty.Matches(absl::string_view("hello")));
1245
+ #endif // GTEST_HAS_ABSL
1180
1246
  }
1181
1247
 
1182
1248
  TEST(StrEqTest, CanDescribeSelf) {
1183
- Matcher<string> m = StrEq("Hi-\'\"?\\\a\b\f\n\r\t\v\xD3");
1249
+ Matcher<std::string> m = StrEq("Hi-\'\"?\\\a\b\f\n\r\t\v\xD3");
1184
1250
  EXPECT_EQ("is equal to \"Hi-\'\\\"?\\\\\\a\\b\\f\\n\\r\\t\\v\\xD3\"",
1185
1251
  Describe(m));
1186
1252
 
1187
- string str("01204500800");
1253
+ std::string str("01204500800");
1188
1254
  str[3] = '\0';
1189
- Matcher<string> m2 = StrEq(str);
1255
+ Matcher<std::string> m2 = StrEq(str);
1190
1256
  EXPECT_EQ("is equal to \"012\\04500800\"", Describe(m2));
1191
1257
  str[0] = str[6] = str[7] = str[9] = str[10] = '\0';
1192
- Matcher<string> m3 = StrEq(str);
1258
+ Matcher<std::string> m3 = StrEq(str);
1193
1259
  EXPECT_EQ("is equal to \"\\012\\045\\0\\08\\0\\0\"", Describe(m3));
1194
1260
  }
1195
1261
 
1196
1262
  TEST(StrNeTest, MatchesUnequalString) {
1197
1263
  Matcher<const char*> m = StrNe("Hello");
1198
1264
  EXPECT_TRUE(m.Matches(""));
1199
- EXPECT_TRUE(m.Matches(NULL));
1265
+ EXPECT_TRUE(m.Matches(nullptr));
1200
1266
  EXPECT_FALSE(m.Matches("Hello"));
1201
1267
 
1202
- Matcher<string> m2 = StrNe(string("Hello"));
1268
+ Matcher<std::string> m2 = StrNe(std::string("Hello"));
1203
1269
  EXPECT_TRUE(m2.Matches("hello"));
1204
1270
  EXPECT_FALSE(m2.Matches("Hello"));
1271
+
1272
+ #if GTEST_HAS_ABSL
1273
+ Matcher<const absl::string_view> m3 = StrNe("Hello");
1274
+ EXPECT_TRUE(m3.Matches(absl::string_view("")));
1275
+ EXPECT_TRUE(m3.Matches(absl::string_view()));
1276
+ EXPECT_FALSE(m3.Matches(absl::string_view("Hello")));
1277
+ #endif // GTEST_HAS_ABSL
1205
1278
  }
1206
1279
 
1207
1280
  TEST(StrNeTest, CanDescribeSelf) {
@@ -1210,57 +1283,73 @@ TEST(StrNeTest, CanDescribeSelf) {
1210
1283
  }
1211
1284
 
1212
1285
  TEST(StrCaseEqTest, MatchesEqualStringIgnoringCase) {
1213
- Matcher<const char*> m = StrCaseEq(string("Hello"));
1286
+ Matcher<const char*> m = StrCaseEq(std::string("Hello"));
1214
1287
  EXPECT_TRUE(m.Matches("Hello"));
1215
1288
  EXPECT_TRUE(m.Matches("hello"));
1216
1289
  EXPECT_FALSE(m.Matches("Hi"));
1217
- EXPECT_FALSE(m.Matches(NULL));
1290
+ EXPECT_FALSE(m.Matches(nullptr));
1218
1291
 
1219
- Matcher<const string&> m2 = StrCaseEq("Hello");
1292
+ Matcher<const std::string&> m2 = StrCaseEq("Hello");
1220
1293
  EXPECT_TRUE(m2.Matches("hello"));
1221
1294
  EXPECT_FALSE(m2.Matches("Hi"));
1295
+
1296
+ #if GTEST_HAS_ABSL
1297
+ Matcher<const absl::string_view&> m3 = StrCaseEq(std::string("Hello"));
1298
+ EXPECT_TRUE(m3.Matches(absl::string_view("Hello")));
1299
+ EXPECT_TRUE(m3.Matches(absl::string_view("hello")));
1300
+ EXPECT_FALSE(m3.Matches(absl::string_view("Hi")));
1301
+ EXPECT_FALSE(m3.Matches(absl::string_view()));
1302
+ #endif // GTEST_HAS_ABSL
1222
1303
  }
1223
1304
 
1224
1305
  TEST(StrCaseEqTest, MatchesEqualStringWith0IgnoringCase) {
1225
- string str1("oabocdooeoo");
1226
- string str2("OABOCDOOEOO");
1227
- Matcher<const string&> m0 = StrCaseEq(str1);
1228
- EXPECT_FALSE(m0.Matches(str2 + string(1, '\0')));
1306
+ std::string str1("oabocdooeoo");
1307
+ std::string str2("OABOCDOOEOO");
1308
+ Matcher<const std::string&> m0 = StrCaseEq(str1);
1309
+ EXPECT_FALSE(m0.Matches(str2 + std::string(1, '\0')));
1229
1310
 
1230
1311
  str1[3] = str2[3] = '\0';
1231
- Matcher<const string&> m1 = StrCaseEq(str1);
1312
+ Matcher<const std::string&> m1 = StrCaseEq(str1);
1232
1313
  EXPECT_TRUE(m1.Matches(str2));
1233
1314
 
1234
1315
  str1[0] = str1[6] = str1[7] = str1[10] = '\0';
1235
1316
  str2[0] = str2[6] = str2[7] = str2[10] = '\0';
1236
- Matcher<const string&> m2 = StrCaseEq(str1);
1317
+ Matcher<const std::string&> m2 = StrCaseEq(str1);
1237
1318
  str1[9] = str2[9] = '\0';
1238
1319
  EXPECT_FALSE(m2.Matches(str2));
1239
1320
 
1240
- Matcher<const string&> m3 = StrCaseEq(str1);
1321
+ Matcher<const std::string&> m3 = StrCaseEq(str1);
1241
1322
  EXPECT_TRUE(m3.Matches(str2));
1242
1323
 
1243
1324
  EXPECT_FALSE(m3.Matches(str2 + "x"));
1244
1325
  str2.append(1, '\0');
1245
1326
  EXPECT_FALSE(m3.Matches(str2));
1246
- EXPECT_FALSE(m3.Matches(string(str2, 0, 9)));
1327
+ EXPECT_FALSE(m3.Matches(std::string(str2, 0, 9)));
1247
1328
  }
1248
1329
 
1249
1330
  TEST(StrCaseEqTest, CanDescribeSelf) {
1250
- Matcher<string> m = StrCaseEq("Hi");
1331
+ Matcher<std::string> m = StrCaseEq("Hi");
1251
1332
  EXPECT_EQ("is equal to (ignoring case) \"Hi\"", Describe(m));
1252
1333
  }
1253
1334
 
1254
1335
  TEST(StrCaseNeTest, MatchesUnequalStringIgnoringCase) {
1255
1336
  Matcher<const char*> m = StrCaseNe("Hello");
1256
1337
  EXPECT_TRUE(m.Matches("Hi"));
1257
- EXPECT_TRUE(m.Matches(NULL));
1338
+ EXPECT_TRUE(m.Matches(nullptr));
1258
1339
  EXPECT_FALSE(m.Matches("Hello"));
1259
1340
  EXPECT_FALSE(m.Matches("hello"));
1260
1341
 
1261
- Matcher<string> m2 = StrCaseNe(string("Hello"));
1342
+ Matcher<std::string> m2 = StrCaseNe(std::string("Hello"));
1262
1343
  EXPECT_TRUE(m2.Matches(""));
1263
1344
  EXPECT_FALSE(m2.Matches("Hello"));
1345
+
1346
+ #if GTEST_HAS_ABSL
1347
+ Matcher<const absl::string_view> m3 = StrCaseNe("Hello");
1348
+ EXPECT_TRUE(m3.Matches(absl::string_view("Hi")));
1349
+ EXPECT_TRUE(m3.Matches(absl::string_view()));
1350
+ EXPECT_FALSE(m3.Matches(absl::string_view("Hello")));
1351
+ EXPECT_FALSE(m3.Matches(absl::string_view("hello")));
1352
+ #endif // GTEST_HAS_ABSL
1264
1353
  }
1265
1354
 
1266
1355
  TEST(StrCaseNeTest, CanDescribeSelf) {
@@ -1270,13 +1359,17 @@ TEST(StrCaseNeTest, CanDescribeSelf) {
1270
1359
 
1271
1360
  // Tests that HasSubstr() works for matching string-typed values.
1272
1361
  TEST(HasSubstrTest, WorksForStringClasses) {
1273
- const Matcher<string> m1 = HasSubstr("foo");
1274
- EXPECT_TRUE(m1.Matches(string("I love food.")));
1275
- EXPECT_FALSE(m1.Matches(string("tofo")));
1362
+ const Matcher<std::string> m1 = HasSubstr("foo");
1363
+ EXPECT_TRUE(m1.Matches(std::string("I love food.")));
1364
+ EXPECT_FALSE(m1.Matches(std::string("tofo")));
1276
1365
 
1277
1366
  const Matcher<const std::string&> m2 = HasSubstr("foo");
1278
1367
  EXPECT_TRUE(m2.Matches(std::string("I love food.")));
1279
1368
  EXPECT_FALSE(m2.Matches(std::string("tofo")));
1369
+
1370
+ const Matcher<std::string> m_empty = HasSubstr("");
1371
+ EXPECT_TRUE(m_empty.Matches(std::string()));
1372
+ EXPECT_TRUE(m_empty.Matches(std::string("not empty")));
1280
1373
  }
1281
1374
 
1282
1375
  // Tests that HasSubstr() works for matching C-string-typed values.
@@ -1284,17 +1377,42 @@ TEST(HasSubstrTest, WorksForCStrings) {
1284
1377
  const Matcher<char*> m1 = HasSubstr("foo");
1285
1378
  EXPECT_TRUE(m1.Matches(const_cast<char*>("I love food.")));
1286
1379
  EXPECT_FALSE(m1.Matches(const_cast<char*>("tofo")));
1287
- EXPECT_FALSE(m1.Matches(NULL));
1380
+ EXPECT_FALSE(m1.Matches(nullptr));
1288
1381
 
1289
1382
  const Matcher<const char*> m2 = HasSubstr("foo");
1290
1383
  EXPECT_TRUE(m2.Matches("I love food."));
1291
1384
  EXPECT_FALSE(m2.Matches("tofo"));
1292
- EXPECT_FALSE(m2.Matches(NULL));
1385
+ EXPECT_FALSE(m2.Matches(nullptr));
1386
+
1387
+ const Matcher<const char*> m_empty = HasSubstr("");
1388
+ EXPECT_TRUE(m_empty.Matches("not empty"));
1389
+ EXPECT_TRUE(m_empty.Matches(""));
1390
+ EXPECT_FALSE(m_empty.Matches(nullptr));
1391
+ }
1392
+
1393
+ #if GTEST_HAS_ABSL
1394
+ // Tests that HasSubstr() works for matching absl::string_view-typed values.
1395
+ TEST(HasSubstrTest, WorksForStringViewClasses) {
1396
+ const Matcher<absl::string_view> m1 = HasSubstr("foo");
1397
+ EXPECT_TRUE(m1.Matches(absl::string_view("I love food.")));
1398
+ EXPECT_FALSE(m1.Matches(absl::string_view("tofo")));
1399
+ EXPECT_FALSE(m1.Matches(absl::string_view()));
1400
+
1401
+ const Matcher<const absl::string_view&> m2 = HasSubstr("foo");
1402
+ EXPECT_TRUE(m2.Matches(absl::string_view("I love food.")));
1403
+ EXPECT_FALSE(m2.Matches(absl::string_view("tofo")));
1404
+ EXPECT_FALSE(m2.Matches(absl::string_view()));
1405
+
1406
+ const Matcher<const absl::string_view&> m3 = HasSubstr("");
1407
+ EXPECT_TRUE(m3.Matches(absl::string_view("foo")));
1408
+ EXPECT_TRUE(m3.Matches(absl::string_view("")));
1409
+ EXPECT_TRUE(m3.Matches(absl::string_view()));
1293
1410
  }
1411
+ #endif // GTEST_HAS_ABSL
1294
1412
 
1295
1413
  // Tests that HasSubstr(s) describes itself properly.
1296
1414
  TEST(HasSubstrTest, CanDescribeSelf) {
1297
- Matcher<string> m = HasSubstr("foo\n\"");
1415
+ Matcher<std::string> m = HasSubstr("foo\n\"");
1298
1416
  EXPECT_EQ("has substring \"foo\\n\\\"\"", Describe(m));
1299
1417
  }
1300
1418
 
@@ -1320,6 +1438,38 @@ TEST(KeyTest, MatchesCorrectly) {
1320
1438
  EXPECT_THAT(p, Not(Key(Lt(25))));
1321
1439
  }
1322
1440
 
1441
+ TEST(KeyTest, WorksWithMoveOnly) {
1442
+ pair<std::unique_ptr<int>, std::unique_ptr<int>> p;
1443
+ EXPECT_THAT(p, Key(Eq(nullptr)));
1444
+ }
1445
+
1446
+ template <size_t I>
1447
+ struct Tag {};
1448
+
1449
+ struct PairWithGet {
1450
+ int member_1;
1451
+ std::string member_2;
1452
+ using first_type = int;
1453
+ using second_type = std::string;
1454
+
1455
+ const int& GetImpl(Tag<0>) const { return member_1; }
1456
+ const std::string& GetImpl(Tag<1>) const { return member_2; }
1457
+ };
1458
+ template <size_t I>
1459
+ auto get(const PairWithGet& value) -> decltype(value.GetImpl(Tag<I>())) {
1460
+ return value.GetImpl(Tag<I>());
1461
+ }
1462
+ TEST(PairTest, MatchesPairWithGetCorrectly) {
1463
+ PairWithGet p{25, "foo"};
1464
+ EXPECT_THAT(p, Key(25));
1465
+ EXPECT_THAT(p, Not(Key(42)));
1466
+ EXPECT_THAT(p, Key(Ge(20)));
1467
+ EXPECT_THAT(p, Not(Key(Lt(25))));
1468
+
1469
+ std::vector<PairWithGet> v = {{11, "Foo"}, {29, "gMockIsBestMock"}};
1470
+ EXPECT_THAT(v, Contains(Key(29)));
1471
+ }
1472
+
1323
1473
  TEST(KeyTest, SafelyCastsInnerMatcher) {
1324
1474
  Matcher<int> is_positive = Gt(0);
1325
1475
  Matcher<int> is_negative = Lt(0);
@@ -1436,6 +1586,12 @@ TEST(PairTest, MatchesCorrectly) {
1436
1586
  EXPECT_THAT(p, Not(Pair(Lt(13), HasSubstr("a"))));
1437
1587
  }
1438
1588
 
1589
+ TEST(PairTest, WorksWithMoveOnly) {
1590
+ pair<std::unique_ptr<int>, std::unique_ptr<int>> p;
1591
+ p.second.reset(new int(7));
1592
+ EXPECT_THAT(p, Pair(Eq(nullptr), Ne(nullptr)));
1593
+ }
1594
+
1439
1595
  TEST(PairTest, SafelyCastsInnerMatchers) {
1440
1596
  Matcher<int> is_positive = Gt(0);
1441
1597
  Matcher<int> is_negative = Lt(0);
@@ -1457,20 +1613,44 @@ TEST(PairTest, InsideContainsUsingMap) {
1457
1613
  EXPECT_THAT(container, Not(Contains(Pair(3, _))));
1458
1614
  }
1459
1615
 
1616
+ TEST(ContainsTest, WorksWithMoveOnly) {
1617
+ ContainerHelper helper;
1618
+ EXPECT_CALL(helper, Call(Contains(Pointee(2))));
1619
+ helper.Call(MakeUniquePtrs({1, 2}));
1620
+ }
1621
+
1622
+ TEST(PairTest, UseGetInsteadOfMembers) {
1623
+ PairWithGet pair{7, "ABC"};
1624
+ EXPECT_THAT(pair, Pair(7, "ABC"));
1625
+ EXPECT_THAT(pair, Pair(Ge(7), HasSubstr("AB")));
1626
+ EXPECT_THAT(pair, Not(Pair(Lt(7), "ABC")));
1627
+
1628
+ std::vector<PairWithGet> v = {{11, "Foo"}, {29, "gMockIsBestMock"}};
1629
+ EXPECT_THAT(v,
1630
+ ElementsAre(Pair(11, std::string("Foo")), Pair(Ge(10), Not(""))));
1631
+ }
1632
+
1460
1633
  // Tests StartsWith(s).
1461
1634
 
1462
1635
  TEST(StartsWithTest, MatchesStringWithGivenPrefix) {
1463
- const Matcher<const char*> m1 = StartsWith(string(""));
1636
+ const Matcher<const char*> m1 = StartsWith(std::string(""));
1464
1637
  EXPECT_TRUE(m1.Matches("Hi"));
1465
1638
  EXPECT_TRUE(m1.Matches(""));
1466
- EXPECT_FALSE(m1.Matches(NULL));
1639
+ EXPECT_FALSE(m1.Matches(nullptr));
1467
1640
 
1468
- const Matcher<const string&> m2 = StartsWith("Hi");
1641
+ const Matcher<const std::string&> m2 = StartsWith("Hi");
1469
1642
  EXPECT_TRUE(m2.Matches("Hi"));
1470
1643
  EXPECT_TRUE(m2.Matches("Hi Hi!"));
1471
1644
  EXPECT_TRUE(m2.Matches("High"));
1472
1645
  EXPECT_FALSE(m2.Matches("H"));
1473
1646
  EXPECT_FALSE(m2.Matches(" Hi"));
1647
+
1648
+ #if GTEST_HAS_ABSL
1649
+ const Matcher<absl::string_view> m_empty = StartsWith("");
1650
+ EXPECT_TRUE(m_empty.Matches(absl::string_view()));
1651
+ EXPECT_TRUE(m_empty.Matches(absl::string_view("")));
1652
+ EXPECT_TRUE(m_empty.Matches(absl::string_view("not empty")));
1653
+ #endif // GTEST_HAS_ABSL
1474
1654
  }
1475
1655
 
1476
1656
  TEST(StartsWithTest, CanDescribeSelf) {
@@ -1484,14 +1664,22 @@ TEST(EndsWithTest, MatchesStringWithGivenSuffix) {
1484
1664
  const Matcher<const char*> m1 = EndsWith("");
1485
1665
  EXPECT_TRUE(m1.Matches("Hi"));
1486
1666
  EXPECT_TRUE(m1.Matches(""));
1487
- EXPECT_FALSE(m1.Matches(NULL));
1667
+ EXPECT_FALSE(m1.Matches(nullptr));
1488
1668
 
1489
- const Matcher<const string&> m2 = EndsWith(string("Hi"));
1669
+ const Matcher<const std::string&> m2 = EndsWith(std::string("Hi"));
1490
1670
  EXPECT_TRUE(m2.Matches("Hi"));
1491
1671
  EXPECT_TRUE(m2.Matches("Wow Hi Hi"));
1492
1672
  EXPECT_TRUE(m2.Matches("Super Hi"));
1493
1673
  EXPECT_FALSE(m2.Matches("i"));
1494
1674
  EXPECT_FALSE(m2.Matches("Hi "));
1675
+
1676
+ #if GTEST_HAS_ABSL
1677
+ const Matcher<const absl::string_view&> m4 = EndsWith("");
1678
+ EXPECT_TRUE(m4.Matches("Hi"));
1679
+ EXPECT_TRUE(m4.Matches(""));
1680
+ EXPECT_TRUE(m4.Matches(absl::string_view()));
1681
+ EXPECT_TRUE(m4.Matches(absl::string_view("")));
1682
+ #endif // GTEST_HAS_ABSL
1495
1683
  }
1496
1684
 
1497
1685
  TEST(EndsWithTest, CanDescribeSelf) {
@@ -1505,34 +1693,61 @@ TEST(MatchesRegexTest, MatchesStringMatchingGivenRegex) {
1505
1693
  const Matcher<const char*> m1 = MatchesRegex("a.*z");
1506
1694
  EXPECT_TRUE(m1.Matches("az"));
1507
1695
  EXPECT_TRUE(m1.Matches("abcz"));
1508
- EXPECT_FALSE(m1.Matches(NULL));
1696
+ EXPECT_FALSE(m1.Matches(nullptr));
1509
1697
 
1510
- const Matcher<const string&> m2 = MatchesRegex(new RE("a.*z"));
1698
+ const Matcher<const std::string&> m2 = MatchesRegex(new RE("a.*z"));
1511
1699
  EXPECT_TRUE(m2.Matches("azbz"));
1512
1700
  EXPECT_FALSE(m2.Matches("az1"));
1513
1701
  EXPECT_FALSE(m2.Matches("1az"));
1702
+
1703
+ #if GTEST_HAS_ABSL
1704
+ const Matcher<const absl::string_view&> m3 = MatchesRegex("a.*z");
1705
+ EXPECT_TRUE(m3.Matches(absl::string_view("az")));
1706
+ EXPECT_TRUE(m3.Matches(absl::string_view("abcz")));
1707
+ EXPECT_FALSE(m3.Matches(absl::string_view("1az")));
1708
+ EXPECT_FALSE(m3.Matches(absl::string_view()));
1709
+ const Matcher<const absl::string_view&> m4 = MatchesRegex("");
1710
+ EXPECT_TRUE(m4.Matches(absl::string_view("")));
1711
+ EXPECT_TRUE(m4.Matches(absl::string_view()));
1712
+ #endif // GTEST_HAS_ABSL
1514
1713
  }
1515
1714
 
1516
1715
  TEST(MatchesRegexTest, CanDescribeSelf) {
1517
- Matcher<const std::string> m1 = MatchesRegex(string("Hi.*"));
1716
+ Matcher<const std::string> m1 = MatchesRegex(std::string("Hi.*"));
1518
1717
  EXPECT_EQ("matches regular expression \"Hi.*\"", Describe(m1));
1519
1718
 
1520
1719
  Matcher<const char*> m2 = MatchesRegex(new RE("a.*"));
1521
1720
  EXPECT_EQ("matches regular expression \"a.*\"", Describe(m2));
1721
+
1722
+ #if GTEST_HAS_ABSL
1723
+ Matcher<const absl::string_view> m3 = MatchesRegex(new RE("0.*"));
1724
+ EXPECT_EQ("matches regular expression \"0.*\"", Describe(m3));
1725
+ #endif // GTEST_HAS_ABSL
1522
1726
  }
1523
1727
 
1524
1728
  // Tests ContainsRegex().
1525
1729
 
1526
1730
  TEST(ContainsRegexTest, MatchesStringContainingGivenRegex) {
1527
- const Matcher<const char*> m1 = ContainsRegex(string("a.*z"));
1731
+ const Matcher<const char*> m1 = ContainsRegex(std::string("a.*z"));
1528
1732
  EXPECT_TRUE(m1.Matches("az"));
1529
1733
  EXPECT_TRUE(m1.Matches("0abcz1"));
1530
- EXPECT_FALSE(m1.Matches(NULL));
1734
+ EXPECT_FALSE(m1.Matches(nullptr));
1531
1735
 
1532
- const Matcher<const string&> m2 = ContainsRegex(new RE("a.*z"));
1736
+ const Matcher<const std::string&> m2 = ContainsRegex(new RE("a.*z"));
1533
1737
  EXPECT_TRUE(m2.Matches("azbz"));
1534
1738
  EXPECT_TRUE(m2.Matches("az1"));
1535
1739
  EXPECT_FALSE(m2.Matches("1a"));
1740
+
1741
+ #if GTEST_HAS_ABSL
1742
+ const Matcher<const absl::string_view&> m3 = ContainsRegex(new RE("a.*z"));
1743
+ EXPECT_TRUE(m3.Matches(absl::string_view("azbz")));
1744
+ EXPECT_TRUE(m3.Matches(absl::string_view("az1")));
1745
+ EXPECT_FALSE(m3.Matches(absl::string_view("1a")));
1746
+ EXPECT_FALSE(m3.Matches(absl::string_view()));
1747
+ const Matcher<const absl::string_view&> m4 = ContainsRegex("");
1748
+ EXPECT_TRUE(m4.Matches(absl::string_view("")));
1749
+ EXPECT_TRUE(m4.Matches(absl::string_view()));
1750
+ #endif // GTEST_HAS_ABSL
1536
1751
  }
1537
1752
 
1538
1753
  TEST(ContainsRegexTest, CanDescribeSelf) {
@@ -1541,6 +1756,11 @@ TEST(ContainsRegexTest, CanDescribeSelf) {
1541
1756
 
1542
1757
  Matcher<const char*> m2 = ContainsRegex(new RE("a.*"));
1543
1758
  EXPECT_EQ("contains regular expression \"a.*\"", Describe(m2));
1759
+
1760
+ #if GTEST_HAS_ABSL
1761
+ Matcher<const absl::string_view> m3 = ContainsRegex(new RE("0.*"));
1762
+ EXPECT_EQ("contains regular expression \"0.*\"", Describe(m3));
1763
+ #endif // GTEST_HAS_ABSL
1544
1764
  }
1545
1765
 
1546
1766
  // Tests for wide strings.
@@ -1549,7 +1769,7 @@ TEST(StdWideStrEqTest, MatchesEqual) {
1549
1769
  Matcher<const wchar_t*> m = StrEq(::std::wstring(L"Hello"));
1550
1770
  EXPECT_TRUE(m.Matches(L"Hello"));
1551
1771
  EXPECT_FALSE(m.Matches(L"hello"));
1552
- EXPECT_FALSE(m.Matches(NULL));
1772
+ EXPECT_FALSE(m.Matches(nullptr));
1553
1773
 
1554
1774
  Matcher<const ::std::wstring&> m2 = StrEq(L"Hello");
1555
1775
  EXPECT_TRUE(m2.Matches(L"Hello"));
@@ -1589,7 +1809,7 @@ TEST(StdWideStrEqTest, CanDescribeSelf) {
1589
1809
  TEST(StdWideStrNeTest, MatchesUnequalString) {
1590
1810
  Matcher<const wchar_t*> m = StrNe(L"Hello");
1591
1811
  EXPECT_TRUE(m.Matches(L""));
1592
- EXPECT_TRUE(m.Matches(NULL));
1812
+ EXPECT_TRUE(m.Matches(nullptr));
1593
1813
  EXPECT_FALSE(m.Matches(L"Hello"));
1594
1814
 
1595
1815
  Matcher< ::std::wstring> m2 = StrNe(::std::wstring(L"Hello"));
@@ -1607,7 +1827,7 @@ TEST(StdWideStrCaseEqTest, MatchesEqualStringIgnoringCase) {
1607
1827
  EXPECT_TRUE(m.Matches(L"Hello"));
1608
1828
  EXPECT_TRUE(m.Matches(L"hello"));
1609
1829
  EXPECT_FALSE(m.Matches(L"Hi"));
1610
- EXPECT_FALSE(m.Matches(NULL));
1830
+ EXPECT_FALSE(m.Matches(nullptr));
1611
1831
 
1612
1832
  Matcher<const ::std::wstring&> m2 = StrCaseEq(L"Hello");
1613
1833
  EXPECT_TRUE(m2.Matches(L"hello"));
@@ -1647,7 +1867,7 @@ TEST(StdWideStrCaseEqTest, CanDescribeSelf) {
1647
1867
  TEST(StdWideStrCaseNeTest, MatchesUnequalStringIgnoringCase) {
1648
1868
  Matcher<const wchar_t*> m = StrCaseNe(L"Hello");
1649
1869
  EXPECT_TRUE(m.Matches(L"Hi"));
1650
- EXPECT_TRUE(m.Matches(NULL));
1870
+ EXPECT_TRUE(m.Matches(nullptr));
1651
1871
  EXPECT_FALSE(m.Matches(L"Hello"));
1652
1872
  EXPECT_FALSE(m.Matches(L"hello"));
1653
1873
 
@@ -1677,12 +1897,12 @@ TEST(StdWideHasSubstrTest, WorksForCStrings) {
1677
1897
  const Matcher<wchar_t*> m1 = HasSubstr(L"foo");
1678
1898
  EXPECT_TRUE(m1.Matches(const_cast<wchar_t*>(L"I love food.")));
1679
1899
  EXPECT_FALSE(m1.Matches(const_cast<wchar_t*>(L"tofo")));
1680
- EXPECT_FALSE(m1.Matches(NULL));
1900
+ EXPECT_FALSE(m1.Matches(nullptr));
1681
1901
 
1682
1902
  const Matcher<const wchar_t*> m2 = HasSubstr(L"foo");
1683
1903
  EXPECT_TRUE(m2.Matches(L"I love food."));
1684
1904
  EXPECT_FALSE(m2.Matches(L"tofo"));
1685
- EXPECT_FALSE(m2.Matches(NULL));
1905
+ EXPECT_FALSE(m2.Matches(nullptr));
1686
1906
  }
1687
1907
 
1688
1908
  // Tests that HasSubstr(s) describes itself properly.
@@ -1697,7 +1917,7 @@ TEST(StdWideStartsWithTest, MatchesStringWithGivenPrefix) {
1697
1917
  const Matcher<const wchar_t*> m1 = StartsWith(::std::wstring(L""));
1698
1918
  EXPECT_TRUE(m1.Matches(L"Hi"));
1699
1919
  EXPECT_TRUE(m1.Matches(L""));
1700
- EXPECT_FALSE(m1.Matches(NULL));
1920
+ EXPECT_FALSE(m1.Matches(nullptr));
1701
1921
 
1702
1922
  const Matcher<const ::std::wstring&> m2 = StartsWith(L"Hi");
1703
1923
  EXPECT_TRUE(m2.Matches(L"Hi"));
@@ -1718,7 +1938,7 @@ TEST(StdWideEndsWithTest, MatchesStringWithGivenSuffix) {
1718
1938
  const Matcher<const wchar_t*> m1 = EndsWith(L"");
1719
1939
  EXPECT_TRUE(m1.Matches(L"Hi"));
1720
1940
  EXPECT_TRUE(m1.Matches(L""));
1721
- EXPECT_FALSE(m1.Matches(NULL));
1941
+ EXPECT_FALSE(m1.Matches(nullptr));
1722
1942
 
1723
1943
  const Matcher<const ::std::wstring&> m2 = EndsWith(::std::wstring(L"Hi"));
1724
1944
  EXPECT_TRUE(m2.Matches(L"Hi"));
@@ -1735,199 +1955,7 @@ TEST(StdWideEndsWithTest, CanDescribeSelf) {
1735
1955
 
1736
1956
  #endif // GTEST_HAS_STD_WSTRING
1737
1957
 
1738
- #if GTEST_HAS_GLOBAL_WSTRING
1739
- TEST(GlobalWideStrEqTest, MatchesEqual) {
1740
- Matcher<const wchar_t*> m = StrEq(::wstring(L"Hello"));
1741
- EXPECT_TRUE(m.Matches(L"Hello"));
1742
- EXPECT_FALSE(m.Matches(L"hello"));
1743
- EXPECT_FALSE(m.Matches(NULL));
1744
-
1745
- Matcher<const ::wstring&> m2 = StrEq(L"Hello");
1746
- EXPECT_TRUE(m2.Matches(L"Hello"));
1747
- EXPECT_FALSE(m2.Matches(L"Hi"));
1748
-
1749
- Matcher<const ::wstring&> m3 = StrEq(L"\xD3\x576\x8D3\xC74D");
1750
- EXPECT_TRUE(m3.Matches(L"\xD3\x576\x8D3\xC74D"));
1751
- EXPECT_FALSE(m3.Matches(L"\xD3\x576\x8D3\xC74E"));
1752
-
1753
- ::wstring str(L"01204500800");
1754
- str[3] = L'\0';
1755
- Matcher<const ::wstring&> m4 = StrEq(str);
1756
- EXPECT_TRUE(m4.Matches(str));
1757
- str[0] = str[6] = str[7] = str[9] = str[10] = L'\0';
1758
- Matcher<const ::wstring&> m5 = StrEq(str);
1759
- EXPECT_TRUE(m5.Matches(str));
1760
- }
1761
-
1762
- TEST(GlobalWideStrEqTest, CanDescribeSelf) {
1763
- Matcher< ::wstring> m = StrEq(L"Hi-\'\"?\\\a\b\f\n\r\t\v");
1764
- EXPECT_EQ("is equal to L\"Hi-\'\\\"?\\\\\\a\\b\\f\\n\\r\\t\\v\"",
1765
- Describe(m));
1766
-
1767
- Matcher< ::wstring> m2 = StrEq(L"\xD3\x576\x8D3\xC74D");
1768
- EXPECT_EQ("is equal to L\"\\xD3\\x576\\x8D3\\xC74D\"",
1769
- Describe(m2));
1770
-
1771
- ::wstring str(L"01204500800");
1772
- str[3] = L'\0';
1773
- Matcher<const ::wstring&> m4 = StrEq(str);
1774
- EXPECT_EQ("is equal to L\"012\\04500800\"", Describe(m4));
1775
- str[0] = str[6] = str[7] = str[9] = str[10] = L'\0';
1776
- Matcher<const ::wstring&> m5 = StrEq(str);
1777
- EXPECT_EQ("is equal to L\"\\012\\045\\0\\08\\0\\0\"", Describe(m5));
1778
- }
1779
-
1780
- TEST(GlobalWideStrNeTest, MatchesUnequalString) {
1781
- Matcher<const wchar_t*> m = StrNe(L"Hello");
1782
- EXPECT_TRUE(m.Matches(L""));
1783
- EXPECT_TRUE(m.Matches(NULL));
1784
- EXPECT_FALSE(m.Matches(L"Hello"));
1785
-
1786
- Matcher< ::wstring> m2 = StrNe(::wstring(L"Hello"));
1787
- EXPECT_TRUE(m2.Matches(L"hello"));
1788
- EXPECT_FALSE(m2.Matches(L"Hello"));
1789
- }
1790
-
1791
- TEST(GlobalWideStrNeTest, CanDescribeSelf) {
1792
- Matcher<const wchar_t*> m = StrNe(L"Hi");
1793
- EXPECT_EQ("isn't equal to L\"Hi\"", Describe(m));
1794
- }
1795
-
1796
- TEST(GlobalWideStrCaseEqTest, MatchesEqualStringIgnoringCase) {
1797
- Matcher<const wchar_t*> m = StrCaseEq(::wstring(L"Hello"));
1798
- EXPECT_TRUE(m.Matches(L"Hello"));
1799
- EXPECT_TRUE(m.Matches(L"hello"));
1800
- EXPECT_FALSE(m.Matches(L"Hi"));
1801
- EXPECT_FALSE(m.Matches(NULL));
1802
-
1803
- Matcher<const ::wstring&> m2 = StrCaseEq(L"Hello");
1804
- EXPECT_TRUE(m2.Matches(L"hello"));
1805
- EXPECT_FALSE(m2.Matches(L"Hi"));
1806
- }
1807
-
1808
- TEST(GlobalWideStrCaseEqTest, MatchesEqualStringWith0IgnoringCase) {
1809
- ::wstring str1(L"oabocdooeoo");
1810
- ::wstring str2(L"OABOCDOOEOO");
1811
- Matcher<const ::wstring&> m0 = StrCaseEq(str1);
1812
- EXPECT_FALSE(m0.Matches(str2 + ::wstring(1, L'\0')));
1813
-
1814
- str1[3] = str2[3] = L'\0';
1815
- Matcher<const ::wstring&> m1 = StrCaseEq(str1);
1816
- EXPECT_TRUE(m1.Matches(str2));
1817
-
1818
- str1[0] = str1[6] = str1[7] = str1[10] = L'\0';
1819
- str2[0] = str2[6] = str2[7] = str2[10] = L'\0';
1820
- Matcher<const ::wstring&> m2 = StrCaseEq(str1);
1821
- str1[9] = str2[9] = L'\0';
1822
- EXPECT_FALSE(m2.Matches(str2));
1823
-
1824
- Matcher<const ::wstring&> m3 = StrCaseEq(str1);
1825
- EXPECT_TRUE(m3.Matches(str2));
1826
-
1827
- EXPECT_FALSE(m3.Matches(str2 + L"x"));
1828
- str2.append(1, L'\0');
1829
- EXPECT_FALSE(m3.Matches(str2));
1830
- EXPECT_FALSE(m3.Matches(::wstring(str2, 0, 9)));
1831
- }
1832
-
1833
- TEST(GlobalWideStrCaseEqTest, CanDescribeSelf) {
1834
- Matcher< ::wstring> m = StrCaseEq(L"Hi");
1835
- EXPECT_EQ("is equal to (ignoring case) L\"Hi\"", Describe(m));
1836
- }
1837
-
1838
- TEST(GlobalWideStrCaseNeTest, MatchesUnequalStringIgnoringCase) {
1839
- Matcher<const wchar_t*> m = StrCaseNe(L"Hello");
1840
- EXPECT_TRUE(m.Matches(L"Hi"));
1841
- EXPECT_TRUE(m.Matches(NULL));
1842
- EXPECT_FALSE(m.Matches(L"Hello"));
1843
- EXPECT_FALSE(m.Matches(L"hello"));
1844
-
1845
- Matcher< ::wstring> m2 = StrCaseNe(::wstring(L"Hello"));
1846
- EXPECT_TRUE(m2.Matches(L""));
1847
- EXPECT_FALSE(m2.Matches(L"Hello"));
1848
- }
1849
-
1850
- TEST(GlobalWideStrCaseNeTest, CanDescribeSelf) {
1851
- Matcher<const wchar_t*> m = StrCaseNe(L"Hi");
1852
- EXPECT_EQ("isn't equal to (ignoring case) L\"Hi\"", Describe(m));
1853
- }
1854
-
1855
- // Tests that HasSubstr() works for matching wstring-typed values.
1856
- TEST(GlobalWideHasSubstrTest, WorksForStringClasses) {
1857
- const Matcher< ::wstring> m1 = HasSubstr(L"foo");
1858
- EXPECT_TRUE(m1.Matches(::wstring(L"I love food.")));
1859
- EXPECT_FALSE(m1.Matches(::wstring(L"tofo")));
1860
-
1861
- const Matcher<const ::wstring&> m2 = HasSubstr(L"foo");
1862
- EXPECT_TRUE(m2.Matches(::wstring(L"I love food.")));
1863
- EXPECT_FALSE(m2.Matches(::wstring(L"tofo")));
1864
- }
1865
-
1866
- // Tests that HasSubstr() works for matching C-wide-string-typed values.
1867
- TEST(GlobalWideHasSubstrTest, WorksForCStrings) {
1868
- const Matcher<wchar_t*> m1 = HasSubstr(L"foo");
1869
- EXPECT_TRUE(m1.Matches(const_cast<wchar_t*>(L"I love food.")));
1870
- EXPECT_FALSE(m1.Matches(const_cast<wchar_t*>(L"tofo")));
1871
- EXPECT_FALSE(m1.Matches(NULL));
1872
-
1873
- const Matcher<const wchar_t*> m2 = HasSubstr(L"foo");
1874
- EXPECT_TRUE(m2.Matches(L"I love food."));
1875
- EXPECT_FALSE(m2.Matches(L"tofo"));
1876
- EXPECT_FALSE(m2.Matches(NULL));
1877
- }
1878
-
1879
- // Tests that HasSubstr(s) describes itself properly.
1880
- TEST(GlobalWideHasSubstrTest, CanDescribeSelf) {
1881
- Matcher< ::wstring> m = HasSubstr(L"foo\n\"");
1882
- EXPECT_EQ("has substring L\"foo\\n\\\"\"", Describe(m));
1883
- }
1884
-
1885
- // Tests StartsWith(s).
1886
-
1887
- TEST(GlobalWideStartsWithTest, MatchesStringWithGivenPrefix) {
1888
- const Matcher<const wchar_t*> m1 = StartsWith(::wstring(L""));
1889
- EXPECT_TRUE(m1.Matches(L"Hi"));
1890
- EXPECT_TRUE(m1.Matches(L""));
1891
- EXPECT_FALSE(m1.Matches(NULL));
1892
-
1893
- const Matcher<const ::wstring&> m2 = StartsWith(L"Hi");
1894
- EXPECT_TRUE(m2.Matches(L"Hi"));
1895
- EXPECT_TRUE(m2.Matches(L"Hi Hi!"));
1896
- EXPECT_TRUE(m2.Matches(L"High"));
1897
- EXPECT_FALSE(m2.Matches(L"H"));
1898
- EXPECT_FALSE(m2.Matches(L" Hi"));
1899
- }
1900
-
1901
- TEST(GlobalWideStartsWithTest, CanDescribeSelf) {
1902
- Matcher<const ::wstring> m = StartsWith(L"Hi");
1903
- EXPECT_EQ("starts with L\"Hi\"", Describe(m));
1904
- }
1905
-
1906
- // Tests EndsWith(s).
1907
-
1908
- TEST(GlobalWideEndsWithTest, MatchesStringWithGivenSuffix) {
1909
- const Matcher<const wchar_t*> m1 = EndsWith(L"");
1910
- EXPECT_TRUE(m1.Matches(L"Hi"));
1911
- EXPECT_TRUE(m1.Matches(L""));
1912
- EXPECT_FALSE(m1.Matches(NULL));
1913
-
1914
- const Matcher<const ::wstring&> m2 = EndsWith(::wstring(L"Hi"));
1915
- EXPECT_TRUE(m2.Matches(L"Hi"));
1916
- EXPECT_TRUE(m2.Matches(L"Wow Hi Hi"));
1917
- EXPECT_TRUE(m2.Matches(L"Super Hi"));
1918
- EXPECT_FALSE(m2.Matches(L"i"));
1919
- EXPECT_FALSE(m2.Matches(L"Hi "));
1920
- }
1921
-
1922
- TEST(GlobalWideEndsWithTest, CanDescribeSelf) {
1923
- Matcher<const ::wstring> m = EndsWith(L"Hi");
1924
- EXPECT_EQ("ends with L\"Hi\"", Describe(m));
1925
- }
1926
-
1927
- #endif // GTEST_HAS_GLOBAL_WSTRING
1928
-
1929
-
1930
- typedef ::testing::tuple<long, int> Tuple2; // NOLINT
1958
+ typedef ::std::tuple<long, int> Tuple2; // NOLINT
1931
1959
 
1932
1960
  // Tests that Eq() matches a 2-tuple where the first field == the
1933
1961
  // second field.
@@ -2018,6 +2046,157 @@ TEST(Ne2Test, CanDescribeSelf) {
2018
2046
  EXPECT_EQ("are an unequal pair", Describe(m));
2019
2047
  }
2020
2048
 
2049
+ TEST(PairMatchBaseTest, WorksWithMoveOnly) {
2050
+ using Pointers = std::tuple<std::unique_ptr<int>, std::unique_ptr<int>>;
2051
+ Matcher<Pointers> matcher = Eq();
2052
+ Pointers pointers;
2053
+ // Tested values don't matter; the point is that matcher does not copy the
2054
+ // matched values.
2055
+ EXPECT_TRUE(matcher.Matches(pointers));
2056
+ }
2057
+
2058
+ // Tests that FloatEq() matches a 2-tuple where
2059
+ // FloatEq(first field) matches the second field.
2060
+ TEST(FloatEq2Test, MatchesEqualArguments) {
2061
+ typedef ::std::tuple<float, float> Tpl;
2062
+ Matcher<const Tpl&> m = FloatEq();
2063
+ EXPECT_TRUE(m.Matches(Tpl(1.0f, 1.0f)));
2064
+ EXPECT_TRUE(m.Matches(Tpl(0.3f, 0.1f + 0.1f + 0.1f)));
2065
+ EXPECT_FALSE(m.Matches(Tpl(1.1f, 1.0f)));
2066
+ }
2067
+
2068
+ // Tests that FloatEq() describes itself properly.
2069
+ TEST(FloatEq2Test, CanDescribeSelf) {
2070
+ Matcher<const ::std::tuple<float, float>&> m = FloatEq();
2071
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2072
+ }
2073
+
2074
+ // Tests that NanSensitiveFloatEq() matches a 2-tuple where
2075
+ // NanSensitiveFloatEq(first field) matches the second field.
2076
+ TEST(NanSensitiveFloatEqTest, MatchesEqualArgumentsWithNaN) {
2077
+ typedef ::std::tuple<float, float> Tpl;
2078
+ Matcher<const Tpl&> m = NanSensitiveFloatEq();
2079
+ EXPECT_TRUE(m.Matches(Tpl(1.0f, 1.0f)));
2080
+ EXPECT_TRUE(m.Matches(Tpl(std::numeric_limits<float>::quiet_NaN(),
2081
+ std::numeric_limits<float>::quiet_NaN())));
2082
+ EXPECT_FALSE(m.Matches(Tpl(1.1f, 1.0f)));
2083
+ EXPECT_FALSE(m.Matches(Tpl(1.0f, std::numeric_limits<float>::quiet_NaN())));
2084
+ EXPECT_FALSE(m.Matches(Tpl(std::numeric_limits<float>::quiet_NaN(), 1.0f)));
2085
+ }
2086
+
2087
+ // Tests that NanSensitiveFloatEq() describes itself properly.
2088
+ TEST(NanSensitiveFloatEqTest, CanDescribeSelfWithNaNs) {
2089
+ Matcher<const ::std::tuple<float, float>&> m = NanSensitiveFloatEq();
2090
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2091
+ }
2092
+
2093
+ // Tests that DoubleEq() matches a 2-tuple where
2094
+ // DoubleEq(first field) matches the second field.
2095
+ TEST(DoubleEq2Test, MatchesEqualArguments) {
2096
+ typedef ::std::tuple<double, double> Tpl;
2097
+ Matcher<const Tpl&> m = DoubleEq();
2098
+ EXPECT_TRUE(m.Matches(Tpl(1.0, 1.0)));
2099
+ EXPECT_TRUE(m.Matches(Tpl(0.3, 0.1 + 0.1 + 0.1)));
2100
+ EXPECT_FALSE(m.Matches(Tpl(1.1, 1.0)));
2101
+ }
2102
+
2103
+ // Tests that DoubleEq() describes itself properly.
2104
+ TEST(DoubleEq2Test, CanDescribeSelf) {
2105
+ Matcher<const ::std::tuple<double, double>&> m = DoubleEq();
2106
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2107
+ }
2108
+
2109
+ // Tests that NanSensitiveDoubleEq() matches a 2-tuple where
2110
+ // NanSensitiveDoubleEq(first field) matches the second field.
2111
+ TEST(NanSensitiveDoubleEqTest, MatchesEqualArgumentsWithNaN) {
2112
+ typedef ::std::tuple<double, double> Tpl;
2113
+ Matcher<const Tpl&> m = NanSensitiveDoubleEq();
2114
+ EXPECT_TRUE(m.Matches(Tpl(1.0f, 1.0f)));
2115
+ EXPECT_TRUE(m.Matches(Tpl(std::numeric_limits<double>::quiet_NaN(),
2116
+ std::numeric_limits<double>::quiet_NaN())));
2117
+ EXPECT_FALSE(m.Matches(Tpl(1.1f, 1.0f)));
2118
+ EXPECT_FALSE(m.Matches(Tpl(1.0f, std::numeric_limits<double>::quiet_NaN())));
2119
+ EXPECT_FALSE(m.Matches(Tpl(std::numeric_limits<double>::quiet_NaN(), 1.0f)));
2120
+ }
2121
+
2122
+ // Tests that DoubleEq() describes itself properly.
2123
+ TEST(NanSensitiveDoubleEqTest, CanDescribeSelfWithNaNs) {
2124
+ Matcher<const ::std::tuple<double, double>&> m = NanSensitiveDoubleEq();
2125
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2126
+ }
2127
+
2128
+ // Tests that FloatEq() matches a 2-tuple where
2129
+ // FloatNear(first field, max_abs_error) matches the second field.
2130
+ TEST(FloatNear2Test, MatchesEqualArguments) {
2131
+ typedef ::std::tuple<float, float> Tpl;
2132
+ Matcher<const Tpl&> m = FloatNear(0.5f);
2133
+ EXPECT_TRUE(m.Matches(Tpl(1.0f, 1.0f)));
2134
+ EXPECT_TRUE(m.Matches(Tpl(1.3f, 1.0f)));
2135
+ EXPECT_FALSE(m.Matches(Tpl(1.8f, 1.0f)));
2136
+ }
2137
+
2138
+ // Tests that FloatNear() describes itself properly.
2139
+ TEST(FloatNear2Test, CanDescribeSelf) {
2140
+ Matcher<const ::std::tuple<float, float>&> m = FloatNear(0.5f);
2141
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2142
+ }
2143
+
2144
+ // Tests that NanSensitiveFloatNear() matches a 2-tuple where
2145
+ // NanSensitiveFloatNear(first field) matches the second field.
2146
+ TEST(NanSensitiveFloatNearTest, MatchesNearbyArgumentsWithNaN) {
2147
+ typedef ::std::tuple<float, float> Tpl;
2148
+ Matcher<const Tpl&> m = NanSensitiveFloatNear(0.5f);
2149
+ EXPECT_TRUE(m.Matches(Tpl(1.0f, 1.0f)));
2150
+ EXPECT_TRUE(m.Matches(Tpl(1.1f, 1.0f)));
2151
+ EXPECT_TRUE(m.Matches(Tpl(std::numeric_limits<float>::quiet_NaN(),
2152
+ std::numeric_limits<float>::quiet_NaN())));
2153
+ EXPECT_FALSE(m.Matches(Tpl(1.6f, 1.0f)));
2154
+ EXPECT_FALSE(m.Matches(Tpl(1.0f, std::numeric_limits<float>::quiet_NaN())));
2155
+ EXPECT_FALSE(m.Matches(Tpl(std::numeric_limits<float>::quiet_NaN(), 1.0f)));
2156
+ }
2157
+
2158
+ // Tests that NanSensitiveFloatNear() describes itself properly.
2159
+ TEST(NanSensitiveFloatNearTest, CanDescribeSelfWithNaNs) {
2160
+ Matcher<const ::std::tuple<float, float>&> m = NanSensitiveFloatNear(0.5f);
2161
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2162
+ }
2163
+
2164
+ // Tests that FloatEq() matches a 2-tuple where
2165
+ // DoubleNear(first field, max_abs_error) matches the second field.
2166
+ TEST(DoubleNear2Test, MatchesEqualArguments) {
2167
+ typedef ::std::tuple<double, double> Tpl;
2168
+ Matcher<const Tpl&> m = DoubleNear(0.5);
2169
+ EXPECT_TRUE(m.Matches(Tpl(1.0, 1.0)));
2170
+ EXPECT_TRUE(m.Matches(Tpl(1.3, 1.0)));
2171
+ EXPECT_FALSE(m.Matches(Tpl(1.8, 1.0)));
2172
+ }
2173
+
2174
+ // Tests that DoubleNear() describes itself properly.
2175
+ TEST(DoubleNear2Test, CanDescribeSelf) {
2176
+ Matcher<const ::std::tuple<double, double>&> m = DoubleNear(0.5);
2177
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2178
+ }
2179
+
2180
+ // Tests that NanSensitiveDoubleNear() matches a 2-tuple where
2181
+ // NanSensitiveDoubleNear(first field) matches the second field.
2182
+ TEST(NanSensitiveDoubleNearTest, MatchesNearbyArgumentsWithNaN) {
2183
+ typedef ::std::tuple<double, double> Tpl;
2184
+ Matcher<const Tpl&> m = NanSensitiveDoubleNear(0.5f);
2185
+ EXPECT_TRUE(m.Matches(Tpl(1.0f, 1.0f)));
2186
+ EXPECT_TRUE(m.Matches(Tpl(1.1f, 1.0f)));
2187
+ EXPECT_TRUE(m.Matches(Tpl(std::numeric_limits<double>::quiet_NaN(),
2188
+ std::numeric_limits<double>::quiet_NaN())));
2189
+ EXPECT_FALSE(m.Matches(Tpl(1.6f, 1.0f)));
2190
+ EXPECT_FALSE(m.Matches(Tpl(1.0f, std::numeric_limits<double>::quiet_NaN())));
2191
+ EXPECT_FALSE(m.Matches(Tpl(std::numeric_limits<double>::quiet_NaN(), 1.0f)));
2192
+ }
2193
+
2194
+ // Tests that NanSensitiveDoubleNear() describes itself properly.
2195
+ TEST(NanSensitiveDoubleNearTest, CanDescribeSelfWithNaNs) {
2196
+ Matcher<const ::std::tuple<double, double>&> m = NanSensitiveDoubleNear(0.5f);
2197
+ EXPECT_EQ("are an almost-equal pair", Describe(m));
2198
+ }
2199
+
2021
2200
  // Tests that Not(m) matches any value that doesn't match m.
2022
2201
  TEST(NotTest, NegatesMatcher) {
2023
2202
  Matcher<int> m;
@@ -2096,29 +2275,16 @@ TEST(AllOfTest, MatchesWhenAllMatch) {
2096
2275
  Ne(8), Ne(9)));
2097
2276
  AllOfMatches(10, AllOf(Ne(1), Ne(2), Ne(3), Ne(4), Ne(5), Ne(6), Ne(7), Ne(8),
2098
2277
  Ne(9), Ne(10)));
2278
+ AllOfMatches(
2279
+ 50, AllOf(Ne(1), Ne(2), Ne(3), Ne(4), Ne(5), Ne(6), Ne(7), Ne(8), Ne(9),
2280
+ Ne(10), Ne(11), Ne(12), Ne(13), Ne(14), Ne(15), Ne(16), Ne(17),
2281
+ Ne(18), Ne(19), Ne(20), Ne(21), Ne(22), Ne(23), Ne(24), Ne(25),
2282
+ Ne(26), Ne(27), Ne(28), Ne(29), Ne(30), Ne(31), Ne(32), Ne(33),
2283
+ Ne(34), Ne(35), Ne(36), Ne(37), Ne(38), Ne(39), Ne(40), Ne(41),
2284
+ Ne(42), Ne(43), Ne(44), Ne(45), Ne(46), Ne(47), Ne(48), Ne(49),
2285
+ Ne(50)));
2099
2286
  }
2100
2287
 
2101
- #if GTEST_LANG_CXX11
2102
- // Tests the variadic version of the AllOfMatcher.
2103
- TEST(AllOfTest, VariadicMatchesWhenAllMatch) {
2104
- // Make sure AllOf is defined in the right namespace and does not depend on
2105
- // ADL.
2106
- ::testing::AllOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
2107
- Matcher<int> m = AllOf(Ne(1), Ne(2), Ne(3), Ne(4), Ne(5), Ne(6), Ne(7), Ne(8),
2108
- Ne(9), Ne(10), Ne(11));
2109
- EXPECT_THAT(Describe(m), EndsWith("and (isn't equal to 11))))))))))"));
2110
- AllOfMatches(11, m);
2111
- AllOfMatches(50, AllOf(Ne(1), Ne(2), Ne(3), Ne(4), Ne(5), Ne(6), Ne(7), Ne(8),
2112
- Ne(9), Ne(10), Ne(11), Ne(12), Ne(13), Ne(14), Ne(15),
2113
- Ne(16), Ne(17), Ne(18), Ne(19), Ne(20), Ne(21), Ne(22),
2114
- Ne(23), Ne(24), Ne(25), Ne(26), Ne(27), Ne(28), Ne(29),
2115
- Ne(30), Ne(31), Ne(32), Ne(33), Ne(34), Ne(35), Ne(36),
2116
- Ne(37), Ne(38), Ne(39), Ne(40), Ne(41), Ne(42), Ne(43),
2117
- Ne(44), Ne(45), Ne(46), Ne(47), Ne(48), Ne(49),
2118
- Ne(50)));
2119
- }
2120
-
2121
- #endif // GTEST_LANG_CXX11
2122
2288
 
2123
2289
  // Tests that AllOf(m1, ..., mn) describes itself properly.
2124
2290
  TEST(AllOfTest, CanDescribeSelf) {
@@ -2127,59 +2293,51 @@ TEST(AllOfTest, CanDescribeSelf) {
2127
2293
  EXPECT_EQ("(is <= 2) and (is >= 1)", Describe(m));
2128
2294
 
2129
2295
  m = AllOf(Gt(0), Ne(1), Ne(2));
2130
- EXPECT_EQ("(is > 0) and "
2131
- "((isn't equal to 1) and "
2132
- "(isn't equal to 2))",
2133
- Describe(m));
2134
-
2296
+ std::string expected_descr1 =
2297
+ "(is > 0) and (isn't equal to 1) and (isn't equal to 2)";
2298
+ EXPECT_EQ(expected_descr1, Describe(m));
2135
2299
 
2136
2300
  m = AllOf(Gt(0), Ne(1), Ne(2), Ne(3));
2137
- EXPECT_EQ("((is > 0) and "
2138
- "(isn't equal to 1)) and "
2139
- "((isn't equal to 2) and "
2140
- "(isn't equal to 3))",
2141
- Describe(m));
2142
-
2301
+ std::string expected_descr2 =
2302
+ "(is > 0) and (isn't equal to 1) and (isn't equal to 2) and (isn't equal "
2303
+ "to 3)";
2304
+ EXPECT_EQ(expected_descr2, Describe(m));
2143
2305
 
2144
2306
  m = AllOf(Ge(0), Lt(10), Ne(3), Ne(5), Ne(7));
2145
- EXPECT_EQ("((is >= 0) and "
2146
- "(is < 10)) and "
2147
- "((isn't equal to 3) and "
2148
- "((isn't equal to 5) and "
2149
- "(isn't equal to 7)))",
2150
- Describe(m));
2307
+ std::string expected_descr3 =
2308
+ "(is >= 0) and (is < 10) and (isn't equal to 3) and (isn't equal to 5) "
2309
+ "and (isn't equal to 7)";
2310
+ EXPECT_EQ(expected_descr3, Describe(m));
2151
2311
  }
2152
2312
 
2153
2313
  // Tests that AllOf(m1, ..., mn) describes its negation properly.
2154
2314
  TEST(AllOfTest, CanDescribeNegation) {
2155
2315
  Matcher<int> m;
2156
2316
  m = AllOf(Le(2), Ge(1));
2157
- EXPECT_EQ("(isn't <= 2) or "
2158
- "(isn't >= 1)",
2159
- DescribeNegation(m));
2317
+ std::string expected_descr4 = "(isn't <= 2) or (isn't >= 1)";
2318
+ EXPECT_EQ(expected_descr4, DescribeNegation(m));
2160
2319
 
2161
2320
  m = AllOf(Gt(0), Ne(1), Ne(2));
2162
- EXPECT_EQ("(isn't > 0) or "
2163
- "((is equal to 1) or "
2164
- "(is equal to 2))",
2165
- DescribeNegation(m));
2166
-
2321
+ std::string expected_descr5 =
2322
+ "(isn't > 0) or (is equal to 1) or (is equal to 2)";
2323
+ EXPECT_EQ(expected_descr5, DescribeNegation(m));
2167
2324
 
2168
2325
  m = AllOf(Gt(0), Ne(1), Ne(2), Ne(3));
2169
- EXPECT_EQ("((isn't > 0) or "
2170
- "(is equal to 1)) or "
2171
- "((is equal to 2) or "
2172
- "(is equal to 3))",
2173
- DescribeNegation(m));
2174
-
2326
+ std::string expected_descr6 =
2327
+ "(isn't > 0) or (is equal to 1) or (is equal to 2) or (is equal to 3)";
2328
+ EXPECT_EQ(expected_descr6, DescribeNegation(m));
2175
2329
 
2176
2330
  m = AllOf(Ge(0), Lt(10), Ne(3), Ne(5), Ne(7));
2177
- EXPECT_EQ("((isn't >= 0) or "
2178
- "(isn't < 10)) or "
2179
- "((is equal to 3) or "
2180
- "((is equal to 5) or "
2181
- "(is equal to 7)))",
2182
- DescribeNegation(m));
2331
+ std::string expected_desr7 =
2332
+ "(isn't >= 0) or (isn't < 10) or (is equal to 3) or (is equal to 5) or "
2333
+ "(is equal to 7)";
2334
+ EXPECT_EQ(expected_desr7, DescribeNegation(m));
2335
+
2336
+ m = AllOf(Ne(1), Ne(2), Ne(3), Ne(4), Ne(5), Ne(6), Ne(7), Ne(8), Ne(9),
2337
+ Ne(10), Ne(11));
2338
+ AllOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
2339
+ EXPECT_THAT(Describe(m), EndsWith("and (isn't equal to 11)"));
2340
+ AllOfMatches(11, m);
2183
2341
  }
2184
2342
 
2185
2343
  // Tests that monomorphic matchers are safely cast by the AllOf matcher.
@@ -2241,7 +2399,7 @@ TEST(AllOfTest, ExplainsResult) {
2241
2399
  }
2242
2400
 
2243
2401
  // Helper to allow easy testing of AnyOf matchers with num parameters.
2244
- void AnyOfMatches(int num, const Matcher<int>& m) {
2402
+ static void AnyOfMatches(int num, const Matcher<int>& m) {
2245
2403
  SCOPED_TRACE(Describe(m));
2246
2404
  EXPECT_FALSE(m.Matches(0));
2247
2405
  for (int i = 1; i <= num; ++i) {
@@ -2250,10 +2408,20 @@ void AnyOfMatches(int num, const Matcher<int>& m) {
2250
2408
  EXPECT_FALSE(m.Matches(num + 1));
2251
2409
  }
2252
2410
 
2253
- // Tests that AnyOf(m1, ..., mn) matches any value that matches at
2254
- // least one of the given matchers.
2255
- TEST(AnyOfTest, MatchesWhenAnyMatches) {
2256
- Matcher<int> m;
2411
+ static void AnyOfStringMatches(int num, const Matcher<std::string>& m) {
2412
+ SCOPED_TRACE(Describe(m));
2413
+ EXPECT_FALSE(m.Matches(std::to_string(0)));
2414
+
2415
+ for (int i = 1; i <= num; ++i) {
2416
+ EXPECT_TRUE(m.Matches(std::to_string(i)));
2417
+ }
2418
+ EXPECT_FALSE(m.Matches(std::to_string(num + 1)));
2419
+ }
2420
+
2421
+ // Tests that AnyOf(m1, ..., mn) matches any value that matches at
2422
+ // least one of the given matchers.
2423
+ TEST(AnyOfTest, MatchesWhenAnyMatches) {
2424
+ Matcher<int> m;
2257
2425
  m = AnyOf(Le(1), Ge(3));
2258
2426
  EXPECT_TRUE(m.Matches(1));
2259
2427
  EXPECT_TRUE(m.Matches(4));
@@ -2293,50 +2461,75 @@ TEST(AnyOfTest, MatchesWhenAnyMatches) {
2293
2461
  AnyOfMatches(10, AnyOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
2294
2462
  }
2295
2463
 
2296
- #if GTEST_LANG_CXX11
2297
2464
  // Tests the variadic version of the AnyOfMatcher.
2298
2465
  TEST(AnyOfTest, VariadicMatchesWhenAnyMatches) {
2299
2466
  // Also make sure AnyOf is defined in the right namespace and does not depend
2300
2467
  // on ADL.
2301
2468
  Matcher<int> m = ::testing::AnyOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
2302
2469
 
2303
- EXPECT_THAT(Describe(m), EndsWith("or (is equal to 11))))))))))"));
2470
+ EXPECT_THAT(Describe(m), EndsWith("or (is equal to 11)"));
2304
2471
  AnyOfMatches(11, m);
2305
2472
  AnyOfMatches(50, AnyOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
2306
2473
  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2307
2474
  21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2308
2475
  31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2309
2476
  41, 42, 43, 44, 45, 46, 47, 48, 49, 50));
2477
+ AnyOfStringMatches(
2478
+ 50, AnyOf("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
2479
+ "13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
2480
+ "23", "24", "25", "26", "27", "28", "29", "30", "31", "32",
2481
+ "33", "34", "35", "36", "37", "38", "39", "40", "41", "42",
2482
+ "43", "44", "45", "46", "47", "48", "49", "50"));
2483
+ }
2484
+
2485
+ // Tests the variadic version of the ElementsAreMatcher
2486
+ TEST(ElementsAreTest, HugeMatcher) {
2487
+ vector<int> test_vector{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
2488
+
2489
+ EXPECT_THAT(test_vector,
2490
+ ElementsAre(Eq(1), Eq(2), Lt(13), Eq(4), Eq(5), Eq(6), Eq(7),
2491
+ Eq(8), Eq(9), Eq(10), Gt(1), Eq(12)));
2492
+ }
2493
+
2494
+ // Tests the variadic version of the UnorderedElementsAreMatcher
2495
+ TEST(ElementsAreTest, HugeMatcherStr) {
2496
+ vector<std::string> test_vector{
2497
+ "literal_string", "", "", "", "", "", "", "", "", "", "", ""};
2498
+
2499
+ EXPECT_THAT(test_vector, UnorderedElementsAre("literal_string", _, _, _, _, _,
2500
+ _, _, _, _, _, _));
2501
+ }
2502
+
2503
+ // Tests the variadic version of the UnorderedElementsAreMatcher
2504
+ TEST(ElementsAreTest, HugeMatcherUnordered) {
2505
+ vector<int> test_vector{2, 1, 8, 5, 4, 6, 7, 3, 9, 12, 11, 10};
2506
+
2507
+ EXPECT_THAT(test_vector, UnorderedElementsAre(
2508
+ Eq(2), Eq(1), Gt(7), Eq(5), Eq(4), Eq(6), Eq(7),
2509
+ Eq(3), Eq(9), Eq(12), Eq(11), Ne(122)));
2310
2510
  }
2311
2511
 
2312
- #endif // GTEST_LANG_CXX11
2313
2512
 
2314
2513
  // Tests that AnyOf(m1, ..., mn) describes itself properly.
2315
2514
  TEST(AnyOfTest, CanDescribeSelf) {
2316
2515
  Matcher<int> m;
2317
2516
  m = AnyOf(Le(1), Ge(3));
2517
+
2318
2518
  EXPECT_EQ("(is <= 1) or (is >= 3)",
2319
2519
  Describe(m));
2320
2520
 
2321
2521
  m = AnyOf(Lt(0), Eq(1), Eq(2));
2322
- EXPECT_EQ("(is < 0) or "
2323
- "((is equal to 1) or (is equal to 2))",
2324
- Describe(m));
2522
+ EXPECT_EQ("(is < 0) or (is equal to 1) or (is equal to 2)", Describe(m));
2325
2523
 
2326
2524
  m = AnyOf(Lt(0), Eq(1), Eq(2), Eq(3));
2327
- EXPECT_EQ("((is < 0) or "
2328
- "(is equal to 1)) or "
2329
- "((is equal to 2) or "
2330
- "(is equal to 3))",
2525
+ EXPECT_EQ("(is < 0) or (is equal to 1) or (is equal to 2) or (is equal to 3)",
2331
2526
  Describe(m));
2332
2527
 
2333
2528
  m = AnyOf(Le(0), Gt(10), 3, 5, 7);
2334
- EXPECT_EQ("((is <= 0) or "
2335
- "(is > 10)) or "
2336
- "((is equal to 3) or "
2337
- "((is equal to 5) or "
2338
- "(is equal to 7)))",
2339
- Describe(m));
2529
+ EXPECT_EQ(
2530
+ "(is <= 0) or (is > 10) or (is equal to 3) or (is equal to 5) or (is "
2531
+ "equal to 7)",
2532
+ Describe(m));
2340
2533
  }
2341
2534
 
2342
2535
  // Tests that AnyOf(m1, ..., mn) describes its negation properly.
@@ -2347,24 +2540,20 @@ TEST(AnyOfTest, CanDescribeNegation) {
2347
2540
  DescribeNegation(m));
2348
2541
 
2349
2542
  m = AnyOf(Lt(0), Eq(1), Eq(2));
2350
- EXPECT_EQ("(isn't < 0) and "
2351
- "((isn't equal to 1) and (isn't equal to 2))",
2543
+ EXPECT_EQ("(isn't < 0) and (isn't equal to 1) and (isn't equal to 2)",
2352
2544
  DescribeNegation(m));
2353
2545
 
2354
2546
  m = AnyOf(Lt(0), Eq(1), Eq(2), Eq(3));
2355
- EXPECT_EQ("((isn't < 0) and "
2356
- "(isn't equal to 1)) and "
2357
- "((isn't equal to 2) and "
2358
- "(isn't equal to 3))",
2359
- DescribeNegation(m));
2547
+ EXPECT_EQ(
2548
+ "(isn't < 0) and (isn't equal to 1) and (isn't equal to 2) and (isn't "
2549
+ "equal to 3)",
2550
+ DescribeNegation(m));
2360
2551
 
2361
2552
  m = AnyOf(Le(0), Gt(10), 3, 5, 7);
2362
- EXPECT_EQ("((isn't <= 0) and "
2363
- "(isn't > 10)) and "
2364
- "((isn't equal to 3) and "
2365
- "((isn't equal to 5) and "
2366
- "(isn't equal to 7)))",
2367
- DescribeNegation(m));
2553
+ EXPECT_EQ(
2554
+ "(isn't <= 0) and (isn't > 10) and (isn't equal to 3) and (isn't equal "
2555
+ "to 5) and (isn't equal to 7)",
2556
+ DescribeNegation(m));
2368
2557
  }
2369
2558
 
2370
2559
  // Tests that monomorphic matchers are safely cast by the AnyOf matcher.
@@ -2583,9 +2772,25 @@ TEST(ExplainMatchResultTest, WorksInsideMATCHER) {
2583
2772
  EXPECT_THAT(0, Really(Eq(0)));
2584
2773
  }
2585
2774
 
2775
+ TEST(DescribeMatcherTest, WorksWithValue) {
2776
+ EXPECT_EQ("is equal to 42", DescribeMatcher<int>(42));
2777
+ EXPECT_EQ("isn't equal to 42", DescribeMatcher<int>(42, true));
2778
+ }
2779
+
2780
+ TEST(DescribeMatcherTest, WorksWithMonomorphicMatcher) {
2781
+ const Matcher<int> monomorphic = Le(0);
2782
+ EXPECT_EQ("is <= 0", DescribeMatcher<int>(monomorphic));
2783
+ EXPECT_EQ("isn't <= 0", DescribeMatcher<int>(monomorphic, true));
2784
+ }
2785
+
2786
+ TEST(DescribeMatcherTest, WorksWithPolymorphicMatcher) {
2787
+ EXPECT_EQ("is even", DescribeMatcher<int>(PolymorphicIsEven()));
2788
+ EXPECT_EQ("is odd", DescribeMatcher<int>(PolymorphicIsEven(), true));
2789
+ }
2790
+
2586
2791
  TEST(AllArgsTest, WorksForTuple) {
2587
- EXPECT_THAT(make_tuple(1, 2L), AllArgs(Lt()));
2588
- EXPECT_THAT(make_tuple(2L, 1), Not(AllArgs(Lt())));
2792
+ EXPECT_THAT(std::make_tuple(1, 2L), AllArgs(Lt()));
2793
+ EXPECT_THAT(std::make_tuple(2L, 1), Not(AllArgs(Lt())));
2589
2794
  }
2590
2795
 
2591
2796
  TEST(AllArgsTest, WorksForNonTuple) {
@@ -2617,6 +2822,44 @@ TEST(AllArgsTest, WorksInWithClause) {
2617
2822
  EXPECT_EQ(2, helper.Helper('a', 1));
2618
2823
  }
2619
2824
 
2825
+ class OptionalMatchersHelper {
2826
+ public:
2827
+ OptionalMatchersHelper() {}
2828
+
2829
+ MOCK_METHOD0(NoArgs, int());
2830
+
2831
+ MOCK_METHOD1(OneArg, int(int y));
2832
+
2833
+ MOCK_METHOD2(TwoArgs, int(char x, int y));
2834
+
2835
+ MOCK_METHOD1(Overloaded, int(char x));
2836
+ MOCK_METHOD2(Overloaded, int(char x, int y));
2837
+
2838
+ private:
2839
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(OptionalMatchersHelper);
2840
+ };
2841
+
2842
+ TEST(AllArgsTest, WorksWithoutMatchers) {
2843
+ OptionalMatchersHelper helper;
2844
+
2845
+ ON_CALL(helper, NoArgs).WillByDefault(Return(10));
2846
+ ON_CALL(helper, OneArg).WillByDefault(Return(20));
2847
+ ON_CALL(helper, TwoArgs).WillByDefault(Return(30));
2848
+
2849
+ EXPECT_EQ(10, helper.NoArgs());
2850
+ EXPECT_EQ(20, helper.OneArg(1));
2851
+ EXPECT_EQ(30, helper.TwoArgs('\1', 2));
2852
+
2853
+ EXPECT_CALL(helper, NoArgs).Times(1);
2854
+ EXPECT_CALL(helper, OneArg).WillOnce(Return(100));
2855
+ EXPECT_CALL(helper, OneArg(17)).WillOnce(Return(200));
2856
+ EXPECT_CALL(helper, TwoArgs).Times(0);
2857
+
2858
+ EXPECT_EQ(10, helper.NoArgs());
2859
+ EXPECT_EQ(100, helper.OneArg(1));
2860
+ EXPECT_EQ(200, helper.OneArg(17));
2861
+ }
2862
+
2620
2863
  // Tests that ASSERT_THAT() and EXPECT_THAT() work when the value
2621
2864
  // matches the matcher.
2622
2865
  TEST(MatcherAssertionTest, WorksWhenMatcherIsSatisfied) {
@@ -2667,27 +2910,15 @@ TEST(MatcherAssertionTest, WorksForByRefArguments) {
2667
2910
  "Actual: 0" + OfType("int") + ", which is located @");
2668
2911
  }
2669
2912
 
2670
- #if !GTEST_OS_SYMBIAN
2671
2913
  // Tests that ASSERT_THAT() and EXPECT_THAT() work when the matcher is
2672
2914
  // monomorphic.
2673
-
2674
- // ASSERT_THAT("hello", starts_with_he) fails to compile with Nokia's
2675
- // Symbian compiler: it tries to compile
2676
- // template<T, U> class MatcherCastImpl { ...
2677
- // virtual bool MatchAndExplain(T x, ...) const {
2678
- // return source_matcher_.MatchAndExplain(static_cast<U>(x), ...);
2679
- // with U == string and T == const char*
2680
- // With ASSERT_THAT("hello"...) changed to ASSERT_THAT(string("hello") ... )
2681
- // the compiler silently crashes with no output.
2682
- // If MatcherCastImpl is changed to use U(x) instead of static_cast<U>(x)
2683
- // the code compiles but the converted string is bogus.
2684
2915
  TEST(MatcherAssertionTest, WorksForMonomorphicMatcher) {
2685
2916
  Matcher<const char*> starts_with_he = StartsWith("he");
2686
2917
  ASSERT_THAT("hello", starts_with_he);
2687
2918
 
2688
- Matcher<const string&> ends_with_ok = EndsWith("ok");
2919
+ Matcher<const std::string&> ends_with_ok = EndsWith("ok");
2689
2920
  ASSERT_THAT("book", ends_with_ok);
2690
- const string bad = "bad";
2921
+ const std::string bad = "bad";
2691
2922
  EXPECT_NONFATAL_FAILURE(EXPECT_THAT(bad, ends_with_ok),
2692
2923
  "Value of: bad\n"
2693
2924
  "Expected: ends with \"ok\"\n"
@@ -2698,7 +2929,6 @@ TEST(MatcherAssertionTest, WorksForMonomorphicMatcher) {
2698
2929
  "Expected: is > 5\n"
2699
2930
  " Actual: 5" + OfType("int"));
2700
2931
  }
2701
- #endif // !GTEST_OS_SYMBIAN
2702
2932
 
2703
2933
  // Tests floating-point matchers.
2704
2934
  template <typename RawType>
@@ -2712,18 +2942,22 @@ class FloatingPointTest : public testing::Test {
2712
2942
  zero_bits_(Floating(0).bits()),
2713
2943
  one_bits_(Floating(1).bits()),
2714
2944
  infinity_bits_(Floating(Floating::Infinity()).bits()),
2715
- close_to_positive_zero_(AsBits(zero_bits_ + max_ulps_/2)),
2716
- close_to_negative_zero_(AsBits(zero_bits_ + max_ulps_ - max_ulps_/2)),
2717
- further_from_negative_zero_(-AsBits(
2945
+ close_to_positive_zero_(
2946
+ Floating::ReinterpretBits(zero_bits_ + max_ulps_/2)),
2947
+ close_to_negative_zero_(
2948
+ -Floating::ReinterpretBits(zero_bits_ + max_ulps_ - max_ulps_/2)),
2949
+ further_from_negative_zero_(-Floating::ReinterpretBits(
2718
2950
  zero_bits_ + max_ulps_ + 1 - max_ulps_/2)),
2719
- close_to_one_(AsBits(one_bits_ + max_ulps_)),
2720
- further_from_one_(AsBits(one_bits_ + max_ulps_ + 1)),
2951
+ close_to_one_(Floating::ReinterpretBits(one_bits_ + max_ulps_)),
2952
+ further_from_one_(Floating::ReinterpretBits(one_bits_ + max_ulps_ + 1)),
2721
2953
  infinity_(Floating::Infinity()),
2722
- close_to_infinity_(AsBits(infinity_bits_ - max_ulps_)),
2723
- further_from_infinity_(AsBits(infinity_bits_ - max_ulps_ - 1)),
2954
+ close_to_infinity_(
2955
+ Floating::ReinterpretBits(infinity_bits_ - max_ulps_)),
2956
+ further_from_infinity_(
2957
+ Floating::ReinterpretBits(infinity_bits_ - max_ulps_ - 1)),
2724
2958
  max_(Floating::Max()),
2725
- nan1_(AsBits(Floating::kExponentBitMask | 1)),
2726
- nan2_(AsBits(Floating::kExponentBitMask | 200)) {
2959
+ nan1_(Floating::ReinterpretBits(Floating::kExponentBitMask | 1)),
2960
+ nan2_(Floating::ReinterpretBits(Floating::kExponentBitMask | 200)) {
2727
2961
  }
2728
2962
 
2729
2963
  void TestSize() {
@@ -2778,7 +3012,7 @@ class FloatingPointTest : public testing::Test {
2778
3012
 
2779
3013
  // Pre-calculated numbers to be used by the tests.
2780
3014
 
2781
- const size_t max_ulps_;
3015
+ const Bits max_ulps_;
2782
3016
 
2783
3017
  const Bits zero_bits_; // The bits that represent 0.0.
2784
3018
  const Bits one_bits_; // The bits that represent 1.0.
@@ -2804,12 +3038,6 @@ class FloatingPointTest : public testing::Test {
2804
3038
  // Some NaNs.
2805
3039
  const RawType nan1_;
2806
3040
  const RawType nan2_;
2807
-
2808
- private:
2809
- template <typename T>
2810
- static RawType AsBits(T value) {
2811
- return Floating::ReinterpretBits(static_cast<Bits>(value));
2812
- }
2813
3041
  };
2814
3042
 
2815
3043
  // Tests floating-point matchers with fixed epsilons.
@@ -3099,7 +3327,8 @@ TEST_F(DoubleNearTest, ExplainsResultWhenMatchFails) {
3099
3327
  EXPECT_EQ("which is 0.2 from 2", Explain(DoubleNear(2.0, 0.1), 2.2));
3100
3328
  EXPECT_EQ("which is -0.3 from 2", Explain(DoubleNear(2.0, 0.1), 1.7));
3101
3329
 
3102
- const string explanation = Explain(DoubleNear(2.1, 1e-10), 2.1 + 1.2e-10);
3330
+ const std::string explanation =
3331
+ Explain(DoubleNear(2.1, 1e-10), 2.1 + 1.2e-10);
3103
3332
  // Different C++ implementations may print floating-point numbers
3104
3333
  // slightly differently.
3105
3334
  EXPECT_TRUE(explanation == "which is 1.2e-10 from 2.1" || // GCC
@@ -3146,7 +3375,7 @@ TEST(PointeeTest, RawPointer) {
3146
3375
  EXPECT_TRUE(m.Matches(&n));
3147
3376
  n = -1;
3148
3377
  EXPECT_FALSE(m.Matches(&n));
3149
- EXPECT_FALSE(m.Matches(NULL));
3378
+ EXPECT_FALSE(m.Matches(nullptr));
3150
3379
  }
3151
3380
 
3152
3381
  TEST(PointeeTest, RawPointerToConst) {
@@ -3156,7 +3385,7 @@ TEST(PointeeTest, RawPointerToConst) {
3156
3385
  EXPECT_TRUE(m.Matches(&x));
3157
3386
  x = -1;
3158
3387
  EXPECT_FALSE(m.Matches(&x));
3159
- EXPECT_FALSE(m.Matches(NULL));
3388
+ EXPECT_FALSE(m.Matches(nullptr));
3160
3389
  }
3161
3390
 
3162
3391
  TEST(PointeeTest, ReferenceToConstRawPointer) {
@@ -3166,7 +3395,7 @@ TEST(PointeeTest, ReferenceToConstRawPointer) {
3166
3395
  EXPECT_TRUE(m.Matches(&n));
3167
3396
  n = -1;
3168
3397
  EXPECT_FALSE(m.Matches(&n));
3169
- EXPECT_FALSE(m.Matches(NULL));
3398
+ EXPECT_FALSE(m.Matches(nullptr));
3170
3399
  }
3171
3400
 
3172
3401
  TEST(PointeeTest, ReferenceToNonConstRawPointer) {
@@ -3177,7 +3406,7 @@ TEST(PointeeTest, ReferenceToNonConstRawPointer) {
3177
3406
  EXPECT_TRUE(m.Matches(p));
3178
3407
  x = -1;
3179
3408
  EXPECT_FALSE(m.Matches(p));
3180
- p = NULL;
3409
+ p = nullptr;
3181
3410
  EXPECT_FALSE(m.Matches(p));
3182
3411
  }
3183
3412
 
@@ -3186,7 +3415,6 @@ MATCHER_P(FieldIIs, inner_matcher, "") {
3186
3415
  }
3187
3416
 
3188
3417
  #if GTEST_HAS_RTTI
3189
-
3190
3418
  TEST(WhenDynamicCastToTest, SameType) {
3191
3419
  Derived derived;
3192
3420
  derived.i = 4;
@@ -3217,7 +3445,7 @@ TEST(WhenDynamicCastToTest, WrongTypes) {
3217
3445
 
3218
3446
  TEST(WhenDynamicCastToTest, AlreadyNull) {
3219
3447
  // Already NULL.
3220
- Base* as_base_ptr = NULL;
3448
+ Base* as_base_ptr = nullptr;
3221
3449
  EXPECT_THAT(as_base_ptr, WhenDynamicCastTo<Derived*>(IsNull()));
3222
3450
  }
3223
3451
 
@@ -3244,7 +3472,7 @@ TEST(WhenDynamicCastToTest, AmbiguousCast) {
3244
3472
 
3245
3473
  TEST(WhenDynamicCastToTest, Describe) {
3246
3474
  Matcher<Base*> matcher = WhenDynamicCastTo<Derived*>(Pointee(_));
3247
- const string prefix =
3475
+ const std::string prefix =
3248
3476
  "when dynamic_cast to " + internal::GetTypeName<Derived*>() + ", ";
3249
3477
  EXPECT_EQ(prefix + "points to a value that is anything", Describe(matcher));
3250
3478
  EXPECT_EQ(prefix + "does not point to a value that is anything",
@@ -3253,7 +3481,7 @@ TEST(WhenDynamicCastToTest, Describe) {
3253
3481
 
3254
3482
  TEST(WhenDynamicCastToTest, Explain) {
3255
3483
  Matcher<Base*> matcher = WhenDynamicCastTo<Derived*>(Pointee(_));
3256
- Base* null = NULL;
3484
+ Base* null = nullptr;
3257
3485
  EXPECT_THAT(Explain(matcher, null), HasSubstr("NULL"));
3258
3486
  Derived derived;
3259
3487
  EXPECT_TRUE(matcher.Matches(&derived));
@@ -3278,7 +3506,6 @@ TEST(WhenDynamicCastToTest, BadReference) {
3278
3506
  Base& as_base_ref = derived;
3279
3507
  EXPECT_THAT(as_base_ref, Not(WhenDynamicCastTo<const OtherDerived&>(_)));
3280
3508
  }
3281
-
3282
3509
  #endif // GTEST_HAS_RTTI
3283
3510
 
3284
3511
  // Minimal const-propagating pointer.
@@ -3315,7 +3542,7 @@ TEST(PointeeTest, WorksWithConstPropagatingPointers) {
3315
3542
 
3316
3543
  TEST(PointeeTest, NeverMatchesNull) {
3317
3544
  const Matcher<const char*> m = Pointee(_);
3318
- EXPECT_FALSE(m.Matches(NULL));
3545
+ EXPECT_FALSE(m.Matches(nullptr));
3319
3546
  }
3320
3547
 
3321
3548
  // Tests that we can write Pointee(value) instead of Pointee(Eq(value)).
@@ -3326,7 +3553,7 @@ TEST(PointeeTest, MatchesAgainstAValue) {
3326
3553
  EXPECT_TRUE(m.Matches(&n));
3327
3554
  n = -1;
3328
3555
  EXPECT_FALSE(m.Matches(&n));
3329
- EXPECT_FALSE(m.Matches(NULL));
3556
+ EXPECT_FALSE(m.Matches(nullptr));
3330
3557
  }
3331
3558
 
3332
3559
  TEST(PointeeTest, CanDescribeSelf) {
@@ -3337,9 +3564,9 @@ TEST(PointeeTest, CanDescribeSelf) {
3337
3564
  }
3338
3565
 
3339
3566
  TEST(PointeeTest, CanExplainMatchResult) {
3340
- const Matcher<const string*> m = Pointee(StartsWith("Hi"));
3567
+ const Matcher<const std::string*> m = Pointee(StartsWith("Hi"));
3341
3568
 
3342
- EXPECT_EQ("", Explain(m, static_cast<const string*>(NULL)));
3569
+ EXPECT_EQ("", Explain(m, static_cast<const std::string*>(nullptr)));
3343
3570
 
3344
3571
  const Matcher<long*> m2 = Pointee(GreaterThan(1)); // NOLINT
3345
3572
  long n = 3; // NOLINT
@@ -3376,7 +3603,7 @@ MATCHER_P(UncopyableIs, inner_matcher, "") {
3376
3603
 
3377
3604
  // A user-defined struct for testing Field().
3378
3605
  struct AStruct {
3379
- AStruct() : x(0), y(1.0), z(5), p(NULL) {}
3606
+ AStruct() : x(0), y(1.0), z(5), p(nullptr) {}
3380
3607
  AStruct(const AStruct& rhs)
3381
3608
  : x(rhs.x), y(rhs.y), z(rhs.z.value()), p(rhs.p) {}
3382
3609
 
@@ -3400,11 +3627,14 @@ struct DerivedStruct : public AStruct {
3400
3627
  // Tests that Field(&Foo::field, ...) works when field is non-const.
3401
3628
  TEST(FieldTest, WorksForNonConstField) {
3402
3629
  Matcher<AStruct> m = Field(&AStruct::x, Ge(0));
3630
+ Matcher<AStruct> m_with_name = Field("x", &AStruct::x, Ge(0));
3403
3631
 
3404
3632
  AStruct a;
3405
3633
  EXPECT_TRUE(m.Matches(a));
3634
+ EXPECT_TRUE(m_with_name.Matches(a));
3406
3635
  a.x = -1;
3407
3636
  EXPECT_FALSE(m.Matches(a));
3637
+ EXPECT_FALSE(m_with_name.Matches(a));
3408
3638
  }
3409
3639
 
3410
3640
  // Tests that Field(&Foo::field, ...) works when field is const.
@@ -3412,9 +3642,13 @@ TEST(FieldTest, WorksForConstField) {
3412
3642
  AStruct a;
3413
3643
 
3414
3644
  Matcher<AStruct> m = Field(&AStruct::y, Ge(0.0));
3645
+ Matcher<AStruct> m_with_name = Field("y", &AStruct::y, Ge(0.0));
3415
3646
  EXPECT_TRUE(m.Matches(a));
3647
+ EXPECT_TRUE(m_with_name.Matches(a));
3416
3648
  m = Field(&AStruct::y, Le(0.0));
3649
+ m_with_name = Field("y", &AStruct::y, Le(0.0));
3417
3650
  EXPECT_FALSE(m.Matches(a));
3651
+ EXPECT_FALSE(m_with_name.Matches(a));
3418
3652
  }
3419
3653
 
3420
3654
  // Tests that Field(&Foo::field, ...) works when field is not copyable.
@@ -3430,7 +3664,7 @@ TEST(FieldTest, WorksForUncopyableField) {
3430
3664
  // Tests that Field(&Foo::field, ...) works when field is a pointer.
3431
3665
  TEST(FieldTest, WorksForPointerField) {
3432
3666
  // Matching against NULL.
3433
- Matcher<AStruct> m = Field(&AStruct::p, static_cast<const char*>(NULL));
3667
+ Matcher<AStruct> m = Field(&AStruct::p, static_cast<const char*>(nullptr));
3434
3668
  AStruct a;
3435
3669
  EXPECT_TRUE(m.Matches(a));
3436
3670
  a.p = "hi";
@@ -3488,6 +3722,14 @@ TEST(FieldTest, CanDescribeSelf) {
3488
3722
  EXPECT_EQ("is an object whose given field isn't >= 0", DescribeNegation(m));
3489
3723
  }
3490
3724
 
3725
+ TEST(FieldTest, CanDescribeSelfWithFieldName) {
3726
+ Matcher<const AStruct&> m = Field("field_name", &AStruct::x, Ge(0));
3727
+
3728
+ EXPECT_EQ("is an object whose field `field_name` is >= 0", Describe(m));
3729
+ EXPECT_EQ("is an object whose field `field_name` isn't >= 0",
3730
+ DescribeNegation(m));
3731
+ }
3732
+
3491
3733
  // Tests that Field() can explain the match result.
3492
3734
  TEST(FieldTest, CanExplainMatchResult) {
3493
3735
  Matcher<const AStruct&> m = Field(&AStruct::x, Ge(0));
@@ -3502,6 +3744,19 @@ TEST(FieldTest, CanExplainMatchResult) {
3502
3744
  Explain(m, a));
3503
3745
  }
3504
3746
 
3747
+ TEST(FieldTest, CanExplainMatchResultWithFieldName) {
3748
+ Matcher<const AStruct&> m = Field("field_name", &AStruct::x, Ge(0));
3749
+
3750
+ AStruct a;
3751
+ a.x = 1;
3752
+ EXPECT_EQ("whose field `field_name` is 1" + OfType("int"), Explain(m, a));
3753
+
3754
+ m = Field("field_name", &AStruct::x, GreaterThan(0));
3755
+ EXPECT_EQ("whose field `field_name` is 1" + OfType("int") +
3756
+ ", which is 1 more than 0",
3757
+ Explain(m, a));
3758
+ }
3759
+
3505
3760
  // Tests that Field() works when the argument is a pointer to const.
3506
3761
  TEST(FieldForPointerTest, WorksForPointerToConst) {
3507
3762
  Matcher<const AStruct*> m = Field(&AStruct::x, Ge(0));
@@ -3535,7 +3790,7 @@ TEST(FieldForPointerTest, WorksForReferenceToConstPointer) {
3535
3790
  // Tests that Field() does not match the NULL pointer.
3536
3791
  TEST(FieldForPointerTest, DoesNotMatchNull) {
3537
3792
  Matcher<const AStruct*> m = Field(&AStruct::x, _);
3538
- EXPECT_FALSE(m.Matches(NULL));
3793
+ EXPECT_FALSE(m.Matches(nullptr));
3539
3794
  }
3540
3795
 
3541
3796
  // Tests that Field(&Foo::field, ...) works when the argument's type
@@ -3559,13 +3814,21 @@ TEST(FieldForPointerTest, CanDescribeSelf) {
3559
3814
  EXPECT_EQ("is an object whose given field isn't >= 0", DescribeNegation(m));
3560
3815
  }
3561
3816
 
3817
+ TEST(FieldForPointerTest, CanDescribeSelfWithFieldName) {
3818
+ Matcher<const AStruct*> m = Field("field_name", &AStruct::x, Ge(0));
3819
+
3820
+ EXPECT_EQ("is an object whose field `field_name` is >= 0", Describe(m));
3821
+ EXPECT_EQ("is an object whose field `field_name` isn't >= 0",
3822
+ DescribeNegation(m));
3823
+ }
3824
+
3562
3825
  // Tests that Field() can explain the result of matching a pointer.
3563
3826
  TEST(FieldForPointerTest, CanExplainMatchResult) {
3564
3827
  Matcher<const AStruct*> m = Field(&AStruct::x, Ge(0));
3565
3828
 
3566
3829
  AStruct a;
3567
3830
  a.x = 1;
3568
- EXPECT_EQ("", Explain(m, static_cast<const AStruct*>(NULL)));
3831
+ EXPECT_EQ("", Explain(m, static_cast<const AStruct*>(nullptr)));
3569
3832
  EXPECT_EQ("which points to an object whose given field is 1" + OfType("int"),
3570
3833
  Explain(m, &a));
3571
3834
 
@@ -3574,6 +3837,22 @@ TEST(FieldForPointerTest, CanExplainMatchResult) {
3574
3837
  ", which is 1 more than 0", Explain(m, &a));
3575
3838
  }
3576
3839
 
3840
+ TEST(FieldForPointerTest, CanExplainMatchResultWithFieldName) {
3841
+ Matcher<const AStruct*> m = Field("field_name", &AStruct::x, Ge(0));
3842
+
3843
+ AStruct a;
3844
+ a.x = 1;
3845
+ EXPECT_EQ("", Explain(m, static_cast<const AStruct*>(nullptr)));
3846
+ EXPECT_EQ(
3847
+ "which points to an object whose field `field_name` is 1" + OfType("int"),
3848
+ Explain(m, &a));
3849
+
3850
+ m = Field("field_name", &AStruct::x, GreaterThan(0));
3851
+ EXPECT_EQ("which points to an object whose field `field_name` is 1" +
3852
+ OfType("int") + ", which is 1 more than 0",
3853
+ Explain(m, &a));
3854
+ }
3855
+
3577
3856
  // A user-defined class for testing Property().
3578
3857
  class AClass {
3579
3858
  public:
@@ -3585,15 +3864,18 @@ class AClass {
3585
3864
  void set_n(int new_n) { n_ = new_n; }
3586
3865
 
3587
3866
  // A getter that returns a reference to const.
3588
- const string& s() const { return s_; }
3867
+ const std::string& s() const { return s_; }
3868
+
3869
+ const std::string& s_ref() const & { return s_; }
3589
3870
 
3590
- void set_s(const string& new_s) { s_ = new_s; }
3871
+ void set_s(const std::string& new_s) { s_ = new_s; }
3591
3872
 
3592
3873
  // A getter that returns a reference to non-const.
3593
3874
  double& x() const { return x_; }
3875
+
3594
3876
  private:
3595
3877
  int n_;
3596
- string s_;
3878
+ std::string s_;
3597
3879
 
3598
3880
  static double x_;
3599
3881
  };
@@ -3612,26 +3894,50 @@ class DerivedClass : public AClass {
3612
3894
  // returns a non-reference.
3613
3895
  TEST(PropertyTest, WorksForNonReferenceProperty) {
3614
3896
  Matcher<const AClass&> m = Property(&AClass::n, Ge(0));
3897
+ Matcher<const AClass&> m_with_name = Property("n", &AClass::n, Ge(0));
3615
3898
 
3616
3899
  AClass a;
3617
3900
  a.set_n(1);
3618
3901
  EXPECT_TRUE(m.Matches(a));
3902
+ EXPECT_TRUE(m_with_name.Matches(a));
3619
3903
 
3620
3904
  a.set_n(-1);
3621
3905
  EXPECT_FALSE(m.Matches(a));
3906
+ EXPECT_FALSE(m_with_name.Matches(a));
3622
3907
  }
3623
3908
 
3624
3909
  // Tests that Property(&Foo::property, ...) works when property()
3625
3910
  // returns a reference to const.
3626
3911
  TEST(PropertyTest, WorksForReferenceToConstProperty) {
3627
3912
  Matcher<const AClass&> m = Property(&AClass::s, StartsWith("hi"));
3913
+ Matcher<const AClass&> m_with_name =
3914
+ Property("s", &AClass::s, StartsWith("hi"));
3915
+
3916
+ AClass a;
3917
+ a.set_s("hill");
3918
+ EXPECT_TRUE(m.Matches(a));
3919
+ EXPECT_TRUE(m_with_name.Matches(a));
3920
+
3921
+ a.set_s("hole");
3922
+ EXPECT_FALSE(m.Matches(a));
3923
+ EXPECT_FALSE(m_with_name.Matches(a));
3924
+ }
3925
+
3926
+ // Tests that Property(&Foo::property, ...) works when property() is
3927
+ // ref-qualified.
3928
+ TEST(PropertyTest, WorksForRefQualifiedProperty) {
3929
+ Matcher<const AClass&> m = Property(&AClass::s_ref, StartsWith("hi"));
3930
+ Matcher<const AClass&> m_with_name =
3931
+ Property("s", &AClass::s_ref, StartsWith("hi"));
3628
3932
 
3629
3933
  AClass a;
3630
3934
  a.set_s("hill");
3631
3935
  EXPECT_TRUE(m.Matches(a));
3936
+ EXPECT_TRUE(m_with_name.Matches(a));
3632
3937
 
3633
3938
  a.set_s("hole");
3634
3939
  EXPECT_FALSE(m.Matches(a));
3940
+ EXPECT_FALSE(m_with_name.Matches(a));
3635
3941
  }
3636
3942
 
3637
3943
  // Tests that Property(&Foo::property, ...) works when property()
@@ -3682,10 +3988,15 @@ TEST(PropertyTest, WorksForCompatibleMatcherType) {
3682
3988
  Matcher<const AClass&> m = Property(&AClass::n,
3683
3989
  Matcher<signed char>(Ge(0)));
3684
3990
 
3991
+ Matcher<const AClass&> m_with_name =
3992
+ Property("n", &AClass::n, Matcher<signed char>(Ge(0)));
3993
+
3685
3994
  AClass a;
3686
3995
  EXPECT_TRUE(m.Matches(a));
3996
+ EXPECT_TRUE(m_with_name.Matches(a));
3687
3997
  a.set_n(-1);
3688
3998
  EXPECT_FALSE(m.Matches(a));
3999
+ EXPECT_FALSE(m_with_name.Matches(a));
3689
4000
  }
3690
4001
 
3691
4002
  // Tests that Property() can describe itself.
@@ -3697,6 +4008,14 @@ TEST(PropertyTest, CanDescribeSelf) {
3697
4008
  DescribeNegation(m));
3698
4009
  }
3699
4010
 
4011
+ TEST(PropertyTest, CanDescribeSelfWithPropertyName) {
4012
+ Matcher<const AClass&> m = Property("fancy_name", &AClass::n, Ge(0));
4013
+
4014
+ EXPECT_EQ("is an object whose property `fancy_name` is >= 0", Describe(m));
4015
+ EXPECT_EQ("is an object whose property `fancy_name` isn't >= 0",
4016
+ DescribeNegation(m));
4017
+ }
4018
+
3700
4019
  // Tests that Property() can explain the match result.
3701
4020
  TEST(PropertyTest, CanExplainMatchResult) {
3702
4021
  Matcher<const AClass&> m = Property(&AClass::n, Ge(0));
@@ -3711,6 +4030,19 @@ TEST(PropertyTest, CanExplainMatchResult) {
3711
4030
  Explain(m, a));
3712
4031
  }
3713
4032
 
4033
+ TEST(PropertyTest, CanExplainMatchResultWithPropertyName) {
4034
+ Matcher<const AClass&> m = Property("fancy_name", &AClass::n, Ge(0));
4035
+
4036
+ AClass a;
4037
+ a.set_n(1);
4038
+ EXPECT_EQ("whose property `fancy_name` is 1" + OfType("int"), Explain(m, a));
4039
+
4040
+ m = Property("fancy_name", &AClass::n, GreaterThan(0));
4041
+ EXPECT_EQ("whose property `fancy_name` is 1" + OfType("int") +
4042
+ ", which is 1 more than 0",
4043
+ Explain(m, a));
4044
+ }
4045
+
3714
4046
  // Tests that Property() works when the argument is a pointer to const.
3715
4047
  TEST(PropertyForPointerTest, WorksForPointerToConst) {
3716
4048
  Matcher<const AClass*> m = Property(&AClass::n, Ge(0));
@@ -3751,7 +4083,7 @@ TEST(PropertyForPointerTest, WorksForReferenceToConstPointer) {
3751
4083
  // Tests that Property() does not match the NULL pointer.
3752
4084
  TEST(PropertyForPointerTest, WorksForReferenceToNonConstProperty) {
3753
4085
  Matcher<const AClass*> m = Property(&AClass::x, _);
3754
- EXPECT_FALSE(m.Matches(NULL));
4086
+ EXPECT_FALSE(m.Matches(nullptr));
3755
4087
  }
3756
4088
 
3757
4089
  // Tests that Property(&Foo::property, ...) works when the argument's
@@ -3778,13 +4110,21 @@ TEST(PropertyForPointerTest, CanDescribeSelf) {
3778
4110
  DescribeNegation(m));
3779
4111
  }
3780
4112
 
4113
+ TEST(PropertyForPointerTest, CanDescribeSelfWithPropertyDescription) {
4114
+ Matcher<const AClass*> m = Property("fancy_name", &AClass::n, Ge(0));
4115
+
4116
+ EXPECT_EQ("is an object whose property `fancy_name` is >= 0", Describe(m));
4117
+ EXPECT_EQ("is an object whose property `fancy_name` isn't >= 0",
4118
+ DescribeNegation(m));
4119
+ }
4120
+
3781
4121
  // Tests that Property() can explain the result of matching a pointer.
3782
4122
  TEST(PropertyForPointerTest, CanExplainMatchResult) {
3783
4123
  Matcher<const AClass*> m = Property(&AClass::n, Ge(0));
3784
4124
 
3785
4125
  AClass a;
3786
4126
  a.set_n(1);
3787
- EXPECT_EQ("", Explain(m, static_cast<const AClass*>(NULL)));
4127
+ EXPECT_EQ("", Explain(m, static_cast<const AClass*>(nullptr)));
3788
4128
  EXPECT_EQ(
3789
4129
  "which points to an object whose given property is 1" + OfType("int"),
3790
4130
  Explain(m, &a));
@@ -3795,14 +4135,32 @@ TEST(PropertyForPointerTest, CanExplainMatchResult) {
3795
4135
  Explain(m, &a));
3796
4136
  }
3797
4137
 
4138
+ TEST(PropertyForPointerTest, CanExplainMatchResultWithPropertyName) {
4139
+ Matcher<const AClass*> m = Property("fancy_name", &AClass::n, Ge(0));
4140
+
4141
+ AClass a;
4142
+ a.set_n(1);
4143
+ EXPECT_EQ("", Explain(m, static_cast<const AClass*>(nullptr)));
4144
+ EXPECT_EQ("which points to an object whose property `fancy_name` is 1" +
4145
+ OfType("int"),
4146
+ Explain(m, &a));
4147
+
4148
+ m = Property("fancy_name", &AClass::n, GreaterThan(0));
4149
+ EXPECT_EQ("which points to an object whose property `fancy_name` is 1" +
4150
+ OfType("int") + ", which is 1 more than 0",
4151
+ Explain(m, &a));
4152
+ }
4153
+
3798
4154
  // Tests ResultOf.
3799
4155
 
3800
4156
  // Tests that ResultOf(f, ...) compiles and works as expected when f is a
3801
4157
  // function pointer.
3802
- string IntToStringFunction(int input) { return input == 1 ? "foo" : "bar"; }
4158
+ std::string IntToStringFunction(int input) {
4159
+ return input == 1 ? "foo" : "bar";
4160
+ }
3803
4161
 
3804
4162
  TEST(ResultOfTest, WorksForFunctionPointers) {
3805
- Matcher<int> matcher = ResultOf(&IntToStringFunction, Eq(string("foo")));
4163
+ Matcher<int> matcher = ResultOf(&IntToStringFunction, Eq(std::string("foo")));
3806
4164
 
3807
4165
  EXPECT_TRUE(matcher.Matches(1));
3808
4166
  EXPECT_FALSE(matcher.Matches(2));
@@ -3868,12 +4226,12 @@ TEST(ResultOfTest, WorksForReferenceToNonConstResults) {
3868
4226
 
3869
4227
  // Tests that ResultOf(f, ...) compiles and works as expected when f(x)
3870
4228
  // returns a reference to const.
3871
- const string& StringFunction(const string& input) { return input; }
4229
+ const std::string& StringFunction(const std::string& input) { return input; }
3872
4230
 
3873
4231
  TEST(ResultOfTest, WorksForReferenceToConstResults) {
3874
- string s = "foo";
3875
- string s2 = s;
3876
- Matcher<const string&> matcher = ResultOf(&StringFunction, Ref(s));
4232
+ std::string s = "foo";
4233
+ std::string s2 = s;
4234
+ Matcher<const std::string&> matcher = ResultOf(&StringFunction, Ref(s));
3877
4235
 
3878
4236
  EXPECT_TRUE(matcher.Matches(s));
3879
4237
  EXPECT_FALSE(matcher.Matches(s2));
@@ -3893,8 +4251,9 @@ TEST(ResultOfTest, WorksForCompatibleMatcherTypes) {
3893
4251
  // a NULL function pointer.
3894
4252
  TEST(ResultOfDeathTest, DiesOnNullFunctionPointers) {
3895
4253
  EXPECT_DEATH_IF_SUPPORTED(
3896
- ResultOf(static_cast<string(*)(int dummy)>(NULL), Eq(string("foo"))),
3897
- "NULL function pointer is passed into ResultOf\\(\\)\\.");
4254
+ ResultOf(static_cast<std::string (*)(int dummy)>(nullptr),
4255
+ Eq(std::string("foo"))),
4256
+ "NULL function pointer is passed into ResultOf\\(\\)\\.");
3898
4257
  }
3899
4258
 
3900
4259
  // Tests that ResultOf(f, ...) compiles and works as expected when f is a
@@ -3907,26 +4266,27 @@ TEST(ResultOfTest, WorksForFunctionReferences) {
3907
4266
 
3908
4267
  // Tests that ResultOf(f, ...) compiles and works as expected when f is a
3909
4268
  // function object.
3910
- struct Functor : public ::std::unary_function<int, string> {
4269
+ struct Functor : public ::std::unary_function<int, std::string> {
3911
4270
  result_type operator()(argument_type input) const {
3912
4271
  return IntToStringFunction(input);
3913
4272
  }
3914
4273
  };
3915
4274
 
3916
4275
  TEST(ResultOfTest, WorksForFunctors) {
3917
- Matcher<int> matcher = ResultOf(Functor(), Eq(string("foo")));
4276
+ Matcher<int> matcher = ResultOf(Functor(), Eq(std::string("foo")));
3918
4277
 
3919
4278
  EXPECT_TRUE(matcher.Matches(1));
3920
4279
  EXPECT_FALSE(matcher.Matches(2));
3921
4280
  }
3922
4281
 
3923
4282
  // Tests that ResultOf(f, ...) compiles and works as expected when f is a
3924
- // functor with more then one operator() defined. ResultOf() must work
4283
+ // functor with more than one operator() defined. ResultOf() must work
3925
4284
  // for each defined operator().
3926
4285
  struct PolymorphicFunctor {
3927
4286
  typedef int result_type;
3928
4287
  int operator()(int n) { return n; }
3929
4288
  int operator()(const char* s) { return static_cast<int>(strlen(s)); }
4289
+ std::string operator()(int *p) { return p ? "good ptr" : "null"; }
3930
4290
  };
3931
4291
 
3932
4292
  TEST(ResultOfTest, WorksForPolymorphicFunctors) {
@@ -3941,6 +4301,21 @@ TEST(ResultOfTest, WorksForPolymorphicFunctors) {
3941
4301
  EXPECT_FALSE(matcher_string.Matches("shrt"));
3942
4302
  }
3943
4303
 
4304
+ TEST(ResultOfTest, WorksForPolymorphicFunctorsIgnoringResultType) {
4305
+ Matcher<int*> matcher = ResultOf(PolymorphicFunctor(), "good ptr");
4306
+
4307
+ int n = 0;
4308
+ EXPECT_TRUE(matcher.Matches(&n));
4309
+ EXPECT_FALSE(matcher.Matches(nullptr));
4310
+ }
4311
+
4312
+ TEST(ResultOfTest, WorksForLambdas) {
4313
+ Matcher<int> matcher =
4314
+ ResultOf([](int str_len) { return std::string(str_len, 'x'); }, "xxx");
4315
+ EXPECT_TRUE(matcher.Matches(3));
4316
+ EXPECT_FALSE(matcher.Matches(1));
4317
+ }
4318
+
3944
4319
  const int* ReferencingFunction(const int& n) { return &n; }
3945
4320
 
3946
4321
  struct ReferencingFunctor {
@@ -4080,11 +4455,11 @@ TEST(IsEmptyTest, ImplementsIsEmpty) {
4080
4455
  }
4081
4456
 
4082
4457
  TEST(IsEmptyTest, WorksWithString) {
4083
- string text;
4458
+ std::string text;
4084
4459
  EXPECT_THAT(text, IsEmpty());
4085
4460
  text = "foo";
4086
4461
  EXPECT_THAT(text, Not(IsEmpty()));
4087
- text = string("\0", 1);
4462
+ text = std::string("\0", 1);
4088
4463
  EXPECT_THAT(text, Not(IsEmpty()));
4089
4464
  }
4090
4465
 
@@ -4102,6 +4477,48 @@ TEST(IsEmptyTest, ExplainsResult) {
4102
4477
  EXPECT_EQ("whose size is 1", Explain(m, container));
4103
4478
  }
4104
4479
 
4480
+ TEST(IsEmptyTest, WorksWithMoveOnly) {
4481
+ ContainerHelper helper;
4482
+ EXPECT_CALL(helper, Call(IsEmpty()));
4483
+ helper.Call({});
4484
+ }
4485
+
4486
+ TEST(IsTrueTest, IsTrueIsFalse) {
4487
+ EXPECT_THAT(true, IsTrue());
4488
+ EXPECT_THAT(false, IsFalse());
4489
+ EXPECT_THAT(true, Not(IsFalse()));
4490
+ EXPECT_THAT(false, Not(IsTrue()));
4491
+ EXPECT_THAT(0, Not(IsTrue()));
4492
+ EXPECT_THAT(0, IsFalse());
4493
+ EXPECT_THAT(nullptr, Not(IsTrue()));
4494
+ EXPECT_THAT(nullptr, IsFalse());
4495
+ EXPECT_THAT(-1, IsTrue());
4496
+ EXPECT_THAT(-1, Not(IsFalse()));
4497
+ EXPECT_THAT(1, IsTrue());
4498
+ EXPECT_THAT(1, Not(IsFalse()));
4499
+ EXPECT_THAT(2, IsTrue());
4500
+ EXPECT_THAT(2, Not(IsFalse()));
4501
+ int a = 42;
4502
+ EXPECT_THAT(a, IsTrue());
4503
+ EXPECT_THAT(a, Not(IsFalse()));
4504
+ EXPECT_THAT(&a, IsTrue());
4505
+ EXPECT_THAT(&a, Not(IsFalse()));
4506
+ EXPECT_THAT(false, Not(IsTrue()));
4507
+ EXPECT_THAT(true, Not(IsFalse()));
4508
+ EXPECT_THAT(std::true_type(), IsTrue());
4509
+ EXPECT_THAT(std::true_type(), Not(IsFalse()));
4510
+ EXPECT_THAT(std::false_type(), IsFalse());
4511
+ EXPECT_THAT(std::false_type(), Not(IsTrue()));
4512
+ EXPECT_THAT(nullptr, Not(IsTrue()));
4513
+ EXPECT_THAT(nullptr, IsFalse());
4514
+ std::unique_ptr<int> null_unique;
4515
+ std::unique_ptr<int> nonnull_unique(new int(0));
4516
+ EXPECT_THAT(null_unique, Not(IsTrue()));
4517
+ EXPECT_THAT(null_unique, IsFalse());
4518
+ EXPECT_THAT(nonnull_unique, IsTrue());
4519
+ EXPECT_THAT(nonnull_unique, Not(IsFalse()));
4520
+ }
4521
+
4105
4522
  TEST(SizeIsTest, ImplementsSizeIs) {
4106
4523
  vector<int> container;
4107
4524
  EXPECT_THAT(container, SizeIs(0));
@@ -4115,7 +4532,7 @@ TEST(SizeIsTest, ImplementsSizeIs) {
4115
4532
  }
4116
4533
 
4117
4534
  TEST(SizeIsTest, WorksWithMap) {
4118
- map<string, int> container;
4535
+ map<std::string, int> container;
4119
4536
  EXPECT_THAT(container, SizeIs(0));
4120
4537
  EXPECT_THAT(container, Not(SizeIs(1)));
4121
4538
  container.insert(make_pair("foo", 1));
@@ -4134,6 +4551,23 @@ TEST(SizeIsTest, WorksWithReferences) {
4134
4551
  EXPECT_THAT(container, m);
4135
4552
  }
4136
4553
 
4554
+ TEST(SizeIsTest, WorksWithMoveOnly) {
4555
+ ContainerHelper helper;
4556
+ EXPECT_CALL(helper, Call(SizeIs(3)));
4557
+ helper.Call(MakeUniquePtrs({1, 2, 3}));
4558
+ }
4559
+
4560
+ // SizeIs should work for any type that provides a size() member function.
4561
+ // For example, a size_type member type should not need to be provided.
4562
+ struct MinimalistCustomType {
4563
+ int size() const { return 1; }
4564
+ };
4565
+ TEST(SizeIsTest, WorksWithMinimalistCustomType) {
4566
+ MinimalistCustomType container;
4567
+ EXPECT_THAT(container, SizeIs(1));
4568
+ EXPECT_THAT(container, Not(SizeIs(0)));
4569
+ }
4570
+
4137
4571
  TEST(SizeIsTest, CanDescribeSelf) {
4138
4572
  Matcher<vector<int> > m = SizeIs(2);
4139
4573
  EXPECT_EQ("size is equal to 2", Describe(m));
@@ -4174,7 +4608,7 @@ typedef testing::Types<
4174
4608
  list<int> >
4175
4609
  ContainerEqTestTypes;
4176
4610
 
4177
- TYPED_TEST_CASE(ContainerEqTest, ContainerEqTestTypes);
4611
+ TYPED_TEST_SUITE(ContainerEqTest, ContainerEqTestTypes);
4178
4612
 
4179
4613
  // Tests that the filled container is equal to itself.
4180
4614
  TYPED_TEST(ContainerEqTest, EqualsSelf) {
@@ -4234,8 +4668,8 @@ TYPED_TEST(ContainerEqTest, DuplicateDifference) {
4234
4668
  }
4235
4669
  #endif // GTEST_HAS_TYPED_TEST
4236
4670
 
4237
- // Tests that mutliple missing values are reported.
4238
- // Using just vector here, so order is predicatble.
4671
+ // Tests that multiple missing values are reported.
4672
+ // Using just vector here, so order is predictable.
4239
4673
  TEST(ContainerEqExtraTest, MultipleValuesMissing) {
4240
4674
  static const int vals[] = {1, 1, 2, 3, 5, 8};
4241
4675
  static const int test_vals[] = {2, 1, 5};
@@ -4248,7 +4682,7 @@ TEST(ContainerEqExtraTest, MultipleValuesMissing) {
4248
4682
  }
4249
4683
 
4250
4684
  // Tests that added values are reported.
4251
- // Using just vector here, so order is predicatble.
4685
+ // Using just vector here, so order is predictable.
4252
4686
  TEST(ContainerEqExtraTest, MultipleValuesAdded) {
4253
4687
  static const int vals[] = {1, 1, 2, 3, 5, 8};
4254
4688
  static const int test_vals[] = {1, 2, 92, 3, 5, 8, 46};
@@ -4336,11 +4770,11 @@ TEST(ContainerEqExtraTest, WorksForNativeArrayAsTuple) {
4336
4770
  const int b[] = {1, 2, 3, 4};
4337
4771
 
4338
4772
  const int* const p1 = a1;
4339
- EXPECT_THAT(make_tuple(p1, 3), ContainerEq(a2));
4340
- EXPECT_THAT(make_tuple(p1, 3), Not(ContainerEq(b)));
4773
+ EXPECT_THAT(std::make_tuple(p1, 3), ContainerEq(a2));
4774
+ EXPECT_THAT(std::make_tuple(p1, 3), Not(ContainerEq(b)));
4341
4775
 
4342
4776
  const int c[] = {1, 3, 2};
4343
- EXPECT_THAT(make_tuple(p1, 3), Not(ContainerEq(c)));
4777
+ EXPECT_THAT(std::make_tuple(p1, 3), Not(ContainerEq(c)));
4344
4778
  }
4345
4779
 
4346
4780
  TEST(ContainerEqExtraTest, CopiesNativeArrayParameter) {
@@ -4380,13 +4814,13 @@ TEST(WhenSortedByTest, WorksForNonEmptyContainer) {
4380
4814
  }
4381
4815
 
4382
4816
  TEST(WhenSortedByTest, WorksForNonVectorContainer) {
4383
- list<string> words;
4817
+ list<std::string> words;
4384
4818
  words.push_back("say");
4385
4819
  words.push_back("hello");
4386
4820
  words.push_back("world");
4387
- EXPECT_THAT(words, WhenSortedBy(less<string>(),
4821
+ EXPECT_THAT(words, WhenSortedBy(less<std::string>(),
4388
4822
  ElementsAre("hello", "say", "world")));
4389
- EXPECT_THAT(words, Not(WhenSortedBy(less<string>(),
4823
+ EXPECT_THAT(words, Not(WhenSortedBy(less<std::string>(),
4390
4824
  ElementsAre("say", "hello", "world"))));
4391
4825
  }
4392
4826
 
@@ -4429,7 +4863,7 @@ TEST(WhenSortedTest, WorksForEmptyContainer) {
4429
4863
  }
4430
4864
 
4431
4865
  TEST(WhenSortedTest, WorksForNonEmptyContainer) {
4432
- list<string> words;
4866
+ list<std::string> words;
4433
4867
  words.push_back("3");
4434
4868
  words.push_back("1");
4435
4869
  words.push_back("2");
@@ -4439,14 +4873,16 @@ TEST(WhenSortedTest, WorksForNonEmptyContainer) {
4439
4873
  }
4440
4874
 
4441
4875
  TEST(WhenSortedTest, WorksForMapTypes) {
4442
- map<string, int> word_counts;
4443
- word_counts["and"] = 1;
4444
- word_counts["the"] = 1;
4445
- word_counts["buffalo"] = 2;
4446
- EXPECT_THAT(word_counts, WhenSorted(ElementsAre(
4447
- Pair("and", 1), Pair("buffalo", 2), Pair("the", 1))));
4448
- EXPECT_THAT(word_counts, Not(WhenSorted(ElementsAre(
4449
- Pair("and", 1), Pair("the", 1), Pair("buffalo", 2)))));
4876
+ map<std::string, int> word_counts;
4877
+ word_counts["and"] = 1;
4878
+ word_counts["the"] = 1;
4879
+ word_counts["buffalo"] = 2;
4880
+ EXPECT_THAT(word_counts,
4881
+ WhenSorted(ElementsAre(Pair("and", 1), Pair("buffalo", 2),
4882
+ Pair("the", 1))));
4883
+ EXPECT_THAT(word_counts,
4884
+ Not(WhenSorted(ElementsAre(Pair("and", 1), Pair("the", 1),
4885
+ Pair("buffalo", 2)))));
4450
4886
  }
4451
4887
 
4452
4888
  TEST(WhenSortedTest, WorksForMultiMapTypes) {
@@ -4580,7 +5016,6 @@ TEST(StreamlikeTest, Iteration) {
4580
5016
  }
4581
5017
  }
4582
5018
 
4583
- #if GTEST_HAS_STD_FORWARD_LIST_
4584
5019
  TEST(BeginEndDistanceIsTest, WorksWithForwardList) {
4585
5020
  std::forward_list<int> container;
4586
5021
  EXPECT_THAT(container, BeginEndDistanceIs(0));
@@ -4592,7 +5027,6 @@ TEST(BeginEndDistanceIsTest, WorksWithForwardList) {
4592
5027
  EXPECT_THAT(container, Not(BeginEndDistanceIs(0)));
4593
5028
  EXPECT_THAT(container, BeginEndDistanceIs(2));
4594
5029
  }
4595
- #endif // GTEST_HAS_STD_FORWARD_LIST_
4596
5030
 
4597
5031
  TEST(BeginEndDistanceIsTest, WorksWithNonStdList) {
4598
5032
  const int a[5] = {1, 2, 3, 4, 5};
@@ -4607,6 +5041,12 @@ TEST(BeginEndDistanceIsTest, CanDescribeSelf) {
4607
5041
  DescribeNegation(m));
4608
5042
  }
4609
5043
 
5044
+ TEST(BeginEndDistanceIsTest, WorksWithMoveOnly) {
5045
+ ContainerHelper helper;
5046
+ EXPECT_CALL(helper, Call(BeginEndDistanceIs(2)));
5047
+ helper.Call(MakeUniquePtrs({1, 2}));
5048
+ }
5049
+
4610
5050
  TEST(BeginEndDistanceIsTest, ExplainsResult) {
4611
5051
  Matcher<vector<int> > m1 = BeginEndDistanceIs(2);
4612
5052
  Matcher<vector<int> > m2 = BeginEndDistanceIs(Lt(2));
@@ -4654,6 +5094,262 @@ TEST(WhenSortedTest, WorksForVectorConstRefMatcherOnStreamlike) {
4654
5094
  EXPECT_THAT(s, Not(WhenSorted(ElementsAre(2, 1, 4, 5, 3))));
4655
5095
  }
4656
5096
 
5097
+ TEST(IsSupersetOfTest, WorksForNativeArray) {
5098
+ const int subset[] = {1, 4};
5099
+ const int superset[] = {1, 2, 4};
5100
+ const int disjoint[] = {1, 0, 3};
5101
+ EXPECT_THAT(subset, IsSupersetOf(subset));
5102
+ EXPECT_THAT(subset, Not(IsSupersetOf(superset)));
5103
+ EXPECT_THAT(superset, IsSupersetOf(subset));
5104
+ EXPECT_THAT(subset, Not(IsSupersetOf(disjoint)));
5105
+ EXPECT_THAT(disjoint, Not(IsSupersetOf(subset)));
5106
+ }
5107
+
5108
+ TEST(IsSupersetOfTest, WorksWithDuplicates) {
5109
+ const int not_enough[] = {1, 2};
5110
+ const int enough[] = {1, 1, 2};
5111
+ const int expected[] = {1, 1};
5112
+ EXPECT_THAT(not_enough, Not(IsSupersetOf(expected)));
5113
+ EXPECT_THAT(enough, IsSupersetOf(expected));
5114
+ }
5115
+
5116
+ TEST(IsSupersetOfTest, WorksForEmpty) {
5117
+ vector<int> numbers;
5118
+ vector<int> expected;
5119
+ EXPECT_THAT(numbers, IsSupersetOf(expected));
5120
+ expected.push_back(1);
5121
+ EXPECT_THAT(numbers, Not(IsSupersetOf(expected)));
5122
+ expected.clear();
5123
+ numbers.push_back(1);
5124
+ numbers.push_back(2);
5125
+ EXPECT_THAT(numbers, IsSupersetOf(expected));
5126
+ expected.push_back(1);
5127
+ EXPECT_THAT(numbers, IsSupersetOf(expected));
5128
+ expected.push_back(2);
5129
+ EXPECT_THAT(numbers, IsSupersetOf(expected));
5130
+ expected.push_back(3);
5131
+ EXPECT_THAT(numbers, Not(IsSupersetOf(expected)));
5132
+ }
5133
+
5134
+ TEST(IsSupersetOfTest, WorksForStreamlike) {
5135
+ const int a[5] = {1, 2, 3, 4, 5};
5136
+ Streamlike<int> s(a, a + GTEST_ARRAY_SIZE_(a));
5137
+
5138
+ vector<int> expected;
5139
+ expected.push_back(1);
5140
+ expected.push_back(2);
5141
+ expected.push_back(5);
5142
+ EXPECT_THAT(s, IsSupersetOf(expected));
5143
+
5144
+ expected.push_back(0);
5145
+ EXPECT_THAT(s, Not(IsSupersetOf(expected)));
5146
+ }
5147
+
5148
+ TEST(IsSupersetOfTest, TakesStlContainer) {
5149
+ const int actual[] = {3, 1, 2};
5150
+
5151
+ ::std::list<int> expected;
5152
+ expected.push_back(1);
5153
+ expected.push_back(3);
5154
+ EXPECT_THAT(actual, IsSupersetOf(expected));
5155
+
5156
+ expected.push_back(4);
5157
+ EXPECT_THAT(actual, Not(IsSupersetOf(expected)));
5158
+ }
5159
+
5160
+ TEST(IsSupersetOfTest, Describe) {
5161
+ typedef std::vector<int> IntVec;
5162
+ IntVec expected;
5163
+ expected.push_back(111);
5164
+ expected.push_back(222);
5165
+ expected.push_back(333);
5166
+ EXPECT_THAT(
5167
+ Describe<IntVec>(IsSupersetOf(expected)),
5168
+ Eq("a surjection from elements to requirements exists such that:\n"
5169
+ " - an element is equal to 111\n"
5170
+ " - an element is equal to 222\n"
5171
+ " - an element is equal to 333"));
5172
+ }
5173
+
5174
+ TEST(IsSupersetOfTest, DescribeNegation) {
5175
+ typedef std::vector<int> IntVec;
5176
+ IntVec expected;
5177
+ expected.push_back(111);
5178
+ expected.push_back(222);
5179
+ expected.push_back(333);
5180
+ EXPECT_THAT(
5181
+ DescribeNegation<IntVec>(IsSupersetOf(expected)),
5182
+ Eq("no surjection from elements to requirements exists such that:\n"
5183
+ " - an element is equal to 111\n"
5184
+ " - an element is equal to 222\n"
5185
+ " - an element is equal to 333"));
5186
+ }
5187
+
5188
+ TEST(IsSupersetOfTest, MatchAndExplain) {
5189
+ std::vector<int> v;
5190
+ v.push_back(2);
5191
+ v.push_back(3);
5192
+ std::vector<int> expected;
5193
+ expected.push_back(1);
5194
+ expected.push_back(2);
5195
+ StringMatchResultListener listener;
5196
+ ASSERT_FALSE(ExplainMatchResult(IsSupersetOf(expected), v, &listener))
5197
+ << listener.str();
5198
+ EXPECT_THAT(listener.str(),
5199
+ Eq("where the following matchers don't match any elements:\n"
5200
+ "matcher #0: is equal to 1"));
5201
+
5202
+ v.push_back(1);
5203
+ listener.Clear();
5204
+ ASSERT_TRUE(ExplainMatchResult(IsSupersetOf(expected), v, &listener))
5205
+ << listener.str();
5206
+ EXPECT_THAT(listener.str(), Eq("where:\n"
5207
+ " - element #0 is matched by matcher #1,\n"
5208
+ " - element #2 is matched by matcher #0"));
5209
+ }
5210
+
5211
+ TEST(IsSupersetOfTest, WorksForRhsInitializerList) {
5212
+ const int numbers[] = {1, 3, 6, 2, 4, 5};
5213
+ EXPECT_THAT(numbers, IsSupersetOf({1, 2}));
5214
+ EXPECT_THAT(numbers, Not(IsSupersetOf({3, 0})));
5215
+ }
5216
+
5217
+ TEST(IsSupersetOfTest, WorksWithMoveOnly) {
5218
+ ContainerHelper helper;
5219
+ EXPECT_CALL(helper, Call(IsSupersetOf({Pointee(1)})));
5220
+ helper.Call(MakeUniquePtrs({1, 2}));
5221
+ EXPECT_CALL(helper, Call(Not(IsSupersetOf({Pointee(1), Pointee(2)}))));
5222
+ helper.Call(MakeUniquePtrs({2}));
5223
+ }
5224
+
5225
+ TEST(IsSubsetOfTest, WorksForNativeArray) {
5226
+ const int subset[] = {1, 4};
5227
+ const int superset[] = {1, 2, 4};
5228
+ const int disjoint[] = {1, 0, 3};
5229
+ EXPECT_THAT(subset, IsSubsetOf(subset));
5230
+ EXPECT_THAT(subset, IsSubsetOf(superset));
5231
+ EXPECT_THAT(superset, Not(IsSubsetOf(subset)));
5232
+ EXPECT_THAT(subset, Not(IsSubsetOf(disjoint)));
5233
+ EXPECT_THAT(disjoint, Not(IsSubsetOf(subset)));
5234
+ }
5235
+
5236
+ TEST(IsSubsetOfTest, WorksWithDuplicates) {
5237
+ const int not_enough[] = {1, 2};
5238
+ const int enough[] = {1, 1, 2};
5239
+ const int actual[] = {1, 1};
5240
+ EXPECT_THAT(actual, Not(IsSubsetOf(not_enough)));
5241
+ EXPECT_THAT(actual, IsSubsetOf(enough));
5242
+ }
5243
+
5244
+ TEST(IsSubsetOfTest, WorksForEmpty) {
5245
+ vector<int> numbers;
5246
+ vector<int> expected;
5247
+ EXPECT_THAT(numbers, IsSubsetOf(expected));
5248
+ expected.push_back(1);
5249
+ EXPECT_THAT(numbers, IsSubsetOf(expected));
5250
+ expected.clear();
5251
+ numbers.push_back(1);
5252
+ numbers.push_back(2);
5253
+ EXPECT_THAT(numbers, Not(IsSubsetOf(expected)));
5254
+ expected.push_back(1);
5255
+ EXPECT_THAT(numbers, Not(IsSubsetOf(expected)));
5256
+ expected.push_back(2);
5257
+ EXPECT_THAT(numbers, IsSubsetOf(expected));
5258
+ expected.push_back(3);
5259
+ EXPECT_THAT(numbers, IsSubsetOf(expected));
5260
+ }
5261
+
5262
+ TEST(IsSubsetOfTest, WorksForStreamlike) {
5263
+ const int a[5] = {1, 2};
5264
+ Streamlike<int> s(a, a + GTEST_ARRAY_SIZE_(a));
5265
+
5266
+ vector<int> expected;
5267
+ expected.push_back(1);
5268
+ EXPECT_THAT(s, Not(IsSubsetOf(expected)));
5269
+ expected.push_back(2);
5270
+ expected.push_back(5);
5271
+ EXPECT_THAT(s, IsSubsetOf(expected));
5272
+ }
5273
+
5274
+ TEST(IsSubsetOfTest, TakesStlContainer) {
5275
+ const int actual[] = {3, 1, 2};
5276
+
5277
+ ::std::list<int> expected;
5278
+ expected.push_back(1);
5279
+ expected.push_back(3);
5280
+ EXPECT_THAT(actual, Not(IsSubsetOf(expected)));
5281
+
5282
+ expected.push_back(2);
5283
+ expected.push_back(4);
5284
+ EXPECT_THAT(actual, IsSubsetOf(expected));
5285
+ }
5286
+
5287
+ TEST(IsSubsetOfTest, Describe) {
5288
+ typedef std::vector<int> IntVec;
5289
+ IntVec expected;
5290
+ expected.push_back(111);
5291
+ expected.push_back(222);
5292
+ expected.push_back(333);
5293
+
5294
+ EXPECT_THAT(
5295
+ Describe<IntVec>(IsSubsetOf(expected)),
5296
+ Eq("an injection from elements to requirements exists such that:\n"
5297
+ " - an element is equal to 111\n"
5298
+ " - an element is equal to 222\n"
5299
+ " - an element is equal to 333"));
5300
+ }
5301
+
5302
+ TEST(IsSubsetOfTest, DescribeNegation) {
5303
+ typedef std::vector<int> IntVec;
5304
+ IntVec expected;
5305
+ expected.push_back(111);
5306
+ expected.push_back(222);
5307
+ expected.push_back(333);
5308
+ EXPECT_THAT(
5309
+ DescribeNegation<IntVec>(IsSubsetOf(expected)),
5310
+ Eq("no injection from elements to requirements exists such that:\n"
5311
+ " - an element is equal to 111\n"
5312
+ " - an element is equal to 222\n"
5313
+ " - an element is equal to 333"));
5314
+ }
5315
+
5316
+ TEST(IsSubsetOfTest, MatchAndExplain) {
5317
+ std::vector<int> v;
5318
+ v.push_back(2);
5319
+ v.push_back(3);
5320
+ std::vector<int> expected;
5321
+ expected.push_back(1);
5322
+ expected.push_back(2);
5323
+ StringMatchResultListener listener;
5324
+ ASSERT_FALSE(ExplainMatchResult(IsSubsetOf(expected), v, &listener))
5325
+ << listener.str();
5326
+ EXPECT_THAT(listener.str(),
5327
+ Eq("where the following elements don't match any matchers:\n"
5328
+ "element #1: 3"));
5329
+
5330
+ expected.push_back(3);
5331
+ listener.Clear();
5332
+ ASSERT_TRUE(ExplainMatchResult(IsSubsetOf(expected), v, &listener))
5333
+ << listener.str();
5334
+ EXPECT_THAT(listener.str(), Eq("where:\n"
5335
+ " - element #0 is matched by matcher #1,\n"
5336
+ " - element #1 is matched by matcher #2"));
5337
+ }
5338
+
5339
+ TEST(IsSubsetOfTest, WorksForRhsInitializerList) {
5340
+ const int numbers[] = {1, 2, 3};
5341
+ EXPECT_THAT(numbers, IsSubsetOf({1, 2, 3, 4}));
5342
+ EXPECT_THAT(numbers, Not(IsSubsetOf({1, 2})));
5343
+ }
5344
+
5345
+ TEST(IsSubsetOfTest, WorksWithMoveOnly) {
5346
+ ContainerHelper helper;
5347
+ EXPECT_CALL(helper, Call(IsSubsetOf({Pointee(1), Pointee(2)})));
5348
+ helper.Call(MakeUniquePtrs({1}));
5349
+ EXPECT_CALL(helper, Call(Not(IsSubsetOf({Pointee(1)}))));
5350
+ helper.Call(MakeUniquePtrs({2}));
5351
+ }
5352
+
4657
5353
  // Tests using ElementsAre() and ElementsAreArray() with stream-like
4658
5354
  // "containers".
4659
5355
 
@@ -4687,6 +5383,15 @@ TEST(ElementsAreTest, WorksWithUncopyable) {
4687
5383
  EXPECT_THAT(objs, ElementsAre(UncopyableIs(-3), Truly(ValueIsPositive)));
4688
5384
  }
4689
5385
 
5386
+ TEST(ElementsAreTest, WorksWithMoveOnly) {
5387
+ ContainerHelper helper;
5388
+ EXPECT_CALL(helper, Call(ElementsAre(Pointee(1), Pointee(2))));
5389
+ helper.Call(MakeUniquePtrs({1, 2}));
5390
+
5391
+ EXPECT_CALL(helper, Call(ElementsAreArray({Pointee(3), Pointee(4)})));
5392
+ helper.Call(MakeUniquePtrs({3, 4}));
5393
+ }
5394
+
4690
5395
  TEST(ElementsAreTest, TakesStlContainer) {
4691
5396
  const int actual[] = {3, 1, 2};
4692
5397
 
@@ -4754,7 +5459,6 @@ TEST(UnorderedElementsAreArrayTest, TakesStlContainer) {
4754
5459
  EXPECT_THAT(actual, Not(UnorderedElementsAreArray(expected)));
4755
5460
  }
4756
5461
 
4757
- #if GTEST_HAS_STD_INITIALIZER_LIST_
4758
5462
 
4759
5463
  TEST(UnorderedElementsAreArrayTest, TakesInitializerList) {
4760
5464
  const int a[5] = {2, 1, 4, 5, 3};
@@ -4763,7 +5467,7 @@ TEST(UnorderedElementsAreArrayTest, TakesInitializerList) {
4763
5467
  }
4764
5468
 
4765
5469
  TEST(UnorderedElementsAreArrayTest, TakesInitializerListOfCStrings) {
4766
- const string a[5] = {"a", "b", "c", "d", "e"};
5470
+ const std::string a[5] = {"a", "b", "c", "d", "e"};
4767
5471
  EXPECT_THAT(a, UnorderedElementsAreArray({"a", "b", "c", "d", "e"}));
4768
5472
  EXPECT_THAT(a, Not(UnorderedElementsAreArray({"a", "b", "c", "d", "ef"})));
4769
5473
  }
@@ -4788,7 +5492,13 @@ TEST(UnorderedElementsAreArrayTest,
4788
5492
  {Eq(1), Ne(-2), Ge(3), Le(4), Eq(6)})));
4789
5493
  }
4790
5494
 
4791
- #endif // GTEST_HAS_STD_INITIALIZER_LIST_
5495
+
5496
+ TEST(UnorderedElementsAreArrayTest, WorksWithMoveOnly) {
5497
+ ContainerHelper helper;
5498
+ EXPECT_CALL(helper,
5499
+ Call(UnorderedElementsAreArray({Pointee(1), Pointee(2)})));
5500
+ helper.Call(MakeUniquePtrs({2, 1}));
5501
+ }
4792
5502
 
4793
5503
  class UnorderedElementsAreTest : public testing::Test {
4794
5504
  protected:
@@ -4837,6 +5547,12 @@ TEST_F(UnorderedElementsAreTest, WorksForStreamlike) {
4837
5547
  EXPECT_THAT(s, Not(UnorderedElementsAre(2, 2, 3, 4, 5)));
4838
5548
  }
4839
5549
 
5550
+ TEST_F(UnorderedElementsAreTest, WorksWithMoveOnly) {
5551
+ ContainerHelper helper;
5552
+ EXPECT_CALL(helper, Call(UnorderedElementsAre(Pointee(1), Pointee(2))));
5553
+ helper.Call(MakeUniquePtrs({2, 1}));
5554
+ }
5555
+
4840
5556
  // One naive implementation of the matcher runs in O(N!) time, which is too
4841
5557
  // slow for many real-world inputs. This test shows that our matcher can match
4842
5558
  // 100 inputs very quickly (a few milliseconds). An O(100!) is 10^158
@@ -4937,7 +5653,7 @@ TEST_F(UnorderedElementsAreTest, FailMessageUnmatchedMatcherAndElement) {
4937
5653
  }
4938
5654
 
4939
5655
  // Test helper for formatting element, matcher index pairs in expectations.
4940
- static string EMString(int element, int matcher) {
5656
+ static std::string EMString(int element, int matcher) {
4941
5657
  stringstream ss;
4942
5658
  ss << "(element #" << element << ", matcher #" << matcher << ")";
4943
5659
  return ss.str();
@@ -4946,7 +5662,7 @@ static string EMString(int element, int matcher) {
4946
5662
  TEST_F(UnorderedElementsAreTest, FailMessageImperfectMatchOnly) {
4947
5663
  // A situation where all elements and matchers have a match
4948
5664
  // associated with them, but the max matching is not perfect.
4949
- std::vector<string> v;
5665
+ std::vector<std::string> v;
4950
5666
  v.push_back("a");
4951
5667
  v.push_back("b");
4952
5668
  v.push_back("c");
@@ -4955,7 +5671,7 @@ TEST_F(UnorderedElementsAreTest, FailMessageImperfectMatchOnly) {
4955
5671
  UnorderedElementsAre("a", "a", AnyOf("b", "c")), v, &listener))
4956
5672
  << listener.str();
4957
5673
 
4958
- string prefix =
5674
+ std::string prefix =
4959
5675
  "where no permutation of the elements can satisfy all matchers, "
4960
5676
  "and the closest match is 2 of 3 matchers with the "
4961
5677
  "pairings:\n";
@@ -5124,7 +5840,7 @@ TEST_P(BipartiteTest, Exhaustive) {
5124
5840
  } while (graph.NextGraph());
5125
5841
  }
5126
5842
 
5127
- INSTANTIATE_TEST_CASE_P(AllGraphs, BipartiteTest,
5843
+ INSTANTIATE_TEST_SUITE_P(AllGraphs, BipartiteTest,
5128
5844
  ::testing::Range(0, 5));
5129
5845
 
5130
5846
  // Parameterized by a pair interpreted as (LhsSize, RhsSize).
@@ -5167,7 +5883,7 @@ TEST_P(BipartiteNonSquareTest, Exhaustive) {
5167
5883
  } while (graph.NextGraph());
5168
5884
  }
5169
5885
 
5170
- INSTANTIATE_TEST_CASE_P(AllGraphs, BipartiteNonSquareTest,
5886
+ INSTANTIATE_TEST_SUITE_P(AllGraphs, BipartiteNonSquareTest,
5171
5887
  testing::Values(
5172
5888
  std::make_pair(1, 2),
5173
5889
  std::make_pair(2, 1),
@@ -5190,7 +5906,7 @@ TEST_P(BipartiteRandomTest, LargerNets) {
5190
5906
 
5191
5907
  testing::internal::Int32 seed = GTEST_FLAG(random_seed);
5192
5908
  if (seed == 0) {
5193
- seed = static_cast<testing::internal::Int32>(time(NULL));
5909
+ seed = static_cast<testing::internal::Int32>(time(nullptr));
5194
5910
  }
5195
5911
 
5196
5912
  for (; iters > 0; --iters, ++seed) {
@@ -5205,7 +5921,7 @@ TEST_P(BipartiteRandomTest, LargerNets) {
5205
5921
  }
5206
5922
 
5207
5923
  // Test argument is a std::pair<int, int> representing (nodes, iters).
5208
- INSTANTIATE_TEST_CASE_P(Samples, BipartiteRandomTest,
5924
+ INSTANTIATE_TEST_SUITE_P(Samples, BipartiteRandomTest,
5209
5925
  testing::Values(
5210
5926
  std::make_pair(5, 10000),
5211
5927
  std::make_pair(6, 5000),
@@ -5238,28 +5954,6 @@ TEST(IsReadableTypeNameTest, ReturnsFalseForLongFunctionTypeNames) {
5238
5954
  EXPECT_FALSE(IsReadableTypeName("void (&)(int, bool, char, float)"));
5239
5955
  }
5240
5956
 
5241
- // Tests JoinAsTuple().
5242
-
5243
- TEST(JoinAsTupleTest, JoinsEmptyTuple) {
5244
- EXPECT_EQ("", JoinAsTuple(Strings()));
5245
- }
5246
-
5247
- TEST(JoinAsTupleTest, JoinsOneTuple) {
5248
- const char* fields[] = {"1"};
5249
- EXPECT_EQ("1", JoinAsTuple(Strings(fields, fields + 1)));
5250
- }
5251
-
5252
- TEST(JoinAsTupleTest, JoinsTwoTuple) {
5253
- const char* fields[] = {"1", "a"};
5254
- EXPECT_EQ("(1, a)", JoinAsTuple(Strings(fields, fields + 2)));
5255
- }
5256
-
5257
- TEST(JoinAsTupleTest, JoinsTenTuple) {
5258
- const char* fields[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
5259
- EXPECT_EQ("(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)",
5260
- JoinAsTuple(Strings(fields, fields + 10)));
5261
- }
5262
-
5263
5957
  // Tests FormatMatcherDescription().
5264
5958
 
5265
5959
  TEST(FormatMatcherDescriptionTest, WorksForEmptyDescription) {
@@ -5298,13 +5992,15 @@ TEST(PolymorphicMatcherTest, CanAccessImpl) {
5298
5992
 
5299
5993
  TEST(MatcherTupleTest, ExplainsMatchFailure) {
5300
5994
  stringstream ss1;
5301
- ExplainMatchFailureTupleTo(make_tuple(Matcher<char>(Eq('a')), GreaterThan(5)),
5302
- make_tuple('a', 10), &ss1);
5995
+ ExplainMatchFailureTupleTo(
5996
+ std::make_tuple(Matcher<char>(Eq('a')), GreaterThan(5)),
5997
+ std::make_tuple('a', 10), &ss1);
5303
5998
  EXPECT_EQ("", ss1.str()); // Successful match.
5304
5999
 
5305
6000
  stringstream ss2;
5306
- ExplainMatchFailureTupleTo(make_tuple(GreaterThan(5), Matcher<char>(Eq('a'))),
5307
- make_tuple(2, 'b'), &ss2);
6001
+ ExplainMatchFailureTupleTo(
6002
+ std::make_tuple(GreaterThan(5), Matcher<char>(Eq('a'))),
6003
+ std::make_tuple(2, 'b'), &ss2);
5308
6004
  EXPECT_EQ(" Expected arg #0: is > 5\n"
5309
6005
  " Actual: 2, which is 3 less than 5\n"
5310
6006
  " Expected arg #1: is equal to 'a' (97, 0x61)\n"
@@ -5312,8 +6008,9 @@ TEST(MatcherTupleTest, ExplainsMatchFailure) {
5312
6008
  ss2.str()); // Failed match where both arguments need explanation.
5313
6009
 
5314
6010
  stringstream ss3;
5315
- ExplainMatchFailureTupleTo(make_tuple(GreaterThan(5), Matcher<char>(Eq('a'))),
5316
- make_tuple(2, 'a'), &ss3);
6011
+ ExplainMatchFailureTupleTo(
6012
+ std::make_tuple(GreaterThan(5), Matcher<char>(Eq('a'))),
6013
+ std::make_tuple(2, 'a'), &ss3);
5317
6014
  EXPECT_EQ(" Expected arg #0: is > 5\n"
5318
6015
  " Actual: 2, which is 3 less than 5\n",
5319
6016
  ss3.str()); // Failed match where only one argument needs
@@ -5366,13 +6063,13 @@ TEST(EachTest, MatchesVectorWhenAllElementsMatch) {
5366
6063
  EXPECT_THAT(some_vector, Not(Each(3)));
5367
6064
  EXPECT_THAT(some_vector, Each(Lt(3.5)));
5368
6065
 
5369
- vector<string> another_vector;
6066
+ vector<std::string> another_vector;
5370
6067
  another_vector.push_back("fee");
5371
- EXPECT_THAT(another_vector, Each(string("fee")));
6068
+ EXPECT_THAT(another_vector, Each(std::string("fee")));
5372
6069
  another_vector.push_back("fie");
5373
6070
  another_vector.push_back("foe");
5374
6071
  another_vector.push_back("fum");
5375
- EXPECT_THAT(another_vector, Not(Each(string("fee"))));
6072
+ EXPECT_THAT(another_vector, Not(Each(std::string("fee"))));
5376
6073
  }
5377
6074
 
5378
6075
  TEST(EachTest, MatchesMapWhenAllElementsMatch) {
@@ -5381,15 +6078,15 @@ TEST(EachTest, MatchesMapWhenAllElementsMatch) {
5381
6078
  my_map[bar] = 2;
5382
6079
  EXPECT_THAT(my_map, Each(make_pair(bar, 2)));
5383
6080
 
5384
- map<string, int> another_map;
5385
- EXPECT_THAT(another_map, Each(make_pair(string("fee"), 1)));
6081
+ map<std::string, int> another_map;
6082
+ EXPECT_THAT(another_map, Each(make_pair(std::string("fee"), 1)));
5386
6083
  another_map["fee"] = 1;
5387
- EXPECT_THAT(another_map, Each(make_pair(string("fee"), 1)));
6084
+ EXPECT_THAT(another_map, Each(make_pair(std::string("fee"), 1)));
5388
6085
  another_map["fie"] = 2;
5389
6086
  another_map["foe"] = 3;
5390
6087
  another_map["fum"] = 4;
5391
- EXPECT_THAT(another_map, Not(Each(make_pair(string("fee"), 1))));
5392
- EXPECT_THAT(another_map, Not(Each(make_pair(string("fum"), 1))));
6088
+ EXPECT_THAT(another_map, Not(Each(make_pair(std::string("fee"), 1))));
6089
+ EXPECT_THAT(another_map, Not(Each(make_pair(std::string("fum"), 1))));
5393
6090
  EXPECT_THAT(another_map, Each(Pair(_, Gt(0))));
5394
6091
  }
5395
6092
 
@@ -5402,21 +6099,27 @@ TEST(EachTest, AcceptsMatcher) {
5402
6099
  TEST(EachTest, WorksForNativeArrayAsTuple) {
5403
6100
  const int a[] = {1, 2};
5404
6101
  const int* const pointer = a;
5405
- EXPECT_THAT(make_tuple(pointer, 2), Each(Gt(0)));
5406
- EXPECT_THAT(make_tuple(pointer, 2), Not(Each(Gt(1))));
6102
+ EXPECT_THAT(std::make_tuple(pointer, 2), Each(Gt(0)));
6103
+ EXPECT_THAT(std::make_tuple(pointer, 2), Not(Each(Gt(1))));
6104
+ }
6105
+
6106
+ TEST(EachTest, WorksWithMoveOnly) {
6107
+ ContainerHelper helper;
6108
+ EXPECT_CALL(helper, Call(Each(Pointee(Gt(0)))));
6109
+ helper.Call(MakeUniquePtrs({1, 2}));
5407
6110
  }
5408
6111
 
5409
6112
  // For testing Pointwise().
5410
6113
  class IsHalfOfMatcher {
5411
6114
  public:
5412
6115
  template <typename T1, typename T2>
5413
- bool MatchAndExplain(const tuple<T1, T2>& a_pair,
6116
+ bool MatchAndExplain(const std::tuple<T1, T2>& a_pair,
5414
6117
  MatchResultListener* listener) const {
5415
- if (get<0>(a_pair) == get<1>(a_pair)/2) {
5416
- *listener << "where the second is " << get<1>(a_pair);
6118
+ if (std::get<0>(a_pair) == std::get<1>(a_pair) / 2) {
6119
+ *listener << "where the second is " << std::get<1>(a_pair);
5417
6120
  return true;
5418
6121
  } else {
5419
- *listener << "where the second/2 is " << get<1>(a_pair)/2;
6122
+ *listener << "where the second/2 is " << std::get<1>(a_pair) / 2;
5420
6123
  return false;
5421
6124
  }
5422
6125
  }
@@ -5483,7 +6186,16 @@ TEST(PointwiseTest, WorksForRhsNativeArray) {
5483
6186
  EXPECT_THAT(lhs, Not(Pointwise(Lt(), rhs)));
5484
6187
  }
5485
6188
 
5486
- #if GTEST_HAS_STD_INITIALIZER_LIST_
6189
+ // Test is effective only with sanitizers.
6190
+ TEST(PointwiseTest, WorksForVectorOfBool) {
6191
+ vector<bool> rhs(3, false);
6192
+ rhs[1] = true;
6193
+ vector<bool> lhs = rhs;
6194
+ EXPECT_THAT(lhs, Pointwise(Eq(), rhs));
6195
+ rhs[0] = true;
6196
+ EXPECT_THAT(lhs, Not(Pointwise(Eq(), rhs)));
6197
+ }
6198
+
5487
6199
 
5488
6200
  TEST(PointwiseTest, WorksForRhsInitializerList) {
5489
6201
  const vector<int> lhs{2, 4, 6};
@@ -5491,7 +6203,6 @@ TEST(PointwiseTest, WorksForRhsInitializerList) {
5491
6203
  EXPECT_THAT(lhs, Not(Pointwise(Lt(), {3, 3, 7})));
5492
6204
  }
5493
6205
 
5494
- #endif // GTEST_HAS_STD_INITIALIZER_LIST_
5495
6206
 
5496
6207
  TEST(PointwiseTest, RejectsWrongSize) {
5497
6208
  const double lhs[2] = {1, 2};
@@ -5523,17 +6234,28 @@ TEST(PointwiseTest, AcceptsCorrectContent) {
5523
6234
  TEST(PointwiseTest, AllowsMonomorphicInnerMatcher) {
5524
6235
  const double lhs[3] = {1, 2, 3};
5525
6236
  const int rhs[3] = {2, 4, 6};
5526
- const Matcher<tuple<const double&, const int&> > m1 = IsHalfOf();
6237
+ const Matcher<std::tuple<const double&, const int&>> m1 = IsHalfOf();
5527
6238
  EXPECT_THAT(lhs, Pointwise(m1, rhs));
5528
6239
  EXPECT_EQ("", Explain(Pointwise(m1, rhs), lhs));
5529
6240
 
5530
- // This type works as a tuple<const double&, const int&> can be
5531
- // implicitly cast to tuple<double, int>.
5532
- const Matcher<tuple<double, int> > m2 = IsHalfOf();
6241
+ // This type works as a std::tuple<const double&, const int&> can be
6242
+ // implicitly cast to std::tuple<double, int>.
6243
+ const Matcher<std::tuple<double, int>> m2 = IsHalfOf();
5533
6244
  EXPECT_THAT(lhs, Pointwise(m2, rhs));
5534
6245
  EXPECT_EQ("", Explain(Pointwise(m2, rhs), lhs));
5535
6246
  }
5536
6247
 
6248
+ MATCHER(PointeeEquals, "Points to an equal value") {
6249
+ return ExplainMatchResult(::testing::Pointee(::testing::get<1>(arg)),
6250
+ ::testing::get<0>(arg), result_listener);
6251
+ }
6252
+
6253
+ TEST(PointwiseTest, WorksWithMoveOnly) {
6254
+ ContainerHelper helper;
6255
+ EXPECT_CALL(helper, Call(Pointwise(PointeeEquals(), std::vector<int>{1, 2})));
6256
+ helper.Call(MakeUniquePtrs({1, 2}));
6257
+ }
6258
+
5537
6259
  TEST(UnorderedPointwiseTest, DescribesSelf) {
5538
6260
  vector<int> rhs;
5539
6261
  rhs.push_back(1);
@@ -5594,7 +6316,6 @@ TEST(UnorderedPointwiseTest, WorksForRhsNativeArray) {
5594
6316
  EXPECT_THAT(lhs, Not(UnorderedPointwise(Lt(), rhs)));
5595
6317
  }
5596
6318
 
5597
- #if GTEST_HAS_STD_INITIALIZER_LIST_
5598
6319
 
5599
6320
  TEST(UnorderedPointwiseTest, WorksForRhsInitializerList) {
5600
6321
  const vector<int> lhs{2, 4, 6};
@@ -5602,7 +6323,6 @@ TEST(UnorderedPointwiseTest, WorksForRhsInitializerList) {
5602
6323
  EXPECT_THAT(lhs, Not(UnorderedPointwise(Lt(), {1, 1, 7})));
5603
6324
  }
5604
6325
 
5605
- #endif // GTEST_HAS_STD_INITIALIZER_LIST_
5606
6326
 
5607
6327
  TEST(UnorderedPointwiseTest, RejectsWrongSize) {
5608
6328
  const double lhs[2] = {1, 2};
@@ -5639,14 +6359,431 @@ TEST(UnorderedPointwiseTest, AcceptsCorrectContentInDifferentOrder) {
5639
6359
  TEST(UnorderedPointwiseTest, AllowsMonomorphicInnerMatcher) {
5640
6360
  const double lhs[3] = {1, 2, 3};
5641
6361
  const int rhs[3] = {4, 6, 2};
5642
- const Matcher<tuple<const double&, const int&> > m1 = IsHalfOf();
6362
+ const Matcher<std::tuple<const double&, const int&>> m1 = IsHalfOf();
5643
6363
  EXPECT_THAT(lhs, UnorderedPointwise(m1, rhs));
5644
6364
 
5645
- // This type works as a tuple<const double&, const int&> can be
5646
- // implicitly cast to tuple<double, int>.
5647
- const Matcher<tuple<double, int> > m2 = IsHalfOf();
6365
+ // This type works as a std::tuple<const double&, const int&> can be
6366
+ // implicitly cast to std::tuple<double, int>.
6367
+ const Matcher<std::tuple<double, int>> m2 = IsHalfOf();
5648
6368
  EXPECT_THAT(lhs, UnorderedPointwise(m2, rhs));
5649
6369
  }
5650
6370
 
6371
+ TEST(UnorderedPointwiseTest, WorksWithMoveOnly) {
6372
+ ContainerHelper helper;
6373
+ EXPECT_CALL(helper, Call(UnorderedPointwise(PointeeEquals(),
6374
+ std::vector<int>{1, 2})));
6375
+ helper.Call(MakeUniquePtrs({2, 1}));
6376
+ }
6377
+
6378
+ // Sample optional type implementation with minimal requirements for use with
6379
+ // Optional matcher.
6380
+ template <typename T>
6381
+ class SampleOptional {
6382
+ public:
6383
+ using value_type = T;
6384
+ explicit SampleOptional(T value)
6385
+ : value_(std::move(value)), has_value_(true) {}
6386
+ SampleOptional() : value_(), has_value_(false) {}
6387
+ operator bool() const { return has_value_; }
6388
+ const T& operator*() const { return value_; }
6389
+
6390
+ private:
6391
+ T value_;
6392
+ bool has_value_;
6393
+ };
6394
+
6395
+ TEST(OptionalTest, DescribesSelf) {
6396
+ const Matcher<SampleOptional<int>> m = Optional(Eq(1));
6397
+ EXPECT_EQ("value is equal to 1", Describe(m));
6398
+ }
6399
+
6400
+ TEST(OptionalTest, ExplainsSelf) {
6401
+ const Matcher<SampleOptional<int>> m = Optional(Eq(1));
6402
+ EXPECT_EQ("whose value 1 matches", Explain(m, SampleOptional<int>(1)));
6403
+ EXPECT_EQ("whose value 2 doesn't match", Explain(m, SampleOptional<int>(2)));
6404
+ }
6405
+
6406
+ TEST(OptionalTest, MatchesNonEmptyOptional) {
6407
+ const Matcher<SampleOptional<int>> m1 = Optional(1);
6408
+ const Matcher<SampleOptional<int>> m2 = Optional(Eq(2));
6409
+ const Matcher<SampleOptional<int>> m3 = Optional(Lt(3));
6410
+ SampleOptional<int> opt(1);
6411
+ EXPECT_TRUE(m1.Matches(opt));
6412
+ EXPECT_FALSE(m2.Matches(opt));
6413
+ EXPECT_TRUE(m3.Matches(opt));
6414
+ }
6415
+
6416
+ TEST(OptionalTest, DoesNotMatchNullopt) {
6417
+ const Matcher<SampleOptional<int>> m = Optional(1);
6418
+ SampleOptional<int> empty;
6419
+ EXPECT_FALSE(m.Matches(empty));
6420
+ }
6421
+
6422
+ TEST(OptionalTest, WorksWithMoveOnly) {
6423
+ Matcher<SampleOptional<std::unique_ptr<int>>> m = Optional(Eq(nullptr));
6424
+ EXPECT_TRUE(m.Matches(SampleOptional<std::unique_ptr<int>>(nullptr)));
6425
+ }
6426
+
6427
+ class SampleVariantIntString {
6428
+ public:
6429
+ SampleVariantIntString(int i) : i_(i), has_int_(true) {}
6430
+ SampleVariantIntString(const std::string& s) : s_(s), has_int_(false) {}
6431
+
6432
+ template <typename T>
6433
+ friend bool holds_alternative(const SampleVariantIntString& value) {
6434
+ return value.has_int_ == internal::IsSame<T, int>::value;
6435
+ }
6436
+
6437
+ template <typename T>
6438
+ friend const T& get(const SampleVariantIntString& value) {
6439
+ return value.get_impl(static_cast<T*>(nullptr));
6440
+ }
6441
+
6442
+ private:
6443
+ const int& get_impl(int*) const { return i_; }
6444
+ const std::string& get_impl(std::string*) const { return s_; }
6445
+
6446
+ int i_;
6447
+ std::string s_;
6448
+ bool has_int_;
6449
+ };
6450
+
6451
+ TEST(VariantTest, DescribesSelf) {
6452
+ const Matcher<SampleVariantIntString> m = VariantWith<int>(Eq(1));
6453
+ EXPECT_THAT(Describe(m), ContainsRegex("is a variant<> with value of type "
6454
+ "'.*' and the value is equal to 1"));
6455
+ }
6456
+
6457
+ TEST(VariantTest, ExplainsSelf) {
6458
+ const Matcher<SampleVariantIntString> m = VariantWith<int>(Eq(1));
6459
+ EXPECT_THAT(Explain(m, SampleVariantIntString(1)),
6460
+ ContainsRegex("whose value 1"));
6461
+ EXPECT_THAT(Explain(m, SampleVariantIntString("A")),
6462
+ HasSubstr("whose value is not of type '"));
6463
+ EXPECT_THAT(Explain(m, SampleVariantIntString(2)),
6464
+ "whose value 2 doesn't match");
6465
+ }
6466
+
6467
+ TEST(VariantTest, FullMatch) {
6468
+ Matcher<SampleVariantIntString> m = VariantWith<int>(Eq(1));
6469
+ EXPECT_TRUE(m.Matches(SampleVariantIntString(1)));
6470
+
6471
+ m = VariantWith<std::string>(Eq("1"));
6472
+ EXPECT_TRUE(m.Matches(SampleVariantIntString("1")));
6473
+ }
6474
+
6475
+ TEST(VariantTest, TypeDoesNotMatch) {
6476
+ Matcher<SampleVariantIntString> m = VariantWith<int>(Eq(1));
6477
+ EXPECT_FALSE(m.Matches(SampleVariantIntString("1")));
6478
+
6479
+ m = VariantWith<std::string>(Eq("1"));
6480
+ EXPECT_FALSE(m.Matches(SampleVariantIntString(1)));
6481
+ }
6482
+
6483
+ TEST(VariantTest, InnerDoesNotMatch) {
6484
+ Matcher<SampleVariantIntString> m = VariantWith<int>(Eq(1));
6485
+ EXPECT_FALSE(m.Matches(SampleVariantIntString(2)));
6486
+
6487
+ m = VariantWith<std::string>(Eq("1"));
6488
+ EXPECT_FALSE(m.Matches(SampleVariantIntString("2")));
6489
+ }
6490
+
6491
+ class SampleAnyType {
6492
+ public:
6493
+ explicit SampleAnyType(int i) : index_(0), i_(i) {}
6494
+ explicit SampleAnyType(const std::string& s) : index_(1), s_(s) {}
6495
+
6496
+ template <typename T>
6497
+ friend const T* any_cast(const SampleAnyType* any) {
6498
+ return any->get_impl(static_cast<T*>(nullptr));
6499
+ }
6500
+
6501
+ private:
6502
+ int index_;
6503
+ int i_;
6504
+ std::string s_;
6505
+
6506
+ const int* get_impl(int*) const { return index_ == 0 ? &i_ : nullptr; }
6507
+ const std::string* get_impl(std::string*) const {
6508
+ return index_ == 1 ? &s_ : nullptr;
6509
+ }
6510
+ };
6511
+
6512
+ TEST(AnyWithTest, FullMatch) {
6513
+ Matcher<SampleAnyType> m = AnyWith<int>(Eq(1));
6514
+ EXPECT_TRUE(m.Matches(SampleAnyType(1)));
6515
+ }
6516
+
6517
+ TEST(AnyWithTest, TestBadCastType) {
6518
+ Matcher<SampleAnyType> m = AnyWith<std::string>(Eq("fail"));
6519
+ EXPECT_FALSE(m.Matches(SampleAnyType(1)));
6520
+ }
6521
+
6522
+ TEST(AnyWithTest, TestUseInContainers) {
6523
+ std::vector<SampleAnyType> a;
6524
+ a.emplace_back(1);
6525
+ a.emplace_back(2);
6526
+ a.emplace_back(3);
6527
+ EXPECT_THAT(
6528
+ a, ElementsAreArray({AnyWith<int>(1), AnyWith<int>(2), AnyWith<int>(3)}));
6529
+
6530
+ std::vector<SampleAnyType> b;
6531
+ b.emplace_back("hello");
6532
+ b.emplace_back("merhaba");
6533
+ b.emplace_back("salut");
6534
+ EXPECT_THAT(b, ElementsAreArray({AnyWith<std::string>("hello"),
6535
+ AnyWith<std::string>("merhaba"),
6536
+ AnyWith<std::string>("salut")}));
6537
+ }
6538
+ TEST(AnyWithTest, TestCompare) {
6539
+ EXPECT_THAT(SampleAnyType(1), AnyWith<int>(Gt(0)));
6540
+ }
6541
+
6542
+ TEST(AnyWithTest, DescribesSelf) {
6543
+ const Matcher<const SampleAnyType&> m = AnyWith<int>(Eq(1));
6544
+ EXPECT_THAT(Describe(m), ContainsRegex("is an 'any' type with value of type "
6545
+ "'.*' and the value is equal to 1"));
6546
+ }
6547
+
6548
+ TEST(AnyWithTest, ExplainsSelf) {
6549
+ const Matcher<const SampleAnyType&> m = AnyWith<int>(Eq(1));
6550
+
6551
+ EXPECT_THAT(Explain(m, SampleAnyType(1)), ContainsRegex("whose value 1"));
6552
+ EXPECT_THAT(Explain(m, SampleAnyType("A")),
6553
+ HasSubstr("whose value is not of type '"));
6554
+ EXPECT_THAT(Explain(m, SampleAnyType(2)), "whose value 2 doesn't match");
6555
+ }
6556
+
6557
+ TEST(PointeeTest, WorksOnMoveOnlyType) {
6558
+ std::unique_ptr<int> p(new int(3));
6559
+ EXPECT_THAT(p, Pointee(Eq(3)));
6560
+ EXPECT_THAT(p, Not(Pointee(Eq(2))));
6561
+ }
6562
+
6563
+ TEST(NotTest, WorksOnMoveOnlyType) {
6564
+ std::unique_ptr<int> p(new int(3));
6565
+ EXPECT_THAT(p, Pointee(Eq(3)));
6566
+ EXPECT_THAT(p, Not(Pointee(Eq(2))));
6567
+ }
6568
+
6569
+ // Tests Args<k0, ..., kn>(m).
6570
+
6571
+ TEST(ArgsTest, AcceptsZeroTemplateArg) {
6572
+ const std::tuple<int, bool> t(5, true);
6573
+ EXPECT_THAT(t, Args<>(Eq(std::tuple<>())));
6574
+ EXPECT_THAT(t, Not(Args<>(Ne(std::tuple<>()))));
6575
+ }
6576
+
6577
+ TEST(ArgsTest, AcceptsOneTemplateArg) {
6578
+ const std::tuple<int, bool> t(5, true);
6579
+ EXPECT_THAT(t, Args<0>(Eq(std::make_tuple(5))));
6580
+ EXPECT_THAT(t, Args<1>(Eq(std::make_tuple(true))));
6581
+ EXPECT_THAT(t, Not(Args<1>(Eq(std::make_tuple(false)))));
6582
+ }
6583
+
6584
+ TEST(ArgsTest, AcceptsTwoTemplateArgs) {
6585
+ const std::tuple<short, int, long> t(4, 5, 6L); // NOLINT
6586
+
6587
+ EXPECT_THAT(t, (Args<0, 1>(Lt())));
6588
+ EXPECT_THAT(t, (Args<1, 2>(Lt())));
6589
+ EXPECT_THAT(t, Not(Args<0, 2>(Gt())));
6590
+ }
6591
+
6592
+ TEST(ArgsTest, AcceptsRepeatedTemplateArgs) {
6593
+ const std::tuple<short, int, long> t(4, 5, 6L); // NOLINT
6594
+ EXPECT_THAT(t, (Args<0, 0>(Eq())));
6595
+ EXPECT_THAT(t, Not(Args<1, 1>(Ne())));
6596
+ }
6597
+
6598
+ TEST(ArgsTest, AcceptsDecreasingTemplateArgs) {
6599
+ const std::tuple<short, int, long> t(4, 5, 6L); // NOLINT
6600
+ EXPECT_THAT(t, (Args<2, 0>(Gt())));
6601
+ EXPECT_THAT(t, Not(Args<2, 1>(Lt())));
6602
+ }
6603
+
6604
+ MATCHER(SumIsZero, "") {
6605
+ return std::get<0>(arg) + std::get<1>(arg) + std::get<2>(arg) == 0;
6606
+ }
6607
+
6608
+ TEST(ArgsTest, AcceptsMoreTemplateArgsThanArityOfOriginalTuple) {
6609
+ EXPECT_THAT(std::make_tuple(-1, 2), (Args<0, 0, 1>(SumIsZero())));
6610
+ EXPECT_THAT(std::make_tuple(1, 2), Not(Args<0, 0, 1>(SumIsZero())));
6611
+ }
6612
+
6613
+ TEST(ArgsTest, CanBeNested) {
6614
+ const std::tuple<short, int, long, int> t(4, 5, 6L, 6); // NOLINT
6615
+ EXPECT_THAT(t, (Args<1, 2, 3>(Args<1, 2>(Eq()))));
6616
+ EXPECT_THAT(t, (Args<0, 1, 3>(Args<0, 2>(Lt()))));
6617
+ }
6618
+
6619
+ TEST(ArgsTest, CanMatchTupleByValue) {
6620
+ typedef std::tuple<char, int, int> Tuple3;
6621
+ const Matcher<Tuple3> m = Args<1, 2>(Lt());
6622
+ EXPECT_TRUE(m.Matches(Tuple3('a', 1, 2)));
6623
+ EXPECT_FALSE(m.Matches(Tuple3('b', 2, 2)));
6624
+ }
6625
+
6626
+ TEST(ArgsTest, CanMatchTupleByReference) {
6627
+ typedef std::tuple<char, char, int> Tuple3;
6628
+ const Matcher<const Tuple3&> m = Args<0, 1>(Lt());
6629
+ EXPECT_TRUE(m.Matches(Tuple3('a', 'b', 2)));
6630
+ EXPECT_FALSE(m.Matches(Tuple3('b', 'b', 2)));
6631
+ }
6632
+
6633
+ // Validates that arg is printed as str.
6634
+ MATCHER_P(PrintsAs, str, "") {
6635
+ return testing::PrintToString(arg) == str;
6636
+ }
6637
+
6638
+ TEST(ArgsTest, AcceptsTenTemplateArgs) {
6639
+ EXPECT_THAT(std::make_tuple(0, 1L, 2, 3L, 4, 5, 6, 7, 8, 9),
6640
+ (Args<9, 8, 7, 6, 5, 4, 3, 2, 1, 0>(
6641
+ PrintsAs("(9, 8, 7, 6, 5, 4, 3, 2, 1, 0)"))));
6642
+ EXPECT_THAT(std::make_tuple(0, 1L, 2, 3L, 4, 5, 6, 7, 8, 9),
6643
+ Not(Args<9, 8, 7, 6, 5, 4, 3, 2, 1, 0>(
6644
+ PrintsAs("(0, 8, 7, 6, 5, 4, 3, 2, 1, 0)"))));
6645
+ }
6646
+
6647
+ TEST(ArgsTest, DescirbesSelfCorrectly) {
6648
+ const Matcher<std::tuple<int, bool, char> > m = Args<2, 0>(Lt());
6649
+ EXPECT_EQ("are a tuple whose fields (#2, #0) are a pair where "
6650
+ "the first < the second",
6651
+ Describe(m));
6652
+ }
6653
+
6654
+ TEST(ArgsTest, DescirbesNestedArgsCorrectly) {
6655
+ const Matcher<const std::tuple<int, bool, char, int>&> m =
6656
+ Args<0, 2, 3>(Args<2, 0>(Lt()));
6657
+ EXPECT_EQ("are a tuple whose fields (#0, #2, #3) are a tuple "
6658
+ "whose fields (#2, #0) are a pair where the first < the second",
6659
+ Describe(m));
6660
+ }
6661
+
6662
+ TEST(ArgsTest, DescribesNegationCorrectly) {
6663
+ const Matcher<std::tuple<int, char> > m = Args<1, 0>(Gt());
6664
+ EXPECT_EQ("are a tuple whose fields (#1, #0) aren't a pair "
6665
+ "where the first > the second",
6666
+ DescribeNegation(m));
6667
+ }
6668
+
6669
+ TEST(ArgsTest, ExplainsMatchResultWithoutInnerExplanation) {
6670
+ const Matcher<std::tuple<bool, int, int> > m = Args<1, 2>(Eq());
6671
+ EXPECT_EQ("whose fields (#1, #2) are (42, 42)",
6672
+ Explain(m, std::make_tuple(false, 42, 42)));
6673
+ EXPECT_EQ("whose fields (#1, #2) are (42, 43)",
6674
+ Explain(m, std::make_tuple(false, 42, 43)));
6675
+ }
6676
+
6677
+ // For testing Args<>'s explanation.
6678
+ class LessThanMatcher : public MatcherInterface<std::tuple<char, int> > {
6679
+ public:
6680
+ void DescribeTo(::std::ostream* /*os*/) const override {}
6681
+
6682
+ bool MatchAndExplain(std::tuple<char, int> value,
6683
+ MatchResultListener* listener) const override {
6684
+ const int diff = std::get<0>(value) - std::get<1>(value);
6685
+ if (diff > 0) {
6686
+ *listener << "where the first value is " << diff
6687
+ << " more than the second";
6688
+ }
6689
+ return diff < 0;
6690
+ }
6691
+ };
6692
+
6693
+ Matcher<std::tuple<char, int> > LessThan() {
6694
+ return MakeMatcher(new LessThanMatcher);
6695
+ }
6696
+
6697
+ TEST(ArgsTest, ExplainsMatchResultWithInnerExplanation) {
6698
+ const Matcher<std::tuple<char, int, int> > m = Args<0, 2>(LessThan());
6699
+ EXPECT_EQ(
6700
+ "whose fields (#0, #2) are ('a' (97, 0x61), 42), "
6701
+ "where the first value is 55 more than the second",
6702
+ Explain(m, std::make_tuple('a', 42, 42)));
6703
+ EXPECT_EQ("whose fields (#0, #2) are ('\\0', 43)",
6704
+ Explain(m, std::make_tuple('\0', 42, 43)));
6705
+ }
6706
+
6707
+ class PredicateFormatterFromMatcherTest : public ::testing::Test {
6708
+ protected:
6709
+ enum Behavior { kInitialSuccess, kAlwaysFail, kFlaky };
6710
+
6711
+ // A matcher that can return different results when used multiple times on the
6712
+ // same input. No real matcher should do this; but this lets us test that we
6713
+ // detect such behavior and fail appropriately.
6714
+ class MockMatcher : public MatcherInterface<Behavior> {
6715
+ public:
6716
+ bool MatchAndExplain(Behavior behavior,
6717
+ MatchResultListener* listener) const override {
6718
+ *listener << "[MatchAndExplain]";
6719
+ switch (behavior) {
6720
+ case kInitialSuccess:
6721
+ // The first call to MatchAndExplain should use a "not interested"
6722
+ // listener; so this is expected to return |true|. There should be no
6723
+ // subsequent calls.
6724
+ return !listener->IsInterested();
6725
+
6726
+ case kAlwaysFail:
6727
+ return false;
6728
+
6729
+ case kFlaky:
6730
+ // The first call to MatchAndExplain should use a "not interested"
6731
+ // listener; so this will return |false|. Subsequent calls should have
6732
+ // an "interested" listener; so this will return |true|, thus
6733
+ // simulating a flaky matcher.
6734
+ return listener->IsInterested();
6735
+ }
6736
+
6737
+ GTEST_LOG_(FATAL) << "This should never be reached";
6738
+ return false;
6739
+ }
6740
+
6741
+ void DescribeTo(ostream* os) const override { *os << "[DescribeTo]"; }
6742
+
6743
+ void DescribeNegationTo(ostream* os) const override {
6744
+ *os << "[DescribeNegationTo]";
6745
+ }
6746
+ };
6747
+
6748
+ AssertionResult RunPredicateFormatter(Behavior behavior) {
6749
+ auto matcher = MakeMatcher(new MockMatcher);
6750
+ PredicateFormatterFromMatcher<Matcher<Behavior>> predicate_formatter(
6751
+ matcher);
6752
+ return predicate_formatter("dummy-name", behavior);
6753
+ }
6754
+ };
6755
+
6756
+ TEST_F(PredicateFormatterFromMatcherTest, ShortCircuitOnSuccess) {
6757
+ AssertionResult result = RunPredicateFormatter(kInitialSuccess);
6758
+ EXPECT_TRUE(result); // Implicit cast to bool.
6759
+ std::string expect;
6760
+ EXPECT_EQ(expect, result.message());
6761
+ }
6762
+
6763
+ TEST_F(PredicateFormatterFromMatcherTest, NoShortCircuitOnFailure) {
6764
+ AssertionResult result = RunPredicateFormatter(kAlwaysFail);
6765
+ EXPECT_FALSE(result); // Implicit cast to bool.
6766
+ std::string expect =
6767
+ "Value of: dummy-name\nExpected: [DescribeTo]\n"
6768
+ " Actual: 1, [MatchAndExplain]";
6769
+ EXPECT_EQ(expect, result.message());
6770
+ }
6771
+
6772
+ TEST_F(PredicateFormatterFromMatcherTest, DetectsFlakyShortCircuit) {
6773
+ AssertionResult result = RunPredicateFormatter(kFlaky);
6774
+ EXPECT_FALSE(result); // Implicit cast to bool.
6775
+ std::string expect =
6776
+ "Value of: dummy-name\nExpected: [DescribeTo]\n"
6777
+ " The matcher failed on the initial attempt; but passed when rerun to "
6778
+ "generate the explanation.\n"
6779
+ " Actual: 2, [MatchAndExplain]";
6780
+ EXPECT_EQ(expect, result.message());
6781
+ }
6782
+
6783
+ } // namespace
5651
6784
  } // namespace gmock_matchers_test
5652
6785
  } // namespace testing
6786
+
6787
+ #ifdef _MSC_VER
6788
+ # pragma warning(pop)
6789
+ #endif