Squashed 'third_party/googletest/' changes from f570b27..2fe3bd9
2fe3bd9 Merge pull request #1433 from dsacre/fix-clang-warnings
d615eeb Merge branch 'master' into fix-clang-warnings
4005388 Merge pull request #1799 from google/9A681768AABE08D1EFA5CA77528236A4
6dd60ec Update googletest-output-test-golden-lin.txt
13c5230 Add user-defined copy constructor to ValueArray
8f27912 Add missing declarations for Google Tests flags
bb18e25 Make g_argvs static
d41f53a Make dummy variables static to avoid compiler warnings
e41f38b Re-generate gtest-param-test.h from gtest-param-test.h.pump
76af254 Update googletest-output-test-golden-lin.txt
0ecf38f Update googletest-output-test-golden-lin.txt
a5cc7aa Googletest export
41b5399 Googletest export
00d1ffc Googletest export
2cc0085 Googletest export
b8e2562 Merge pull request #1790 from google/9A681768AABE08D1EFA5CA77528236A4
9ad7398 Update gmock-matchers.h
1db4a42 Merge branch 'master' into 9A681768AABE08D1EFA5CA77528236A4
3dbba3b Changing clang tp 3.9 as 3.7 no longer works on Travis
fab2252 Changing clang tp 3.9 as 3.7 no longer works on Travis
f1e529a clang 3.7 -> 3.9
d7d21c0 clang 3.7->3.9
a83e98d Update .travis.yml
964748a Update .travis.yml
e8ebde4 Testing, trying to figure out clang errors
3d56121 Merge pull request #1794 from BlueMonday/patch-1
ca912f8 Fix broken FAQ link in primer.md
e103fa4 Disable MCVS warnings
9b2016a typo
e8e26d2 typo
8c0e0d5 MSVC warnings silence
9d9d7a6 Update googletest-output-test-golden-lin.txt
65d0353 Googletest export
03867b5 Googletest export
52f8183 Googletest export
167c5e8 Googletest export
1bb7618 Googletest export
58f3f10 Merge pull request #1784 from DavidSchuldenfrei/add-adapter-to-readme
b3d2106 New Readme.md
2e68926 Merge pull request #1769 from dakotahawkins/fix-1764_CMake-errors-in-googlemock
ebb2fca Merge branch 'master' into fix-1764_CMake-errors-in-googlemock
641e7a3 Update CONTRIBUTING.md
603ce4b Merge 72a2836945e7a3dcee0730166704587e10bf64ee into 1d9a1912e7f42e8ae66ea365b5b8508fecb31509
a0e62d9 No longer require a functor passed to ResultOf matcher to define `result_of` type. This makes ResultOf more convenient to use. In particular, the matcher now accepts lambdas.
b19292e Use `$<INSTALL_PREFIX>` in `target_include_directories`
9c96f50 Merge pull request #1781 from wfvining/fix1764-cmake-errors
08aa7c6 Fix #1764 Remove cmake code that leads to a configuration error
c3d9db4 Update README.md
bf98ce2 Merge pull request #1767 from jschloss-swift/issue_1735
205df10 Merge branch 'master' into issue_1735
7f11b9f Merge pull request #1779 from google/9A681768AABE08D1EFA5CA77528236A4
87494af Googletest export
9dae300 Googletest export
dc72f7c Googletest export
6de3982 Merge branch 'master' into issue_1735
6e79801 It seems like CMAKE_CXX_FLAGS is getting double appended when building as a nested cmake project, which breaks my build as gcc does not allow -specs=nosys.specs to be called multiple times.
1d9a191 Merge pull request #1338 from stefanosoffia/master
aff0379 Install CMake export files
880896c Merge pull request #1682 from dakotahawkins/improve-exported-targets
759ef7c Improve CMake exported targets.
b88511e Merge pull request #1194 from joshbodily/josh/fix_scoped_class2
a6e7ba2 Merge branch 'master' into josh/fix_scoped_class2
735bd75 Update CONTRIBUTING.md
ecd844d Merge pull request #1759 from gennadiycivil/master
6c8c74e merge
df428ec googletest export
5891bb5 googletest export
cfc0d5f Testing, adding a few line to sample4
72a8105 Testing, adding to sample4 unittest
9404c5a Merge pull request #1754 from vkotovv/docs-advanced-broken-links
49e6a9b Merge pull request #1120 from tanzislam/fix_death_test_child_mingw_wer_issue1116
c1230de Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
ddc618a docs: fix more broken links to sections in Advanced guide
02c4f1a docs: fixed broken references to sections in Advanced guide
1778f20 Merge pull request #1347 from Burgch/fix-argc
97274b1 Merge branch 'master' into fix-argc
a946f7d Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
d1c1aac Merge pull request #1612 from wkaluza/fix-msvc-d9025-warning
85b5723 Merge pull request #1652 from medithe/patch-1
cb69e68 Merge branch 'fix_death_test_child_mingw_wer_issue1116' of https://github.com/tanzislam/googletest into fix_death_test_child_mingw_wer_issue1116
9d77e63 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
2a380bc Merge branch 'master' into patch-1
e82d320 Merge pull request #1748 from laixer/std
0796415 std references shouldn't be fully qualified
cda442d Formatting
edc1bc6 Merge branch 'master' into patch-1
88cd665 Minor formatting/style changes
687964c Merge branch 'master' into fix-argc
a9bd428 Merge branch 'master' into fix-msvc-d9025-warning
02a8ca8 Merge pull request #1546 from henryiii/cleanup-cmake
a65a993 Merge branch 'master' into cleanup-cmake
f87798a Merge pull request #1646 from tisi1988/master
d20fa18 was not quite right,
b1bfdf0 Small formatting change
8c86040 Merge branch 'master' into master
8b34930 Merge pull request #1142 from scottslacksmith/master
c38f4b9 Small style changes.
21e5185 Merge branch 'master' into josh/fix_scoped_class2
f3a9fa6 Merge branch 'master' into master
1dad4cf Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
490554a Merge pull request #1746 from google/B60C9E9743233AA81897617B277709DF
ca87cc7 googletest export
1246e58 Merge branch 'master' into cleanup-cmake
2172c08 Merge pull request #1697 from morris-stock/ignore-cmake-generated-files
3c4f437 Merge branch 'master' into master
06b9759 Merge branch 'master' into ignore-cmake-generated-files
7e7e3a6 Merge branch 'master' into patch-1
997d343 Merge pull request #1734 from eliasdaler/cmake-binary-dir-fix
02671ab Merge branch 'master' into cmake-binary-dir-fix
587ceae Merge pull request #1741 from gennadiycivil/master
f0e4c41 more comments changes
e267717 Merge branch 'master' into cmake-binary-dir-fix
bbf738a more comments changes
265efde Comments changes, no functionality changes.
3306848 Merge pull request #1740 from gennadiycivil/master
a3c0dd0 Comments changes, no functionality changes
41fec55 Merge pull request #1665 from rongjiecomputer/deprecate
2421eff Merge branch 'master' into deprecate
17714d6 Merge pull request #1738 from gennadiycivil/master
f225735 Code formatting changes, clean up, no functionality changes
15ef6ec Merge pull request #1733 from gennadiycivil/master
caeaef3 Merge branch 'master' into master
87a37c6 Merge branch 'master' into master
c203bee formatting custom/README.md
9060e19 formatting for new READMEs
8bc11c0 Merge pull request #924 from wind-river-cdt/cross-testing-patch-1
9ca399a Change location of generated pkg-config files from CMAKE_BINARY_DIR to gmock/gtest_BINARY_DIR (#1717)
47b57ff Merge branch 'master' into cross-testing-patch-1
44fb2a1 Merge branch 'master' of https://github.com/google/googletest
63baab8 Move instructions into custom/README files
7800ba3 Merge pull request #1732 from gennadiycivil/master
18c940d comment cleanup
65b42fa Merge pull request #1731 from 2power10/master
ecc2419 - Fix the broken markdown table - Fix some format issue
ae94a90 Merge pull request #1727 from gennadiycivil/master
390a6b7 Mode change on a python script
8cccb2a Update README.md
9cb3819 Merge pull request #1726 from google/gennadiycivil-patch-2
b123652 Update README.md
77ac31c Update README.md
4de527d Update README.md
945618b Update README.md
e821a2d Update README.md
6b6be94 Merge pull request #1725 from google/gennadiycivil-patch-1
5eb2635 Update gmock_output_test.py
b46b86e Merge pull request #1719 from happyCoder92/master
6b89cb0 Merge pull request #1724 from gennadiycivil/master
4e13415 Merge branch 'master' into master
640556f Merge branch 'master' of https://github.com/google/googletest
acaf5be formatting and small changes related to code management, no functionality changes
4843eaf Merge pull request #1723 from gennadiycivil/master
71c2bb4 Merge branch 'master' into master
4d94114 code management comments, [ci-skip], no functionality changes
33596cb Merge pull request #1721 from gennadiycivil/master
7a79459 Fixing identation, causes build errors when warnings are treated as errors
54cb8b0 Merge branch 'master' of github.com:gennadiycivil/googletest
f704293 Fixing identation, causes build errors when warnings are treated as errors
d5b31df Update gtest-death-test.cc
9faeade Merge branch 'master' of https://github.com/google/googletest
ecc6944 Fixing identation, causes build errors when warnings are treated as errors
2797ba8 Merge pull request #1720 from gennadiycivil/master
3d167fd Merge branch 'master' of github.com:gennadiycivil/googletest
063a90b Formatting change for auto code management, no functionality changes
24786cb Merge branch 'master' into deprecate
db43df6 docs: fix broken links
efe27ac Merge branch 'master' into master
4de57ce Merge pull request #1714 from gennadiycivil/master
541eeb4 Merge branch 'master' into master
11f5a27 Merge branch 'master' into cross-testing-patch-1
00fc0d2 Formatting tweaks, no functionality changes
66bd580 Merge pull request #1713 from gennadiycivil/master
0eeb1af code management changes, no functionalty changes
61799bd Merge pull request #1710 from gennadiycivil/master
d31266e Merge branch 'master' of github.com:gennadiycivil/googletest
35e1959 Formatting Changes and small code merge
d5d335b Merge branch 'master' of https://github.com/google/googletest
bdf5fd3 Merge branch 'master' of https://github.com/google/googletest
d526632 Merge pull request #1708 from drwez/fixFuchsia
07d4543 Fix typo breaking Fuchsia build
b95a702 Merge pull request #1707 from gennadiycivil/master
094d7d2 Merge branch 'master' of https://github.com/google/googletest
41e82ca upsream additional printer test
8506852 Merge pull request #1705 from gennadiycivil/master
b345bf9 Formatting changes,small cleanup, no functionality changes
dd06b16 Merge pull request #1699 from drwez/suppressDefault
252dc32 Merge branch 'master' into suppressDefault
6f168c1 Merge pull request #1704 from gennadiycivil/master
b78c3b8 small cleanup, np functional changes
e9b05a4 Merge branch 'master' into master
886a747 Merge branch 'master' into suppressDefault
28b71e4 Merge pull request #1700 from gennadiycivil/master
24edf4e automatic code sync mgt, comment only
c81a349 Merge pull request #1673 from ppaulweber/bug/gcc_8_1_1_build_error
5d2e503 No default exception handling
61f9493 Merge branch 'master' into deprecate
1da26a7 Printers test: fixed compilation bug, due to unnecessary parentheses in declaration
51b6505 Ignore cmake generated files when used as submodule
e887b03 Merge pull request #1696 from gennadiycivil/master
2a7077f one more fix
b929d55 cmake fixes
0d29f97 more fixes
95c313e add --no_stacktrace_support for json-output-unittest
94f2c6f fixes tests
677df88 cmake test fixes
b7244ff cmake fixes
930f0f8 cmake tests changes
f3511bf cleaning up and adding test changes to CMake
1cd979a Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
bbc0ac9 Merge branch 'master' of https://github.com/google/googletest
5b9b39f Corresponding CMake Changes
8dea630 various changes to tests
421f527 more test changes
7001dff adding googletest-json-output unitest
09fc73d more test changes
96077bc more tests changes
b888e23 googletest list tests unitest
35aa4fe gtest catch exceptions test and gtest shuffle test
a28968d changes to googletest break on failure and googletest filter unittests
e5e2ef7 Merge pull request #1695 from gennadiycivil/master
d75922c changes for googletest env var test
38486eb googltest-color-test changes
6324796 googletest-output-test changes
16c65a4 Merge branch 'master' into master
572b07f Merge pull request #1685 from einsteinsfool/master
e69a1a8 Merge branch 'master' of https://github.com/google/googletest
539ee4b Formatting changes and upstreaming one test
25e1436 Merge branch 'master' into master
6269264 Merge branch 'master' into deprecate
f978c65 Merge branch 'master' into master
4f160f7 Merge pull request #1691 from gennadiycivil/master
012528c Merge branch 'master' of https://github.com/google/googletest
b7cb1bc small tweaks, OSS merge cl 206357486
0048647 Merge pull request #1688 from gennadiycivil/master
ec13264 added missing comments
984cba3 Formatting changes for automatic code management
6cacb41 Merge branch 'master' into deprecate
309e8a2 Updated broken and outdated URLs
40904f8 Merge pull request #1684 from gennadiycivil/master
ed1edf6 Formatting changes, code sync
78b4924 Merge pull request #1606 from m-tmatma/feature/fix-build-error-vs2017-win10-jp
a68f0c2 Merge branch 'master' into feature/fix-build-error-vs2017-win10-jp
82c858b Merge pull request #1678 from stianval/master
1ae4fdb Merge branch 'master' into master
bb9fc6f Update primer.md
7abf99d Update primer.md
baf2115 Update primer.md
534570b Merge branch 'master' into feature/fix-build-error-vs2017-win10-jp
fd4f7cc Merge branch 'master' into deprecate
2a151c9 Merge pull request #1676 from gennadiycivil/master
a02af2f code merge
c62c794 Merge pull request #1668 from duxiuxing/googletest_for_asam
d8db0ca Merge branch 'master' into googletest_for_asam
2eb4396 Replace "…" with "..."(three dots) to fix warning C4819 in Visual Studio
6ce9b98 Merge pull request #1674 from gennadiycivil/master
61b8197 Merge branch 'master' into master
0c17888 code sync
1f9c668 Merge branch 'master' into deprecate
5b19054 Merge branch 'master' into googletest_for_asam
40cd5d1 Merge branch 'master' into feature/fix-build-error-vs2017-win10-jp
1370e76 Merge pull request #1669 from syohex/ignore-ds-store
a3509a5 Merge branch 'master' of https://github.com/google/googletest
43163c1 Merge branch 'master' into ignore-ds-store
4235fff Merge pull request #1671 from gennadiycivil/master
3530ab9 Code sync
d41bfd7 Fix link
8d07cfd Code sync, mostly formatting and removing outdates
7e73a7a Formatting and a link
20ef794 Merge pull request #1667 from hckr/patch-1
2211061 Merge pull request #1670 from gennadiycivil/master
234958d Merge branch 'master' into feature/fix-build-error-vs2017-win10-jp
4abbb77 Merge branch 'master' of https://github.com/google/googletest
5437926 Docs sync
a091b75 Ignore .DS_Store file
65a49a7 Fix warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
021c308 Fix broken links to FAQ in primer.md
378de8f Merge branch 'master' into deprecate
077ee54 Merge pull request #1655 from AdrianMoranMontes/master
3a8d744 Disable MSVC function deprecation when using Clang
ee3885f Merge branch 'master' into master
cbd0719 Put ifdef guard after the includes.
b4d4438 Merge pull request #1653 from derekmauro/stacktrace
82670da Merge branch 'master' into stacktrace
df0d0a3 Merge pull request #1662 from derekmauro/variant
6c7878a Adds the UniversalPrinter for absl::variant.
0acdf79 Avoid full test in no exceptions are enabled.
de6e079 Merge branch 'master' into master
421e7b4 Remove default /EHsc compiler flag
a519050 Merge branch 'master' into master
41f0e24 Merge pull request #1647 from duxiuxing/googletest_for_asam
d91b0de Merge branch 'master' into googletest_for_asam
7eae4ea Merge pull request #1656 from gennadiycivil/master
36066cf more formatting [skip ci]
74cccf4 formatting, [ci skip]
93bfdde Fix issue #1654.
4f91942 Fix heading
50daf29 Docs sync
d772e20 Pass the --no_stacktrace_support argument to the CMake tests
4c41787 Adds stacktrace support from Abseil to Google Test
b50b2f7 Cast the tr1::tuple_element template parameter to int
4bcc9b9 This closes #1595: fix compiler error with Visual Studio 2017 on Win10 JP.
03ea2fd VS2005 with SP1(_MSC_VER=1400) already supports __pragma
dfddc98 FIX: Compilation warning with GCC regarding a non-initialised member from MutexBase class.
ba96d0b Merge pull request #1622 from rohanjoyce/bazel_test_filter
0563b52 Eliminate GTEST_TEST_FILTER_ENV_VAR_.
dea7929 Merge pull request #1633 from gennadiycivil/master
61d162b Merge branch 'master' into master
ce468a1 Merge pull request #1627 from atetubou/stdstring
a0d43a7 Merge branch 'master' into stdstring
c7ec593 ignore .md for appveyor builds
885808c Merge pull request #1631 from gennadiycivil/master
3847aec Docs sync/internal
d689b27 Merge branch 'master' of https://github.com/google/googletest
6a484ba Doc sync/internal
c83e83e Merge branch 'master' into stdstring
30ff9c3 Merge pull request #1626 from gennadiycivil/master
f4d0631 Reduce the number of strcmp calling while initialization
025f48f Sync with internal docs
1bccd6f Merge pull request #1625 from gennadiycivil/master
336a75d Merge branch 'master' of https://github.com/google/googletest
95a96e1 Sync with internal docs
9077ec7 Merge pull request #1624 from gennadiycivil/master
0b958a0 Removed "Documentation.md" not adding value and not consitent with internal docs
109f848 Rename Samples.md to samples.md and adjust the links
4490be8 Rename FAQ.md to faq.md and adjust the links.
f213b63 Merge branch 'master' of https://github.com/google/googletest
8f87d00 Rename AdvancedGuide.md to advanced.md and adjust the links. Part of documentation rationalization work
c091b04 Merge pull request #1623 from Steelskin/fuchsia-fdio
de47b0d Rename "Primer.md" to "primer.md" and adjust links. Part of the documentaion rationalzation
d437209 Fuchsia: Change fdio include path.
98a0d00 Merge pull request #1619 from Steelskin/fuchsia-launchpad-removal
2d136e5 Merge branch 'master' into fuchsia-launchpad-removal
7e7f9d5 Merge pull request #1620 from gennadiycivil/master
7b08984 Merge branch 'master' into fuchsia-launchpad-removal
f66ab00 Upstream, cl/199129756
db5f9ec Merge pull request #1608 from gennadiycivil/master
93e267a Clean up
0a6edf3 Remvoe launchpad dependency from Fuchsia.
8977af0 formatting changes
4e4df22 Merge pull request #1607 from gennadiycivil/master
28c91e2 Formatting changes
145d057 Merge pull request #1603 from Steelskin/unused-variable-fuchsia
32c84be Merge branch 'master' into unused-variable-fuchsia
8276dba Merge pull request #1591 from sgraham/disabled-rtti
3b22e21 Merge branch 'master' into disabled-rtti
1814bed Merge pull request #1601 from jdennett/StdLibVersioning
49ecebd Downgrade to C++98.
ec2c911 Downgrade to C++98 code.
89286a4 Merge branch 'master' into StdLibVersioning
3280099 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
f91bf75 Remove unused variable in Fuchsia.
9db942a Merge branch 'master' into disabled-rtti
08d5b1f Merge pull request #1597 from jaeheonlee/master
54e331b Add support for versioned standard libraries.
fc66ae4 Update generated code.
b8fa4d2 Add unit test for CanonicalizeForStdLibVersioning.
18abd8f Use NULL instead of nullptr, for pre-C++11 builds.
ec5ad0f Fix the bug where ad_hoc_test_result() functions of UnitTest and TestCase objects would return failures registered at TestCase and UnitTest scopes, respectively.
045e7f9 Merge pull request #1593 from Steelskin/fuchsia_death_test
10f05a6 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
960149f Remove magic number
242f0f6 Style fix
8497540 Fix comments
13af91f Fix more stuff and get tests to pass
96c3c42 Get all the things to work.
a9653c4 Fix gmock not building when -fno-rtti
b6cb5c3 Fix stuff
d4b5281 Add Fuchsia support for death test.
278aba3 Merge pull request #1589 from sgraham/rtti-build
95ec42d Add no-exception and no-rtti to build matrix
dc043e1 Merge pull request #1588 from gennadiycivil/master
9af3793 merged
b539167 merging,
a6f06bf Merge pull request #1582 from dnsunderland/parameterless
884bcda Merge branch 'master' into parameterless
1114a02 Merge pull request #1580 from gennadiycivil/master
bb7a018 reverting, test
7b4ee66 reverting just to test
62a7c14 testing
2d3024f Fix friend declaration to use GTEST_API_ decl spec.
b2f97ab Revert useless use of GTEST_API_ on WithoutMatchers decl.
1c79ad7 Add GTEST_API_ tag to WithoutMatchers class. Hopefully that fixes the problem on MSVC?
d5725da Mark new GetWithoutMatchers method as part of the exported API, to address MSVC linker errors.
7878b27 Merge branch 'parameterless' of https://github.com/dnsunderland/googletest into parameterless
f6551f2 Don't use generalized initializer list; is C++11 extension.
08cb06b Merge branch 'master' into parameterless
f437f8c Clone of unsubmitted cr/176529515. Introduce parameterless expectations.
f312435 more typos
a0fd742 msvc
b00e281 more typos
881ee30 typo
10e8ec2 move only types docs
4d554c3 typo
b4cbf53 typo
78d7381 http://cl/193386206
a48b95e Merge branch 'master' of github.com:google/googletest
c56ba73 merge, explicit, ( should be it)
4bd8c46 Merge pull request #1579 from gennadiycivil/master
8831178 Merge branch 'master' of github.com:google/googletest
4707c0f 193353312
4035d6e Merge pull request #1577 from gennadiycivil/master
80d6e26 cl/193060888
5dccf6b http://cl/193060888
dff32af http://cl/193060888
3f88bb1 test-meerging
ec425d7 typo
e4ab316 more msvc
1944bc0 typo
e9eff48 msvc warnings
bd2a1ae merging gmock generated matchers
1f60541 Merge pull request #1576 from gennadiycivil/master
9fba103 merging, testing, this should be it
1c6e68c merging
26c10dc merging
247ded3 Merge pull request #1571 from gennadiycivil/master
d84eb86 more pizza
f45728a more OSX pizzas
b74a1af osx pizzas
f9bd618 merging gmock actions test
0bfa823 merging, gmock actions test
38de61d Merge pull request #1569 from gennadiycivil/master
6d31084 Merge branch 'master' of https://github.com/google/googletest
2dc576e merging
0957cce Merge pull request #1568 from gennadiycivil/master
f7330f9 more fixing osx libstd++ bugs
6538049 fixing
dc4f563 merging, fix OSX issue
092ca91 merging
6fb65b8 Merge pull request #1567 from gennadiycivil/master
a79851f merging
3ccd6e3 Merge pull request #1566 from gennadiycivil/master
fa658e0 merging
531e294 Merge pull request #1562 from gennadiycivil/master
c67f51b msvc
9b5940e revert this one
b2d81b4 merge, ... gmock-matchers test
07f3bdd Merge branch 'master' of https://github.com/google/googletest
b640d87 Merge pull request #1557 from pwnall/gmock-fix-ub
854adb0 Merge branch 'master' of https://github.com/google/googletest
e77deb2 small cleanup
1324e2d Remove multiple inheritance from "unintesting call" mock classes.
fdb57f8 Merge pull request #1561 from gennadiycivil/master
373481c ...merging
ef17a9f Merge branch 'master' of https://github.com/google/googletest
6273647 Merge pull request #1560 from gennadiycivil/master
8654c1c merging
af4cfd5 Merge branch 'master' of https://github.com/google/googletest
ab84d14 Upstream cl/192179348
b4429c9 Merge pull request #1559 from gennadiycivil/master
106e731 Merge branch 'master' of https://github.com/google/googletest
c13ab60 merging
d5988e7 Merge pull request #1558 from gennadiycivil/master
5cd213e ..and this should be it
6a7573a more
039d9b5 pizza work, cont
f15fd96 osx pizzas, cont
b15be9a fixing osx pizza
6f9db26 merging
9bc82ce merging
25d8176 merging
39c58da merge
e1071eb RE-Doing the merge, this time with gcc on mac in the PR so I can catch errors before merging the PR
8fbb419 Include gcc on mac into PR matrix
a072611 Merge pull request #1556 from google/revert-1551-master
ca54b67 Revert "gmock actions 2"
7f03f7c Merge pull request #1551 from gennadiycivil/master
64d24b8 ... and this
c1d4c34 this should be it
f587100 yet more
05b5a53 formatting
2de24fb tuning
055f321 tuning
57d6e82 more
44da2b9 cont
e93a0ec msvc
c4684b4 more msvc
431bfdc msvc 14
8bc7c63 testing msvc again
c4e3d77 More msvc 14
6525044 And also silence for MSVS14
35a709a preproc syntax ( I can never remember it)
61e8a0b syntax
03be5df cont.
e0b3c26 continued
d0de118 Merge branch 'master' of github.com:google/googletest
7529698 Merge pull request #1552 from pwnall/mock-pump
51f8ad4 Sync gmock-generated-nice-strict.h.pump with gmock-generated-nice-strict.h.
dbd206e more mcvs fixing
701e1e5 linkage, fixing MSVC
2d4d4ef fixing MSVC
4b6a7a4 Merge branch 'master' into cleanup-cmake
5fe8de5 more warnings
cb13dc7 more warnings
d9f3611 more MSVC warnings
c75b76e warnings
04e3188 cont - 2
32ac949 cont
1831ac9 more warnings
eb3e4aa deal with MSVC warn, cont 1
50c0bcd Cont. deal with MCVS warnings
b5c87fb Deal with MCVS warnings
427b6a2 Merge branch 'master' of github.com:google/googletest
88fc7d7 merging gmock-actions 2
82febb8 Merge pull request #1549 from gennadiycivil/master
bee1d13 Merge branch 'master' of github.com:google/googletest
fe402c2 Merging gMock, 2
d090565 Merge pull request #1547 from gennadiycivil/master
7e5f90d formatting
9286361 And more MCVS warnings
e0f4cf0 fixing MCVS warn
7045138 Have to wait for this one
66eaf9f Have to wait for this one
af93d59 Merging matchers test
47d15bc Merge branch 'master' of github.com:google/googletest
0cd6a4f Merging matchers test
b22e8de Clean up cache non-advanced variable for subproject
2cf2a1f Merge pull request #1545 from gennadiycivil/master
f7098a2 Merge branch 'master' into master
d81b6a0 bad cut/paste
a608d4a More on MSVC warning C4503, decorated name length exceeded
6f4e939 More on MSVC warning C4503, decorated name length exceeded
5b3d277 Address MSVC warning C4503, decorated name length exceeded, name was truncated
aa14cc4 Fixing build break on MSVC
891e436 Merge pull request #1543 from fo40225/fix_locale_win
0f790fa Merge branch 'master' of github.com:google/googletest
e55089e merging gmock matchers 1
fbe3c94 Merge branch 'master' into fix_locale_win
4377699 Merge pull request #1542 from gennadiycivil/master
a0c27bd fix build break on locale windows
1776ed8 Tweaking https://github.com/google/googletest/pull/1523 to exclude nacl
07af8af Merge pull request #1523 from leissa/int3
98687b7 Merge branch 'master' into int3
7d95543 Merge pull request #1541 from gennadiycivil/master
18be012 Merge branch 'master' into int3
75ea13d Merge branch 'master' of github.com:google/googletest
d52aaee Upstreaming, cl 191344765
ac783bd Merge pull request #1539 from gennadiycivil/master
2750742 Merge branch 'master' into int3
a2dd136 merging port, cont. 191443078
1065591 Merge branch 'master' of github.com:google/googletest
aa349ac merging, cont - 2
6c9d07f Merge pull request #1538 from gennadiycivil/master
6abaa24 Merge branch 'master' of github.com:google/googletest
2cedd5b merging gtest-port.h , 191439094
653a435 Merge pull request #1537 from gennadiycivil/master
04d1e56 merging, just comments format
5beb452 testing, merge
b8cbd53 Merge branch 'master' of github.com:google/googletest
df5a48d Testing, gtest-port.h merge
9df719d Merge pull request #1534 from gennadiycivil/master
87a4cdd merging gtest-port.h, again - 1
5c7c365 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
b1d18b8 Merge branch 'master' into int3
7888184 Include OSX builds back into PR builds
86d1407 Merge pull request #1527 from google/revert-1518-master
b2373c6 Revert "merging gtest-port 1 of N"
527fd38 Merge pull request #1526 from google/revert-1525-master
54bb165 Revert "merging gtest-port, 2"
e10ea42 Merge remote-tracking branch 'google/master' into int3
d04bf07 typo
09a0e17 Merge pull request #1525 from gennadiycivil/master
8e0364a merging gtest-port, 2
11855d8 provide alternative for DebugBreak()
9dde7c4 Merge pull request #1518 from gennadiycivil/master
aea6fc3 merging gtest-port 1 of N
cafa9e5 Merge pull request #1515 from gennadiycivil/master
a75a5c9 merges 1
a0e2faf Merge branch 'master' of https://github.com/google/googletest
3df7cbe merges, gtest
7857975 Merge pull request #1512 from gennadiycivil/master
6aae206 merging gmock-matchers.h 3
2318705 merging gmock-matchers.h 2
8ea10d3 Upstreaming FloatingEq2Matcher,
b907c26 Merging gmock-matchers.h -2
466a49a gmock-matchers merging -2
a28a7eb Merge branch 'master' of https://github.com/google/googletest
dfa853b Merge pull request #1510 from gennadiycivil/master
b7c5683 merging, gmock -1
a1692ed Merge branch 'master' into master
4e89c76 reverting gtest_list_tests_unittest.py
eaaa422 Update appveyor.yml
da71e8c more merges
0f65679 more merges
691e38e More merges
dccc2d6 Merge pull request #1508 from gennadiycivil/master
a3c2e10 cl 189032107, again
080fcbe cl 189032107
a178cc7 merge, again, IsRecursiveContainer
a325ad2 Merge pull request #1504 from gennadiycivil/master
262aaf2 erging, cont
2814b4b merging, merging
a719320 fixing, was removing too much
5461f63 Merge branch 'master' of https://github.com/google/googletest
af463c4 More merges, removing old dead code
f35fe6d Merge pull request #1503 from sheepmaster/upstream_188748737
fc437ef Merge branch 'master' into upstream_188748737
7b70413 Allow macros inside of parametrized test names.
abc6e94 Merge pull request #1502 from gennadiycivil/master
cf9d634 merges-port(1)
9bda90b Merge pull request #1497 from gennadiycivil/master
e891900 Merging, XML tests
703b4a8 Merge pull request #1493 from gennadiycivil/master
89d6f70 merges-8
617e2c5 Merge pull request #1492 from gennadiycivil/master
995a9df merges-7
ae4480f Merge pull request #1491 from gennadiycivil/master
086825d merges-6
731dbc4 Merge pull request #1490 from gennadiycivil/master
94d78ea Merge branch 'master' of https://github.com/google/googletest
8385928 merges-3
c3a007f Merge pull request #1489 from gennadiycivil/master
73bf412 Merge branch 'master' of https://github.com/google/googletest
dbf63e3 merges-2
a7ffeca Merge pull request #1488 from gennadiycivil/master
a518bd5 Merge branch 'master' of https://github.com/google/googletest
0d5e01a Merges-1
915c8d0 Merge pull request #1477 from sgraham/unsigned-wchar
829a8c9 Merge branch 'master' into unsigned-wchar
6d08931 Merge branch 'fix_death_test_child_mingw_wer_issue1116' of https://github.com/tanzislam/googletest into fix_death_test_child_mingw_wer_issue1116
a7a7f51 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
6c73adf Merge pull request #1486 from petrhosek/json-stacktrace
7a2050d Use a full message in the JSON output for failures
f8fbe1c Merge branch 'master' into unsigned-wchar
447d58b Merge pull request #1485 from coryan/parallelize-appveyor
18d270e Merge pull request #1479 from petrhosek/json
3817871 Merge branch 'master' into json
3431b69 Add options to parallelize builds.
9557d29 Merge pull request #1481 from dneto0/debug-postfix
66d7175 Merge branch 'master' into debug-postfix
6baf17e Support JSON output format in addition to XML
fe11442 Merge pull request #1482 from zhangxy988/variant_matcher
e162233 Merge branch 'variant_matcher' of https://github.com/zhangxy988/googletest into variant_matcher
576d689 Merge branch 'master' into variant_matcher
62be6f3 Merge branch 'variant_matcher' of https://github.com/zhangxy988/googletest into variant_matcher
2eb31c1 Add documentation for VariantWith.
a9f2368 Merge pull request #1483 from gennadiycivil/master
ba40fd1 Merge branch 'master' into master
ce61dc5 Merge pull request #1423 from pcc/win-libcxx2
2bd1750 gmock merging -2
837c246 Merge branch 'master' into unsigned-wchar
ab46d95 Merge branch 'master' into debug-postfix
b951c65 Merge branch 'master' into variant_matcher
7d15497 Merge pull request #1464 from pwnall/death-style
190e2cd Add matcher for std::variant.
84ec2e0 Switch default death test style back to "fast".
d4f77c1 Merge branch 'master' into win-libcxx2
20074be Use DEBUG_POSTFIX instead of CMAKE_DEBUG_POSTFIX
5e1bca7 Merge branch 'master' into unsigned-wchar
ac34e6c Merge pull request #1472 from AndersSundmanTobii/master
aa31660 Merge branch 'master' into master
1d324d8 Merge pull request #1475 from gennadiycivil/master
4dbb437 merging unittests - 5
567b40e Try to handle unsigned wchar_t (arm) a bit better
004f6a0 merging unitests - check 4
194c99b Merge branch 'master' of https://github.com/google/googletest
3a4cf1a Merge pull request #1474 from gennadiycivil/master
29e9ca8 merging unitests, check
3299a23 merging unittests - 2
c056345 Merge pull request #1473 from gennadiycivil/master
b7e0294 merging unitests
70e1aad Merge pull request #1471 from aleksejkozin/patch-1
11e1dd2 Removed trailing comma in enum
99bb4fe Merge branch 'master' into patch-1
a490fb7 Merge pull request #1466 from pwnall/fix-death-warn
0656830 TEST() arguments are invalid in an example
ac138b6 Merge branch 'master' into fix-death-warn
32e62da Merge pull request #1469 from gennadiycivil/master
df65632 merges
8a61587 Fix unused function warning on Mac OS.
3f0cf6b Merge pull request #1450 from pwnall/fix-printers
8dd1eb5 Merge branch 'master' into fix-printers
4214050 Merge pull request #1459 from gennadiycivil/master
8248169 Merge branch 'master' of https://github.com/google/googletest
a3e322b cleanup, merges
0d6a674 Merge pull request #1458 from gennadiycivil/master
823f139 Merge branch 'master' into fix-printers
68e4f07 Merge branch 'master' of https://github.com/google/googletest
09581b3 cleanup/merges
38611c5 Merge pull request #1457 from gennadiycivil/master
0697241 merging, cleaning up
462ef92 Merge pull request #1456 from gennadiycivil/master
6429075 Merge branch 'master' of https://github.com/google/googletest
ab186a8 merges
ffc5f5a Merge pull request #1454 from gennadiycivil/master
30d276d cxxx11
3b1fe3e clang warnings
d7c966c clang warnings
2a23ca0 https://travis-ci.org/google/googletest/jobs/340995238
a66d209 clang warning 'https://travis-ci.org/google/googletest/jobs/340987201'
e76f4ee clang warning https://travis-ci.org/google/googletest/jobs/340978022
9e07281 merges
9d1a80c Merge pull request #1452 from gennadiycivil/master
1a7732a Merge branch 'master' of https://github.com/google/googletest
225e674 moving JoinAsTuple to internal
b3a1759 Fix std::iscntrl use in gtest-printers.cc
222607a Merge pull request #1451 from gennadiycivil/master
b94ba27 Merge branch 'master' of https://github.com/google/googletest
d84f58a Merging, coniniue
f11a8f9 Merge branch 'master' into fix-argc
15392f1 Merge pull request #1449 from gennadiycivil/master
575c081 merging
49fc378 merges
9737e63 Merge pull request #1439 from DarthGandalf/assert
b324a36 Merge branch 'master' into assert
22a1150 Merge pull request #1446 from tholsapp/master
c211f21 Merge pull request #1448 from gennadiycivil/master
ec7faa9 merges
c851050 Fixed typos
092d088 Add ability to throw from ASSERT
a3c73ed Include MSVC14 on PRs as well
ea31cb1 Merge pull request #1435 from gennadiycivil/master
e6ec8bc Merges and also adding new bazel build mode
e55fded Code merges
a1923a5 Merge pull request #1434 from gennadiycivil/master
2a46830 Ability to optionally depend on Abseil plus upstream of 183716547
798cc4a Merge pull request #1430 from gennadiycivil/master
6c0c389 Adding tests to googlemock bazel
718fd88 Merge pull request #1429 from gennadiycivil/master
92c9380 Merge branch 'master' of https://github.com/google/googletest
fbb48a7 Code merges
cb72716 Merge pull request #1428 from lidaobing/patch-2
aa82c6f Merge pull request #1426 from stefanosoffia/fix_test_build_gcc7_2_0
efd49c2 Update Documentation.md
b8ac390 Fix test build issue with GCC7.2.
3498a1a Use _CPPUNWIND instead of _HAS_EXCEPTIONS with MSVC.
f915530 Pass -EHs-c- to disable exceptions with MSVC.
b3a2048 Update README.md
7cced89 Remove Visual Studio 10,11,12 from build matrix
46ab9ec Merge pull request #1421 from gennadiycivil/master
b9651c0 placating gcc and its overzeauls size comparison warnings
264ba3e Merge branch 'master' of https://github.com/google/googletest
21cf836 Merge pull request #1418 from gennadiycivil/master
e29805a upstream cl 182543808
7a2563a Merge branch 'master' of https://github.com/google/googletest
06c3cce revert, lets get this compiled
ab9c44c Merge pull request #1410 from pcc/win-libcxx
80defce Many code merge/upstream changes
ad0146b Merge branch 'master' into win-libcxx
3c5e064 Merge pull request #1417 from gennadiycivil/master
58df576 Merge branch 'master' of https://github.com/google/googletest
6723b6c Merging, upstream http://cl/182836545
bbb17ad more code merge
f1c87ad merges, cl/155419551 and other
83fa0cb Merge pull request #1415 from gennadiycivil/master
9bc8666 more merging
a0435a5 merging
8d707df code merge
62ba5d9 Merge pull request #1401 from eidosmontreal/support_xboxone
1489dc8 Merge branch 'master' into support_xboxone
20b53ad Merge branch 'master' into win-libcxx
0510530 Merge pull request #1412 from gennadiycivil/master
b1623e9 Adding python tests to Bazel build file.
8d733dc Merge pull request #1407 from ted-xp/master
8e86221 Use fully qualified in examples
354fc8d Document ScopedTrace utility
ba99a04 Check whether _MSC_VER is defined when detecting presence of cxxabi.h under libc++.
9c82e77 Expose ScopedTrace utility in public interface
1b07766 Merge pull request #1402 from gennadiycivil/master
08b323f Reverting some changes, need to make the merge compile
9195571 Reverting some changes, need to make the merge compile
6d04de7 Reverting some changes, need to make the merge compile
b9e2978 Reverting some changes, need to make the merge compile
304be8f Test files for corresponding changes
6befe42 Test files for corresponding changes
f45c22c Test files for corresponding changes
5f4ce9d Test files for corresponding changes
26085d7 Merge branch 'master' of github.com:gennadiycivil/googletest
d629744 More code merges
6c86598 Merge branch 'master' of https://github.com/google/googletest
822c620 Merge branch 'master' into master
da1f7fe Code merging
051fe2f Merge pull request #1339 from Romain-Geissler/fix-core-dump-shared
f6887b5 Merge branch 'master' into fix-core-dump-shared
63ded6c Merge pull request #1400 from gennadiycivil/master
27bb844 Merge branch 'master' into fix-argc
ea8f6f0 Merge branch 'support_xboxone' of https://github.com/eidosmontreal/googletest into support_xboxone
33d73d4 Added support for WINAPI_PARTITION_TV_TITLE which is defined on XboxOne
7ebbf59 Merge branch 'support_xboxone' of https://github.com/eidosmontreal/googletest into support_xboxone
569d713 Added support for WINAPI_PARTITION_TV_TITLE which is defined on XboxOne
93b7798 continue upstream/merge, etc
717d784 Merge branch 'master' of https://github.com/google/googletest
ed8d02c Update .travis.yml
73d1251 Update .travis.yml
cfd29e0 Update .travis.yml
29f94e0 Update .travis.yml
2982dc1 Trying to fix travis
1321891 Merge pull request #1399 from gennadiycivil/master
5add347 Merge branch 'master' of https://github.com/google/googletest
6914ae2 Upstream cl 103120214
836c419 Merge pull request #1398 from gennadiycivil/master
1d757db More merge, cleanup
b44ed21 Merge branch 'master' of https://github.com/google/googletest
481fe94 More merge, cleanup
cac5d7c Merge pull request #1397 from gennadiycivil/master
84aa459 Merge branch 'master' of https://github.com/google/googletest
6a26e47 Code merge, upstreaming accumulated changes, cleanup
d719689 Merge pull request #1396 from gennadiycivil/master
62dbaa2 revert
d630a8b code merges, cleanup
6efe104 Merge pull request #1395 from gennadiycivil/master
f33902b revert googletest/test/gtest-param-test_test.cc
f729a28 Merge branch 'master' of github.com:gennadiycivil/googletest
8034001 Merge branch 'master' of https://github.com/google/googletest
505de1d Merge branch 'master' into master
6eccdb7 Update .travis.yml
2f31bfa Merge branch 'master' of https://github.com/google/googletest
d237297 code merge, cleanups
509e78b Merge pull request #1394 from gennadiycivil/master
2ad5661 Upstream of cl 129104714
5eecadf Revert one file
5d96565 Merge branch 'master' into support_xboxone
9fce984 wip, cleanups/merge
2301524 Merge pull request #1393 from gennadiycivil/master
1df9073 Merge branch 'master' into master
258fd6e cleanup, merge
0e6da4c Merge branch 'master' into fix-core-dump-shared
e194f52 Merge pull request #1388 from rongjiecomputer/bazel
cbd15d4 [Bazel] Detect Windows with cpu value x64_windows and x64_windows_msvc
c3bb0ee Merge pull request #1390 from gennadiycivil/master
91ba05c Small cleanups, merge
3d27bde Merge pull request #1387 from coryan/optimize-build-matrix-ready
4371b99 Merge pull request #1385 from gennadiycivil/master
fab0610 Merge branch 'master' into master
67d6e46 Use correct name for build event types.
67476c1 Revert one file for now
adfdc65 Fixed test for pull request.
5b26b0f Merge pull request #1007 from davidben/missing-declarations
d3acb4b Fixed output and test for 'enabled_on_pr'
6b4967a Merge branch 'master' into missing-declarations
abbc0f8 Merge pull request #1377 from davidben/clang-cl
19b5774 code cleanup in preparation for merges, cl 180857299
9cee677 Optimize build matrix (#1)
be6ee26 Merge pull request #1378 from gennadiycivil/master
4216f86 Merge branch 'master' into master
a501447 Merge pull request #1341 from coryan/fix-issue-776-support-autoconf-as-submodule
1c09831 upstreaming cl 124976692
1acf8c7 Also define GTEST_ATTRIBUTE_PRINTF_ in clang-cl.
b3d9be5 Pass the -Wmissing-declarations warning.
26addad Merge branch 'master' into fix-issue-776-support-autoconf-as-submodule
ba6eced Merge pull request #1374 from davidben/tuple-msvc
88760a2 Merge pull request #991 from davidben/uintptr
a3da63d Merge branch 'master' into tuple-msvc
a9fa67c Merge branch 'master' into fix-issue-776-support-autoconf-as-submodule
1414d71 Merge pull request #1376 from gennadiycivil/master
e7734fb OSS Sync, cl 163329677
90244a6 Fix testing::Combine on MSVC 2017.
fa67301 Merge branch 'master' into uintptr
1c2f190 Merge pull request #1109 from davidben/vs2017
555e6e7 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
bcd3552 Avoid warning C4619 in MSVC 2017.
ec2b0c3 Build both googletest and googlemock.
75b85d5 Create a autotools-based build for Travis.
e76c3f8 Merge branch 'master' into fix-issue-776-support-autoconf-as-submodule
5490beb Merge pull request #778 from gpakosz/C4389
7990f56 Re-enable MSVC++ C4389 warning in CmdHelperEq()
0062e48 Merge pull request #1357 from bryanzim/master
e17907d Update internal_utils.cmake
773cc78 Merge branch 'master' into master
b5b6a07 Merge branch 'master' into fix-issue-776-support-autoconf-as-submodule
a37eedc Merge pull request #1248 from aninf-wo/hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
782384d Merge pull request #1212 from qzmfranklin/bazel
a7fceb4 Update gtest-param-test.h.pump
8a48f0e Update gtest-param-test.h.pump
058b318 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
a7bd372 Merge branch 'master' into bazel
8cbda54 Merge branch 'master' into master
f6c44fe Merge branch 'master' into fix-issue-776-support-autoconf-as-submodule
1865eca Merge pull request #1354 from coryan/fix-top-level-license
3e2cb75 Merge branch 'master' into josh/fix_scoped_class2
f34cbef Merge branch 'fix-top-level-license' of github.com:coryan/googletest into fix-top-level-license
23a014a Refactor docs about contributions to CONTRIBUTING.md.
4c8e288 Merge branch 'master' into master
cb95f31 Merge branch 'master' into fix-top-level-license
0fe9660 Merge pull request #1355 from coryan/blaze-build-travis
74a5306 remove extra line
3ea0631 remove implicit casts
ed811dc Merge branch 'master' into blaze-build-travis
f98c20b Merge branch 'master' into master
55fca19 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
5920230 Merge pull request #1333 from sam-lunt/use-system-includes
c82cd5e Also add documentation around becoming a contributor.
1184117 Wrong LICENSE file, sorry. Corrected. [skip ci]
bc3320b Implement bazel-based builds in Travis.
e22d344 Add Apache-2.0 LICENSE file.
10ef1d9 Merge branch 'master' into use-system-includes
d6a4478 Merge branch 'master' into master
cc372a0 Merge pull request #1340 from coryan/fix-googlemock-test-build-file
cf3adad Add licenses() directive for googlemock/tests.
a30e15b Merge branch 'master' into fix-issue-776-support-autoconf-as-submodule
8f90d46 Merge branch 'master' into fix-argc
4aae160 Merge branch 'master' into master
cdedd18 Merge branch 'master' into fix-core-dump-shared
4d1f930 Merge pull request #1345 from coryan/fix-travis-build-macOS
efc6aba Merge branch 'master' into fix-travis-build-macOS
887a6c6 Merge pull request #1348 from wmamrak/master
57bb0bb Remove C4996 warning in VS2017
3464f76 Improved description of VS std::tuple support
8d9d6bb Improved description of VS std::tuple support
4d50715 Fix location of `_NSGetArgv` correction.
ad383b2 Fix value pointed to by `_NSGetArgc()` on macOS
4aa05bd Only switch to g++-4.9 on Linux.
11d21b7 Merge branch 'master' into master
a868e61 Merge pull request #1225 from brian-peloton/master
aea8580 Run autoconf from top-level directory.
0663ce9 Fix double free when building Gtest/GMock in shared libraries and linking a test executable with both.
9e23674 Merge branch 'master' into master
c5cba7d Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
ce919c3 Merge branch 'master' into use-system-includes
247a3d8 Merge pull request #1324 from whame/master
f46bd00 make includes system
6c093a2 Merge branch 'master' of https://github.com/google/googletest
a7269e2 replaced back accidently removed static_cast with consistent ImplicitCast_
4ba3803 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
49eb76d Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
82447f2 Fixes issue #826 by treating MinGW as "non-Windows" when determining colored output
530885c Merge branch 'master' into master
d175c8b Merge pull request #1313 from aninf-wo/heth/fix-faq-stars-issue-1312
43d6ad7 Merge pull request #1308 from KindDragon/vs2017-ci
8866af0 remove markdown stars (bold) from code examples
1ae4096 fix for VS2017 deprecation of ::tr1::tuple change static_cast to ImplicitCast_ for consitency fixes for building with path names containing spaces
b153bfd Enable CI for VS2017
3121b20 Merge pull request #1304 from m-gupta/gtestapifix
e93a15c Merge pull request #913 from Romain-Geissler/fix-gcc-misleading-indentation-warning
060783b Merge branch 'master' into gtestapifix
20e2de7 Remove gcc 6 misleading indentations.
7684db3 Merge pull request #1218 from KindDragon/vs-build-fix
840c711 Fix gmock tests when std::unary_function unavailable
2641b02 Fix tests with VS2015 and VS2017
77380cd Enable C++11 features for VS2015 and VS2017
6d0bb75 Merge pull request #1139 from chehsunliu/master
1beff24 googletest: Add GTEST_API_ attribute to ThreadLocal class.
c208d8d Merge branch 'master' into master
69e48e9 Merge pull request #1300 from gennadiycivil/master
48986f9 Merge branch 'master' into master
54c2648 Workaround for Travis issue https://goo.gl/d5eV8o
27be0df Merge pull request #1298 from google/revert-1297-master
34aaf58 Revert "Workaround for Travis issue https://github.com/travis-ci/travis-ci/is…"
5c95435 Merge pull request #1297 from gennadiycivil/master
dfed97a Workaround for Travis issue https://github.com/travis-ci/travis-ci/issues/8552
3282f9a Merge pull request #1288 from joealam/master
963932e Merge pull request #1292 from DariuszOstolski/master
ecb1c3d #1282: Doc typo fix
4597ec5 Updated README with information about C runtime dynamic/static linking issues in Windows
ceee80c Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
7b6561c Merge pull request #1275 from jwakely/pr/1273
b70cf1a Use gender-neutral pronouns in comments and docs
98024ad Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
f1a87d7 Merge pull request #1249 from stkhapugin/master
89f4518 Merge branch 'master' into master
bfc0ffc Merge pull request #1271 from google/revert-1245-2017_09_04_parametrized
d30a37e Revert "Allow macros inside of parametrized test names."
ff67968 Merge pull request #1245 from sheepmaster/2017_09_04_parametrized
4386393 Merge pull request #1265 from bkircher/redundant-decl
cf512a0 Swap reinterpret_cast for static_cast
d4af64c Remove redundant declaration
deace25 Merge pull request #1259 from ly2048/patch-1
b55abc3 Merge branch 'master' into patch-1
b1dd47c Merge pull request #1255 from yursha/patch-1
9681b4c Add explicit `CMAKE_DEBUG_POSTFIX` option
31b6155 Merge branch 'master' into patch-1
20e62ad Merge pull request #1242 from DarthGandalf/expect
c9cf07a Make the failure messages from EXPECT_EQ and friends actually symmetric,
834baf3 Merge branch 'master' into patch-1
6133038 Merge pull request #1227 from aninf-wo/hethi/unused-import
ecc5182 Merge pull request #1250 from aninf-wo/hethi/remove-linker-warning-on-non-existing-path
eb695b0 Merge branch 'master' into hethi/unused-import
3663d67 Merge pull request #1203 from eidosmontreal/user_logger_instead_of_printf
4f68ab5 Fix ellipsis position in examples
def0b32 Merge pull request #1254 from aninf-wo/hethi/cleanup-travis-environment
803ab9a Merge branch 'master' into hethi/remove-linker-warning-on-non-existing-path
c86fbd7 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS
6508a66 Merge branch 'master' into master
1b5b246 Merge branch 'master' into hethi/unused-import
8620328 Merge branch 'master' into hethi/cleanup-travis-environment
894cdb8 Merge pull request #1251 from aninf-wo/hethi/drop-valgrind-installation-on-travis
f3500ce Merge pull request #1243 from aninf-wo/hethi/travis-release-build
6c0146f use GTEST_ATTRIBUTE_UNUSED_ instead of dummy function
e43a594 Merge branch 'master' into master
900cc4b Merge commit 'a33b6b091999d44f771761be03beb64d3af2350a' into user_logger_instead_of_printf
f6dde80 Removed flush scopes around GTEST_LOG(FATAL) and exit call since FATAL is expected to abort()
bc60b5a Merge branch 'master' into hethi/travis-release-build
a33b6b0 Merge pull request #1246 from aninf-wo/hethi/enable-travis-gcc-cache
8b49116 Merge branch 'master' into support_xboxone
8a3ccc3 Merge pull request #1247 from aninf-wo/hethi/enable-parallel-builds
a92c362 Merge branch 'master' into 2017_09_04_parametrized
78b1ff0 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
be94bf5 remove unused variables from travis environment
857ddea Merge pull request #975 from LebedevRI/respect-option
beca85f drop unused valgrind package from installation
dd8e4a6 reset ccache statistics at install
56f8222 show ccache statistics in log
83d8dd0 call clang via ccache on Linux
9a8794f add a cast
e8c6942 remove obsolete link_directories command
88b7652 Merge branch 'master' into hethi/unused-import
aa0b545 remove GTEST_HAS_PARAM_TESTS
fe97312 limit processors to use in Travis build to 4
98f2f15 install ccache on travis osx build slave
d96a038 set MAKEFLAGS to use multiple processors on Travis CI
48b0662 cache ccache
55fd999 avoid warning about unused variable
8abacca avoid -Wshadow warning on GCC
86e5f00 Add a non-parametrized test.
e7c9e80 Allow macros inside of parametrized test names.
520ad96 treat all warnings as errors for GCC (-Werror)
d15b8b4 switch one build to Release mode
7c6353d Merge pull request #900 from Gallaecio/patch-1
1a62d1b CMake: use threads if allowed and found, not just if found.
52b6ca3 Merge pull request #783 from tobbi/cppcheck_perf_fixes
e4f6c0b Merge pull request #1011 from zeitounator/wrong-version-reported
b3a1f87 Merge pull request #1235 from aninf-wo/hethi/issue-1175-cmake-build-type
ee53b28 Merge branch 'master' into user_logger_instead_of_printf
69e794c Merge pull request #870 from KindDragon/mingw64-appveyour
633488a Merge branch 'master' into mingw64-appveyour
836c194 Merge pull request #1241 from aninf-wo/hethi/issue-635-old-links
8282229 Merge branch 'master' into mingw64-appveyour
2a720ac Merge branch 'master' into hethi/issue-1175-cmake-build-type
e033d8c change links from former code.google.com to current github repository
92e9207 Merge pull request #1240 from aninf-wo/hethi/fix-faq-example-comment
7f27d8b Merge branch 'master' into hethi/issue-1175-cmake-build-type
84bd72b Merge branch 'master' into hethi/fix-faq-example-comment
14cf7f5 fix example's comment
a430e9c Merge pull request #865 from frosteyes/master
3eaba9f Merge branch 'master' into master
34355c0 Merge remote-tracking branch 'github_google/master' into master-github_frosteyes
1a8ba67 Merge branch 'master' into hethi/unused-import
d6c46eb Merge branch 'master' into hethi/issue-1175-cmake-build-type
16bfba0 Merge pull request #1230 from aninf-wo/hethi/travis-unused-cmake
5dde668 AppVeyor MinGW-w64 test build
7f8fefa Merge pull request #1237 from sgraham/update-docs-3
cfcc89a Merge branch 'master' into hethi/issue-1175-cmake-build-type
fa70b84 Removed "Trivial"
c4e0161 removed internal link ( not allowed in OSS)
0eb49f4 Note that it is preferable for Googlers to create a CL internally first
bb1c4af Merge branch 'master' into master
9ba7946 create different python based tests for single and multi configuration build generators
c4ec2ac Merge branch 'master' into hethi/travis-unused-cmake
4db9a74 Merge branch 'master' into hethi/unused-import
47ad299 Revert "ask cmake for per-configuration output subdir"
5d431c6 Merge pull request #1236 from aninf-wo/hethi/issue-1087-fix-advancedguide
73d58dd ask cmake for per-configuration output subdir
7529c8a remove obsolete comment regarding python tests on linux
f0c72bf fix SetUp/TearDownTestCase() in AdvancedGuide
dae044d use upper-case build type
cc246ec use build type set in .travis.yml
d6562b5 Merge branch 'master' into hethi/unused-import
c780e0e Merge branch 'master' into hethi/travis-unused-cmake
71e2858 Merge pull request #1226 from aninf-wo/hethi/fix-typo
5bd8e83 Merge branch 'master' into hethi/fix-typo
298cd5e Merge pull request #1233 from aninf-wo/hethi/typo-issue-1105
b46755b Merge pull request #1229 from aninf-wo/hethi/typo-xUnit
58fd184 Merge branch 'master' into hethi/typo-xUnit
c4126e0 Merge pull request #1232 from aninf-wo/hethi/travis-reduce-buildjobs
24ceb4f Merge pull request #1231 from aninf-wo/heth/travis-verbose-make
c3d1d33 Detect Fuchsia, and set GTEST_HAS_PTHREAD on GTEST_OS_FUCHSIA
bb8399e use plural verb as mentioned in issue #1105
29c07aa remove Yob's comma mentioned in issue #1105
d33861d run combined build only
4a45157 switch on verbose make
8364718 remove non-existing gmock_build_samples switch
30c1e00 Merge branch 'master' into hethi/typo-xUnit
96f3745 Merge pull request #1189 from alyssawilk/flag-default
fe760e9 fix typo: xUnit
b567aad remove unused TestCase import
daaed2b fix typo in comment and string (SetUpTestCase)
fa5d3b3 Applying lint checks from upstream google3
c003733 Merge branch 'refs/heads/master' into flag-default
4d26df7 Speed up printing of characters which need hex escaping
b43bfcf Merge pull request #1222 from KindDragon/vs-projects-fix3
a1c332c Merge branch 'master' into support_xboxone
a7eeb69 Merge branch 'master' into vs-projects-fix3
f259215 Merge pull request #1221 from KindDragon/vs-projects-fix2
cb8ebf5 Support x64 configuration for old VS2015 projects
45287f3 Remove gtest VS2005 projects
eabd5c9 Merge pull request #1186 from Dani-Hub/master
87327b1 Merge branch 'master' into master
c38baf9 Merge pull request #1219 from KindDragon/vs-projects-fix
ebc7b01 Merge branch 'master' into master
79cdf97 Merge branch 'master' into bazel
f4abce4 Merge branch 'master' into vs-projects-fix
863e026 Merge pull request #1220 from romkatv/property-matcher
88269cd Support x64 configuration for old VS2010 projects
f8514b8 Merge branch 'master' of github.com:Dani-Hub/googletest
d93ce9d Merge branch 'master' of github.com:Dani-Hub/googletest
fa3bb1a Merge branch 'master' of github.com:Dani-Hub/googletest
6404d45 Merge branch 'master' of github.com:Dani-Hub/googletest
966b549 Support ref-qualified member functions in Property().
8304d06 Merge branch 'master' into master
96f7ba8 Merge branch 'master' into wrong-version-reported
675686a Merge pull request #1206 from ShadowIce/methodname-in-exception
1ee8079 Remove unused variable
a838de3 Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
3cf65b5 Added "explicit" as per compiler suggestion
026735d Proposing these changes, please review
f52c95d Merge branch 'master' into bazel
35737ac Merge branch 'master' into methodname-in-exception
780bae0 Merge pull request #1215 from henryiii/patch-1
5518a1d Adding CMake visibility policy setting
b0ed43e Change tabs to spaces in test case
99d0ef3 Also can build when included in source.
9538687 Remove trailing whitespaces in BUILD.bazel
3677725 Switch return type to class without default constructor
cc99900 Fix test if exceptions are not supported
95f18d9 adds test for NiceMock with unknown return value
cb91651 Merge branch 'master' into support_xboxone
1183503 Merge branch 'master' into methodname-in-exception
1fe692c Update README.md
b082ad2 Merge branch 'master' into support_xboxone
cf85f56 Merge branch 'master' into josh/fix_scoped_class2
8f233a7 Merge branch 'master' into methodname-in-exception
b7e8a99 Merge pull request #1205 from mwoehlke-kitware/fix-gtest-install
960de71 Merge branch 'master' into josh/fix_scoped_class2
a2803bc Handling invalid flag values
5b4166f Add function name to exception if there's no default action
9469fb6 Fix problem installing gtest when gmock enabled
5ed471c Merge pull request #1204 from gennadiycivil/master
08b1a1f Merge branch 'master' into master
3f3a3ad Change AppVeyor Status Badge to point to new AppVeyor Project Location
a4121dd Change AppVeyor Status Badge to point to new AppVeyor Project Location
ca76206 Removed extra colon in error log
e0fc65c Merge pull request #1197 from SoapGentoo/pkgconfig
0c3c811 Merge remote-tracking branch 'origin/master' into user_logger_instead_of_printf
8f04622 Use GTEST_LOG instead of printf
6219d60 Merge remote-tracking branch 'origin/master' into support_xboxone
c113a71 Added support for WINAPI_PARTITION_TV_TITLE which is defined on XboxOne
9cacce4 Add documentation for pkg-config
8604c4a Add support for pkgconfig
24696c3 Merge branch 'master' into master
673c975 Merge pull request #905 from iignatev/master
9816b96 Merge pull request #857 from KindDragon/patch-1
c7f4849 Merge pull request #919 from delaitre/patch-1
052df99 Merge pull request #749 from nholthaus/patch-1
e533ff4 Merge pull request #926 from bartshappee/patch-1
e3bd4cb Merge pull request #1160 from mwoehlke-kitware/honor-lib_suffix
c81be0f Merge pull request #871 from tommyleo2/master
c523461 Merge pull request #937 from srz-zumix/fix-gtest-port-typo
4283f26 Merge pull request #957 from sglass68/sim
c822c85 Merge pull request #1164 from aninf-wo/hethi/remove-old-docs
1579064 Merge pull request #1127 from zulkarnine/patch-1
cfab28d Merge pull request #1192 from eduherminio/master
e578186 Merge pull request #1191 from gennadiycivil/master
97a8498 Addressing Comments
c3f6533 Addressing comments
b11b2e4 Merge branch 'master' of github.com:Dani-Hub/googletest
07bba78 Merge branch 'master' of github.com:Dani-Hub/googletest
4e284ee Update WORKSPACE
dc7214f say "former version" instead of "released version"
713b077 Fix scoped enum not working in gmock-gen.py
854b28f Minor style fixes
cb5b054 Added Copyright
b98e30b Initial Revision, review 164634031
6e1970e Adding a flag option to change the default mock type
75f0723 Merge pull request #1178 from aninf-wo/hethi/testsuite-hint
c09e9e6 clarify distinction regarding Test Case
0e8e0e0 Fix library install destinations
66a0369 WIP
2606c7a Merge branch 'master' of github.com:Dani-Hub/googletest
71ca4ba Infinite Loop when calling a mock function that takes boost::filesystem::path as parameter #521: Add is_same type trait and prevent infinite loops for recursive containers
484ec91 Infinite Loop when calling a mock function that takes boost::filesystem::path as parameter #521: Add is_same type trait
5a5e3c1 Added googlemock tests
4f5c01b Added googlemock tests
ac885f3 WIP
33edcae be more specific on Test Case
b322d1d Merge pull request #1185 from eduherminio/master
67fcf00 Punctuation
e022dcd Merge branch 'master' into hethi/remove-old-docs
461713f Merge pull request #1123 from chromy/upstream-141765019
aadf53d Merge pull request #1122 from chromy/upstream-146491438
ab8f2b0 WIP, win testing
e66b6bc WIP, win testing
40a909b WIP, windows testing
a2006b2 WIP, windows testing
c75de0a WIP, windows testing
8815087 WIP
6ae9cc7 Merge pull request #925 from edgarriba/patch-1
40aa72c Merge pull request #675 from theHacker/master
f8d909d Merge pull request #1173 from shlomif/correct-typo
22d1a7a Merge pull request #909 from AsturaPhoenix/patch-1
7890f72 Merge pull request #1180 from aconverse/master
ca6a70c Pass MSVC's C4826 warning.
eb261b4 Merge pull request #1176 from aninf-wo/hethi/typo
aecea38 Samples changes upstreaming
52a9c14 Samples changes upstreaming
0f702ce add note about different definitions of Test Case
212f4d7 fix small typo in comment
aac4033 Correct some typos in a comment
deb99a9 Use wider types to prevent unsigned overflow diagnostics
ca102b1 Merge pull request #1030 from vpfautz/master
50f3baf Merge pull request #1172 from joelypoley/joelypoley-patch-1
568958e Fixed cmake policy issue
28bb854 Merge pull request #1042 from danilcha/patch-1
fa388e9 Merge pull request #1170 from Manozco/1169_fix_old_cmake_issue
b68f1e7 Fix policy issue with old cmakes
d655d09 Merge pull request #867 from marzojr/patch-1
e1f3d8d Merge pull request #671 from mehagar/patch-1
683fcf5 Merge pull request #782 from Manozco/709-cmake-policy-project-version
0cb2eeb Merge pull request #764 from flyd1005/wip-fix-typo
73f3215 Merge pull request #962 from klimkin/klimkin-patch-typo
032baa0 Merge pull request #998 from dawikur/patch-1
d966d5f Merge pull request #968 from nicolacavallini/link_typed_test_docs
aa31cb6 WIP
6615f7d WIP
e2e37c9 Merge pull request #1147 from pbos/gtest_parallel_link
b3edada WIP
f63e2a1 WIP
7755e5d Merge pull request #1167 from krizalys/fix-typo
f08b1c3 Merge pull request #1165 from aninf-wo/hethi/fix-doc-links
623616a Fixed typo
ec19d45 fix links to Google C++ Style Guide
6b89677 remove doc of former versions
58b4227 remove obsolete reference to SVN trunk and fix link to pump manual
b390840 remove doc of former versions
f6ac9a3 remove obsolete reference to SVN trunk
e5b88b2 Merge pull request #1137 from coryan/master
6527ee0 Merge pull request #1107 from lipk/patch-1
75bb586 Merge pull request #1158 from junr03/fix-link
5c27913 docs: fix broken link
b9427ca Merge pull request #1143 from nyibbang/patch-1
7c3496c Merge pull request #1126 from junr03/fix-broken-link
2960aa5 Remove duplicate code
a6b146d Fix assumption for foreground bit offset
1b39c3d Add gtest-parallel to open-source projects.
4568374 Fixes a typo in FAQ.md
509f7fe Update googletest README.md
0ffd862 More tables that did not render correctly.
2fcbc0c Remove silly claim that C++ lacks lambdas.
f20797b Same fixes for "current" version.
1dde1ee Fix typos too s/destoyed/destroyed/
280b227 Fix table formatting.
c958e26 *Silence false positive memory leaks reported by Microsoft's debug CRT*
6a75e3c Remove unnecessary const
26b7ac3 Add helper functions for text color calculation
4bab34d Merge pull request #1081 from krytarowski/netbsd-1
f050aff Merge pull request #1129 from Chris-Sharpe/master
271fb8f Fix a problem when bg_color == fg_color
19cace2 Colouring in help text
365df11 Add background_mask instead of using magic number
649aa29 Fix background color in ColoredPrintf
38ec2a1 docs: fix broken link from dummies guide to cook book
41ad243 Fix typo in gmock-actions.h
24054ff Fixed misspelling in assertion message.
e494290 Allow death test child to bypass WER under MinGW
c2d90bd Create gtest-internal.h
a44bbab Merge pull request #1113 from jorgehb/patch-1
00ed9b5 Fixing float comparison broken link
dca9d5f Remove unnecessary 'the'.
42bc671 Merge pull request #1091 from nico/wmicro
59c795c Merge pull request #1096 from gennadiycivil/add-ability-for-custom-temdir-1093
76491b7 Changes add ability to overwrite TempDir(), issue https://github.com/google/googletest/issues/1093
7cc548d Merge pull request #1089 from nico/stdstring
078d5d9 Merge pull request #1090 from nico/typo
2a5d67c Merge pull request #1092 from nico/comment
e1466ba Gender-neutralize comments in gtest.h.
09fd5b3 Use std::string and ::string explicitly in gtest and gmock code.
b2cbbec Fix -Wmicrosoft-cast warnings when using gtest with clang on Windows.
6c0c8a7 Fixing typo in documentation.
294f72b Merge pull request #725 from donhuff/xcode-headers
8c7f93f Merge pull request #1078 from pwnall/gtest_api_port
887d569 Merge pull request #965 from davidben/format-attr
fac0dfb Add NetBSD support
b7cf441 Pick up GTEST_API_ definition in gtest/internal/custom/gtest-port.h.
0ad83af Merge pull request #1034 from dankegel/master
69c6db2 Merge pull request #1077 from gennadiycivil/make-temp-dir-public-issue-1076
611e8a9 Changes to make TempDir() public
a6418a4 Merge remote-tracking branch 'github_google/master' into master-github_frosteyes
5ff6805 Again rewrote everything
81bc876 Added explicit gtest library dependency
b6c4d43 Update README.md
b2521c8 Update README.md
518e051 Minimal changes to fix build failures on Microsoft Visual Studio 2015
a2451c7 Fixed some typos
aa148eb Merge pull request #1029 from google/BillyDonahue-patch-3
ba63868 Remove /tree/ from Readme.md links.
51143d5 Merge pull request #996 from srz-zumix/fix-error
b74070c googlemock version must be changed as well
fa892af Wrong version reported (1.7.0 should be 1.8.0)
51d92b2 Replace html entities with their equivalents
9655b9f fix typo /GTEST_ATTRIBUTE_UNUSED/GTEST_ATTRIBUTE_UNUSED_/
d62d6c6 Merge pull request #982 from mbjorge/unused-variable-fix
9ae086a Merge pull request #874 from sejr/master
3134af2 Merge pull request #1 from google/master
06a81e9 Add GTEST_ATTRIBUTE_UNUSED_ to REGISTER_TYPED_TEST_CASE_P
2eaab21 added link to sample 6 in the documentation of typed test
53c478d Annotate ColoredPrintf with the format attribute and fix bugs.
5e7fd50 Merge pull request #658 from audiofanatic/ExternalProject_at_configure_time
c0059a7 2.6.4 is the minimum CMake version, so enforce it (#656)
cb502b7 Added CMake configure-time download instructions to docs
3ec0052 Fix a typo
0fdf78b Fix a few documentation nits in the mock dummies guide
75b683d Fix or condition typo ( '|' -> '||' )
bef93f3 Fix small typo SeArrayArgument
21ccd61 update README.md with tiny-dnn
008e54c Fix #923 - support CMAKE_CROSSCOMPILING_EMULATOR for tests
a2b8a8e Merge pull request #918 from DanAlbert/fix-android-GTEST_HAS_CLONE
9697746 Fix the link to the float comparison article
3447fc3 Merge pull request #728 from DanAlbert/tuple-stlport
4eafafb Fix detection of GTEST_HAS_CLONE for Android.
0b6d947 Update Primer.md
7fbc598 enable null detection on Solaris Studio 12u4+
194e3c8 Fix WhenSorted() documentation example
ecd5308 Merge pull request #876 from marco-m/patch-1
8ce0b59 Cookbok: fix broken relative link
32b4a9b Fixed broken links
0e0ff5c blob vs tree
960a511 Fixing relative links
995db99 Fixing KnownIssues and FrequentlyAskedQuestions links
f5c0130 Broken relative links fixed
9cb03aa Fixing ForDummies link
51b290d One works
16d6af7 Relative links
10ff7f9 Fixing relative links
48ee8e9 Merge pull request #856 from KindDragon/mingw-appveyor
d8fe70f Fix build with MinGW-w64
f700442 Clarifying language
82396f2 Update Primer.md
68f19fa Moved the ignoring of *.pyc files to top level for also covering googlemock python scripts.
1cff146 Add links to IRC channel and Google Group
ed9d1e1 Merge pull request #721 from ilmagico/fix-mingw-threads
ec44c6c Merge pull request #821 from mazong1123/master
dc2dbf1 Reformatted the Unprintable operator== code style.
531bf5c Fixed issue #775
d406cb1 Merge pull request #814 from google/BillyDonahue-patch-2
e51026e Add Appveyor badge to Readme.md
8134585 Merge pull request #723 from KindDragon/master
43c0ae3 Support running MSVC build on AppVeyour
10799ab Merge pull request #810 from google/rollback_808
ce7ec96 Rollback change #808.
faee7d1 Merge pull request #808 from djmott/master
2489c30 Fix to tests that return object which implement operator bool
e35015f fix to operator precedence in GTEST_TEST_BOOLEAN_ with expressions that implement operator bool
08d76be Performance fixes reported by cppcheck
a7ab054 Issue 709: Fix Cmake policy 0048
0a43962 Merge pull request #773 from mazong1123/master
5bae126 Added VS 2015 project support.
01f3d09 Updated the value of GTEST_DIR to reflect the googletest dir.
2746b57 Changed the GTestDir marco value to reflect the new dir of googletest.
266a185 remove duplicated words
1d1b306 made capitalization more consistent with other projects.
c88525f added related open source project
d225acc Merge pull request #741 from mbinna/patch-1
2071474 Fix whitespace in paragraph
72416fa Merge pull request #724 from duggelz/master
d254052 Update C++ language and library settings to match SDK projects.
eba1796 Merge pull request #735 from phad/patch-1
0098be3 Fix typo (Inovke -> Invoke)
f7248d8 Merge pull request #731 from mattrajca/patch-1
62700bd Fixed typo ('XCode' -> 'Xcode')
3429113 Fix a test to compile when tuple isn't available.
d23cf2b Restructure test so each scenario is independent.
6991f42 Fix env_var_test to ignore XML_OUTPUT_FILE if already set
5db9cbb Restructure $XML_OUTPUT_FILE logic
12b2f23 Fix inconsistent style
407b0aa Add missing headers to Xcode framework target.
d6790f2 Read Bazel's $XML_OUTPUT_FILE environment variable
a138385 Don't use pthread when on MinGW even if available
9759dcd Fix compilation on MinGW with native threads
ff07a5d Merge pull request #719 from paul-wilkinson/docs_formatting_fix
83d3b47 Fix formatting in AdvancedGuide.md
77d6b17 Merge pull request #713 from DarthGandalf/expect
5909d44 Merge pull request #715 from jacob-meacham/bugfix/expect-call
f5acf22 Merge pull request #716 from jacob-meacham/feature/gitignore
d4aa34b Fix link that's returned when running tests. #714
b648a30 Add build artifacts to git ignore.
f364e18 Change error message of EXPECT_EQ to treat lhs and rhs equivalently.
ff5ffd4 Merge pull request #688 from tamland/python3
a9b73f8 Merge pull request #699 from achimnol/master
340c6b3 Add tmux and tmux-256color to the colored terminal list.
82b11b8 Merge pull request #678 from pjaytycy/master
456fc2b add python 3 support to fuse_gtest_files script
d404af0 add python 3 support to tests
d8df1fb Add link to Google Test Primer docs in README.md
62b167e Fix: Markdown in V1_7_Primer.md
ff72632 Fix typo in AdvancedGuide.md
13206d6 Merge pull request #670 from dawikur/master
ac35fe7 Update GTEST_PROJECT_URL_ in internal/gtest-port.h
ddb8012 Merge pull request #602 from mtbrandy/threadcount_aix
0162ff7 Merge pull request #657 from audiofanatic/issue655-targetHeaderDeps
c1cd9c2 Merge pull request #650 from jpuigcerver/master
57b376a Merge pull request #660 from waynix/FixLinks
a470862 fixed link in googlemock documentation
f601ee1 Add include dirs to targets if CMake version supports it
35fb11e Merge pull request #654 from cmorse/doc_fix
ebd1d08 Fix link to FAQ in Primer.md
7c8ac48 Added CMake install rules for GMock
1f8fe13 Merge pull request #647 from mithro/patch-1
16b9bbc Fix AdvancedGuide link in FAQ.md
2f93e2d Merge pull request #636 from ReadmeCritic/master
6fe019e Merge pull request #607 from google/BillyDonahue-patch-1
3c3a4ac Merge pull request #640 from Ali-Se/patch-2
96bba4d Merge pull request #638 from KindDragon/patch-1
ccd0f94 Merge pull request #592 from Ferenc-/master
25409ab Fixing some table error in file
83b93ea Update FAQ.md
3aef7d7 Update README URLs based on HTTP redirects
ffce1a8 Merge pull request #633 from plopresti/master
f44190f Fix missing-field-initializers GCC/Clang warning (issue 433).
93c37d5 Merge pull request #632 from nocnokneo/add-cmake-install-rules
884dd08 Merge pull request #628 from fjunqueira/patch-1
c4c2354 Merge pull request #614 from DukeXar/master
98d988d Add CMake install rules for gtest libraries and headers
786564f Merge pull request #627 from mark-chromium/tests_msvs
4a8e544 Name the helper AsBits()
cfe466a Use a templated helper to wrap the cast
cbce23f Leave decltype(max_ulps_) alone and cast, not sure this is better
322a491 Better use of character constants
4a0b77f Create CMakeLists.txt
8b085f0 Fix warnings encountered in MSVC build of gtest/gmock tests
71a26ac Merge pull request #612 from mark-chromium/gmock_rtti
5bd7c2b Merge pull request #611 from mark-chromium/gmock_cxx11
cf51737 Merge pull request #605 from d-meiser/fix-visibility-hidden
84d7ff1 Fix symbol visibility of StreamingListener.
580378d Add an option to enable building with -fvisibility=hidden.
bb5c92f Fix definition of GTEST_API_ macro for gcc and clang [#451].
4335964 Merge pull request #616 from anuragsoni/documentation/fix-readme-for-googletest
788dee9 update googletest readme to fix broken links
6705b9a Override clang++ name on Linux only
bbbc025 More docs in travis config
b8f9b2b Update clang version
e8193fe Adding llvm toolchain repo
c76f9e0 Update .travis.yml
231af5d Try to use clang-3.6 in travis
58b5435 Update .travis.yml
c81cf6b Update .travis.yml
c8a1050 googlemock: Disable WhenDynamicCastToTest tests when RTTI is off
a0435dc googlemock: Support C++11 language with pre-C++11 library
554ca00 Update DevGuide.md
7f4448f Merge pull request #604 from marco-m/urls-should-go-to-github
6adbc86 Fix relative links in documentation
c65f6ce Update URLs from googlecode to github
bf7e9e8 Add include of sys/types.h.
a7964a3 Implement GetThreadCount for AIX.
0dd5ef8 Merge pull request #597 from marco-m/patch-1
e35cee9 Fix broken link to FrequentlyAskedQuestions
9751f4d Merge pull request #594 from martinmaly/gmock
c8c8f8c Merge pull request #593 from martinmaly/distcheck
210392e Adding missing files to googlemock distribution.
48368f0 Adding missing header files to the distribution.
30846f3 Fix typo in googlemock/README.md
b16fc6a Merge pull request #591 from google/BillyDonahue-patch-1
8cb0499 Fix relative links in googlemock docs.
31eb85e Merge pull request #589 from nomis52/master
39062f4 Fix the googlemock autotools build.
de411c3 Merge pull request #585 from orgads/warning-fix
904ad18 Fix unused static variable warning on Windows
b78f858 Include <memory> to use std::unique_ptr.
f19b060 Googlemock has some tuples containing lvalue refs in its unit tests. These tuples are created with make_tuple, which is given temporaries. The make_tuple is in a function argument list.
99166db Merge pull request #579 from daus-salar/patch-1
11ae388 Merge pull request #582 from dmircevski/build-c++11
517b3bd Add c++11 build to the Travis matrix.
6460005 FIX add missing blank line between text and table
Change-Id: I76292b2f128cd7f314fb89a97124baf3fda8e649
git-subtree-dir: third_party/googletest
git-subtree-split: 2fe3bd994b3189899d93f1d5a881e725e046fdc2
diff --git a/googletest/include/gtest/internal/custom/README.md b/googletest/include/gtest/internal/custom/README.md
new file mode 100644
index 0000000..ff391fb
--- /dev/null
+++ b/googletest/include/gtest/internal/custom/README.md
@@ -0,0 +1,56 @@
+# Customization Points
+
+The custom directory is an injection point for custom user configurations.
+
+## Header `gtest.h`
+
+### The following macros can be defined:
+
+* `GTEST_OS_STACK_TRACE_GETTER_` - The name of an implementation of
+ `OsStackTraceGetterInterface`.
+* `GTEST_CUSTOM_TEMPDIR_FUNCTION_` - An override for `testing::TempDir()`. See
+ `testing::TempDir` for semantics and signature.
+
+## Header `gtest-port.h`
+
+The following macros can be defined:
+
+### Flag related macros:
+
+* `GTEST_FLAG(flag_name)`
+* `GTEST_USE_OWN_FLAGFILE_FLAG_` - Define to 0 when the system provides its
+ own flagfile flag parsing.
+* `GTEST_DECLARE_bool_(name)`
+* `GTEST_DECLARE_int32_(name)`
+* `GTEST_DECLARE_string_(name)`
+* `GTEST_DEFINE_bool_(name, default_val, doc)`
+* `GTEST_DEFINE_int32_(name, default_val, doc)`
+* `GTEST_DEFINE_string_(name, default_val, doc)`
+
+### Logging:
+
+* `GTEST_LOG_(severity)`
+* `GTEST_CHECK_(condition)`
+* Functions `LogToStderr()` and `FlushInfoLog()` have to be provided too.
+
+### Threading:
+
+* `GTEST_HAS_NOTIFICATION_` - Enabled if Notification is already provided.
+* `GTEST_HAS_MUTEX_AND_THREAD_LOCAL_` - Enabled if `Mutex` and `ThreadLocal`
+ are already provided. Must also provide `GTEST_DECLARE_STATIC_MUTEX_(mutex)`
+ and `GTEST_DEFINE_STATIC_MUTEX_(mutex)`
+* `GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)`
+* `GTEST_LOCK_EXCLUDED_(locks)`
+
+### Underlying library support features
+
+* `GTEST_HAS_CXXABI_H_`
+
+### Exporting API symbols:
+
+* `GTEST_API_` - Specifier for exported symbols.
+
+## Header `gtest-printers.h`
+
+* See documentation at `gtest/gtest-printers.h` for details on how to define a
+ custom printer.
diff --git a/googletest/include/gtest/internal/custom/gtest-port.h b/googletest/include/gtest/internal/custom/gtest-port.h
index 7e744bd..cd85d95 100644
--- a/googletest/include/gtest/internal/custom/gtest-port.h
+++ b/googletest/include/gtest/internal/custom/gtest-port.h
@@ -27,39 +27,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Injection point for custom user configurations.
-// The following macros can be defined:
-//
-// Flag related macros:
-// GTEST_FLAG(flag_name)
-// GTEST_USE_OWN_FLAGFILE_FLAG_ - Define to 0 when the system provides its
-// own flagfile flag parsing.
-// GTEST_DECLARE_bool_(name)
-// GTEST_DECLARE_int32_(name)
-// GTEST_DECLARE_string_(name)
-// GTEST_DEFINE_bool_(name, default_val, doc)
-// GTEST_DEFINE_int32_(name, default_val, doc)
-// GTEST_DEFINE_string_(name, default_val, doc)
-//
-// Test filtering:
-// GTEST_TEST_FILTER_ENV_VAR_ - The name of an environment variable that
-// will be used if --GTEST_FLAG(test_filter)
-// is not provided.
-//
-// Logging:
-// GTEST_LOG_(severity)
-// GTEST_CHECK_(condition)
-// Functions LogToStderr() and FlushInfoLog() have to be provided too.
-//
-// Threading:
-// GTEST_HAS_NOTIFICATION_ - Enabled if Notification is already provided.
-// GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - Enabled if Mutex and ThreadLocal are
-// already provided.
-// Must also provide GTEST_DECLARE_STATIC_MUTEX_(mutex) and
-// GTEST_DEFINE_STATIC_MUTEX_(mutex)
-//
-// GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
-// GTEST_LOCK_EXCLUDED_(locks)
+// Injection point for custom user configurations. See README for details
//
// ** Custom implementation starts here **
diff --git a/googletest/include/gtest/internal/custom/gtest-printers.h b/googletest/include/gtest/internal/custom/gtest-printers.h
index 60c1ea0..eb4467a 100644
--- a/googletest/include/gtest/internal/custom/gtest-printers.h
+++ b/googletest/include/gtest/internal/custom/gtest-printers.h
@@ -31,8 +31,8 @@
// installation of gTest.
// It will be included from gtest-printers.h and the overrides in this file
// will be visible to everyone.
-// See documentation at gtest/gtest-printers.h for details on how to define a
-// custom printer.
+//
+// Injection point for custom user configurations. See README for details
//
// ** Custom implementation starts here **
diff --git a/googletest/include/gtest/internal/custom/gtest.h b/googletest/include/gtest/internal/custom/gtest.h
index c27412a..4c8e07b 100644
--- a/googletest/include/gtest/internal/custom/gtest.h
+++ b/googletest/include/gtest/internal/custom/gtest.h
@@ -27,11 +27,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Injection point for custom user configurations.
-// The following macros can be defined:
-//
-// GTEST_OS_STACK_TRACE_GETTER_ - The name of an implementation of
-// OsStackTraceGetterInterface.
+// Injection point for custom user configurations. See README for details
//
// ** Custom implementation starts here **
diff --git a/googletest/include/gtest/internal/gtest-death-test-internal.h b/googletest/include/gtest/internal/gtest-death-test-internal.h
index 2b3a78f..0a9b42c 100644
--- a/googletest/include/gtest/internal/gtest-death-test-internal.h
+++ b/googletest/include/gtest/internal/gtest-death-test-internal.h
@@ -27,12 +27,11 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
-//
-// The Google C++ Testing Framework (Google Test)
+// The Google C++ Testing and Mocking Framework (Google Test)
//
// This header file defines internal utilities needed for implementing
// death tests. They are subject to change without notice.
+// GOOGLETEST_CM0001 DO NOT DELETE
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
@@ -53,6 +52,9 @@
#if GTEST_HAS_DEATH_TEST
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
+/* class A needs to have dll-interface to be used by clients of class B */)
+
// DeathTest is a class that hides much of the complexity of the
// GTEST_DEATH_TEST_ macro. It is abstract; its static Create method
// returns a concrete class that depends on the prevailing death test
@@ -136,6 +138,8 @@
GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest);
};
+GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251
+
// Factory interface for death tests. May be mocked out for testing.
class DeathTestFactory {
public:
@@ -218,14 +222,18 @@
// can be streamed.
// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in
-// NDEBUG mode. In this case we need the statements to be executed, the regex is
-// ignored, and the macro must accept a streamed message even though the message
-// is never printed.
-# define GTEST_EXECUTE_STATEMENT_(statement, regex) \
- GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
- if (::testing::internal::AlwaysTrue()) { \
- GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
- } else \
+// NDEBUG mode. In this case we need the statements to be executed and the macro
+// must accept a streamed message even though the message is never printed.
+// The regex object is not evaluated, but it is used to prevent "unused"
+// warnings and to avoid an expression that doesn't compile in debug mode.
+#define GTEST_EXECUTE_STATEMENT_(statement, regex) \
+ GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
+ if (::testing::internal::AlwaysTrue()) { \
+ GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
+ } else if (!::testing::internal::AlwaysTrue()) { \
+ const ::testing::internal::RE& gtest_regex = (regex); \
+ static_cast<void>(gtest_regex); \
+ } else \
::testing::Message()
// A class representing the parsed contents of the
@@ -264,53 +272,6 @@
// the flag is specified; otherwise returns NULL.
InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag();
-#else // GTEST_HAS_DEATH_TEST
-
-// This macro is used for implementing macros such as
-// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where
-// death tests are not supported. Those macros must compile on such systems
-// iff EXPECT_DEATH and ASSERT_DEATH compile with the same parameters on
-// systems that support death tests. This allows one to write such a macro
-// on a system that does not support death tests and be sure that it will
-// compile on a death-test supporting system.
-//
-// Parameters:
-// statement - A statement that a macro such as EXPECT_DEATH would test
-// for program termination. This macro has to make sure this
-// statement is compiled but not executed, to ensure that
-// EXPECT_DEATH_IF_SUPPORTED compiles with a certain
-// parameter iff EXPECT_DEATH compiles with it.
-// regex - A regex that a macro such as EXPECT_DEATH would use to test
-// the output of statement. This parameter has to be
-// compiled but not evaluated by this macro, to ensure that
-// this macro only accepts expressions that a macro such as
-// EXPECT_DEATH would accept.
-// terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED
-// and a return statement for ASSERT_DEATH_IF_SUPPORTED.
-// This ensures that ASSERT_DEATH_IF_SUPPORTED will not
-// compile inside functions where ASSERT_DEATH doesn't
-// compile.
-//
-// The branch that has an always false condition is used to ensure that
-// statement and regex are compiled (and thus syntactically correct) but
-// never executed. The unreachable code macro protects the terminator
-// statement from generating an 'unreachable code' warning in case
-// statement unconditionally returns or throws. The Message constructor at
-// the end allows the syntax of streaming additional messages into the
-// macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH.
-# define GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, terminator) \
- GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
- if (::testing::internal::AlwaysTrue()) { \
- GTEST_LOG_(WARNING) \
- << "Death tests are not supported on this platform.\n" \
- << "Statement '" #statement "' cannot be verified."; \
- } else if (::testing::internal::AlwaysFalse()) { \
- ::testing::internal::RE::PartialMatch(".*", (regex)); \
- GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
- terminator; \
- } else \
- ::testing::Message()
-
#endif // GTEST_HAS_DEATH_TEST
} // namespace internal
diff --git a/googletest/include/gtest/internal/gtest-filepath.h b/googletest/include/gtest/internal/gtest-filepath.h
index 7a13b4b..ae38d95 100644
--- a/googletest/include/gtest/internal/gtest-filepath.h
+++ b/googletest/include/gtest/internal/gtest-filepath.h
@@ -27,21 +27,24 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Author: keith.ray@gmail.com (Keith Ray)
-//
// Google Test filepath utilities
//
// This header file declares classes and functions used internally by
// Google Test. They are subject to change without notice.
//
-// This file is #included in <gtest/internal/gtest-internal.h>.
+// This file is #included in gtest/internal/gtest-internal.h.
// Do not include this header file separately!
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
#include "gtest/internal/gtest-string.h"
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
+/* class A needs to have dll-interface to be used by clients of class B */)
+
namespace testing {
namespace internal {
@@ -203,4 +206,6 @@
} // namespace internal
} // namespace testing
+GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251
+
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
diff --git a/googletest/include/gtest/internal/gtest-internal.h b/googletest/include/gtest/internal/gtest-internal.h
index ebd1cf6..b762f61 100644
--- a/googletest/include/gtest/internal/gtest-internal.h
+++ b/googletest/include/gtest/internal/gtest-internal.h
@@ -27,13 +27,13 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
-//
-// The Google C++ Testing Framework (Google Test)
+// The Google C++ Testing and Mocking Framework (Google Test)
//
// This header file declares functions and macros used internally by
// Google Test. They are subject to change without notice.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
@@ -61,8 +61,8 @@
#include <vector>
#include "gtest/gtest-message.h"
-#include "gtest/internal/gtest-string.h"
#include "gtest/internal/gtest-filepath.h"
+#include "gtest/internal/gtest-string.h"
#include "gtest/internal/gtest-type-util.h"
// Due to C++ preprocessor weirdness, we need double indirection to
@@ -76,6 +76,9 @@
#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
+// Stringifies its argument.
+#define GTEST_STRINGIFY_(name) #name
+
class ProtocolMessage;
namespace proto2 { class Message; }
@@ -96,7 +99,6 @@
namespace internal {
struct TraceInfo; // Information about a trace point.
-class ScopedTrace; // Implements scoped trace.
class TestInfoImpl; // Opaque implementation of TestInfo
class UnitTestImpl; // Opaque implementation of UnitTest
@@ -139,6 +141,9 @@
#if GTEST_HAS_EXCEPTIONS
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4275 \
+/* an exported class was derived from a class that was not exported */)
+
// This exception is thrown by (and only by) a failed Google Test
// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions
// are enabled). We derive it from std::runtime_error, which is for
@@ -150,32 +155,15 @@
explicit GoogleTestFailureException(const TestPartResult& failure);
};
+GTEST_DISABLE_MSC_WARNINGS_POP_() // 4275
+
#endif // GTEST_HAS_EXCEPTIONS
-// A helper class for creating scoped traces in user programs.
-class GTEST_API_ ScopedTrace {
- public:
- // The c'tor pushes the given source file location and message onto
- // a trace stack maintained by Google Test.
- ScopedTrace(const char* file, int line, const Message& message);
-
- // The d'tor pops the info pushed by the c'tor.
- //
- // Note that the d'tor is not virtual in order to be efficient.
- // Don't inherit from ScopedTrace!
- ~ScopedTrace();
-
- private:
- GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace);
-} GTEST_ATTRIBUTE_UNUSED_; // A ScopedTrace object does its job in its
- // c'tor and d'tor. Therefore it doesn't
- // need to be used otherwise.
-
namespace edit_distance {
// Returns the optimal edits to go from 'left' to 'right'.
// All edits cost the same, with replace having lower priority than
// add/remove.
-// Simple implementation of the Wagner–Fischer algorithm.
+// Simple implementation of the Wagner-Fischer algorithm.
// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
enum EditType { kMatch, kAdd, kRemove, kReplace };
GTEST_API_ std::vector<EditType> CalculateOptimalEdits(
@@ -502,9 +490,10 @@
typedef void (*TearDownTestCaseFunc)();
struct CodeLocation {
- CodeLocation(const string& a_file, int a_line) : file(a_file), line(a_line) {}
+ CodeLocation(const std::string& a_file, int a_line)
+ : file(a_file), line(a_line) {}
- string file;
+ std::string file;
int line;
};
@@ -544,6 +533,9 @@
#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
+/* class A needs to have dll-interface to be used by clients of class B */)
+
// State of the definition of a type-parameterized test case.
class GTEST_API_ TypedTestCasePState {
public:
@@ -589,6 +581,8 @@
RegisteredTestsMap registered_tests_;
};
+GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251
+
// Skips to the first non-space char after the first comma in 'str';
// returns NULL if no comma is found in 'str'.
inline const char* SkipComma(const char* str) {
@@ -612,6 +606,37 @@
void SplitString(const ::std::string& str, char delimiter,
::std::vector< ::std::string>* dest);
+// The default argument to the template below for the case when the user does
+// not provide a name generator.
+struct DefaultNameGenerator {
+ template <typename T>
+ static std::string GetName(int i) {
+ return StreamableToString(i);
+ }
+};
+
+template <typename Provided = DefaultNameGenerator>
+struct NameGeneratorSelector {
+ typedef Provided type;
+};
+
+template <typename NameGenerator>
+void GenerateNamesRecursively(Types0, std::vector<std::string>*, int) {}
+
+template <typename NameGenerator, typename Types>
+void GenerateNamesRecursively(Types, std::vector<std::string>* result, int i) {
+ result->push_back(NameGenerator::template GetName<typename Types::Head>(i));
+ GenerateNamesRecursively<NameGenerator>(typename Types::Tail(), result,
+ i + 1);
+}
+
+template <typename NameGenerator, typename Types>
+std::vector<std::string> GenerateNames() {
+ std::vector<std::string> result;
+ GenerateNamesRecursively<NameGenerator>(Types(), &result, 0);
+ return result;
+}
+
// TypeParameterizedTest<Fixture, TestSel, Types>::Register()
// registers a list of type-parameterized tests with Google Test. The
// return value is insignificant - we just need to return something
@@ -626,10 +651,10 @@
// specified in INSTANTIATE_TYPED_TEST_CASE_P(Prefix, TestCase,
// Types). Valid values for 'index' are [0, N - 1] where N is the
// length of Types.
- static bool Register(const char* prefix,
- CodeLocation code_location,
- const char* case_name, const char* test_names,
- int index) {
+ static bool Register(const char* prefix, const CodeLocation& code_location,
+ const char* case_name, const char* test_names, int index,
+ const std::vector<std::string>& type_names =
+ GenerateNames<DefaultNameGenerator, Types>()) {
typedef typename Types::Head Type;
typedef Fixture<Type> FixtureClass;
typedef typename GTEST_BIND_(TestSel, Type) TestClass;
@@ -637,20 +662,23 @@
// First, registers the first type-parameterized test in the type
// list.
MakeAndRegisterTestInfo(
- (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + "/"
- + StreamableToString(index)).c_str(),
+ (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name +
+ "/" + type_names[index])
+ .c_str(),
StripTrailingSpaces(GetPrefixUntilComma(test_names)).c_str(),
GetTypeName<Type>().c_str(),
NULL, // No value parameter.
- code_location,
- GetTypeId<FixtureClass>(),
- TestClass::SetUpTestCase,
- TestClass::TearDownTestCase,
- new TestFactoryImpl<TestClass>);
+ code_location, GetTypeId<FixtureClass>(), TestClass::SetUpTestCase,
+ TestClass::TearDownTestCase, new TestFactoryImpl<TestClass>);
// Next, recurses (at compile time) with the tail of the type list.
- return TypeParameterizedTest<Fixture, TestSel, typename Types::Tail>
- ::Register(prefix, code_location, case_name, test_names, index + 1);
+ return TypeParameterizedTest<Fixture, TestSel,
+ typename Types::Tail>::Register(prefix,
+ code_location,
+ case_name,
+ test_names,
+ index + 1,
+ type_names);
}
};
@@ -658,9 +686,11 @@
template <GTEST_TEMPLATE_ Fixture, class TestSel>
class TypeParameterizedTest<Fixture, TestSel, Types0> {
public:
- static bool Register(const char* /*prefix*/, CodeLocation,
+ static bool Register(const char* /*prefix*/, const CodeLocation&,
const char* /*case_name*/, const char* /*test_names*/,
- int /*index*/) {
+ int /*index*/,
+ const std::vector<std::string>& =
+ std::vector<std::string>() /*type_names*/) {
return true;
}
};
@@ -673,8 +703,10 @@
class TypeParameterizedTestCase {
public:
static bool Register(const char* prefix, CodeLocation code_location,
- const TypedTestCasePState* state,
- const char* case_name, const char* test_names) {
+ const TypedTestCasePState* state, const char* case_name,
+ const char* test_names,
+ const std::vector<std::string>& type_names =
+ GenerateNames<DefaultNameGenerator, Types>()) {
std::string test_name = StripTrailingSpaces(
GetPrefixUntilComma(test_names));
if (!state->TestExists(test_name)) {
@@ -691,12 +723,14 @@
// First, register the first test in 'Test' for each type in 'Types'.
TypeParameterizedTest<Fixture, Head, Types>::Register(
- prefix, test_location, case_name, test_names, 0);
+ prefix, test_location, case_name, test_names, 0, type_names);
// Next, recurses (at compile time) with the tail of the test list.
- return TypeParameterizedTestCase<Fixture, typename Tests::Tail, Types>
- ::Register(prefix, code_location, state,
- case_name, SkipComma(test_names));
+ return TypeParameterizedTestCase<Fixture, typename Tests::Tail,
+ Types>::Register(prefix, code_location,
+ state, case_name,
+ SkipComma(test_names),
+ type_names);
}
};
@@ -704,9 +738,11 @@
template <GTEST_TEMPLATE_ Fixture, typename Types>
class TypeParameterizedTestCase<Fixture, Templates0, Types> {
public:
- static bool Register(const char* /*prefix*/, CodeLocation,
+ static bool Register(const char* /*prefix*/, const CodeLocation&,
const TypedTestCasePState* /*state*/,
- const char* /*case_name*/, const char* /*test_names*/) {
+ const char* /*case_name*/, const char* /*test_names*/,
+ const std::vector<std::string>& =
+ std::vector<std::string>() /*type_names*/) {
return true;
}
};
@@ -823,31 +859,6 @@
#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \
GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T))
-// Adds reference to a type if it is not a reference type,
-// otherwise leaves it unchanged. This is the same as
-// tr1::add_reference, which is not widely available yet.
-template <typename T>
-struct AddReference { typedef T& type; }; // NOLINT
-template <typename T>
-struct AddReference<T&> { typedef T& type; }; // NOLINT
-
-// A handy wrapper around AddReference that works when the argument T
-// depends on template parameters.
-#define GTEST_ADD_REFERENCE_(T) \
- typename ::testing::internal::AddReference<T>::type
-
-// Adds a reference to const on top of T as necessary. For example,
-// it transforms
-//
-// char ==> const char&
-// const char ==> const char&
-// char& ==> const char&
-// const char& ==> const char&
-//
-// The argument T must depend on some template parameters.
-#define GTEST_REFERENCE_TO_CONST_(T) \
- GTEST_ADD_REFERENCE_(const GTEST_REMOVE_REFERENCE_(T))
-
// ImplicitlyConvertible<From, To>::value is a compile-time bool
// constant that's true iff type From can be implicitly converted to
// type To.
@@ -917,8 +928,11 @@
// a container class by checking the type of IsContainerTest<C>(0).
// The value of the expression is insignificant.
//
-// Note that we look for both C::iterator and C::const_iterator. The
-// reason is that C++ injects the name of a class as a member of the
+// In C++11 mode we check the existence of a const_iterator and that an
+// iterator is properly implemented for the container.
+//
+// For pre-C++11 that we look for both C::iterator and C::const_iterator.
+// The reason is that C++ injects the name of a class as a member of the
// class itself (e.g. you can refer to class iterator as either
// 'iterator' or 'iterator::iterator'). If we look for C::iterator
// only, for example, we would mistakenly think that a class named
@@ -928,17 +942,96 @@
// IsContainerTest(typename C::const_iterator*) and
// IsContainerTest(...) doesn't work with Visual Age C++ and Sun C++.
typedef int IsContainer;
+#if GTEST_LANG_CXX11
+template <class C,
+ class Iterator = decltype(::std::declval<const C&>().begin()),
+ class = decltype(::std::declval<const C&>().end()),
+ class = decltype(++::std::declval<Iterator&>()),
+ class = decltype(*::std::declval<Iterator>()),
+ class = typename C::const_iterator>
+IsContainer IsContainerTest(int /* dummy */) {
+ return 0;
+}
+#else
template <class C>
IsContainer IsContainerTest(int /* dummy */,
typename C::iterator* /* it */ = NULL,
typename C::const_iterator* /* const_it */ = NULL) {
return 0;
}
+#endif // GTEST_LANG_CXX11
typedef char IsNotContainer;
template <class C>
IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; }
+// Trait to detect whether a type T is a hash table.
+// The heuristic used is that the type contains an inner type `hasher` and does
+// not contain an inner type `reverse_iterator`.
+// If the container is iterable in reverse, then order might actually matter.
+template <typename T>
+struct IsHashTable {
+ private:
+ template <typename U>
+ static char test(typename U::hasher*, typename U::reverse_iterator*);
+ template <typename U>
+ static int test(typename U::hasher*, ...);
+ template <typename U>
+ static char test(...);
+
+ public:
+ static const bool value = sizeof(test<T>(0, 0)) == sizeof(int);
+};
+
+template <typename T>
+const bool IsHashTable<T>::value;
+
+template<typename T>
+struct VoidT {
+ typedef void value_type;
+};
+
+template <typename T, typename = void>
+struct HasValueType : false_type {};
+template <typename T>
+struct HasValueType<T, VoidT<typename T::value_type> > : true_type {
+};
+
+template <typename C,
+ bool = sizeof(IsContainerTest<C>(0)) == sizeof(IsContainer),
+ bool = HasValueType<C>::value>
+struct IsRecursiveContainerImpl;
+
+template <typename C, bool HV>
+struct IsRecursiveContainerImpl<C, false, HV> : public false_type {};
+
+// Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to
+// obey the same inconsistencies as the IsContainerTest, namely check if
+// something is a container is relying on only const_iterator in C++11 and
+// is relying on both const_iterator and iterator otherwise
+template <typename C>
+struct IsRecursiveContainerImpl<C, true, false> : public false_type {};
+
+template <typename C>
+struct IsRecursiveContainerImpl<C, true, true> {
+ #if GTEST_LANG_CXX11
+ typedef typename IteratorTraits<typename C::const_iterator>::value_type
+ value_type;
+#else
+ typedef typename IteratorTraits<typename C::iterator>::value_type value_type;
+#endif
+ typedef is_same<value_type, C> type;
+};
+
+// IsRecursiveContainer<Type> is a unary compile-time predicate that
+// evaluates whether C is a recursive container type. A recursive container
+// type is a container type whose value_type is equal to the container type
+// itself. An example for a recursive container type is
+// boost::filesystem::path, whose iterator has a value_type that is equal to
+// boost::filesystem::path.
+template <typename C>
+struct IsRecursiveContainer : public IsRecursiveContainerImpl<C>::type {};
+
// EnableIf<condition>::type is void when 'Cond' is true, and
// undefined when 'Cond' is false. To use SFINAE to make a function
// overload only apply when a particular expression is true, add
@@ -1070,7 +1163,7 @@
private:
enum {
kCheckTypeIsNotConstOrAReference = StaticAssertTypeEqHelper<
- Element, GTEST_REMOVE_REFERENCE_AND_CONST_(Element)>::value,
+ Element, GTEST_REMOVE_REFERENCE_AND_CONST_(Element)>::value
};
// Initializes this object with a copy of the input.
@@ -1115,7 +1208,7 @@
#define GTEST_SUCCESS_(message) \
GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess)
-// Suppresses MSVC warnings 4072 (unreachable code) for the code following
+// Suppress MSVC warning 4702 (unreachable code) for the code following
// statement if it returns or throws (or doesn't return or throw in some
// situations).
#define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \
@@ -1235,4 +1328,3 @@
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
-
diff --git a/googletest/include/gtest/internal/gtest-linked_ptr.h b/googletest/include/gtest/internal/gtest-linked_ptr.h
index 3602942..082b872 100644
--- a/googletest/include/gtest/internal/gtest-linked_ptr.h
+++ b/googletest/include/gtest/internal/gtest-linked_ptr.h
@@ -27,8 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Authors: Dan Egnor (egnor@google.com)
-//
// A "smart" pointer type with reference tracking. Every pointer to a
// particular object is kept on a circular linked list. When the last pointer
// to an object is destroyed or reassigned, the object is deleted.
@@ -62,9 +60,11 @@
// raw pointer (e.g. via get()) concurrently, and
// - it's safe to write to two linked_ptrs that point to the same
// shared object concurrently.
-// TODO(wan@google.com): rename this to safe_linked_ptr to avoid
+// FIXME: rename this to safe_linked_ptr to avoid
// confusion with normal linked_ptr.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
diff --git a/googletest/include/gtest/internal/gtest-param-util-generated.h b/googletest/include/gtest/internal/gtest-param-util-generated.h
index 4d1d81d..4fac8c0 100644
--- a/googletest/include/gtest/internal/gtest-param-util-generated.h
+++ b/googletest/include/gtest/internal/gtest-param-util-generated.h
@@ -30,8 +30,7 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: vladl@google.com (Vlad Losev)
+
// Type and function utilities for implementing parameterized tests.
// This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
@@ -43,17 +42,14 @@
// by the maximum arity of the implementation of tuple which is
// currently set at 10.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
-// scripts/fuse_gtest.py depends on gtest's own header being #included
-// *unconditionally*. Therefore these #includes cannot be moved
-// inside #if GTEST_HAS_PARAM_TEST.
#include "gtest/internal/gtest-param-util.h"
#include "gtest/internal/gtest-port.h"
-#if GTEST_HAS_PARAM_TEST
-
namespace testing {
// Forward declarations of ValuesIn(), which is implemented in
@@ -84,6 +80,8 @@
return ValuesIn(array);
}
+ ValueArray1(const ValueArray1& other) : v1_(other.v1_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray1& other);
@@ -102,6 +100,8 @@
return ValuesIn(array);
}
+ ValueArray2(const ValueArray2& other) : v1_(other.v1_), v2_(other.v2_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray2& other);
@@ -122,6 +122,9 @@
return ValuesIn(array);
}
+ ValueArray3(const ValueArray3& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray3& other);
@@ -144,6 +147,9 @@
return ValuesIn(array);
}
+ ValueArray4(const ValueArray4& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray4& other);
@@ -167,6 +173,9 @@
return ValuesIn(array);
}
+ ValueArray5(const ValueArray5& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray5& other);
@@ -193,6 +202,9 @@
return ValuesIn(array);
}
+ ValueArray6(const ValueArray6& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray6& other);
@@ -220,6 +232,10 @@
return ValuesIn(array);
}
+ ValueArray7(const ValueArray7& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray7& other);
@@ -249,6 +265,10 @@
return ValuesIn(array);
}
+ ValueArray8(const ValueArray8& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray8& other);
@@ -280,6 +300,10 @@
return ValuesIn(array);
}
+ ValueArray9(const ValueArray9& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray9& other);
@@ -312,6 +336,10 @@
return ValuesIn(array);
}
+ ValueArray10(const ValueArray10& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray10& other);
@@ -346,6 +374,11 @@
return ValuesIn(array);
}
+ ValueArray11(const ValueArray11& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray11& other);
@@ -382,6 +415,11 @@
return ValuesIn(array);
}
+ ValueArray12(const ValueArray12& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray12& other);
@@ -420,6 +458,11 @@
return ValuesIn(array);
}
+ ValueArray13(const ValueArray13& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray13& other);
@@ -459,6 +502,11 @@
return ValuesIn(array);
}
+ ValueArray14(const ValueArray14& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray14& other);
@@ -500,6 +548,12 @@
return ValuesIn(array);
}
+ ValueArray15(const ValueArray15& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray15& other);
@@ -544,6 +598,12 @@
return ValuesIn(array);
}
+ ValueArray16(const ValueArray16& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray16& other);
@@ -589,6 +649,12 @@
return ValuesIn(array);
}
+ ValueArray17(const ValueArray17& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray17& other);
@@ -636,6 +702,12 @@
return ValuesIn(array);
}
+ ValueArray18(const ValueArray18& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray18& other);
@@ -684,6 +756,13 @@
return ValuesIn(array);
}
+ ValueArray19(const ValueArray19& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray19& other);
@@ -734,6 +813,13 @@
return ValuesIn(array);
}
+ ValueArray20(const ValueArray20& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray20& other);
@@ -787,6 +873,13 @@
return ValuesIn(array);
}
+ ValueArray21(const ValueArray21& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray21& other);
@@ -841,6 +934,13 @@
return ValuesIn(array);
}
+ ValueArray22(const ValueArray22& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray22& other);
@@ -897,6 +997,14 @@
return ValuesIn(array);
}
+ ValueArray23(const ValueArray23& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray23& other);
@@ -955,6 +1063,14 @@
return ValuesIn(array);
}
+ ValueArray24(const ValueArray24& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray24& other);
@@ -1014,6 +1130,14 @@
return ValuesIn(array);
}
+ ValueArray25(const ValueArray25& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray25& other);
@@ -1075,6 +1199,14 @@
return ValuesIn(array);
}
+ ValueArray26(const ValueArray26& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray26& other);
@@ -1139,6 +1271,15 @@
return ValuesIn(array);
}
+ ValueArray27(const ValueArray27& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray27& other);
@@ -1204,6 +1345,15 @@
return ValuesIn(array);
}
+ ValueArray28(const ValueArray28& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray28& other);
@@ -1270,6 +1420,15 @@
return ValuesIn(array);
}
+ ValueArray29(const ValueArray29& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray29& other);
@@ -1339,6 +1498,15 @@
return ValuesIn(array);
}
+ ValueArray30(const ValueArray30& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray30& other);
@@ -1410,6 +1578,16 @@
return ValuesIn(array);
}
+ ValueArray31(const ValueArray31& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray31& other);
@@ -1482,6 +1660,16 @@
return ValuesIn(array);
}
+ ValueArray32(const ValueArray32& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray32& other);
@@ -1557,6 +1745,16 @@
return ValuesIn(array);
}
+ ValueArray33(const ValueArray33& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray33& other);
@@ -1633,6 +1831,16 @@
return ValuesIn(array);
}
+ ValueArray34(const ValueArray34& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray34& other);
@@ -1710,6 +1918,17 @@
return ValuesIn(array);
}
+ ValueArray35(const ValueArray35& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray35& other);
@@ -1790,6 +2009,17 @@
return ValuesIn(array);
}
+ ValueArray36(const ValueArray36& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray36& other);
@@ -1872,6 +2102,17 @@
return ValuesIn(array);
}
+ ValueArray37(const ValueArray37& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray37& other);
@@ -1955,6 +2196,17 @@
return ValuesIn(array);
}
+ ValueArray38(const ValueArray38& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray38& other);
@@ -2040,6 +2292,18 @@
return ValuesIn(array);
}
+ ValueArray39(const ValueArray39& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray39& other);
@@ -2127,6 +2391,18 @@
return ValuesIn(array);
}
+ ValueArray40(const ValueArray40& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray40& other);
@@ -2216,6 +2492,18 @@
return ValuesIn(array);
}
+ ValueArray41(const ValueArray41& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray41& other);
@@ -2307,6 +2595,18 @@
return ValuesIn(array);
}
+ ValueArray42(const ValueArray42& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray42& other);
@@ -2399,6 +2699,19 @@
return ValuesIn(array);
}
+ ValueArray43(const ValueArray43& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray43& other);
@@ -2493,6 +2806,19 @@
return ValuesIn(array);
}
+ ValueArray44(const ValueArray44& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_), v44_(other.v44_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray44& other);
@@ -2589,6 +2915,19 @@
return ValuesIn(array);
}
+ ValueArray45(const ValueArray45& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_), v44_(other.v44_), v45_(other.v45_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray45& other);
@@ -2687,6 +3026,19 @@
return ValuesIn(array);
}
+ ValueArray46(const ValueArray46& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray46& other);
@@ -2787,6 +3139,20 @@
return ValuesIn(array);
}
+ ValueArray47(const ValueArray47& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_),
+ v47_(other.v47_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray47& other);
@@ -2889,6 +3255,20 @@
return ValuesIn(array);
}
+ ValueArray48(const ValueArray48& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_),
+ v47_(other.v47_), v48_(other.v48_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray48& other);
@@ -2992,6 +3372,20 @@
return ValuesIn(array);
}
+ ValueArray49(const ValueArray49& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_),
+ v47_(other.v47_), v48_(other.v48_), v49_(other.v49_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray49& other);
@@ -3096,6 +3490,20 @@
return ValuesIn(array);
}
+ ValueArray50(const ValueArray50& other) : v1_(other.v1_), v2_(other.v2_),
+ v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_),
+ v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_),
+ v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_),
+ v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_),
+ v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_),
+ v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_),
+ v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_),
+ v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_),
+ v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_),
+ v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_),
+ v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_),
+ v47_(other.v47_), v48_(other.v48_), v49_(other.v49_), v50_(other.v50_) {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray50& other);
@@ -3208,7 +3616,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -3240,7 +3648,7 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_);
+ current_value_.reset(new ParamType(*current1_, *current2_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -3262,7 +3670,7 @@
const typename ParamGenerator<T2>::iterator begin2_;
const typename ParamGenerator<T2>::iterator end2_;
typename ParamGenerator<T2>::iterator current2_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator2::Iterator
// No implementation - assignment is unsupported.
@@ -3331,7 +3739,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -3367,7 +3775,7 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_);
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -3393,7 +3801,7 @@
const typename ParamGenerator<T3>::iterator begin3_;
const typename ParamGenerator<T3>::iterator end3_;
typename ParamGenerator<T3>::iterator current3_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator3::Iterator
// No implementation - assignment is unsupported.
@@ -3472,7 +3880,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -3512,8 +3920,8 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_,
- *current4_);
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
+ *current4_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -3543,7 +3951,7 @@
const typename ParamGenerator<T4>::iterator begin4_;
const typename ParamGenerator<T4>::iterator end4_;
typename ParamGenerator<T4>::iterator current4_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator4::Iterator
// No implementation - assignment is unsupported.
@@ -3630,7 +4038,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -3674,8 +4082,8 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_,
- *current4_, *current5_);
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
+ *current4_, *current5_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -3709,7 +4117,7 @@
const typename ParamGenerator<T5>::iterator begin5_;
const typename ParamGenerator<T5>::iterator end5_;
typename ParamGenerator<T5>::iterator current5_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator5::Iterator
// No implementation - assignment is unsupported.
@@ -3807,7 +4215,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -3855,8 +4263,8 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_,
- *current4_, *current5_, *current6_);
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
+ *current4_, *current5_, *current6_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -3894,7 +4302,7 @@
const typename ParamGenerator<T6>::iterator begin6_;
const typename ParamGenerator<T6>::iterator end6_;
typename ParamGenerator<T6>::iterator current6_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator6::Iterator
// No implementation - assignment is unsupported.
@@ -4001,7 +4409,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -4053,8 +4461,8 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_,
- *current4_, *current5_, *current6_, *current7_);
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
+ *current4_, *current5_, *current6_, *current7_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -4096,7 +4504,7 @@
const typename ParamGenerator<T7>::iterator begin7_;
const typename ParamGenerator<T7>::iterator end7_;
typename ParamGenerator<T7>::iterator current7_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator7::Iterator
// No implementation - assignment is unsupported.
@@ -4214,7 +4622,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -4270,8 +4678,8 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_,
- *current4_, *current5_, *current6_, *current7_, *current8_);
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
+ *current4_, *current5_, *current6_, *current7_, *current8_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -4317,7 +4725,7 @@
const typename ParamGenerator<T8>::iterator begin8_;
const typename ParamGenerator<T8>::iterator end8_;
typename ParamGenerator<T8>::iterator current8_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator8::Iterator
// No implementation - assignment is unsupported.
@@ -4443,7 +4851,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -4503,9 +4911,9 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_,
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
*current4_, *current5_, *current6_, *current7_, *current8_,
- *current9_);
+ *current9_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -4555,7 +4963,7 @@
const typename ParamGenerator<T9>::iterator begin9_;
const typename ParamGenerator<T9>::iterator end9_;
typename ParamGenerator<T9>::iterator current9_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator9::Iterator
// No implementation - assignment is unsupported.
@@ -4690,7 +5098,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -4754,9 +5162,9 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType(*current1_, *current2_, *current3_,
+ current_value_.reset(new ParamType(*current1_, *current2_, *current3_,
*current4_, *current5_, *current6_, *current7_, *current8_,
- *current9_, *current10_);
+ *current9_, *current10_));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -4810,7 +5218,7 @@
const typename ParamGenerator<T10>::iterator begin10_;
const typename ParamGenerator<T10>::iterator end10_;
typename ParamGenerator<T10>::iterator current10_;
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator10::Iterator
// No implementation - assignment is unsupported.
@@ -5141,6 +5549,4 @@
} // namespace internal
} // namespace testing
-#endif // GTEST_HAS_PARAM_TEST
-
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
diff --git a/googletest/include/gtest/internal/gtest-param-util-generated.h.pump b/googletest/include/gtest/internal/gtest-param-util-generated.h.pump
index 5c7c47a..30dffe4 100644
--- a/googletest/include/gtest/internal/gtest-param-util-generated.h.pump
+++ b/googletest/include/gtest/internal/gtest-param-util-generated.h.pump
@@ -29,8 +29,7 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: vladl@google.com (Vlad Losev)
+
// Type and function utilities for implementing parameterized tests.
// This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
@@ -42,17 +41,14 @@
// by the maximum arity of the implementation of tuple which is
// currently set at $maxtuple.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
-// scripts/fuse_gtest.py depends on gtest's own header being #included
-// *unconditionally*. Therefore these #includes cannot be moved
-// inside #if GTEST_HAS_PARAM_TEST.
#include "gtest/internal/gtest-param-util.h"
#include "gtest/internal/gtest-port.h"
-#if GTEST_HAS_PARAM_TEST
-
namespace testing {
// Forward declarations of ValuesIn(), which is implemented in
@@ -87,6 +83,8 @@
return ValuesIn(array);
}
+ ValueArray$i(const ValueArray$i& other) : $for j, [[v$(j)_(other.v$(j)_)]] {}
+
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray$i& other);
@@ -165,7 +163,7 @@
virtual ParamIteratorInterface<ParamType>* Clone() const {
return new Iterator(*this);
}
- virtual const ParamType* Current() const { return ¤t_value_; }
+ virtual const ParamType* Current() const { return current_value_.get(); }
virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
@@ -197,7 +195,7 @@
void ComputeCurrentValue() {
if (!AtEnd())
- current_value_ = ParamType($for j, [[*current$(j)_]]);
+ current_value_.reset(new ParamType($for j, [[*current$(j)_]]));
}
bool AtEnd() const {
// We must report iterator past the end of the range when either of the
@@ -222,7 +220,7 @@
typename ParamGenerator<T$j>::iterator current$(j)_;
]]
- ParamType current_value_;
+ linked_ptr<ParamType> current_value_;
}; // class CartesianProductGenerator$i::Iterator
// No implementation - assignment is unsupported.
@@ -281,6 +279,4 @@
} // namespace internal
} // namespace testing
-#endif // GTEST_HAS_PARAM_TEST
-
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
diff --git a/googletest/include/gtest/internal/gtest-param-util.h b/googletest/include/gtest/internal/gtest-param-util.h
index 82cab9b..d64f620 100644
--- a/googletest/include/gtest/internal/gtest-param-util.h
+++ b/googletest/include/gtest/internal/gtest-param-util.h
@@ -26,11 +26,12 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: vladl@google.com (Vlad Losev)
+
// Type and function utilities for implementing parameterized tests.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
@@ -41,16 +42,11 @@
#include <utility>
#include <vector>
-// scripts/fuse_gtest.py depends on gtest's own header being #included
-// *unconditionally*. Therefore these #includes cannot be moved
-// inside #if GTEST_HAS_PARAM_TEST.
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-linked_ptr.h"
#include "gtest/internal/gtest-port.h"
#include "gtest/gtest-printers.h"
-#if GTEST_HAS_PARAM_TEST
-
namespace testing {
// Input to a parameterized test name generator, describing a test parameter.
@@ -472,7 +468,7 @@
virtual ~ParameterizedTestCaseInfoBase() {}
// Base part of test case name for display purposes.
- virtual const string& GetTestCaseName() const = 0;
+ virtual const std::string& GetTestCaseName() const = 0;
// Test case id to verify identity.
virtual TypeId GetTestCaseTypeId() const = 0;
// UnitTest class invokes this method to register tests in this
@@ -511,7 +507,7 @@
: test_case_name_(name), code_location_(code_location) {}
// Test case base name for display purposes.
- virtual const string& GetTestCaseName() const { return test_case_name_; }
+ virtual const std::string& GetTestCaseName() const { return test_case_name_; }
// Test case id to verify identity.
virtual TypeId GetTestCaseTypeId() const { return GetTypeId<TestCase>(); }
// TEST_P macro uses AddTestPattern() to record information
@@ -529,11 +525,10 @@
}
// INSTANTIATE_TEST_CASE_P macro uses AddGenerator() to record information
// about a generator.
- int AddTestCaseInstantiation(const string& instantiation_name,
+ int AddTestCaseInstantiation(const std::string& instantiation_name,
GeneratorCreationFunc* func,
ParamNameGeneratorFunc* name_func,
- const char* file,
- int line) {
+ const char* file, int line) {
instantiations_.push_back(
InstantiationInfo(instantiation_name, func, name_func, file, line));
return 0; // Return value used only to run this method in namespace scope.
@@ -550,13 +545,13 @@
for (typename InstantiationContainer::iterator gen_it =
instantiations_.begin(); gen_it != instantiations_.end();
++gen_it) {
- const string& instantiation_name = gen_it->name;
+ const std::string& instantiation_name = gen_it->name;
ParamGenerator<ParamType> generator((*gen_it->generator)());
ParamNameGeneratorFunc* name_func = gen_it->name_func;
const char* file = gen_it->file;
int line = gen_it->line;
- string test_case_name;
+ std::string test_case_name;
if ( !instantiation_name.empty() )
test_case_name = instantiation_name + "/";
test_case_name += test_info->test_case_base_name;
@@ -609,8 +604,8 @@
test_base_name(a_test_base_name),
test_meta_factory(a_test_meta_factory) {}
- const string test_case_base_name;
- const string test_base_name;
+ const std::string test_case_base_name;
+ const std::string test_base_name;
const scoped_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
};
typedef ::std::vector<linked_ptr<TestInfo> > TestInfoContainer;
@@ -651,7 +646,7 @@
return true;
}
- const string test_case_name_;
+ const std::string test_case_name_;
CodeLocation code_location_;
TestInfoContainer tests_;
InstantiationContainer instantiations_;
@@ -726,6 +721,4 @@
} // namespace internal
} // namespace testing
-#endif // GTEST_HAS_PARAM_TEST
-
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
diff --git a/googletest/include/gtest/internal/gtest-port-arch.h b/googletest/include/gtest/internal/gtest-port-arch.h
index 74ab949..f83700e 100644
--- a/googletest/include/gtest/internal/gtest-port-arch.h
+++ b/googletest/include/gtest/internal/gtest-port-arch.h
@@ -27,7 +27,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// The Google C++ Testing Framework (Google Test)
+// The Google C++ Testing and Mocking Framework (Google Test)
//
// This header file defines the GTEST_OS_* macro.
// It is separate from gtest-port.h so that custom/gtest-port.h can include it.
@@ -54,6 +54,9 @@
# define GTEST_OS_WINDOWS_PHONE 1
# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
# define GTEST_OS_WINDOWS_RT 1
+# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE)
+# define GTEST_OS_WINDOWS_PHONE 1
+# define GTEST_OS_WINDOWS_TV_TITLE 1
# else
// WINAPI_FAMILY defined but no known partition matched.
// Default to desktop.
@@ -69,6 +72,8 @@
# endif
#elif defined __FreeBSD__
# define GTEST_OS_FREEBSD 1
+#elif defined __Fuchsia__
+# define GTEST_OS_FUCHSIA 1
#elif defined __linux__
# define GTEST_OS_LINUX 1
# if defined __ANDROID__
@@ -84,6 +89,8 @@
# define GTEST_OS_HPUX 1
#elif defined __native_client__
# define GTEST_OS_NACL 1
+#elif defined __NetBSD__
+# define GTEST_OS_NETBSD 1
#elif defined __OpenBSD__
# define GTEST_OS_OPENBSD 1
#elif defined __QNX__
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
index 141d457..786497d 100644
--- a/googletest/include/gtest/internal/gtest-port.h
+++ b/googletest/include/gtest/internal/gtest-port.h
@@ -27,8 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Authors: wan@google.com (Zhanyong Wan)
-//
// Low-level types and utilities for porting Google Test to various
// platforms. All macros ending with _ and symbols defined in an
// internal namespace are subject to change without notice. Code
@@ -40,6 +38,8 @@
// files are expected to #include this. Therefore, it cannot #include
// any other Google Test header.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
@@ -73,11 +73,9 @@
// GTEST_HAS_EXCEPTIONS - Define it to 1/0 to indicate that exceptions
// are enabled.
// GTEST_HAS_GLOBAL_STRING - Define it to 1/0 to indicate that ::string
-// is/isn't available (some systems define
-// ::string, which is different to std::string).
-// GTEST_HAS_GLOBAL_WSTRING - Define it to 1/0 to indicate that ::string
-// is/isn't available (some systems define
-// ::wstring, which is different to std::wstring).
+// is/isn't available
+// GTEST_HAS_GLOBAL_WSTRING - Define it to 1/0 to indicate that ::wstring
+// is/isn't available
// GTEST_HAS_POSIX_RE - Define it to 1/0 to indicate that POSIX regular
// expressions are/aren't available.
// GTEST_HAS_PTHREAD - Define it to 1/0 to indicate that <pthread.h>
@@ -109,6 +107,12 @@
// GTEST_CREATE_SHARED_LIBRARY
// - Define to 1 when compiling Google Test itself
// as a shared library.
+// GTEST_DEFAULT_DEATH_TEST_STYLE
+// - The default value of --gtest_death_test_style.
+// The legacy default has been "fast" in the open
+// source version since 2008. The recommended value
+// is "threadsafe", and can be set in
+// custom/gtest-port.h.
// Platform-indicating macros
// --------------------------
@@ -122,12 +126,14 @@
// GTEST_OS_AIX - IBM AIX
// GTEST_OS_CYGWIN - Cygwin
// GTEST_OS_FREEBSD - FreeBSD
+// GTEST_OS_FUCHSIA - Fuchsia
// GTEST_OS_HPUX - HP-UX
// GTEST_OS_LINUX - Linux
// GTEST_OS_LINUX_ANDROID - Google Android
// GTEST_OS_MAC - Mac OS X
// GTEST_OS_IOS - iOS
// GTEST_OS_NACL - Google Native Client (NaCl)
+// GTEST_OS_NETBSD - NetBSD
// GTEST_OS_OPENBSD - OpenBSD
// GTEST_OS_QNX - QNX
// GTEST_OS_SOLARIS - Sun Solaris
@@ -169,15 +175,15 @@
// GTEST_HAS_COMBINE - the Combine() function (for value-parameterized
// tests)
// GTEST_HAS_DEATH_TEST - death tests
-// GTEST_HAS_PARAM_TEST - value-parameterized tests
// GTEST_HAS_TYPED_TEST - typed tests
// GTEST_HAS_TYPED_TEST_P - type-parameterized tests
// GTEST_IS_THREADSAFE - Google Test is thread-safe.
+// GOOGLETEST_CM0007 DO NOT DELETE
// GTEST_USES_POSIX_RE - enhanced POSIX regex is used. Do not confuse with
// GTEST_HAS_POSIX_RE (see above) which users can
// define themselves.
// GTEST_USES_SIMPLE_RE - our own simple regex is used;
-// the above two are mutually exclusive.
+// the above RE\b(s) are mutually exclusive.
// GTEST_CAN_COMPARE_NULL - accepts untyped NULL in EXPECT_EQ().
// Misc public macros
@@ -206,6 +212,7 @@
//
// C++11 feature wrappers:
//
+// testing::internal::forward - portability wrapper for std::forward.
// testing::internal::move - portability wrapper for std::move.
//
// Synchronization:
@@ -222,10 +229,10 @@
//
// Regular expressions:
// RE - a simple regular expression class using the POSIX
-// Extended Regular Expression syntax on UNIX-like
-// platforms, or a reduced regular exception syntax on
-// other platforms, including Windows.
-//
+// Extended Regular Expression syntax on UNIX-like platforms
+// GOOGLETEST_CM0008 DO NOT DELETE
+// or a reduced regular exception syntax on other
+// platforms, including Windows.
// Logging:
// GTEST_LOG_() - logs messages at the specified severity level.
// LogToStderr() - directs all log messages to stderr.
@@ -271,10 +278,12 @@
# include <TargetConditionals.h>
#endif
+// Brings in the definition of HAS_GLOBAL_STRING. This must be done
+// BEFORE we test HAS_GLOBAL_STRING.
+#include <string> // NOLINT
#include <algorithm> // NOLINT
#include <iostream> // NOLINT
#include <sstream> // NOLINT
-#include <string> // NOLINT
#include <utility>
#include <vector> // NOLINT
@@ -287,7 +296,7 @@
# define GTEST_FLAG_PREFIX_DASH_ "gtest-"
# define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
# define GTEST_NAME_ "Google Test"
-# define GTEST_PROJECT_URL_ "http://code.google.com/p/googletest/"
+# define GTEST_PROJECT_URL_ "https://github.com/google/googletest/"
#endif // !defined(GTEST_DEV_EMAIL_)
#if !defined(GTEST_INIT_GOOGLE_TEST_NAME_)
@@ -306,7 +315,7 @@
// GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385)
// /* code that triggers warnings C4800 and C4385 */
// GTEST_DISABLE_MSC_WARNINGS_POP_()
-#if _MSC_VER >= 1500
+#if _MSC_VER >= 1400
# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \
__pragma(warning(push)) \
__pragma(warning(disable: warnings))
@@ -318,12 +327,28 @@
# define GTEST_DISABLE_MSC_WARNINGS_POP_()
#endif
+// Clang on Windows does not understand MSVC's pragma warning.
+// We need clang-specific way to disable function deprecation warning.
+#ifdef __clang__
+# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \
+ _Pragma("clang diagnostic push") \
+ _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
+ _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"")
+#define GTEST_DISABLE_MSC_DEPRECATED_POP_() \
+ _Pragma("clang diagnostic pop")
+#else
+# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \
+ GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
+# define GTEST_DISABLE_MSC_DEPRECATED_POP_() \
+ GTEST_DISABLE_MSC_WARNINGS_POP_()
+#endif
+
#ifndef GTEST_LANG_CXX11
// gcc and clang define __GXX_EXPERIMENTAL_CXX0X__ when
// -std={c,gnu}++{0x,11} is passed. The C++11 standard specifies a
// value for __cplusplus, and recent versions of clang, gcc, and
// probably other compilers set that too in C++11 mode.
-# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L
+# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L || _MSC_VER >= 1900
// Compiling in at least C++11 mode.
# define GTEST_LANG_CXX11 1
# else
@@ -355,11 +380,16 @@
#if GTEST_STDLIB_CXX11
# define GTEST_HAS_STD_BEGIN_AND_END_ 1
# define GTEST_HAS_STD_FORWARD_LIST_ 1
-# define GTEST_HAS_STD_FUNCTION_ 1
+# if !defined(_MSC_VER) || (_MSC_FULL_VER >= 190023824)
+// works only with VS2015U2 and better
+# define GTEST_HAS_STD_FUNCTION_ 1
+# endif
# define GTEST_HAS_STD_INITIALIZER_LIST_ 1
# define GTEST_HAS_STD_MOVE_ 1
# define GTEST_HAS_STD_UNIQUE_PTR_ 1
# define GTEST_HAS_STD_SHARED_PTR_ 1
+# define GTEST_HAS_UNORDERED_MAP_ 1
+# define GTEST_HAS_UNORDERED_SET_ 1
#endif
// C++11 specifies that <tuple> provides std::tuple.
@@ -367,7 +397,8 @@
#if GTEST_LANG_CXX11
# define GTEST_HAS_STD_TUPLE_ 1
# if defined(__clang__)
-// Inspired by http://clang.llvm.org/docs/LanguageExtensions.html#__has_include
+// Inspired by
+// https://clang.llvm.org/docs/LanguageExtensions.html#include-file-checking-macros
# if defined(__has_include) && !__has_include(<tuple>)
# undef GTEST_HAS_STD_TUPLE_
# endif
@@ -379,7 +410,7 @@
# elif defined(__GLIBCXX__)
// Inspired by boost/config/stdlib/libstdcpp3.hpp,
// http://gcc.gnu.org/gcc-4.2/changes.html and
-// http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.200x
+// https://web.archive.org/web/20140227044429/gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.200x
# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2)
# undef GTEST_HAS_STD_TUPLE_
# endif
@@ -395,10 +426,16 @@
# include <io.h>
# endif
// In order to avoid having to include <windows.h>, use forward declaration
-// assuming CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION.
+#if GTEST_OS_WINDOWS_MINGW && !defined(__MINGW64_VERSION_MAJOR)
+// MinGW defined _CRITICAL_SECTION and _RTL_CRITICAL_SECTION as two
+// separate (equivalent) structs, instead of using typedef
+typedef struct _CRITICAL_SECTION GTEST_CRITICAL_SECTION;
+#else
+// Assume CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION.
// This assumption is verified by
// WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION.
-struct _RTL_CRITICAL_SECTION;
+typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
+#endif
#else
// This assumes that non-Windows OSes provide unistd.h. For OSes where this
// is not the case, we need to include headers that provide the functions
@@ -452,8 +489,11 @@
#ifndef GTEST_HAS_EXCEPTIONS
// The user didn't tell us whether exceptions are enabled, so we need
// to figure it out.
-# if defined(_MSC_VER) || defined(__BORLANDC__)
-// MSVC's and C++Builder's implementations of the STL use the _HAS_EXCEPTIONS
+# if defined(_MSC_VER) && defined(_CPPUNWIND)
+// MSVC defines _CPPUNWIND to 1 iff exceptions are enabled.
+# define GTEST_HAS_EXCEPTIONS 1
+# elif defined(__BORLANDC__)
+// C++Builder's implementation of the STL uses the _HAS_EXCEPTIONS
// macro to enable exceptions, so we'll do the same.
// Assumes that exceptions are enabled by default.
# ifndef _HAS_EXCEPTIONS
@@ -497,21 +537,17 @@
# define GTEST_HAS_STD_STRING 1
#elif !GTEST_HAS_STD_STRING
// The user told us that ::std::string isn't available.
-# error "Google Test cannot be used where ::std::string isn't available."
+# error "::std::string isn't available."
#endif // !defined(GTEST_HAS_STD_STRING)
#ifndef GTEST_HAS_GLOBAL_STRING
-// The user didn't tell us whether ::string is available, so we need
-// to figure it out.
-
# define GTEST_HAS_GLOBAL_STRING 0
-
#endif // GTEST_HAS_GLOBAL_STRING
#ifndef GTEST_HAS_STD_WSTRING
// The user didn't tell us whether ::std::wstring is available, so we need
// to figure it out.
-// TODO(wan@google.com): uses autoconf to detect whether ::std::wstring
+// FIXME: uses autoconf to detect whether ::std::wstring
// is available.
// Cygwin 1.7 and below doesn't support ::std::wstring.
@@ -599,8 +635,9 @@
//
// To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0
// to your compiler flags.
-# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \
- || GTEST_OS_QNX || GTEST_OS_FREEBSD || GTEST_OS_NACL)
+#define GTEST_HAS_PTHREAD \
+ (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX || GTEST_OS_QNX || \
+ GTEST_OS_FREEBSD || GTEST_OS_NACL || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA)
#endif // GTEST_HAS_PTHREAD
#if GTEST_HAS_PTHREAD
@@ -615,7 +652,7 @@
// Determines if hash_map/hash_set are available.
// Only used for testing against those containers.
#if !defined(GTEST_HAS_HASH_MAP_)
-# if _MSC_VER
+# if defined(_MSC_VER) && (_MSC_VER < 1900)
# define GTEST_HAS_HASH_MAP_ 1 // Indicates that hash_map is available.
# define GTEST_HAS_HASH_SET_ 1 // Indicates that hash_set is available.
# endif // _MSC_VER
@@ -628,6 +665,14 @@
# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR)
// STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>.
# define GTEST_HAS_TR1_TUPLE 0
+# elif defined(_MSC_VER) && (_MSC_VER >= 1910)
+// Prevent `warning C4996: 'std::tr1': warning STL4002:
+// The non-Standard std::tr1 namespace and TR1-only machinery
+// are deprecated and will be REMOVED.`
+# define GTEST_HAS_TR1_TUPLE 0
+# elif GTEST_LANG_CXX11 && defined(_LIBCPP_VERSION)
+// libc++ doesn't support TR1.
+# define GTEST_HAS_TR1_TUPLE 0
# else
// The user didn't tell us not to do it, so we assume it's OK.
# define GTEST_HAS_TR1_TUPLE 1
@@ -637,6 +682,10 @@
// Determines whether Google Test's own tr1 tuple implementation
// should be used.
#ifndef GTEST_USE_OWN_TR1_TUPLE
+// We use our own tuple implementation on Symbian.
+# if GTEST_OS_SYMBIAN
+# define GTEST_USE_OWN_TR1_TUPLE 1
+# else
// The user didn't tell us, so we need to figure it out.
// We use our own TR1 tuple if we aren't sure the user has an
@@ -650,7 +699,8 @@
// support TR1 tuple. libc++ only provides std::tuple, in C++11 mode,
// and it can be used with some compilers that define __GNUC__.
# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \
- && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) || _MSC_VER >= 1600
+ && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) \
+ || (_MSC_VER >= 1600 && _MSC_VER < 1900)
# define GTEST_ENV_HAS_TR1_TUPLE_ 1
# endif
@@ -666,12 +716,11 @@
# else
# define GTEST_USE_OWN_TR1_TUPLE 1
# endif
-
+# endif // GTEST_OS_SYMBIAN
#endif // GTEST_USE_OWN_TR1_TUPLE
-// To avoid conditional compilation everywhere, we make it
-// gtest-port.h's responsibility to #include the header implementing
-// tuple.
+// To avoid conditional compilation we make it gtest-port.h's responsibility
+// to #include the header implementing tuple.
#if GTEST_HAS_STD_TUPLE_
# include <tuple> // IWYU pragma: export
# define GTEST_TUPLE_NAMESPACE_ ::std
@@ -686,22 +735,6 @@
# if GTEST_USE_OWN_TR1_TUPLE
# include "gtest/internal/gtest-tuple.h" // IWYU pragma: export // NOLINT
-# elif GTEST_ENV_HAS_STD_TUPLE_
-# include <tuple>
-// C++11 puts its tuple into the ::std namespace rather than
-// ::std::tr1. gtest expects tuple to live in ::std::tr1, so put it there.
-// This causes undefined behavior, but supported compilers react in
-// the way we intend.
-namespace std {
-namespace tr1 {
-using ::std::get;
-using ::std::make_tuple;
-using ::std::tuple;
-using ::std::tuple_element;
-using ::std::tuple_size;
-}
-}
-
# elif GTEST_OS_SYMBIAN
// On Symbian, BOOST_HAS_TR1_TUPLE causes Boost's TR1 tuple library to
@@ -726,20 +759,22 @@
// Until version 4.3.2, gcc has a bug that causes <tr1/functional>,
// which is #included by <tr1/tuple>, to not compile when RTTI is
// disabled. _TR1_FUNCTIONAL is the header guard for
-// <tr1/functional>. Hence the following #define is a hack to prevent
+// <tr1/functional>. Hence the following #define is used to prevent
// <tr1/functional> from being included.
# define _TR1_FUNCTIONAL 1
# include <tr1/tuple>
# undef _TR1_FUNCTIONAL // Allows the user to #include
- // <tr1/functional> if he chooses to.
+ // <tr1/functional> if they choose to.
# else
# include <tr1/tuple> // NOLINT
# endif // !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302
-# else
-// If the compiler is not GCC 4.0+, we assume the user is using a
-// spec-conforming TR1 implementation.
+// VS 2010 now has tr1 support.
+# elif _MSC_VER >= 1600
# include <tuple> // IWYU pragma: export // NOLINT
+
+# else // GTEST_USE_OWN_TR1_TUPLE
+# include <tr1/tuple> // IWYU pragma: export // NOLINT
# endif // GTEST_USE_OWN_TR1_TUPLE
#endif // GTEST_HAS_TR1_TUPLE
@@ -753,8 +788,12 @@
# if GTEST_OS_LINUX && !defined(__ia64__)
# if GTEST_OS_LINUX_ANDROID
-// On Android, clone() is only available on ARM starting with Gingerbread.
-# if defined(__arm__) && __ANDROID_API__ >= 9
+// On Android, clone() became available at different API levels for each 32-bit
+// architecture.
+# if defined(__LP64__) || \
+ (defined(__arm__) && __ANDROID_API__ >= 9) || \
+ (defined(__mips__) && __ANDROID_API__ >= 12) || \
+ (defined(__i386__) && __ANDROID_API__ >= 17)
# define GTEST_HAS_CLONE 1
# else
# define GTEST_HAS_CLONE 0
@@ -785,19 +824,15 @@
// Google Test does not support death tests for VC 7.1 and earlier as
// abort() in a VC 7.1 application compiled as GUI in debug config
// pops up a dialog window that cannot be suppressed programmatically.
-#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \
- (GTEST_OS_MAC && !GTEST_OS_IOS) || \
- (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \
+#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \
+ (GTEST_OS_MAC && !GTEST_OS_IOS) || \
+ (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \
GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \
- GTEST_OS_OPENBSD || GTEST_OS_QNX || GTEST_OS_FREEBSD)
+ GTEST_OS_OPENBSD || GTEST_OS_QNX || GTEST_OS_FREEBSD || \
+ GTEST_OS_NETBSD || GTEST_OS_FUCHSIA)
# define GTEST_HAS_DEATH_TEST 1
#endif
-// We don't support MSVC 7.1 with exceptions disabled now. Therefore
-// all the compilers we care about are adequate for supporting
-// value-parameterized tests.
-#define GTEST_HAS_PARAM_TEST 1
-
// Determines whether to support type-driven tests.
// Typed tests need <typeinfo> and variadic macros, which GCC, VC++ 8.0,
@@ -812,7 +847,7 @@
// value-parameterized tests are enabled. The implementation doesn't
// work on Sun Studio since it doesn't understand templated conversion
// operators.
-#if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC)
+#if (GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_) && !defined(__SUNPRO_CC)
# define GTEST_HAS_COMBINE 1
#endif
@@ -863,15 +898,39 @@
# define GTEST_ATTRIBUTE_UNUSED_
#endif
+#if GTEST_LANG_CXX11
+# define GTEST_CXX11_EQUALS_DELETE_ = delete
+#else // GTEST_LANG_CXX11
+# define GTEST_CXX11_EQUALS_DELETE_
+#endif // GTEST_LANG_CXX11
+
+// Use this annotation before a function that takes a printf format string.
+#if (defined(__GNUC__) || defined(__clang__)) && !defined(COMPILER_ICC)
+# if defined(__MINGW_PRINTF_FORMAT)
+// MinGW has two different printf implementations. Ensure the format macro
+// matches the selected implementation. See
+// https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/.
+# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
+ __attribute__((__format__(__MINGW_PRINTF_FORMAT, string_index, \
+ first_to_check)))
+# else
+# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
+ __attribute__((__format__(__printf__, string_index, first_to_check)))
+# endif
+#else
+# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check)
+#endif
+
+
// A macro to disallow operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_ASSIGN_(type)\
- void operator=(type const &)
+#define GTEST_DISALLOW_ASSIGN_(type) \
+ void operator=(type const &) GTEST_CXX11_EQUALS_DELETE_
// A macro to disallow copy constructor and operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\
- type(type const &);\
+#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
+ type(type const &) GTEST_CXX11_EQUALS_DELETE_; \
GTEST_DISALLOW_ASSIGN_(type)
// Tell the compiler to warn about unused return values for functions declared
@@ -919,19 +978,30 @@
#endif // GTEST_HAS_SEH
-#ifdef _MSC_VER
+// GTEST_API_ qualifies all symbols that must be exported. The definitions below
+// are guarded by #ifndef to give embedders a chance to define GTEST_API_ in
+// gtest/internal/custom/gtest-port.h
+#ifndef GTEST_API_
+#ifdef _MSC_VER
# if GTEST_LINKED_AS_SHARED_LIBRARY
# define GTEST_API_ __declspec(dllimport)
# elif GTEST_CREATE_SHARED_LIBRARY
# define GTEST_API_ __declspec(dllexport)
# endif
-
+#elif __GNUC__ >= 4 || defined(__clang__)
+# define GTEST_API_ __attribute__((visibility ("default")))
#endif // _MSC_VER
+#endif // GTEST_API_
+
#ifndef GTEST_API_
# define GTEST_API_
-#endif
+#endif // GTEST_API_
+
+#ifndef GTEST_DEFAULT_DEATH_TEST_STYLE
+# define GTEST_DEFAULT_DEATH_TEST_STYLE "fast"
+#endif // GTEST_DEFAULT_DEATH_TEST_STYLE
#ifdef __GNUC__
// Ask the compiler to never inline a given function.
@@ -941,10 +1011,12 @@
#endif
// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project.
-#if defined(__GLIBCXX__) || defined(_LIBCPP_VERSION)
-# define GTEST_HAS_CXXABI_H_ 1
-#else
-# define GTEST_HAS_CXXABI_H_ 0
+#if !defined(GTEST_HAS_CXXABI_H_)
+# if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER))
+# define GTEST_HAS_CXXABI_H_ 1
+# else
+# define GTEST_HAS_CXXABI_H_ 0
+# endif
#endif
// A function level attribute to disable checking for use of uninitialized
@@ -1087,6 +1159,16 @@
enum { value = true };
};
+// Same as std::is_same<>.
+template <typename T, typename U>
+struct IsSame {
+ enum { value = false };
+};
+template <typename T>
+struct IsSame<T, T> {
+ enum { value = true };
+};
+
// Evaluates to the number of elements in 'array'.
#define GTEST_ARRAY_SIZE_(array) (sizeof(array) / sizeof(array[0]))
@@ -1150,6 +1232,10 @@
// Defines RE.
+#if GTEST_USES_PCRE
+// if used, PCRE is injected by custom/gtest-port.h
+#elif GTEST_USES_POSIX_RE || GTEST_USES_SIMPLE_RE
+
// A simple C++ wrapper for <regex.h>. It uses the POSIX Extended
// Regular Expression syntax.
class GTEST_API_ RE {
@@ -1161,11 +1247,11 @@
// Constructs an RE from a string.
RE(const ::std::string& regex) { Init(regex.c_str()); } // NOLINT
-#if GTEST_HAS_GLOBAL_STRING
+# if GTEST_HAS_GLOBAL_STRING
RE(const ::string& regex) { Init(regex.c_str()); } // NOLINT
-#endif // GTEST_HAS_GLOBAL_STRING
+# endif // GTEST_HAS_GLOBAL_STRING
RE(const char* regex) { Init(regex); } // NOLINT
~RE();
@@ -1178,7 +1264,7 @@
// PartialMatch(str, re) returns true iff regular expression re
// matches a substring of str (including str itself).
//
- // TODO(wan@google.com): make FullMatch() and PartialMatch() work
+ // FIXME: make FullMatch() and PartialMatch() work
// when str contains NUL characters.
static bool FullMatch(const ::std::string& str, const RE& re) {
return FullMatch(str.c_str(), re);
@@ -1187,7 +1273,7 @@
return PartialMatch(str.c_str(), re);
}
-#if GTEST_HAS_GLOBAL_STRING
+# if GTEST_HAS_GLOBAL_STRING
static bool FullMatch(const ::string& str, const RE& re) {
return FullMatch(str.c_str(), re);
@@ -1196,7 +1282,7 @@
return PartialMatch(str.c_str(), re);
}
-#endif // GTEST_HAS_GLOBAL_STRING
+# endif // GTEST_HAS_GLOBAL_STRING
static bool FullMatch(const char* str, const RE& re);
static bool PartialMatch(const char* str, const RE& re);
@@ -1205,25 +1291,27 @@
void Init(const char* regex);
// We use a const char* instead of an std::string, as Google Test used to be
- // used where std::string is not available. TODO(wan@google.com): change to
+ // used where std::string is not available. FIXME: change to
// std::string.
const char* pattern_;
bool is_valid_;
-#if GTEST_USES_POSIX_RE
+# if GTEST_USES_POSIX_RE
regex_t full_regex_; // For FullMatch().
regex_t partial_regex_; // For PartialMatch().
-#else // GTEST_USES_SIMPLE_RE
+# else // GTEST_USES_SIMPLE_RE
const char* full_pattern_; // For FullMatch();
-#endif
+# endif
GTEST_DISALLOW_ASSIGN_(RE);
};
+#endif // GTEST_USES_PCRE
+
// Formats a source file path and a line number as they would appear
// in an error message from the compiler used to compile this code.
GTEST_API_ ::std::string FormatFileLocation(const char* file, int line);
@@ -1309,13 +1397,59 @@
GTEST_LOG_(FATAL) << #posix_call << "failed with error " \
<< gtest_error
+// Adds reference to a type if it is not a reference type,
+// otherwise leaves it unchanged. This is the same as
+// tr1::add_reference, which is not widely available yet.
+template <typename T>
+struct AddReference { typedef T& type; }; // NOLINT
+template <typename T>
+struct AddReference<T&> { typedef T& type; }; // NOLINT
+
+// A handy wrapper around AddReference that works when the argument T
+// depends on template parameters.
+#define GTEST_ADD_REFERENCE_(T) \
+ typename ::testing::internal::AddReference<T>::type
+
+// Transforms "T" into "const T&" according to standard reference collapsing
+// rules (this is only needed as a backport for C++98 compilers that do not
+// support reference collapsing). Specifically, it transforms:
+//
+// char ==> const char&
+// const char ==> const char&
+// char& ==> char&
+// const char& ==> const char&
+//
+// Note that the non-const reference will not have "const" added. This is
+// standard, and necessary so that "T" can always bind to "const T&".
+template <typename T>
+struct ConstRef { typedef const T& type; };
+template <typename T>
+struct ConstRef<T&> { typedef T& type; };
+
+// The argument T must depend on some template parameters.
+#define GTEST_REFERENCE_TO_CONST_(T) \
+ typename ::testing::internal::ConstRef<T>::type
+
#if GTEST_HAS_STD_MOVE_
+using std::forward;
using std::move;
+
+template <typename T>
+struct RvalueRef {
+ typedef T&& type;
+};
#else // GTEST_HAS_STD_MOVE_
template <typename T>
const T& move(const T& t) {
return t;
}
+template <typename T>
+GTEST_ADD_REFERENCE_(T) forward(GTEST_ADD_REFERENCE_(T) t) { return t; }
+
+template <typename T>
+struct RvalueRef {
+ typedef const T& type;
+};
#endif // GTEST_HAS_STD_MOVE_
// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
@@ -1416,10 +1550,6 @@
GTEST_API_ std::string GetCapturedStderr();
#endif // GTEST_HAS_STREAM_REDIRECTION
-
-// Returns a path to temporary directory.
-GTEST_API_ std::string TempDir();
-
// Returns the size (in bytes) of a file.
GTEST_API_ size_t GetFileSize(FILE* file);
@@ -1427,14 +1557,18 @@
GTEST_API_ std::string ReadEntireFile(FILE* file);
// All command line arguments.
-GTEST_API_ const ::std::vector<testing::internal::string>& GetArgvs();
+GTEST_API_ std::vector<std::string> GetArgvs();
#if GTEST_HAS_DEATH_TEST
-const ::std::vector<testing::internal::string>& GetInjectableArgvs();
-void SetInjectableArgvs(const ::std::vector<testing::internal::string>*
- new_argvs);
-
+std::vector<std::string> GetInjectableArgvs();
+// Deprecated: pass the args vector by value instead.
+void SetInjectableArgvs(const std::vector<std::string>* new_argvs);
+void SetInjectableArgvs(const std::vector<std::string>& new_argvs);
+#if GTEST_HAS_GLOBAL_STRING
+void SetInjectableArgvs(const std::vector< ::string>& new_argvs);
+#endif // GTEST_HAS_GLOBAL_STRING
+void ClearInjectableArgvs();
#endif // GTEST_HAS_DEATH_TEST
@@ -1684,7 +1818,7 @@
// Initializes owner_thread_id_ and critical_section_ in static mutexes.
void ThreadSafeLazyInit();
- // Per http://blogs.msdn.com/b/oldnewthing/archive/2004/02/23/78395.aspx,
+ // Per https://blogs.msdn.microsoft.com/oldnewthing/20040223-00/?p=40503,
// we assume that 0 is an invalid value for thread IDs.
unsigned int owner_thread_id_;
@@ -1692,7 +1826,7 @@
// by the linker.
MutexType type_;
long critical_section_init_phase_; // NOLINT
- _RTL_CRITICAL_SECTION* critical_section_;
+ GTEST_CRITICAL_SECTION* critical_section_;
GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex);
};
@@ -1973,8 +2107,8 @@
// particular, the owner_ field (a pthread_t) is not explicitly initialized.
// This allows initialization to work whether pthread_t is a scalar or struct.
// The flag -Wmissing-field-initializers must not be specified for this to work.
-# define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
- ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, false }
+#define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
+ ::testing::internal::MutexBase mutex = {PTHREAD_MUTEX_INITIALIZER, false, 0}
// The Mutex class can only be used for mutexes created at runtime. It
// shares its API with MutexBase otherwise.
@@ -2031,7 +2165,7 @@
// Implements thread-local storage on pthreads-based systems.
template <typename T>
-class ThreadLocal {
+class GTEST_API_ ThreadLocal {
public:
ThreadLocal()
: key_(CreateKey()), default_factory_(new DefaultValueHolderFactory()) {}
@@ -2163,7 +2297,7 @@
typedef GTestMutexLock MutexLock;
template <typename T>
-class ThreadLocal {
+class GTEST_API_ ThreadLocal {
public:
ThreadLocal() : value_() {}
explicit ThreadLocal(const T& value) : value_(value) {}
@@ -2182,12 +2316,13 @@
GTEST_API_ size_t GetThreadCount();
// Passing non-POD classes through ellipsis (...) crashes the ARM
-// compiler and generates a warning in Sun Studio. The Nokia Symbian
+// compiler and generates a warning in Sun Studio before 12u4. The Nokia Symbian
// and the IBM XL C/C++ compiler try to instantiate a copy constructor
// for objects passed through ellipsis (...), failing for uncopyable
// objects. We define this to ensure that only POD is passed through
// ellipsis on these systems.
-#if defined(__SYMBIAN32__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
+#if defined(__SYMBIAN32__) || defined(__IBMCPP__) || \
+ (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x5130)
// We lose support for NULL detection where the compiler doesn't like
// passing non-POD classes through ellipsis (...).
# define GTEST_ELLIPSIS_NEEDS_POD_ 1
@@ -2213,6 +2348,13 @@
typedef bool_constant<false> false_type;
typedef bool_constant<true> true_type;
+template <typename T, typename U>
+struct is_same : public false_type {};
+
+template <typename T>
+struct is_same<T, T> : public true_type {};
+
+
template <typename T>
struct is_pointer : public false_type {};
@@ -2224,6 +2366,7 @@
typedef typename Iterator::value_type value_type;
};
+
template <typename T>
struct IteratorTraits<T*> {
typedef T value_type;
@@ -2355,7 +2498,7 @@
// Functions deprecated by MSVC 8.0.
-GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996 /* deprecated function */)
+GTEST_DISABLE_MSC_DEPRECATED_PUSH_()
inline const char* StrNCpy(char* dest, const char* src, size_t n) {
return strncpy(dest, src, n);
@@ -2389,7 +2532,7 @@
inline const char* StrError(int errnum) { return strerror(errnum); }
#endif
inline const char* GetEnv(const char* name) {
-#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE | GTEST_OS_WINDOWS_RT
+#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
// We are on Windows CE, which has no environment variables.
static_cast<void>(name); // To prevent 'unused argument' warning.
return NULL;
@@ -2403,7 +2546,7 @@
#endif
}
-GTEST_DISABLE_MSC_WARNINGS_POP_()
+GTEST_DISABLE_MSC_DEPRECATED_POP_()
#if GTEST_OS_WINDOWS_MOBILE
// Windows CE has no C library. The abort() function is used in
@@ -2519,15 +2662,15 @@
# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
# define GTEST_DECLARE_int32_(name) \
GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name)
-#define GTEST_DECLARE_string_(name) \
+# define GTEST_DECLARE_string_(name) \
GTEST_API_ extern ::std::string GTEST_FLAG(name)
// Macros for defining flags.
-#define GTEST_DEFINE_bool_(name, default_val, doc) \
+# define GTEST_DEFINE_bool_(name, default_val, doc) \
GTEST_API_ bool GTEST_FLAG(name) = (default_val)
-#define GTEST_DEFINE_int32_(name, default_val, doc) \
+# define GTEST_DEFINE_int32_(name, default_val, doc) \
GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val)
-#define GTEST_DEFINE_string_(name, default_val, doc) \
+# define GTEST_DEFINE_string_(name, default_val, doc) \
GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val)
#endif // !defined(GTEST_DECLARE_bool_)
@@ -2541,7 +2684,7 @@
// Parses 'str' for a 32-bit signed integer. If successful, writes the result
// to *value and returns true; otherwise leaves *value unchanged and returns
// false.
-// TODO(chandlerc): Find a better way to refactor flag and environment parsing
+// FIXME: Find a better way to refactor flag and environment parsing
// out of both gtest-port.cc and gtest.cc to avoid exporting this utility
// function.
bool ParseInt32(const Message& src_text, const char* str, Int32* value);
@@ -2550,10 +2693,10 @@
// corresponding to the given Google Test flag.
bool BoolFromGTestEnv(const char* flag, bool default_val);
GTEST_API_ Int32 Int32FromGTestEnv(const char* flag, Int32 default_val);
+std::string OutputFlagAlsoCheckEnvVar();
const char* StringFromGTestEnv(const char* flag, const char* default_val);
} // namespace internal
} // namespace testing
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
-
diff --git a/googletest/include/gtest/internal/gtest-string.h b/googletest/include/gtest/internal/gtest-string.h
index 97f1a7f..4c9b626 100644
--- a/googletest/include/gtest/internal/gtest-string.h
+++ b/googletest/include/gtest/internal/gtest-string.h
@@ -27,17 +27,17 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
-// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
-//
-// The Google C++ Testing Framework (Google Test)
+// The Google C++ Testing and Mocking Framework (Google Test)
//
// This header file declares the String class and functions used internally by
// Google Test. They are subject to change without notice. They should not used
// by code external to Google Test.
//
-// This header file is #included by <gtest/internal/gtest-internal.h>.
+// This header file is #included by gtest-internal.h.
// It should not be #included by other files.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
diff --git a/googletest/include/gtest/internal/gtest-tuple.h b/googletest/include/gtest/internal/gtest-tuple.h
index e9b4053..78a3a6a 100644
--- a/googletest/include/gtest/internal/gtest-tuple.h
+++ b/googletest/include/gtest/internal/gtest-tuple.h
@@ -30,11 +30,12 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: wan@google.com (Zhanyong Wan)
+
// Implements a subset of TR1 tuple needed by Google Test and Google Mock.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
@@ -42,7 +43,7 @@
// The compiler used in Symbian has a bug that prevents us from declaring the
// tuple template as a friend (it complains that tuple is redefined). This
-// hack bypasses the bug by declaring the members that should otherwise be
+// bypasses the bug by declaring the members that should otherwise be
// private as public.
// Sun Studio versions < 12 also have the above bug.
#if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590)
diff --git a/googletest/include/gtest/internal/gtest-tuple.h.pump b/googletest/include/gtest/internal/gtest-tuple.h.pump
index 429ddfe..bb626e0 100644
--- a/googletest/include/gtest/internal/gtest-tuple.h.pump
+++ b/googletest/include/gtest/internal/gtest-tuple.h.pump
@@ -29,11 +29,12 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: wan@google.com (Zhanyong Wan)
+
// Implements a subset of TR1 tuple needed by Google Test and Google Mock.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
@@ -41,7 +42,7 @@
// The compiler used in Symbian has a bug that prevents us from declaring the
// tuple template as a friend (it complains that tuple is redefined). This
-// hack bypasses the bug by declaring the members that should otherwise be
+// bypasses the bug by declaring the members that should otherwise be
// private as public.
// Sun Studio versions < 12 also have the above bug.
#if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590)
diff --git a/googletest/include/gtest/internal/gtest-type-util.h b/googletest/include/gtest/internal/gtest-type-util.h
index e46f7cf..28e4112 100644
--- a/googletest/include/gtest/internal/gtest-type-util.h
+++ b/googletest/include/gtest/internal/gtest-type-util.h
@@ -30,8 +30,7 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: wan@google.com (Zhanyong Wan)
+
// Type utilities needed for implementing typed and type-parameterized
// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
@@ -41,6 +40,8 @@
// Please contact googletestframework@googlegroups.com if you need
// more.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
@@ -57,6 +58,22 @@
namespace testing {
namespace internal {
+// Canonicalizes a given name with respect to the Standard C++ Library.
+// This handles removing the inline namespace within `std` that is
+// used by various standard libraries (e.g., `std::__1`). Names outside
+// of namespace std are returned unmodified.
+inline std::string CanonicalizeForStdLibVersioning(std::string s) {
+ static const char prefix[] = "std::__";
+ if (s.compare(0, strlen(prefix), prefix) == 0) {
+ std::string::size_type end = s.find("::", strlen(prefix));
+ if (end != s.npos) {
+ // Erase everything between the initial `std` and the second `::`.
+ s.erase(strlen("std"), end - strlen("std"));
+ }
+ }
+ return s;
+}
+
// GetTypeName<T>() returns a human-readable name of type T.
// NB: This function is also used in Google Mock, so don't move it inside of
// the typed-test-only section below.
@@ -75,7 +92,7 @@
char* const readable_name = __cxa_demangle(name, 0, 0, &status);
const std::string name_str(status == 0 ? readable_name : name);
free(readable_name);
- return name_str;
+ return CanonicalizeForStdLibVersioning(name_str);
# else
return name;
# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC
diff --git a/googletest/include/gtest/internal/gtest-type-util.h.pump b/googletest/include/gtest/internal/gtest-type-util.h.pump
index 251fdf0..0001a5d 100644
--- a/googletest/include/gtest/internal/gtest-type-util.h.pump
+++ b/googletest/include/gtest/internal/gtest-type-util.h.pump
@@ -28,8 +28,7 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: wan@google.com (Zhanyong Wan)
+
// Type utilities needed for implementing typed and type-parameterized
// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
@@ -39,6 +38,8 @@
// Please contact googletestframework@googlegroups.com if you need
// more.
+// GOOGLETEST_CM0001 DO NOT DELETE
+
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
@@ -55,6 +56,22 @@
namespace testing {
namespace internal {
+// Canonicalizes a given name with respect to the Standard C++ Library.
+// This handles removing the inline namespace within `std` that is
+// used by various standard libraries (e.g., `std::__1`). Names outside
+// of namespace std are returned unmodified.
+inline std::string CanonicalizeForStdLibVersioning(std::string s) {
+ static const char prefix[] = "std::__";
+ if (s.compare(0, strlen(prefix), prefix) == 0) {
+ std::string::size_type end = s.find("::", strlen(prefix));
+ if (end != s.npos) {
+ // Erase everything between the initial `std` and the second `::`.
+ s.erase(strlen("std"), end - strlen("std"));
+ }
+ }
+ return s;
+}
+
// GetTypeName<T>() returns a human-readable name of type T.
// NB: This function is also used in Google Mock, so don't move it inside of
// the typed-test-only section below.
@@ -73,7 +90,7 @@
char* const readable_name = __cxa_demangle(name, 0, 0, &status);
const std::string name_str(status == 0 ? readable_name : name);
free(readable_name);
- return name_str;
+ return CanonicalizeForStdLibVersioning(name_str);
# else
return name;
# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC