script_core 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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