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.
- checksums.yaml +4 -4
- data/.rubocop.yml +7 -1
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/Gemfile +8 -1
- data/{LICENSE → MIT-LICENSE} +0 -0
- data/bootstrap.sh +1 -1
- data/dev.yml +1 -2
- data/ext/enterprise_script_service/Rakefile +7 -1
- data/ext/enterprise_script_service/data.cpp +21 -11
- data/ext/enterprise_script_service/libseccomp/.gitignore +4 -0
- data/ext/enterprise_script_service/libseccomp/.mailmap +10 -0
- data/ext/enterprise_script_service/libseccomp/.travis.yml +71 -0
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +33 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +134 -0
- data/ext/enterprise_script_service/libseccomp/CREDITS +16 -1
- data/ext/enterprise_script_service/libseccomp/Makefile.am +32 -1
- data/ext/enterprise_script_service/libseccomp/README.md +113 -0
- data/ext/enterprise_script_service/libseccomp/RELEASE_PROCESS.md +97 -0
- data/ext/enterprise_script_service/libseccomp/configure.ac +8 -1
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +3 -1
- data/ext/enterprise_script_service/libseccomp/doc/credits_updater +35 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man1/scmp_sys_resolver.1 +3 -1
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +101 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_set.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +1 -1
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +23 -4
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +2 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +80 -15
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_resolve_name.3 +15 -1
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +185 -22
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +13 -4
- data/ext/enterprise_script_service/libseccomp/src/api.c +87 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +18 -7
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +17 -6
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +17 -6
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +17 -6
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +17 -6
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +510 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.c +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +38 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +18 -7
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +18 -7
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +19 -7
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +43 -45
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +2 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +18 -7
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +43 -45
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +2 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-check.c +56 -53
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +23 -18
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +52 -49
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +17 -6
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +18 -7
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +41 -45
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +2 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +17 -6
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -1
- data/ext/enterprise_script_service/libseccomp/src/arch.c +48 -83
- data/ext/enterprise_script_service/libseccomp/src/arch.h +4 -21
- data/ext/enterprise_script_service/libseccomp/src/db.c +1184 -541
- data/ext/enterprise_script_service/libseccomp/src/db.h +12 -32
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +43 -24
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +20 -7
- data/ext/enterprise_script_service/libseccomp/src/hash.c +65 -649
- data/ext/enterprise_script_service/libseccomp/src/hash.h +3 -13
- data/ext/enterprise_script_service/libseccomp/src/helper.c +49 -0
- data/ext/enterprise_script_service/libseccomp/src/helper.h +27 -0
- data/ext/enterprise_script_service/libseccomp/src/python/Makefile.am +9 -4
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +9 -0
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +72 -8
- data/ext/enterprise_script_service/libseccomp/src/python/setup.py +0 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +137 -4
- data/ext/enterprise_script_service/libseccomp/src/system.h +32 -2
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +17 -0
- data/ext/enterprise_script_service/libseccomp/tests/01-sim-allow.tests +2 -2
- data/ext/enterprise_script_service/libseccomp/tests/05-sim-long_jumps.tests +18 -18
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.py +4 -0
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +13 -8
- data/ext/enterprise_script_service/libseccomp/tests/08-sim-subtree_checks.c +2 -2
- data/ext/enterprise_script_service/libseccomp/tests/08-sim-subtree_checks.py +2 -2
- data/ext/enterprise_script_service/libseccomp/tests/08-sim-subtree_checks.tests +27 -27
- data/ext/enterprise_script_service/libseccomp/tests/09-sim-syscall_priority_pre.tests +7 -7
- data/ext/enterprise_script_service/libseccomp/tests/10-sim-syscall_priority_post.tests +7 -7
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/12-sim-basic_masked_ops.tests +29 -29
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +37 -0
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -0
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +79 -21
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.py +2 -2
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +44 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +4 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.c +6 -6
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.py +6 -6
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +12 -12
- data/ext/enterprise_script_service/libseccomp/tests/20-live-basic_die.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/20-live-basic_die.tests +4 -4
- data/ext/enterprise_script_service/libseccomp/tests/21-live-basic_allow.py +2 -0
- data/ext/enterprise_script_service/libseccomp/tests/21-live-basic_allow.tests +2 -2
- data/ext/enterprise_script_service/libseccomp/tests/24-live-arg_allow.py +3 -2
- data/ext/enterprise_script_service/libseccomp/tests/24-live-arg_allow.tests +2 -2
- data/ext/enterprise_script_service/libseccomp/tests/25-sim-multilevel_chains_adv.tests +6 -6
- data/ext/enterprise_script_service/libseccomp/tests/26-sim-arch_all_be_basic.c +6 -0
- data/ext/enterprise_script_service/libseccomp/tests/26-sim-arch_all_be_basic.py +2 -0
- data/ext/enterprise_script_service/libseccomp/tests/27-sim-bpf_blk_state.tests +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/28-sim-arch_x86.py +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/29-sim-pseudo_syscall.py +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/32-live-tsync_allow.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/32-live-tsync_allow.tests +2 -2
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.c +74 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.py +45 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/35-sim-negative_one.c +73 -0
- data/ext/enterprise_script_service/libseccomp/tests/35-sim-negative_one.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/35-sim-negative_one.tests +18 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +56 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +39 -0
- data/ext/enterprise_script_service/libseccomp/tests/37-sim-ipc_syscalls_be.c +109 -0
- data/ext/enterprise_script_service/libseccomp/tests/37-sim-ipc_syscalls_be.py +55 -0
- data/ext/enterprise_script_service/libseccomp/tests/37-sim-ipc_syscalls_be.tests +27 -0
- data/ext/enterprise_script_service/libseccomp/tests/38-basic-pfc_coverage.c +104 -0
- data/ext/enterprise_script_service/libseccomp/tests/38-basic-pfc_coverage.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/38-basic-pfc_coverage.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +67 -0
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +68 -0
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/40-sim-log.c +59 -0
- data/ext/enterprise_script_service/libseccomp/tests/40-sim-log.py +47 -0
- data/ext/enterprise_script_service/libseccomp/tests/40-sim-log.tests +21 -0
- data/ext/enterprise_script_service/libseccomp/tests/41-sim-syscall_priority_arch.c +63 -0
- data/ext/enterprise_script_service/libseccomp/tests/41-sim-syscall_priority_arch.py +44 -0
- data/ext/enterprise_script_service/libseccomp/tests/41-sim-syscall_priority_arch.tests +19 -0
- data/ext/enterprise_script_service/libseccomp/tests/42-sim-adv_chains.c +198 -0
- data/ext/enterprise_script_service/libseccomp/tests/42-sim-adv_chains.py +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/42-sim-adv_chains.tests +54 -0
- data/ext/enterprise_script_service/libseccomp/tests/43-sim-a2_order.c +132 -0
- data/ext/enterprise_script_service/libseccomp/tests/43-sim-a2_order.py +62 -0
- data/ext/enterprise_script_service/libseccomp/tests/43-sim-a2_order.tests +55 -0
- data/ext/enterprise_script_service/libseccomp/tests/44-live-a2_order.c +178 -0
- data/ext/enterprise_script_service/libseccomp/tests/44-live-a2_order.py +107 -0
- data/ext/enterprise_script_service/libseccomp/tests/44-live-a2_order.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/45-sim-chain_code_coverage.c +108 -0
- data/ext/enterprise_script_service/libseccomp/tests/45-sim-chain_code_coverage.py +48 -0
- data/ext/enterprise_script_service/libseccomp/tests/45-sim-chain_code_coverage.tests +16 -0
- data/ext/enterprise_script_service/libseccomp/tests/46-sim-kill_process.c +78 -0
- data/ext/enterprise_script_service/libseccomp/tests/46-sim-kill_process.py +47 -0
- data/ext/enterprise_script_service/libseccomp/tests/46-sim-kill_process.tests +16 -0
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +102 -0
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.py +68 -0
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/48-sim-32b_args.c +84 -0
- data/ext/enterprise_script_service/libseccomp/tests/48-sim-32b_args.py +50 -0
- data/ext/enterprise_script_service/libseccomp/tests/48-sim-32b_args.tests +38 -0
- data/ext/enterprise_script_service/libseccomp/tests/49-sim-64b_comparisons.c +56 -0
- data/ext/enterprise_script_service/libseccomp/tests/49-sim-64b_comparisons.py +45 -0
- data/ext/enterprise_script_service/libseccomp/tests/49-sim-64b_comparisons.tests +25 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +68 -6
- data/ext/enterprise_script_service/libseccomp/tests/miniseq.c +3 -2
- data/ext/enterprise_script_service/libseccomp/tests/regression +102 -10
- data/ext/enterprise_script_service/libseccomp/tests/util.c +4 -0
- data/ext/enterprise_script_service/libseccomp/tests/util.py +2 -2
- data/ext/enterprise_script_service/libseccomp/tools/.gitignore +1 -0
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +5 -1
- data/ext/enterprise_script_service/libseccomp/tools/bpf.h +8 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_api_level.c +39 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +6 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +14 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +12 -2
- data/ext/enterprise_script_service/libseccomp/tools/util.c +4 -0
- data/ext/enterprise_script_service/mruby/.gitignore +15 -8
- data/ext/enterprise_script_service/mruby/.travis.yml +3 -4
- data/ext/enterprise_script_service/mruby/.yardopts +1 -1
- data/ext/enterprise_script_service/mruby/AUTHORS +6 -2
- data/ext/enterprise_script_service/mruby/LEGAL +1 -1
- data/ext/enterprise_script_service/mruby/LICENSE +20 -0
- data/ext/enterprise_script_service/mruby/README.md +2 -2
- data/ext/enterprise_script_service/mruby/Rakefile +28 -12
- data/ext/enterprise_script_service/mruby/TODO +0 -2
- data/ext/enterprise_script_service/mruby/appveyor.yml +11 -7
- data/ext/enterprise_script_service/mruby/benchmark/bm_app_lc_fizzbuzz.rb +1 -2
- data/ext/enterprise_script_service/mruby/build_config.rb +3 -2
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +7 -2
- data/ext/enterprise_script_service/mruby/doc/limitations.md +69 -7
- data/ext/enterprise_script_service/mruby/doc/opcode.md +127 -0
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +2 -2
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +9 -3
- data/ext/enterprise_script_service/mruby/include/mruby.h +45 -34
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +17 -0
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +1 -1
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +12 -4
- data/ext/enterprise_script_service/mruby/include/mruby/class.h +18 -15
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +6 -1
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +6 -5
- data/ext/enterprise_script_service/mruby/include/mruby/data.h +5 -4
- data/ext/enterprise_script_service/mruby/include/mruby/debug.h +5 -5
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/error.h +1 -1
- data/ext/enterprise_script_service/mruby/include/mruby/hash.h +56 -9
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +17 -4
- data/ext/enterprise_script_service/mruby/include/mruby/object.h +5 -6
- data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +47 -139
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +117 -0
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +8 -8
- data/ext/enterprise_script_service/mruby/include/mruby/range.h +29 -5
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +20 -10
- data/ext/enterprise_script_service/mruby/include/mruby/throw.h +4 -4
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +4 -0
- data/ext/enterprise_script_service/mruby/include/mruby/variable.h +7 -4
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +7 -7
- data/ext/enterprise_script_service/mruby/lib/mruby-core-ext.rb +23 -17
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +35 -9
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +5 -5
- data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +5 -3
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +26 -27
- data/ext/enterprise_script_service/mruby/minirake +136 -15
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +54 -50
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +3 -46
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +9 -24
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +23 -0
- data/ext/enterprise_script_service/mruby/mrbgems/{mruby-bin-mruby-config → mruby-bin-config}/mruby-config +0 -0
- data/ext/enterprise_script_service/mruby/mrbgems/{mruby-bin-mruby-config → mruby-bin-config}/mruby-config.bat +0 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +13 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +9 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +7 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +7 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +24 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +8 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +22 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +84 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +9 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +38 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +60 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +1 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/mrblib/module.rb +89 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/test/module.rb +55 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +918 -767
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/node.h +4 -20
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +552 -273
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/mrbgem.rake +6 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/mrblib/chain.rb +60 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/test/enum_chain.rb +76 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +57 -37
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/test/enum.rb +10 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +47 -35
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +22 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +90 -40
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +33 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +15 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +42 -47
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +4 -47
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +0 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +12 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.rb +17 -50
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +11 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +128 -117
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +17 -21
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file_test.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +16 -53
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrblib/kernel.rb +2 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +12 -30
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +4 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +7 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +31 -51
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/mrbgem.rake +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +702 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +369 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/kernel.rb +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/method.rb +8 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +27 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +7 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +2 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/test/nil.rb +2 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +126 -79
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/test/pack.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +9 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +34 -19
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.rb +18 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +7 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +0 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +1 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +13 -14
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.gitignore +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis.yml +29 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis_build_config.rb +6 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +27 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/Rakefile +29 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/example/sleep.rb +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/mrbgem.rake +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +135 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/test/sleep_test.rb +29 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/const.cstub +6 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/const.def +2 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +48 -20
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/addrinfo.rb +5 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/socket.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +14 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +6 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +96 -21
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +626 -190
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/string.rb +102 -59
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +15 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +16 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/test/struct.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +0 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +13 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +21 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +22 -39
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +22 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/include/mruby/time.h +25 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +26 -22
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrblib/array.rb +70 -40
- data/ext/enterprise_script_service/mruby/mrblib/enum.rb +4 -3
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +17 -46
- data/ext/enterprise_script_service/mruby/mrblib/kernel.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +1 -4
- data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrblib/string.rb +7 -8
- data/ext/enterprise_script_service/mruby/mrblib/symbol.rb +7 -0
- data/ext/enterprise_script_service/mruby/src/array.c +97 -44
- data/ext/enterprise_script_service/mruby/src/backtrace.c +14 -16
- data/ext/enterprise_script_service/mruby/src/class.c +156 -464
- data/ext/enterprise_script_service/mruby/src/codedump.c +436 -364
- data/ext/enterprise_script_service/mruby/src/debug.c +42 -45
- data/ext/enterprise_script_service/mruby/src/dump.c +27 -152
- data/ext/enterprise_script_service/mruby/src/enum.c +18 -2
- data/ext/enterprise_script_service/mruby/src/error.c +5 -4
- data/ext/enterprise_script_service/mruby/src/etc.c +1 -0
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +15 -1
- data/ext/enterprise_script_service/mruby/src/gc.c +76 -30
- data/ext/enterprise_script_service/mruby/src/hash.c +768 -256
- data/ext/enterprise_script_service/mruby/src/kernel.c +24 -446
- data/ext/enterprise_script_service/mruby/src/load.c +35 -35
- data/ext/enterprise_script_service/mruby/src/mruby_core.rake +2 -3
- data/ext/enterprise_script_service/mruby/src/numeric.c +96 -32
- data/ext/enterprise_script_service/mruby/src/object.c +88 -43
- data/ext/enterprise_script_service/mruby/src/proc.c +16 -14
- data/ext/enterprise_script_service/mruby/src/range.c +186 -176
- data/ext/enterprise_script_service/mruby/src/state.c +5 -5
- data/ext/enterprise_script_service/mruby/src/string.c +79 -93
- data/ext/enterprise_script_service/mruby/src/symbol.c +173 -85
- data/ext/enterprise_script_service/mruby/src/variable.c +283 -177
- data/ext/enterprise_script_service/mruby/src/vm.c +711 -688
- data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +4 -3
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +3 -2
- data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +1 -0
- data/ext/enterprise_script_service/mruby/tasks/toolchains/clang.rake +1 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +4 -6
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +0 -2
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +12 -11
- data/ext/enterprise_script_service/mruby/test/assert.rb +114 -121
- data/ext/enterprise_script_service/mruby/test/bintest.rb +10 -1
- data/ext/enterprise_script_service/mruby/test/t/array.rb +11 -11
- data/ext/enterprise_script_service/mruby/test/t/bs_block.rb +32 -31
- data/ext/enterprise_script_service/mruby/test/t/class.rb +11 -23
- data/ext/enterprise_script_service/mruby/test/t/codegen.rb +3 -3
- data/ext/enterprise_script_service/mruby/test/t/enumerable.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/float.rb +41 -2
- data/ext/enterprise_script_service/mruby/test/t/hash.rb +6 -5
- data/ext/enterprise_script_service/mruby/test/t/integer.rb +26 -44
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +7 -119
- data/ext/enterprise_script_service/mruby/test/t/literals.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/module.rb +93 -282
- data/ext/enterprise_script_service/mruby/test/t/numeric.rb +40 -11
- data/ext/enterprise_script_service/mruby/test/t/proc.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/range.rb +19 -2
- data/ext/enterprise_script_service/mruby/test/t/string.rb +17 -24
- data/ext/enterprise_script_service/mruby/test/t/symbol.rb +6 -2
- data/ext/enterprise_script_service/mruby/test/t/syntax.rb +191 -3
- data/ext/enterprise_script_service/mruby/travis_config.rb +1 -1
- data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
- data/ext/enterprise_script_service/mruby_engine.gembox +1 -0
- data/ext/enterprise_script_service/msgpack/.travis.yml +77 -44
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +75 -0
- data/ext/enterprise_script_service/msgpack/CMakeLists.txt +187 -50
- data/ext/enterprise_script_service/msgpack/Doxyfile +1 -1
- data/ext/enterprise_script_service/msgpack/Files.cmake +87 -0
- data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +3 -3
- data/ext/enterprise_script_service/msgpack/QUICKSTART-CPP.md +1 -1
- data/ext/enterprise_script_service/msgpack/README.md +15 -7
- data/ext/enterprise_script_service/msgpack/appveyor.yml +9 -5
- data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +2 -2
- data/ext/enterprise_script_service/msgpack/ci/build_regression.sh +49 -0
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_define_array.hpp.erb +4 -2
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_define_map.hpp.erb +2 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple.hpp.erb +1 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_zone.hpp.erb +25 -18
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_zone_decl.hpp.erb +8 -0
- data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +28 -1
- data/ext/enterprise_script_service/msgpack/example/boost/asio_send_recv.cpp +104 -0
- data/ext/enterprise_script_service/msgpack/example/boost/asio_send_recv_zlib.cpp +176 -0
- data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +4 -2
- data/ext/enterprise_script_service/msgpack/example/c/speed_test_uint32_array.c +1 -1
- data/ext/enterprise_script_service/msgpack/example/c/speed_test_uint64_array.c +1 -1
- data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +15 -3
- data/ext/enterprise_script_service/msgpack/example/cpp03/class_non_intrusive.cpp +1 -1
- data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +5 -1
- data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +12 -4
- data/ext/enterprise_script_service/msgpack/example/x3/parse.cpp +7 -1
- data/ext/enterprise_script_service/msgpack/example/x3/stream_unpack.cpp +9 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitattributes +96 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitignore +3 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/.project +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/.pydevproject +5 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/.travis.yml +109 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/appveyor.yml +149 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/build.jam +6 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/check/predef.jam +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/.gitignore +1 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/build.jam +100 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/hardware_simd.qbk +89 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/history.qbk +93 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/predef.qbk +734 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/todo.qbk +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/detail/endian.hpp +11 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef.h +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture.h +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/alpha.h +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/arm.h +80 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/blackfin.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/convex.h +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ia64.h +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/m68k.h +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/mips.h +73 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/parisc.h +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ppc.h +72 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ptx.h +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/pyramid.h +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/rs6k.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sparc.h +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/superh.h +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys370.h +43 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys390.h +43 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86.h +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/32.h +87 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/64.h +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/z.h +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler.h +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/borland.h +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/clang.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/comeau.h +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/compaq.h +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/diab.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/digitalmars.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/dignus.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/edg.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ekopath.h +57 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc.h +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc_xml.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/greenhills.h +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/hp_acc.h +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/iar.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ibm.h +72 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/intel.h +79 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/kai.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/llvm.h +57 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metaware.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metrowerks.h +77 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/microtec.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/mpw.h +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/nvcc.h +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/palm.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/pgi.h +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sgi_mipspro.h +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sunpro.h +76 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/tendra.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/visualc.h +105 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/watcom.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_cassert.h +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_exception.h +15 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/comp_detected.h +10 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/endian_compat.h +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/os_detected.h +10 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/platform_detected.h +10 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test.h +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test_def.h +71 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware.h +16 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd.h +119 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm.h +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm/versions.h +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc.h +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc/versions.h +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86.h +123 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86/versions.h +129 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd.h +87 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd/versions.h +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language.h +18 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/cuda.h +52 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/objc.h +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdc.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdcpp.h +121 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library.h +16 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c.h +21 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/_prefix.h +13 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/cloudabi.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/gnu.h +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/uc.h +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/vms.h +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/zos.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std.h +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/_prefix.h +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/cxx.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/dinkumware.h +52 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/libcomo.h +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/modena.h +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/msl.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/roguewave.h +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/sgi.h +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stdcpp3.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stlport.h +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/vacpp.h +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/make.h +97 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os.h +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/aix.h +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/amigaos.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/android.h +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/beos.h +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd.h +103 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/bsdi.h +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/dragonfly.h +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/free.h +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/net.h +84 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/open.h +251 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/cygwin.h +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/haiku.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/hpux.h +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/ios.h +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/irix.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/linux.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/macos.h +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/os400.h +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/qnxnto.h +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/solaris.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/unix.h +76 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/vms.h +52 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/windows.h +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other.h +16 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/endian.h +203 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/workaround.h +87 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform.h +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/cloudabi.h +43 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/ios.h +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw.h +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw32.h +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw64.h +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_desktop.h +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_phone.h +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_runtime.h +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_server.h +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_store.h +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_system.h +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_uwp.h +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version.h +15 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version_number.h +72 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/index.html +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/meta/libraries.json +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/.gitignore +3 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/build.jam +80 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/check_value.cpp +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_c.c +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_cpp.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objc.m +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objcpp.mm +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_endian.c +21 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_vs_bsd.c +19 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/make.cpp +94 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/platform_windows.cpp +177 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/predef_info.h +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at.cpp +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at_outdated.cpp +18 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/version.cpp +83 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround.cpp +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround_strict_config.cpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/build.jam +9 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef.jam +202 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check.h +98 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_c.c +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_cpp.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objc.m +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objcpp.mm +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc.h +19 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_c.c +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_cpp.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objc.m +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objcpp.mm +7 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/build_log.py +428 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/common.py +878 -0
- data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/library_test.py +198 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.gitattributes +96 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.travis.yml +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/appveyor.yml +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html +2494 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/acknowledgements.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/bibliography.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/contents.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data.html +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/arrays.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/lists.html +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/sequences.html +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/tuples.html +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples.html +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/array_arithmetic.c +196 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/catch_builtin.cpp +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/delay.c +95 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/duffs_device.c +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/is_integral.cpp +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/linear_fib.c +91 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers.html +249 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/add.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/dec.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/div.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/inc.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mod.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mul.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/sub.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array.html +43 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/data.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/elem.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/enum.html +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/insert.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_back.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_front.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_back.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_front.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/remove.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/replace.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/reverse.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/size.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_list.html +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_seq.html +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_tuple.html +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/assert_msg.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/cat.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma_if.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/equal.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater_equal.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less_equal.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/not_equal.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/limits.html +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/variadics.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/deduce_d.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_if.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_iif.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/if.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/iif.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/while.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/assert.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/line.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/dec.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/empty.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_params.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted_params.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwad.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwd.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expand.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expr_if.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/apply.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/empty.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/expand.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/identity.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/intercept.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/overload.html +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/for.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/identity.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/if.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/inc.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iterate.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/iterate.html +43 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/local.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/self.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/library.html +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/limits.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list.html +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/adt.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/append.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/at.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/cat.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/enum.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/filter.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/first_n.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_left.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_right.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_i.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_product.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/rest_n.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/reverse.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/size.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_array.html +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_seq.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_tuple.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/transform.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical.html +40 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/and.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitand.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitnor.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitor.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitxor.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bool.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/compl.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/nor.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/not.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/or.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/xor.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/max.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/min.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/preprocessor.html +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation.html +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma_if.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/is_begin_parens.html +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren_if.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/remove_parens.html +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_2nd.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_3rd.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_2nd.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_3rd.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition.html +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_r.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_z.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_binary_params.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_params.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted_params.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing_params.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwad.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwd.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/esbp.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/etbp.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/for.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat_from_to.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/max.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/min.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq.html +86 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/cat.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/elem.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/enum.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/filter.html +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/first_n.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_left.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_right.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_i.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_product.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/insert.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_back.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_front.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_back.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_front.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/remove.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/replace.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/rest_n.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/reverse.html +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/seq.html +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/size.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/subseq.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_array.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_list.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_tuple.html +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/transform.html +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/variadic_seq_to_seq.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/counter.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/slot.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/stringize.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple.html +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/eat.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/elem.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/enum.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/insert.html +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_back.html +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_front.html +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_back.html +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_front.html +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/rem.html +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/remove.html +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/replace.html +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/reverse.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/size.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_array.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_list.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_seq.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic.html +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/elem.html +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/size.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_array.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_list.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_seq.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_tuple.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/while.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/wstringize.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/index.html +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/miscellanea.html +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref.html +319 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add.html +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add_d.html +90 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/and.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/apply.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_data.html +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_elem.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_enum.html +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert.html +71 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert_d.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back.html +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back_z.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front_z.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_back.html +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_front.html +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove.html +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove_d.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace_d.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_reverse.html +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_size.html +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_list.html +41 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_seq.html +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_tuple.html +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert.html +114 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert_msg.html +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assign_slot.html +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitand.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitnor.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitor.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitxor.html +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bool.html +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/cat.html +57 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma.html +43 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma_if.html +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/compl.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/config_extended_line_info.html +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/counter.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/dec.html +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_d.html +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_r.html +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_z.html +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div_d.html +85 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/empty.html +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum.html +80 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params.html +76 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params_z.html +93 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_a_default.html +83 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_defaults.html +84 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_z.html +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted.html +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params.html +73 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params_z.html +79 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_z.html +93 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing.html +83 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params.html +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params_z.html +81 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_z.html +96 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_z.html +96 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal_d.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbp.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbpz.html +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbp.html +83 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbpz.html +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expand.html +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_if.html +70 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_iif.html +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/filename_x.html +52 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for.html +105 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r.html +148 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r_macros.html +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_finish.html +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_flags.html +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_iteration.html +73 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_start.html +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_d.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal_d.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity.html +57 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity_n.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/if.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iif.html +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/inc.html +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/include_self.html +101 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/indirect_self.html +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/intercept.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_begin_parens.html +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_iterating.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_selfish.html +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iterate.html +83 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_depth.html +73 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_finish.html +57 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_flags.html +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_limits.html +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_params_x.html +77 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_start.html +57 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_d.html +70 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal_d.html +70 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_dim.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_for.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration_dim.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_mag.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_repeat.html +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_seq.html +41 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_count.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_sig.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_tuple.html +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_variadic.html +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_while.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/line.html +112 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append_d.html +96 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at.html +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at_d.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat_d.html +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cons.html +87 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum.html +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum_r.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter.html +76 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter_d.html +86 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first.html +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n.html +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n_d.html +71 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left.html +75 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd.html +75 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd_d.html +86 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d.html +81 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d_old.html +86 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right.html +79 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd.html +79 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd_d.html +86 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d.html +81 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d_old.html +90 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each.html +75 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i.html +75 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i_r.html +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product.html +86 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product_r.html +118 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_r.html +81 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_cons.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_nil.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_nil.html +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest.html +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n.html +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n_d.html +71 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse_d.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size_d.html +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array.html +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array_d.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq.html +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq_r.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple_r.html +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform.html +78 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform_d.html +86 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_iterate.html +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_limits.html +80 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_macro.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen.html +52 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen_if.html +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max_d.html +70 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min_d.html +70 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod_d.html +75 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul.html +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul_d.html +91 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nil.html +41 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nor.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not.html +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal_d.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/or.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/overload.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_finish.html +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_flags.html +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_iteration.html +101 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_start.html +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/remove_parens.html +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat.html +80 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_1st.html +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_2nd.html +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_3rd.html +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to.html +102 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_1st.html +91 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_2nd.html +91 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_3rd.html +91 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d.html +83 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d_z.html +84 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_z.html +105 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z.html +92 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z_macros.html +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen.html +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen_if.html +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat_s.html +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_elem.html +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_enum.html +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter.html +93 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter_s.html +79 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_first_n.html +67 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left.html +90 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left_s.html +96 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right.html +92 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right_s.html +97 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each.html +90 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i.html +91 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i_r.html +78 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product.html +100 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product_r.html +81 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_r.html +77 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_head.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_insert.html +70 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_nil.html +81 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_back.html +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_front.html +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_back.html +76 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_front.html +78 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_remove.html +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_replace.html +71 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_rest_n.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse.html +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse_s.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_size.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_subseq.html +69 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_tail.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_array.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_list.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_tuple.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform.html +93 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform_s.html +79 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/slot.html +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/stringize.html +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub.html +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub_d.html +85 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_eat.html +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_elem.html +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_enum.html +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert.html +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert_d.html +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back.html +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back_z.html +40 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front.html +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front_z.html +40 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_back.html +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_front.html +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem.html +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem_ctor.html +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove.html +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove_d.html +41 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace_d.html +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_reverse.html +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_size.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_array.html +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_list.html +60 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_seq.html +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/update_counter.html +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/value.html +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_elem.html +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_seq_to_seq.html +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_size.html +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_array.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_list.html +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_seq.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_tuple.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadics.html +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while.html +116 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d.html +117 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d_macros.html +89 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/wstringize.html +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/xor.html +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/styles.css +87 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/syntax.html +307 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms.html +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/evaluated.html +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/named_external.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/title.html +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/top.html +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics.html +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/evaluated_slots.html +157 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/file_iteration.html +1044 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/incompatible.html +140 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/local_iteration.html +156 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/motivation.html +119 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/problems.html +135 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/reentrancy.html +298 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/techniques.html +350 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/variadic_macros.html +262 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor.hpp +19 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic.hpp +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/add.hpp +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/dec.hpp +289 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/div.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/inc.hpp +288 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mod.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mul.hpp +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/sub.hpp +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/data.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/detail/get_data.hpp +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/elem.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/enum.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/insert.hpp +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_back.hpp +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_front.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_back.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_front.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/remove.hpp +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/replace.hpp +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/reverse.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/size.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_list.hpp +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_seq.hpp +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_tuple.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/assert_msg.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/cat.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma_if.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison.hpp +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/equal.hpp +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater_equal.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less.hpp +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less_equal.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/not_equal.hpp +814 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/config.hpp +106 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/limits.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control.hpp +22 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/deduce_d.hpp +22 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/dmc/while.hpp +536 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/edg/while.hpp +534 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/msvc/while.hpp +277 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/while.hpp +536 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_if.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_iif.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/if.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/iif.hpp +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/while.hpp +312 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug.hpp +18 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/assert.hpp +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/error.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/line.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/dec.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/auto_rec.hpp +293 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/check.hpp +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/dmc/auto_rec.hpp +286 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_binary.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_nullary.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_unary.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/null.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/split.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/empty.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_a_default.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_defaults.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted_params.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expand.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expr_if.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities.hpp +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/apply.hpp +34 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/detail/is_empty.hpp +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/empty.hpp +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/expand.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/identity.hpp +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/intercept.hpp +277 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_1.hpp +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty.hpp +56 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_or_1.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_variadic.hpp +57 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/overload.hpp +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/for.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/identity.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/if.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/inc.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iterate.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration.hpp +19 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower2.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower3.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower4.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower5.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper2.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper3.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper4.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper5.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/finish.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward2.hpp +1338 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward3.hpp +1338 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward4.hpp +1338 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward5.hpp +1338 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp +1296 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse2.hpp +1296 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse3.hpp +1296 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse4.hpp +1296 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse5.hpp +1296 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/local.hpp +812 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/rlocal.hpp +782 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/self.hpp +21 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/start.hpp +99 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/iterate.hpp +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/local.hpp +26 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/self.hpp +19 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/library.hpp +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/limits.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list.hpp +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/adt.hpp +73 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/append.hpp +40 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/at.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/cat.hpp +42 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +279 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_left.hpp +536 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_right.hpp +794 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_left.hpp +279 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_right.hpp +277 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/enum.hpp +41 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/filter.hpp +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/first_n.hpp +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_left.hpp +303 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_right.hpp +40 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each.hpp +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_i.hpp +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_product.hpp +141 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/rest_n.hpp +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/reverse.hpp +40 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/size.hpp +58 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_array.hpp +155 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_seq.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_tuple.hpp +61 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/transform.hpp +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/and.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitand.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitnor.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitor.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitxor.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bool.hpp +288 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/compl.hpp +36 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/nor.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/not.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/or.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/xor.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/max.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/min.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation.hpp +22 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma.hpp +21 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma_if.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/is_begin_parens.hpp +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren.hpp +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren_if.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/remove_parens.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_2nd.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_3rd.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_2nd.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_3rd.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_r.hpp +22 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_z.hpp +22 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/dmc/for.hpp +536 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/edg/for.hpp +534 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/for.hpp +536 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/msvc/for.hpp +277 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum.hpp +66 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_binary_params.hpp +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params.hpp +41 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_defaults.hpp +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted.hpp +68 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +51 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing.hpp +63 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/for.hpp +324 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat.hpp +825 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat_from_to.hpp +87 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection.hpp +18 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/max.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/min.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq.hpp +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/cat.hpp +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/binary_transform.hpp +47 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/is_empty.hpp +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/split.hpp +284 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/elem.hpp +304 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/enum.hpp +288 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/filter.hpp +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/first_n.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_left.hpp +1070 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_right.hpp +288 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each.hpp +107 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_i.hpp +109 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_product.hpp +126 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/insert.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_back.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_front.hpp +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_back.hpp +19 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_front.hpp +19 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/remove.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/replace.hpp +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/rest_n.hpp +46 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/reverse.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/seq.hpp +44 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/size.hpp +548 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/subseq.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_array.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_list.hpp +41 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_tuple.hpp +27 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/transform.hpp +48 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/variadic_seq_to_seq.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/counter.hpp +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/counter.hpp +269 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/def.hpp +49 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/shared.hpp +247 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot1.hpp +267 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot2.hpp +267 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot3.hpp +267 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot4.hpp +267 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot5.hpp +267 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/slot.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/stringize.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/detail/is_single_return.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/eat.hpp +115 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/elem.hpp +201 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/enum.hpp +22 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/insert.hpp +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_back.hpp +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_front.hpp +65 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_back.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_front.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/rem.hpp +149 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/remove.hpp +64 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/replace.hpp +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/reverse.hpp +117 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/size.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_array.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_list.hpp +118 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_seq.hpp +119 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic.hpp +23 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/detail/is_single_return.hpp +28 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/elem.hpp +94 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/size.hpp +30 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_array.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_list.hpp +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_seq.hpp +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_tuple.hpp +24 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/while.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/wstringize.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/index.html +18 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/meta/libraries.json +15 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/Jamfile.v2 +252 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cxx +82 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.c +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cpp +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cxx +192 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.c +13 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cxx +45 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/config_info.cpp +93 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cxx +40 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cxx +21 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cxx +55 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cxx +145 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cxx +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cxx +25 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.cpp +33 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.h +62 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.c +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cpp +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cxx +91 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cxx +59 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.c +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cpp +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cxx +54 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/repetition.cpp +50 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cxx +21 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.c +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cpp +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cxx +222 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cxx +53 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/test.h +37 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.c +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cpp +14 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cxx +266 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple_elem_bug_test.cxx +38 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.c +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cpp +12 -0
- data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cxx +56 -0
- data/ext/enterprise_script_service/msgpack/fuzz/CMakeLists.txt +43 -0
- data/ext/enterprise_script_service/msgpack/fuzz/regression_runner.cpp +50 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer.cpp +23 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_regressions/clusterfuzz-testcase-minimized-unpack_pack_fuzzer-5656982724804608 +0 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_regressions/clusterfuzz-testcase-minimized-unpack_pack_fuzzer-6022481354686464 +0 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/EmptyArray +1 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/EmptyObject +1 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/ExcessiveNesting +2 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/OpenWeatherMap +0 -0
- data/ext/enterprise_script_service/msgpack/fuzz/unpack_pack_fuzzer_seed_corpus/WeatherUnderground +0 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack.hpp +4 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/adaptor_base.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/adaptor_base_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/array_ref_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/check_container_size_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp11/chrono.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/byte.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/carray_byte.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/optional.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/string_view.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp17/vector_byte.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/define_decl.hpp +25 -24
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/ext_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/fixint_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/int_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/map_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/msgpack_tuple_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/nil_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/raw_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/size_equal_only_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/tr1/unordered_map.hpp +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/tr1/unordered_set.hpp +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/v4raw_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/cpp_config_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/create_object_visitor.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/create_object_visitor_decl.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/fbuffer_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/iterator_decl.hpp +2 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/meta_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/null_visitor.hpp +17 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/null_visitor_decl.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/object_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/object_fwd.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/object_fwd_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +4 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack_template.h +28 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/parse.hpp +18 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/parse_decl.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/parse_return.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture.h +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture/arm.h +11 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture/parisc.h +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/architecture/ptx.h +44 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler.h +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler/intel.h +17 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler/nvcc.h +60 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/compiler/visualc.h +15 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/hardware/simd/arm.h +3 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/hardware/simd/x86_amd/versions.h +3 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/language.h +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/language/cuda.h +52 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/library/c.h +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/library/c/cloudabi.h +53 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/make.h +8 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/os/android.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/os/bsd/free.h +10 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/os/bsd/open.h +80 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/other/endian.h +1 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/other/workaround.h +87 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform.h +9 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/cloudabi.h +43 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/ios.h +58 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/mingw.h +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/mingw32.h +63 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/mingw64.h +63 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_desktop.h +9 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_phone.h +7 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_runtime.h +13 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_server.h +47 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_store.h +11 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_system.h +47 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/platform/windows_uwp.h +60 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/version.h +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/predef/version_number.h +20 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/cat.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/config/config.hpp +13 -11
- data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/seq/detail/binary_transform.hpp +5 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/preprocessor/seq/to_list.hpp +12 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/sbuffer_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/sysdep.h +31 -26
- data/ext/enterprise_script_service/msgpack/include/msgpack/timestamp.h +58 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/type.hpp +13 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/unpack.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/unpack_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/unpack_template.h +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/fusion.hpp +48 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/carray.hpp +5 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/char_ptr.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/array.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/array_char.hpp +8 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp +8 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp +215 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/forward_list.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/tuple.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/byte.hpp +74 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp +109 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/optional.hpp +90 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/string_view.hpp +86 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +119 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/deque.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp +1088 -32
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp +32 -16
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp +32 -32
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp +45 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp +4 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp +4 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/ext.hpp +3 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/fixint.hpp +40 -24
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int.hpp +55 -33
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/list.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +7 -7
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/pair.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/set.hpp +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/string.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/tr1/unordered_map.hpp +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/tr1/unordered_set.hpp +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +5 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_bool.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +9 -9
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +9 -9
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/cpp_config.hpp +4 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/cpp_config_decl.hpp +6 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp +41 -34
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp03_zone_decl.hpp +8 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp +25 -19
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp11_zone_decl.hpp +8 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object.hpp +768 -404
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object_decl.hpp +8 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object_fwd.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/unpack.hpp +5 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/vrefbuffer.hpp +15 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor.hpp +14 -7
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor_decl.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/null_visitor.hpp +5 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/null_visitor_decl.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/object_decl.hpp +4 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/object_fwd.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/pack_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse.hpp +41 -23
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse_decl.hpp +79 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/unpack.hpp +7 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/unpack_decl.hpp +8 -36
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_parse.hpp +5 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_parse_decl.hpp +36 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_unpack.hpp +13 -12
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_unpack_decl.hpp +71 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/adaptor_base.hpp +58 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/adaptor_base_decl.hpp +52 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/array_ref_decl.hpp +36 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp +42 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/check_container_size_decl.hpp +39 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/define_decl.hpp +23 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp +43 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp +59 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/ext_decl.hpp +34 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/fixint_decl.hpp +43 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/int_decl.hpp +54 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/map_decl.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp +21 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/nil_decl.hpp +42 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/raw_decl.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/size_equal_only_decl.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/v4raw_decl.hpp +34 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/cpp_config_decl.hpp +84 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/create_object_visitor_decl.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/detail/cpp03_zone_decl.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/detail/cpp11_zone_decl.hpp +31 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/fbuffer_decl.hpp +32 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/iterator_decl.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/meta_decl.hpp +50 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/null_visitor_decl.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/object_decl.hpp +53 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/object_fwd.hpp +70 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/object_fwd_decl.hpp +75 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/pack_decl.hpp +55 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse.hpp +677 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse_decl.hpp +49 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse_return.hpp +35 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/sbuffer_decl.hpp +33 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +192 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack_decl.hpp +304 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/vrefbuffer_decl.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/x3_parse_decl.hpp +34 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/x3_unpack.hpp +97 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/x3_unpack_decl.hpp +65 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/zbuffer_decl.hpp +29 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/zone_decl.hpp +21 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/versioning.hpp +3 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/vrefbuffer.h +1 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/vrefbuffer_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/x3_parse.hpp +15 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/x3_parse_decl.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/x3_unpack.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/x3_unpack_decl.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/zone_decl.hpp +1 -0
- data/ext/enterprise_script_service/msgpack/makedist.sh +2 -0
- data/ext/enterprise_script_service/msgpack/msgpack-config.cmake.in +23 -0
- data/ext/enterprise_script_service/msgpack/src/objectc.c +1 -1
- data/ext/enterprise_script_service/msgpack/src/unpack.c +8 -8
- data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +13 -1
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +13 -6
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +31 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +3 -3
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +8 -0
- data/ext/enterprise_script_service/msgpack/test/json.cpp +1 -1
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +114 -6
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +188 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +333 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +11 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +9 -3
- data/ext/enterprise_script_service/msgpack/test/object.cpp +11 -2
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +72 -8
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +96 -0
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +1 -1
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +38 -13
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +350 -6
- data/ext/enterprise_script_service/msgpack/update_version.sh +17 -0
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +5 -2
- data/script_core.gemspec +0 -1
- data/spec/dummy/app/controllers/application_controller.rb +18 -0
- data/spec/dummy/app/controllers/fields/choices_controller.rb +50 -0
- data/spec/dummy/app/controllers/forms/formulas/playgrounds_controller.rb +2 -2
- data/spec/dummy/app/controllers/playgrounds_controller.rb +18 -3
- data/spec/dummy/app/controllers/time_zones_controller.rb +14 -0
- data/spec/dummy/app/helpers/fields_helper.rb +0 -4
- data/spec/dummy/app/lib/script_engine.rb +18 -7
- data/spec/dummy/app/models/choice.rb +10 -0
- data/spec/dummy/app/models/concerns/fields/helper.rb +23 -0
- data/spec/dummy/app/models/concerns/fields/validations/acceptance.rb +1 -1
- data/spec/dummy/app/models/concerns/fields/validations/confirmation.rb +1 -1
- data/spec/dummy/app/models/concerns/fields/validations/exclusion.rb +2 -2
- data/spec/dummy/app/models/concerns/fields/validations/format.rb +5 -7
- data/spec/dummy/app/models/concerns/fields/validations/inclusion.rb +2 -2
- data/spec/dummy/app/models/concerns/fields/validations/length.rb +2 -2
- data/spec/dummy/app/models/concerns/fields/validations/numericality.rb +2 -2
- data/spec/dummy/app/models/concerns/fields/validations/presence.rb +1 -1
- data/spec/dummy/app/models/field.rb +8 -8
- data/spec/dummy/app/models/field_options.rb +16 -8
- data/spec/dummy/app/models/fields.rb +4 -0
- data/spec/dummy/app/models/fields/boolean_field.rb +1 -1
- data/spec/dummy/app/models/fields/date_field.rb +24 -0
- data/spec/dummy/app/models/fields/datetime_field.rb +24 -0
- data/spec/dummy/app/models/fields/multiple_nested_form_field.rb +8 -3
- data/spec/dummy/app/models/fields/multiple_select_field.rb +42 -0
- data/spec/dummy/app/models/fields/nested_form_field.rb +6 -5
- data/spec/dummy/app/models/fields/options/date_field.rb +138 -0
- data/spec/dummy/app/models/fields/options/datetime_field.rb +138 -0
- data/spec/dummy/app/models/fields/options/multiple_select_field.rb +7 -0
- data/spec/dummy/app/models/fields/options/select_field.rb +7 -0
- data/spec/dummy/app/models/fields/select_field.rb +25 -0
- data/spec/dummy/app/models/fields/validations/boolean_field.rb +1 -1
- data/spec/dummy/app/models/fields/validations/date_field.rb +7 -0
- data/spec/dummy/app/models/fields/validations/datetime_field.rb +7 -0
- data/spec/dummy/app/models/fields/validations/decimal_field.rb +2 -2
- data/spec/dummy/app/models/fields/validations/integer_field.rb +2 -2
- data/spec/dummy/app/models/fields/validations/multiple_nested_form_field.rb +2 -2
- data/spec/dummy/app/models/fields/validations/multiple_select_field.rb +8 -0
- data/spec/dummy/app/models/fields/validations/nested_form_field.rb +1 -1
- data/spec/dummy/app/models/fields/validations/select_field.rb +7 -0
- data/spec/dummy/app/models/fields/validations/text_field.rb +3 -3
- data/spec/dummy/app/models/metal_form.rb +4 -0
- data/spec/dummy/app/models/non_configurable.rb +4 -0
- data/spec/dummy/app/models/virtual_model.rb +8 -0
- data/spec/dummy/app/presenters/fields/date_field_presenter.rb +53 -0
- data/spec/dummy/app/presenters/fields/datetime_field_presenter.rb +53 -0
- data/spec/dummy/app/presenters/fields/field_presenter.rb +3 -2
- data/spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb +37 -0
- data/spec/dummy/app/presenters/fields/select_field_presenter.rb +26 -0
- data/spec/dummy/app/views/_form_core/field_options/_date_field.html.erb +97 -0
- data/spec/dummy/app/views/_form_core/field_options/_datetime_field.html.erb +97 -0
- data/spec/dummy/app/views/_form_core/field_options/_multiple_select_field.html.erb +12 -0
- data/spec/dummy/app/views/_form_core/field_options/_select_field.html.erb +12 -0
- data/spec/dummy/app/views/_form_core/fields/_date_field.html.erb +9 -0
- data/spec/dummy/app/views/_form_core/fields/_datetime_field.html.erb +9 -0
- data/spec/dummy/app/views/_form_core/fields/_multiple_select_field.html.erb +18 -0
- data/spec/dummy/app/views/_form_core/fields/_select_field.html.erb +17 -0
- data/spec/dummy/app/views/fields/choices/_form.html.erb +34 -0
- data/spec/dummy/app/views/fields/choices/edit.html.erb +6 -0
- data/spec/dummy/app/views/fields/choices/index.html.erb +27 -0
- data/spec/dummy/app/views/fields/choices/new.html.erb +6 -0
- data/spec/dummy/app/views/forms/fields/index.html.erb +4 -1
- data/spec/dummy/app/views/forms/formulas/playgrounds/create.html.erb +1 -1
- data/spec/dummy/app/views/layouts/_nav.html.erb +22 -0
- data/spec/dummy/app/views/nested_forms/fields/index.html.erb +10 -3
- data/spec/dummy/app/views/playgrounds/_form.html.erb +1 -1
- data/spec/dummy/config/application.rb +2 -1
- data/spec/dummy/config/initializers/validates_timeliness.rb +42 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/db/migrate/20180916202025_create_forms.form_core.rb +1 -0
- data/spec/dummy/db/migrate/20180916202122_create_choices.rb +12 -0
- data/spec/dummy/db/migrate/20180916202123_add_position_to_choices.rb +9 -0
- data/spec/dummy/db/schema.rb +19 -5
- data/spec/dummy/lib/monkey_patches/big_decimal.rb +7 -3
- data/spec/dummy/lib/monkey_patches/date.rb +12 -0
- data/spec/dummy/lib/monkey_patches/time.rb +12 -0
- data/spec/dummy/mruby/engine.gembox +1 -0
- data/spec/dummy/mruby/lib/core_ext.rb +64 -2
- data/spec/dummy/mruby/lib/input.rb +16 -4
- data/spec/dummy/mruby/lib/io.rb +4 -3
- data/spec/dummy/mruby/lib/output.rb +2 -28
- data/spec/dummy/mruby/lib/script_kernel.rb +8 -7
- data/spec/script_core_spec.rb +2 -2
- data/tests/googletest/.clang-format +4 -0
- data/tests/googletest/.gitignore +82 -0
- data/tests/googletest/.travis.yml +68 -29
- data/tests/googletest/BUILD.bazel +179 -0
- data/tests/googletest/CMakeLists.txt +21 -4
- data/tests/googletest/CONTRIBUTING.md +161 -0
- data/tests/googletest/LICENSE +28 -0
- data/tests/googletest/Makefile.am +12 -0
- data/tests/googletest/README.md +28 -41
- data/tests/googletest/WORKSPACE +10 -0
- data/tests/googletest/appveyor.yml +118 -35
- data/tests/googletest/ci/build-linux-autotools.sh +44 -0
- data/tests/googletest/ci/build-linux-bazel.sh +36 -0
- data/tests/googletest/ci/build-platformio.sh +2 -0
- data/tests/googletest/ci/env-linux.sh +41 -0
- data/tests/googletest/ci/env-osx.sh +47 -0
- data/tests/googletest/ci/get-nprocessors.sh +48 -0
- data/tests/googletest/ci/install-linux.sh +49 -0
- data/tests/googletest/ci/install-osx.sh +40 -0
- data/tests/googletest/ci/install-platformio.sh +5 -0
- data/tests/googletest/ci/log-config.sh +51 -0
- data/tests/googletest/ci/travis.sh +44 -0
- data/tests/googletest/configure.ac +16 -0
- data/tests/googletest/googlemock/CMakeLists.txt +78 -55
- data/tests/googletest/googlemock/Makefile.am +6 -8
- data/tests/googletest/googlemock/README.md +33 -73
- data/tests/googletest/googlemock/cmake/gmock.pc.in +11 -0
- data/tests/googletest/googlemock/cmake/gmock_main.pc.in +11 -0
- data/tests/googletest/googlemock/configure.ac +6 -18
- data/tests/googletest/googlemock/docs/CheatSheet.md +126 -99
- data/tests/googletest/googlemock/docs/CookBook.md +271 -286
- data/tests/googletest/googlemock/docs/DesignDoc.md +29 -27
- data/tests/googletest/googlemock/docs/Documentation.md +7 -4
- data/tests/googletest/googlemock/docs/ForDummies.md +41 -33
- data/tests/googletest/googlemock/docs/FrequentlyAskedQuestions.md +28 -29
- data/tests/googletest/googlemock/include/gmock/gmock-actions.h +232 -240
- data/tests/googletest/googlemock/include/gmock/gmock-cardinalities.h +12 -6
- data/tests/googletest/googlemock/include/gmock/gmock-function-mocker.h +218 -0
- data/tests/googletest/googlemock/include/gmock/gmock-generated-actions.h +304 -796
- data/tests/googletest/googlemock/include/gmock/gmock-generated-actions.h.pump +18 -184
- data/tests/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h +330 -673
- data/tests/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +77 -141
- data/tests/googletest/googlemock/include/gmock/gmock-generated-matchers.h +293 -1372
- data/tests/googletest/googlemock/include/gmock/gmock-generated-matchers.h.pump +22 -345
- data/tests/googletest/googlemock/include/gmock/gmock-matchers.h +1382 -1218
- data/tests/googletest/googlemock/include/gmock/gmock-more-actions.h +12 -96
- data/tests/googletest/googlemock/include/gmock/gmock-more-matchers.h +39 -5
- data/tests/googletest/googlemock/include/gmock/gmock-nice-strict.h +215 -0
- data/tests/googletest/googlemock/include/gmock/gmock-spec-builders.h +362 -228
- data/tests/googletest/googlemock/include/gmock/gmock.h +10 -3
- data/tests/googletest/googlemock/include/gmock/internal/custom/README.md +16 -0
- data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +2 -0
- data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +3 -1
- data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +5 -8
- data/tests/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +3 -10
- data/tests/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +114 -54
- data/tests/googletest/googlemock/include/gmock/internal/gmock-port.h +13 -17
- data/tests/googletest/googlemock/include/gmock/internal/gmock-pp.h +317 -0
- data/tests/googletest/googlemock/make/Makefile +23 -7
- data/tests/googletest/googlemock/msvc/2010/gmock.sln +14 -0
- data/tests/googletest/googlemock/msvc/2010/gmock.vcxproj +69 -6
- data/tests/googletest/googlemock/msvc/2010/gmock_config.props +2 -2
- data/tests/googletest/googlemock/msvc/2010/gmock_main.vcxproj +69 -6
- data/tests/googletest/googlemock/msvc/2010/gmock_test.vcxproj +83 -8
- data/tests/googletest/googlemock/msvc/2015/gmock.sln +14 -0
- data/tests/googletest/googlemock/msvc/2015/gmock.vcxproj +63 -2
- data/tests/googletest/googlemock/msvc/2015/gmock_main.vcxproj +63 -2
- data/tests/googletest/googlemock/msvc/2015/gmock_test.vcxproj +76 -3
- data/tests/googletest/googlemock/scripts/fuse_gmock_files.py +1 -1
- data/tests/googletest/googlemock/scripts/generator/README +4 -5
- data/tests/googletest/googlemock/scripts/generator/cpp/ast.py +6 -3
- data/tests/googletest/googlemock/scripts/generator/cpp/gmock_class_test.py +18 -0
- data/tests/googletest/googlemock/scripts/upload.py +4 -4
- data/tests/googletest/googlemock/src/gmock-all.cc +1 -2
- data/tests/googletest/googlemock/src/gmock-cardinalities.cc +7 -8
- data/tests/googletest/googlemock/src/gmock-internal-utils.cc +38 -12
- data/tests/googletest/googlemock/src/gmock-matchers.cc +127 -163
- data/tests/googletest/googlemock/src/gmock-spec-builders.cc +150 -86
- data/tests/googletest/googlemock/src/gmock.cc +41 -11
- data/tests/googletest/googlemock/src/gmock_main.cc +14 -3
- data/tests/googletest/googlemock/test/BUILD.bazel +106 -0
- data/tests/googletest/googlemock/test/gmock-actions_test.cc +370 -328
- data/tests/googletest/googlemock/test/gmock-cardinalities_test.cc +5 -6
- data/tests/googletest/googlemock/test/gmock-function-mocker_nc.cc +16 -0
- data/tests/googletest/googlemock/test/gmock-function-mocker_nc_test.py +43 -0
- data/tests/googletest/googlemock/test/gmock-function-mocker_test.cc +660 -0
- data/tests/googletest/googlemock/test/gmock-generated-actions_test.cc +137 -301
- data/tests/googletest/googlemock/test/gmock-generated-function-mockers_test.cc +80 -43
- data/tests/googletest/googlemock/test/gmock-generated-matchers_test.cc +239 -201
- data/tests/googletest/googlemock/test/gmock-internal-utils_test.cc +126 -68
- data/tests/googletest/googlemock/test/gmock-matchers_test.cc +1811 -674
- data/tests/googletest/googlemock/test/gmock-more-actions_test.cc +162 -171
- data/tests/googletest/googlemock/test/gmock-nice-strict_test.cc +121 -45
- data/tests/googletest/googlemock/test/gmock-port_test.cc +1 -2
- data/tests/googletest/googlemock/test/gmock-pp-string_test.cc +206 -0
- data/tests/googletest/googlemock/test/gmock-pp_test.cc +73 -0
- data/tests/googletest/googlemock/test/gmock-spec-builders_test.cc +152 -23
- data/tests/googletest/googlemock/test/gmock_all_test.cc +1 -3
- data/tests/googletest/googlemock/test/gmock_ex_test.cc +4 -5
- data/tests/googletest/googlemock/test/gmock_leak_test.py +0 -4
- data/tests/googletest/googlemock/test/gmock_leak_test_.cc +1 -2
- data/tests/googletest/googlemock/test/gmock_link2_test.cc +2 -3
- data/tests/googletest/googlemock/test/gmock_link_test.cc +2 -3
- data/tests/googletest/googlemock/test/gmock_link_test.h +45 -24
- data/tests/googletest/googlemock/test/gmock_output_test.py +10 -9
- data/tests/googletest/googlemock/test/gmock_output_test_.cc +21 -3
- data/tests/googletest/googlemock/test/gmock_output_test_golden.txt +8 -1
- data/tests/googletest/googlemock/test/gmock_stress_test.cc +7 -89
- data/tests/googletest/googlemock/test/gmock_test.cc +57 -96
- data/tests/googletest/googlemock/test/gmock_test_utils.py +5 -9
- data/tests/googletest/googletest/CMakeLists.txt +122 -83
- data/tests/googletest/googletest/Makefile.am +103 -75
- data/tests/googletest/googletest/README.md +236 -189
- data/tests/googletest/googletest/cmake/Config.cmake.in +9 -0
- data/tests/googletest/googletest/cmake/gtest.pc.in +10 -0
- data/tests/googletest/googletest/cmake/gtest_main.pc.in +11 -0
- data/tests/googletest/googletest/cmake/internal_utils.cmake +158 -58
- data/tests/googletest/googletest/cmake/libgtest.la.in +21 -0
- data/tests/googletest/googletest/configure.ac +2 -2
- data/tests/googletest/googletest/docs/Pkgconfig.md +146 -0
- data/tests/googletest/googletest/docs/PumpManual.md +5 -5
- data/tests/googletest/googletest/docs/XcodeGuide.md +9 -9
- data/tests/googletest/googletest/docs/advanced.md +2523 -0
- data/tests/googletest/googletest/docs/faq.md +770 -0
- data/tests/googletest/googletest/docs/primer.md +564 -0
- data/tests/googletest/googletest/docs/samples.md +22 -0
- data/tests/googletest/googletest/include/gtest/gtest-death-test.h +60 -11
- data/tests/googletest/googletest/include/gtest/gtest-matchers.h +741 -0
- data/tests/googletest/googletest/include/gtest/gtest-message.h +12 -44
- data/tests/googletest/googletest/include/gtest/gtest-param-test.h +139 -1080
- data/tests/googletest/googletest/include/gtest/gtest-printers.h +202 -268
- data/tests/googletest/googletest/include/gtest/gtest-spi.h +13 -7
- data/tests/googletest/googletest/include/gtest/gtest-test-part.h +21 -16
- data/tests/googletest/googletest/include/gtest/gtest-typed-test.h +157 -84
- data/tests/googletest/googletest/include/gtest/gtest.h +494 -277
- data/tests/googletest/googletest/include/gtest/gtest_pred_impl.h +41 -40
- data/tests/googletest/googletest/include/gtest/gtest_prod.h +10 -7
- data/tests/googletest/googletest/include/gtest/internal/custom/README.md +56 -0
- data/tests/googletest/googletest/include/gtest/internal/custom/gtest-port.h +1 -33
- data/tests/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +2 -2
- data/tests/googletest/googletest/include/gtest/internal/custom/gtest.h +1 -5
- data/tests/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +80 -95
- data/tests/googletest/googletest/include/gtest/internal/gtest-filepath.h +8 -3
- data/tests/googletest/googletest/include/gtest/internal/gtest-internal.h +415 -231
- data/tests/googletest/googletest/include/gtest/internal/gtest-param-util.h +323 -174
- data/tests/googletest/googletest/include/gtest/internal/gtest-port-arch.h +19 -5
- data/tests/googletest/googletest/include/gtest/internal/gtest-port.h +289 -549
- data/tests/googletest/googletest/include/gtest/internal/gtest-string.h +4 -4
- data/tests/googletest/googletest/include/gtest/internal/gtest-type-util.h +23 -7
- data/tests/googletest/googletest/include/gtest/internal/gtest-type-util.h.pump +24 -7
- data/tests/googletest/googletest/make/Makefile +13 -7
- data/tests/googletest/googletest/msvc/2010/gtest-md.sln +55 -0
- data/tests/googletest/googletest/msvc/2010/gtest-md.vcxproj +149 -0
- data/tests/googletest/googletest/msvc/2010/gtest-md.vcxproj.filters +18 -0
- data/tests/googletest/googletest/msvc/2010/gtest.sln +55 -0
- data/tests/googletest/googletest/msvc/2010/gtest.vcxproj +149 -0
- data/tests/googletest/googletest/msvc/2010/gtest.vcxproj.filters +18 -0
- data/tests/googletest/googletest/msvc/2010/gtest_main-md.vcxproj +154 -0
- data/tests/googletest/googletest/msvc/2010/gtest_main-md.vcxproj.filters +18 -0
- data/tests/googletest/googletest/msvc/2010/gtest_main.vcxproj +162 -0
- data/tests/googletest/googletest/msvc/2010/gtest_main.vcxproj.filters +18 -0
- data/tests/googletest/googletest/msvc/2010/gtest_prod_test-md.vcxproj +199 -0
- data/tests/googletest/googletest/msvc/2010/gtest_prod_test-md.vcxproj.filters +26 -0
- data/tests/googletest/googletest/msvc/2010/gtest_prod_test.vcxproj +191 -0
- data/tests/googletest/googletest/msvc/2010/gtest_prod_test.vcxproj.filters +26 -0
- data/tests/googletest/googletest/msvc/2010/gtest_unittest-md.vcxproj +188 -0
- data/tests/googletest/googletest/msvc/2010/gtest_unittest-md.vcxproj.filters +18 -0
- data/tests/googletest/googletest/msvc/2010/gtest_unittest.vcxproj +180 -0
- data/tests/googletest/googletest/msvc/2010/gtest_unittest.vcxproj.filters +18 -0
- data/tests/googletest/googletest/samples/prime_tables.h +13 -10
- data/tests/googletest/googletest/samples/sample1.cc +1 -3
- data/tests/googletest/googletest/samples/sample1.h +0 -2
- data/tests/googletest/googletest/samples/sample10_unittest.cc +4 -9
- data/tests/googletest/googletest/samples/sample1_unittest.cc +2 -4
- data/tests/googletest/googletest/samples/sample2.cc +1 -3
- data/tests/googletest/googletest/samples/sample2.h +4 -8
- data/tests/googletest/googletest/samples/sample2_unittest.cc +5 -7
- data/tests/googletest/googletest/samples/sample3-inl.h +9 -9
- data/tests/googletest/googletest/samples/sample3_unittest.cc +13 -15
- data/tests/googletest/googletest/samples/sample4.cc +10 -2
- data/tests/googletest/googletest/samples/sample4.h +3 -3
- data/tests/googletest/googletest/samples/sample4_unittest.cc +11 -3
- data/tests/googletest/googletest/samples/sample5_unittest.cc +11 -14
- data/tests/googletest/googletest/samples/sample6_unittest.cc +12 -12
- data/tests/googletest/googletest/samples/sample7_unittest.cc +14 -27
- data/tests/googletest/googletest/samples/sample8_unittest.cc +20 -39
- data/tests/googletest/googletest/samples/sample9_unittest.cc +6 -10
- data/tests/googletest/googletest/scripts/fuse_gtest_files.py +1 -1
- data/tests/googletest/googletest/scripts/gen_gtest_pred_impl.py +10 -10
- data/tests/googletest/googletest/scripts/upload.py +5 -5
- data/tests/googletest/googletest/src/gtest-all.cc +3 -3
- data/tests/googletest/googletest/src/gtest-death-test.cc +417 -121
- data/tests/googletest/googletest/src/gtest-filepath.cc +15 -23
- data/tests/googletest/googletest/src/gtest-internal-inl.h +145 -122
- data/tests/googletest/googletest/src/gtest-matchers.cc +97 -0
- data/tests/googletest/googletest/src/gtest-port.cc +263 -129
- data/tests/googletest/googletest/src/gtest-printers.cc +92 -24
- data/tests/googletest/googletest/src/gtest-test-part.cc +13 -19
- data/tests/googletest/googletest/src/gtest-typed-test.cc +5 -5
- data/tests/googletest/googletest/src/gtest.cc +1469 -742
- data/tests/googletest/googletest/src/gtest_main.cc +12 -3
- data/tests/googletest/googletest/test/BUILD.bazel +518 -0
- data/tests/googletest/googletest/test/googletest-break-on-failure-unittest.py +208 -0
- data/tests/googletest/googletest/test/googletest-break-on-failure-unittest_.cc +86 -0
- data/tests/googletest/googletest/test/googletest-catch-exceptions-test.py +231 -0
- data/tests/googletest/googletest/test/googletest-catch-exceptions-test_.cc +293 -0
- data/tests/googletest/googletest/test/googletest-color-test.py +127 -0
- data/tests/googletest/googletest/test/googletest-color-test_.cc +62 -0
- data/tests/googletest/googletest/test/googletest-death-test-test.cc +1458 -0
- data/tests/googletest/googletest/test/googletest-death-test_ex_test.cc +92 -0
- data/tests/googletest/googletest/test/googletest-env-var-test.py +117 -0
- data/tests/googletest/googletest/test/googletest-env-var-test_.cc +122 -0
- data/tests/googletest/googletest/test/googletest-filepath-test.cc +649 -0
- data/tests/googletest/googletest/test/googletest-filter-unittest.py +639 -0
- data/tests/googletest/googletest/test/googletest-filter-unittest_.cc +137 -0
- data/tests/googletest/googletest/test/googletest-json-outfiles-test.py +185 -0
- data/tests/googletest/googletest/test/googletest-json-output-unittest.py +758 -0
- data/tests/googletest/googletest/test/googletest-list-tests-unittest.py +205 -0
- data/tests/googletest/googletest/test/googletest-list-tests-unittest_.cc +156 -0
- data/tests/googletest/googletest/test/googletest-listener-test.cc +407 -0
- data/tests/googletest/googletest/test/googletest-message-test.cc +158 -0
- data/tests/googletest/googletest/test/googletest-options-test.cc +216 -0
- data/tests/googletest/googletest/test/googletest-output-test-golden-lin.txt +1128 -0
- data/tests/googletest/googletest/test/googletest-output-test.py +346 -0
- data/tests/googletest/googletest/test/googletest-output-test_.cc +1145 -0
- data/tests/googletest/googletest/test/googletest-param-test-invalid-name1-test.py +63 -0
- data/tests/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc +50 -0
- data/tests/googletest/googletest/test/googletest-param-test-invalid-name2-test.py +62 -0
- data/tests/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc +55 -0
- data/tests/googletest/googletest/test/googletest-param-test-test.cc +1055 -0
- data/tests/googletest/googletest/test/googletest-param-test-test.h +51 -0
- data/tests/googletest/googletest/test/googletest-param-test2-test.cc +61 -0
- data/tests/googletest/googletest/test/googletest-port-test.cc +1290 -0
- data/tests/googletest/googletest/test/googletest-printers-test.cc +1561 -0
- data/tests/googletest/googletest/test/googletest-shuffle-test.py +323 -0
- data/tests/googletest/googletest/test/googletest-shuffle-test_.cc +101 -0
- data/tests/googletest/googletest/test/googletest-test-part-test.cc +230 -0
- data/tests/googletest/googletest/test/googletest-test2_test.cc +61 -0
- data/tests/googletest/googletest/test/googletest-throw-on-failure-test.py +168 -0
- data/tests/googletest/googletest/test/googletest-throw-on-failure-test_.cc +71 -0
- data/tests/googletest/googletest/test/googletest-uninitialized-test.py +67 -0
- data/tests/googletest/googletest/test/googletest-uninitialized-test_.cc +42 -0
- data/tests/googletest/googletest/test/gtest-typed-test2_test.cc +3 -4
- data/tests/googletest/googletest/test/gtest-typed-test_test.cc +144 -63
- data/tests/googletest/googletest/test/gtest-typed-test_test.h +4 -5
- data/tests/googletest/googletest/test/gtest-unittest-api_test.cc +122 -123
- data/tests/googletest/googletest/test/gtest_all_test.cc +10 -11
- data/tests/googletest/googletest/test/gtest_assert_by_exception_test.cc +116 -0
- data/tests/googletest/googletest/test/gtest_environment_test.cc +3 -7
- data/tests/googletest/googletest/test/gtest_help_test.py +1 -3
- data/tests/googletest/googletest/test/gtest_help_test_.cc +1 -2
- data/tests/googletest/googletest/test/gtest_json_test_utils.py +60 -0
- data/tests/googletest/googletest/test/gtest_list_output_unittest.py +141 -0
- data/tests/googletest/googletest/test/gtest_list_output_unittest_.cc +51 -0
- data/tests/googletest/googletest/test/gtest_main_unittest.cc +3 -4
- data/tests/googletest/googletest/test/gtest_no_test_unittest.cc +0 -2
- data/tests/googletest/googletest/test/gtest_pred_impl_unittest.cc +11 -11
- data/tests/googletest/googletest/test/gtest_premature_exit_test.cc +3 -4
- data/tests/googletest/googletest/test/gtest_prod_test.cc +3 -4
- data/tests/googletest/googletest/test/gtest_repeat_test.cc +8 -28
- data/tests/googletest/googletest/test/gtest_skip_environment_check_output_test.py +54 -0
- data/tests/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc +49 -0
- data/tests/googletest/googletest/test/gtest_skip_test.cc +55 -0
- data/tests/googletest/googletest/test/gtest_sole_header_test.cc +1 -2
- data/tests/googletest/googletest/test/gtest_stress_test.cc +3 -11
- data/tests/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc +89 -0
- data/tests/googletest/googletest/test/gtest_test_utils.py +15 -22
- data/tests/googletest/googletest/test/gtest_testbridge_test.py +63 -0
- data/tests/googletest/googletest/test/gtest_testbridge_test_.cc +43 -0
- data/tests/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc +2 -4
- data/tests/googletest/googletest/test/gtest_unittest.cc +770 -924
- data/tests/googletest/googletest/test/gtest_xml_outfile1_test_.cc +2 -8
- data/tests/googletest/googletest/test/gtest_xml_outfile2_test_.cc +2 -8
- data/tests/googletest/googletest/test/gtest_xml_outfiles_test.py +14 -11
- data/tests/googletest/googletest/test/gtest_xml_output_unittest.py +132 -51
- data/tests/googletest/googletest/test/gtest_xml_output_unittest_.cc +21 -14
- data/tests/googletest/googletest/test/gtest_xml_test_utils.py +24 -22
- data/tests/googletest/googletest/test/production.cc +2 -3
- data/tests/googletest/googletest/test/production.h +2 -3
- data/tests/googletest/googletest/xcode/Config/DebugProject.xcconfig +1 -1
- data/tests/googletest/googletest/xcode/Config/FrameworkTarget.xcconfig +1 -1
- data/tests/googletest/googletest/xcode/Config/General.xcconfig +3 -3
- data/tests/googletest/googletest/xcode/Config/ReleaseProject.xcconfig +1 -1
- data/tests/googletest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +1 -1
- data/tests/googletest/googletest/xcode/Scripts/versiongenerate.py +4 -4
- data/tests/googletest/googletest/xcode/gtest.xcodeproj/project.pbxproj +51 -16
- data/tests/googletest/library.json +59 -0
- data/tests/googletest/platformio.ini +31 -0
- metadata +1391 -137
- data/ext/enterprise_script_service/libseccomp/README +0 -65
- data/ext/enterprise_script_service/libseccomp/SUBMITTING_PATCHES +0 -123
- data/ext/enterprise_script_service/mruby/MITL +0 -20
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +0 -30
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/gc_filedes.sh +0 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/init_mrbtest.c +0 -38
- data/ext/enterprise_script_service/mruby/mrblib/float.rb +0 -9
- data/ext/enterprise_script_service/mruby/src/ext/.gitkeep +0 -0
- data/ext/enterprise_script_service/mruby/test/report.rb +0 -4
- data/spec/dummy/app/models/fields/options/boolean_field.rb +0 -6
- data/spec/dummy/app/models/fields/options/multiple_nested_form_field.rb +0 -6
- data/spec/dummy/app/models/fields/options/nested_form_field.rb +0 -6
- data/tests/googletest/googlemock/CHANGES +0 -126
- data/tests/googletest/googlemock/docs/DevGuide.md +0 -132
- data/tests/googletest/googlemock/docs/v1_5/CheatSheet.md +0 -525
- data/tests/googletest/googlemock/docs/v1_5/CookBook.md +0 -3250
- data/tests/googletest/googlemock/docs/v1_5/Documentation.md +0 -11
- data/tests/googletest/googlemock/docs/v1_5/ForDummies.md +0 -439
- data/tests/googletest/googlemock/docs/v1_5/FrequentlyAskedQuestions.md +0 -624
- data/tests/googletest/googlemock/docs/v1_6/CheatSheet.md +0 -534
- data/tests/googletest/googlemock/docs/v1_6/CookBook.md +0 -3342
- data/tests/googletest/googlemock/docs/v1_6/Documentation.md +0 -12
- data/tests/googletest/googlemock/docs/v1_6/ForDummies.md +0 -439
- data/tests/googletest/googlemock/docs/v1_6/FrequentlyAskedQuestions.md +0 -628
- data/tests/googletest/googlemock/docs/v1_7/CheatSheet.md +0 -556
- data/tests/googletest/googlemock/docs/v1_7/CookBook.md +0 -3432
- data/tests/googletest/googlemock/docs/v1_7/Documentation.md +0 -12
- data/tests/googletest/googlemock/docs/v1_7/ForDummies.md +0 -439
- data/tests/googletest/googlemock/docs/v1_7/FrequentlyAskedQuestions.md +0 -628
- data/tests/googletest/googlemock/include/gmock/gmock-generated-nice-strict.h +0 -397
- data/tests/googletest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +0 -161
- data/tests/googletest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +0 -279
- data/tests/googletest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +0 -136
- data/tests/googletest/googlemock/test/gmock-generated-internal-utils_test.cc +0 -127
- data/tests/googletest/googletest/.gitignore +0 -2
- data/tests/googletest/googletest/CHANGES +0 -157
- data/tests/googletest/googletest/build-aux/.keep +0 -0
- data/tests/googletest/googletest/docs/AdvancedGuide.md +0 -2182
- data/tests/googletest/googletest/docs/DevGuide.md +0 -126
- data/tests/googletest/googletest/docs/Documentation.md +0 -14
- data/tests/googletest/googletest/docs/FAQ.md +0 -1087
- data/tests/googletest/googletest/docs/Primer.md +0 -502
- data/tests/googletest/googletest/docs/Samples.md +0 -14
- data/tests/googletest/googletest/docs/V1_5_AdvancedGuide.md +0 -2096
- data/tests/googletest/googletest/docs/V1_5_Documentation.md +0 -12
- data/tests/googletest/googletest/docs/V1_5_FAQ.md +0 -886
- data/tests/googletest/googletest/docs/V1_5_Primer.md +0 -497
- data/tests/googletest/googletest/docs/V1_5_PumpManual.md +0 -177
- data/tests/googletest/googletest/docs/V1_5_XcodeGuide.md +0 -93
- data/tests/googletest/googletest/docs/V1_6_AdvancedGuide.md +0 -2178
- data/tests/googletest/googletest/docs/V1_6_Documentation.md +0 -14
- data/tests/googletest/googletest/docs/V1_6_FAQ.md +0 -1038
- data/tests/googletest/googletest/docs/V1_6_Primer.md +0 -501
- data/tests/googletest/googletest/docs/V1_6_PumpManual.md +0 -177
- data/tests/googletest/googletest/docs/V1_6_Samples.md +0 -14
- data/tests/googletest/googletest/docs/V1_6_XcodeGuide.md +0 -93
- data/tests/googletest/googletest/docs/V1_7_AdvancedGuide.md +0 -2181
- data/tests/googletest/googletest/docs/V1_7_Documentation.md +0 -14
- data/tests/googletest/googletest/docs/V1_7_FAQ.md +0 -1082
- data/tests/googletest/googletest/docs/V1_7_Primer.md +0 -501
- data/tests/googletest/googletest/docs/V1_7_PumpManual.md +0 -177
- data/tests/googletest/googletest/docs/V1_7_Samples.md +0 -14
- data/tests/googletest/googletest/docs/V1_7_XcodeGuide.md +0 -93
- data/tests/googletest/googletest/include/gtest/gtest-param-test.h.pump +0 -510
- data/tests/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
- data/tests/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
- data/tests/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
- data/tests/googletest/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
- data/tests/googletest/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
- data/tests/googletest/googletest/msvc/gtest-md.sln +0 -45
- data/tests/googletest/googletest/msvc/gtest-md.vcproj +0 -126
- data/tests/googletest/googletest/msvc/gtest.sln +0 -45
- data/tests/googletest/googletest/msvc/gtest.vcproj +0 -126
- data/tests/googletest/googletest/msvc/gtest_main-md.vcproj +0 -129
- data/tests/googletest/googletest/msvc/gtest_main.vcproj +0 -129
- data/tests/googletest/googletest/msvc/gtest_prod_test-md.vcproj +0 -164
- data/tests/googletest/googletest/msvc/gtest_prod_test.vcproj +0 -164
- data/tests/googletest/googletest/msvc/gtest_unittest-md.vcproj +0 -147
- data/tests/googletest/googletest/msvc/gtest_unittest.vcproj +0 -147
- data/tests/googletest/googletest/test/gtest-death-test_ex_test.cc +0 -93
- data/tests/googletest/googletest/test/gtest-death-test_test.cc +0 -1427
- data/tests/googletest/googletest/test/gtest-filepath_test.cc +0 -662
- data/tests/googletest/googletest/test/gtest-linked_ptr_test.cc +0 -154
- data/tests/googletest/googletest/test/gtest-listener_test.cc +0 -311
- data/tests/googletest/googletest/test/gtest-message_test.cc +0 -159
- data/tests/googletest/googletest/test/gtest-options_test.cc +0 -215
- data/tests/googletest/googletest/test/gtest-param-test2_test.cc +0 -65
- data/tests/googletest/googletest/test/gtest-param-test_test.cc +0 -1055
- data/tests/googletest/googletest/test/gtest-param-test_test.h +0 -57
- data/tests/googletest/googletest/test/gtest-port_test.cc +0 -1304
- data/tests/googletest/googletest/test/gtest-printers_test.cc +0 -1635
- data/tests/googletest/googletest/test/gtest-test-part_test.cc +0 -208
- data/tests/googletest/googletest/test/gtest-tuple_test.cc +0 -320
- data/tests/googletest/googletest/test/gtest_break_on_failure_unittest.py +0 -212
- data/tests/googletest/googletest/test/gtest_break_on_failure_unittest_.cc +0 -88
- data/tests/googletest/googletest/test/gtest_catch_exceptions_test.py +0 -237
- data/tests/googletest/googletest/test/gtest_catch_exceptions_test_.cc +0 -311
- data/tests/googletest/googletest/test/gtest_color_test.py +0 -130
- data/tests/googletest/googletest/test/gtest_color_test_.cc +0 -71
- data/tests/googletest/googletest/test/gtest_env_var_test.py +0 -117
- data/tests/googletest/googletest/test/gtest_env_var_test_.cc +0 -126
- data/tests/googletest/googletest/test/gtest_filter_unittest.py +0 -636
- data/tests/googletest/googletest/test/gtest_filter_unittest_.cc +0 -140
- data/tests/googletest/googletest/test/gtest_list_tests_unittest.py +0 -207
- data/tests/googletest/googletest/test/gtest_list_tests_unittest_.cc +0 -157
- data/tests/googletest/googletest/test/gtest_output_test.py +0 -340
- data/tests/googletest/googletest/test/gtest_output_test_.cc +0 -1062
- data/tests/googletest/googletest/test/gtest_output_test_golden_lin.txt +0 -743
- data/tests/googletest/googletest/test/gtest_shuffle_test.py +0 -325
- data/tests/googletest/googletest/test/gtest_shuffle_test_.cc +0 -103
- data/tests/googletest/googletest/test/gtest_throw_on_failure_test.py +0 -171
- data/tests/googletest/googletest/test/gtest_throw_on_failure_test_.cc +0 -72
- data/tests/googletest/googletest/test/gtest_uninitialized_test.py +0 -70
- data/tests/googletest/googletest/test/gtest_uninitialized_test_.cc +0 -43
- 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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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 ==
|
|
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 ==
|
|
349
|
+
if (s == nullptr) {
|
|
339
350
|
*os << "NULL";
|
|
340
351
|
} else {
|
|
341
352
|
*os << ImplicitCast_<const void*>(s) << " pointing to ";
|
|
342
|
-
PrintCharsAsStringTo(s,
|
|
353
|
+
PrintCharsAsStringTo(s, wcslen(s), os);
|
|
343
354
|
}
|
|
344
355
|
}
|
|
345
356
|
#endif // wchar_t is native
|
|
346
357
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
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
|
-
|
|
355
|
-
|
|
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
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
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
|
-
//
|
|
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 ==
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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 !=
|
|
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*
|
|
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
|
|
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
|
-
//
|
|
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
|
|
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
|
|
163
|
-
// test
|
|
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
|
|
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
|
|
171
|
-
static const char
|
|
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
|
-
|
|
194
|
-
|
|
195
|
-
if (testbridge_test_only !=
|
|
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
|
-
|
|
242
|
-
"
|
|
243
|
-
"
|
|
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
|
-
|
|
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
|
|
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
|
|
336
|
-
|
|
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
|
|
345
|
-
static bool
|
|
346
|
-
return
|
|
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
|
|
350
|
-
static bool
|
|
351
|
-
return
|
|
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
|
|
384
|
+
// Returns true iff test_suite contains at least one test that should
|
|
355
385
|
// run.
|
|
356
|
-
static bool
|
|
357
|
-
return
|
|
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<
|
|
414
|
+
static ::std::vector<std::string> g_argvs;
|
|
388
415
|
|
|
389
|
-
|
|
416
|
+
::std::vector<std::string> GetArgvs() {
|
|
390
417
|
#if defined(GTEST_CUSTOM_GET_ARGVS_)
|
|
391
|
-
|
|
392
|
-
|
|
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 ==
|
|
420
|
-
|
|
421
|
-
|
|
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
|
-
|
|
429
|
-
|
|
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 ==
|
|
433
|
-
return internal::FilePath::
|
|
462
|
+
if (colon == nullptr)
|
|
463
|
+
return internal::FilePath::MakeFileName(
|
|
434
464
|
internal::FilePath(
|
|
435
465
|
UnitTest::GetInstance()->original_working_dir()),
|
|
436
|
-
internal::FilePath(kDefaultOutputFile)
|
|
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 ==
|
|
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
|
|
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
|
|
503
|
-
const std::string
|
|
504
|
-
const std::string& full_name =
|
|
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 ==
|
|
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
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
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()) ==
|
|
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::
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
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
|
|
730
|
-
int UnitTestImpl::
|
|
731
|
-
return CountIf(
|
|
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
|
|
735
|
-
int UnitTestImpl::
|
|
736
|
-
return CountIf(
|
|
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
|
|
740
|
-
int UnitTestImpl::
|
|
741
|
-
return static_cast<int>(
|
|
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
|
|
768
|
+
// Gets the number of all test suites that contain at least one test
|
|
745
769
|
// that should run.
|
|
746
|
-
int UnitTestImpl::
|
|
747
|
-
return CountIf(
|
|
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
|
|
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
|
|
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
|
|
763
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
834
|
-
// SystemTimeToFileTime()
|
|
835
|
-
GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
|
|
860
|
+
GTEST_DISABLE_MSC_DEPRECATED_PUSH_()
|
|
836
861
|
_ftime64(&now);
|
|
837
|
-
|
|
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,
|
|
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
|
|
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
|
|
877
|
-
const int ansi_length =
|
|
878
|
-
|
|
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
|
-
|
|
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 (
|
|
918
|
+
if (lhs == nullptr) return rhs == nullptr;
|
|
896
919
|
|
|
897
|
-
if (
|
|
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
|
|
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
|
|
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() !=
|
|
990
|
-
|
|
991
|
-
|
|
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() !=
|
|
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
|
|
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 << "
|
|
1330
|
+
msg << "Expected equality of these values:";
|
|
1331
|
+
msg << "\n " << lhs_expression;
|
|
1319
1332
|
if (lhs_value != lhs_expression) {
|
|
1320
|
-
msg << "\n
|
|
1333
|
+
msg << "\n Which is: " << lhs_value;
|
|
1321
1334
|
}
|
|
1322
|
-
msg << "\
|
|
1335
|
+
msg << "\n " << rhs_expression;
|
|
1323
1336
|
if (rhs_value != rhs_expression) {
|
|
1324
|
-
msg << "\n
|
|
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 ==
|
|
1559
|
-
return needle == haystack;
|
|
1569
|
+
if (needle == nullptr || haystack == nullptr) return needle == haystack;
|
|
1560
1570
|
|
|
1561
|
-
return strstr(haystack, needle) !=
|
|
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 ==
|
|
1566
|
-
return needle == haystack;
|
|
1575
|
+
if (needle == nullptr || haystack == nullptr) return needle == haystack;
|
|
1567
1576
|
|
|
1568
|
-
return wcsstr(haystack, needle) !=
|
|
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,
|
|
1691
|
+
0, // no source, we're asking system
|
|
1683
1692
|
hr, // the error
|
|
1684
|
-
0,
|
|
1693
|
+
0, // no line width restrictions
|
|
1685
1694
|
error_text, // output buffer
|
|
1686
|
-
kBufSize,
|
|
1687
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 ==
|
|
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 ==
|
|
1870
|
+
if (lhs == nullptr) return rhs == nullptr;
|
|
1862
1871
|
|
|
1863
|
-
if (rhs ==
|
|
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 ==
|
|
1907
|
-
|
|
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 ==
|
|
1934
|
+
if (lhs == nullptr) return rhs == nullptr;
|
|
1928
1935
|
|
|
1929
|
-
if (rhs ==
|
|
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
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
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(
|
|
2142
|
-
|
|
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
|
-
|
|
2257
|
-
-1,
|
|
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
|
-
"");
|
|
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
|
|
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
|
|
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
|
|
2306
|
+
const TestSuite* const test_suite = impl->current_test_suite();
|
|
2272
2307
|
|
|
2273
|
-
// Info about the first test in the current test
|
|
2274
|
-
const TestInfo* const first_test_info =
|
|
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
|
|
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
|
|
2303
|
-
<< "class, so mixing TEST_F and TEST in the same test
|
|
2304
|
-
<< "illegal. In test
|
|
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
|
|
2315
|
-
<< "class. However, in test
|
|
2316
|
-
<< this_test_info->
|
|
2317
|
-
<< "you defined test " << first_test_name
|
|
2318
|
-
<<
|
|
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
|
|
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 !=
|
|
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(
|
|
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
|
-
|
|
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&
|
|
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
|
-
:
|
|
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) :
|
|
2511
|
-
value_param_(a_value_param ? new std::string(a_value_param) :
|
|
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
|
-
//
|
|
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
|
|
2539
|
-
// tear_down_tc: pointer to the function that tears down the test
|
|
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*
|
|
2545
|
-
const char*
|
|
2546
|
-
|
|
2547
|
-
|
|
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(
|
|
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
|
-
|
|
2561
|
-
|
|
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
|
|
2566
|
-
<< "All tests in the same test
|
|
2567
|
-
<< "class. However, in test
|
|
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
|
|
2608
|
+
<< "test suites.";
|
|
2573
2609
|
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
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
|
|
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
|
|
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
|
|
2652
|
-
//
|
|
2653
|
-
|
|
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
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
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(
|
|
2705
|
+
impl->set_current_test_info(nullptr);
|
|
2672
2706
|
}
|
|
2673
2707
|
|
|
2674
|
-
// class
|
|
2708
|
+
// class TestSuite
|
|
2675
2709
|
|
|
2676
|
-
// Gets the number of successful tests in this test
|
|
2677
|
-
int
|
|
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
|
|
2682
|
-
int
|
|
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
|
|
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
|
|
2692
|
-
int
|
|
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
|
|
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
|
|
2702
|
-
int
|
|
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
|
|
2746
|
+
int TestSuite::total_test_count() const {
|
|
2708
2747
|
return static_cast<int>(test_info_list_.size());
|
|
2709
2748
|
}
|
|
2710
2749
|
|
|
2711
|
-
// Creates a
|
|
2750
|
+
// Creates a TestSuite with the given name.
|
|
2712
2751
|
//
|
|
2713
2752
|
// Arguments:
|
|
2714
2753
|
//
|
|
2715
|
-
// name: name of the test
|
|
2716
|
-
// a_type_param: the name of the test
|
|
2717
|
-
// this is not a typed or a type-parameterized test
|
|
2718
|
-
// set_up_tc: pointer to the function that sets up the test
|
|
2719
|
-
// tear_down_tc: pointer to the function that tears down the test
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
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) :
|
|
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
|
|
2732
|
-
|
|
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*
|
|
2777
|
+
const TestInfo* TestSuite::GetTestInfo(int i) const {
|
|
2740
2778
|
const int index = GetElementOr(test_indices_, i, -1);
|
|
2741
|
-
return index < 0 ?
|
|
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*
|
|
2784
|
+
TestInfo* TestSuite::GetMutableTestInfo(int i) {
|
|
2747
2785
|
const int index = GetElementOr(test_indices_, i, -1);
|
|
2748
|
-
return index < 0 ?
|
|
2786
|
+
return index < 0 ? nullptr : test_info_list_[index];
|
|
2749
2787
|
}
|
|
2750
2788
|
|
|
2751
|
-
// Adds a test to this test
|
|
2752
|
-
// destruction of the
|
|
2753
|
-
void
|
|
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
|
|
2759
|
-
void
|
|
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->
|
|
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, &
|
|
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, &
|
|
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
|
-
|
|
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
|
|
2787
|
-
void
|
|
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
|
|
2793
|
-
void
|
|
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
|
|
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
|
|
2822
|
-
static std::string
|
|
2823
|
-
return FormatCountableNoun(
|
|
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:
|
|
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 ||
|
|
2961
|
-
|
|
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 ||
|
|
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
|
-
|
|
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 --
|
|
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 !=
|
|
3089
|
+
if (type_param != nullptr || value_param != nullptr) {
|
|
3014
3090
|
printf(", where ");
|
|
3015
|
-
if (type_param !=
|
|
3091
|
+
if (type_param != nullptr) {
|
|
3016
3092
|
printf("%s = %s", kTypeParamLabel, type_param);
|
|
3017
|
-
if (value_param !=
|
|
3018
|
-
printf(" and ");
|
|
3093
|
+
if (value_param != nullptr) printf(" and ");
|
|
3019
3094
|
}
|
|
3020
|
-
if (value_param !=
|
|
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
|
|
3033
|
-
printf("%s.%s",
|
|
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
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
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
|
-
|
|
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
|
|
3174
|
+
void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestSuite& test_suite) {
|
|
3099
3175
|
const std::string counts =
|
|
3100
|
-
FormatCountableNoun(
|
|
3176
|
+
FormatCountableNoun(test_suite.test_to_run_count(), "test", "tests");
|
|
3101
3177
|
ColoredPrintf(COLOR_GREEN, "[----------] ");
|
|
3102
|
-
printf("%s from %s", counts.c_str(),
|
|
3103
|
-
if (
|
|
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,
|
|
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.
|
|
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
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
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.
|
|
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
|
|
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(
|
|
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
|
-
|
|
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.
|
|
3176
|
-
const
|
|
3177
|
-
if (!
|
|
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 <
|
|
3181
|
-
const TestInfo& test_info = *
|
|
3182
|
-
if (!test_info.should_run() || test_info.result()->
|
|
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",
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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*
|
|
3531
|
+
const char* test_suite_name,
|
|
3399
3532
|
const TestInfo& test_info);
|
|
3400
3533
|
|
|
3401
|
-
// Prints an XML representation of a
|
|
3402
|
-
static void
|
|
3403
|
-
|
|
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_.
|
|
3425
|
-
|
|
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 =
|
|
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
|
|
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 ==
|
|
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) !=
|
|
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 !=
|
|
3714
|
+
if (next_segment != nullptr) {
|
|
3595
3715
|
stream->write(
|
|
3596
3716
|
segment, static_cast<std::streamsize>(next_segment - segment));
|
|
3597
3717
|
*stream << "]]>]]><![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
|
-
|
|
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*
|
|
3745
|
+
const char* test_suite_name,
|
|
3627
3746
|
const TestInfo& test_info) {
|
|
3628
3747
|
const TestResult& result = *test_info.result();
|
|
3629
|
-
const std::string
|
|
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,
|
|
3755
|
+
OutputXmlAttribute(stream, kTestsuite, "name", test_info.name());
|
|
3633
3756
|
|
|
3634
|
-
if (test_info.value_param() !=
|
|
3635
|
-
OutputXmlAttribute(stream,
|
|
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() !=
|
|
3639
|
-
OutputXmlAttribute(stream,
|
|
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,
|
|
3773
|
+
OutputXmlAttribute(stream, kTestsuite, "status",
|
|
3643
3774
|
test_info.should_run() ? "run" : "notrun");
|
|
3644
|
-
OutputXmlAttribute(stream,
|
|
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,
|
|
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 =
|
|
3657
|
-
part.file_name(),
|
|
3658
|
-
|
|
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
|
|
3675
|
-
void XmlUnitTestResultPrinter::
|
|
3676
|
-
|
|
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",
|
|
3819
|
+
OutputXmlAttribute(stream, kTestsuite, "name", test_suite.name());
|
|
3680
3820
|
OutputXmlAttribute(stream, kTestsuite, "tests",
|
|
3681
|
-
StreamableToString(
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
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.
|
|
3733
|
-
if (unit_test.
|
|
3734
|
-
|
|
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 =
|
|
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 !=
|
|
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
|
-
//
|
|
4374
|
+
// class OsStackTraceGetter
|
|
3825
4375
|
|
|
3826
|
-
|
|
3827
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3848
|
-
|
|
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
|
-
|
|
3851
|
-
|
|
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 (
|
|
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_
|
|
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
|
|
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_(
|
|
3893
|
-
default_xml_generator_(
|
|
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_ =
|
|
4500
|
+
default_result_printer_ = nullptr;
|
|
3912
4501
|
else if (listener == default_xml_generator_)
|
|
3913
|
-
default_xml_generator_ =
|
|
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 !=
|
|
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 !=
|
|
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
|
|
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 //
|
|
4570
|
+
#endif // defined(__BORLANDC__)
|
|
3991
4571
|
}
|
|
3992
4572
|
|
|
3993
|
-
// Gets the number of successful test
|
|
3994
|
-
int UnitTest::
|
|
3995
|
-
return impl()->
|
|
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
|
|
3999
|
-
int UnitTest::
|
|
4000
|
-
return impl()->
|
|
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
|
|
4004
|
-
int UnitTest::
|
|
4005
|
-
return impl()->
|
|
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
|
|
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()->
|
|
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
|
|
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
|
|
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
|
|
4062
|
-
//
|
|
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
|
|
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
|
|
4074
|
-
//
|
|
4075
|
-
|
|
4076
|
-
return impl()->
|
|
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 ==
|
|
4097
|
-
return
|
|
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() !=
|
|
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
|
-
|
|
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
|
|
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:
|
|
4155
|
-
|
|
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
|
|
4172
|
-
// from
|
|
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
|
-
|
|
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
|
|
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
|
|
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 //
|
|
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
|
|
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_->
|
|
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
|
-
|
|
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::
|
|
4292
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
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_(
|
|
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),
|
|
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
|
|
4359
|
-
ForEach(
|
|
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
|
|
4369
|
-
// from
|
|
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_ !=
|
|
4986
|
+
if (current_test_info_ != nullptr) {
|
|
4377
4987
|
xml_element = "testcase";
|
|
4378
4988
|
test_result = &(current_test_info_->result_);
|
|
4379
|
-
} else if (
|
|
4989
|
+
} else if (current_test_suite_ != nullptr) {
|
|
4380
4990
|
xml_element = "testsuite";
|
|
4381
|
-
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() !=
|
|
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
|
-
|
|
4407
|
-
|
|
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
|
-
|
|
4424
|
-
|
|
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
|
|
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
|
-
//
|
|
4475
|
-
class
|
|
5092
|
+
// TestSuiteNameIs is copyable.
|
|
5093
|
+
class TestSuiteNameIs {
|
|
4476
5094
|
public:
|
|
4477
5095
|
// Constructor.
|
|
4478
|
-
explicit
|
|
4479
|
-
: name_(name) {}
|
|
5096
|
+
explicit TestSuiteNameIs(const std::string& name) : name_(name) {}
|
|
4480
5097
|
|
|
4481
|
-
// Returns true iff the name of
|
|
4482
|
-
bool operator()(const
|
|
4483
|
-
return
|
|
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
|
|
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
|
-
//
|
|
4498
|
-
// type_param: the name of the test
|
|
4499
|
-
// this is not a typed or a type-parameterized test
|
|
4500
|
-
// set_up_tc: pointer to the function that sets up the test
|
|
4501
|
-
// tear_down_tc: pointer to the function that tears down the test
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
// Can we find a
|
|
4507
|
-
const
|
|
4508
|
-
std::find_if(
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
if (
|
|
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
|
-
|
|
4516
|
-
new
|
|
4517
|
-
|
|
4518
|
-
// Is this a death test
|
|
4519
|
-
if (internal::UnitTestOptions::MatchesFilter(
|
|
4520
|
-
|
|
4521
|
-
// Yes. Inserts the test
|
|
4522
|
-
// defined so far. This only works when the test
|
|
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
|
-
++
|
|
4526
|
-
|
|
4527
|
-
|
|
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
|
-
|
|
5147
|
+
test_suites_.push_back(new_test_suite);
|
|
4531
5148
|
}
|
|
4532
5149
|
|
|
4533
|
-
|
|
4534
|
-
return
|
|
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
|
-
//
|
|
4553
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
4645
|
-
// set-up.
|
|
4646
|
-
if (
|
|
4647
|
-
|
|
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
|
-
|
|
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 !=
|
|
5336
|
+
if (test_shard_file != nullptr) {
|
|
4696
5337
|
FILE* const file = posix::FOpen(test_shard_file, "w");
|
|
4697
|
-
if (file ==
|
|
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 ==
|
|
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
|
|
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
|
-
//
|
|
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 (
|
|
4802
|
-
|
|
4803
|
-
|
|
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 <
|
|
4807
|
-
TestInfo* const test_info =
|
|
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
|
|
5449
|
+
// A test is disabled if test suite name or test name matches
|
|
4810
5450
|
// kDisableTestFilter.
|
|
4811
|
-
const bool is_disabled =
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
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
|
-
|
|
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
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
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
|
-
|
|
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 !=
|
|
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 (
|
|
4870
|
-
|
|
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 <
|
|
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 (!
|
|
4878
|
-
|
|
4879
|
-
printf("%s.",
|
|
4880
|
-
if (
|
|
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(
|
|
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() !=
|
|
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_ ==
|
|
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
|
|
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
|
-
|
|
4934
|
-
|
|
5586
|
+
if (current_test_info_ != nullptr) {
|
|
5587
|
+
return ¤t_test_info_->result_;
|
|
5588
|
+
}
|
|
5589
|
+
if (current_test_suite_ != nullptr) {
|
|
5590
|
+
return ¤t_test_suite_->ad_hoc_test_result_;
|
|
5591
|
+
}
|
|
5592
|
+
return &ad_hoc_test_result_;
|
|
4935
5593
|
}
|
|
4936
5594
|
|
|
4937
|
-
// Shuffles all test
|
|
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
|
|
4941
|
-
ShuffleRange(random(), 0,
|
|
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
|
|
4944
|
-
ShuffleRange(random(),
|
|
4945
|
-
static_cast<int>(
|
|
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
|
|
4948
|
-
for (
|
|
4949
|
-
|
|
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
|
|
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 <
|
|
4956
|
-
// Unshuffles the tests in each test
|
|
4957
|
-
|
|
4958
|
-
// Resets the index of each test
|
|
4959
|
-
|
|
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
|
-
|
|
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 ==
|
|
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
|
|
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
|
|
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 ==
|
|
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 ==
|
|
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
|
-
|
|
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 ==
|
|
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 ==
|
|
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
|
|
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
|
|
5192
|
-
" name. @YFILE_PATH@D defaults to @
|
|
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
|
|
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
|
>EST_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, >EST_FLAG(list_tests)) ||
|
|
5239
5896
|
ParseStringFlag(arg, kOutputFlag, >EST_FLAG(output)) ||
|
|
5240
5897
|
ParseBoolFlag(arg, kPrintTimeFlag, >EST_FLAG(print_time)) ||
|
|
5898
|
+
ParseBoolFlag(arg, kPrintUTF8Flag, >EST_FLAG(print_utf8)) ||
|
|
5241
5899
|
ParseInt32Flag(arg, kRandomSeedFlag, >EST_FLAG(random_seed)) ||
|
|
5242
5900
|
ParseInt32Flag(arg, kRepeatFlag, >EST_FLAG(repeat)) ||
|
|
5243
5901
|
ParseBoolFlag(arg, kShuffleFlag, >EST_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
|
-
|
|
5257
|
-
|
|
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
|