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,10 +26,9 @@
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)
31
29
 
32
- // Google Test - The Google C++ Testing Framework
30
+
31
+ // Google Test - The Google C++ Testing and Mocking Framework
33
32
  //
34
33
  // This file implements a universal value printer that can print a
35
34
  // value of any type T:
@@ -43,12 +42,13 @@
43
42
  // defines Foo.
44
43
 
45
44
  #include "gtest/gtest-printers.h"
46
- #include <ctype.h>
47
45
  #include <stdio.h>
46
+ #include <cctype>
48
47
  #include <cwchar>
49
48
  #include <ostream> // NOLINT
50
49
  #include <string>
51
50
  #include "gtest/internal/gtest-port.h"
51
+ #include "src/gtest-internal-inl.h"
52
52
 
53
53
  namespace testing {
54
54
 
@@ -59,6 +59,7 @@ using ::std::ostream;
59
59
  // Prints a segment of bytes in the given object.
60
60
  GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
61
61
  GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
62
+ GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
62
63
  GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
63
64
  void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start,
64
65
  size_t count, ostream* os) {
@@ -89,7 +90,6 @@ void PrintBytesInObjectToImpl(const unsigned char* obj_bytes, size_t count,
89
90
  // If the object size is bigger than kThreshold, we'll have to omit
90
91
  // some details by printing only the first and the last kChunkSize
91
92
  // bytes.
92
- // TODO(wan): let the user control the threshold using a flag.
93
93
  if (count < kThreshold) {
94
94
  PrintByteSegmentInObjectTo(obj_bytes, 0, count, os);
95
95
  } else {
@@ -123,7 +123,7 @@ namespace internal {
123
123
  // Depending on the value of a char (or wchar_t), we print it in one
124
124
  // of three formats:
125
125
  // - as is if it's a printable ASCII (e.g. 'a', '2', ' '),
126
- // - as a hexidecimal escape sequence (e.g. '\x7F'), or
126
+ // - as a hexadecimal escape sequence (e.g. '\x7F'), or
127
127
  // - as a special escape sequence (e.g. '\r', '\n').
128
128
  enum CharFormat {
129
129
  kAsIs,
@@ -180,7 +180,10 @@ static CharFormat PrintAsCharLiteralTo(Char c, ostream* os) {
180
180
  *os << static_cast<char>(c);
181
181
  return kAsIs;
182
182
  } else {
183
- *os << "\\x" + String::FormatHexInt(static_cast<UnsignedChar>(c));
183
+ ostream::fmtflags flags = os->flags();
184
+ *os << "\\x" << std::hex << std::uppercase
185
+ << static_cast<int>(static_cast<UnsignedChar>(c));
186
+ os->flags(flags);
184
187
  return kHexEscape;
185
188
  }
186
189
  }
@@ -227,7 +230,7 @@ void PrintCharAndCodeTo(Char c, ostream* os) {
227
230
  return;
228
231
  *os << " (" << static_cast<int>(c);
229
232
 
230
- // For more convenience, we print c's code again in hexidecimal,
233
+ // For more convenience, we print c's code again in hexadecimal,
231
234
  // unless c was already printed in the form '\x##' or the code is in
232
235
  // [1, 9].
233
236
  if (format == kHexEscape || (1 <= c && c <= 9)) {
@@ -258,12 +261,14 @@ void PrintTo(wchar_t wc, ostream* os) {
258
261
  template <typename CharType>
259
262
  GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
260
263
  GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
264
+ GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
261
265
  GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
262
- static void PrintCharsAsStringTo(
266
+ static CharFormat PrintCharsAsStringTo(
263
267
  const CharType* begin, size_t len, ostream* os) {
264
268
  const char* const kQuoteBegin = sizeof(CharType) == 1 ? "\"" : "L\"";
265
269
  *os << kQuoteBegin;
266
270
  bool is_previous_hex = false;
271
+ CharFormat print_format = kAsIs;
267
272
  for (size_t index = 0; index < len; ++index) {
268
273
  const CharType cur = begin[index];
269
274
  if (is_previous_hex && IsXDigit(cur)) {
@@ -273,8 +278,13 @@ static void PrintCharsAsStringTo(
273
278
  *os << "\" " << kQuoteBegin;
274
279
  }
275
280
  is_previous_hex = PrintAsStringLiteralTo(cur, os) == kHexEscape;
281
+ // Remember if any characters required hex escaping.
282
+ if (is_previous_hex) {
283
+ print_format = kHexEscape;
284
+ }
276
285
  }
277
286
  *os << "\"";
287
+ return print_format;
278
288
  }
279
289
 
280
290
  // Prints a (const) char/wchar_t array of 'len' elements, starting at address
@@ -282,6 +292,7 @@ static void PrintCharsAsStringTo(
282
292
  template <typename CharType>
283
293
  GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
284
294
  GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
295
+ GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
285
296
  GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
286
297
  static void UniversalPrintCharArray(
287
298
  const CharType* begin, size_t len, ostream* os) {
@@ -318,7 +329,7 @@ void UniversalPrintArray(const wchar_t* begin, size_t len, ostream* os) {
318
329
 
319
330
  // Prints the given C string to the ostream.
320
331
  void PrintTo(const char* s, ostream* os) {
321
- if (s == NULL) {
332
+ if (s == nullptr) {
322
333
  *os << "NULL";
323
334
  } else {
324
335
  *os << ImplicitCast_<const void*>(s) << " pointing to ";
@@ -335,32 +346,89 @@ void PrintTo(const char* s, ostream* os) {
335
346
  #if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED)
336
347
  // Prints the given wide C string to the ostream.
337
348
  void PrintTo(const wchar_t* s, ostream* os) {
338
- if (s == NULL) {
349
+ if (s == nullptr) {
339
350
  *os << "NULL";
340
351
  } else {
341
352
  *os << ImplicitCast_<const void*>(s) << " pointing to ";
342
- PrintCharsAsStringTo(s, std::wcslen(s), os);
353
+ PrintCharsAsStringTo(s, wcslen(s), os);
343
354
  }
344
355
  }
345
356
  #endif // wchar_t is native
346
357
 
347
- // Prints a ::string object.
348
- #if GTEST_HAS_GLOBAL_STRING
349
- void PrintStringTo(const ::string& s, ostream* os) {
350
- PrintCharsAsStringTo(s.data(), s.size(), os);
358
+ namespace {
359
+
360
+ bool ContainsUnprintableControlCodes(const char* str, size_t length) {
361
+ const unsigned char *s = reinterpret_cast<const unsigned char *>(str);
362
+
363
+ for (size_t i = 0; i < length; i++) {
364
+ unsigned char ch = *s++;
365
+ if (std::iscntrl(ch)) {
366
+ switch (ch) {
367
+ case '\t':
368
+ case '\n':
369
+ case '\r':
370
+ break;
371
+ default:
372
+ return true;
373
+ }
374
+ }
375
+ }
376
+ return false;
351
377
  }
352
- #endif // GTEST_HAS_GLOBAL_STRING
353
378
 
354
- void PrintStringTo(const ::std::string& s, ostream* os) {
355
- PrintCharsAsStringTo(s.data(), s.size(), os);
379
+ bool IsUTF8TrailByte(unsigned char t) { return 0x80 <= t && t<= 0xbf; }
380
+
381
+ bool IsValidUTF8(const char* str, size_t length) {
382
+ const unsigned char *s = reinterpret_cast<const unsigned char *>(str);
383
+
384
+ for (size_t i = 0; i < length;) {
385
+ unsigned char lead = s[i++];
386
+
387
+ if (lead <= 0x7f) {
388
+ continue; // single-byte character (ASCII) 0..7F
389
+ }
390
+ if (lead < 0xc2) {
391
+ return false; // trail byte or non-shortest form
392
+ } else if (lead <= 0xdf && (i + 1) <= length && IsUTF8TrailByte(s[i])) {
393
+ ++i; // 2-byte character
394
+ } else if (0xe0 <= lead && lead <= 0xef && (i + 2) <= length &&
395
+ IsUTF8TrailByte(s[i]) &&
396
+ IsUTF8TrailByte(s[i + 1]) &&
397
+ // check for non-shortest form and surrogate
398
+ (lead != 0xe0 || s[i] >= 0xa0) &&
399
+ (lead != 0xed || s[i] < 0xa0)) {
400
+ i += 2; // 3-byte character
401
+ } else if (0xf0 <= lead && lead <= 0xf4 && (i + 3) <= length &&
402
+ IsUTF8TrailByte(s[i]) &&
403
+ IsUTF8TrailByte(s[i + 1]) &&
404
+ IsUTF8TrailByte(s[i + 2]) &&
405
+ // check for non-shortest form
406
+ (lead != 0xf0 || s[i] >= 0x90) &&
407
+ (lead != 0xf4 || s[i] < 0x90)) {
408
+ i += 3; // 4-byte character
409
+ } else {
410
+ return false;
411
+ }
412
+ }
413
+ return true;
356
414
  }
357
415
 
358
- // Prints a ::wstring object.
359
- #if GTEST_HAS_GLOBAL_WSTRING
360
- void PrintWideStringTo(const ::wstring& s, ostream* os) {
361
- PrintCharsAsStringTo(s.data(), s.size(), os);
416
+ void ConditionalPrintAsText(const char* str, size_t length, ostream* os) {
417
+ if (!ContainsUnprintableControlCodes(str, length) &&
418
+ IsValidUTF8(str, length)) {
419
+ *os << "\n As Text: \"" << str << "\"";
420
+ }
421
+ }
422
+
423
+ } // anonymous namespace
424
+
425
+ void PrintStringTo(const ::std::string& s, ostream* os) {
426
+ if (PrintCharsAsStringTo(s.data(), s.size(), os) == kHexEscape) {
427
+ if (GTEST_FLAG(print_utf8)) {
428
+ ConditionalPrintAsText(s.data(), s.size(), os);
429
+ }
430
+ }
362
431
  }
363
- #endif // GTEST_HAS_GLOBAL_WSTRING
364
432
 
365
433
  #if GTEST_HAS_STD_WSTRING
366
434
  void PrintWideStringTo(const ::std::wstring& s, ostream* os) {
@@ -26,21 +26,12 @@
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
+
29
30
  //
30
- // Author: mheule@google.com (Markus Heule)
31
- //
32
- // The Google C++ Testing Framework (Google Test)
31
+ // The Google C++ Testing and Mocking Framework (Google Test)
33
32
 
34
33
  #include "gtest/gtest-test-part.h"
35
-
36
- // Indicates that this translation unit is part of Google Test's
37
- // implementation. It must come before gtest-internal-inl.h is
38
- // included, or there will be a compiler error. This trick exists to
39
- // prevent the accidental inclusion of gtest-internal-inl.h in the
40
- // user's code.
41
- #define GTEST_IMPLEMENTATION_ 1
42
34
  #include "src/gtest-internal-inl.h"
43
- #undef GTEST_IMPLEMENTATION_
44
35
 
45
36
  namespace testing {
46
37
 
@@ -50,18 +41,21 @@ using internal::GetUnitTestImpl;
50
41
  // in it.
51
42
  std::string TestPartResult::ExtractSummary(const char* message) {
52
43
  const char* const stack_trace = strstr(message, internal::kStackTraceMarker);
53
- return stack_trace == NULL ? message :
54
- std::string(message, stack_trace);
44
+ return stack_trace == nullptr ? message : std::string(message, stack_trace);
55
45
  }
56
46
 
57
47
  // Prints a TestPartResult object.
58
48
  std::ostream& operator<<(std::ostream& os, const TestPartResult& result) {
59
- return os
60
- << result.file_name() << ":" << result.line_number() << ": "
61
- << (result.type() == TestPartResult::kSuccess ? "Success" :
62
- result.type() == TestPartResult::kFatalFailure ? "Fatal failure" :
63
- "Non-fatal failure") << ":\n"
64
- << result.message() << std::endl;
49
+ return os << result.file_name() << ":" << result.line_number() << ": "
50
+ << (result.type() == TestPartResult::kSuccess
51
+ ? "Success"
52
+ : result.type() == TestPartResult::kSkip
53
+ ? "Skipped"
54
+ : result.type() == TestPartResult::kFatalFailure
55
+ ? "Fatal failure"
56
+ : "Non-fatal failure")
57
+ << ":\n"
58
+ << result.message() << std::endl;
65
59
  }
66
60
 
67
61
  // Appends a TestPartResult to the array.
@@ -26,10 +26,10 @@
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
  #include "gtest/gtest-typed-test.h"
32
+
33
33
  #include "gtest/gtest.h"
34
34
 
35
35
  namespace testing {
@@ -48,7 +48,7 @@ static const char* SkipSpaces(const char* str) {
48
48
  static std::vector<std::string> SplitIntoTestNames(const char* src) {
49
49
  std::vector<std::string> name_vec;
50
50
  src = SkipSpaces(src);
51
- for (; src != NULL; src = SkipComma(src)) {
51
+ for (; src != nullptr; src = SkipComma(src)) {
52
52
  name_vec.push_back(StripTrailingSpaces(GetPrefixUntilComma(src)));
53
53
  }
54
54
  return name_vec;
@@ -57,7 +57,7 @@ static std::vector<std::string> SplitIntoTestNames(const char* src) {
57
57
  // Verifies that registered_tests match the test names in
58
58
  // registered_tests_; returns registered_tests if successful, or
59
59
  // aborts the program otherwise.
60
- const char* TypedTestCasePState::VerifyRegisteredTestNames(
60
+ const char* TypedTestSuitePState::VerifyRegisteredTestNames(
61
61
  const char* file, int line, const char* registered_tests) {
62
62
  typedef RegisteredTestsMap::const_iterator RegisteredTestIter;
63
63
  registered_ = true;
@@ -89,7 +89,7 @@ const char* TypedTestCasePState::VerifyRegisteredTestNames(
89
89
  tests.insert(name);
90
90
  } else {
91
91
  errors << "No test named " << name
92
- << " can be found in this test case.\n";
92
+ << " can be found in this test suite.\n";
93
93
  }
94
94
  }
95
95
 
@@ -26,10 +26,9 @@
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
+
29
30
  //
30
- // Author: wan@google.com (Zhanyong Wan)
31
- //
32
- // The Google C++ Testing Framework (Google Test)
31
+ // The Google C++ Testing and Mocking Framework (Google Test)
33
32
 
34
33
  #include "gtest/gtest.h"
35
34
  #include "gtest/internal/custom/gtest.h"
@@ -55,8 +54,6 @@
55
54
 
56
55
  #if GTEST_OS_LINUX
57
56
 
58
- // TODO(kenton@google.com): Use autoconf to detect availability of
59
- // gettimeofday().
60
57
  # define GTEST_HAS_GETTIMEOFDAY_ 1
61
58
 
62
59
  # include <fcntl.h> // NOLINT
@@ -69,10 +66,6 @@
69
66
  # include <unistd.h> // NOLINT
70
67
  # include <string>
71
68
 
72
- #elif GTEST_OS_SYMBIAN
73
- # define GTEST_HAS_GETTIMEOFDAY_ 1
74
- # include <sys/time.h> // NOLINT
75
-
76
69
  #elif GTEST_OS_ZOS
77
70
  # define GTEST_HAS_GETTIMEOFDAY_ 1
78
71
  # include <sys/time.h> // NOLINT
@@ -94,11 +87,6 @@
94
87
 
95
88
  # if GTEST_OS_WINDOWS_MINGW
96
89
  // MinGW has gettimeofday() but not _ftime64().
97
- // TODO(kenton@google.com): Use autoconf to detect availability of
98
- // gettimeofday().
99
- // TODO(kenton@google.com): There are other ways to get the time on
100
- // Windows, like GetTickCount() or GetSystemTimeAsFileTime(). MinGW
101
- // supports these. consider using them instead.
102
90
  # define GTEST_HAS_GETTIMEOFDAY_ 1
103
91
  # include <sys/time.h> // NOLINT
104
92
  # endif // GTEST_OS_WINDOWS_MINGW
@@ -111,8 +99,6 @@
111
99
  #else
112
100
 
113
101
  // Assume other platforms have gettimeofday().
114
- // TODO(kenton@google.com): Use autoconf to detect availability of
115
- // gettimeofday().
116
102
  # define GTEST_HAS_GETTIMEOFDAY_ 1
117
103
 
118
104
  // cpplint thinks that the header is already included, so we want to
@@ -133,19 +119,25 @@
133
119
  # include <sys/types.h> // NOLINT
134
120
  #endif
135
121
 
136
- // Indicates that this translation unit is part of Google Test's
137
- // implementation. It must come before gtest-internal-inl.h is
138
- // included, or there will be a compiler error. This trick is to
139
- // prevent a user from accidentally including gtest-internal-inl.h in
140
- // his code.
141
- #define GTEST_IMPLEMENTATION_ 1
142
122
  #include "src/gtest-internal-inl.h"
143
- #undef GTEST_IMPLEMENTATION_
144
123
 
145
124
  #if GTEST_OS_WINDOWS
146
125
  # define vsnprintf _vsnprintf
147
126
  #endif // GTEST_OS_WINDOWS
148
127
 
128
+ #if GTEST_OS_MAC
129
+ #ifndef GTEST_OS_IOS
130
+ #include <crt_externs.h>
131
+ #endif
132
+ #endif
133
+
134
+ #if GTEST_HAS_ABSL
135
+ #include "absl/debugging/failure_signal_handler.h"
136
+ #include "absl/debugging/stacktrace.h"
137
+ #include "absl/debugging/symbolize.h"
138
+ #include "absl/strings/str_cat.h"
139
+ #endif // GTEST_HAS_ABSL
140
+
149
141
  namespace testing {
150
142
 
151
143
  using internal::CountIf;
@@ -155,20 +147,22 @@ using internal::Shuffle;
155
147
 
156
148
  // Constants.
157
149
 
158
- // A test whose test case name or test name matches this filter is
150
+ // A test whose test suite name or test name matches this filter is
159
151
  // disabled and not run.
160
152
  static const char kDisableTestFilter[] = "DISABLED_*:*/DISABLED_*";
161
153
 
162
- // A test case whose name matches this filter is considered a death
163
- // test case and will be run before test cases whose name doesn't
154
+ // A test suite whose name matches this filter is considered a death
155
+ // test suite and will be run before test suites whose name doesn't
164
156
  // match this filter.
165
- static const char kDeathTestCaseFilter[] = "*DeathTest:*DeathTest/*";
157
+ static const char kDeathTestSuiteFilter[] = "*DeathTest:*DeathTest/*";
166
158
 
167
159
  // A test filter that matches everything.
168
160
  static const char kUniversalFilter[] = "*";
169
161
 
170
- // The default output file for XML output.
171
- static const char kDefaultOutputFile[] = "test_detail.xml";
162
+ // The default output format.
163
+ static const char kDefaultOutputFormat[] = "xml";
164
+ // The default output file.
165
+ static const char kDefaultOutputFile[] = "test_detail";
172
166
 
173
167
  // The environment variable name for the test shard index.
174
168
  static const char kTestShardIndex[] = "GTEST_SHARD_INDEX";
@@ -187,15 +181,31 @@ const char kStackTraceMarker[] = "\nStack trace:\n";
187
181
  // specified on the command line.
188
182
  bool g_help_flag = false;
189
183
 
184
+ // Utilty function to Open File for Writing
185
+ static FILE* OpenFileForWriting(const std::string& output_file) {
186
+ FILE* fileout = nullptr;
187
+ FilePath output_file_path(output_file);
188
+ FilePath output_dir(output_file_path.RemoveFileName());
189
+
190
+ if (output_dir.CreateDirectoriesRecursively()) {
191
+ fileout = posix::FOpen(output_file.c_str(), "w");
192
+ }
193
+ if (fileout == nullptr) {
194
+ GTEST_LOG_(FATAL) << "Unable to open file \"" << output_file << "\"";
195
+ }
196
+ return fileout;
197
+ }
198
+
190
199
  } // namespace internal
191
200
 
201
+ // Bazel passes in the argument to '--test_filter' via the TESTBRIDGE_TEST_ONLY
202
+ // environment variable.
192
203
  static const char* GetDefaultFilter() {
193
- #ifdef GTEST_TEST_FILTER_ENV_VAR_
194
- const char* const testbridge_test_only = getenv(GTEST_TEST_FILTER_ENV_VAR_);
195
- if (testbridge_test_only != NULL) {
204
+ const char* const testbridge_test_only =
205
+ internal::posix::GetEnv("TESTBRIDGE_TEST_ONLY");
206
+ if (testbridge_test_only != nullptr) {
196
207
  return testbridge_test_only;
197
208
  }
198
- #endif // GTEST_TEST_FILTER_ENV_VAR_
199
209
  return kUniversalFilter;
200
210
  }
201
211
 
@@ -232,15 +242,28 @@ GTEST_DEFINE_string_(
232
242
  "exclude). A test is run if it matches one of the positive "
233
243
  "patterns and does not match any of the negative patterns.");
234
244
 
245
+ GTEST_DEFINE_bool_(
246
+ install_failure_signal_handler,
247
+ internal::BoolFromGTestEnv("install_failure_signal_handler", false),
248
+ "If true and supported on the current platform, " GTEST_NAME_ " should "
249
+ "install a signal handler that dumps debugging information when fatal "
250
+ "signals are raised.");
251
+
235
252
  GTEST_DEFINE_bool_(list_tests, false,
236
253
  "List all tests without running them.");
237
254
 
255
+ // The net priority order after flag processing is thus:
256
+ // --gtest_output command line flag
257
+ // GTEST_OUTPUT environment variable
258
+ // XML_OUTPUT_FILE environment variable
259
+ // ''
238
260
  GTEST_DEFINE_string_(
239
261
  output,
240
- internal::StringFromGTestEnv("output", ""),
241
- "A format (currently must be \"xml\"), optionally followed "
242
- "by a colon and an output file name or directory. A directory "
243
- "is indicated by a trailing pathname separator. "
262
+ internal::StringFromGTestEnv("output",
263
+ internal::OutputFlagAlsoCheckEnvVar().c_str()),
264
+ "A format (defaults to \"xml\" but can be specified to be \"json\"), "
265
+ "optionally followed by a colon and an output file name or directory. "
266
+ "A directory is indicated by a trailing pathname separator. "
244
267
  "Examples: \"xml:filename.xml\", \"xml::directoryname/\". "
245
268
  "If a directory is specified, output files will be created "
246
269
  "within that directory, with file-names based on the test "
@@ -253,6 +276,12 @@ GTEST_DEFINE_bool_(
253
276
  "True iff " GTEST_NAME_
254
277
  " should display elapsed time in text output.");
255
278
 
279
+ GTEST_DEFINE_bool_(
280
+ print_utf8,
281
+ internal::BoolFromGTestEnv("print_utf8", true),
282
+ "True iff " GTEST_NAME_
283
+ " prints UTF8 characters as text.");
284
+
256
285
  GTEST_DEFINE_int32_(
257
286
  random_seed,
258
287
  internal::Int32FromGTestEnv("random_seed", 0),
@@ -294,7 +323,7 @@ GTEST_DEFINE_bool_(
294
323
  internal::BoolFromGTestEnv("throw_on_failure", false),
295
324
  "When this flag is specified, a failed assertion will throw an exception "
296
325
  "if exceptions are enabled or exit the program with a non-zero code "
297
- "otherwise.");
326
+ "otherwise. For use with an external test framework.");
298
327
 
299
328
  #if GTEST_USE_OWN_FLAGFILE_FLAG_
300
329
  GTEST_DEFINE_string_(
@@ -310,7 +339,8 @@ namespace internal {
310
339
  // than kMaxRange.
311
340
  UInt32 Random::Generate(UInt32 range) {
312
341
  // These constants are the same as are used in glibc's rand(3).
313
- state_ = (1103515245U*state_ + 12345U) % kMaxRange;
342
+ // Use wider types than necessary to prevent unsigned overflow diagnostics.
343
+ state_ = static_cast<UInt32>(1103515245ULL*state_ + 12345U) % kMaxRange;
314
344
 
315
345
  GTEST_CHECK_(range > 0)
316
346
  << "Cannot generate a number in the range [0, 0).";
@@ -329,11 +359,11 @@ UInt32 Random::Generate(UInt32 range) {
329
359
  // Google Test before calling RUN_ALL_TESTS().
330
360
  static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
331
361
 
332
- // Iterates over a vector of TestCases, keeping a running sum of the
362
+ // Iterates over a vector of TestSuites, keeping a running sum of the
333
363
  // results of calling a given int-returning method on each.
334
364
  // Returns the sum.
335
- static int SumOverTestCaseList(const std::vector<TestCase*>& case_list,
336
- int (TestCase::*method)() const) {
365
+ static int SumOverTestSuiteList(const std::vector<TestSuite*>& case_list,
366
+ int (TestSuite::*method)() const) {
337
367
  int sum = 0;
338
368
  for (size_t i = 0; i < case_list.size(); i++) {
339
369
  sum += (case_list[i]->*method)();
@@ -341,20 +371,20 @@ static int SumOverTestCaseList(const std::vector<TestCase*>& case_list,
341
371
  return sum;
342
372
  }
343
373
 
344
- // Returns true iff the test case passed.
345
- static bool TestCasePassed(const TestCase* test_case) {
346
- return test_case->should_run() && test_case->Passed();
374
+ // Returns true iff the test suite passed.
375
+ static bool TestSuitePassed(const TestSuite* test_suite) {
376
+ return test_suite->should_run() && test_suite->Passed();
347
377
  }
348
378
 
349
- // Returns true iff the test case failed.
350
- static bool TestCaseFailed(const TestCase* test_case) {
351
- return test_case->should_run() && test_case->Failed();
379
+ // Returns true iff the test suite failed.
380
+ static bool TestSuiteFailed(const TestSuite* test_suite) {
381
+ return test_suite->should_run() && test_suite->Failed();
352
382
  }
353
383
 
354
- // Returns true iff test_case contains at least one test that should
384
+ // Returns true iff test_suite contains at least one test that should
355
385
  // run.
356
- static bool ShouldRunTestCase(const TestCase* test_case) {
357
- return test_case->should_run();
386
+ static bool ShouldRunTestSuite(const TestSuite* test_suite) {
387
+ return test_suite->should_run();
358
388
  }
359
389
 
360
390
  // AssertHelper constructor.
@@ -380,16 +410,16 @@ void AssertHelper::operator=(const Message& message) const {
380
410
  ); // NOLINT
381
411
  }
382
412
 
383
- // Mutex for linked pointers.
384
- GTEST_API_ GTEST_DEFINE_STATIC_MUTEX_(g_linked_ptr_mutex);
385
-
386
413
  // A copy of all command line arguments. Set by InitGoogleTest().
387
- ::std::vector<testing::internal::string> g_argvs;
414
+ static ::std::vector<std::string> g_argvs;
388
415
 
389
- const ::std::vector<testing::internal::string>& GetArgvs() {
416
+ ::std::vector<std::string> GetArgvs() {
390
417
  #if defined(GTEST_CUSTOM_GET_ARGVS_)
391
- return GTEST_CUSTOM_GET_ARGVS_();
392
- #else // defined(GTEST_CUSTOM_GET_ARGVS_)
418
+ // GTEST_CUSTOM_GET_ARGVS_() may return a container of std::string or
419
+ // ::string. This code converts it to the appropriate type.
420
+ const auto& custom = GTEST_CUSTOM_GET_ARGVS_();
421
+ return ::std::vector<std::string>(custom.begin(), custom.end());
422
+ #else // defined(GTEST_CUSTOM_GET_ARGVS_)
393
423
  return g_argvs;
394
424
  #endif // defined(GTEST_CUSTOM_GET_ARGVS_)
395
425
  }
@@ -399,7 +429,7 @@ const ::std::vector<testing::internal::string>& GetArgvs() {
399
429
  FilePath GetCurrentExecutableName() {
400
430
  FilePath result;
401
431
 
402
- #if GTEST_OS_WINDOWS
432
+ #if GTEST_OS_WINDOWS || GTEST_OS_OS2
403
433
  result.Set(FilePath(GetArgvs()[0]).RemoveExtension("exe"));
404
434
  #else
405
435
  result.Set(FilePath(GetArgvs()[0]));
@@ -413,34 +443,31 @@ FilePath GetCurrentExecutableName() {
413
443
  // Returns the output format, or "" for normal printed output.
414
444
  std::string UnitTestOptions::GetOutputFormat() {
415
445
  const char* const gtest_output_flag = GTEST_FLAG(output).c_str();
416
- if (gtest_output_flag == NULL) return std::string("");
417
-
418
446
  const char* const colon = strchr(gtest_output_flag, ':');
419
- return (colon == NULL) ?
420
- std::string(gtest_output_flag) :
421
- std::string(gtest_output_flag, colon - gtest_output_flag);
447
+ return (colon == nullptr)
448
+ ? std::string(gtest_output_flag)
449
+ : std::string(gtest_output_flag, colon - gtest_output_flag);
422
450
  }
423
451
 
424
452
  // Returns the name of the requested output file, or the default if none
425
453
  // was explicitly specified.
426
454
  std::string UnitTestOptions::GetAbsolutePathToOutputFile() {
427
455
  const char* const gtest_output_flag = GTEST_FLAG(output).c_str();
428
- if (gtest_output_flag == NULL)
429
- return "";
456
+
457
+ std::string format = GetOutputFormat();
458
+ if (format.empty())
459
+ format = std::string(kDefaultOutputFormat);
430
460
 
431
461
  const char* const colon = strchr(gtest_output_flag, ':');
432
- if (colon == NULL)
433
- return internal::FilePath::ConcatPaths(
462
+ if (colon == nullptr)
463
+ return internal::FilePath::MakeFileName(
434
464
  internal::FilePath(
435
465
  UnitTest::GetInstance()->original_working_dir()),
436
- internal::FilePath(kDefaultOutputFile)).string();
466
+ internal::FilePath(kDefaultOutputFile), 0,
467
+ format.c_str()).string();
437
468
 
438
469
  internal::FilePath output_name(colon + 1);
439
470
  if (!output_name.IsAbsolutePath())
440
- // TODO(wan@google.com): on Windows \some\path is not an absolute
441
- // path (as its meaning depends on the current drive), yet the
442
- // following logic for turning it into an absolute path is wrong.
443
- // Fix it.
444
471
  output_name = internal::FilePath::ConcatPaths(
445
472
  internal::FilePath(UnitTest::GetInstance()->original_working_dir()),
446
473
  internal::FilePath(colon + 1));
@@ -488,7 +515,7 @@ bool UnitTestOptions::MatchesFilter(
488
515
  cur_pattern = strchr(cur_pattern, ':');
489
516
 
490
517
  // Returns if no more pattern can be found.
491
- if (cur_pattern == NULL) {
518
+ if (cur_pattern == nullptr) {
492
519
  return false;
493
520
  }
494
521
 
@@ -497,11 +524,11 @@ bool UnitTestOptions::MatchesFilter(
497
524
  }
498
525
  }
499
526
 
500
- // Returns true iff the user-specified filter matches the test case
527
+ // Returns true iff the user-specified filter matches the test suite
501
528
  // name and the test name.
502
- bool UnitTestOptions::FilterMatchesTest(const std::string &test_case_name,
503
- const std::string &test_name) {
504
- const std::string& full_name = test_case_name + "." + test_name.c_str();
529
+ bool UnitTestOptions::FilterMatchesTest(const std::string& test_suite_name,
530
+ const std::string& test_name) {
531
+ const std::string& full_name = test_suite_name + "." + test_name.c_str();
505
532
 
506
533
  // Split --gtest_filter at '-', if there is one, to separate into
507
534
  // positive filter and negative filter portions
@@ -509,7 +536,7 @@ bool UnitTestOptions::FilterMatchesTest(const std::string &test_case_name,
509
536
  const char* const dash = strchr(p, '-');
510
537
  std::string positive;
511
538
  std::string negative;
512
- if (dash == NULL) {
539
+ if (dash == nullptr) {
513
540
  positive = GTEST_FLAG(filter).c_str(); // Whole string is a positive filter
514
541
  negative = "";
515
542
  } else {
@@ -628,12 +655,12 @@ extern const TypeId kTestTypeIdInGoogleTest = GetTestTypeId();
628
655
  // This predicate-formatter checks that 'results' contains a test part
629
656
  // failure of the given type and that the failure message contains the
630
657
  // given substring.
631
- AssertionResult HasOneFailure(const char* /* results_expr */,
632
- const char* /* type_expr */,
633
- const char* /* substr_expr */,
634
- const TestPartResultArray& results,
635
- TestPartResult::Type type,
636
- const string& substr) {
658
+ static AssertionResult HasOneFailure(const char* /* results_expr */,
659
+ const char* /* type_expr */,
660
+ const char* /* substr_expr */,
661
+ const TestPartResultArray& results,
662
+ TestPartResult::Type type,
663
+ const std::string& substr) {
637
664
  const std::string expected(type == TestPartResult::kFatalFailure ?
638
665
  "1 fatal failure" :
639
666
  "1 non-fatal failure");
@@ -654,7 +681,7 @@ AssertionResult HasOneFailure(const char* /* results_expr */,
654
681
  << r;
655
682
  }
656
683
 
657
- if (strstr(r.message(), substr.c_str()) == NULL) {
684
+ if (strstr(r.message(), substr.c_str()) == nullptr) {
658
685
  return AssertionFailure() << "Expected: " << expected << " containing \""
659
686
  << substr << "\"\n"
660
687
  << " Actual:\n"
@@ -667,13 +694,10 @@ AssertionResult HasOneFailure(const char* /* results_expr */,
667
694
  // The constructor of SingleFailureChecker remembers where to look up
668
695
  // test part results, what type of failure we expect, and what
669
696
  // substring the failure message should contain.
670
- SingleFailureChecker:: SingleFailureChecker(
671
- const TestPartResultArray* results,
672
- TestPartResult::Type type,
673
- const string& substr)
674
- : results_(results),
675
- type_(type),
676
- substr_(substr) {}
697
+ SingleFailureChecker::SingleFailureChecker(const TestPartResultArray* results,
698
+ TestPartResult::Type type,
699
+ const std::string& substr)
700
+ : results_(results), type_(type), substr_(substr) {}
677
701
 
678
702
  // The destructor of SingleFailureChecker verifies that the given
679
703
  // TestPartResultArray contains exactly one failure that has the given
@@ -726,61 +750,66 @@ void UnitTestImpl::SetTestPartResultReporterForCurrentThread(
726
750
  per_thread_test_part_result_reporter_.set(reporter);
727
751
  }
728
752
 
729
- // Gets the number of successful test cases.
730
- int UnitTestImpl::successful_test_case_count() const {
731
- return CountIf(test_cases_, TestCasePassed);
753
+ // Gets the number of successful test suites.
754
+ int UnitTestImpl::successful_test_suite_count() const {
755
+ return CountIf(test_suites_, TestSuitePassed);
732
756
  }
733
757
 
734
- // Gets the number of failed test cases.
735
- int UnitTestImpl::failed_test_case_count() const {
736
- return CountIf(test_cases_, TestCaseFailed);
758
+ // Gets the number of failed test suites.
759
+ int UnitTestImpl::failed_test_suite_count() const {
760
+ return CountIf(test_suites_, TestSuiteFailed);
737
761
  }
738
762
 
739
- // Gets the number of all test cases.
740
- int UnitTestImpl::total_test_case_count() const {
741
- return static_cast<int>(test_cases_.size());
763
+ // Gets the number of all test suites.
764
+ int UnitTestImpl::total_test_suite_count() const {
765
+ return static_cast<int>(test_suites_.size());
742
766
  }
743
767
 
744
- // Gets the number of all test cases that contain at least one test
768
+ // Gets the number of all test suites that contain at least one test
745
769
  // that should run.
746
- int UnitTestImpl::test_case_to_run_count() const {
747
- return CountIf(test_cases_, ShouldRunTestCase);
770
+ int UnitTestImpl::test_suite_to_run_count() const {
771
+ return CountIf(test_suites_, ShouldRunTestSuite);
748
772
  }
749
773
 
750
774
  // Gets the number of successful tests.
751
775
  int UnitTestImpl::successful_test_count() const {
752
- return SumOverTestCaseList(test_cases_, &TestCase::successful_test_count);
776
+ return SumOverTestSuiteList(test_suites_, &TestSuite::successful_test_count);
777
+ }
778
+
779
+ // Gets the number of skipped tests.
780
+ int UnitTestImpl::skipped_test_count() const {
781
+ return SumOverTestSuiteList(test_suites_, &TestSuite::skipped_test_count);
753
782
  }
754
783
 
755
784
  // Gets the number of failed tests.
756
785
  int UnitTestImpl::failed_test_count() const {
757
- return SumOverTestCaseList(test_cases_, &TestCase::failed_test_count);
786
+ return SumOverTestSuiteList(test_suites_, &TestSuite::failed_test_count);
758
787
  }
759
788
 
760
789
  // Gets the number of disabled tests that will be reported in the XML report.
761
790
  int UnitTestImpl::reportable_disabled_test_count() const {
762
- return SumOverTestCaseList(test_cases_,
763
- &TestCase::reportable_disabled_test_count);
791
+ return SumOverTestSuiteList(test_suites_,
792
+ &TestSuite::reportable_disabled_test_count);
764
793
  }
765
794
 
766
795
  // Gets the number of disabled tests.
767
796
  int UnitTestImpl::disabled_test_count() const {
768
- return SumOverTestCaseList(test_cases_, &TestCase::disabled_test_count);
797
+ return SumOverTestSuiteList(test_suites_, &TestSuite::disabled_test_count);
769
798
  }
770
799
 
771
800
  // Gets the number of tests to be printed in the XML report.
772
801
  int UnitTestImpl::reportable_test_count() const {
773
- return SumOverTestCaseList(test_cases_, &TestCase::reportable_test_count);
802
+ return SumOverTestSuiteList(test_suites_, &TestSuite::reportable_test_count);
774
803
  }
775
804
 
776
805
  // Gets the number of all tests.
777
806
  int UnitTestImpl::total_test_count() const {
778
- return SumOverTestCaseList(test_cases_, &TestCase::total_test_count);
807
+ return SumOverTestSuiteList(test_suites_, &TestSuite::total_test_count);
779
808
  }
780
809
 
781
810
  // Gets the number of tests that should run.
782
811
  int UnitTestImpl::test_to_run_count() const {
783
- return SumOverTestCaseList(test_cases_, &TestCase::test_to_run_count);
812
+ return SumOverTestSuiteList(test_suites_, &TestSuite::test_to_run_count);
784
813
  }
785
814
 
786
815
  // Returns the current OS stack trace as an std::string.
@@ -814,8 +843,6 @@ TimeInMillis GetTimeInMillis() {
814
843
  SYSTEMTIME now_systime;
815
844
  FILETIME now_filetime;
816
845
  ULARGE_INTEGER now_int64;
817
- // TODO(kenton@google.com): Shouldn't this just use
818
- // GetSystemTimeAsFileTime()?
819
846
  GetSystemTime(&now_systime);
820
847
  if (SystemTimeToFileTime(&now_systime, &now_filetime)) {
821
848
  now_int64.LowPart = now_filetime.dwLowDateTime;
@@ -830,16 +857,14 @@ TimeInMillis GetTimeInMillis() {
830
857
 
831
858
  // MSVC 8 deprecates _ftime64(), so we want to suppress warning 4996
832
859
  // (deprecated function) there.
833
- // TODO(kenton@google.com): Use GetTickCount()? Or use
834
- // SystemTimeToFileTime()
835
- GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
860
+ GTEST_DISABLE_MSC_DEPRECATED_PUSH_()
836
861
  _ftime64(&now);
837
- GTEST_DISABLE_MSC_WARNINGS_POP_()
862
+ GTEST_DISABLE_MSC_DEPRECATED_POP_()
838
863
 
839
864
  return static_cast<TimeInMillis>(now.time) * 1000 + now.millitm;
840
865
  #elif GTEST_HAS_GETTIMEOFDAY_
841
866
  struct timeval now;
842
- gettimeofday(&now, NULL);
867
+ gettimeofday(&now, nullptr);
843
868
  return static_cast<TimeInMillis>(now.tv_sec) * 1000 + now.tv_usec / 1000;
844
869
  #else
845
870
  # error "Don't know how to get the current time on your system."
@@ -856,11 +881,10 @@ TimeInMillis GetTimeInMillis() {
856
881
  // value using delete[]. Returns the wide string, or NULL if the
857
882
  // input is NULL.
858
883
  LPCWSTR String::AnsiToUtf16(const char* ansi) {
859
- if (!ansi) return NULL;
884
+ if (!ansi) return nullptr;
860
885
  const int length = strlen(ansi);
861
886
  const int unicode_length =
862
- MultiByteToWideChar(CP_ACP, 0, ansi, length,
863
- NULL, 0);
887
+ MultiByteToWideChar(CP_ACP, 0, ansi, length, nullptr, 0);
864
888
  WCHAR* unicode = new WCHAR[unicode_length + 1];
865
889
  MultiByteToWideChar(CP_ACP, 0, ansi, length,
866
890
  unicode, unicode_length);
@@ -873,13 +897,12 @@ LPCWSTR String::AnsiToUtf16(const char* ansi) {
873
897
  // value using delete[]. Returns the ANSI string, or NULL if the
874
898
  // input is NULL.
875
899
  const char* String::Utf16ToAnsi(LPCWSTR utf16_str) {
876
- if (!utf16_str) return NULL;
877
- const int ansi_length =
878
- WideCharToMultiByte(CP_ACP, 0, utf16_str, -1,
879
- NULL, 0, NULL, NULL);
900
+ if (!utf16_str) return nullptr;
901
+ const int ansi_length = WideCharToMultiByte(CP_ACP, 0, utf16_str, -1, nullptr,
902
+ 0, nullptr, nullptr);
880
903
  char* ansi = new char[ansi_length + 1];
881
- WideCharToMultiByte(CP_ACP, 0, utf16_str, -1,
882
- ansi, ansi_length, NULL, NULL);
904
+ WideCharToMultiByte(CP_ACP, 0, utf16_str, -1, ansi, ansi_length, nullptr,
905
+ nullptr);
883
906
  ansi[ansi_length] = 0;
884
907
  return ansi;
885
908
  }
@@ -892,14 +915,14 @@ const char* String::Utf16ToAnsi(LPCWSTR utf16_str) {
892
915
  // C string is considered different to any non-NULL C string,
893
916
  // including the empty string.
894
917
  bool String::CStringEquals(const char * lhs, const char * rhs) {
895
- if ( lhs == NULL ) return rhs == NULL;
918
+ if (lhs == nullptr) return rhs == nullptr;
896
919
 
897
- if ( rhs == NULL ) return false;
920
+ if (rhs == nullptr) return false;
898
921
 
899
922
  return strcmp(lhs, rhs) == 0;
900
923
  }
901
924
 
902
- #if GTEST_HAS_STD_WSTRING || GTEST_HAS_GLOBAL_WSTRING
925
+ #if GTEST_HAS_STD_WSTRING
903
926
 
904
927
  // Converts an array of wide chars to a narrow string using the UTF-8
905
928
  // encoding, and streams the result to the given Message object.
@@ -917,7 +940,7 @@ static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length,
917
940
  }
918
941
  }
919
942
 
920
- #endif // GTEST_HAS_STD_WSTRING || GTEST_HAS_GLOBAL_WSTRING
943
+ #endif // GTEST_HAS_STD_WSTRING
921
944
 
922
945
  void SplitString(const ::std::string& str, char delimiter,
923
946
  ::std::vector< ::std::string>* dest) {
@@ -967,15 +990,6 @@ Message& Message::operator <<(const ::std::wstring& wstr) {
967
990
  }
968
991
  #endif // GTEST_HAS_STD_WSTRING
969
992
 
970
- #if GTEST_HAS_GLOBAL_WSTRING
971
- // Converts the given wide string to a narrow string using the UTF-8
972
- // encoding, and streams the result to this Message object.
973
- Message& Message::operator <<(const ::wstring& wstr) {
974
- internal::StreamWideCharsToMessage(wstr.c_str(), wstr.length(), this);
975
- return *this;
976
- }
977
- #endif // GTEST_HAS_GLOBAL_WSTRING
978
-
979
993
  // Gets the text streamed to this object so far as an std::string.
980
994
  // Each '\0' character in the buffer is replaced with "\\0".
981
995
  std::string Message::GetString() const {
@@ -986,10 +1000,9 @@ std::string Message::GetString() const {
986
1000
  // Used in EXPECT_TRUE/FALSE(assertion_result).
987
1001
  AssertionResult::AssertionResult(const AssertionResult& other)
988
1002
  : success_(other.success_),
989
- message_(other.message_.get() != NULL ?
990
- new ::std::string(*other.message_) :
991
- static_cast< ::std::string*>(NULL)) {
992
- }
1003
+ message_(other.message_.get() != nullptr
1004
+ ? new ::std::string(*other.message_)
1005
+ : static_cast< ::std::string*>(nullptr)) {}
993
1006
 
994
1007
  // Swaps two AssertionResults.
995
1008
  void AssertionResult::swap(AssertionResult& other) {
@@ -1001,8 +1014,7 @@ void AssertionResult::swap(AssertionResult& other) {
1001
1014
  // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
1002
1015
  AssertionResult AssertionResult::operator!() const {
1003
1016
  AssertionResult negation(!success_);
1004
- if (message_.get() != NULL)
1005
- negation << *message_;
1017
+ if (message_.get() != nullptr) negation << *message_;
1006
1018
  return negation;
1007
1019
  }
1008
1020
 
@@ -1171,7 +1183,7 @@ class Hunk {
1171
1183
  // Print a unified diff header for one hunk.
1172
1184
  // The format is
1173
1185
  // "@@ -<left_start>,<left_length> +<right_start>,<right_length> @@"
1174
- // where the left/right parts are ommitted if unnecessary.
1186
+ // where the left/right parts are omitted if unnecessary.
1175
1187
  void PrintHeader(std::ostream* ss) const {
1176
1188
  *ss << "@@ ";
1177
1189
  if (removes_) {
@@ -1315,13 +1327,14 @@ AssertionResult EqFailure(const char* lhs_expression,
1315
1327
  const std::string& rhs_value,
1316
1328
  bool ignoring_case) {
1317
1329
  Message msg;
1318
- msg << " Expected: " << lhs_expression;
1330
+ msg << "Expected equality of these values:";
1331
+ msg << "\n " << lhs_expression;
1319
1332
  if (lhs_value != lhs_expression) {
1320
- msg << "\n Which is: " << lhs_value;
1333
+ msg << "\n Which is: " << lhs_value;
1321
1334
  }
1322
- msg << "\nTo be equal to: " << rhs_expression;
1335
+ msg << "\n " << rhs_expression;
1323
1336
  if (rhs_value != rhs_expression) {
1324
- msg << "\n Which is: " << rhs_value;
1337
+ msg << "\n Which is: " << rhs_value;
1325
1338
  }
1326
1339
 
1327
1340
  if (ignoring_case) {
@@ -1368,8 +1381,6 @@ AssertionResult DoubleNearPredFormat(const char* expr1,
1368
1381
  const double diff = fabs(val1 - val2);
1369
1382
  if (diff <= abs_error) return AssertionSuccess();
1370
1383
 
1371
- // TODO(wan): do not print the value of an expression if it's
1372
- // already a literal.
1373
1384
  return AssertionFailure()
1374
1385
  << "The difference between " << expr1 << " and " << expr2
1375
1386
  << " is " << diff << ", which exceeds " << abs_error_expr << ", where\n"
@@ -1555,17 +1566,15 @@ namespace {
1555
1566
  // only.
1556
1567
 
1557
1568
  bool IsSubstringPred(const char* needle, const char* haystack) {
1558
- if (needle == NULL || haystack == NULL)
1559
- return needle == haystack;
1569
+ if (needle == nullptr || haystack == nullptr) return needle == haystack;
1560
1570
 
1561
- return strstr(haystack, needle) != NULL;
1571
+ return strstr(haystack, needle) != nullptr;
1562
1572
  }
1563
1573
 
1564
1574
  bool IsSubstringPred(const wchar_t* needle, const wchar_t* haystack) {
1565
- if (needle == NULL || haystack == NULL)
1566
- return needle == haystack;
1575
+ if (needle == nullptr || haystack == nullptr) return needle == haystack;
1567
1576
 
1568
- return wcsstr(haystack, needle) != NULL;
1577
+ return wcsstr(haystack, needle) != nullptr;
1569
1578
  }
1570
1579
 
1571
1580
  // StringType here can be either ::std::string or ::std::wstring.
@@ -1663,7 +1672,7 @@ namespace {
1663
1672
  AssertionResult HRESULTFailureHelper(const char* expr,
1664
1673
  const char* expected,
1665
1674
  long hr) { // NOLINT
1666
- # if GTEST_OS_WINDOWS_MOBILE
1675
+ # if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_TV_TITLE
1667
1676
 
1668
1677
  // Windows CE doesn't support FormatMessage.
1669
1678
  const char error_text[] = "";
@@ -1679,12 +1688,12 @@ AssertionResult HRESULTFailureHelper(const char* expr,
1679
1688
  // Gets the system's human readable message string for this HRESULT.
1680
1689
  char error_text[kBufSize] = { '\0' };
1681
1690
  DWORD message_length = ::FormatMessageA(kFlags,
1682
- 0, // no source, we're asking system
1691
+ 0, // no source, we're asking system
1683
1692
  hr, // the error
1684
- 0, // no line width restrictions
1693
+ 0, // no line width restrictions
1685
1694
  error_text, // output buffer
1686
- kBufSize, // buf size
1687
- NULL); // no arguments for inserts
1695
+ kBufSize, // buf size
1696
+ nullptr); // no arguments for inserts
1688
1697
  // Trims tailing white space (FormatMessage leaves a trailing CR-LF)
1689
1698
  for (; message_length && IsSpace(error_text[message_length - 1]);
1690
1699
  --message_length) {
@@ -1720,7 +1729,7 @@ AssertionResult IsHRESULTFailure(const char* expr, long hr) { // NOLINT
1720
1729
  // Utility functions for encoding Unicode text (wide strings) in
1721
1730
  // UTF-8.
1722
1731
 
1723
- // A Unicode code-point can have upto 21 bits, and is encoded in UTF-8
1732
+ // A Unicode code-point can have up to 21 bits, and is encoded in UTF-8
1724
1733
  // like this:
1725
1734
  //
1726
1735
  // Code-point length Encoding
@@ -1784,9 +1793,9 @@ std::string CodePointToUtf8(UInt32 code_point) {
1784
1793
  return str;
1785
1794
  }
1786
1795
 
1787
- // The following two functions only make sense if the the system
1796
+ // The following two functions only make sense if the system
1788
1797
  // uses UTF-16 for wide string encoding. All supported systems
1789
- // with 16 bit wchar_t (Windows, Cygwin, Symbian OS) do use UTF-16.
1798
+ // with 16 bit wchar_t (Windows, Cygwin) do use UTF-16.
1790
1799
 
1791
1800
  // Determines if the arguments constitute UTF-16 surrogate pair
1792
1801
  // and thus should be combined into a single Unicode code point
@@ -1809,7 +1818,7 @@ inline UInt32 CreateCodePointFromUtf16SurrogatePair(wchar_t first,
1809
1818
 
1810
1819
  // Converts a wide string to a narrow string in UTF-8 encoding.
1811
1820
  // The wide string is assumed to have the following encoding:
1812
- // UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin, Symbian OS)
1821
+ // UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin)
1813
1822
  // UTF-32 if sizeof(wchar_t) == 4 (on Linux)
1814
1823
  // Parameter str points to a null-terminated wide string.
1815
1824
  // Parameter num_chars may additionally limit the number
@@ -1846,7 +1855,7 @@ std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
1846
1855
  // Converts a wide C string to an std::string using the UTF-8 encoding.
1847
1856
  // NULL will be converted to "(null)".
1848
1857
  std::string String::ShowWideCString(const wchar_t * wide_c_str) {
1849
- if (wide_c_str == NULL) return "(null)";
1858
+ if (wide_c_str == nullptr) return "(null)";
1850
1859
 
1851
1860
  return internal::WideStringToUtf8(wide_c_str, -1);
1852
1861
  }
@@ -1858,9 +1867,9 @@ std::string String::ShowWideCString(const wchar_t * wide_c_str) {
1858
1867
  // C string is considered different to any non-NULL C string,
1859
1868
  // including the empty string.
1860
1869
  bool String::WideCStringEquals(const wchar_t * lhs, const wchar_t * rhs) {
1861
- if (lhs == NULL) return rhs == NULL;
1870
+ if (lhs == nullptr) return rhs == nullptr;
1862
1871
 
1863
- if (rhs == NULL) return false;
1872
+ if (rhs == nullptr) return false;
1864
1873
 
1865
1874
  return wcscmp(lhs, rhs) == 0;
1866
1875
  }
@@ -1903,10 +1912,8 @@ AssertionResult CmpHelperSTRNE(const char* s1_expression,
1903
1912
  // NULL C string is considered different to any non-NULL C string,
1904
1913
  // including the empty string.
1905
1914
  bool String::CaseInsensitiveCStringEquals(const char * lhs, const char * rhs) {
1906
- if (lhs == NULL)
1907
- return rhs == NULL;
1908
- if (rhs == NULL)
1909
- return false;
1915
+ if (lhs == nullptr) return rhs == nullptr;
1916
+ if (rhs == nullptr) return false;
1910
1917
  return posix::StrCaseCmp(lhs, rhs) == 0;
1911
1918
  }
1912
1919
 
@@ -1924,9 +1931,9 @@ bool String::CaseInsensitiveCStringEquals(const char * lhs, const char * rhs) {
1924
1931
  // current locale.
1925
1932
  bool String::CaseInsensitiveWideCStringEquals(const wchar_t* lhs,
1926
1933
  const wchar_t* rhs) {
1927
- if (lhs == NULL) return rhs == NULL;
1934
+ if (lhs == nullptr) return rhs == nullptr;
1928
1935
 
1929
- if (rhs == NULL) return false;
1936
+ if (rhs == nullptr) return false;
1930
1937
 
1931
1938
  #if GTEST_OS_WINDOWS
1932
1939
  return _wcsicmp(lhs, rhs) == 0;
@@ -2096,13 +2103,14 @@ static const char* const kReservedTestSuiteAttributes[] = {
2096
2103
 
2097
2104
  // The list of reserved attributes used in the <testcase> element of XML output.
2098
2105
  static const char* const kReservedTestCaseAttributes[] = {
2099
- "classname",
2100
- "name",
2101
- "status",
2102
- "time",
2103
- "type_param",
2104
- "value_param"
2105
- };
2106
+ "classname", "name", "status", "time", "type_param",
2107
+ "value_param", "file", "line"};
2108
+
2109
+ // Use a slightly different set for allowed output to ensure existing tests can
2110
+ // still RecordProperty("result")
2111
+ static const char* const kReservedOutputTestCaseAttributes[] = {
2112
+ "classname", "name", "status", "time", "type_param",
2113
+ "value_param", "file", "line", "result"};
2106
2114
 
2107
2115
  template <int kSize>
2108
2116
  std::vector<std::string> ArrayAsVector(const char* const (&array)[kSize]) {
@@ -2124,6 +2132,22 @@ static std::vector<std::string> GetReservedAttributesForElement(
2124
2132
  return std::vector<std::string>();
2125
2133
  }
2126
2134
 
2135
+ // TODO(jdesprez): Merge the two getReserved attributes once skip is improved
2136
+ static std::vector<std::string> GetReservedOutputAttributesForElement(
2137
+ const std::string& xml_element) {
2138
+ if (xml_element == "testsuites") {
2139
+ return ArrayAsVector(kReservedTestSuitesAttributes);
2140
+ } else if (xml_element == "testsuite") {
2141
+ return ArrayAsVector(kReservedTestSuiteAttributes);
2142
+ } else if (xml_element == "testcase") {
2143
+ return ArrayAsVector(kReservedOutputTestCaseAttributes);
2144
+ } else {
2145
+ GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element;
2146
+ }
2147
+ // This code is unreachable but some compilers may not realizes that.
2148
+ return std::vector<std::string>();
2149
+ }
2150
+
2127
2151
  static std::string FormatWordList(const std::vector<std::string>& words) {
2128
2152
  Message word_list;
2129
2153
  for (size_t i = 0; i < words.size(); ++i) {
@@ -2138,8 +2162,9 @@ static std::string FormatWordList(const std::vector<std::string>& words) {
2138
2162
  return word_list.GetString();
2139
2163
  }
2140
2164
 
2141
- bool ValidateTestPropertyName(const std::string& property_name,
2142
- const std::vector<std::string>& reserved_names) {
2165
+ static bool ValidateTestPropertyName(
2166
+ const std::string& property_name,
2167
+ const std::vector<std::string>& reserved_names) {
2143
2168
  if (std::find(reserved_names.begin(), reserved_names.end(), property_name) !=
2144
2169
  reserved_names.end()) {
2145
2170
  ADD_FAILURE() << "Reserved key used in RecordProperty(): " << property_name
@@ -2166,6 +2191,16 @@ void TestResult::Clear() {
2166
2191
  elapsed_time_ = 0;
2167
2192
  }
2168
2193
 
2194
+ // Returns true off the test part was skipped.
2195
+ static bool TestPartSkipped(const TestPartResult& result) {
2196
+ return result.skipped();
2197
+ }
2198
+
2199
+ // Returns true iff the test was skipped.
2200
+ bool TestResult::Skipped() const {
2201
+ return !Failed() && CountIf(test_part_results_, TestPartSkipped) > 0;
2202
+ }
2203
+
2169
2204
  // Returns true iff the test failed.
2170
2205
  bool TestResult::Failed() const {
2171
2206
  for (int i = 0; i < total_part_count(); ++i) {
@@ -2253,25 +2288,25 @@ void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
2253
2288
  // AddTestPartResult.
2254
2289
  UnitTest::GetInstance()->AddTestPartResult(
2255
2290
  result_type,
2256
- NULL, // No info about the source file where the exception occurred.
2257
- -1, // We have no info on which line caused the exception.
2291
+ nullptr, // No info about the source file where the exception occurred.
2292
+ -1, // We have no info on which line caused the exception.
2258
2293
  message,
2259
- ""); // No stack trace, either.
2294
+ ""); // No stack trace, either.
2260
2295
  }
2261
2296
 
2262
2297
  } // namespace internal
2263
2298
 
2264
- // Google Test requires all tests in the same test case to use the same test
2299
+ // Google Test requires all tests in the same test suite to use the same test
2265
2300
  // fixture class. This function checks if the current test has the
2266
- // same fixture class as the first test in the current test case. If
2301
+ // same fixture class as the first test in the current test suite. If
2267
2302
  // yes, it returns true; otherwise it generates a Google Test failure and
2268
2303
  // returns false.
2269
2304
  bool Test::HasSameFixtureClass() {
2270
2305
  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
2271
- const TestCase* const test_case = impl->current_test_case();
2306
+ const TestSuite* const test_suite = impl->current_test_suite();
2272
2307
 
2273
- // Info about the first test in the current test case.
2274
- const TestInfo* const first_test_info = test_case->test_info_list()[0];
2308
+ // Info about the first test in the current test suite.
2309
+ const TestInfo* const first_test_info = test_suite->test_info_list()[0];
2275
2310
  const internal::TypeId first_fixture_id = first_test_info->fixture_class_id_;
2276
2311
  const char* const first_test_name = first_test_info->name();
2277
2312
 
@@ -2287,7 +2322,7 @@ bool Test::HasSameFixtureClass() {
2287
2322
  const bool this_is_TEST = this_fixture_id == internal::GetTestTypeId();
2288
2323
 
2289
2324
  if (first_is_TEST || this_is_TEST) {
2290
- // Both TEST and TEST_F appear in same test case, which is incorrect.
2325
+ // Both TEST and TEST_F appear in same test suite, which is incorrect.
2291
2326
  // Tell the user how to fix this.
2292
2327
 
2293
2328
  // Gets the name of the TEST and the name of the TEST_F. Note
@@ -2299,9 +2334,9 @@ bool Test::HasSameFixtureClass() {
2299
2334
  first_is_TEST ? this_test_name : first_test_name;
2300
2335
 
2301
2336
  ADD_FAILURE()
2302
- << "All tests in the same test case must use the same test fixture\n"
2303
- << "class, so mixing TEST_F and TEST in the same test case is\n"
2304
- << "illegal. In test case " << this_test_info->test_case_name()
2337
+ << "All tests in the same test suite must use the same test fixture\n"
2338
+ << "class, so mixing TEST_F and TEST in the same test suite is\n"
2339
+ << "illegal. In test suite " << this_test_info->test_suite_name()
2305
2340
  << ",\n"
2306
2341
  << "test " << TEST_F_name << " is defined using TEST_F but\n"
2307
2342
  << "test " << TEST_name << " is defined using TEST. You probably\n"
@@ -2311,15 +2346,15 @@ bool Test::HasSameFixtureClass() {
2311
2346
  // Two fixture classes with the same name appear in two different
2312
2347
  // namespaces, which is not allowed. Tell the user how to fix this.
2313
2348
  ADD_FAILURE()
2314
- << "All tests in the same test case must use the same test fixture\n"
2315
- << "class. However, in test case "
2316
- << this_test_info->test_case_name() << ",\n"
2317
- << "you defined test " << first_test_name
2318
- << " and test " << this_test_name << "\n"
2349
+ << "All tests in the same test suite must use the same test fixture\n"
2350
+ << "class. However, in test suite "
2351
+ << this_test_info->test_suite_name() << ",\n"
2352
+ << "you defined test " << first_test_name << " and test "
2353
+ << this_test_name << "\n"
2319
2354
  << "using two different test fixture classes. This can happen if\n"
2320
2355
  << "the two classes are from different namespaces or translation\n"
2321
2356
  << "units and have the same name. You should probably rename one\n"
2322
- << "of the classes to put the tests into different test cases.";
2357
+ << "of the classes to put the tests into different test suites.";
2323
2358
  }
2324
2359
  return false;
2325
2360
  }
@@ -2352,7 +2387,7 @@ namespace internal {
2352
2387
  static std::string FormatCxxExceptionMessage(const char* description,
2353
2388
  const char* location) {
2354
2389
  Message message;
2355
- if (description != NULL) {
2390
+ if (description != nullptr) {
2356
2391
  message << "C++ exception with description \"" << description << "\"";
2357
2392
  } else {
2358
2393
  message << "Unknown C++ exception";
@@ -2436,6 +2471,8 @@ Result HandleExceptionsInMethodIfSupported(
2436
2471
  #if GTEST_HAS_EXCEPTIONS
2437
2472
  try {
2438
2473
  return HandleSehExceptionsInMethodIfSupported(object, method, location);
2474
+ } catch (const AssertionException&) { // NOLINT
2475
+ // This failure was reported already.
2439
2476
  } catch (const internal::GoogleTestFailureException&) { // NOLINT
2440
2477
  // This exception type can only be thrown by a failed Google
2441
2478
  // Test assertion with the intention of letting another testing
@@ -2448,7 +2485,7 @@ Result HandleExceptionsInMethodIfSupported(
2448
2485
  } catch (...) { // NOLINT
2449
2486
  internal::ReportFailureInUnknownLocation(
2450
2487
  TestPartResult::kFatalFailure,
2451
- FormatCxxExceptionMessage(NULL, location));
2488
+ FormatCxxExceptionMessage(nullptr, location));
2452
2489
  }
2453
2490
  return static_cast<Result>(0);
2454
2491
  #else
@@ -2468,8 +2505,9 @@ void Test::Run() {
2468
2505
  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
2469
2506
  impl->os_stack_trace_getter()->UponLeavingGTest();
2470
2507
  internal::HandleExceptionsInMethodIfSupported(this, &Test::SetUp, "SetUp()");
2471
- // We will run the test only if SetUp() was successful.
2472
- if (!HasFatalFailure()) {
2508
+ // We will run the test only if SetUp() was successful and didn't call
2509
+ // GTEST_SKIP().
2510
+ if (!HasFatalFailure() && !IsSkipped()) {
2473
2511
  impl->os_stack_trace_getter()->UponLeavingGTest();
2474
2512
  internal::HandleExceptionsInMethodIfSupported(
2475
2513
  this, &Test::TestBody, "the test body");
@@ -2494,21 +2532,25 @@ bool Test::HasNonfatalFailure() {
2494
2532
  HasNonfatalFailure();
2495
2533
  }
2496
2534
 
2535
+ // Returns true iff the current test was skipped.
2536
+ bool Test::IsSkipped() {
2537
+ return internal::GetUnitTestImpl()->current_test_result()->Skipped();
2538
+ }
2539
+
2497
2540
  // class TestInfo
2498
2541
 
2499
2542
  // Constructs a TestInfo object. It assumes ownership of the test factory
2500
2543
  // object.
2501
- TestInfo::TestInfo(const std::string& a_test_case_name,
2502
- const std::string& a_name,
2503
- const char* a_type_param,
2544
+ TestInfo::TestInfo(const std::string& a_test_suite_name,
2545
+ const std::string& a_name, const char* a_type_param,
2504
2546
  const char* a_value_param,
2505
2547
  internal::CodeLocation a_code_location,
2506
2548
  internal::TypeId fixture_class_id,
2507
2549
  internal::TestFactoryBase* factory)
2508
- : test_case_name_(a_test_case_name),
2550
+ : test_suite_name_(a_test_suite_name),
2509
2551
  name_(a_name),
2510
- type_param_(a_type_param ? new std::string(a_type_param) : NULL),
2511
- value_param_(a_value_param ? new std::string(a_value_param) : NULL),
2552
+ type_param_(a_type_param ? new std::string(a_type_param) : nullptr),
2553
+ value_param_(a_value_param ? new std::string(a_value_param) : nullptr),
2512
2554
  location_(a_code_location),
2513
2555
  fixture_class_id_(fixture_class_id),
2514
2556
  should_run_(false),
@@ -2527,7 +2569,7 @@ namespace internal {
2527
2569
  //
2528
2570
  // Arguments:
2529
2571
  //
2530
- // test_case_name: name of the test case
2572
+ // test_suite_name: name of the test suite
2531
2573
  // name: name of the test
2532
2574
  // type_param: the name of the test's type parameter, or NULL if
2533
2575
  // this is not a typed or a type-parameterized test.
@@ -2535,49 +2577,40 @@ namespace internal {
2535
2577
  // or NULL if this is not a value-parameterized test.
2536
2578
  // code_location: code location where the test is defined
2537
2579
  // fixture_class_id: ID of the test fixture class
2538
- // set_up_tc: pointer to the function that sets up the test case
2539
- // tear_down_tc: pointer to the function that tears down the test case
2580
+ // set_up_tc: pointer to the function that sets up the test suite
2581
+ // tear_down_tc: pointer to the function that tears down the test suite
2540
2582
  // factory: pointer to the factory that creates a test object.
2541
2583
  // The newly created TestInfo instance will assume
2542
2584
  // ownership of the factory object.
2543
2585
  TestInfo* MakeAndRegisterTestInfo(
2544
- const char* test_case_name,
2545
- const char* name,
2546
- const char* type_param,
2547
- const char* value_param,
2548
- CodeLocation code_location,
2549
- TypeId fixture_class_id,
2550
- SetUpTestCaseFunc set_up_tc,
2551
- TearDownTestCaseFunc tear_down_tc,
2552
- TestFactoryBase* factory) {
2586
+ const char* test_suite_name, const char* name, const char* type_param,
2587
+ const char* value_param, CodeLocation code_location,
2588
+ TypeId fixture_class_id, SetUpTestSuiteFunc set_up_tc,
2589
+ TearDownTestSuiteFunc tear_down_tc, TestFactoryBase* factory) {
2553
2590
  TestInfo* const test_info =
2554
- new TestInfo(test_case_name, name, type_param, value_param,
2591
+ new TestInfo(test_suite_name, name, type_param, value_param,
2555
2592
  code_location, fixture_class_id, factory);
2556
2593
  GetUnitTestImpl()->AddTestInfo(set_up_tc, tear_down_tc, test_info);
2557
2594
  return test_info;
2558
2595
  }
2559
2596
 
2560
- #if GTEST_HAS_PARAM_TEST
2561
- void ReportInvalidTestCaseType(const char* test_case_name,
2562
- CodeLocation code_location) {
2597
+ void ReportInvalidTestSuiteType(const char* test_suite_name,
2598
+ CodeLocation code_location) {
2563
2599
  Message errors;
2564
2600
  errors
2565
- << "Attempted redefinition of test case " << test_case_name << ".\n"
2566
- << "All tests in the same test case must use the same test fixture\n"
2567
- << "class. However, in test case " << test_case_name << ", you tried\n"
2601
+ << "Attempted redefinition of test suite " << test_suite_name << ".\n"
2602
+ << "All tests in the same test suite must use the same test fixture\n"
2603
+ << "class. However, in test suite " << test_suite_name << ", you tried\n"
2568
2604
  << "to define a test using a fixture class different from the one\n"
2569
2605
  << "used earlier. This can happen if the two fixture classes are\n"
2570
2606
  << "from different namespaces and have the same name. You should\n"
2571
2607
  << "probably rename one of the classes to put the tests into different\n"
2572
- << "test cases.";
2608
+ << "test suites.";
2573
2609
 
2574
- fprintf(stderr, "%s %s",
2575
- FormatFileLocation(code_location.file.c_str(),
2576
- code_location.line).c_str(),
2577
- errors.GetString().c_str());
2610
+ GTEST_LOG_(ERROR) << FormatFileLocation(code_location.file.c_str(),
2611
+ code_location.line)
2612
+ << " " << errors.GetString();
2578
2613
  }
2579
- #endif // GTEST_HAS_PARAM_TEST
2580
-
2581
2614
  } // namespace internal
2582
2615
 
2583
2616
  namespace {
@@ -2585,7 +2618,7 @@ namespace {
2585
2618
  // A predicate that checks the test name of a TestInfo against a known
2586
2619
  // value.
2587
2620
  //
2588
- // This is used for implementation of the TestCase class only. We put
2621
+ // This is used for implementation of the TestSuite class only. We put
2589
2622
  // it in the anonymous namespace to prevent polluting the outer
2590
2623
  // namespace.
2591
2624
  //
@@ -2612,15 +2645,13 @@ class TestNameIs {
2612
2645
  namespace internal {
2613
2646
 
2614
2647
  // This method expands all parameterized tests registered with macros TEST_P
2615
- // and INSTANTIATE_TEST_CASE_P into regular tests and registers those.
2648
+ // and INSTANTIATE_TEST_SUITE_P into regular tests and registers those.
2616
2649
  // This will be done just once during the program runtime.
2617
2650
  void UnitTestImpl::RegisterParameterizedTests() {
2618
- #if GTEST_HAS_PARAM_TEST
2619
2651
  if (!parameterized_tests_registered_) {
2620
2652
  parameterized_test_registry_.RegisterTests();
2621
2653
  parameterized_tests_registered_ = true;
2622
2654
  }
2623
- #endif
2624
2655
  }
2625
2656
 
2626
2657
  } // namespace internal
@@ -2648,18 +2679,21 @@ void TestInfo::Run() {
2648
2679
  factory_, &internal::TestFactoryBase::CreateTest,
2649
2680
  "the test fixture's constructor");
2650
2681
 
2651
- // Runs the test only if the test object was created and its
2652
- // constructor didn't generate a fatal failure.
2653
- if ((test != NULL) && !Test::HasFatalFailure()) {
2682
+ // Runs the test if the constructor didn't generate a fatal failure or invoke
2683
+ // GTEST_SKIP().
2684
+ // Note that the object will not be null
2685
+ if (!Test::HasFatalFailure() && !Test::IsSkipped()) {
2654
2686
  // This doesn't throw as all user code that can throw are wrapped into
2655
2687
  // exception handling code.
2656
2688
  test->Run();
2657
2689
  }
2658
2690
 
2659
- // Deletes the test object.
2660
- impl->os_stack_trace_getter()->UponLeavingGTest();
2661
- internal::HandleExceptionsInMethodIfSupported(
2662
- test, &Test::DeleteSelf_, "the test fixture's destructor");
2691
+ if (test != nullptr) {
2692
+ // Deletes the test object.
2693
+ impl->os_stack_trace_getter()->UponLeavingGTest();
2694
+ internal::HandleExceptionsInMethodIfSupported(
2695
+ test, &Test::DeleteSelf_, "the test fixture's destructor");
2696
+ }
2663
2697
 
2664
2698
  result_.set_elapsed_time(internal::GetTimeInMillis() - start);
2665
2699
 
@@ -2668,106 +2702,116 @@ void TestInfo::Run() {
2668
2702
 
2669
2703
  // Tells UnitTest to stop associating assertion results to this
2670
2704
  // test.
2671
- impl->set_current_test_info(NULL);
2705
+ impl->set_current_test_info(nullptr);
2672
2706
  }
2673
2707
 
2674
- // class TestCase
2708
+ // class TestSuite
2675
2709
 
2676
- // Gets the number of successful tests in this test case.
2677
- int TestCase::successful_test_count() const {
2710
+ // Gets the number of successful tests in this test suite.
2711
+ int TestSuite::successful_test_count() const {
2678
2712
  return CountIf(test_info_list_, TestPassed);
2679
2713
  }
2680
2714
 
2681
- // Gets the number of failed tests in this test case.
2682
- int TestCase::failed_test_count() const {
2715
+ // Gets the number of successful tests in this test suite.
2716
+ int TestSuite::skipped_test_count() const {
2717
+ return CountIf(test_info_list_, TestSkipped);
2718
+ }
2719
+
2720
+ // Gets the number of failed tests in this test suite.
2721
+ int TestSuite::failed_test_count() const {
2683
2722
  return CountIf(test_info_list_, TestFailed);
2684
2723
  }
2685
2724
 
2686
2725
  // Gets the number of disabled tests that will be reported in the XML report.
2687
- int TestCase::reportable_disabled_test_count() const {
2726
+ int TestSuite::reportable_disabled_test_count() const {
2688
2727
  return CountIf(test_info_list_, TestReportableDisabled);
2689
2728
  }
2690
2729
 
2691
- // Gets the number of disabled tests in this test case.
2692
- int TestCase::disabled_test_count() const {
2730
+ // Gets the number of disabled tests in this test suite.
2731
+ int TestSuite::disabled_test_count() const {
2693
2732
  return CountIf(test_info_list_, TestDisabled);
2694
2733
  }
2695
2734
 
2696
2735
  // Gets the number of tests to be printed in the XML report.
2697
- int TestCase::reportable_test_count() const {
2736
+ int TestSuite::reportable_test_count() const {
2698
2737
  return CountIf(test_info_list_, TestReportable);
2699
2738
  }
2700
2739
 
2701
- // Get the number of tests in this test case that should run.
2702
- int TestCase::test_to_run_count() const {
2740
+ // Get the number of tests in this test suite that should run.
2741
+ int TestSuite::test_to_run_count() const {
2703
2742
  return CountIf(test_info_list_, ShouldRunTest);
2704
2743
  }
2705
2744
 
2706
2745
  // Gets the number of all tests.
2707
- int TestCase::total_test_count() const {
2746
+ int TestSuite::total_test_count() const {
2708
2747
  return static_cast<int>(test_info_list_.size());
2709
2748
  }
2710
2749
 
2711
- // Creates a TestCase with the given name.
2750
+ // Creates a TestSuite with the given name.
2712
2751
  //
2713
2752
  // Arguments:
2714
2753
  //
2715
- // name: name of the test case
2716
- // a_type_param: the name of the test case's type parameter, or NULL if
2717
- // this is not a typed or a type-parameterized test case.
2718
- // set_up_tc: pointer to the function that sets up the test case
2719
- // tear_down_tc: pointer to the function that tears down the test case
2720
- TestCase::TestCase(const char* a_name, const char* a_type_param,
2721
- Test::SetUpTestCaseFunc set_up_tc,
2722
- Test::TearDownTestCaseFunc tear_down_tc)
2754
+ // name: name of the test suite
2755
+ // a_type_param: the name of the test suite's type parameter, or NULL if
2756
+ // this is not a typed or a type-parameterized test suite.
2757
+ // set_up_tc: pointer to the function that sets up the test suite
2758
+ // tear_down_tc: pointer to the function that tears down the test suite
2759
+ TestSuite::TestSuite(const char* a_name, const char* a_type_param,
2760
+ internal::SetUpTestSuiteFunc set_up_tc,
2761
+ internal::TearDownTestSuiteFunc tear_down_tc)
2723
2762
  : name_(a_name),
2724
- type_param_(a_type_param ? new std::string(a_type_param) : NULL),
2763
+ type_param_(a_type_param ? new std::string(a_type_param) : nullptr),
2725
2764
  set_up_tc_(set_up_tc),
2726
2765
  tear_down_tc_(tear_down_tc),
2727
2766
  should_run_(false),
2728
- elapsed_time_(0) {
2729
- }
2767
+ elapsed_time_(0) {}
2730
2768
 
2731
- // Destructor of TestCase.
2732
- TestCase::~TestCase() {
2769
+ // Destructor of TestSuite.
2770
+ TestSuite::~TestSuite() {
2733
2771
  // Deletes every Test in the collection.
2734
2772
  ForEach(test_info_list_, internal::Delete<TestInfo>);
2735
2773
  }
2736
2774
 
2737
2775
  // Returns the i-th test among all the tests. i can range from 0 to
2738
2776
  // total_test_count() - 1. If i is not in that range, returns NULL.
2739
- const TestInfo* TestCase::GetTestInfo(int i) const {
2777
+ const TestInfo* TestSuite::GetTestInfo(int i) const {
2740
2778
  const int index = GetElementOr(test_indices_, i, -1);
2741
- return index < 0 ? NULL : test_info_list_[index];
2779
+ return index < 0 ? nullptr : test_info_list_[index];
2742
2780
  }
2743
2781
 
2744
2782
  // Returns the i-th test among all the tests. i can range from 0 to
2745
2783
  // total_test_count() - 1. If i is not in that range, returns NULL.
2746
- TestInfo* TestCase::GetMutableTestInfo(int i) {
2784
+ TestInfo* TestSuite::GetMutableTestInfo(int i) {
2747
2785
  const int index = GetElementOr(test_indices_, i, -1);
2748
- return index < 0 ? NULL : test_info_list_[index];
2786
+ return index < 0 ? nullptr : test_info_list_[index];
2749
2787
  }
2750
2788
 
2751
- // Adds a test to this test case. Will delete the test upon
2752
- // destruction of the TestCase object.
2753
- void TestCase::AddTestInfo(TestInfo * test_info) {
2789
+ // Adds a test to this test suite. Will delete the test upon
2790
+ // destruction of the TestSuite object.
2791
+ void TestSuite::AddTestInfo(TestInfo* test_info) {
2754
2792
  test_info_list_.push_back(test_info);
2755
2793
  test_indices_.push_back(static_cast<int>(test_indices_.size()));
2756
2794
  }
2757
2795
 
2758
- // Runs every test in this TestCase.
2759
- void TestCase::Run() {
2796
+ // Runs every test in this TestSuite.
2797
+ void TestSuite::Run() {
2760
2798
  if (!should_run_) return;
2761
2799
 
2762
2800
  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
2763
- impl->set_current_test_case(this);
2801
+ impl->set_current_test_suite(this);
2764
2802
 
2765
2803
  TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater();
2766
2804
 
2805
+ // Call both legacy and the new API
2806
+ repeater->OnTestSuiteStart(*this);
2807
+ // Legacy API is deprecated but still available
2808
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
2767
2809
  repeater->OnTestCaseStart(*this);
2810
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
2811
+
2768
2812
  impl->os_stack_trace_getter()->UponLeavingGTest();
2769
2813
  internal::HandleExceptionsInMethodIfSupported(
2770
- this, &TestCase::RunSetUpTestCase, "SetUpTestCase()");
2814
+ this, &TestSuite::RunSetUpTestSuite, "SetUpTestSuite()");
2771
2815
 
2772
2816
  const internal::TimeInMillis start = internal::GetTimeInMillis();
2773
2817
  for (int i = 0; i < total_test_count(); i++) {
@@ -2777,25 +2821,31 @@ void TestCase::Run() {
2777
2821
 
2778
2822
  impl->os_stack_trace_getter()->UponLeavingGTest();
2779
2823
  internal::HandleExceptionsInMethodIfSupported(
2780
- this, &TestCase::RunTearDownTestCase, "TearDownTestCase()");
2824
+ this, &TestSuite::RunTearDownTestSuite, "TearDownTestSuite()");
2781
2825
 
2826
+ // Call both legacy and the new API
2827
+ repeater->OnTestSuiteEnd(*this);
2828
+ // Legacy API is deprecated but still available
2829
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
2782
2830
  repeater->OnTestCaseEnd(*this);
2783
- impl->set_current_test_case(NULL);
2831
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
2832
+
2833
+ impl->set_current_test_suite(nullptr);
2784
2834
  }
2785
2835
 
2786
- // Clears the results of all tests in this test case.
2787
- void TestCase::ClearResult() {
2836
+ // Clears the results of all tests in this test suite.
2837
+ void TestSuite::ClearResult() {
2788
2838
  ad_hoc_test_result_.Clear();
2789
2839
  ForEach(test_info_list_, TestInfo::ClearTestResult);
2790
2840
  }
2791
2841
 
2792
- // Shuffles the tests in this test case.
2793
- void TestCase::ShuffleTests(internal::Random* random) {
2842
+ // Shuffles the tests in this test suite.
2843
+ void TestSuite::ShuffleTests(internal::Random* random) {
2794
2844
  Shuffle(random, &test_indices_);
2795
2845
  }
2796
2846
 
2797
2847
  // Restores the test order to before the first shuffle.
2798
- void TestCase::UnshuffleTests() {
2848
+ void TestSuite::UnshuffleTests() {
2799
2849
  for (size_t i = 0; i < test_indices_.size(); i++) {
2800
2850
  test_indices_[i] = static_cast<int>(i);
2801
2851
  }
@@ -2818,9 +2868,9 @@ static std::string FormatTestCount(int test_count) {
2818
2868
  return FormatCountableNoun(test_count, "test", "tests");
2819
2869
  }
2820
2870
 
2821
- // Formats the count of test cases.
2822
- static std::string FormatTestCaseCount(int test_case_count) {
2823
- return FormatCountableNoun(test_case_count, "test case", "test cases");
2871
+ // Formats the count of test suites.
2872
+ static std::string FormatTestSuiteCount(int test_suite_count) {
2873
+ return FormatCountableNoun(test_suite_count, "test suite", "test suites");
2824
2874
  }
2825
2875
 
2826
2876
  // Converts a TestPartResult::Type enum to human-friendly string
@@ -2829,6 +2879,8 @@ static std::string FormatTestCaseCount(int test_case_count) {
2829
2879
  // between the two when viewing the test result.
2830
2880
  static const char * TestPartResultTypeToString(TestPartResult::Type type) {
2831
2881
  switch (type) {
2882
+ case TestPartResult::kSkip:
2883
+ return "Skipped";
2832
2884
  case TestPartResult::kSuccess:
2833
2885
  return "Success";
2834
2886
 
@@ -2876,19 +2928,11 @@ static void PrintTestPartResult(const TestPartResult& test_part_result) {
2876
2928
  }
2877
2929
 
2878
2930
  // class PrettyUnitTestResultPrinter
2879
-
2880
- enum GTestColor {
2881
- COLOR_DEFAULT,
2882
- COLOR_RED,
2883
- COLOR_GREEN,
2884
- COLOR_YELLOW
2885
- };
2886
-
2887
2931
  #if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && \
2888
- !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
2932
+ !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT && !GTEST_OS_WINDOWS_MINGW
2889
2933
 
2890
2934
  // Returns the character attribute for the given color.
2891
- WORD GetColorAttribute(GTestColor color) {
2935
+ static WORD GetColorAttribute(GTestColor color) {
2892
2936
  switch (color) {
2893
2937
  case COLOR_RED: return FOREGROUND_RED;
2894
2938
  case COLOR_GREEN: return FOREGROUND_GREEN;
@@ -2897,17 +2941,49 @@ WORD GetColorAttribute(GTestColor color) {
2897
2941
  }
2898
2942
  }
2899
2943
 
2944
+ static int GetBitOffset(WORD color_mask) {
2945
+ if (color_mask == 0) return 0;
2946
+
2947
+ int bitOffset = 0;
2948
+ while ((color_mask & 1) == 0) {
2949
+ color_mask >>= 1;
2950
+ ++bitOffset;
2951
+ }
2952
+ return bitOffset;
2953
+ }
2954
+
2955
+ static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
2956
+ // Let's reuse the BG
2957
+ static const WORD background_mask = BACKGROUND_BLUE | BACKGROUND_GREEN |
2958
+ BACKGROUND_RED | BACKGROUND_INTENSITY;
2959
+ static const WORD foreground_mask = FOREGROUND_BLUE | FOREGROUND_GREEN |
2960
+ FOREGROUND_RED | FOREGROUND_INTENSITY;
2961
+ const WORD existing_bg = old_color_attrs & background_mask;
2962
+
2963
+ WORD new_color =
2964
+ GetColorAttribute(color) | existing_bg | FOREGROUND_INTENSITY;
2965
+ static const int bg_bitOffset = GetBitOffset(background_mask);
2966
+ static const int fg_bitOffset = GetBitOffset(foreground_mask);
2967
+
2968
+ if (((new_color & background_mask) >> bg_bitOffset) ==
2969
+ ((new_color & foreground_mask) >> fg_bitOffset)) {
2970
+ new_color ^= FOREGROUND_INTENSITY; // invert intensity
2971
+ }
2972
+ return new_color;
2973
+ }
2974
+
2900
2975
  #else
2901
2976
 
2902
2977
  // Returns the ANSI color code for the given color. COLOR_DEFAULT is
2903
2978
  // an invalid input.
2904
- const char* GetAnsiColorCode(GTestColor color) {
2979
+ static const char* GetAnsiColorCode(GTestColor color) {
2905
2980
  switch (color) {
2906
2981
  case COLOR_RED: return "1";
2907
2982
  case COLOR_GREEN: return "2";
2908
2983
  case COLOR_YELLOW: return "3";
2909
- default: return NULL;
2910
- };
2984
+ default:
2985
+ return nullptr;
2986
+ }
2911
2987
  }
2912
2988
 
2913
2989
  #endif // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE
@@ -2917,7 +2993,7 @@ bool ShouldUseColor(bool stdout_is_tty) {
2917
2993
  const char* const gtest_color = GTEST_FLAG(color).c_str();
2918
2994
 
2919
2995
  if (String::CaseInsensitiveCStringEquals(gtest_color, "auto")) {
2920
- #if GTEST_OS_WINDOWS
2996
+ #if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
2921
2997
  // On Windows the TERM variable is usually not set, but the
2922
2998
  // console there does support colors.
2923
2999
  return stdout_is_tty;
@@ -2957,15 +3033,14 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) {
2957
3033
  va_list args;
2958
3034
  va_start(args, fmt);
2959
3035
 
2960
- #if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS || \
2961
- GTEST_OS_IOS || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
3036
+ #if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_ZOS || GTEST_OS_IOS || \
3037
+ GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
2962
3038
  const bool use_color = AlwaysFalse();
2963
3039
  #else
2964
3040
  static const bool in_color_mode =
2965
3041
  ShouldUseColor(posix::IsATTY(posix::FileNo(stdout)) != 0);
2966
3042
  const bool use_color = in_color_mode && (color != COLOR_DEFAULT);
2967
- #endif // GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS
2968
- // The '!= 0' comparison is necessary to satisfy MSVC 7.1.
3043
+ #endif // GTEST_OS_WINDOWS_MOBILE || GTEST_OS_ZOS
2969
3044
 
2970
3045
  if (!use_color) {
2971
3046
  vprintf(fmt, args);
@@ -2974,20 +3049,21 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) {
2974
3049
  }
2975
3050
 
2976
3051
  #if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && \
2977
- !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
3052
+ !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT && !GTEST_OS_WINDOWS_MINGW
2978
3053
  const HANDLE stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE);
2979
3054
 
2980
3055
  // Gets the current text color.
2981
3056
  CONSOLE_SCREEN_BUFFER_INFO buffer_info;
2982
3057
  GetConsoleScreenBufferInfo(stdout_handle, &buffer_info);
2983
3058
  const WORD old_color_attrs = buffer_info.wAttributes;
3059
+ const WORD new_color = GetNewColor(color, old_color_attrs);
2984
3060
 
2985
3061
  // We need to flush the stream buffers into the console before each
2986
3062
  // SetConsoleTextAttribute call lest it affect the text that is already
2987
3063
  // printed but has not yet reached the console.
2988
3064
  fflush(stdout);
2989
- SetConsoleTextAttribute(stdout_handle,
2990
- GetColorAttribute(color) | FOREGROUND_INTENSITY);
3065
+ SetConsoleTextAttribute(stdout_handle, new_color);
3066
+
2991
3067
  vprintf(fmt, args);
2992
3068
 
2993
3069
  fflush(stdout);
@@ -3001,23 +3077,22 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) {
3001
3077
  va_end(args);
3002
3078
  }
3003
3079
 
3004
- // Text printed in Google Test's text output and --gunit_list_tests
3080
+ // Text printed in Google Test's text output and --gtest_list_tests
3005
3081
  // output to label the type parameter and value parameter for a test.
3006
3082
  static const char kTypeParamLabel[] = "TypeParam";
3007
3083
  static const char kValueParamLabel[] = "GetParam()";
3008
3084
 
3009
- void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
3085
+ static void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
3010
3086
  const char* const type_param = test_info.type_param();
3011
3087
  const char* const value_param = test_info.value_param();
3012
3088
 
3013
- if (type_param != NULL || value_param != NULL) {
3089
+ if (type_param != nullptr || value_param != nullptr) {
3014
3090
  printf(", where ");
3015
- if (type_param != NULL) {
3091
+ if (type_param != nullptr) {
3016
3092
  printf("%s = %s", kTypeParamLabel, type_param);
3017
- if (value_param != NULL)
3018
- printf(" and ");
3093
+ if (value_param != nullptr) printf(" and ");
3019
3094
  }
3020
- if (value_param != NULL) {
3095
+ if (value_param != nullptr) {
3021
3096
  printf("%s = %s", kValueParamLabel, value_param);
3022
3097
  }
3023
3098
  }
@@ -3029,27 +3104,28 @@ void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
3029
3104
  class PrettyUnitTestResultPrinter : public TestEventListener {
3030
3105
  public:
3031
3106
  PrettyUnitTestResultPrinter() {}
3032
- static void PrintTestName(const char * test_case, const char * test) {
3033
- printf("%s.%s", test_case, test);
3107
+ static void PrintTestName(const char* test_suite, const char* test) {
3108
+ printf("%s.%s", test_suite, test);
3034
3109
  }
3035
3110
 
3036
3111
  // The following methods override what's in the TestEventListener class.
3037
- virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {}
3038
- virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration);
3039
- virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test);
3040
- virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {}
3041
- virtual void OnTestCaseStart(const TestCase& test_case);
3042
- virtual void OnTestStart(const TestInfo& test_info);
3043
- virtual void OnTestPartResult(const TestPartResult& result);
3044
- virtual void OnTestEnd(const TestInfo& test_info);
3045
- virtual void OnTestCaseEnd(const TestCase& test_case);
3046
- virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test);
3047
- virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {}
3048
- virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
3049
- virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {}
3112
+ void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
3113
+ void OnTestIterationStart(const UnitTest& unit_test, int iteration) override;
3114
+ void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override;
3115
+ void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {}
3116
+ void OnTestCaseStart(const TestSuite& test_suite) override;
3117
+ void OnTestStart(const TestInfo& test_info) override;
3118
+ void OnTestPartResult(const TestPartResult& result) override;
3119
+ void OnTestEnd(const TestInfo& test_info) override;
3120
+ void OnTestCaseEnd(const TestSuite& test_suite) override;
3121
+ void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override;
3122
+ void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {}
3123
+ void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override;
3124
+ void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
3050
3125
 
3051
3126
  private:
3052
3127
  static void PrintFailedTests(const UnitTest& unit_test);
3128
+ static void PrintSkippedTests(const UnitTest& unit_test);
3053
3129
  };
3054
3130
 
3055
3131
  // Fired before each iteration of tests starts.
@@ -3084,7 +3160,7 @@ void PrettyUnitTestResultPrinter::OnTestIterationStart(
3084
3160
  ColoredPrintf(COLOR_GREEN, "[==========] ");
3085
3161
  printf("Running %s from %s.\n",
3086
3162
  FormatTestCount(unit_test.test_to_run_count()).c_str(),
3087
- FormatTestCaseCount(unit_test.test_case_to_run_count()).c_str());
3163
+ FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str());
3088
3164
  fflush(stdout);
3089
3165
  }
3090
3166
 
@@ -3095,22 +3171,22 @@ void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart(
3095
3171
  fflush(stdout);
3096
3172
  }
3097
3173
 
3098
- void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestCase& test_case) {
3174
+ void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestSuite& test_suite) {
3099
3175
  const std::string counts =
3100
- FormatCountableNoun(test_case.test_to_run_count(), "test", "tests");
3176
+ FormatCountableNoun(test_suite.test_to_run_count(), "test", "tests");
3101
3177
  ColoredPrintf(COLOR_GREEN, "[----------] ");
3102
- printf("%s from %s", counts.c_str(), test_case.name());
3103
- if (test_case.type_param() == NULL) {
3178
+ printf("%s from %s", counts.c_str(), test_suite.name());
3179
+ if (test_suite.type_param() == nullptr) {
3104
3180
  printf("\n");
3105
3181
  } else {
3106
- printf(", where %s = %s\n", kTypeParamLabel, test_case.type_param());
3182
+ printf(", where %s = %s\n", kTypeParamLabel, test_suite.type_param());
3107
3183
  }
3108
3184
  fflush(stdout);
3109
3185
  }
3110
3186
 
3111
3187
  void PrettyUnitTestResultPrinter::OnTestStart(const TestInfo& test_info) {
3112
3188
  ColoredPrintf(COLOR_GREEN, "[ RUN ] ");
3113
- PrintTestName(test_info.test_case_name(), test_info.name());
3189
+ PrintTestName(test_info.test_suite_name(), test_info.name());
3114
3190
  printf("\n");
3115
3191
  fflush(stdout);
3116
3192
  }
@@ -3118,22 +3194,29 @@ void PrettyUnitTestResultPrinter::OnTestStart(const TestInfo& test_info) {
3118
3194
  // Called after an assertion failure.
3119
3195
  void PrettyUnitTestResultPrinter::OnTestPartResult(
3120
3196
  const TestPartResult& result) {
3121
- // If the test part succeeded, we don't need to do anything.
3122
- if (result.type() == TestPartResult::kSuccess)
3123
- return;
3124
-
3125
- // Print failure message from the assertion (e.g. expected this and got that).
3126
- PrintTestPartResult(result);
3127
- fflush(stdout);
3197
+ switch (result.type()) {
3198
+ // If the test part succeeded, or was skipped,
3199
+ // we don't need to do anything.
3200
+ case TestPartResult::kSkip:
3201
+ case TestPartResult::kSuccess:
3202
+ return;
3203
+ default:
3204
+ // Print failure message from the assertion
3205
+ // (e.g. expected this and got that).
3206
+ PrintTestPartResult(result);
3207
+ fflush(stdout);
3208
+ }
3128
3209
  }
3129
3210
 
3130
3211
  void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) {
3131
3212
  if (test_info.result()->Passed()) {
3132
3213
  ColoredPrintf(COLOR_GREEN, "[ OK ] ");
3214
+ } else if (test_info.result()->Skipped()) {
3215
+ ColoredPrintf(COLOR_GREEN, "[ SKIPPED ] ");
3133
3216
  } else {
3134
3217
  ColoredPrintf(COLOR_RED, "[ FAILED ] ");
3135
3218
  }
3136
- PrintTestName(test_info.test_case_name(), test_info.name());
3219
+ PrintTestName(test_info.test_suite_name(), test_info.name());
3137
3220
  if (test_info.result()->Failed())
3138
3221
  PrintFullTestCommentIfPresent(test_info);
3139
3222
 
@@ -3146,15 +3229,14 @@ void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) {
3146
3229
  fflush(stdout);
3147
3230
  }
3148
3231
 
3149
- void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestCase& test_case) {
3232
+ void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestSuite& test_suite) {
3150
3233
  if (!GTEST_FLAG(print_time)) return;
3151
3234
 
3152
3235
  const std::string counts =
3153
- FormatCountableNoun(test_case.test_to_run_count(), "test", "tests");
3236
+ FormatCountableNoun(test_suite.test_to_run_count(), "test", "tests");
3154
3237
  ColoredPrintf(COLOR_GREEN, "[----------] ");
3155
- printf("%s from %s (%s ms total)\n\n",
3156
- counts.c_str(), test_case.name(),
3157
- internal::StreamableToString(test_case.elapsed_time()).c_str());
3238
+ printf("%s from %s (%s ms total)\n\n", counts.c_str(), test_suite.name(),
3239
+ internal::StreamableToString(test_suite.elapsed_time()).c_str());
3158
3240
  fflush(stdout);
3159
3241
  }
3160
3242
 
@@ -3172,30 +3254,54 @@ void PrettyUnitTestResultPrinter::PrintFailedTests(const UnitTest& unit_test) {
3172
3254
  return;
3173
3255
  }
3174
3256
 
3175
- for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
3176
- const TestCase& test_case = *unit_test.GetTestCase(i);
3177
- if (!test_case.should_run() || (test_case.failed_test_count() == 0)) {
3257
+ for (int i = 0; i < unit_test.total_test_suite_count(); ++i) {
3258
+ const TestSuite& test_suite = *unit_test.GetTestSuite(i);
3259
+ if (!test_suite.should_run() || (test_suite.failed_test_count() == 0)) {
3178
3260
  continue;
3179
3261
  }
3180
- for (int j = 0; j < test_case.total_test_count(); ++j) {
3181
- const TestInfo& test_info = *test_case.GetTestInfo(j);
3182
- if (!test_info.should_run() || test_info.result()->Passed()) {
3262
+ for (int j = 0; j < test_suite.total_test_count(); ++j) {
3263
+ const TestInfo& test_info = *test_suite.GetTestInfo(j);
3264
+ if (!test_info.should_run() || !test_info.result()->Failed()) {
3183
3265
  continue;
3184
3266
  }
3185
3267
  ColoredPrintf(COLOR_RED, "[ FAILED ] ");
3186
- printf("%s.%s", test_case.name(), test_info.name());
3268
+ printf("%s.%s", test_suite.name(), test_info.name());
3187
3269
  PrintFullTestCommentIfPresent(test_info);
3188
3270
  printf("\n");
3189
3271
  }
3190
3272
  }
3191
3273
  }
3192
3274
 
3275
+ // Internal helper for printing the list of skipped tests.
3276
+ void PrettyUnitTestResultPrinter::PrintSkippedTests(const UnitTest& unit_test) {
3277
+ const int skipped_test_count = unit_test.skipped_test_count();
3278
+ if (skipped_test_count == 0) {
3279
+ return;
3280
+ }
3281
+
3282
+ for (int i = 0; i < unit_test.total_test_suite_count(); ++i) {
3283
+ const TestSuite& test_suite = *unit_test.GetTestSuite(i);
3284
+ if (!test_suite.should_run() || (test_suite.skipped_test_count() == 0)) {
3285
+ continue;
3286
+ }
3287
+ for (int j = 0; j < test_suite.total_test_count(); ++j) {
3288
+ const TestInfo& test_info = *test_suite.GetTestInfo(j);
3289
+ if (!test_info.should_run() || !test_info.result()->Skipped()) {
3290
+ continue;
3291
+ }
3292
+ ColoredPrintf(COLOR_GREEN, "[ SKIPPED ] ");
3293
+ printf("%s.%s", test_suite.name(), test_info.name());
3294
+ printf("\n");
3295
+ }
3296
+ }
3297
+ }
3298
+
3193
3299
  void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
3194
3300
  int /*iteration*/) {
3195
3301
  ColoredPrintf(COLOR_GREEN, "[==========] ");
3196
3302
  printf("%s from %s ran.",
3197
3303
  FormatTestCount(unit_test.test_to_run_count()).c_str(),
3198
- FormatTestCaseCount(unit_test.test_case_to_run_count()).c_str());
3304
+ FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str());
3199
3305
  if (GTEST_FLAG(print_time)) {
3200
3306
  printf(" (%s ms total)",
3201
3307
  internal::StreamableToString(unit_test.elapsed_time()).c_str());
@@ -3204,6 +3310,13 @@ void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
3204
3310
  ColoredPrintf(COLOR_GREEN, "[ PASSED ] ");
3205
3311
  printf("%s.\n", FormatTestCount(unit_test.successful_test_count()).c_str());
3206
3312
 
3313
+ const int skipped_test_count = unit_test.skipped_test_count();
3314
+ if (skipped_test_count > 0) {
3315
+ ColoredPrintf(COLOR_GREEN, "[ SKIPPED ] ");
3316
+ printf("%s, listed below:\n", FormatTestCount(skipped_test_count).c_str());
3317
+ PrintSkippedTests(unit_test);
3318
+ }
3319
+
3207
3320
  int num_failures = unit_test.failed_test_count();
3208
3321
  if (!unit_test.Passed()) {
3209
3322
  const int failed_test_count = unit_test.failed_test_count();
@@ -3236,7 +3349,7 @@ void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
3236
3349
  class TestEventRepeater : public TestEventListener {
3237
3350
  public:
3238
3351
  TestEventRepeater() : forwarding_enabled_(true) {}
3239
- virtual ~TestEventRepeater();
3352
+ ~TestEventRepeater() override;
3240
3353
  void Append(TestEventListener *listener);
3241
3354
  TestEventListener* Release(TestEventListener* listener);
3242
3355
 
@@ -3245,19 +3358,27 @@ class TestEventRepeater : public TestEventListener {
3245
3358
  bool forwarding_enabled() const { return forwarding_enabled_; }
3246
3359
  void set_forwarding_enabled(bool enable) { forwarding_enabled_ = enable; }
3247
3360
 
3248
- virtual void OnTestProgramStart(const UnitTest& unit_test);
3249
- virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration);
3250
- virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test);
3251
- virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test);
3252
- virtual void OnTestCaseStart(const TestCase& test_case);
3253
- virtual void OnTestStart(const TestInfo& test_info);
3254
- virtual void OnTestPartResult(const TestPartResult& result);
3255
- virtual void OnTestEnd(const TestInfo& test_info);
3256
- virtual void OnTestCaseEnd(const TestCase& test_case);
3257
- virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test);
3258
- virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test);
3259
- virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
3260
- virtual void OnTestProgramEnd(const UnitTest& unit_test);
3361
+ void OnTestProgramStart(const UnitTest& unit_test) override;
3362
+ void OnTestIterationStart(const UnitTest& unit_test, int iteration) override;
3363
+ void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override;
3364
+ void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) override;
3365
+ // Legacy API is deprecated but still available
3366
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
3367
+ void OnTestCaseStart(const TestSuite& parameter) override;
3368
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
3369
+ void OnTestSuiteStart(const TestSuite& parameter) override;
3370
+ void OnTestStart(const TestInfo& test_info) override;
3371
+ void OnTestPartResult(const TestPartResult& result) override;
3372
+ void OnTestEnd(const TestInfo& test_info) override;
3373
+ // Legacy API is deprecated but still available
3374
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
3375
+ void OnTestCaseEnd(const TestSuite& parameter) override;
3376
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
3377
+ void OnTestSuiteEnd(const TestSuite& parameter) override;
3378
+ void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override;
3379
+ void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) override;
3380
+ void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override;
3381
+ void OnTestProgramEnd(const UnitTest& unit_test) override;
3261
3382
 
3262
3383
  private:
3263
3384
  // Controls whether events will be forwarded to listeners_. Set to false
@@ -3277,7 +3398,6 @@ void TestEventRepeater::Append(TestEventListener *listener) {
3277
3398
  listeners_.push_back(listener);
3278
3399
  }
3279
3400
 
3280
- // TODO(vladl@google.com): Factor the search functionality into Vector::Find.
3281
3401
  TestEventListener* TestEventRepeater::Release(TestEventListener *listener) {
3282
3402
  for (size_t i = 0; i < listeners_.size(); ++i) {
3283
3403
  if (listeners_[i] == listener) {
@@ -3286,7 +3406,7 @@ TestEventListener* TestEventRepeater::Release(TestEventListener *listener) {
3286
3406
  }
3287
3407
  }
3288
3408
 
3289
- return NULL;
3409
+ return nullptr;
3290
3410
  }
3291
3411
 
3292
3412
  // Since most methods are very similar, use macros to reduce boilerplate.
@@ -3312,14 +3432,22 @@ void TestEventRepeater::Name(const Type& parameter) { \
3312
3432
 
3313
3433
  GTEST_REPEATER_METHOD_(OnTestProgramStart, UnitTest)
3314
3434
  GTEST_REPEATER_METHOD_(OnEnvironmentsSetUpStart, UnitTest)
3315
- GTEST_REPEATER_METHOD_(OnTestCaseStart, TestCase)
3435
+ // Legacy API is deprecated but still available
3436
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
3437
+ GTEST_REPEATER_METHOD_(OnTestCaseStart, TestSuite)
3438
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
3439
+ GTEST_REPEATER_METHOD_(OnTestSuiteStart, TestSuite)
3316
3440
  GTEST_REPEATER_METHOD_(OnTestStart, TestInfo)
3317
3441
  GTEST_REPEATER_METHOD_(OnTestPartResult, TestPartResult)
3318
3442
  GTEST_REPEATER_METHOD_(OnEnvironmentsTearDownStart, UnitTest)
3319
3443
  GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsSetUpEnd, UnitTest)
3320
3444
  GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsTearDownEnd, UnitTest)
3321
3445
  GTEST_REVERSE_REPEATER_METHOD_(OnTestEnd, TestInfo)
3322
- GTEST_REVERSE_REPEATER_METHOD_(OnTestCaseEnd, TestCase)
3446
+ // Legacy API is deprecated but still available
3447
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
3448
+ GTEST_REVERSE_REPEATER_METHOD_(OnTestCaseEnd, TestSuite)
3449
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
3450
+ GTEST_REVERSE_REPEATER_METHOD_(OnTestSuiteEnd, TestSuite)
3323
3451
  GTEST_REVERSE_REPEATER_METHOD_(OnTestProgramEnd, UnitTest)
3324
3452
 
3325
3453
  #undef GTEST_REPEATER_METHOD_
@@ -3350,7 +3478,12 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener {
3350
3478
  public:
3351
3479
  explicit XmlUnitTestResultPrinter(const char* output_file);
3352
3480
 
3353
- virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
3481
+ void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override;
3482
+ void ListTestsMatchingFilter(const std::vector<TestSuite*>& test_suites);
3483
+
3484
+ // Prints an XML summary of all unit tests.
3485
+ static void PrintXmlTestsList(std::ostream* stream,
3486
+ const std::vector<TestSuite*>& test_suites);
3354
3487
 
3355
3488
  private:
3356
3489
  // Is c a whitespace character that is normalized to a space character
@@ -3395,12 +3528,12 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener {
3395
3528
 
3396
3529
  // Streams an XML representation of a TestInfo object.
3397
3530
  static void OutputXmlTestInfo(::std::ostream* stream,
3398
- const char* test_case_name,
3531
+ const char* test_suite_name,
3399
3532
  const TestInfo& test_info);
3400
3533
 
3401
- // Prints an XML representation of a TestCase object
3402
- static void PrintXmlTestCase(::std::ostream* stream,
3403
- const TestCase& test_case);
3534
+ // Prints an XML representation of a TestSuite object
3535
+ static void PrintXmlTestSuite(::std::ostream* stream,
3536
+ const TestSuite& test_suite);
3404
3537
 
3405
3538
  // Prints an XML summary of unit_test to output stream out.
3406
3539
  static void PrintXmlUnitTest(::std::ostream* stream,
@@ -3412,6 +3545,11 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener {
3412
3545
  // to delimit this attribute from prior attributes.
3413
3546
  static std::string TestPropertiesAsXmlAttributes(const TestResult& result);
3414
3547
 
3548
+ // Streams an XML representation of the test properties of a TestResult
3549
+ // object.
3550
+ static void OutputXmlTestProperties(std::ostream* stream,
3551
+ const TestResult& result);
3552
+
3415
3553
  // The output file.
3416
3554
  const std::string output_file_;
3417
3555
 
@@ -3421,46 +3559,30 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener {
3421
3559
  // Creates a new XmlUnitTestResultPrinter.
3422
3560
  XmlUnitTestResultPrinter::XmlUnitTestResultPrinter(const char* output_file)
3423
3561
  : output_file_(output_file) {
3424
- if (output_file_.c_str() == NULL || output_file_.empty()) {
3425
- fprintf(stderr, "XML output file may not be null\n");
3426
- fflush(stderr);
3427
- exit(EXIT_FAILURE);
3562
+ if (output_file_.empty()) {
3563
+ GTEST_LOG_(FATAL) << "XML output file may not be null";
3428
3564
  }
3429
3565
  }
3430
3566
 
3431
3567
  // Called after the unit test ends.
3432
3568
  void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
3433
3569
  int /*iteration*/) {
3434
- FILE* xmlout = NULL;
3435
- FilePath output_file(output_file_);
3436
- FilePath output_dir(output_file.RemoveFileName());
3437
-
3438
- if (output_dir.CreateDirectoriesRecursively()) {
3439
- xmlout = posix::FOpen(output_file_.c_str(), "w");
3440
- }
3441
- if (xmlout == NULL) {
3442
- // TODO(wan): report the reason of the failure.
3443
- //
3444
- // We don't do it for now as:
3445
- //
3446
- // 1. There is no urgent need for it.
3447
- // 2. It's a bit involved to make the errno variable thread-safe on
3448
- // all three operating systems (Linux, Windows, and Mac OS).
3449
- // 3. To interpret the meaning of errno in a thread-safe way,
3450
- // we need the strerror_r() function, which is not available on
3451
- // Windows.
3452
- fprintf(stderr,
3453
- "Unable to open file \"%s\"\n",
3454
- output_file_.c_str());
3455
- fflush(stderr);
3456
- exit(EXIT_FAILURE);
3457
- }
3570
+ FILE* xmlout = OpenFileForWriting(output_file_);
3458
3571
  std::stringstream stream;
3459
3572
  PrintXmlUnitTest(&stream, unit_test);
3460
3573
  fprintf(xmlout, "%s", StringStreamToString(&stream).c_str());
3461
3574
  fclose(xmlout);
3462
3575
  }
3463
3576
 
3577
+ void XmlUnitTestResultPrinter::ListTestsMatchingFilter(
3578
+ const std::vector<TestSuite*>& test_suites) {
3579
+ FILE* xmlout = OpenFileForWriting(output_file_);
3580
+ std::stringstream stream;
3581
+ PrintXmlTestsList(&stream, test_suites);
3582
+ fprintf(xmlout, "%s", StringStreamToString(&stream).c_str());
3583
+ fclose(xmlout);
3584
+ }
3585
+
3464
3586
  // Returns an XML-escaped copy of the input string str. If is_attribute
3465
3587
  // is true, the text is meant to appear as an attribute value, and
3466
3588
  // normalizable whitespace is preserved by replacing it with character
@@ -3471,8 +3593,6 @@ void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
3471
3593
  // module will consist of ordinary English text.
3472
3594
  // If this module is ever modified to produce version 1.1 XML output,
3473
3595
  // most invalid characters can be retained using character references.
3474
- // TODO(wan): It might be nice to have a minimally invasive, human-readable
3475
- // escaping scheme for invalid characters, rather than dropping them.
3476
3596
  std::string XmlUnitTestResultPrinter::EscapeXml(
3477
3597
  const std::string& str, bool is_attribute) {
3478
3598
  Message m;
@@ -3532,11 +3652,12 @@ std::string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters(
3532
3652
 
3533
3653
  // The following routines generate an XML representation of a UnitTest
3534
3654
  // object.
3655
+ // GOOGLETEST_CM0009 DO NOT DELETE
3535
3656
  //
3536
3657
  // This is how Google Test concepts map to the DTD:
3537
3658
  //
3538
3659
  // <testsuites name="AllTests"> <-- corresponds to a UnitTest object
3539
- // <testsuite name="testcase-name"> <-- corresponds to a TestCase object
3660
+ // <testsuite name="testcase-name"> <-- corresponds to a TestSuite object
3540
3661
  // <testcase name="test-name"> <-- corresponds to a TestInfo object
3541
3662
  // <failure message="...">...</failure>
3542
3663
  // <failure message="...">...</failure>
@@ -3560,12 +3681,11 @@ static bool PortableLocaltime(time_t seconds, struct tm* out) {
3560
3681
  // MINGW <time.h> provides neither localtime_r nor localtime_s, but uses
3561
3682
  // Windows' localtime(), which has a thread-local tm buffer.
3562
3683
  struct tm* tm_ptr = localtime(&seconds); // NOLINT
3563
- if (tm_ptr == NULL)
3564
- return false;
3684
+ if (tm_ptr == nullptr) return false;
3565
3685
  *out = *tm_ptr;
3566
3686
  return true;
3567
3687
  #else
3568
- return localtime_r(&seconds, out) != NULL;
3688
+ return localtime_r(&seconds, out) != nullptr;
3569
3689
  #endif
3570
3690
  }
3571
3691
 
@@ -3591,7 +3711,7 @@ void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream,
3591
3711
  *stream << "<![CDATA[";
3592
3712
  for (;;) {
3593
3713
  const char* const next_segment = strstr(segment, "]]>");
3594
- if (next_segment != NULL) {
3714
+ if (next_segment != nullptr) {
3595
3715
  stream->write(
3596
3716
  segment, static_cast<std::streamsize>(next_segment - segment));
3597
3717
  *stream << "]]>]]&gt;<![CDATA[";
@@ -3610,7 +3730,7 @@ void XmlUnitTestResultPrinter::OutputXmlAttribute(
3610
3730
  const std::string& name,
3611
3731
  const std::string& value) {
3612
3732
  const std::vector<std::string>& allowed_names =
3613
- GetReservedAttributesForElement(element_name);
3733
+ GetReservedOutputAttributesForElement(element_name);
3614
3734
 
3615
3735
  GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) !=
3616
3736
  allowed_names.end())
@@ -3621,30 +3741,44 @@ void XmlUnitTestResultPrinter::OutputXmlAttribute(
3621
3741
  }
3622
3742
 
3623
3743
  // Prints an XML representation of a TestInfo object.
3624
- // TODO(wan): There is also value in printing properties with the plain printer.
3625
3744
  void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream,
3626
- const char* test_case_name,
3745
+ const char* test_suite_name,
3627
3746
  const TestInfo& test_info) {
3628
3747
  const TestResult& result = *test_info.result();
3629
- const std::string kTestcase = "testcase";
3748
+ const std::string kTestsuite = "testcase";
3749
+
3750
+ if (test_info.is_in_another_shard()) {
3751
+ return;
3752
+ }
3630
3753
 
3631
3754
  *stream << " <testcase";
3632
- OutputXmlAttribute(stream, kTestcase, "name", test_info.name());
3755
+ OutputXmlAttribute(stream, kTestsuite, "name", test_info.name());
3633
3756
 
3634
- if (test_info.value_param() != NULL) {
3635
- OutputXmlAttribute(stream, kTestcase, "value_param",
3757
+ if (test_info.value_param() != nullptr) {
3758
+ OutputXmlAttribute(stream, kTestsuite, "value_param",
3636
3759
  test_info.value_param());
3637
3760
  }
3638
- if (test_info.type_param() != NULL) {
3639
- OutputXmlAttribute(stream, kTestcase, "type_param", test_info.type_param());
3761
+ if (test_info.type_param() != nullptr) {
3762
+ OutputXmlAttribute(stream, kTestsuite, "type_param",
3763
+ test_info.type_param());
3764
+ }
3765
+ if (GTEST_FLAG(list_tests)) {
3766
+ OutputXmlAttribute(stream, kTestsuite, "file", test_info.file());
3767
+ OutputXmlAttribute(stream, kTestsuite, "line",
3768
+ StreamableToString(test_info.line()));
3769
+ *stream << " />\n";
3770
+ return;
3640
3771
  }
3641
3772
 
3642
- OutputXmlAttribute(stream, kTestcase, "status",
3773
+ OutputXmlAttribute(stream, kTestsuite, "status",
3643
3774
  test_info.should_run() ? "run" : "notrun");
3644
- OutputXmlAttribute(stream, kTestcase, "time",
3775
+ OutputXmlAttribute(stream, kTestsuite, "result",
3776
+ test_info.should_run()
3777
+ ? (result.Skipped() ? "skipped" : "completed")
3778
+ : "suppressed");
3779
+ OutputXmlAttribute(stream, kTestsuite, "time",
3645
3780
  FormatTimeInMillisAsSeconds(result.elapsed_time()));
3646
- OutputXmlAttribute(stream, kTestcase, "classname", test_case_name);
3647
- *stream << TestPropertiesAsXmlAttributes(result);
3781
+ OutputXmlAttribute(stream, kTestsuite, "classname", test_suite_name);
3648
3782
 
3649
3783
  int failures = 0;
3650
3784
  for (int i = 0; i < result.total_part_count(); ++i) {
@@ -3653,46 +3787,53 @@ void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream,
3653
3787
  if (++failures == 1) {
3654
3788
  *stream << ">\n";
3655
3789
  }
3656
- const string location = internal::FormatCompilerIndependentFileLocation(
3657
- part.file_name(), part.line_number());
3658
- const string summary = location + "\n" + part.summary();
3790
+ const std::string location =
3791
+ internal::FormatCompilerIndependentFileLocation(part.file_name(),
3792
+ part.line_number());
3793
+ const std::string summary = location + "\n" + part.summary();
3659
3794
  *stream << " <failure message=\""
3660
3795
  << EscapeXmlAttribute(summary.c_str())
3661
3796
  << "\" type=\"\">";
3662
- const string detail = location + "\n" + part.message();
3797
+ const std::string detail = location + "\n" + part.message();
3663
3798
  OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str());
3664
3799
  *stream << "</failure>\n";
3665
3800
  }
3666
3801
  }
3667
3802
 
3668
- if (failures == 0)
3803
+ if (failures == 0 && result.test_property_count() == 0) {
3669
3804
  *stream << " />\n";
3670
- else
3805
+ } else {
3806
+ if (failures == 0) {
3807
+ *stream << ">\n";
3808
+ }
3809
+ OutputXmlTestProperties(stream, result);
3671
3810
  *stream << " </testcase>\n";
3811
+ }
3672
3812
  }
3673
3813
 
3674
- // Prints an XML representation of a TestCase object
3675
- void XmlUnitTestResultPrinter::PrintXmlTestCase(std::ostream* stream,
3676
- const TestCase& test_case) {
3814
+ // Prints an XML representation of a TestSuite object
3815
+ void XmlUnitTestResultPrinter::PrintXmlTestSuite(std::ostream* stream,
3816
+ const TestSuite& test_suite) {
3677
3817
  const std::string kTestsuite = "testsuite";
3678
3818
  *stream << " <" << kTestsuite;
3679
- OutputXmlAttribute(stream, kTestsuite, "name", test_case.name());
3819
+ OutputXmlAttribute(stream, kTestsuite, "name", test_suite.name());
3680
3820
  OutputXmlAttribute(stream, kTestsuite, "tests",
3681
- StreamableToString(test_case.reportable_test_count()));
3682
- OutputXmlAttribute(stream, kTestsuite, "failures",
3683
- StreamableToString(test_case.failed_test_count()));
3684
- OutputXmlAttribute(
3685
- stream, kTestsuite, "disabled",
3686
- StreamableToString(test_case.reportable_disabled_test_count()));
3687
- OutputXmlAttribute(stream, kTestsuite, "errors", "0");
3688
- OutputXmlAttribute(stream, kTestsuite, "time",
3689
- FormatTimeInMillisAsSeconds(test_case.elapsed_time()));
3690
- *stream << TestPropertiesAsXmlAttributes(test_case.ad_hoc_test_result())
3691
- << ">\n";
3692
-
3693
- for (int i = 0; i < test_case.total_test_count(); ++i) {
3694
- if (test_case.GetTestInfo(i)->is_reportable())
3695
- OutputXmlTestInfo(stream, test_case.name(), *test_case.GetTestInfo(i));
3821
+ StreamableToString(test_suite.reportable_test_count()));
3822
+ if (!GTEST_FLAG(list_tests)) {
3823
+ OutputXmlAttribute(stream, kTestsuite, "failures",
3824
+ StreamableToString(test_suite.failed_test_count()));
3825
+ OutputXmlAttribute(
3826
+ stream, kTestsuite, "disabled",
3827
+ StreamableToString(test_suite.reportable_disabled_test_count()));
3828
+ OutputXmlAttribute(stream, kTestsuite, "errors", "0");
3829
+ OutputXmlAttribute(stream, kTestsuite, "time",
3830
+ FormatTimeInMillisAsSeconds(test_suite.elapsed_time()));
3831
+ *stream << TestPropertiesAsXmlAttributes(test_suite.ad_hoc_test_result());
3832
+ }
3833
+ *stream << ">\n";
3834
+ for (int i = 0; i < test_suite.total_test_count(); ++i) {
3835
+ if (test_suite.GetTestInfo(i)->is_reportable())
3836
+ OutputXmlTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
3696
3837
  }
3697
3838
  *stream << " </" << kTestsuite << ">\n";
3698
3839
  }
@@ -3723,15 +3864,36 @@ void XmlUnitTestResultPrinter::PrintXmlUnitTest(std::ostream* stream,
3723
3864
  OutputXmlAttribute(stream, kTestsuites, "random_seed",
3724
3865
  StreamableToString(unit_test.random_seed()));
3725
3866
  }
3726
-
3727
3867
  *stream << TestPropertiesAsXmlAttributes(unit_test.ad_hoc_test_result());
3728
3868
 
3729
3869
  OutputXmlAttribute(stream, kTestsuites, "name", "AllTests");
3730
3870
  *stream << ">\n";
3731
3871
 
3732
- for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
3733
- if (unit_test.GetTestCase(i)->reportable_test_count() > 0)
3734
- PrintXmlTestCase(stream, *unit_test.GetTestCase(i));
3872
+ for (int i = 0; i < unit_test.total_test_suite_count(); ++i) {
3873
+ if (unit_test.GetTestSuite(i)->reportable_test_count() > 0)
3874
+ PrintXmlTestSuite(stream, *unit_test.GetTestSuite(i));
3875
+ }
3876
+ *stream << "</" << kTestsuites << ">\n";
3877
+ }
3878
+
3879
+ void XmlUnitTestResultPrinter::PrintXmlTestsList(
3880
+ std::ostream* stream, const std::vector<TestSuite*>& test_suites) {
3881
+ const std::string kTestsuites = "testsuites";
3882
+
3883
+ *stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
3884
+ *stream << "<" << kTestsuites;
3885
+
3886
+ int total_tests = 0;
3887
+ for (auto test_suite : test_suites) {
3888
+ total_tests += test_suite->total_test_count();
3889
+ }
3890
+ OutputXmlAttribute(stream, kTestsuites, "tests",
3891
+ StreamableToString(total_tests));
3892
+ OutputXmlAttribute(stream, kTestsuites, "name", "AllTests");
3893
+ *stream << ">\n";
3894
+
3895
+ for (auto test_suite : test_suites) {
3896
+ PrintXmlTestSuite(stream, *test_suite);
3735
3897
  }
3736
3898
  *stream << "</" << kTestsuites << ">\n";
3737
3899
  }
@@ -3749,8 +3911,396 @@ std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes(
3749
3911
  return attributes.GetString();
3750
3912
  }
3751
3913
 
3914
+ void XmlUnitTestResultPrinter::OutputXmlTestProperties(
3915
+ std::ostream* stream, const TestResult& result) {
3916
+ const std::string kProperties = "properties";
3917
+ const std::string kProperty = "property";
3918
+
3919
+ if (result.test_property_count() <= 0) {
3920
+ return;
3921
+ }
3922
+
3923
+ *stream << "<" << kProperties << ">\n";
3924
+ for (int i = 0; i < result.test_property_count(); ++i) {
3925
+ const TestProperty& property = result.GetTestProperty(i);
3926
+ *stream << "<" << kProperty;
3927
+ *stream << " name=\"" << EscapeXmlAttribute(property.key()) << "\"";
3928
+ *stream << " value=\"" << EscapeXmlAttribute(property.value()) << "\"";
3929
+ *stream << "/>\n";
3930
+ }
3931
+ *stream << "</" << kProperties << ">\n";
3932
+ }
3933
+
3752
3934
  // End XmlUnitTestResultPrinter
3753
3935
 
3936
+ // This class generates an JSON output file.
3937
+ class JsonUnitTestResultPrinter : public EmptyTestEventListener {
3938
+ public:
3939
+ explicit JsonUnitTestResultPrinter(const char* output_file);
3940
+
3941
+ void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override;
3942
+
3943
+ // Prints an JSON summary of all unit tests.
3944
+ static void PrintJsonTestList(::std::ostream* stream,
3945
+ const std::vector<TestSuite*>& test_suites);
3946
+
3947
+ private:
3948
+ // Returns an JSON-escaped copy of the input string str.
3949
+ static std::string EscapeJson(const std::string& str);
3950
+
3951
+ //// Verifies that the given attribute belongs to the given element and
3952
+ //// streams the attribute as JSON.
3953
+ static void OutputJsonKey(std::ostream* stream,
3954
+ const std::string& element_name,
3955
+ const std::string& name,
3956
+ const std::string& value,
3957
+ const std::string& indent,
3958
+ bool comma = true);
3959
+ static void OutputJsonKey(std::ostream* stream,
3960
+ const std::string& element_name,
3961
+ const std::string& name,
3962
+ int value,
3963
+ const std::string& indent,
3964
+ bool comma = true);
3965
+
3966
+ // Streams a JSON representation of a TestInfo object.
3967
+ static void OutputJsonTestInfo(::std::ostream* stream,
3968
+ const char* test_suite_name,
3969
+ const TestInfo& test_info);
3970
+
3971
+ // Prints a JSON representation of a TestSuite object
3972
+ static void PrintJsonTestSuite(::std::ostream* stream,
3973
+ const TestSuite& test_suite);
3974
+
3975
+ // Prints a JSON summary of unit_test to output stream out.
3976
+ static void PrintJsonUnitTest(::std::ostream* stream,
3977
+ const UnitTest& unit_test);
3978
+
3979
+ // Produces a string representing the test properties in a result as
3980
+ // a JSON dictionary.
3981
+ static std::string TestPropertiesAsJson(const TestResult& result,
3982
+ const std::string& indent);
3983
+
3984
+ // The output file.
3985
+ const std::string output_file_;
3986
+
3987
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(JsonUnitTestResultPrinter);
3988
+ };
3989
+
3990
+ // Creates a new JsonUnitTestResultPrinter.
3991
+ JsonUnitTestResultPrinter::JsonUnitTestResultPrinter(const char* output_file)
3992
+ : output_file_(output_file) {
3993
+ if (output_file_.empty()) {
3994
+ GTEST_LOG_(FATAL) << "JSON output file may not be null";
3995
+ }
3996
+ }
3997
+
3998
+ void JsonUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
3999
+ int /*iteration*/) {
4000
+ FILE* jsonout = OpenFileForWriting(output_file_);
4001
+ std::stringstream stream;
4002
+ PrintJsonUnitTest(&stream, unit_test);
4003
+ fprintf(jsonout, "%s", StringStreamToString(&stream).c_str());
4004
+ fclose(jsonout);
4005
+ }
4006
+
4007
+ // Returns an JSON-escaped copy of the input string str.
4008
+ std::string JsonUnitTestResultPrinter::EscapeJson(const std::string& str) {
4009
+ Message m;
4010
+
4011
+ for (size_t i = 0; i < str.size(); ++i) {
4012
+ const char ch = str[i];
4013
+ switch (ch) {
4014
+ case '\\':
4015
+ case '"':
4016
+ case '/':
4017
+ m << '\\' << ch;
4018
+ break;
4019
+ case '\b':
4020
+ m << "\\b";
4021
+ break;
4022
+ case '\t':
4023
+ m << "\\t";
4024
+ break;
4025
+ case '\n':
4026
+ m << "\\n";
4027
+ break;
4028
+ case '\f':
4029
+ m << "\\f";
4030
+ break;
4031
+ case '\r':
4032
+ m << "\\r";
4033
+ break;
4034
+ default:
4035
+ if (ch < ' ') {
4036
+ m << "\\u00" << String::FormatByte(static_cast<unsigned char>(ch));
4037
+ } else {
4038
+ m << ch;
4039
+ }
4040
+ break;
4041
+ }
4042
+ }
4043
+
4044
+ return m.GetString();
4045
+ }
4046
+
4047
+ // The following routines generate an JSON representation of a UnitTest
4048
+ // object.
4049
+
4050
+ // Formats the given time in milliseconds as seconds.
4051
+ static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) {
4052
+ ::std::stringstream ss;
4053
+ ss << (static_cast<double>(ms) * 1e-3) << "s";
4054
+ return ss.str();
4055
+ }
4056
+
4057
+ // Converts the given epoch time in milliseconds to a date string in the
4058
+ // RFC3339 format, without the timezone information.
4059
+ static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) {
4060
+ struct tm time_struct;
4061
+ if (!PortableLocaltime(static_cast<time_t>(ms / 1000), &time_struct))
4062
+ return "";
4063
+ // YYYY-MM-DDThh:mm:ss
4064
+ return StreamableToString(time_struct.tm_year + 1900) + "-" +
4065
+ String::FormatIntWidth2(time_struct.tm_mon + 1) + "-" +
4066
+ String::FormatIntWidth2(time_struct.tm_mday) + "T" +
4067
+ String::FormatIntWidth2(time_struct.tm_hour) + ":" +
4068
+ String::FormatIntWidth2(time_struct.tm_min) + ":" +
4069
+ String::FormatIntWidth2(time_struct.tm_sec) + "Z";
4070
+ }
4071
+
4072
+ static inline std::string Indent(int width) {
4073
+ return std::string(width, ' ');
4074
+ }
4075
+
4076
+ void JsonUnitTestResultPrinter::OutputJsonKey(
4077
+ std::ostream* stream,
4078
+ const std::string& element_name,
4079
+ const std::string& name,
4080
+ const std::string& value,
4081
+ const std::string& indent,
4082
+ bool comma) {
4083
+ const std::vector<std::string>& allowed_names =
4084
+ GetReservedOutputAttributesForElement(element_name);
4085
+
4086
+ GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) !=
4087
+ allowed_names.end())
4088
+ << "Key \"" << name << "\" is not allowed for value \"" << element_name
4089
+ << "\".";
4090
+
4091
+ *stream << indent << "\"" << name << "\": \"" << EscapeJson(value) << "\"";
4092
+ if (comma)
4093
+ *stream << ",\n";
4094
+ }
4095
+
4096
+ void JsonUnitTestResultPrinter::OutputJsonKey(
4097
+ std::ostream* stream,
4098
+ const std::string& element_name,
4099
+ const std::string& name,
4100
+ int value,
4101
+ const std::string& indent,
4102
+ bool comma) {
4103
+ const std::vector<std::string>& allowed_names =
4104
+ GetReservedOutputAttributesForElement(element_name);
4105
+
4106
+ GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) !=
4107
+ allowed_names.end())
4108
+ << "Key \"" << name << "\" is not allowed for value \"" << element_name
4109
+ << "\".";
4110
+
4111
+ *stream << indent << "\"" << name << "\": " << StreamableToString(value);
4112
+ if (comma)
4113
+ *stream << ",\n";
4114
+ }
4115
+
4116
+ // Prints a JSON representation of a TestInfo object.
4117
+ void JsonUnitTestResultPrinter::OutputJsonTestInfo(::std::ostream* stream,
4118
+ const char* test_suite_name,
4119
+ const TestInfo& test_info) {
4120
+ const TestResult& result = *test_info.result();
4121
+ const std::string kTestsuite = "testcase";
4122
+ const std::string kIndent = Indent(10);
4123
+
4124
+ *stream << Indent(8) << "{\n";
4125
+ OutputJsonKey(stream, kTestsuite, "name", test_info.name(), kIndent);
4126
+
4127
+ if (test_info.value_param() != nullptr) {
4128
+ OutputJsonKey(stream, kTestsuite, "value_param", test_info.value_param(),
4129
+ kIndent);
4130
+ }
4131
+ if (test_info.type_param() != nullptr) {
4132
+ OutputJsonKey(stream, kTestsuite, "type_param", test_info.type_param(),
4133
+ kIndent);
4134
+ }
4135
+ if (GTEST_FLAG(list_tests)) {
4136
+ OutputJsonKey(stream, kTestsuite, "file", test_info.file(), kIndent);
4137
+ OutputJsonKey(stream, kTestsuite, "line", test_info.line(), kIndent, false);
4138
+ *stream << "\n" << Indent(8) << "}";
4139
+ return;
4140
+ }
4141
+
4142
+ OutputJsonKey(stream, kTestsuite, "status",
4143
+ test_info.should_run() ? "RUN" : "NOTRUN", kIndent);
4144
+ OutputJsonKey(stream, kTestsuite, "result",
4145
+ test_info.should_run()
4146
+ ? (result.Skipped() ? "SKIPPED" : "COMPLETED")
4147
+ : "SUPPRESSED",
4148
+ kIndent);
4149
+ OutputJsonKey(stream, kTestsuite, "time",
4150
+ FormatTimeInMillisAsDuration(result.elapsed_time()), kIndent);
4151
+ OutputJsonKey(stream, kTestsuite, "classname", test_suite_name, kIndent,
4152
+ false);
4153
+ *stream << TestPropertiesAsJson(result, kIndent);
4154
+
4155
+ int failures = 0;
4156
+ for (int i = 0; i < result.total_part_count(); ++i) {
4157
+ const TestPartResult& part = result.GetTestPartResult(i);
4158
+ if (part.failed()) {
4159
+ *stream << ",\n";
4160
+ if (++failures == 1) {
4161
+ *stream << kIndent << "\"" << "failures" << "\": [\n";
4162
+ }
4163
+ const std::string location =
4164
+ internal::FormatCompilerIndependentFileLocation(part.file_name(),
4165
+ part.line_number());
4166
+ const std::string message = EscapeJson(location + "\n" + part.message());
4167
+ *stream << kIndent << " {\n"
4168
+ << kIndent << " \"failure\": \"" << message << "\",\n"
4169
+ << kIndent << " \"type\": \"\"\n"
4170
+ << kIndent << " }";
4171
+ }
4172
+ }
4173
+
4174
+ if (failures > 0)
4175
+ *stream << "\n" << kIndent << "]";
4176
+ *stream << "\n" << Indent(8) << "}";
4177
+ }
4178
+
4179
+ // Prints an JSON representation of a TestSuite object
4180
+ void JsonUnitTestResultPrinter::PrintJsonTestSuite(
4181
+ std::ostream* stream, const TestSuite& test_suite) {
4182
+ const std::string kTestsuite = "testsuite";
4183
+ const std::string kIndent = Indent(6);
4184
+
4185
+ *stream << Indent(4) << "{\n";
4186
+ OutputJsonKey(stream, kTestsuite, "name", test_suite.name(), kIndent);
4187
+ OutputJsonKey(stream, kTestsuite, "tests", test_suite.reportable_test_count(),
4188
+ kIndent);
4189
+ if (!GTEST_FLAG(list_tests)) {
4190
+ OutputJsonKey(stream, kTestsuite, "failures",
4191
+ test_suite.failed_test_count(), kIndent);
4192
+ OutputJsonKey(stream, kTestsuite, "disabled",
4193
+ test_suite.reportable_disabled_test_count(), kIndent);
4194
+ OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent);
4195
+ OutputJsonKey(stream, kTestsuite, "time",
4196
+ FormatTimeInMillisAsDuration(test_suite.elapsed_time()),
4197
+ kIndent, false);
4198
+ *stream << TestPropertiesAsJson(test_suite.ad_hoc_test_result(), kIndent)
4199
+ << ",\n";
4200
+ }
4201
+
4202
+ *stream << kIndent << "\"" << kTestsuite << "\": [\n";
4203
+
4204
+ bool comma = false;
4205
+ for (int i = 0; i < test_suite.total_test_count(); ++i) {
4206
+ if (test_suite.GetTestInfo(i)->is_reportable()) {
4207
+ if (comma) {
4208
+ *stream << ",\n";
4209
+ } else {
4210
+ comma = true;
4211
+ }
4212
+ OutputJsonTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
4213
+ }
4214
+ }
4215
+ *stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
4216
+ }
4217
+
4218
+ // Prints a JSON summary of unit_test to output stream out.
4219
+ void JsonUnitTestResultPrinter::PrintJsonUnitTest(std::ostream* stream,
4220
+ const UnitTest& unit_test) {
4221
+ const std::string kTestsuites = "testsuites";
4222
+ const std::string kIndent = Indent(2);
4223
+ *stream << "{\n";
4224
+
4225
+ OutputJsonKey(stream, kTestsuites, "tests", unit_test.reportable_test_count(),
4226
+ kIndent);
4227
+ OutputJsonKey(stream, kTestsuites, "failures", unit_test.failed_test_count(),
4228
+ kIndent);
4229
+ OutputJsonKey(stream, kTestsuites, "disabled",
4230
+ unit_test.reportable_disabled_test_count(), kIndent);
4231
+ OutputJsonKey(stream, kTestsuites, "errors", 0, kIndent);
4232
+ if (GTEST_FLAG(shuffle)) {
4233
+ OutputJsonKey(stream, kTestsuites, "random_seed", unit_test.random_seed(),
4234
+ kIndent);
4235
+ }
4236
+ OutputJsonKey(stream, kTestsuites, "timestamp",
4237
+ FormatEpochTimeInMillisAsRFC3339(unit_test.start_timestamp()),
4238
+ kIndent);
4239
+ OutputJsonKey(stream, kTestsuites, "time",
4240
+ FormatTimeInMillisAsDuration(unit_test.elapsed_time()), kIndent,
4241
+ false);
4242
+
4243
+ *stream << TestPropertiesAsJson(unit_test.ad_hoc_test_result(), kIndent)
4244
+ << ",\n";
4245
+
4246
+ OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent);
4247
+ *stream << kIndent << "\"" << kTestsuites << "\": [\n";
4248
+
4249
+ bool comma = false;
4250
+ for (int i = 0; i < unit_test.total_test_suite_count(); ++i) {
4251
+ if (unit_test.GetTestSuite(i)->reportable_test_count() > 0) {
4252
+ if (comma) {
4253
+ *stream << ",\n";
4254
+ } else {
4255
+ comma = true;
4256
+ }
4257
+ PrintJsonTestSuite(stream, *unit_test.GetTestSuite(i));
4258
+ }
4259
+ }
4260
+
4261
+ *stream << "\n" << kIndent << "]\n" << "}\n";
4262
+ }
4263
+
4264
+ void JsonUnitTestResultPrinter::PrintJsonTestList(
4265
+ std::ostream* stream, const std::vector<TestSuite*>& test_suites) {
4266
+ const std::string kTestsuites = "testsuites";
4267
+ const std::string kIndent = Indent(2);
4268
+ *stream << "{\n";
4269
+ int total_tests = 0;
4270
+ for (auto test_suite : test_suites) {
4271
+ total_tests += test_suite->total_test_count();
4272
+ }
4273
+ OutputJsonKey(stream, kTestsuites, "tests", total_tests, kIndent);
4274
+
4275
+ OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent);
4276
+ *stream << kIndent << "\"" << kTestsuites << "\": [\n";
4277
+
4278
+ for (size_t i = 0; i < test_suites.size(); ++i) {
4279
+ if (i != 0) {
4280
+ *stream << ",\n";
4281
+ }
4282
+ PrintJsonTestSuite(stream, *test_suites[i]);
4283
+ }
4284
+
4285
+ *stream << "\n"
4286
+ << kIndent << "]\n"
4287
+ << "}\n";
4288
+ }
4289
+ // Produces a string representing the test properties in a result as
4290
+ // a JSON dictionary.
4291
+ std::string JsonUnitTestResultPrinter::TestPropertiesAsJson(
4292
+ const TestResult& result, const std::string& indent) {
4293
+ Message attributes;
4294
+ for (int i = 0; i < result.test_property_count(); ++i) {
4295
+ const TestProperty& property = result.GetTestProperty(i);
4296
+ attributes << ",\n" << indent << "\"" << property.key() << "\": "
4297
+ << "\"" << EscapeJson(property.value()) << "\"";
4298
+ }
4299
+ return attributes.GetString();
4300
+ }
4301
+
4302
+ // End JsonUnitTestResultPrinter
4303
+
3754
4304
  #if GTEST_CAN_STREAM_RESULTS_
3755
4305
 
3756
4306
  // Checks if str contains '=', '&', '%' or '\n' characters. If yes,
@@ -3758,8 +4308,8 @@ std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes(
3758
4308
  // example, replaces "=" with "%3D". This algorithm is O(strlen(str))
3759
4309
  // in both time and space -- important as the input str may contain an
3760
4310
  // arbitrarily long test failure message and stack trace.
3761
- string StreamingListener::UrlEncode(const char* str) {
3762
- string result;
4311
+ std::string StreamingListener::UrlEncode(const char* str) {
4312
+ std::string result;
3763
4313
  result.reserve(strlen(str) + 1);
3764
4314
  for (char ch = *str; ch != '\0'; ch = *++str) {
3765
4315
  switch (ch) {
@@ -3785,7 +4335,7 @@ void StreamingListener::SocketWriter::MakeConnection() {
3785
4335
  memset(&hints, 0, sizeof(hints));
3786
4336
  hints.ai_family = AF_UNSPEC; // To allow both IPv4 and IPv6 addresses.
3787
4337
  hints.ai_socktype = SOCK_STREAM;
3788
- addrinfo* servinfo = NULL;
4338
+ addrinfo* servinfo = nullptr;
3789
4339
 
3790
4340
  // Use the getaddrinfo() to get a linked list of IP addresses for
3791
4341
  // the given host name.
@@ -3797,7 +4347,7 @@ void StreamingListener::SocketWriter::MakeConnection() {
3797
4347
  }
3798
4348
 
3799
4349
  // Loop through all the results and connect to the first we can.
3800
- for (addrinfo* cur_addr = servinfo; sockfd_ == -1 && cur_addr != NULL;
4350
+ for (addrinfo* cur_addr = servinfo; sockfd_ == -1 && cur_addr != nullptr;
3801
4351
  cur_addr = cur_addr->ai_next) {
3802
4352
  sockfd_ = socket(
3803
4353
  cur_addr->ai_family, cur_addr->ai_socktype, cur_addr->ai_protocol);
@@ -3821,47 +4371,82 @@ void StreamingListener::SocketWriter::MakeConnection() {
3821
4371
  // End of class Streaming Listener
3822
4372
  #endif // GTEST_CAN_STREAM_RESULTS__
3823
4373
 
3824
- // Class ScopedTrace
4374
+ // class OsStackTraceGetter
3825
4375
 
3826
- // Pushes the given source file location and message onto a per-thread
3827
- // trace stack maintained by Google Test.
3828
- ScopedTrace::ScopedTrace(const char* file, int line, const Message& message)
3829
- GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) {
3830
- TraceInfo trace;
3831
- trace.file = file;
3832
- trace.line = line;
3833
- trace.message = message.GetString();
4376
+ const char* const OsStackTraceGetterInterface::kElidedFramesMarker =
4377
+ "... " GTEST_NAME_ " internal frames ...";
3834
4378
 
3835
- UnitTest::GetInstance()->PushGTestTrace(trace);
3836
- }
4379
+ std::string OsStackTraceGetter::CurrentStackTrace(int max_depth, int skip_count)
4380
+ GTEST_LOCK_EXCLUDED_(mutex_) {
4381
+ #if GTEST_HAS_ABSL
4382
+ std::string result;
3837
4383
 
3838
- // Pops the info pushed by the c'tor.
3839
- ScopedTrace::~ScopedTrace()
3840
- GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) {
3841
- UnitTest::GetInstance()->PopGTestTrace();
3842
- }
4384
+ if (max_depth <= 0) {
4385
+ return result;
4386
+ }
3843
4387
 
4388
+ max_depth = std::min(max_depth, kMaxStackTraceDepth);
3844
4389
 
3845
- // class OsStackTraceGetter
4390
+ std::vector<void*> raw_stack(max_depth);
4391
+ // Skips the frames requested by the caller, plus this function.
4392
+ const int raw_stack_size =
4393
+ absl::GetStackTrace(&raw_stack[0], max_depth, skip_count + 1);
3846
4394
 
3847
- const char* const OsStackTraceGetterInterface::kElidedFramesMarker =
3848
- "... " GTEST_NAME_ " internal frames ...";
4395
+ void* caller_frame = nullptr;
4396
+ {
4397
+ MutexLock lock(&mutex_);
4398
+ caller_frame = caller_frame_;
4399
+ }
4400
+
4401
+ for (int i = 0; i < raw_stack_size; ++i) {
4402
+ if (raw_stack[i] == caller_frame &&
4403
+ !GTEST_FLAG(show_internal_stack_frames)) {
4404
+ // Add a marker to the trace and stop adding frames.
4405
+ absl::StrAppend(&result, kElidedFramesMarker, "\n");
4406
+ break;
4407
+ }
3849
4408
 
3850
- string OsStackTraceGetter::CurrentStackTrace(int /*max_depth*/,
3851
- int /*skip_count*/) {
4409
+ char tmp[1024];
4410
+ const char* symbol = "(unknown)";
4411
+ if (absl::Symbolize(raw_stack[i], tmp, sizeof(tmp))) {
4412
+ symbol = tmp;
4413
+ }
4414
+
4415
+ char line[1024];
4416
+ snprintf(line, sizeof(line), " %p: %s\n", raw_stack[i], symbol);
4417
+ result += line;
4418
+ }
4419
+
4420
+ return result;
4421
+
4422
+ #else // !GTEST_HAS_ABSL
4423
+ static_cast<void>(max_depth);
4424
+ static_cast<void>(skip_count);
3852
4425
  return "";
4426
+ #endif // GTEST_HAS_ABSL
3853
4427
  }
3854
4428
 
3855
- void OsStackTraceGetter::UponLeavingGTest() {}
4429
+ void OsStackTraceGetter::UponLeavingGTest() GTEST_LOCK_EXCLUDED_(mutex_) {
4430
+ #if GTEST_HAS_ABSL
4431
+ void* caller_frame = nullptr;
4432
+ if (absl::GetStackTrace(&caller_frame, 1, 3) <= 0) {
4433
+ caller_frame = nullptr;
4434
+ }
4435
+
4436
+ MutexLock lock(&mutex_);
4437
+ caller_frame_ = caller_frame;
4438
+ #endif // GTEST_HAS_ABSL
4439
+ }
3856
4440
 
3857
4441
  // A helper class that creates the premature-exit file in its
3858
4442
  // constructor and deletes the file in its destructor.
3859
4443
  class ScopedPrematureExitFile {
3860
4444
  public:
3861
4445
  explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
3862
- : premature_exit_filepath_(premature_exit_filepath) {
4446
+ : premature_exit_filepath_(premature_exit_filepath ?
4447
+ premature_exit_filepath : "") {
3863
4448
  // If a path to the premature-exit file is specified...
3864
- if (premature_exit_filepath != NULL && *premature_exit_filepath != '\0') {
4449
+ if (!premature_exit_filepath_.empty()) {
3865
4450
  // create the file with a single "0" character in it. I/O
3866
4451
  // errors are ignored as there's nothing better we can do and we
3867
4452
  // don't want to fail the test because of this.
@@ -3872,13 +4457,18 @@ class ScopedPrematureExitFile {
3872
4457
  }
3873
4458
 
3874
4459
  ~ScopedPrematureExitFile() {
3875
- if (premature_exit_filepath_ != NULL && *premature_exit_filepath_ != '\0') {
3876
- remove(premature_exit_filepath_);
4460
+ if (!premature_exit_filepath_.empty()) {
4461
+ int retval = remove(premature_exit_filepath_.c_str());
4462
+ if (retval) {
4463
+ GTEST_LOG_(ERROR) << "Failed to remove premature exit filepath \""
4464
+ << premature_exit_filepath_ << "\" with error "
4465
+ << retval;
4466
+ }
3877
4467
  }
3878
4468
  }
3879
4469
 
3880
4470
  private:
3881
- const char* const premature_exit_filepath_;
4471
+ const std::string premature_exit_filepath_;
3882
4472
 
3883
4473
  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedPrematureExitFile);
3884
4474
  };
@@ -3889,9 +4479,8 @@ class ScopedPrematureExitFile {
3889
4479
 
3890
4480
  TestEventListeners::TestEventListeners()
3891
4481
  : repeater_(new internal::TestEventRepeater()),
3892
- default_result_printer_(NULL),
3893
- default_xml_generator_(NULL) {
3894
- }
4482
+ default_result_printer_(nullptr),
4483
+ default_xml_generator_(nullptr) {}
3895
4484
 
3896
4485
  TestEventListeners::~TestEventListeners() { delete repeater_; }
3897
4486
 
@@ -3908,9 +4497,9 @@ void TestEventListeners::Append(TestEventListener* listener) {
3908
4497
  // NULL if the listener is not found in the list.
3909
4498
  TestEventListener* TestEventListeners::Release(TestEventListener* listener) {
3910
4499
  if (listener == default_result_printer_)
3911
- default_result_printer_ = NULL;
4500
+ default_result_printer_ = nullptr;
3912
4501
  else if (listener == default_xml_generator_)
3913
- default_xml_generator_ = NULL;
4502
+ default_xml_generator_ = nullptr;
3914
4503
  return repeater_->Release(listener);
3915
4504
  }
3916
4505
 
@@ -3929,8 +4518,7 @@ void TestEventListeners::SetDefaultResultPrinter(TestEventListener* listener) {
3929
4518
  // list.
3930
4519
  delete Release(default_result_printer_);
3931
4520
  default_result_printer_ = listener;
3932
- if (listener != NULL)
3933
- Append(listener);
4521
+ if (listener != nullptr) Append(listener);
3934
4522
  }
3935
4523
  }
3936
4524
 
@@ -3945,8 +4533,7 @@ void TestEventListeners::SetDefaultXmlGenerator(TestEventListener* listener) {
3945
4533
  // list.
3946
4534
  delete Release(default_xml_generator_);
3947
4535
  default_xml_generator_ = listener;
3948
- if (listener != NULL)
3949
- Append(listener);
4536
+ if (listener != nullptr) Append(listener);
3950
4537
  }
3951
4538
  }
3952
4539
 
@@ -3970,52 +4557,66 @@ void TestEventListeners::SuppressEventForwarding() {
3970
4557
  // call this before main() starts, from which point on the return
3971
4558
  // value will never change.
3972
4559
  UnitTest* UnitTest::GetInstance() {
3973
- // When compiled with MSVC 7.1 in optimized mode, destroying the
3974
- // UnitTest object upon exiting the program messes up the exit code,
3975
- // causing successful tests to appear failed. We have to use a
3976
- // different implementation in this case to bypass the compiler bug.
3977
- // This implementation makes the compiler happy, at the cost of
3978
- // leaking the UnitTest object.
3979
-
3980
4560
  // CodeGear C++Builder insists on a public destructor for the
3981
4561
  // default implementation. Use this implementation to keep good OO
3982
4562
  // design with private destructor.
3983
4563
 
3984
- #if (_MSC_VER == 1310 && !defined(_DEBUG)) || defined(__BORLANDC__)
4564
+ #if defined(__BORLANDC__)
3985
4565
  static UnitTest* const instance = new UnitTest;
3986
4566
  return instance;
3987
4567
  #else
3988
4568
  static UnitTest instance;
3989
4569
  return &instance;
3990
- #endif // (_MSC_VER == 1310 && !defined(_DEBUG)) || defined(__BORLANDC__)
4570
+ #endif // defined(__BORLANDC__)
3991
4571
  }
3992
4572
 
3993
- // Gets the number of successful test cases.
3994
- int UnitTest::successful_test_case_count() const {
3995
- return impl()->successful_test_case_count();
4573
+ // Gets the number of successful test suites.
4574
+ int UnitTest::successful_test_suite_count() const {
4575
+ return impl()->successful_test_suite_count();
3996
4576
  }
3997
4577
 
3998
- // Gets the number of failed test cases.
3999
- int UnitTest::failed_test_case_count() const {
4000
- return impl()->failed_test_case_count();
4578
+ // Gets the number of failed test suites.
4579
+ int UnitTest::failed_test_suite_count() const {
4580
+ return impl()->failed_test_suite_count();
4001
4581
  }
4002
4582
 
4003
- // Gets the number of all test cases.
4004
- int UnitTest::total_test_case_count() const {
4005
- return impl()->total_test_case_count();
4583
+ // Gets the number of all test suites.
4584
+ int UnitTest::total_test_suite_count() const {
4585
+ return impl()->total_test_suite_count();
4006
4586
  }
4007
4587
 
4008
- // Gets the number of all test cases that contain at least one test
4588
+ // Gets the number of all test suites that contain at least one test
4009
4589
  // that should run.
4590
+ int UnitTest::test_suite_to_run_count() const {
4591
+ return impl()->test_suite_to_run_count();
4592
+ }
4593
+
4594
+ // Legacy API is deprecated but still available
4595
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
4596
+ int UnitTest::successful_test_case_count() const {
4597
+ return impl()->successful_test_suite_count();
4598
+ }
4599
+ int UnitTest::failed_test_case_count() const {
4600
+ return impl()->failed_test_suite_count();
4601
+ }
4602
+ int UnitTest::total_test_case_count() const {
4603
+ return impl()->total_test_suite_count();
4604
+ }
4010
4605
  int UnitTest::test_case_to_run_count() const {
4011
- return impl()->test_case_to_run_count();
4606
+ return impl()->test_suite_to_run_count();
4012
4607
  }
4608
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
4013
4609
 
4014
4610
  // Gets the number of successful tests.
4015
4611
  int UnitTest::successful_test_count() const {
4016
4612
  return impl()->successful_test_count();
4017
4613
  }
4018
4614
 
4615
+ // Gets the number of skipped tests.
4616
+ int UnitTest::skipped_test_count() const {
4617
+ return impl()->skipped_test_count();
4618
+ }
4619
+
4019
4620
  // Gets the number of failed tests.
4020
4621
  int UnitTest::failed_test_count() const { return impl()->failed_test_count(); }
4021
4622
 
@@ -4051,29 +4652,36 @@ internal::TimeInMillis UnitTest::elapsed_time() const {
4051
4652
  return impl()->elapsed_time();
4052
4653
  }
4053
4654
 
4054
- // Returns true iff the unit test passed (i.e. all test cases passed).
4655
+ // Returns true iff the unit test passed (i.e. all test suites passed).
4055
4656
  bool UnitTest::Passed() const { return impl()->Passed(); }
4056
4657
 
4057
- // Returns true iff the unit test failed (i.e. some test case failed
4658
+ // Returns true iff the unit test failed (i.e. some test suite failed
4058
4659
  // or something outside of all tests failed).
4059
4660
  bool UnitTest::Failed() const { return impl()->Failed(); }
4060
4661
 
4061
- // Gets the i-th test case among all the test cases. i can range from 0 to
4062
- // total_test_case_count() - 1. If i is not in that range, returns NULL.
4662
+ // Gets the i-th test suite among all the test suites. i can range from 0 to
4663
+ // total_test_suite_count() - 1. If i is not in that range, returns NULL.
4664
+ const TestSuite* UnitTest::GetTestSuite(int i) const {
4665
+ return impl()->GetTestSuite(i);
4666
+ }
4667
+
4668
+ // Legacy API is deprecated but still available
4669
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
4063
4670
  const TestCase* UnitTest::GetTestCase(int i) const {
4064
4671
  return impl()->GetTestCase(i);
4065
4672
  }
4673
+ #endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
4066
4674
 
4067
4675
  // Returns the TestResult containing information on test failures and
4068
- // properties logged outside of individual test cases.
4676
+ // properties logged outside of individual test suites.
4069
4677
  const TestResult& UnitTest::ad_hoc_test_result() const {
4070
4678
  return *impl()->ad_hoc_test_result();
4071
4679
  }
4072
4680
 
4073
- // Gets the i-th test case among all the test cases. i can range from 0 to
4074
- // total_test_case_count() - 1. If i is not in that range, returns NULL.
4075
- TestCase* UnitTest::GetMutableTestCase(int i) {
4076
- return impl()->GetMutableTestCase(i);
4681
+ // Gets the i-th test suite among all the test suites. i can range from 0 to
4682
+ // total_test_suite_count() - 1. If i is not in that range, returns NULL.
4683
+ TestSuite* UnitTest::GetMutableTestSuite(int i) {
4684
+ return impl()->GetMutableSuiteCase(i);
4077
4685
  }
4078
4686
 
4079
4687
  // Returns the list of event listeners that can be used to track events
@@ -4093,8 +4701,8 @@ TestEventListeners& UnitTest::listeners() {
4093
4701
  // We don't protect this under mutex_, as we only support calling it
4094
4702
  // from the main thread.
4095
4703
  Environment* UnitTest::AddEnvironment(Environment* env) {
4096
- if (env == NULL) {
4097
- return NULL;
4704
+ if (env == nullptr) {
4705
+ return nullptr;
4098
4706
  }
4099
4707
 
4100
4708
  impl_->environments().push_back(env);
@@ -4126,17 +4734,17 @@ void UnitTest::AddTestPartResult(
4126
4734
  }
4127
4735
  }
4128
4736
 
4129
- if (os_stack_trace.c_str() != NULL && !os_stack_trace.empty()) {
4737
+ if (os_stack_trace.c_str() != nullptr && !os_stack_trace.empty()) {
4130
4738
  msg << internal::kStackTraceMarker << os_stack_trace;
4131
4739
  }
4132
4740
 
4133
- const TestPartResult result =
4134
- TestPartResult(result_type, file_name, line_number,
4135
- msg.GetString().c_str());
4741
+ const TestPartResult result = TestPartResult(
4742
+ result_type, file_name, line_number, msg.GetString().c_str());
4136
4743
  impl_->GetTestPartResultReporterForCurrentThread()->
4137
4744
  ReportTestPartResult(result);
4138
4745
 
4139
- if (result_type != TestPartResult::kSuccess) {
4746
+ if (result_type != TestPartResult::kSuccess &&
4747
+ result_type != TestPartResult::kSkip) {
4140
4748
  // gtest_break_on_failure takes precedence over
4141
4749
  // gtest_throw_on_failure. This allows a user to set the latter
4142
4750
  // in the code (perhaps in order to use Google Test assertions
@@ -4148,12 +4756,16 @@ void UnitTest::AddTestPartResult(
4148
4756
  // when a failure happens and both the --gtest_break_on_failure and
4149
4757
  // the --gtest_catch_exceptions flags are specified.
4150
4758
  DebugBreak();
4759
+ #elif (!defined(__native_client__)) && \
4760
+ ((defined(__clang__) || defined(__GNUC__)) && \
4761
+ (defined(__x86_64__) || defined(__i386__)))
4762
+ // with clang/gcc we can achieve the same effect on x86 by invoking int3
4763
+ asm("int3");
4151
4764
  #else
4152
- // Dereference NULL through a volatile pointer to prevent the compiler
4765
+ // Dereference nullptr through a volatile pointer to prevent the compiler
4153
4766
  // from removing. We use this rather than abort() or __builtin_trap() for
4154
- // portability: Symbian doesn't implement abort() well, and some debuggers
4155
- // don't correctly trap abort().
4156
- *static_cast<volatile int*>(NULL) = 1;
4767
+ // portability: some debuggers don't correctly trap abort().
4768
+ *static_cast<volatile int*>(nullptr) = 1;
4157
4769
  #endif // GTEST_OS_WINDOWS
4158
4770
  } else if (GTEST_FLAG(throw_on_failure)) {
4159
4771
  #if GTEST_HAS_EXCEPTIONS
@@ -4168,8 +4780,8 @@ void UnitTest::AddTestPartResult(
4168
4780
  }
4169
4781
 
4170
4782
  // Adds a TestProperty to the current TestResult object when invoked from
4171
- // inside a test, to current TestCase's ad_hoc_test_result_ when invoked
4172
- // from SetUpTestCase or TearDownTestCase, or to the global property set
4783
+ // inside a test, to current TestSuite's ad_hoc_test_result_ when invoked
4784
+ // from SetUpTestSuite or TearDownTestSuite, or to the global property set
4173
4785
  // when invoked elsewhere. If the result already contains a property with
4174
4786
  // the same key, the value will be updated.
4175
4787
  void UnitTest::RecordProperty(const std::string& key,
@@ -4208,14 +4820,15 @@ int UnitTest::Run() {
4208
4820
  // that understands the premature-exit-file protocol to report the
4209
4821
  // test as having failed.
4210
4822
  const internal::ScopedPrematureExitFile premature_exit_file(
4211
- in_death_test_child_process ?
4212
- NULL : internal::posix::GetEnv("TEST_PREMATURE_EXIT_FILE"));
4823
+ in_death_test_child_process
4824
+ ? nullptr
4825
+ : internal::posix::GetEnv("TEST_PREMATURE_EXIT_FILE"));
4213
4826
 
4214
4827
  // Captures the value of GTEST_FLAG(catch_exceptions). This value will be
4215
4828
  // used for the duration of the program.
4216
4829
  impl()->set_catch_exceptions(GTEST_FLAG(catch_exceptions));
4217
4830
 
4218
- #if GTEST_HAS_SEH
4831
+ #if GTEST_OS_WINDOWS
4219
4832
  // Either the user wants Google Test to catch exceptions thrown by the
4220
4833
  // tests or this is executing in the context of death test child
4221
4834
  // process. In either case the user does not want to see pop-up dialogs
@@ -4234,25 +4847,19 @@ int UnitTest::Run() {
4234
4847
  _set_error_mode(_OUT_TO_STDERR);
4235
4848
  # endif
4236
4849
 
4237
- # if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE
4850
+ # if defined(_MSC_VER) && !GTEST_OS_WINDOWS_MOBILE
4238
4851
  // In the debug version, Visual Studio pops up a separate dialog
4239
4852
  // offering a choice to debug the aborted program. We need to suppress
4240
4853
  // this dialog or it will pop up for every EXPECT/ASSERT_DEATH statement
4241
4854
  // executed. Google Test will notify the user of any unexpected
4242
4855
  // failure via stderr.
4243
- //
4244
- // VC++ doesn't define _set_abort_behavior() prior to the version 8.0.
4245
- // Users of prior VC versions shall suffer the agony and pain of
4246
- // clicking through the countless debug dialogs.
4247
- // TODO(vladl@google.com): find a way to suppress the abort dialog() in the
4248
- // debug mode when compiled with VC 7.1 or lower.
4249
4856
  if (!GTEST_FLAG(break_on_failure))
4250
4857
  _set_abort_behavior(
4251
4858
  0x0, // Clear the following flags:
4252
4859
  _WRITE_ABORT_MSG | _CALL_REPORTFAULT); // pop-up window, core dump.
4253
4860
  # endif
4254
4861
  }
4255
- #endif // GTEST_HAS_SEH
4862
+ #endif // GTEST_OS_WINDOWS
4256
4863
 
4257
4864
  return internal::HandleExceptionsInMethodIfSupported(
4258
4865
  impl(),
@@ -4266,13 +4873,22 @@ const char* UnitTest::original_working_dir() const {
4266
4873
  return impl_->original_working_dir_.c_str();
4267
4874
  }
4268
4875
 
4269
- // Returns the TestCase object for the test that's currently running,
4876
+ // Returns the TestSuite object for the test that's currently running,
4270
4877
  // or NULL if no test is running.
4878
+ const TestSuite* UnitTest::current_test_suite() const
4879
+ GTEST_LOCK_EXCLUDED_(mutex_) {
4880
+ internal::MutexLock lock(&mutex_);
4881
+ return impl_->current_test_suite();
4882
+ }
4883
+
4884
+ // Legacy API is still available but deprecated
4885
+ #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
4271
4886
  const TestCase* UnitTest::current_test_case() const
4272
4887
  GTEST_LOCK_EXCLUDED_(mutex_) {
4273
4888
  internal::MutexLock lock(&mutex_);
4274
- return impl_->current_test_case();
4889
+ return impl_->current_test_suite();
4275
4890
  }
4891
+ #endif
4276
4892
 
4277
4893
  // Returns the TestInfo object for the test that's currently running,
4278
4894
  // or NULL if no test is running.
@@ -4285,15 +4901,12 @@ const TestInfo* UnitTest::current_test_info() const
4285
4901
  // Returns the random seed used at the start of the current test run.
4286
4902
  int UnitTest::random_seed() const { return impl_->random_seed(); }
4287
4903
 
4288
- #if GTEST_HAS_PARAM_TEST
4289
- // Returns ParameterizedTestCaseRegistry object used to keep track of
4904
+ // Returns ParameterizedTestSuiteRegistry object used to keep track of
4290
4905
  // value-parameterized tests and instantiate and register them.
4291
- internal::ParameterizedTestCaseRegistry&
4292
- UnitTest::parameterized_test_registry()
4293
- GTEST_LOCK_EXCLUDED_(mutex_) {
4906
+ internal::ParameterizedTestSuiteRegistry&
4907
+ UnitTest::parameterized_test_registry() GTEST_LOCK_EXCLUDED_(mutex_) {
4294
4908
  return impl_->parameterized_test_registry();
4295
4909
  }
4296
- #endif // GTEST_HAS_PARAM_TEST
4297
4910
 
4298
4911
  // Creates an empty UnitTest.
4299
4912
  UnitTest::UnitTest() {
@@ -4325,25 +4938,22 @@ namespace internal {
4325
4938
  UnitTestImpl::UnitTestImpl(UnitTest* parent)
4326
4939
  : parent_(parent),
4327
4940
  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4355 /* using this in initializer */)
4328
- default_global_test_part_result_reporter_(this),
4941
+ default_global_test_part_result_reporter_(this),
4329
4942
  default_per_thread_test_part_result_reporter_(this),
4330
- GTEST_DISABLE_MSC_WARNINGS_POP_()
4331
- global_test_part_result_repoter_(
4943
+ GTEST_DISABLE_MSC_WARNINGS_POP_() global_test_part_result_repoter_(
4332
4944
  &default_global_test_part_result_reporter_),
4333
4945
  per_thread_test_part_result_reporter_(
4334
4946
  &default_per_thread_test_part_result_reporter_),
4335
- #if GTEST_HAS_PARAM_TEST
4336
4947
  parameterized_test_registry_(),
4337
4948
  parameterized_tests_registered_(false),
4338
- #endif // GTEST_HAS_PARAM_TEST
4339
- last_death_test_case_(-1),
4340
- current_test_case_(NULL),
4341
- current_test_info_(NULL),
4949
+ last_death_test_suite_(-1),
4950
+ current_test_suite_(nullptr),
4951
+ current_test_info_(nullptr),
4342
4952
  ad_hoc_test_result_(),
4343
- os_stack_trace_getter_(NULL),
4953
+ os_stack_trace_getter_(nullptr),
4344
4954
  post_flag_parse_init_performed_(false),
4345
4955
  random_seed_(0), // Will be overridden by the flag before first use.
4346
- random_(0), // Will be reseeded before first use.
4956
+ random_(0), // Will be reseeded before first use.
4347
4957
  start_timestamp_(0),
4348
4958
  elapsed_time_(0),
4349
4959
  #if GTEST_HAS_DEATH_TEST
@@ -4355,8 +4965,8 @@ UnitTestImpl::UnitTestImpl(UnitTest* parent)
4355
4965
  }
4356
4966
 
4357
4967
  UnitTestImpl::~UnitTestImpl() {
4358
- // Deletes every TestCase.
4359
- ForEach(test_cases_, internal::Delete<TestCase>);
4968
+ // Deletes every TestSuite.
4969
+ ForEach(test_suites_, internal::Delete<TestSuite>);
4360
4970
 
4361
4971
  // Deletes every Environment.
4362
4972
  ForEach(environments_, internal::Delete<Environment>);
@@ -4365,20 +4975,20 @@ UnitTestImpl::~UnitTestImpl() {
4365
4975
  }
4366
4976
 
4367
4977
  // Adds a TestProperty to the current TestResult object when invoked in a
4368
- // context of a test, to current test case's ad_hoc_test_result when invoke
4369
- // from SetUpTestCase/TearDownTestCase, or to the global property set
4978
+ // context of a test, to current test suite's ad_hoc_test_result when invoke
4979
+ // from SetUpTestSuite/TearDownTestSuite, or to the global property set
4370
4980
  // otherwise. If the result already contains a property with the same key,
4371
4981
  // the value will be updated.
4372
4982
  void UnitTestImpl::RecordProperty(const TestProperty& test_property) {
4373
4983
  std::string xml_element;
4374
4984
  TestResult* test_result; // TestResult appropriate for property recording.
4375
4985
 
4376
- if (current_test_info_ != NULL) {
4986
+ if (current_test_info_ != nullptr) {
4377
4987
  xml_element = "testcase";
4378
4988
  test_result = &(current_test_info_->result_);
4379
- } else if (current_test_case_ != NULL) {
4989
+ } else if (current_test_suite_ != nullptr) {
4380
4990
  xml_element = "testsuite";
4381
- test_result = &(current_test_case_->ad_hoc_test_result_);
4991
+ test_result = &(current_test_suite_->ad_hoc_test_result_);
4382
4992
  } else {
4383
4993
  xml_element = "testsuites";
4384
4994
  test_result = &ad_hoc_test_result_;
@@ -4390,7 +5000,7 @@ void UnitTestImpl::RecordProperty(const TestProperty& test_property) {
4390
5000
  // Disables event forwarding if the control is currently in a death test
4391
5001
  // subprocess. Must not be called before InitGoogleTest.
4392
5002
  void UnitTestImpl::SuppressTestEventsIfInSubprocess() {
4393
- if (internal_run_death_test_flag_.get() != NULL)
5003
+ if (internal_run_death_test_flag_.get() != nullptr)
4394
5004
  listeners()->SuppressEventForwarding();
4395
5005
  }
4396
5006
  #endif // GTEST_HAS_DEATH_TEST
@@ -4402,10 +5012,12 @@ void UnitTestImpl::ConfigureXmlOutput() {
4402
5012
  if (output_format == "xml") {
4403
5013
  listeners()->SetDefaultXmlGenerator(new XmlUnitTestResultPrinter(
4404
5014
  UnitTestOptions::GetAbsolutePathToOutputFile().c_str()));
5015
+ } else if (output_format == "json") {
5016
+ listeners()->SetDefaultXmlGenerator(new JsonUnitTestResultPrinter(
5017
+ UnitTestOptions::GetAbsolutePathToOutputFile().c_str()));
4405
5018
  } else if (output_format != "") {
4406
- printf("WARNING: unrecognized output format \"%s\" ignored.\n",
4407
- output_format.c_str());
4408
- fflush(stdout);
5019
+ GTEST_LOG_(WARNING) << "WARNING: unrecognized output format \""
5020
+ << output_format << "\" ignored.";
4409
5021
  }
4410
5022
  }
4411
5023
 
@@ -4420,9 +5032,8 @@ void UnitTestImpl::ConfigureStreamingOutput() {
4420
5032
  listeners()->Append(new StreamingListener(target.substr(0, pos),
4421
5033
  target.substr(pos+1)));
4422
5034
  } else {
4423
- printf("WARNING: unrecognized streaming target \"%s\" ignored.\n",
4424
- target.c_str());
4425
- fflush(stdout);
5035
+ GTEST_LOG_(WARNING) << "unrecognized streaming target \"" << target
5036
+ << "\" ignored.";
4426
5037
  }
4427
5038
  }
4428
5039
  }
@@ -4461,77 +5072,83 @@ void UnitTestImpl::PostFlagParsingInit() {
4461
5072
  // Configures listeners for streaming test results to the specified server.
4462
5073
  ConfigureStreamingOutput();
4463
5074
  #endif // GTEST_CAN_STREAM_RESULTS_
5075
+
5076
+ #if GTEST_HAS_ABSL
5077
+ if (GTEST_FLAG(install_failure_signal_handler)) {
5078
+ absl::FailureSignalHandlerOptions options;
5079
+ absl::InstallFailureSignalHandler(options);
5080
+ }
5081
+ #endif // GTEST_HAS_ABSL
4464
5082
  }
4465
5083
  }
4466
5084
 
4467
- // A predicate that checks the name of a TestCase against a known
5085
+ // A predicate that checks the name of a TestSuite against a known
4468
5086
  // value.
4469
5087
  //
4470
5088
  // This is used for implementation of the UnitTest class only. We put
4471
5089
  // it in the anonymous namespace to prevent polluting the outer
4472
5090
  // namespace.
4473
5091
  //
4474
- // TestCaseNameIs is copyable.
4475
- class TestCaseNameIs {
5092
+ // TestSuiteNameIs is copyable.
5093
+ class TestSuiteNameIs {
4476
5094
  public:
4477
5095
  // Constructor.
4478
- explicit TestCaseNameIs(const std::string& name)
4479
- : name_(name) {}
5096
+ explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
4480
5097
 
4481
- // Returns true iff the name of test_case matches name_.
4482
- bool operator()(const TestCase* test_case) const {
4483
- return test_case != NULL && strcmp(test_case->name(), name_.c_str()) == 0;
5098
+ // Returns true iff the name of test_suite matches name_.
5099
+ bool operator()(const TestSuite* test_suite) const {
5100
+ return test_suite != nullptr &&
5101
+ strcmp(test_suite->name(), name_.c_str()) == 0;
4484
5102
  }
4485
5103
 
4486
5104
  private:
4487
5105
  std::string name_;
4488
5106
  };
4489
5107
 
4490
- // Finds and returns a TestCase with the given name. If one doesn't
5108
+ // Finds and returns a TestSuite with the given name. If one doesn't
4491
5109
  // exist, creates one and returns it. It's the CALLER'S
4492
5110
  // RESPONSIBILITY to ensure that this function is only called WHEN THE
4493
5111
  // TESTS ARE NOT SHUFFLED.
4494
5112
  //
4495
5113
  // Arguments:
4496
5114
  //
4497
- // test_case_name: name of the test case
4498
- // type_param: the name of the test case's type parameter, or NULL if
4499
- // this is not a typed or a type-parameterized test case.
4500
- // set_up_tc: pointer to the function that sets up the test case
4501
- // tear_down_tc: pointer to the function that tears down the test case
4502
- TestCase* UnitTestImpl::GetTestCase(const char* test_case_name,
4503
- const char* type_param,
4504
- Test::SetUpTestCaseFunc set_up_tc,
4505
- Test::TearDownTestCaseFunc tear_down_tc) {
4506
- // Can we find a TestCase with the given name?
4507
- const std::vector<TestCase*>::const_iterator test_case =
4508
- std::find_if(test_cases_.begin(), test_cases_.end(),
4509
- TestCaseNameIs(test_case_name));
4510
-
4511
- if (test_case != test_cases_.end())
4512
- return *test_case;
5115
+ // test_suite_name: name of the test suite
5116
+ // type_param: the name of the test suite's type parameter, or NULL if
5117
+ // this is not a typed or a type-parameterized test suite.
5118
+ // set_up_tc: pointer to the function that sets up the test suite
5119
+ // tear_down_tc: pointer to the function that tears down the test suite
5120
+ TestSuite* UnitTestImpl::GetTestSuite(
5121
+ const char* test_suite_name, const char* type_param,
5122
+ internal::SetUpTestSuiteFunc set_up_tc,
5123
+ internal::TearDownTestSuiteFunc tear_down_tc) {
5124
+ // Can we find a TestSuite with the given name?
5125
+ const auto test_suite =
5126
+ std::find_if(test_suites_.rbegin(), test_suites_.rend(),
5127
+ TestSuiteNameIs(test_suite_name));
5128
+
5129
+ if (test_suite != test_suites_.rend()) return *test_suite;
4513
5130
 
4514
5131
  // No. Let's create one.
4515
- TestCase* const new_test_case =
4516
- new TestCase(test_case_name, type_param, set_up_tc, tear_down_tc);
4517
-
4518
- // Is this a death test case?
4519
- if (internal::UnitTestOptions::MatchesFilter(test_case_name,
4520
- kDeathTestCaseFilter)) {
4521
- // Yes. Inserts the test case after the last death test case
4522
- // defined so far. This only works when the test cases haven't
5132
+ auto* const new_test_suite =
5133
+ new TestSuite(test_suite_name, type_param, set_up_tc, tear_down_tc);
5134
+
5135
+ // Is this a death test suite?
5136
+ if (internal::UnitTestOptions::MatchesFilter(test_suite_name,
5137
+ kDeathTestSuiteFilter)) {
5138
+ // Yes. Inserts the test suite after the last death test suite
5139
+ // defined so far. This only works when the test suites haven't
4523
5140
  // been shuffled. Otherwise we may end up running a death test
4524
5141
  // after a non-death test.
4525
- ++last_death_test_case_;
4526
- test_cases_.insert(test_cases_.begin() + last_death_test_case_,
4527
- new_test_case);
5142
+ ++last_death_test_suite_;
5143
+ test_suites_.insert(test_suites_.begin() + last_death_test_suite_,
5144
+ new_test_suite);
4528
5145
  } else {
4529
5146
  // No. Appends to the end of the list.
4530
- test_cases_.push_back(new_test_case);
5147
+ test_suites_.push_back(new_test_suite);
4531
5148
  }
4532
5149
 
4533
- test_case_indices_.push_back(static_cast<int>(test_case_indices_.size()));
4534
- return new_test_case;
5150
+ test_suite_indices_.push_back(static_cast<int>(test_suite_indices_.size()));
5151
+ return new_test_suite;
4535
5152
  }
4536
5153
 
4537
5154
  // Helpers for setting up / tearing down the given environment. They
@@ -4549,13 +5166,8 @@ static void TearDownEnvironment(Environment* env) { env->TearDown(); }
4549
5166
  // All other functions called from RunAllTests() may safely assume that
4550
5167
  // parameterized tests are ready to be counted and run.
4551
5168
  bool UnitTestImpl::RunAllTests() {
4552
- // Makes sure InitGoogleTest() was called.
4553
- if (!GTestIsInitialized()) {
4554
- printf("%s",
4555
- "\nThis test program did NOT call ::testing::InitGoogleTest "
4556
- "before calling RUN_ALL_TESTS(). Please fix it.\n");
4557
- return false;
4558
- }
5169
+ // True iff Google Test is initialized before RUN_ALL_TESTS() is called.
5170
+ const bool gtest_is_initialized_before_run_all_tests = GTestIsInitialized();
4559
5171
 
4560
5172
  // Do not run any test if the --help flag was specified.
4561
5173
  if (g_help_flag)
@@ -4575,7 +5187,8 @@ bool UnitTestImpl::RunAllTests() {
4575
5187
  bool in_subprocess_for_death_test = false;
4576
5188
 
4577
5189
  #if GTEST_HAS_DEATH_TEST
4578
- in_subprocess_for_death_test = (internal_run_death_test_flag_.get() != NULL);
5190
+ in_subprocess_for_death_test =
5191
+ (internal_run_death_test_flag_.get() != nullptr);
4579
5192
  # if defined(GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_)
4580
5193
  if (in_subprocess_for_death_test) {
4581
5194
  GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_();
@@ -4622,7 +5235,7 @@ bool UnitTestImpl::RunAllTests() {
4622
5235
 
4623
5236
  const TimeInMillis start = GetTimeInMillis();
4624
5237
 
4625
- // Shuffles test cases and tests if requested.
5238
+ // Shuffles test suites and tests if requested.
4626
5239
  if (has_tests_to_run && GTEST_FLAG(shuffle)) {
4627
5240
  random()->Reseed(random_seed_);
4628
5241
  // This should be done before calling OnTestIterationStart(),
@@ -4634,19 +5247,33 @@ bool UnitTestImpl::RunAllTests() {
4634
5247
  // Tells the unit test event listeners that the tests are about to start.
4635
5248
  repeater->OnTestIterationStart(*parent_, i);
4636
5249
 
4637
- // Runs each test case if there is at least one test to run.
5250
+ // Runs each test suite if there is at least one test to run.
4638
5251
  if (has_tests_to_run) {
4639
5252
  // Sets up all environments beforehand.
4640
5253
  repeater->OnEnvironmentsSetUpStart(*parent_);
4641
5254
  ForEach(environments_, SetUpEnvironment);
4642
5255
  repeater->OnEnvironmentsSetUpEnd(*parent_);
4643
5256
 
4644
- // Runs the tests only if there was no fatal failure during global
4645
- // set-up.
4646
- if (!Test::HasFatalFailure()) {
4647
- for (int test_index = 0; test_index < total_test_case_count();
5257
+ // Runs the tests only if there was no fatal failure or skip triggered
5258
+ // during global set-up.
5259
+ if (Test::IsSkipped()) {
5260
+ // Emit diagnostics when global set-up calls skip, as it will not be
5261
+ // emitted by default.
5262
+ TestResult& test_result =
5263
+ *internal::GetUnitTestImpl()->current_test_result();
5264
+ for (int j = 0; j < test_result.total_part_count(); ++j) {
5265
+ const TestPartResult& test_part_result =
5266
+ test_result.GetTestPartResult(j);
5267
+ if (test_part_result.type() == TestPartResult::kSkip) {
5268
+ const std::string& result = test_part_result.message();
5269
+ printf("%s\n", result.c_str());
5270
+ }
5271
+ }
5272
+ fflush(stdout);
5273
+ } else if (!Test::HasFatalFailure()) {
5274
+ for (int test_index = 0; test_index < total_test_suite_count();
4648
5275
  test_index++) {
4649
- GetMutableTestCase(test_index)->Run();
5276
+ GetMutableSuiteCase(test_index)->Run();
4650
5277
  }
4651
5278
  }
4652
5279
 
@@ -4683,6 +5310,20 @@ bool UnitTestImpl::RunAllTests() {
4683
5310
 
4684
5311
  repeater->OnTestProgramEnd(*parent_);
4685
5312
 
5313
+ if (!gtest_is_initialized_before_run_all_tests) {
5314
+ ColoredPrintf(
5315
+ COLOR_RED,
5316
+ "\nIMPORTANT NOTICE - DO NOT IGNORE:\n"
5317
+ "This test program did NOT call " GTEST_INIT_GOOGLE_TEST_NAME_
5318
+ "() before calling RUN_ALL_TESTS(). This is INVALID. Soon " GTEST_NAME_
5319
+ " will start to enforce the valid usage. "
5320
+ "Please fix it ASAP, or IT WILL START TO FAIL.\n"); // NOLINT
5321
+ #if GTEST_FOR_GOOGLE_
5322
+ ColoredPrintf(COLOR_RED,
5323
+ "For more details, see http://wiki/Main/ValidGUnitMain.\n");
5324
+ #endif // GTEST_FOR_GOOGLE_
5325
+ }
5326
+
4686
5327
  return !failed;
4687
5328
  }
4688
5329
 
@@ -4692,9 +5333,9 @@ bool UnitTestImpl::RunAllTests() {
4692
5333
  // be created, prints an error and exits.
4693
5334
  void WriteToShardStatusFileIfNeeded() {
4694
5335
  const char* const test_shard_file = posix::GetEnv(kTestShardStatusFile);
4695
- if (test_shard_file != NULL) {
5336
+ if (test_shard_file != nullptr) {
4696
5337
  FILE* const file = posix::FOpen(test_shard_file, "w");
4697
- if (file == NULL) {
5338
+ if (file == nullptr) {
4698
5339
  ColoredPrintf(COLOR_RED,
4699
5340
  "Could not write to the test shard status file \"%s\" "
4700
5341
  "specified by the %s environment variable.\n",
@@ -4729,7 +5370,7 @@ bool ShouldShard(const char* total_shards_env,
4729
5370
  << "Invalid environment variables: you have "
4730
5371
  << kTestShardIndex << " = " << shard_index
4731
5372
  << ", but have left " << kTestTotalShards << " unset.\n";
4732
- ColoredPrintf(COLOR_RED, msg.GetString().c_str());
5373
+ ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str());
4733
5374
  fflush(stdout);
4734
5375
  exit(EXIT_FAILURE);
4735
5376
  } else if (total_shards != -1 && shard_index == -1) {
@@ -4737,7 +5378,7 @@ bool ShouldShard(const char* total_shards_env,
4737
5378
  << "Invalid environment variables: you have "
4738
5379
  << kTestTotalShards << " = " << total_shards
4739
5380
  << ", but have left " << kTestShardIndex << " unset.\n";
4740
- ColoredPrintf(COLOR_RED, msg.GetString().c_str());
5381
+ ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str());
4741
5382
  fflush(stdout);
4742
5383
  exit(EXIT_FAILURE);
4743
5384
  } else if (shard_index < 0 || shard_index >= total_shards) {
@@ -4746,7 +5387,7 @@ bool ShouldShard(const char* total_shards_env,
4746
5387
  << kTestShardIndex << " < " << kTestTotalShards
4747
5388
  << ", but you have " << kTestShardIndex << "=" << shard_index
4748
5389
  << ", " << kTestTotalShards << "=" << total_shards << ".\n";
4749
- ColoredPrintf(COLOR_RED, msg.GetString().c_str());
5390
+ ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str());
4750
5391
  fflush(stdout);
4751
5392
  exit(EXIT_FAILURE);
4752
5393
  }
@@ -4759,7 +5400,7 @@ bool ShouldShard(const char* total_shards_env,
4759
5400
  // and aborts.
4760
5401
  Int32 Int32FromEnvOrDie(const char* var, Int32 default_val) {
4761
5402
  const char* str_val = posix::GetEnv(var);
4762
- if (str_val == NULL) {
5403
+ if (str_val == nullptr) {
4763
5404
  return default_val;
4764
5405
  }
4765
5406
 
@@ -4781,11 +5422,11 @@ bool ShouldRunTestOnShard(int total_shards, int shard_index, int test_id) {
4781
5422
 
4782
5423
  // Compares the name of each test with the user-specified filter to
4783
5424
  // decide whether the test should be run, then records the result in
4784
- // each TestCase and TestInfo object.
5425
+ // each TestSuite and TestInfo object.
4785
5426
  // If shard_tests == true, further filters tests based on sharding
4786
5427
  // variables in the environment - see
4787
- // http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide.
4788
- // Returns the number of tests that should run.
5428
+ // https://github.com/google/googletest/blob/master/googletest/docs/advanced.md
5429
+ // . Returns the number of tests that should run.
4789
5430
  int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) {
4790
5431
  const Int32 total_shards = shard_tests == HONOR_SHARDING_PROTOCOL ?
4791
5432
  Int32FromEnvOrDie(kTestTotalShards, -1) : -1;
@@ -4798,42 +5439,40 @@ int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) {
4798
5439
  // this shard.
4799
5440
  int num_runnable_tests = 0;
4800
5441
  int num_selected_tests = 0;
4801
- for (size_t i = 0; i < test_cases_.size(); i++) {
4802
- TestCase* const test_case = test_cases_[i];
4803
- const std::string &test_case_name = test_case->name();
4804
- test_case->set_should_run(false);
5442
+ for (auto* test_suite : test_suites_) {
5443
+ const std::string& test_suite_name = test_suite->name();
5444
+ test_suite->set_should_run(false);
4805
5445
 
4806
- for (size_t j = 0; j < test_case->test_info_list().size(); j++) {
4807
- TestInfo* const test_info = test_case->test_info_list()[j];
5446
+ for (size_t j = 0; j < test_suite->test_info_list().size(); j++) {
5447
+ TestInfo* const test_info = test_suite->test_info_list()[j];
4808
5448
  const std::string test_name(test_info->name());
4809
- // A test is disabled if test case name or test name matches
5449
+ // A test is disabled if test suite name or test name matches
4810
5450
  // kDisableTestFilter.
4811
- const bool is_disabled =
4812
- internal::UnitTestOptions::MatchesFilter(test_case_name,
4813
- kDisableTestFilter) ||
4814
- internal::UnitTestOptions::MatchesFilter(test_name,
4815
- kDisableTestFilter);
5451
+ const bool is_disabled = internal::UnitTestOptions::MatchesFilter(
5452
+ test_suite_name, kDisableTestFilter) ||
5453
+ internal::UnitTestOptions::MatchesFilter(
5454
+ test_name, kDisableTestFilter);
4816
5455
  test_info->is_disabled_ = is_disabled;
4817
5456
 
4818
- const bool matches_filter =
4819
- internal::UnitTestOptions::FilterMatchesTest(test_case_name,
4820
- test_name);
5457
+ const bool matches_filter = internal::UnitTestOptions::FilterMatchesTest(
5458
+ test_suite_name, test_name);
4821
5459
  test_info->matches_filter_ = matches_filter;
4822
5460
 
4823
5461
  const bool is_runnable =
4824
5462
  (GTEST_FLAG(also_run_disabled_tests) || !is_disabled) &&
4825
5463
  matches_filter;
4826
5464
 
4827
- const bool is_selected = is_runnable &&
4828
- (shard_tests == IGNORE_SHARDING_PROTOCOL ||
4829
- ShouldRunTestOnShard(total_shards, shard_index,
4830
- num_runnable_tests));
5465
+ const bool is_in_another_shard =
5466
+ shard_tests != IGNORE_SHARDING_PROTOCOL &&
5467
+ !ShouldRunTestOnShard(total_shards, shard_index, num_runnable_tests);
5468
+ test_info->is_in_another_shard_ = is_in_another_shard;
5469
+ const bool is_selected = is_runnable && !is_in_another_shard;
4831
5470
 
4832
5471
  num_runnable_tests += is_runnable;
4833
5472
  num_selected_tests += is_selected;
4834
5473
 
4835
5474
  test_info->should_run_ = is_selected;
4836
- test_case->set_should_run(test_case->should_run() || is_selected);
5475
+ test_suite->set_should_run(test_suite->should_run() || is_selected);
4837
5476
  }
4838
5477
  }
4839
5478
  return num_selected_tests;
@@ -4844,7 +5483,7 @@ int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) {
4844
5483
  // max_length characters, only prints the first max_length characters
4845
5484
  // and "...".
4846
5485
  static void PrintOnOneLine(const char* str, int max_length) {
4847
- if (str != NULL) {
5486
+ if (str != nullptr) {
4848
5487
  for (int i = 0; *str != '\0'; ++str) {
4849
5488
  if (i >= max_length) {
4850
5489
  printf("...");
@@ -4866,27 +5505,25 @@ void UnitTestImpl::ListTestsMatchingFilter() {
4866
5505
  // Print at most this many characters for each type/value parameter.
4867
5506
  const int kMaxParamLength = 250;
4868
5507
 
4869
- for (size_t i = 0; i < test_cases_.size(); i++) {
4870
- const TestCase* const test_case = test_cases_[i];
4871
- bool printed_test_case_name = false;
5508
+ for (auto* test_suite : test_suites_) {
5509
+ bool printed_test_suite_name = false;
4872
5510
 
4873
- for (size_t j = 0; j < test_case->test_info_list().size(); j++) {
4874
- const TestInfo* const test_info =
4875
- test_case->test_info_list()[j];
5511
+ for (size_t j = 0; j < test_suite->test_info_list().size(); j++) {
5512
+ const TestInfo* const test_info = test_suite->test_info_list()[j];
4876
5513
  if (test_info->matches_filter_) {
4877
- if (!printed_test_case_name) {
4878
- printed_test_case_name = true;
4879
- printf("%s.", test_case->name());
4880
- if (test_case->type_param() != NULL) {
5514
+ if (!printed_test_suite_name) {
5515
+ printed_test_suite_name = true;
5516
+ printf("%s.", test_suite->name());
5517
+ if (test_suite->type_param() != nullptr) {
4881
5518
  printf(" # %s = ", kTypeParamLabel);
4882
5519
  // We print the type parameter on a single line to make
4883
5520
  // the output easy to parse by a program.
4884
- PrintOnOneLine(test_case->type_param(), kMaxParamLength);
5521
+ PrintOnOneLine(test_suite->type_param(), kMaxParamLength);
4885
5522
  }
4886
5523
  printf("\n");
4887
5524
  }
4888
5525
  printf(" %s", test_info->name());
4889
- if (test_info->value_param() != NULL) {
5526
+ if (test_info->value_param() != nullptr) {
4890
5527
  printf(" # %s = ", kValueParamLabel);
4891
5528
  // We print the value parameter on a single line to make the
4892
5529
  // output easy to parse by a program.
@@ -4897,6 +5534,23 @@ void UnitTestImpl::ListTestsMatchingFilter() {
4897
5534
  }
4898
5535
  }
4899
5536
  fflush(stdout);
5537
+ const std::string& output_format = UnitTestOptions::GetOutputFormat();
5538
+ if (output_format == "xml" || output_format == "json") {
5539
+ FILE* fileout = OpenFileForWriting(
5540
+ UnitTestOptions::GetAbsolutePathToOutputFile().c_str());
5541
+ std::stringstream stream;
5542
+ if (output_format == "xml") {
5543
+ XmlUnitTestResultPrinter(
5544
+ UnitTestOptions::GetAbsolutePathToOutputFile().c_str())
5545
+ .PrintXmlTestsList(&stream, test_suites_);
5546
+ } else if (output_format == "json") {
5547
+ JsonUnitTestResultPrinter(
5548
+ UnitTestOptions::GetAbsolutePathToOutputFile().c_str())
5549
+ .PrintJsonTestList(&stream, test_suites_);
5550
+ }
5551
+ fprintf(fileout, "%s", StringStreamToString(&stream).c_str());
5552
+ fclose(fileout);
5553
+ }
4900
5554
  }
4901
5555
 
4902
5556
  // Sets the OS stack trace getter.
@@ -4916,7 +5570,7 @@ void UnitTestImpl::set_os_stack_trace_getter(
4916
5570
  // otherwise, creates an OsStackTraceGetter, makes it the current
4917
5571
  // getter, and returns it.
4918
5572
  OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
4919
- if (os_stack_trace_getter_ == NULL) {
5573
+ if (os_stack_trace_getter_ == nullptr) {
4920
5574
  #ifdef GTEST_OS_STACK_TRACE_GETTER_
4921
5575
  os_stack_trace_getter_ = new GTEST_OS_STACK_TRACE_GETTER_;
4922
5576
  #else
@@ -4927,36 +5581,40 @@ OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
4927
5581
  return os_stack_trace_getter_;
4928
5582
  }
4929
5583
 
4930
- // Returns the TestResult for the test that's currently running, or
4931
- // the TestResult for the ad hoc test if no test is running.
5584
+ // Returns the most specific TestResult currently running.
4932
5585
  TestResult* UnitTestImpl::current_test_result() {
4933
- return current_test_info_ ?
4934
- &(current_test_info_->result_) : &ad_hoc_test_result_;
5586
+ if (current_test_info_ != nullptr) {
5587
+ return &current_test_info_->result_;
5588
+ }
5589
+ if (current_test_suite_ != nullptr) {
5590
+ return &current_test_suite_->ad_hoc_test_result_;
5591
+ }
5592
+ return &ad_hoc_test_result_;
4935
5593
  }
4936
5594
 
4937
- // Shuffles all test cases, and the tests within each test case,
5595
+ // Shuffles all test suites, and the tests within each test suite,
4938
5596
  // making sure that death tests are still run first.
4939
5597
  void UnitTestImpl::ShuffleTests() {
4940
- // Shuffles the death test cases.
4941
- ShuffleRange(random(), 0, last_death_test_case_ + 1, &test_case_indices_);
5598
+ // Shuffles the death test suites.
5599
+ ShuffleRange(random(), 0, last_death_test_suite_ + 1, &test_suite_indices_);
4942
5600
 
4943
- // Shuffles the non-death test cases.
4944
- ShuffleRange(random(), last_death_test_case_ + 1,
4945
- static_cast<int>(test_cases_.size()), &test_case_indices_);
5601
+ // Shuffles the non-death test suites.
5602
+ ShuffleRange(random(), last_death_test_suite_ + 1,
5603
+ static_cast<int>(test_suites_.size()), &test_suite_indices_);
4946
5604
 
4947
- // Shuffles the tests inside each test case.
4948
- for (size_t i = 0; i < test_cases_.size(); i++) {
4949
- test_cases_[i]->ShuffleTests(random());
5605
+ // Shuffles the tests inside each test suite.
5606
+ for (auto& test_suite : test_suites_) {
5607
+ test_suite->ShuffleTests(random());
4950
5608
  }
4951
5609
  }
4952
5610
 
4953
- // Restores the test cases and tests to their order before the first shuffle.
5611
+ // Restores the test suites and tests to their order before the first shuffle.
4954
5612
  void UnitTestImpl::UnshuffleTests() {
4955
- for (size_t i = 0; i < test_cases_.size(); i++) {
4956
- // Unshuffles the tests in each test case.
4957
- test_cases_[i]->UnshuffleTests();
4958
- // Resets the index of each test case.
4959
- test_case_indices_[i] = static_cast<int>(i);
5613
+ for (size_t i = 0; i < test_suites_.size(); i++) {
5614
+ // Unshuffles the tests in each test suite.
5615
+ test_suites_[i]->UnshuffleTests();
5616
+ // Resets the index of each test suite.
5617
+ test_suite_indices_[i] = static_cast<int>(i);
4960
5618
  }
4961
5619
  }
4962
5620
 
@@ -5012,16 +5670,15 @@ bool SkipPrefix(const char* prefix, const char** pstr) {
5012
5670
  // part can be omitted.
5013
5671
  //
5014
5672
  // Returns the value of the flag, or NULL if the parsing failed.
5015
- const char* ParseFlagValue(const char* str,
5016
- const char* flag,
5017
- bool def_optional) {
5673
+ static const char* ParseFlagValue(const char* str, const char* flag,
5674
+ bool def_optional) {
5018
5675
  // str and flag must not be NULL.
5019
- if (str == NULL || flag == NULL) return NULL;
5676
+ if (str == nullptr || flag == nullptr) return nullptr;
5020
5677
 
5021
5678
  // The flag must start with "--" followed by GTEST_FLAG_PREFIX_.
5022
5679
  const std::string flag_str = std::string("--") + GTEST_FLAG_PREFIX_ + flag;
5023
5680
  const size_t flag_len = flag_str.length();
5024
- if (strncmp(str, flag_str.c_str(), flag_len) != 0) return NULL;
5681
+ if (strncmp(str, flag_str.c_str(), flag_len) != 0) return nullptr;
5025
5682
 
5026
5683
  // Skips the flag name.
5027
5684
  const char* flag_end = str + flag_len;
@@ -5034,7 +5691,7 @@ const char* ParseFlagValue(const char* str,
5034
5691
  // If def_optional is true and there are more characters after the
5035
5692
  // flag name, or if def_optional is false, there must be a '=' after
5036
5693
  // the flag name.
5037
- if (flag_end[0] != '=') return NULL;
5694
+ if (flag_end[0] != '=') return nullptr;
5038
5695
 
5039
5696
  // Returns the string after "=".
5040
5697
  return flag_end + 1;
@@ -5050,12 +5707,12 @@ const char* ParseFlagValue(const char* str,
5050
5707
  //
5051
5708
  // On success, stores the value of the flag in *value, and returns
5052
5709
  // true. On failure, returns false without changing *value.
5053
- bool ParseBoolFlag(const char* str, const char* flag, bool* value) {
5710
+ static bool ParseBoolFlag(const char* str, const char* flag, bool* value) {
5054
5711
  // Gets the value of the flag as a string.
5055
5712
  const char* const value_str = ParseFlagValue(str, flag, true);
5056
5713
 
5057
5714
  // Aborts if the parsing failed.
5058
- if (value_str == NULL) return false;
5715
+ if (value_str == nullptr) return false;
5059
5716
 
5060
5717
  // Converts the string value to a bool.
5061
5718
  *value = !(*value_str == '0' || *value_str == 'f' || *value_str == 'F');
@@ -5072,7 +5729,7 @@ bool ParseInt32Flag(const char* str, const char* flag, Int32* value) {
5072
5729
  const char* const value_str = ParseFlagValue(str, flag, false);
5073
5730
 
5074
5731
  // Aborts if the parsing failed.
5075
- if (value_str == NULL) return false;
5732
+ if (value_str == nullptr) return false;
5076
5733
 
5077
5734
  // Sets *value to the value of the flag.
5078
5735
  return ParseInt32(Message() << "The value of flag --" << flag,
@@ -5084,12 +5741,13 @@ bool ParseInt32Flag(const char* str, const char* flag, Int32* value) {
5084
5741
  //
5085
5742
  // On success, stores the value of the flag in *value, and returns
5086
5743
  // true. On failure, returns false without changing *value.
5087
- bool ParseStringFlag(const char* str, const char* flag, std::string* value) {
5744
+ template <typename String>
5745
+ static bool ParseStringFlag(const char* str, const char* flag, String* value) {
5088
5746
  // Gets the value of the flag as a string.
5089
5747
  const char* const value_str = ParseFlagValue(str, flag, false);
5090
5748
 
5091
5749
  // Aborts if the parsing failed.
5092
- if (value_str == NULL) return false;
5750
+ if (value_str == nullptr) return false;
5093
5751
 
5094
5752
  // Sets *value to the value of the flag.
5095
5753
  *value = value_str;
@@ -5120,8 +5778,6 @@ static bool HasGoogleTestFlagPrefix(const char* str) {
5120
5778
  // @Y changes the color to yellow.
5121
5779
  // @D changes to the default terminal text color.
5122
5780
  //
5123
- // TODO(wan@google.com): Write tests for this once we add stdout
5124
- // capturing to Google Test.
5125
5781
  static void PrintColorEncoded(const char* str) {
5126
5782
  GTestColor color = COLOR_DEFAULT; // The current color.
5127
5783
 
@@ -5131,7 +5787,7 @@ static void PrintColorEncoded(const char* str) {
5131
5787
  // next segment.
5132
5788
  for (;;) {
5133
5789
  const char* p = strchr(str, '@');
5134
- if (p == NULL) {
5790
+ if (p == nullptr) {
5135
5791
  ColoredPrintf(color, "%s", str);
5136
5792
  return;
5137
5793
  }
@@ -5186,24 +5842,25 @@ static const char kColorEncodedHelpMessage[] =
5186
5842
  " Enable/disable colored output. The default is @Gauto@D.\n"
5187
5843
  " -@G-" GTEST_FLAG_PREFIX_ "print_time=0@D\n"
5188
5844
  " Don't print the elapsed time of each test.\n"
5189
- " @G--" GTEST_FLAG_PREFIX_ "output=xml@Y[@G:@YDIRECTORY_PATH@G"
5845
+ " @G--" GTEST_FLAG_PREFIX_ "output=@Y(@Gjson@Y|@Gxml@Y)[@G:@YDIRECTORY_PATH@G"
5190
5846
  GTEST_PATH_SEP_ "@Y|@G:@YFILE_PATH]@D\n"
5191
- " Generate an XML report in the given directory or with the given file\n"
5192
- " name. @YFILE_PATH@D defaults to @Gtest_details.xml@D.\n"
5193
- #if GTEST_CAN_STREAM_RESULTS_
5847
+ " Generate a JSON or XML report in the given directory or with the given\n"
5848
+ " file name. @YFILE_PATH@D defaults to @Gtest_detail.xml@D.\n"
5849
+ # if GTEST_CAN_STREAM_RESULTS_
5194
5850
  " @G--" GTEST_FLAG_PREFIX_ "stream_result_to=@YHOST@G:@YPORT@D\n"
5195
5851
  " Stream test results to the given server.\n"
5196
- #endif // GTEST_CAN_STREAM_RESULTS_
5852
+ # endif // GTEST_CAN_STREAM_RESULTS_
5197
5853
  "\n"
5198
5854
  "Assertion Behavior:\n"
5199
- #if GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS
5855
+ # if GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS
5200
5856
  " @G--" GTEST_FLAG_PREFIX_ "death_test_style=@Y(@Gfast@Y|@Gthreadsafe@Y)@D\n"
5201
5857
  " Set the default death test style.\n"
5202
- #endif // GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS
5858
+ # endif // GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS
5203
5859
  " @G--" GTEST_FLAG_PREFIX_ "break_on_failure@D\n"
5204
5860
  " Turn assertion failures into debugger break-points.\n"
5205
5861
  " @G--" GTEST_FLAG_PREFIX_ "throw_on_failure@D\n"
5206
- " Turn assertion failures into C++ exceptions.\n"
5862
+ " Turn assertion failures into C++ exceptions for use by an external\n"
5863
+ " test framework.\n"
5207
5864
  " @G--" GTEST_FLAG_PREFIX_ "catch_exceptions=0@D\n"
5208
5865
  " Do not report exceptions as test failures. Instead, allow them\n"
5209
5866
  " to crash the program or throw a pop-up (on Windows).\n"
@@ -5220,7 +5877,7 @@ static const char kColorEncodedHelpMessage[] =
5220
5877
  "(not one in your own code or tests), please report it to\n"
5221
5878
  "@G<" GTEST_DEV_EMAIL_ ">@D.\n";
5222
5879
 
5223
- bool ParseGoogleTestFlag(const char* const arg) {
5880
+ static bool ParseGoogleTestFlag(const char* const arg) {
5224
5881
  return ParseBoolFlag(arg, kAlsoRunDisabledTestsFlag,
5225
5882
  &GTEST_FLAG(also_run_disabled_tests)) ||
5226
5883
  ParseBoolFlag(arg, kBreakOnFailureFlag,
@@ -5238,6 +5895,7 @@ bool ParseGoogleTestFlag(const char* const arg) {
5238
5895
  ParseBoolFlag(arg, kListTestsFlag, &GTEST_FLAG(list_tests)) ||
5239
5896
  ParseStringFlag(arg, kOutputFlag, &GTEST_FLAG(output)) ||
5240
5897
  ParseBoolFlag(arg, kPrintTimeFlag, &GTEST_FLAG(print_time)) ||
5898
+ ParseBoolFlag(arg, kPrintUTF8Flag, &GTEST_FLAG(print_utf8)) ||
5241
5899
  ParseInt32Flag(arg, kRandomSeedFlag, &GTEST_FLAG(random_seed)) ||
5242
5900
  ParseInt32Flag(arg, kRepeatFlag, &GTEST_FLAG(repeat)) ||
5243
5901
  ParseBoolFlag(arg, kShuffleFlag, &GTEST_FLAG(shuffle)) ||
@@ -5250,14 +5908,11 @@ bool ParseGoogleTestFlag(const char* const arg) {
5250
5908
  }
5251
5909
 
5252
5910
  #if GTEST_USE_OWN_FLAGFILE_FLAG_
5253
- void LoadFlagsFromFile(const std::string& path) {
5911
+ static void LoadFlagsFromFile(const std::string& path) {
5254
5912
  FILE* flagfile = posix::FOpen(path.c_str(), "r");
5255
5913
  if (!flagfile) {
5256
- fprintf(stderr,
5257
- "Unable to open file \"%s\"\n",
5258
- GTEST_FLAG(flagfile).c_str());
5259
- fflush(stderr);
5260
- exit(EXIT_FAILURE);
5914
+ GTEST_LOG_(FATAL) << "Unable to open file \"" << GTEST_FLAG(flagfile)
5915
+ << "\"";
5261
5916
  }
5262
5917
  std::string contents(ReadEntireFile(flagfile));
5263
5918
  posix::FClose(flagfile);
@@ -5331,6 +5986,17 @@ void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
5331
5986
  // other parts of Google Test.
5332
5987
  void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
5333
5988
  ParseGoogleTestFlagsOnlyImpl(argc, argv);
5989
+
5990
+ // Fix the value of *_NSGetArgc() on macOS, but iff
5991
+ // *_NSGetArgv() == argv
5992
+ // Only applicable to char** version of argv
5993
+ #if GTEST_OS_MAC
5994
+ #ifndef GTEST_OS_IOS
5995
+ if (*_NSGetArgv() == argv) {
5996
+ *_NSGetArgc() = *argc;
5997
+ }
5998
+ #endif
5999
+ #endif
5334
6000
  }
5335
6001
  void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
5336
6002
  ParseGoogleTestFlagsOnlyImpl(argc, argv);
@@ -5352,6 +6018,10 @@ void InitGoogleTestImpl(int* argc, CharType** argv) {
5352
6018
  g_argvs.push_back(StreamableToString(argv[i]));
5353
6019
  }
5354
6020
 
6021
+ #if GTEST_HAS_ABSL
6022
+ absl::InitializeSymbolizer(g_argvs[0].c_str());
6023
+ #endif // GTEST_HAS_ABSL
6024
+
5355
6025
  ParseGoogleTestFlagsOnly(argc, argv);
5356
6026
  GetUnitTestImpl()->PostFlagParsingInit();
5357
6027
  }
@@ -5385,4 +6055,61 @@ void InitGoogleTest(int* argc, wchar_t** argv) {
5385
6055
  #endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
5386
6056
  }
5387
6057
 
6058
+ // This overloaded version can be used on Arduino/embedded platforms where
6059
+ // there is no argc/argv.
6060
+ void InitGoogleTest() {
6061
+ // Since Arduino doesn't have a command line, fake out the argc/argv arguments
6062
+ int argc = 1;
6063
+ const auto arg0 = "dummy";
6064
+ char* argv0 = const_cast<char*>(arg0);
6065
+ char** argv = &argv0;
6066
+
6067
+ #if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
6068
+ GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(&argc, argv);
6069
+ #else // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
6070
+ internal::InitGoogleTestImpl(&argc, argv);
6071
+ #endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
6072
+ }
6073
+
6074
+ std::string TempDir() {
6075
+ #if defined(GTEST_CUSTOM_TEMPDIR_FUNCTION_)
6076
+ return GTEST_CUSTOM_TEMPDIR_FUNCTION_();
6077
+ #endif
6078
+
6079
+ #if GTEST_OS_WINDOWS_MOBILE
6080
+ return "\\temp\\";
6081
+ #elif GTEST_OS_WINDOWS
6082
+ const char* temp_dir = internal::posix::GetEnv("TEMP");
6083
+ if (temp_dir == nullptr || temp_dir[0] == '\0')
6084
+ return "\\temp\\";
6085
+ else if (temp_dir[strlen(temp_dir) - 1] == '\\')
6086
+ return temp_dir;
6087
+ else
6088
+ return std::string(temp_dir) + "\\";
6089
+ #elif GTEST_OS_LINUX_ANDROID
6090
+ return "/sdcard/";
6091
+ #else
6092
+ return "/tmp/";
6093
+ #endif // GTEST_OS_WINDOWS_MOBILE
6094
+ }
6095
+
6096
+ // Class ScopedTrace
6097
+
6098
+ // Pushes the given source file location and message onto a per-thread
6099
+ // trace stack maintained by Google Test.
6100
+ void ScopedTrace::PushTrace(const char* file, int line, std::string message) {
6101
+ internal::TraceInfo trace;
6102
+ trace.file = file;
6103
+ trace.line = line;
6104
+ trace.message.swap(message);
6105
+
6106
+ UnitTest::GetInstance()->PushGTestTrace(trace);
6107
+ }
6108
+
6109
+ // Pops the info pushed by the c'tor.
6110
+ ScopedTrace::~ScopedTrace()
6111
+ GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) {
6112
+ UnitTest::GetInstance()->PopGTestTrace();
6113
+ }
6114
+
5388
6115
  } // namespace testing