Squashed 'third_party/googletest/' changes from 2fe3bd994..f5e592d8e

f5e592d8e Googletest export
065a0c814 Googletest export
680a5aa33 Googletest export
719fd2d36 Googletest export
6e8a8623f Googletest export
252ce9c52 Googletest export
11da093e0 Merge pull request #3174 from sebkraemer:issue-15644
23ef29555 Merge pull request #3314 from Vollstrecker:master
f16d43cd3 Googletest export
0d9daa993 Googletest export
566fdcc92 Merge pull request #3364 from jbampton:fix-spelling
8043818e1 Use URL instead of git-repo
eaf9a3fd7 Googletest export
831bc0350 Googletest export
124e87a30 Apply missing suggestions from code review for GTEST_SKIP
1de97fd1c Apply suggestions from code review for GTEST_SKIP documentation
c4ed56eb7 Add subsection for GTEST_SKIP documentation
050b51751 chore: fix spelling
c79eb87c1 Mention to explicitely set the option to it's default.
8d664b94b Googletest export
38c316fc5 Changes like Requested.
4400d68de Googletest export
486a4a6be Googletest export
c3fc92f0b Googletest export
ec7fa96f2 Merge pull request #3158 from GauthamBanasandra:patch-1
965f8ecbf Googletest export
ad462b70c Merge pull request #3319 from a-sully:patch-1
6a5eb8074 Googletest export
8a65bc030 Googletest export
d0303e40c Googletest export
601a68150 Googletest export
54689b193 Googletest export
5c8ca58ed Googletest export
4048829db Googletest export
6c5c4554a Merge pull request #3155 from ZedThree:cmake-alias-libraries
df7fee587 Googletest export
c0dd0817c Googletest export
66836f0a9 Googletest export
6dabd081e Googletest export
5142ccd2d Googletest export
4595745f7 Googletest export
53cc7cd1e Googletest export
d4e3b8ced Googletest export
32ad3c8c3 Googletest export
1a8ecf181 Googletest export
3ff1e8b98 Merge pull request #3315 from zaucy:master
9c047902a Update nicestrictnaggy gmock cook_book links
b7d472f12 Merge pull request #3291 from Be-ing:remove_zi_msvc
ac1d60c2b Googletest export
3bd41ab23 Internal change
d0dbf0f6c Googletest export
98ca42067 Googletest export
5c08f92c8 Use @platforms instead of @bazel_tools for windows constraint
5065389aa Use Fetchcontent instead of ExternalProject
e8512bc38 Googletest export
861d535e2 Googletest export
763eaa430 Googletest export
bb4f87e6c Googletest export
bf465ff05 Internal change
bcfcf75ef Merge pull request #3184 from N-Dekker:PrintTo-type_index-overload
79b556eff Googletest export
e7e591764 Googletest export
32983d211 Googletest export
de41f8223 Googletest export
e8b478a73 Googletest export
3832a41ef Googletest export
497db77a0 remove -Zi from MSVC compiler options
ac3c2a8d0 overload PrintTo for std::type_info and std::type_index
1de637fbd Googletest export
d9c309fda Googletest export
daa0df7b4 Googletest export
7fb047bca Googletest export
589377871 Googletest export
bc32a8745 Googletest export
1a5a78b9a Googletest export
9e2c7ab0d Googletest export
0a3a3a845 Googletest export
e935e6c38 Googletest export
609281088 Googletest export
eac6a02cc Googletest export
e09d2b6a7 Merge pull request #3216 from corentinmusard:master
d4144d4ee Googletest export
0b4ecf54c Internal change
e16577341 Merge pull request #3262 from platisd:master
af058521a Googletest export
9c2293af0 Googletest export
36b779204 Googletest export
46b188577 Do not include void into mocked method arguments
f3ef7e173 Googletest export
9e975a022 Googletest export
7e73533ab Googletest export
b6323d216 Googletest export
aea7f60bf Googletest export
8599d312c Googletest export
fd873f6d7 Googletest export
f4e7727cf Googletest export
8c269618a Googletest export
f23cf0002 Googletest export
726118846 Googletest export
d11439880 Googletest export
273f8cb05 Googletest export
8a7618672 Googletest export
3351eba0a Googletest export
0fe14e2cd Merge pull request #3231 from dreamer:po/fix-primer-link
e3827e4e4 Googletest export
a1dde9b18 Googletest export
59dea67b8 Googletest export
997c36c18 Googletest export
4898cdacf Merge pull request #3204 from kuzkry:CmpHelperXX-overloads-removal
2c06d021d Googletest export
17922f344 Googletest export
14098f201 Googletest export
f31c82efe Fix link to Google Test Primer
d128fc825 Googletest export
5ae6e6e7e Merge pull request #3214 from kuzkry:broken-link
41ecb1025 Googletest export
b0eaf9d84 Googletest export
a3c9bb99f Merge pull request #3206 from davidben:format-attr-2
a2f906be6 Googletest export
1b4e47767 fix a broken link
6c58c11d5 Googletest export
0186caf75 Googletest export
6b2e74905 Googletest export
50ce52016 Googletest export
c13c27a51 Googletest export
489283524 Googletest export
996b65e64 Googletest export
f8304d762 Googletest export
95a9bdd9f Googletest export
d72813110 Merge pull request #3189 from ellert:gtest-help-test-GNU/kFreeBSD
e6e2f3f45 Simplify cmake install file
28041f642 Restore GTEST_ATTRIBUTE_PRINTF_ on ColoredPrintf
100ffc33f remove explicit function overloads of CmpHelper?? for BiggestInt arguments
389cb68b8 Merge pull request #3094 from chuckatkins:update-deprecated-cmake-version
ed1bf8684 Fix gtest-help-test failure on GNU/kFreeBSD
ca4b7c9ff Googletest export
4f6fa7087 Googletest export
18f8200e3 Googletest export
5a509dbd2 Googletest export
fb4b3b6b9 Googletest export
e5644f5f1 Googletest export
8779937dd Googletest export
a02a59160 Googletest export
7bf5057a0 Merge pull request #3159 from malcops:master
d0e0529af Googletest export
4fac06b45 Fix typo in CLI help message
626ce00be Fix typo
2292b6d85 CMake: Add namespaced ALIAS library
93748a946 Googletest export
141e95949 Googletest export
73979ee1b Googletest export
b8c4edf95 Googletest export
d73706911 Googletest export
1544828d2 Googletest export
b1fbd33c0 Googletest export
efe703618 Googletest export
60b8906d1 Merge pull request #3114 from marbre:FindPython
36d8eb532 Merge pull request #3118 from vinsonlee:initialize-TestInfo-is_in_another_shard_
341429be3 Initialize TestInfo member is_in_another_shard_ in constructor.
9dce5e5d8 Googletest export
0e202cdbe Googletest export
a1adec799 Googletest export
e7ed50fd1 Googletest export
d385a7729 Googletest export
336fd36fe Googletest export
b4999a1e2 Googletest export
826e9f25a Refactor finding python
035de8c7f Merge pull request #3109 from hyukmyeong:typo
cda390645 Merge pull request #3090 from knutpett:working_dir_on_diskless
fbef0711c Googletest export
0c400f67f Googletest export
e5686bb18 Only save original working directory if death tests are enabled
87347d545 fix typos
d89b36302 Googletest export
710f9c11c Googletest export
fb98f7447 Merge pull request #3008 from hyukmyeong:update_tutorial
9fd284386 Merge pull request #2714 from kuzkry:remove-repeated-include
ee2c62a6d Merge pull request #3086 from sfc-gh-ebrossard:master
282877317 Googletest export
32f4f52d9 Bump CMake minimum to 2.8.12
bd619dee0 Add instructions for sanitizer integration
3005672db Merge pull request #3044 from manavrion:improve_file_path_normalize
1845b85a0 Googletest export
a6dfd3aca Merge pull request #3073 from ArthurSonzogni:fix-typo
fe0ee53fe Fix typo "definedin in" => "defined in"
620659ed9 Googletest export
252ee42d3 Googletest export
3c95bf552 Googletest export
ebbeee39f Merge pull request #3042 from Aralox:Issue-2135-modify-mock-template-args-AX-to-TArgX
a46218886 Googletest export
f3dbe3ec4 Googletest export
7e7e94429 Googletest export
8ccc5ec5c Googletest export
79dc0f231 Googletest export
b2cb220eb Googletest export
fb239f0e4 Googletest export
b55f834c5 Googletest export
6abcfac2f Merge pull request #3050 from peternewman:patch-1
d4df326d6 Googletest export
d11c76175 Googletest export
2cf1f99b9 Googletest export
0555b0eac Googletest export
72512aa89 Googletest export
4abb012c7 Merge pull request #2837 from inazarenko:duck_type_protos
870a6b556 Fix a typo
113ca75c3 Improve FilePath::Normalize method
07f486922 Merge pull request #3030 from ranodeepbanerjee:patch-1
ee66065bc Issue 2135: Change template args in NiceMock, NaggyMock and StrictMock from A1, A2, ... to TArg1, TArg2,... to avoid clash with legacy header files
1fb1bb23b Googletest export
ed17c8ccc A slight Gramatical change.
477998eef Googletest export
2ff8d94d0 Googletest export
a0cbbba13 Merge pull request #3024 from Thomas-Barbier-1A:fix_warning_maybe_unintialized
f278076ef Merge pull request #3027 from keshavgbpecdelhi:patch-2
705b9c1af Googletest export
1f3484a2b Update cook_book.md
fe4d5f108 Googletest export
df94fc5f7 Googletest export
634c52d99 Merge pull request #3014 from JethroSama:patch-1
b5687db55 Googletest export
4679637f1 Fix warning maybe-uninitialized
7aca84427 Googletest export
bb2725346 Googletest export
4181d7a16 Update README.md, added missing 'a'
242ee2720 Remove spaces between Google Test and Google Mock
5afcb3ca4 Add follow-up patch for more natural reading
2d1a18ff3 Apply the reviewed comment
32437f41e Remove a space
7aae2ac34 Improve the tutorial that may be confusing
a4ab0abb9 Googletest export
646603961 Merge pull request #2994 from xerus2000:gmock-docs
5f8fcf4aa Googletest export
7b1cf6dd5 Googletest export
af1e75ce0 Googletest export
df6b75949 Googletest export
296c9d29b Add timestamp to in old method mock macro guide
1e315c5b1 Merge pull request #2895 from lantw44:wip/lantw/Avoid-using-environ-on-FreeBSD
ec9be15bf Googletest export
655bff5d3 Merge pull request #2984 from earhart:master
aa4cbcdcb Merge pull request #2904 from AmatanHead:throw-matchers
fc1e77889 Googletest export
adeef1929 Googletest export
025e1a484 Export LICENSE
10ade8473 Googletest export
6c655699c Googletest export
3d93f8808 Googletest export
3af06fe16 Merge pull request #2961 from FranciscoThiesen:patch-1
ce654c2ff Merge pull request #2972 from srz-zumix:fix/remove_legacy_testcase_api_
d0de618a5 Googletest export
5a5caab35 Googletest export
48ec64092 Googletest export
b612003c3 fix endif comment
7f1c8bb44 Remove ThrowsMessageHasSubstr and fix some nits after review
a899cecb1 Cleanup a bulky expression, document implementation details
4ebbfea62 Fix build under msvc
c46bdea43 Update tests after changing an error message
0a80845e7 Fix build under msvc
92d0a6f7e Add a test to ensure that the `Throws` matcher only invokes its argument once.
69c510fb5 Add a test for duplicate catch clauses in throw matchers, fix a couple of nitpicks.
49d1201a7 Add missing documentation piece
46734d9a6 Small improvements: code style and property name
9ac4cd0f4 Add matchers for testing exception properties
7d4707724 fix tests
e6e2d3b76 Merge pull request #2952 from jasjuang:master
e61125f05 Merge pull request #2920 from ongjunjie:fix-death-test-regex
7b2f00d9d Removing tiny-dnn from "Who is using.."
68ca04c26 Googletest export
317ec2f29 fix GTEST_REMOVE_LEGACY_TEST_CASEAPI_ typo
18a9aeda7 Googletest export
c64309924 Googletest export
7bde252cb fix clang tidy modernize-use-equals-default warnings
a781fe29b Merge pull request #2937 from Ashikpaul:patch-1
eb660507f Googletest export
af287b4ff Merge pull request #2903 from AmatanHead:informative-exception-asserts
c4a5ee3ac Fixed some minor typos
70b90929b Googletest export
c7f05e08a Merge pull request #2872 from elindsey:master
592d46424 Merge pull request #2808 from OlivierLDff:cmake-cpp11-feature
017c8d56b Merge pull request #2682 from mjvankampen:cmake-QNX-fix
08b787796 Googletest export
9aaaaf3f3 Googletest export
b9a8afcf2 Googletest export
356f2d264 Googletest export
131878ce9 use target_compile_features to use c++11 if cmake > 3.8
5c0ef1cb8 Fix test failing when simple regex is used
aee0f9d9b Googletest export
e5613588a Googletest export
05c4a036b Googletest export
849ed6b17 Merge pull request #2902 from mshingote:master
a4007e944 Googletest export
5e0cf72b7 Merge pull request #2718 from NINI1988:master
62f388e15 Merge pull request #2891 from zoddicus:fixMinGW
0d2830b28 Make EXPECT_THROW and EXPECT_NO_THROW macros more informative
93dc015a8 Updated googletest issue tracker url.
c6e309b26 Googletest export
549c5d061 Googletest export
2e8ebe69d Avoid using environ on FreeBSD
8567b0929 Googletest export
82e568737 remove a duplicated include
13a433a94 Googletest export
9f287b46d Googletest export
ec94d9f24 Googletest export
1b0cdaae5 Googletest export
1eda5d825 Fix build issue for MinGW
4fe018038 Googletest export
07d4a6e93 Merge pull request #2742 from kuzkry:c++17-type-printers
210aab09d Googletest export
cb44c86c1 Merge pull request #2755 from Conan-Kudo:set-version-for-libs
26dadc224 Googletest export
df6813f5e Googletest export
a2533417c fix compilation on OpenBSD 6.7
eb3953f80 make UniversalPrinter<std::any> support RTTI
843267f0f specialize UniversalPrinter<> for std::any (without support for RTTI)
95b0ea2cf specialize UniversalPrinter<> for std::optional
33b44c4b3 specialize UniversalPrinter<> for std::variant
859bfe898 Googletest export
fd32ba66e Googletest export
85a463194 Googletest export
07beabd61 Merge pull request #2767 from mvoorsluys:OutputXmlSkipped
8f3854e20 Googletest export
130ae78b9 Merge pull request #2862 from prehistoric-penguin:prehistoric-penguin-patch-1
69fb7e5da Merge pull request #2845 from matepek:readme-update-with-opensource-proj
731d908c0 Merge pull request #2677 from IYP-Programer-Yeah:fix-file-path-normalize-function
99ea9ca3f Merge pull request #2698 from aribibek:patch-1
6b08b41e5 Googletest export
f3a59610f Googletest export
a0669e070 Googletest export
1397db9e5 Googletest export
63713e1ce Googletest export
80d5177dd Use count function instead of handwritten loop
73fdce3b6 Merge remote-tracking branch 'original/master' into readme-update-with-opensource-proj
7d3946133 README.dm: Renamed related open source project name: Catch2 and Google Test Explorer -> C++ TestMate
011959aaf Googletest export
8a32680ce Googletest export
48bf552cb Merge pull request #2778 from lvjp:issue-2777
77b8d767d Merge pull request #2844 from mstorsjo:windows-includes
fe5300ebf Googletest export
d86e9e23c Remove an explicit include of debugapi.h
09f587512 Revert "Googletest export"
a09ea700d Googletest export
e589a3371 Merge pull request #2751 from calumr:quiet-flag
1a9c3e441 Merge pull request #2830 from keshavgbpecdelhi:patch-1
a9f6c1ed1 Googletest export
4c9ad191e Detect proto messages based on presense of DebugString.
0eea2e9fc Googletest export
3cfb4117f Googletest export
472cd8fd8 Merge pull request #2818 from inazarenko:master
b99b421d8 Merge pull request #2818 from inazarenko:master
129329787 Googletest export
ef25d27d4 Merge pull request #2815 from Quuxplusone:simple
955552518 Googletest export
d7ca9af00 Googletest export
b0e53e2d6 Merge pull request #2797 from Jyun-Neng:master
1b3eb6ef3 Googletest export
fb5d9b66c Googletest export
a67701056 Googletest export
4bab55dc5 Removed a typo in README.md
1b066f4ed Add -Wdeprecated to the build configuration.
c7d8ec72c Fix a -Wdeprecated warning.
01c0ff5e2 Fix a -Wdeprecated warning.
11b3cec17 Fix a -Wdeprecated warning.
766ac2e1a Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_.
7c8ab528b Fix test with stack.
9d580ea80 Enable protobuf printing for open-source proto messages.
4f002f1e2 VariadicMatcher needs a non-defaulted move constructor for compile-time performance.
dcc92d0ab Merge pull request #2805 from pepsiman:patch-1
71d5df6c6 Merge pull request #2802 from e-i-n-s:fix_clang_warning
4c8e6a9fe Merge pull request #2810 from ptahmose:master
373d72b69 Googletest export
4fe5ac533 Merge pull request #2756 from Conan-Kudo:fix-pkgconfig-reqs
c2032090f Merge pull request #2772 from Quuxplusone:travis
b51a49e0c Merge pull request #2773 from Quuxplusone:replace-noexcept
ee0149122 Merge branch 'master' of https://github.com/google/googletest into cmake-QNX-fix
be3ac45cf fix signed/unsigned comparison issue (on OpenBSD)
0b6d56761 Remove redundant .c_str()
644f3a992 gtest-unittest-api_test - fix warning in clang build
e3f0319d8 Merge pull request #2715 from kuzkry:document-premature-exit-file-protocol
7084afda5 Merge pull request #2762 from pkryger:avoid_sigprof
c344cb5a8 Googletest export
879fd9b45 Remove duplicate codes existed in get-nprocessors.sh
61f010d70 Googletest export
dc82a3347 Merge pull request #2765 from kuzkry:unsupported-build-systems
01e4fbf5c Merge pull request #2764 from kuzkry:googletest-output-test-dead-code
e3c25c169 Fix --gtest_print_time coloring
6ed4e7168 Replace the last instance of `throw()` with `noexcept`. NFC.
5504ded3a Fix a typo in .travis.yml
189299e95 Merge branch 'master' into quiet-flag
c447b2166 Fixed xml unit-tests and added extra tests
23dadb847 Fix multiple \n characters in xml file when using GTEST_SKIP.
d28d05cc6 Only write ">\n" once when there is failure and skipped tests.
59e5b401a Output skipped information in the xml file.
67cc66080 Merge pull request #2350 from adambadura:MockFunctionFromStdFunction
1ced315a4 Googletest export
acabdf65f remove chapters on Autotools, Meson and plain Makefiles
82e5767f7 remove dead code in googletest-output-test
08347d7a1 Swap settimer and sigaction calls to avoid SIGPROF
354923795 Ensure that gtest/gmock pkgconfig requirements specify version
94a7cf8c5 Set the version for the libraries
749148f1a Googletest export
dbe804f98 Merge pull request #2746 from Romain-Geissler-1A:master
fb19f5788 Add GTEST_BRIEF option
53740ebc2 Add support for std::function in MockFunction (#2277)
e41f31f2a Add tests for MockFunction deduction (#2277)
482ac6ee6 Googletest export
c43f7100f Googletest export
227faf41d Googletest export
230afdb24 Googletest export
0bf8ea306 Googletest export
3de76551e Merge pull request #2722 from JohanMabille:warnings
878bd92e0 Merge pull request #2716 from kuzkry:autotools-leftover
cfb5ef4e7 Googletest export
a1b0173df Make sure IsATTY does not clobber errno.
e588eb1ff Googletest export
909b1ccfc Googletest export
fd538161f Googletest export
ff4872659 Add missing call for gtest_list_output_unittest_ unitTest. Add unitTest for fixed TEST_P line number. Use CodeLocation TestInfo struct.
04e52ebe7 Fixed warnings
25385c23e Fix: shadow member
921972cba Add correct line number to TEST_P test cases for gtest_output.
937b3ce9f Merge branch 'master' of https://github.com/google/googletest into cmake-QNX-fix
23b2a3b1c Googletest export
6f5fd0d71 Googletest export
d0930731d Googletest export
56de7cc8b Googletest export
360f5f70a Googletest export
139fa202c Googletest export
41b5f149a Googletest export
2d6d7a01c Googletest export
fbf67a70d Googletest export
11d9834e9 Googletest export
d02e27727 Googletest export
4f6609129 Googletest export
74b44b2d0 Googletest export
572e261b6 Googletest export
7bc671b8e Googletest export
38f6608e8 Googletest export
d6ce39edf Googletest export
7413280c5 Googletest export
87061810f Googletest export
f1a6db9d4 Googletest export
22397f28e Googletest export
461bd03fc fix a link to documentation
c378d7eb9 remove a dead reference to the Autotools script
c09fbb239 Fix always false condition and clean function body
44517f988 Fixes extensions missing for QNX
10b1902d8 Googletest export
d01e356e1 Googletest export
9417fb401 Merge pull request #2665 from bysreg:fix_noshortcircuitfailure_detectsflakyshortcircuit_test
c59c7bab5 Merge pull request #2672 from ivan1993br:ivan1993br-platformio_update
18b67bfc5 Googletest export
8b4817e3d Googletest export
5336106b6 Googletest export
3e79d366e Googletest export
7a8591e6e Googletest export
0b024bd91 Googletest export
ed16134fb Googletest export
aa4315646 Remove exclusion of *-main and*-all targets
c7137f0b8 Use IsReadableTypeName IsReadableTypeName in OfType function in gmock-matchers_test.cc
3aa538cbf fix unit test failure on NoShortCircuitOnFailure and DetectsFlakyShortCircuit when GTEST_HAS_RTTI is 1
d854bd6ac Googletest export
c901f67dd Googletest export
8417b7332 Googletest export
4b9c1691c Googletest export
306f3754a Googletest export
07ab939af Merge pull request #2632 from Kravlalala:cmake/mingw_msys_build
0d98d87e1 Googletest export
153909f09 Googletest export
fbe34cecf Merge pull request #2639 from trzecieu:trzeci/move_ctor_assign
a13a06261 Googletest export
008629ae2 Merge pull request #2624 from ShabbyX:master
d0a521255 Googletest export
6f1a8ffde Googletest export
bf31ed376 Make move operation noexcept.
cc05a3ca0 Define default destructor for test classes
05701fee2 Deleted functions as part of public interface
77b3a250e Review notes: Return T& from assignment operators
9d8222ad6 Disable move constructor and assignment operator for test classes.
d166e0948 Merge pull request #2590 from kuzkry:remove-workaround_g++-stale-comments
0a0c82662 Googletest export
1800a38fb Revert "Googletest export": disallow empty prefix
4b7809c2f Revert "Googletest export": Remove test for empty prefix
d20164690 Workaround VS bug w.r.t empty arguments to macros
5b162a79d Merge pull request #2589 from kuzkry:remove-workaround_g++-no-space-after-first-macro-argument
d16f86ff1 Googletest export
d8eeb9760 Googletest export
d442089d5 Googletest export
88ba008c2 Merge pull request #2595 from kuzkry:remove-workaround_msvc-warning-4355
a3097c826 Merge pull request #2592 from kuzkry:remove-workaround_msvc-error-C2665
6251071a2 Googletest export
20b8e7a1c Activate GNU extensions in case of MSYS generator
78fdd6c00 Merge pull request #2609 from kuzkry:revert-2596
9ed99c6c8 Googletest export
2002f267f Googletest export
1d563578c Merge pull request #2594 from kuzkry:remove-workaround_msvc-unneeded-const-dropping
cf75d4b92 Googletest export
ae8d1fc81 Googletest export
52825d78a Merge pull request #2603 from maximilianschwab:patch-1
11a9482f8 Merge pull request #2607 from oyefremov:patch-1
b155875f3 Merge pull request #2583 from ChristophStrehle:master
3957b8898 Revert "remove MSVC workaround: wmain link error in the static library"
967d8e05c Revert "unify googletest and googlemock main functions"
b8a92f7c8 Rename test case to test suite
34e92be31 Merge pull request #2604 from matepek:readme-update-with-opensource-proj
39803f3c5 Merge pull request #2593 from kuzkry:remove-workaround_msvc-namespace-scope-from-nested-class
0361bdf59 Merge pull request #2596 from kuzkry:remove-workaround_msvc-wmain-link-error
db13ff1f0 Merge pull request #2597 from kuzkry:remove-workaround_Nokia-Sybian-SafeMatcherCastImpl
be74b4b2e Googletest export
7a8a5bcec Merge pull request #2591 from kuzkry:remove-workaround_g++-using-on-operator<<
a32a20009 Merge pull request #2588 from kuzkry:remove-workaround_g++-incorrect-comments
51545ee51 Googletest export
5a62d400e README.md: added Catch2 and Google Test Explorer
838a32845 Fixed typo
679bfec6d Googletest export
af71b6607 Merge pull request #2570 from xieyubo:1.10
717ce7feb Googletest export
a909becdc unify googletest and googlemock main functions
298a40f02 remove MSVC workaround: wmain link error in the static library
bbbc5d8a4 remove Nokia's Symbian compiler workaround: SafeMatcherCastImpl
e0c80b0a6 consistency fix for SafeMatcherCastImpl member functions
6748df1ea remove MSVC workaround: cease const dropping
ecefcbd4a remove MSVC workaround: warning 4355
a5136dbdd remove MSVC workaround: error C2665
21d276b5c remove MSVC workaround: accessing namespace scope from within nested classes
a91e4e73b remove stale comments about older GCC versions
e1dd49835 remove g++ 2.95.0 workaround: no space after first comma in macros
2241be0c3 remove g++ 3.3 workaround: using on operator<<
6a9d6d5c2 Fix compile break for Microsoft Visual Studio 2017 v141
200ff5994 Merge pull request #2569 from bgianfo:master
4bf466236 Googletest export
50cfbb726 Googletest export
dcdb65065 Fix internal memory leak in Windows _Crt report.
0c469a5a0 Fix FlatTuple compilation on older msvc.
c27acebba Merge pull request #2521 from Sinclair-John:master
f73898f3f Merge pull request #2554 from kuzkry:update-gen_gtest_pred_impl
11440f27c Merge pull request #2556 from ienorand:avoid-pkg-config-lpthread-cflag
dee725b05 add documentation for the premature-exit-file protocol
d5707695c Googletest export
681454dae Googletest export
e08a46027 Merge pull request #2549 from kuzkry:pump-support-for-python-3
8aedd597a Merge pull request #2548 from kuzkry:update-pump-manual
54978626b Merge pull request #2547 from kuzkry:typo
3e062a6ef Merge pull request #2373 from Youw:master
6caa879a4 pkg-config: Remove pthread link flag from Cflags
f79ac2ce0 change incorrect comments
f9665846e update gen_gtest_pred_impl.py
8697709e0 Merge pull request #2453 from kuzkry:gtest-port-clean-up_kMaxBiggestInt
f658561ef fix a typo
442f45b37 pump.py: add support for Python 3
523ad489e update pump_manual.md
e8a82dc7e Merge pull request #2453 from kuzkry:gtest-port-clean-up_kMaxBiggestInt
057ee5063 Merge pull request #2533 from thejcannon:noexcept_spec
2db3df9c4 Googletest export
e2fc3a9c9 Googletest export
0a0348082 Googletest export
f626deda1 Added special catch for std::exception in GTEST_TEST_NO_THROW_
ba33a8876 Googletest export
fff8dabbf Googletest export
2bee6da24 Googletest export
755f853c6 Googletest export
757d39a79 Googletest export
b5fb5ba05 Merge pull request #2527 from PiotrNycz:gmock_prevent_return_ref_to_store_temporaries_2
a1f71dd56 Googletest export
a8b1a66cf Merge pull request #2388 from kuzkry:remove-gtest-type-util.pump
1a49b67ae update CONTRIBUTORS
002905f29 move the pumping script to googlemock
a7083564d remove gtest-type-util.h.pump
e3a9a567d replace autogenerated TemplatesX classes by variadic ones
eed64b5fc replace autogenerated TypesX classes by variadic ones
540835fa6 Merge pull request #2515 from ciband:feat/support_esp8266
208c2f6b6 variable names corrected (followed google coding style)
5ff72f529 Apply 80chars limit
d07268211 Tests simplified and names corrected (POD->scalar)
6e87238c9 remove BiggestInt
37f322783 Googletest export
676d0444b Revert "Merge pull request #2498 from thejcannon:noexcept_spec"
1110c471c Merge pull request #2522 from cloudrex:patch-1
8bab7883a Merge pull request #2514 from thejcannon:msvc_macro_issue
aa1146da8 Googletest export
37590da6c Added more tests to verify: ReturnRef not accept temporary
19a3bbce5 Added tests verifying that temporaries are accepted by ReturnRef
f1afeaa64 Googletest export
b11fb80e9 Prevent using ReturnRef on reference to temporary
8c91ecef2 Merge pull request #2517 from snarkmaster:master
de1128355 Merge pull request #2444 from kuzkry:remove-GTEST_ARRAY_SIZE_
611a321a6 Googletest export
a5216dd1a Merge pull request #2511 from kuzkry:PlatformIO-clean-up
8ce64c084 Merge pull request #2454 from kuzkry:gtest-port-clean-up_dead-function
011c4e23d Googletest export
f164a9e23 Remove extra space
5f92697d4 Fix Issue 2418
f966ed158 Googletest export
1f9edcd96 Googletest export
bbe4b7363 Googletest export
2995ca563 Merge pull request #2507 from roblub:master
cbf019de2 [googletest] Output skip message
bdc29d5dc Merge pull request #2421 from kuzkry:cleanup-for-regex
4c25e2b87 Googletest export
9e466f1eb Merge pull request #2510 from ciband:chore/update_pio_version
778733f9e feat: Add ESP8266 support
e1b67b07f Avoid recursive macros
3cddd56e1 Add more override keywords
84a5ae8b8 Update to distinguish prelease purpose of this fork.
3e813465a Removing extraneous parenthesis
f8961b99f Evaluate and cat NARG in different macros
c2206b05a Add ESP8266 configs to PlatformIO build
40a6b9662 feat: Add support for ESP8266 platform
5fe523361 Removing extraneous test
fe112cfee Replace compile-test with preprocessor test
d935e8e3e Fix preprocessor tests
c1e8e71aa Add a compile test
c081ceebf Workaround MSVC VA_ARGS weirdness
ba513d2c9 Merge pull request #2498 from thejcannon:noexcept_spec
a3ca5b9e0 Googletest export
eafd2a91b Merge pull request #2456 from kuzkry:gtest-port-clean-up_breaking-changes
37905b9d8 Merge pull request #2498 from thejcannon:noexcept_spec
a4a5a7c76 Googletest export
ed78e54f3 Googletest export
9b9700247 clean-up broken paths for PlatformIO
31406d790 chore:  update version
bc996e081 Made noexcept condition more exciting
58c719776 Merge pull request #2505 from zebmason:cornichon
20b5b8ecc Googletest export
5395345ca Merge pull request #2497 from thejcannon:handle_null_filename
cb1d5db1a Merge pull request #2448 from kuzkry:bad-googletest-export
de69803b1 Mention Cornichon as a related open source project
cd17fa2ab Merge pull request #2475 from peterbarker:pr/google-add-override
20255e6f4 Use declval in noexcept expression
7f8617a7c Switch to free function to avoid GCC bug
872b9ceb6 Avoid comma operator
0eadff8a9 Fix spacing
10c1d8c4f Use the verbatim noexcept spec in MOCKED_METHOD
3f5a8c6ee Merge pull request #2495 from hyukmyeong:typo
2ed2211db Use FormatFileLocation for streaming file and line
4360e4267 Merge pull request #2491 from SoapGentoo:fix-GNUInstallDirs-pkg-config
b96832a44 Add documentation for pkg-config in cross-compilation settings
5126ff48d Revert "Use pcfiledir for prefix in pkgconfig file"
76a560c81 Googletest export
703bd9caa Googletest export
4105eb726 Googletest export
68319c19e Googletest export
51f7396d4 Fix typo in documents
dc1ca9ae4 Googletest export
72adf7a41 Googletest export
cb3f7ce1d Googletest export
a783ade7c Googletest export
bf0fe874a Googletest export
076c46198 Googletest export
c78ea26f2 Bump llvm version to 4 so brew can work again
2460f9715 Add many missing override keywords
e0d16aa33 remove GTEST_ARRAY_SIZE_
90a8ab70a mention the existing support for wide strings in string matchers
3339b97c6 square away the stuff that hasn't been merged in a manual review
7c2bd3af9 square away the stuff that hasn't been merged in a manual review
f2fb48c3b Googletest export
cad3bc46c Googletest export
c96da8fea change usings
c7a03daa9 Merge pull request #2387 from kuzkry:iff
ac24edd6e Googletest export
274afe50c Googletest export
0cd3fbc8a change includes in gtest-port.h
33a0d4f6d Googletest export
838ea5cea remove GTEST_HAS_STD_STRING
bafa644c1 remove a dead function
3a4503986 Googletest export
62a109a2f Googletest export
c2b2cd888 Googletest export
3f05f651a Googletest export
6123df929 Googletest export
ab8f346b0 Googletest export
565f1b848 Merge pull request #2398 from kuzkry:custom-type-traits-iterator_traits
a648da952 Merge pull request #2420 from kuzkry:remove-autotools-section
eb56ee5a2 Googletest export
d9c55a48e Merge pull request #2426 from kuzkry:#2396-postreview
85f059f03 Merge pull request #3 from google/master
fdd6a1dc8 Merge pull request #2382 from kuzkry:dead-metafunction
6a3d632f4 Googletest export
38ce18e8e post-review to db1b7399 (#2396)
ed2eef654 Googletest export
db1b73994 Googletest export
46525e1e5 Merge pull request #2394 from kuzkry:custom-type-traits-duplication-of-custom-index_sequence
c6d884096 Merge pull request #2401 from kuzkry:custom-type-traits-add_lvalue_reference
9bf34ace7 Merge pull request #2400 from kuzkry:custom-type-traits-enable_if
f8e9b3767 remove references to autotools and combine gTest&gMock sections
fb49e6c16 Merge pull request #2393 from kuzkry:custom-type-traits-remove_const
d1ad644db Googletest export
7bd4a7f3e restore mistakenly removed iffs in their explicit form
c9ccac7cb Googletest export
d5e9e0c38 Merge pull request #2397 from kuzkry:custom-type-traits-is_reference
30e58a89a Merge pull request #2381 from Yannic:fix_bazel
fcffabb5b Googletest export
410b52985 Googletest export
27e17f785 Googletest export
eb78ee170 Googletest export
976b37fe9 Googletest export
44de86978 remove a dead metafunction
e9d5f427b Googletest export
d44b137fd Googletest export
4083746e6 Merge pull request #2391 from adambadura:FixCygwin
9b7040691 Merge pull request #2399 from kuzkry:custom-type-traits-is_same
6aba4a5c4 Merge pull request #2382 from kuzkry:dead-metafunction
c16f57053 Merge pull request #2386 from kuzkry:outdated-comment
a92e4a8e9 Googletest export
3835e15d7 Googletest export
de38f6380 Googletest export
6a015ca1c reuse IndexSequence from googletest
ec49fbca4 remove custom implementations of std::is_same
da76d01b9 remove a custom implementation of std::is_reference
364839ab1 remove a custom implementation of std::remove_const
e2c06aa24 remove a custom implementation of std::iterator_traits
11471da79 remove a custom implementation of std::enable_if
2c2c9e335 remove a custom implementation of std::add_lvalue_reference
6dbddd32b Use -Wa,-mbig-obj for Cygwin/MinGW always
871dcd1ff remove an outdated comment
d51cce4fc remove a dead metafunction
90a443f9c Merge pull request #2378 from kuzkry:markdown-table
f8f5fcab3 Googletest export
dd5402d9d Googletest export
79690c537 Merge pull request #2372 from pitrou:issue2371-windows-crt-asserts
800c9b301 Update Bazel on Windows
6fd262ecf Prepare for Bazel incompatible changes
6aa98d5cd fix an improperly generated table
f64f7bd36 Merge pull request #2375 from kuzkry:broken-links
07ec69a88 Merge pull request #2359 from kuzkry:superfluous-mutable
d0cb77dcc fix broken links
b4961ab1c Googletest export
2f499db00 Merge pull request #2111 from knuto:pr/remove_slash
9f8c3934d Googletest export
c39ee9c46 Fix #2371: Redirect Windows CRT assertions to stderr
11be5f534 Googletest export
4e29e4884 Merge pull request #2358 from kuzkry:adjustment-of-similar-comments
6c7a8bec8 Merge pull request #2341 from ChrisBaish:master
cc34e8fa7 Merge pull request #2357 from kuzkry:obsolete-documentation
47092933f Merge pull request #2361 from guillemglez:master
6a2adc0ee Googletest export
c8d338c62 Merge pull request #2353 from anttsov:patch-1
8756ef905 Googletest export
da28d3019 Googletest export
b15335dfa Googletest export
a3eee98ca Googletest export
2221875d0 Googletest export
210239e80 Fix table formatting in advanced.md
637b0411f remove an excessive mutable type specifier
96c851d05 adjust a comment to the similar section in advanced.md
64b17693e Update README.md
287b37f23 update pre-C++11 paragraphs
9311242db Merge pull request #2356 from kuzkry:typos
0647b90ee Merge pull request #2354 from kuzkry:trailing-whitespaces
4cd6e4d35 Merge pull request #2355 from kuzkry:markdown-numbering
bf6df7eae fix typos
d384b8831 fix numbering of ordered lists in Markdown
28e1dde25 remove trailing whitespaces
579591a35 Update README.md
c205468b6 Merge pull request #2338 from kuzkry:environment-documentation
05747d2ee Merge pull request #2342 from Jauler:master
3821ecd57 Googletest export
a45c24ac1 Googletest export
b2983b2f2 Merge pull request #2331 from adambadura:CMakeCorrection
bb481d2da Manual docs tweaks still in preparation for including docs with code pushes
c4b68b91f Manual docs tweaks still in preparation for including docs with code pushes
1be5ce090 Correct CMake to cover Cygwin
2134e3fd8 Googletest export
373ed74af Googletest export
0a5efc11e Googletest export
e93b5e06b Fix small errors in primer.md
3525e3984 Moved explanation to single line as well
af11cda56 Moved table to single lines
d64e4cf14 Merge remote-tracking branch 'upstream/master' into primer_md_table_update
b77e5c762 Manual docs tweaks still in preparation for including docs with code pushes
a743249a5 Manual docs tweaks still in preparation for including docs with code pushes
15756aa0c Manual docs tweaks still in preparation for including docs with code pushes
34ddfff94 Manual docs tweaks still in preparation for including docs with code pushes
2fa7be932 explicitly show overriding to align examples to their comments
cc49f5b27 document a missing parent class
adb490773 Update primer.md
2ef13f524 remove outdated
96bf3b1af remove outdated
ad52f7d0b Merge branch 'master' of github.com:google/googletest
63e878b62 Preparation for including docs in round-trip with OSS, Manual merge, review and merge docs internal-OSS
0ef404e2e Googletest export
6077f444d Merge pull request #2332 from adambadura:AddMissingInclude
1f809607b Add missing <functional> include
f899e81e4 Preparation for including docs in round-trip with OSS. Manual review and merge docs internal-OSS
4ab6f4d70 Preparation for including docs in round-trip with OSS. Manual review and merge docs internal-OSS
3d9cdd580 Googletest export
f38f4d8f2 Googletest export
e4f097b5f Googletest export
947aeab28 Preparation for including docs in round-trip with OSS
5af948b30 Preparation for including docs in round-trip with OSS
073a2da40 Preparation for including docs in round-trip with OSS
01573aa0e Merge branch 'master' of github.com:google/googletest
afa914325 Merge pull request #2324 from kuzkry/fix-broken-link
31ff59788 Preparation for including docs in round-trip with OSS
b97b96a1a Merge pull request #2309 from cclauss/patch-1
b0568dcb4 fix a broken link
5c4d53fd5 Merge pull request #2326 from kuzkry/missing-references-to-documentation
f81dbd6ce add missing references to DesignDoc and KnownIssues
b138afde1 rename and apply snake_case on KnownIssues.md
1d5b7cc1e rename and apply snake_case on FrequentlyAskedQuestions.md
92d92f2f5 rename and apply snake_case on ForDummies.md
6078089ef rename and apply snake_case on Documentation.md
382cdf916 rename and apply snake_case on DesignDoc.md
275bbc788 rename and apply snake_case on CheatSheet.md
ee3aa8311 Fix bad advice in cook book (#2308)
dfb5e22b8 Travis CI: The sudo: tag is now deprecated in Travis CI
437e1008c Documentation sync in preparation to including docs with full source sync
834dff3b5 Documentation sync in preparation to including docs with full source sync
c1845f65f Update README.md
2a1a3e290 Merge pull request #2296 from rmstar/replace_golinks
ce58a5972 Remove google internal links from documentation on github
b4676595c Incremental doc changes in preparation for doc sync
152c7dfd0 missed the actual file in previous commit
5ed950c9e Renaming doc files to make the file names more palatable and in preparation for including documentation in sync process
ac31db8fa small docs restucture and cleanup
ba68290cb small docs restucture and cleanup
2f42d769a Merge branch 'master' of github.com:google/googletest
39ea9e8a9 Remove outdated from README
1d721a7a9 Googletest export
ee32b72e1 Googletest export
4f0160360 Merge pull request #2290 from gennadiycivil:master
be8d01462 Googletest export
ed43ecf9e Merge pull request #2288 from gennadiycivil:master
60b929865 Fixing CI break by going to bazel 0.26.1
c1a584d30 Merge branch 'master' of https://github.com/google/googletest
02767277b Revert "testing, explicitly specify compiler"
d7003576d Googletest export
d1185b9ff Googletest export
fe3a10b41 revert travis.yml, irrelevant
93d69df46 bazel 0.26.1
4b6a3cc6c bazel 0.26.1
1e5ad17e9 testing with bazel 0.26.1
919142f8a testing with bazel 0.26.1
6c971ca9a testing, explicitly specify compiler
176eccfb8 Merge pull request #2287 from PhilLab/patch-1
fd20d1ecc Merge pull request #2286 from gennadiycivil/master
b72b1bee9 docs/primer: Fixed usage of test case
e110929a7 Documentation sync working on the documentation being included with the code
cd6b9ae32 googlemock/docs/CookBook.md small doc test
41961e9e0 Merge branch 'master' of https://github.com/google/googletest
f7c178ecb Makefiles are no longer supported. Adding pseudo-break with their impending removal to make sure that people who are interested will notice
38d967e88 doc is still valid
7ada9b66b Finish removing autotools
807d590a2 Finish removing autotools
74905ef84 Also remove googlemock/scripts/gmock-config.in
84a498dec Merge pull request #2285 from tomalakgeretkal:c++17-fix
6b8c13815 Removing make and automake. The only supported build systems are Bazel internally and CMake community supported
26afdba79 Merge pull request #2283 from xammy:cmake-cmp0054
d515158d9 Fixed issue #2284 (Incompatibility with C++17)
e580d9919 Setting CMP0054 policy to NEW. This allows to use the string "SHARED" without interpreting it as a variable.
af4c2cb09 Formatting Changes
fa9a47681 Formatting Changes, README
89656ddbe Update README.md
076b7f778 remove obsolete codegear files
fbcb2eb20 removing obsolete language from docs, CMake and Bazel is the only supporeted build methods
6f79a3b8a removing gmock msvc solution, as CMake and Bazel is the only supporeted build methods
527a493fb removing build-aux files , as CMake and Bazel is the only supporeted build methods
b93980dda removing xcode files , as CMake and Bazel is the only supporeted build methods
60a6d5fc3 removing msvc solution, as CMake and Bazel is the only supporeted build methods
da10da05c Merge pull request #2268 from kalaxy/fuse_spi_in_header
577daedd5 Merge pull request #2274 from goudan-er/master
0183a459e Merge pull request #2270 from Peter-Levine:fix-signed-wchar
3ff7cd0f1 fix typo
31200def0 Googletest export
08a68b6fb Googletest export
711fccf83 Don't allow signed/unsigned wchar_t in gcc 9 and later
6044c267e Fuse gtest-spi.h into the resulting header.
8ffb7e5c8 Merge pull request #2264 from mbrobbel:suppress-cmp0048-warning
899c08263 Googletest export
97d8c47df Suppress CMake policy warning (CMP0048)
f5edb4f54 Update CONTRIBUTING.md
a2059b408 Update CONTRIBUTING.md
7f1c0f6f8 Merge pull request #2260 from 741g:master
88f049309 Merge pull request #2259 from ngie-eign:fix-maintainers-typo
dc792bc60 Update README.md
feb55f22c removing msvc
a67e9a848 removing msvc
928f7a342 removing codegear
2f58f41d1 unbreak windows build
699943fe4 Fix typo introduced in 63be3dcc245 (maintaners -> maintainers)
f71fb4f9a Update advanced.md
03273a898 Merge pull request #2254 from chaoran:master
5b4a135f6 add unit test for overload & operator
9d4cde44a Added docs for testing::RegisterTest
2fc238316 Use std::addressof to instead of plain '&'.
529981537 Googletest export
3f5b5b8f8 Googletest export
bf3ef5c9b Merge pull request #2245 from daquexian:fix_wsign_conversion
63be3dcc2 Googletest export
ca642a925 Fix -Wsign-conversion error by adding static_cast
9997a830e Merge pull request #2242 from SylvestreG:master
3c911d2de Removing  obsolete msvc 2005 and 2010
87348c217 Removing  obsolete codegear and msvc 2010
82f9c8d65 Googletest export
61cdca569 Merge pull request #2241 from ngie-eign:fix-wsign-conversion-fallout
9037e9bda Fix compilation on CentOS 7
bd47c09b7 Address fallout from -Wsign-conversion work on Windows
b953e05bc Remove / from parameterized test names if base test name is empty
84d986531 Googletest export
a53e931dc Update README.md
0c68c865f Googletest export
9f4f27b2a Googletest export
fa52cd636 Googletest export
a0d60bed4 Merge pull request #2170 from ngie-eign:issue-2146-ver2
9f893b995 Googletest export
6d6681806 Googletest export
39f72ea6f Merge pull request #2230 from return:style-issue
698d45d3a Sort Haiku platform definition alphabetically.
adc8a88ff Merge pull request #2226 from davidben:msvc-5046
ea9c49b9c Merge pull request #2229 from return:haiku-support
520a1e52a Merge pull request #2228 from rongou/patch-2
0a00ba64d Add Haiku platform support.
f658dcbaa replace test case with test suite in the primer
7473c5ca5 Merge pull request #2225 from rongou/patch-1
8e9297b50 MSVC C5046 warning is unavailable in MSVC 2015.
d622dfe8a add missing period
604ba376c Update README.md
f683de658 Merge pull request #2222 from Ivaylo-Kirov/patch-1
dc62d1e76 Update ForDummies.md
3829b84e9 clang: fix `-Wsign-conversion` errors
5ba69d5cb Merge pull request #2148 from ngie-eign:clang-add-explicit-c++11-rtti-flag
c061ffafd Googletest export
7475ba503 clang: explicitly enable/disable RTTI support with the compiler
1f3b098ef Merge pull request #2203 from ngie-eign:issue-2189
c9e0aed90 Googletest export
b617b2771 Googletest export
2efd659a1 Merge pull request #2163 from ngie-eign:cmake-fix-gtest-binary-prefixing-when-gmock-enabled
d98254313 Googletest export
67c75ff8b Handle GTEST_SKIP() when calling `Environment::SetUp()`
9b6de41b5 Prefix googletest binaries under its own subtree instead of `gtest`
5b752b194 Googletest export
1f64659fb Update CONTRIBUTING.md
1040b342f Update CONTRIBUTING.md
a5532dae7 Merge pull request #2199 from syohex/update-xcode-project-file-again
c651b4528 Update Xcode project file
a18ac392d Merge pull request #2193 from antismap/patch-1
d31151a49 Update googletest/docs/advanced.md
10e98c4f2 Merge pull request #2180 from twam:master
f1883b182 Googletest export
a4b63e7ef Googletest export
f23336093 Note about INSTANTIATE_TEST_SUITE_P / INSTANTIATE_TEST_CASE_P  keyword change
f957bd0c2 Merge pull request #2181 from sethraymond/patch-1
c3ac2655f Remove old_crtdbg_flag_ member if not required
1619ebcf2 DesignDoc Markdown table was broken
8b6d3f9c4 Merge pull request #2158 from CarloWood:master
3dd2e841c Googletest export
a1dd07786 Googletest export
db9b85e27 Googletest export
56ef07a20 Googletest export
fc979623a Minor build system fixes.
efecb0bfa Googletest export
5154386c5 Merge pull request #2152 from rsinnet/patch-1
d70cd4e35 Fix grammatical error in primer.md
37ae1fc5e Merge pull request #2147 from ngie-eign:gtest-test-death-test-dont-hardcode-test-name
b6473fcf9 Merge pull request #2126 from ngie-eign:clang-add-more-strict-warnings
cd09534de Don't hardcode the filename in `CxxExceptionDeathTest.PrintsMessageForStdException`
7203f37f5 Merge pull request #2137 from ngie-eign:clang-ignore-sign-conversion
1411d27a9 Merge pull request #2061 from samolisov:building-with-bazel-as-a-dll-on-windows
c5a792d1b Merge pull request #2125 from ngie-eign:clang-unused-parameter
c37489302 Merge pull request #2123 from ngie-eign:clang-inconsistent-missing-override
873e47981 Googletest export
0e424c759 Googletest export
6d4d2f06b Merge pull request #2141 from dspinellis/index-fix
9dc235b59 Avoid array index out of range
fcf59ca7b Ignore `-Wsign-conversion` issues
1c22797cd Fix clang `-Wunused-parameter` warnings
5388473ac Fix clang `-Winconsistent-missing-override` warnings
2147806d2 Fix clang `-Winconsistent-missing-override` warnings
a4af76cf8 Add `cxx_strict_flags` for clang to match FreeBSD's WARNS flags
d850e1447 Merge pull request #2112 from knuto:pr/fix_null_pointer
54ec41f00 Merge pull request #2121 from ngie-eign:add-dragonflybsd-and-kfreebsd-support
f73b2fb39 Merge pull request #2114 from knuto:pr/libtool_support
ea43be9d1 Merge pull request #2119 from ngie-eign:clang-wunused-private-field
e5e846da7 Merge pull request #2120 from ngie-eign:clang-compile-with-basic-warns-flags
75c339609 Merge pull request #2113 from knuto:pr/set_old_gtest_ver
96826743e Import `patch-bsd-defines` from FreeBSD ports [1]
1ded83195 Compile clang with `-Wall -Wshadow -Werror`
ed2fe122f Fix -Wunused-private-field issues with clang
c4ccab33a Googletest export
b37574c1b Merge pull request #2107 from ciband:feat/finish_platformio_support
b68ec344b Merge pull request #2101 from MaEtUgR:fix-cmake-cygwin
4f79e316a Googletest export
28a96d183 Googletest export
dda0df3b0 Googletest export
60cf03313 Set gtest version correctly for older cmake versions
f4d3cdb65 Generate a libgtest.la to help libtool managing dependencies
48e6f1f38 Stop TestInfo::Run() calling a function through null pointer
47568eade fix:  Correct *-all.cc file paths
9a502a5b1 Merge pull request #2100 from ngie-eign/test-clang-osx-every-travis-run
e28b50609 Merge pull request #2103 from kw-udon/fix-json-in-advanced-md
b3679d856 Fix an invalid example of JSON report in advanced.md
f80d6644d Update .travis.yml
5dfcd1bc4 Update .travis.yml
9df5475b8 Test out changes with clang/OSX each PR using Travis CI
50059a12b Googletest export
52ea4f7be Googletest export
876bdfa56 Googletest export
471f5bc43 Merge pull request #2098 from ciband:feat/finish_platformio_support
f89253434 cmake: detect Cygwin which needs extensions to build
67265e070 cmake: move global project definition to beginning
0ea2d8f8f Googletest export
53798de93 chore: Add PlatformIO supported platforms list
b2b246225 fix: Add Arduino to embedded platform list
fe519d64a fix: Add *_all.cc files to ignore list
4f4c01d8c Merge pull request #2092 from Billy4195/Update_README
1c23efb42 Fix README.md broken link
e04254989 Merge pull request #2091 from google/gennadiycivil-patch-1
acde02c63 Repeat #2090
8e37822b4 Merge pull request #2063 from mathbunnyru:master
ce29e55cf Merge pull request #2090 from KellyWalker/patch-1
2775733ee Update advanced.md casing in example
9318a18cc Added -Wgnu-zero-variadic-macro-arguments" clang
1f42ae735 Merge pull request #2063 from mathbunnyru:master
01148677a Merge pull request #2086 from hugolm84:fix-dynamic/static-runtime-link
718bb65ac Avoid dynamic/static runtime linking (LNK4098) by properly replacing MD(d)->MT(d) in both C and CXX flags, resolves 2074
5ec7f0c4a Merge pull request #2079 from acozzette:fix-dist
46b81732b Fixed "make dist"
bf07131c1 Merge pull request #2041 from ciband:chore/fix_library_json
fdc59ffd0 Googletest export
569fba4d7 Googletest export
91bfc0822 Enable CI on Windows (appveyor) with Bazel
9518a5742 Googletest export
7c4164bf4 Fix INSTANTIATE_TEST_CASE_P with zero variadic arguments
0adeadd28 Googletest export
eb9225ce3 Googletest export
9acd065a9 Googletest export
097407fd3 Googletest export
c868da198 Enable building as a shared library (dll) on Windows with Bazel
0599a7b84 Googletest export
2edadcedf Workaround homebrew issue
6693e85b0 Merge branch 'master' of github.com:google/googletest
bc1023b41 Googletest export
7a7e2bba1 Googletest export
50f1a7795 Merge pull request #2051 from enptfb55:master
f31bf1d36 Googletest export
216c37f05 Googletest export
45c58aa6f fix:  Add Arduino setup()/loop() functions back
644319b9f Merge pull request #2048 from ciband:chore/clang_tidy
b6cd40528 Googletest export
8369b5bbd fixing build errors for unused parameter
ade8baa7d clang-tidy: modernize-deprecated-headers
23e693787 misc:  Reapply Arduino functions
202dcabf3 misc:  Revert formatting changes.
fd1c7976a Merge branch 'chore/fix_library_json' of https://github.com/ciband/googletest into chore/fix_library_json
0ffa5f977 Merge branch 'master' into chore/fix_library_json
23533009b chore:  Add Windows cmake files to .gitignore
adc5045cb chore:  Alphabetize exclude directories.
3880b13e4 Merge pull request #2042 from gennadiycivil/master
58e62f7a9 Merge branch 'master' of https://github.com/google/googletest
5d3a2cd9c Update docs, TestCase->TestSuite
827515f8a Googletest export
3a460a26b Googletest export
0c0ca9038 fix:  Correct *_main.cc paths
4d62b5b9a fix:  Remove Arduino entry points
ac8c102da Update README.md
6e410a3ae Update README.md
8a27d164c Update README.md
bfcc47fc2 Merge pull request #2026 from justin6case/example_makefile_improvements
1bcbd5871 Merge pull request #2037 from ciband:chore/fix_library_json
14c2fba73 Googletest export
f8b1c1af1 Googletest export
933e5df28 Merge pull request #2039 from gennadiycivil/master
8ed34e0f6 Remove outdated scripts
2ace910a3 Revert "test, please ignore"
25905b9f9 Merge branch 'master' of https://github.com/google/googletest
de99386b6 Merge branch 'chore/fix_library_json' of https://github.com/ciband/googletest into chore/fix_library_json
6d5ce40d4 fix:  Add additional source and include directories.
3bedb5a9f Merge pull request #2035 from syohex/update-xcode-project-file
0cf2130c0 Update Xcode project file
6729a1361 Merge #2002
77004096e Update README.md
16269ae2f Merge pull request #2027 from ciband:chore/fix_library_json
c0ef2cbe4 fix:  Correct GitHub paths
150613166 Update README.md
4160336cb Merge pull request #2013 from ciband:chore/fix_library_json
34a99e547 Googletest export
b93a13ec4 Improvements have been made to the example/sample makefiles for both googlemock and googletest. Library files are now created and named like versions produced by Cmake.
a83cc11ab Googletest export
9494c45e7 Googletest export
e26a3fa13 Googletest export
9ab640ce5 Googletest export
7515e3994 Googletest export
85c4172ed Update README.md
ed3f9bb22 Googletest export
b7dd66519 Googletest export
1ec20f87e Googletest export
096fb37a1 Googletest export
0f698c830 chore:  Add .vs to .gitignore for Visual Studio
1496f73cc fix:  correct JSON syntax
130e5aa86 Merge pull request #2 from google/master
b5f5c596a Merge pull request #2000 from ciband:feat/add_support_platformio
c6cb7e033 Googletest export
81f002606 Googletest export
3949c403c Update README.md
6ef591381 Googletest export
b545089f5 Merge pull request #2004 from cotsog/patch-1
3b1f43c2e Use if statements
fc0f92676 Don't cache APT packages on OS X/macOS
ea5e941d8 Change directory ownership earlier
6cbd3753d Googletest export
06bb8d4d6 Googletest export
b5c08cb9f Cache gcc and clang APT packages
31eb5e9b8 chore:  Update version to latest release
d9251df84 fix: Remove global chmod from Travis
39c09043b chore:  Add initial library.json config
695cf7c96 Merge pull request #1997 from gpakosz:GTEST_IS_THREADSAFE
2c8ab3f18 feat:  Add initial support for PlatformIO and Arduino
fe14e3030 Merge pull request #1995 from siddhanjay/patch-1
3d71ab4c3 Googletest export
067aa4c28 Do not define GTEST_IS_THREADSAFE within GTEST_HAS_SEH
3fd66989b Googletest export
214521a14 Update WORKSPACE
a28a71ae4 Update README.md
10e82d01d Update README.md
ba344cbc4 Googletest export
26743363b Googletest export
a42cdf2ab Googletest export
775a17631 Fixed typo
8fbf9d16a Googletest export
b22d23667 Googletest export
191f9336b Merge pull request #1977 from lukasm91:issue_1955_remove_pthread_flags
fca458cab Googletest export
915f6cfef Update .travis.yml
5404fd7d0 Update .travis.yml
2f126c74d Update .travis.yml
87589af5b Update .travis.yml
28a3261fd Create CODE_OF_CONDUCT.md
ce526b870 Issue #1955: Remove THREADS_PREFER_PTHREAD_FLAG
3cf8f514d Update build badge
a3013ccef Googletest export
f7779eb3c Googletest export
64368e058 Googletest export
bb7c0ecbd Googletest export
b49266606 Googletest export
c2989fe29 Googletest export
5dab7be70 Googletest export
45d66d81b Googletest export
8e86f6726 Googletest export
aac18185e Googletest export
e46e87bb1 Googletest export
c5f08bf91 Googletest export
d5932506d Merge pull request #1961 from coppered/patch-1
7a0680dc2 Merge pull request #1959 from robinlinden:remove-msvc-workarounds
09beafcd1 Merge branch 'master' into patch-1
b18d39bd2 Googletest export
1454f301c Update README.md
480213369 Add back warning suppression that shouldn't have been removed
a3a42514f Define GTEST_DISABLE_MSC_WARNINGS_PUSH/POP for all compilers
c43603f28 Remove GTEST_HAS_HASH_SET/MAP check
826656b25 Remove workarounds for unsupported MSVC versions
de5be0eb2 Googletest export
105579a6e Googletest export
529c2c6f4 Merge pull request #1950 from benjamincarman/makefix
9636db6b2 Merge branch 'master' into makefix
88c15b5fd Googletest export
4ea629d31 Added line to sample Makefile in googletest/googletest/make to specify use of C++11 in CXXFLAGS as required by the system
879ac092f Merge pull request #1948 from jerryturcios08/master
11319f1c6 Correct grammatical error in README.md
d1beec402 Merge branch 'master' of https://github.com/google/googletest
71d4fc8d7 Googletest export
e857f9cdd Googletest export
e0d3c3705 Googletest export
cc9dcc541 Merge pull request #1945 from akonradi/optional-matcher-doc
3896e3b59 Merge branch 'master' of https://github.com/google/googletest
39de88cb9 Add Optional() to the cheat sheet doc.
b9347b31c Googletest export
e9085769d Merge pull request #1941 from barkovv:master
80b43d900 Googletest export
b8a03c80a Merge branch 'master' of https://github.com/google/googletest
3feffddd1 Replaced all NULLs with nullptr in googlemock
53d61b5b2 Replaced all NULLs with nullptr in googletest
2e308484d Googletest export
b57c70396 Googletest export
a50e4f05b Googletest export
299d098da Merge branch 'master' of https://github.com/google/googletest
8ec8ce1c8 Merge pull request #1934 from jeffvandyke/patch-2
c45631823 Change CMake googletest download location in docs
6463ee81a Merge pull request #1890 from peterjc123:clang_fix
59f90a338 Googletest export
2801b2380 Merge branch 'master' of https://github.com/google/googletest
478a51859 Disable extensions and force standard
f6dadcf1f Revert previous changes
96824f11c Fix -std=c++11 flag
3bb00b7ea Merge pull request #1929 from goatshriek/cmake-cxx11-flag
6e3720126 Merge branch 'master' of https://github.com/google/googletest
9b637237b add documentation of manual c++11 specification
7b6b3be34 Update advanced.md
20eaf6e3a Merge pull request #1911 from BrukerJWD:isnice
a743780ad Update advanced.md
b974af792 Update advanced.md
90c957c40 Merge pull request #1927 from svg153/patch-1
58a8da64c ACTION table format
3468af9b3 Merge branch 'master' of https://github.com/google/googletest
82987067d Googletest export
32dbcac06 Merge pull request #1839 from Peter-Levine:python3-tests
572050dd2 Merge pull request #1905 from fandjelo:relocatable-pkgconfig-fix
648ac832a Merge branch 'master' of https://github.com/google/googletest
c955e3349 Merge branch 'master' into python3-tests
f410177a8 Update .travis.yml
723f26663 Update .travis.yml
663ef8636 Googletest export
3a7f0934d Merge pull request #1912 from kakkoko:fix-xml-name
29b47e45c Googletest export
2c19680bf Merge branch 'master' into relocatable-pkgconfig-fix
baf6845b1 Fix incorrect XML file name in help message
0cefda774 Removed last reference to internal::kDefault
96d161577 Merge branch 'isnice' of https://github.com/BrukerJWD/googletest into isnice
8c82ba48e Merge branch 'master' into isnice
386391b01 Use existing Mock::GetReactionOnUninterestingCalls()
6bbf911a8 Don't fully qualify enum member
67a240a10 Added Mock::IsNaggy, IsNice, and IsStrict
9424e7b0d Merge branch 'master' of https://github.com/google/googletest
a651a4d44 Merge pull request #1908 from rwoldberg:master
dec3b81a0 Change types to remove cast warnings.
754cb8ed9 Merge branch 'master' into relocatable-pkgconfig-fix
8fad86e75 Merge branch 'master' of https://github.com/google/googletest
864b6c2d3 Remove duplicate functionality PrintValue (in googletest-param-test-test.cc), use testing::PrintToString
b3b19a796 Merge c41b2bf861ef2ac1a975af05ff66d9256f280b01 into f203b2db77161fe54846ea9e839ebec81aeeccac
f203b2db7 Merge pull request #1902 from theryee/typo
ad997b16b Merge 4c92120d6dedb4eeb499a8702faea0224e0a8b23 into 658c6390a5b363f46c6ad448ad1bce9d6e97e53a
e7327c13f Merge 41fc9745d4a448db7d932250d22fac1dda287443 into 658c6390a5b363f46c6ad448ad1bce9d6e97e53a
bc6a4ce38 Project import generated by Copybara.
0e71eb069 Internal Change
095b3113e Use pcfiledir for prefix in pkgconfig file
4d50ab75a Merge branch 'master' into typo
a83429f5d fix typo
658c6390a Merge pull request #1898 from spartucus/master
8193ed069 Update .gitignore
274b39bfa Merge branch 'master' of https://github.com/google/googletest
78761b58f Remove non-variadic pre C++11 AnyOf
7d3b73c85 Unconditionally use std::tuple. Remove all mention of TR1 tuple and our own implementation of tuple.
5434989db Remove testing::internal::BothOfMatcher, no longer needed
b652edb39 Apply [[noreturn]] to Abort()
7a1e9114a Update Makefile.am
689ac9fbd Update BUILD.bazel
5ae4f6222 Update README.md
4665eee10 test, please ignore
272c08380 Delete CHANGES
ac7ed4046 Delete CHANGES
a113467a4 Merge branch 'master' of https://github.com/google/googletest
a31d6f905 Merge c1170881039e859738c62b02a918116fc6d346bc into 27c86f29417e53a622a2902baab2d1d82dafc5f9
4ac07de8d Fixing AllOfMatches test, where it properly belongs
27c86f294 always define define GTEST_LANG_CXX11 1
fab35920a Remove non-variadic pre C++11 AllOf
4327d95b3 Merge branch 'master' of https://github.com/google/googletest
3149e0e88 Merge branch 'master' into python3-tests
40f82ce56 Update primer.md
07c4753a1 Remove pre-C++11 code from gtest-printers
f8a1481c0 Make GTestColor and ColoredPrintF available as internal APIs from gtest.h.  This is for use in abseil exception safety testing.
c28ce4159 Removed pre-C++11 IsContainerTest and IteratorTraits
4bb49ed64 Apply clang-tidy modernize-use-nullptr to googletest.
7caf5ffd1 Merge branch 'master' of https://github.com/google/googletest
f13bbe299 Remove checking for C++ 11 and a pre-C++11 test from googletest tests
4b82df5bb Merge branch 'master' into python3-tests
50ec6ee33 Merge branch 'master' of https://github.com/google/googletest
bea3d6197 Merge d830440d48a9502161448bc78be33a53388dd1f4 into f5260ae757a681566d8f7d0558b8dc0551036506
9f8512d7c Remove compilation option for C++11 in the root CMakeLists.txt
77e0cd75b Resolve code changes from origin repository
f5260ae75 Merge c798e39a4f96f5a985126cc3fab4738b6412cfc1 into e93da23920e5b6887d6a6a291c3a59f83f5b579e
1e893191c Add compilation option for C++11 in the root CMakeLists.txt
e93da2392 Merge 68b8a4c60cd80c78e1875b77807fa13cdd2313f8 into 77962730563eece3525f40b8769e4ca0c6baf64c
779627305 Merge 86fe8a25eb5a6e4546f9e39cf23a5c764217bf85 into 440527a61e1c91188195f7de212c63c77e8f0a45
00938b2b2 Merge 2ce0685f76a4db403b7b2650433a584c150f2108 into 75e834700d19aa373b428c7c746f951737354c28
2e91bbcf6 Merge pull request #1875 from google/9A681768AABE08D1EFA5CA77528236A4
a7b21c950 Googletest export
be429c892 Googletest export
6316d8943 Merge pull request #1872 from jerryturcios08/master
cba347443 Add a cached variable to CMAKE_CXX_STANDARD
d97dea39b Add C++11 support in the root CMakeLists.txt
440527a61 Update appveyor.yml
907ae9eda Merge branch 'master' into python3-tests
75e834700 Merge pull request #1864 from google/revert-1853-appveyor-mingw-enable-tests-again
c2a2f49a3 Revert "[mingw] enable the unittests for gmock and gtest again"
707b3b25c Merge pull request #1855 from zach2good/issue1854_remove_i386_xcode10
a6b5c58ec Merge pull request #1853 from matlo607/appveyor-mingw-enable-tests-again
924146692 Merge branch 'master' into appveyor-mingw-enable-tests-again
0809c6804 Merge pull request #1862 from google/9A681768AABE08D1EFA5CA77528236A4
220e790a9 Keep one MinGW build, remove the others
77301d64c Update appveyor.yml
8286bf223 Update appveyor.yml
24ba1b1b3 Delete m4_ax_cxx_compile_stdcxx_11.m4
239d2691b Delete m4_ax_cxx_compile_stdcxx.m4
12b97f378 Update configure.ac
993f6d896 Update Makefile.am
adcb1f8e8 Update .travis.yml
5b6e40f46 automake
41b16d28d test automake c++11
df2a8dbc6 Update configure.ac
5a4e2b158 Update configure.ac
2ec9923cc typo
c159a7719 autotools c++11
e2f45b1bb autotools c++11
f60de198a test
ecbcd99c4 include c++11 for autotools
70de02bf2 Merge branch 'master' into 9A681768AABE08D1EFA5CA77528236A4
70ed5e5c4 Merge pull request #1863 from google/revert-1857-master
2b016ca49 Googletest export
c34ecf1ff Revert "Add clang format check to one of the builds"
b2788286d Googletest export
ba974c97a Googletest export
0fc5466db Googletest export
0f7f5cd93 Merge pull request #1861 from gennadiycivil/master
db6e8c727 enable MingW on PR
b91eab2fc C++11 autotools build
c26dd53ce adding c++11 to appveyor mingW
5e13fe662 Merge branch 'master' into appveyor-mingw-enable-tests-again
a4f57cf49 Merge branch 'master' into python3-tests
b19266a3e Merge pull request #1857 from gennadiycivil/master
76e104572 typo
2d3466be4 Add clang format check to one of the builds to provide indication that formatting is incorrect
0272ff1aa Issue #1854: remove support for i386 for XCode 10
0e161c3c8 [mingw] enable the unittests for gmock and gtest again
ed6e84cce Merge pull request #1850 from Jonny007-MKD/master
fd17c91ba Merge branch 'master' into master
c7a429a66 Update CONTRIBUTING.md
51945d3cd Update README.md
a2f13308c Add .clang-format
81c0b876b Formatting
659647110 Formatting
529338370 Formatting
78d3bfeb4 Formatting
67d3c0f6d Fix unit test
2b2b8d71c Fix ColoredOutputTest.UsesColorsWhenTermSupportsColors again
cecea92af Rename private member of AdditionalMessage Shorten lines in unit tests
1cb10b357 Readded changes from 6494f5232b130a29321e661166442bac324c4383
90943525c Merge branch 'master' into python3-tests
258def01a Merge pull request #1847 from google/revert-1832-master
a35326be0 Revert "Added special catch for std::exception in GTEST_TEST_NO_THROW_"
8bf297233 Merge pull request #1843 from matlo607/fix-unittest-msys-ColoredOutputTest
09560fba4 Merge pull request #1844 from matlo607/fix-msys-build-gmock-matchers_test
4f5524518 Merge pull request #1846 from google/9A681768AABE08D1EFA5CA77528236A4
8c547cff2 Googletest export
1b20bd176 Googletest export
9ea017285 Merge pull request #1832 from Jonny007-MKD/master
6a1c3d9b7 Removed some newlines
c9fe337ae [msys] fix unittest ColoredOutputTest.UsesColorsWhenTermSupportsColors
0a18c106a [msys] pass big object file option to assembler for target gmock-matchers_test
c40f55a22 Avoid these ambiguities
149c0d241 Fix Python3 support
6494f5232 Print message of unexpected std::exception in EXPECT_THROW, too
631e3a583 Merge branch 'master' into master
bc2d0935b Merge pull request #1838 from google/9A681768AABE08D1EFA5CA77528236A4
fc2caf648 Update .travis.yml
bc9df6ad4 Googletest export
28c2989ee Merge pull request #1837 from google/9A681768AABE08D1EFA5CA77528236A4
1b2da360e Merge branch 'master' into master
f46c174d1 Merge pull request #1835 from google/gennadiycivil-TR1-docs-cleanup
ffc9baeb4 Googletest export
abc803e28 Update README.md
5c89346de Update README.md
3c8055685 Merge branch 'master' into master
cfe0ae867 Merge pull request #1831 from anthraxx/fix/version
2649c2218 Merge pull request #1834 from google/9A681768AABE08D1EFA5CA77528236A4
0cd3c2e8b Googletest export
21d52d3a1 Googletest export
e1b8d82fa Googletest export
82eeb009b Make it public again *sigh*
e86d1df3e Avoid implicit move operator
8c849c584 Try to fix gcc and clang issues
0354ccb04 Added special catch for std::exception in GTEST_TEST_NO_THROW_
c4ef6f3a0 version: fix declared version to be in sync with CMakeLists.txt
5131cf737 Merge pull request #1828 from gdsotirov/patch-1
ca247e179 Merge branch 'master' into patch-1
d25268a55 Merge pull request #1829 from google/gennadiycivil-patch-1
5eee7a343 Update appveyor.yml
94046c91d Return GTEST_ATTRIBUTE_UNUSED_ on record_property_env to avoide comilation error (with -Werror)
4d066127b Merge pull request #1827 from google/9A681768AABE08D1EFA5CA77528236A4
db405ff8c Googletest export
936dae4ef Googletest export
0c799d043 Merge pull request #1820 from Romain-Geissler/fix-gcc-misleading-indentation-warning-again
93b05da26 Fix gcc misleading indentation again.
34d5d22b6 Merge pull request #1814 from google/9A681768AABE08D1EFA5CA77528236A4
0ddb6bf09 Googletest export
0d2262138 Googletest export
dbd55366c Googletest export
51cabc168 Googletest export
0614a539f Merge pull request #1809 from KindDragon/fix-doc-links
e6c407d60 Fix doc links
a2b149b23 Merge pull request #1801 from SoapGentoo/fix-gmock-pkgconfig
990bf4ffd Merge branch 'master' into fix-gmock-pkgconfig
3787a483b Merge pull request #1803 from KindDragon/patch-2
25bf88432 Merge pull request #1806 from asiplas/master
70a701758 Fix #1805: add `.md` to hyperlink
de9675986 Update documentation to syntax highlight code
79875d320 pkgconfig: Unconditionally depend on GTest when using GMock
c7a899855 Update README.md

git-subtree-dir: third_party/googletest
git-subtree-split: f5e592d8ee5ffb1d9af5be7f715ce3576b8bf9c4
Change-Id: Ic19f54048ae9e648e50b5c4c51045d4a19a51948
diff --git a/googletest/include/gtest/gtest.h b/googletest/include/gtest/gtest.h
index 5df4b0a..7a5d057 100644
--- a/googletest/include/gtest/gtest.h
+++ b/googletest/include/gtest/gtest.h
@@ -49,16 +49,20 @@
 
 // GOOGLETEST_CM0001 DO NOT DELETE
 
-#ifndef GTEST_INCLUDE_GTEST_GTEST_H_
-#define GTEST_INCLUDE_GTEST_GTEST_H_
+#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_H_
+#define GOOGLETEST_INCLUDE_GTEST_GTEST_H_
 
+#include <cstddef>
 #include <limits>
+#include <memory>
 #include <ostream>
+#include <type_traits>
 #include <vector>
 
 #include "gtest/internal/gtest-internal.h"
 #include "gtest/internal/gtest-string.h"
 #include "gtest/gtest-death-test.h"
+#include "gtest/gtest-matchers.h"
 #include "gtest/gtest-message.h"
 #include "gtest/gtest-param-test.h"
 #include "gtest/gtest-printers.h"
@@ -69,21 +73,6 @@
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
 
-// Depending on the platform, different string classes are available.
-// On Linux, in addition to ::std::string, Google also makes use of
-// class ::string, which has the same interface as ::std::string, but
-// has a different implementation.
-//
-// You can define GTEST_HAS_GLOBAL_STRING to 1 to indicate that
-// ::string is available AND is a distinct type to ::std::string, or
-// define it to 0 to indicate otherwise.
-//
-// If ::std::string and ::string are the same class on your platform
-// due to aliasing, you should define GTEST_HAS_GLOBAL_STRING to 0.
-//
-// If you do not define GTEST_HAS_GLOBAL_STRING, it is defined
-// heuristically.
-
 namespace testing {
 
 // Silence C4100 (unreferenced formal parameter) and 4805
@@ -112,6 +101,10 @@
 // to let Google Test decide.
 GTEST_DECLARE_string_(color);
 
+// This flag controls whether the test runner should continue execution past
+// first failure.
+GTEST_DECLARE_bool_(fail_fast);
+
 // This flag sets up the filter to select by name using a glob pattern
 // the tests to run. If the filter is not given all tests are executed.
 GTEST_DECLARE_string_(filter);
@@ -128,6 +121,9 @@
 // in addition to its normal textual output.
 GTEST_DECLARE_string_(output);
 
+// This flags control whether Google Test prints only test failures.
+GTEST_DECLARE_bool_(brief);
+
 // This flags control whether Google Test prints the elapsed time for each
 // test.
 GTEST_DECLARE_bool_(print_time);
@@ -188,6 +184,7 @@
 class UnitTestImpl* GetUnitTestImpl();
 void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
                                     const std::string& message);
+std::set<std::string>* GetIgnoredParameterizedTestSuites();
 
 }  // namespace internal
 
@@ -195,7 +192,12 @@
 // If we don't forward declare them the compiler might confuse the classes
 // in friendship clauses with same named classes on the scope.
 class Test;
-class TestCase;
+class TestSuite;
+
+// Old API is still available but deprecated
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+using TestCase = TestSuite;
+#endif
 class TestInfo;
 class UnitTest;
 
@@ -284,7 +286,11 @@
   // Used in EXPECT_TRUE/FALSE(assertion_result).
   AssertionResult(const AssertionResult& other);
 
-#if defined(_MSC_VER) && _MSC_VER < 1910
+// C4800 is a level 3 warning in Visual Studio 2015 and earlier.
+// This warning is not emitted in Visual Studio 2017.
+// This warning is off by default starting in Visual Studio 2019 but can be
+// enabled with command-line options.
+#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
   GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */)
 #endif
 
@@ -298,12 +304,13 @@
   template <typename T>
   explicit AssertionResult(
       const T& success,
-      typename internal::EnableIf<
-          !internal::ImplicitlyConvertible<T, AssertionResult>::value>::type*
-          /*enabler*/ = NULL)
+      typename std::enable_if<
+          !std::is_convertible<T, AssertionResult>::value>::type*
+      /*enabler*/
+      = nullptr)
       : success_(success) {}
 
-#if defined(_MSC_VER) && _MSC_VER < 1910
+#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
   GTEST_DISABLE_MSC_WARNINGS_POP_()
 #endif
 
@@ -313,7 +320,7 @@
     return *this;
   }
 
-  // Returns true iff the assertion succeeded.
+  // Returns true if and only if the assertion succeeded.
   operator bool() const { return success_; }  // NOLINT
 
   // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
@@ -324,9 +331,8 @@
   // assertion's expectation). When nothing has been streamed into the
   // object, returns an empty string.
   const char* message() const {
-    return message_.get() != NULL ?  message_->c_str() : "";
+    return message_.get() != nullptr ? message_->c_str() : "";
   }
-  // FIXME: Remove this after making sure no clients use it.
   // Deprecated; please use message() instead.
   const char* failure_message() const { return message(); }
 
@@ -347,8 +353,7 @@
  private:
   // Appends the contents of message to message_.
   void AppendMessage(const Message& a_message) {
-    if (message_.get() == NULL)
-      message_.reset(new ::std::string);
+    if (message_.get() == nullptr) message_.reset(new ::std::string);
     message_->append(a_message.GetString().c_str());
   }
 
@@ -361,7 +366,7 @@
   // construct is not satisfied with the predicate's outcome.
   // Referenced via a pointer to avoid taking too much stack frame space
   // with test assertions.
-  internal::scoped_ptr< ::std::string> message_;
+  std::unique_ptr< ::std::string> message_;
 };
 
 // Makes a successful assertion result.
@@ -385,8 +390,8 @@
 
 // The abstract class that all tests inherit from.
 //
-// In Google Test, a unit test program contains one or many TestCases, and
-// each TestCase contains one or many Tests.
+// In Google Test, a unit test program contains one or many TestSuites, and
+// each TestSuite contains one or many Tests.
 //
 // When you define a test using the TEST macro, you don't need to
 // explicitly derive from Test - the TEST macro automatically does
@@ -410,49 +415,54 @@
  public:
   friend class TestInfo;
 
-  // Defines types for pointers to functions that set up and tear down
-  // a test case.
-  typedef internal::SetUpTestCaseFunc SetUpTestCaseFunc;
-  typedef internal::TearDownTestCaseFunc TearDownTestCaseFunc;
-
   // The d'tor is virtual as we intend to inherit from Test.
   virtual ~Test();
 
-  // Sets up the stuff shared by all tests in this test case.
+  // Sets up the stuff shared by all tests in this test suite.
   //
-  // Google Test will call Foo::SetUpTestCase() before running the first
-  // test in test case Foo.  Hence a sub-class can define its own
-  // SetUpTestCase() method to shadow the one defined in the super
+  // Google Test will call Foo::SetUpTestSuite() before running the first
+  // test in test suite Foo.  Hence a sub-class can define its own
+  // SetUpTestSuite() method to shadow the one defined in the super
   // class.
-  static void SetUpTestCase() {}
+  static void SetUpTestSuite() {}
 
-  // Tears down the stuff shared by all tests in this test case.
+  // Tears down the stuff shared by all tests in this test suite.
   //
-  // Google Test will call Foo::TearDownTestCase() after running the last
-  // test in test case Foo.  Hence a sub-class can define its own
-  // TearDownTestCase() method to shadow the one defined in the super
+  // Google Test will call Foo::TearDownTestSuite() after running the last
+  // test in test suite Foo.  Hence a sub-class can define its own
+  // TearDownTestSuite() method to shadow the one defined in the super
   // class.
+  static void TearDownTestSuite() {}
+
+  // Legacy API is deprecated but still available. Use SetUpTestSuite and
+  // TearDownTestSuite instead.
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
   static void TearDownTestCase() {}
+  static void SetUpTestCase() {}
+#endif  // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
-  // Returns true iff the current test has a fatal failure.
+  // Returns true if and only if the current test has a fatal failure.
   static bool HasFatalFailure();
 
-  // Returns true iff the current test has a non-fatal failure.
+  // Returns true if and only if the current test has a non-fatal failure.
   static bool HasNonfatalFailure();
 
-  // Returns true iff the current test has a (either fatal or
+  // Returns true if and only if the current test was skipped.
+  static bool IsSkipped();
+
+  // Returns true if and only if the current test has a (either fatal or
   // non-fatal) failure.
   static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); }
 
-  // Logs a property for the current test, test case, or for the entire
+  // Logs a property for the current test, test suite, or for the entire
   // invocation of the test program when used outside of the context of a
-  // test case.  Only the last value for a given key is remembered.  These
+  // test suite.  Only the last value for a given key is remembered.  These
   // are public static so they can be called from utility functions that are
   // not members of the test fixture.  Calls to RecordProperty made during
   // lifespan of the test (from the moment its constructor starts to the
   // moment its destructor finishes) will be output in XML as attributes of
   // the <testcase> element.  Properties recorded from fixture's
-  // SetUpTestCase or TearDownTestCase are logged as attributes of the
+  // SetUpTestSuite or TearDownTestSuite are logged as attributes of the
   // corresponding <testsuite> element.  Calls to RecordProperty made in the
   // global context (before or after invocation of RUN_ALL_TESTS and from
   // SetUp/TearDown method of Environment objects registered with Google
@@ -471,8 +481,8 @@
   virtual void TearDown();
 
  private:
-  // Returns true iff the current test has the same fixture class as
-  // the first test in the current test case.
+  // Returns true if and only if the current test has the same fixture class
+  // as the first test in the current test suite.
   static bool HasSameFixtureClass();
 
   // Runs the test after the test fixture has been set up.
@@ -490,7 +500,7 @@
   // internal method to avoid clashing with names used in user TESTs.
   void DeleteSelf_() { delete this; }
 
-  const internal::scoped_ptr< GTEST_FLAG_SAVER_ > gtest_flag_saver_;
+  const std::unique_ptr<GTEST_FLAG_SAVER_> gtest_flag_saver_;
 
   // Often a user misspells SetUp() as Setup() and spends a long time
   // wondering why it is never called by Google Test.  The declaration of
@@ -509,7 +519,7 @@
   // If you see an error about overriding the following function or
   // about it being private, you have mis-spelled SetUp() as Setup().
   struct Setup_should_be_spelled_SetUp {};
-  virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; }
+  virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; }
 
   // We disallow copying Tests.
   GTEST_DISALLOW_COPY_AND_ASSIGN_(Test);
@@ -573,21 +583,28 @@
   // Returns the number of the test properties.
   int test_property_count() const;
 
-  // Returns true iff the test passed (i.e. no test part failed).
-  bool Passed() const { return !Failed(); }
+  // Returns true if and only if the test passed (i.e. no test part failed).
+  bool Passed() const { return !Skipped() && !Failed(); }
 
-  // Returns true iff the test failed.
+  // Returns true if and only if the test was skipped.
+  bool Skipped() const;
+
+  // Returns true if and only if the test failed.
   bool Failed() const;
 
-  // Returns true iff the test fatally failed.
+  // Returns true if and only if the test fatally failed.
   bool HasFatalFailure() const;
 
-  // Returns true iff the test has a non-fatal failure.
+  // Returns true if and only if the test has a non-fatal failure.
   bool HasNonfatalFailure() const;
 
   // Returns the elapsed time, in milliseconds.
   TimeInMillis elapsed_time() const { return elapsed_time_; }
 
+  // Gets the time of the test case start, in ms from the start of the
+  // UNIX epoch.
+  TimeInMillis start_timestamp() const { return start_timestamp_; }
+
   // Returns the i-th test part result among all the results. i can range from 0
   // to total_part_count() - 1. If i is not in that range, aborts the program.
   const TestPartResult& GetTestPartResult(int i) const;
@@ -599,7 +616,7 @@
 
  private:
   friend class TestInfo;
-  friend class TestCase;
+  friend class TestSuite;
   friend class UnitTest;
   friend class internal::DefaultGlobalTestPartResultReporter;
   friend class internal::ExecDeathTest;
@@ -618,6 +635,9 @@
     return test_properties_;
   }
 
+  // Sets the start time.
+  void set_start_timestamp(TimeInMillis start) { start_timestamp_ = start; }
+
   // Sets the elapsed time.
   void set_elapsed_time(TimeInMillis elapsed) { elapsed_time_ = elapsed; }
 
@@ -631,7 +651,7 @@
                       const TestProperty& test_property);
 
   // Adds a failure if the key is a reserved attribute of Google Test
-  // testcase tags.  Returns true if the property is valid.
+  // testsuite tags.  Returns true if the property is valid.
   // FIXME: Validate attribute names are legal and human readable.
   static bool ValidateTestProperty(const std::string& xml_element,
                                    const TestProperty& test_property);
@@ -653,7 +673,7 @@
 
   // Protects mutable state of the property vector and of owned
   // properties, whose values may be updated.
-  internal::Mutex test_properites_mutex_;
+  internal::Mutex test_properties_mutex_;
 
   // The vector of TestPartResults
   std::vector<TestPartResult> test_part_results_;
@@ -661,6 +681,8 @@
   std::vector<TestProperty> test_properties_;
   // Running count of death tests.
   int death_test_count_;
+  // The start time, in milliseconds since UNIX Epoch.
+  TimeInMillis start_timestamp_;
   // The elapsed time, in milliseconds.
   TimeInMillis elapsed_time_;
 
@@ -670,7 +692,7 @@
 
 // A TestInfo object stores the following information about a test:
 //
-//   Test case name
+//   Test suite name
 //   Test name
 //   Whether the test should be run
 //   A function pointer that creates the test object when invoked
@@ -685,8 +707,13 @@
   // don't inherit from TestInfo.
   ~TestInfo();
 
-  // Returns the test case name.
-  const char* test_case_name() const { return test_case_name_.c_str(); }
+  // Returns the test suite name.
+  const char* test_suite_name() const { return test_suite_name_.c_str(); }
+
+// Legacy API is deprecated but still available
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+  const char* test_case_name() const { return test_suite_name(); }
+#endif  // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
   // Returns the test name.
   const char* name() const { return name_.c_str(); }
@@ -694,17 +721,15 @@
   // Returns the name of the parameter type, or NULL if this is not a typed
   // or a type-parameterized test.
   const char* type_param() const {
-    if (type_param_.get() != NULL)
-      return type_param_->c_str();
-    return NULL;
+    if (type_param_.get() != nullptr) return type_param_->c_str();
+    return nullptr;
   }
 
   // Returns the text representation of the value parameter, or NULL if this
   // is not a value-parameterized test.
   const char* value_param() const {
-    if (value_param_.get() != NULL)
-      return value_param_->c_str();
-    return NULL;
+    if (value_param_.get() != nullptr) return value_param_->c_str();
+    return nullptr;
   }
 
   // Returns the file name where this test is defined.
@@ -721,7 +746,7 @@
   // been specified) and its full name matches the user-specified filter.
   //
   // Google Test allows the user to filter the tests by their full names.
-  // The full name of a test Bar in test case Foo is defined as
+  // The full name of a test Bar in test suite Foo is defined as
   // "Foo.Bar".  Only the tests that match the filter will run.
   //
   // A filter is a colon-separated list of glob (not regex) patterns,
@@ -734,7 +759,7 @@
   // contains the character 'A' or starts with "Foo.".
   bool should_run() const { return should_run_; }
 
-  // Returns true iff this test will appear in the XML report.
+  // Returns true if and only if this test will appear in the XML report.
   bool is_reportable() const {
     // The XML report includes tests matching the filter, excluding those
     // run in other shards.
@@ -749,24 +774,19 @@
   friend class internal::DefaultDeathTestFactory;
 #endif  // GTEST_HAS_DEATH_TEST
   friend class Test;
-  friend class TestCase;
+  friend class TestSuite;
   friend class internal::UnitTestImpl;
   friend class internal::StreamingListenerTest;
   friend TestInfo* internal::MakeAndRegisterTestInfo(
-      const char* test_case_name,
-      const char* name,
-      const char* type_param,
-      const char* value_param,
-      internal::CodeLocation code_location,
-      internal::TypeId fixture_class_id,
-      Test::SetUpTestCaseFunc set_up_tc,
-      Test::TearDownTestCaseFunc tear_down_tc,
+      const char* test_suite_name, const char* name, const char* type_param,
+      const char* value_param, internal::CodeLocation code_location,
+      internal::TypeId fixture_class_id, internal::SetUpTestSuiteFunc set_up_tc,
+      internal::TearDownTestSuiteFunc tear_down_tc,
       internal::TestFactoryBase* factory);
 
   // Constructs a TestInfo object. The newly constructed instance assumes
   // ownership of the factory object.
-  TestInfo(const std::string& test_case_name,
-           const std::string& name,
+  TestInfo(const std::string& test_suite_name, const std::string& name,
            const char* a_type_param,   // NULL if not a type-parameterized test
            const char* a_value_param,  // NULL if not a value-parameterized test
            internal::CodeLocation a_code_location,
@@ -783,26 +803,29 @@
   // deletes it.
   void Run();
 
+  // Skip and records the test result for this object.
+  void Skip();
+
   static void ClearTestResult(TestInfo* test_info) {
     test_info->result_.Clear();
   }
 
   // These fields are immutable properties of the test.
-  const std::string test_case_name_;     // Test case name
+  const std::string test_suite_name_;    // test suite name
   const std::string name_;               // Test name
   // Name of the parameter type, or NULL if this is not a typed or a
   // type-parameterized test.
-  const internal::scoped_ptr<const ::std::string> type_param_;
+  const std::unique_ptr<const ::std::string> type_param_;
   // Text representation of the value parameter, or NULL if this is not a
   // value-parameterized test.
-  const internal::scoped_ptr<const ::std::string> value_param_;
+  const std::unique_ptr<const ::std::string> value_param_;
   internal::CodeLocation location_;
-  const internal::TypeId fixture_class_id_;   // ID of the test fixture class
-  bool should_run_;                 // True iff this test should run
-  bool is_disabled_;                // True iff this test is disabled
-  bool matches_filter_;             // True if this test matches the
-                                    // user-specified filter.
-  bool is_in_another_shard_;        // Will be run in another shard.
+  const internal::TypeId fixture_class_id_;  // ID of the test fixture class
+  bool should_run_;           // True if and only if this test should run
+  bool is_disabled_;          // True if and only if this test is disabled
+  bool matches_filter_;       // True if this test matches the
+                              // user-specified filter.
+  bool is_in_another_shard_;  // Will be run in another shard.
   internal::TestFactoryBase* const factory_;  // The factory that creates
                                               // the test object
 
@@ -813,90 +836,98 @@
   GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo);
 };
 
-// A test case, which consists of a vector of TestInfos.
+// A test suite, which consists of a vector of TestInfos.
 //
-// TestCase is not copyable.
-class GTEST_API_ TestCase {
+// TestSuite is not copyable.
+class GTEST_API_ TestSuite {
  public:
-  // Creates a TestCase with the given name.
+  // Creates a TestSuite with the given name.
   //
-  // TestCase does NOT have a default constructor.  Always use this
-  // constructor to create a TestCase object.
+  // TestSuite does NOT have a default constructor.  Always use this
+  // constructor to create a TestSuite object.
   //
   // Arguments:
   //
-  //   name:         name of the test case
+  //   name:         name of the test suite
   //   a_type_param: the name of the test's type parameter, or NULL if
   //                 this is not a type-parameterized test.
-  //   set_up_tc:    pointer to the function that sets up the test case
-  //   tear_down_tc: pointer to the function that tears down the test case
-  TestCase(const char* name, const char* a_type_param,
-           Test::SetUpTestCaseFunc set_up_tc,
-           Test::TearDownTestCaseFunc tear_down_tc);
+  //   set_up_tc:    pointer to the function that sets up the test suite
+  //   tear_down_tc: pointer to the function that tears down the test suite
+  TestSuite(const char* name, const char* a_type_param,
+            internal::SetUpTestSuiteFunc set_up_tc,
+            internal::TearDownTestSuiteFunc tear_down_tc);
 
-  // Destructor of TestCase.
-  virtual ~TestCase();
+  // Destructor of TestSuite.
+  virtual ~TestSuite();
 
-  // Gets the name of the TestCase.
+  // Gets the name of the TestSuite.
   const char* name() const { return name_.c_str(); }
 
   // Returns the name of the parameter type, or NULL if this is not a
-  // type-parameterized test case.
+  // type-parameterized test suite.
   const char* type_param() const {
-    if (type_param_.get() != NULL)
-      return type_param_->c_str();
-    return NULL;
+    if (type_param_.get() != nullptr) return type_param_->c_str();
+    return nullptr;
   }
 
-  // Returns true if any test in this test case should run.
+  // Returns true if any test in this test suite should run.
   bool should_run() const { return should_run_; }
 
-  // Gets the number of successful tests in this test case.
+  // Gets the number of successful tests in this test suite.
   int successful_test_count() const;
 
-  // Gets the number of failed tests in this test case.
+  // Gets the number of skipped tests in this test suite.
+  int skipped_test_count() const;
+
+  // Gets the number of failed tests in this test suite.
   int failed_test_count() const;
 
   // Gets the number of disabled tests that will be reported in the XML report.
   int reportable_disabled_test_count() const;
 
-  // Gets the number of disabled tests in this test case.
+  // Gets the number of disabled tests in this test suite.
   int disabled_test_count() const;
 
   // Gets the number of tests to be printed in the XML report.
   int reportable_test_count() const;
 
-  // Get the number of tests in this test case that should run.
+  // Get the number of tests in this test suite that should run.
   int test_to_run_count() const;
 
-  // Gets the number of all tests in this test case.
+  // Gets the number of all tests in this test suite.
   int total_test_count() const;
 
-  // Returns true iff the test case passed.
+  // Returns true if and only if the test suite passed.
   bool Passed() const { return !Failed(); }
 
-  // Returns true iff the test case failed.
-  bool Failed() const { return failed_test_count() > 0; }
+  // Returns true if and only if the test suite failed.
+  bool Failed() const {
+    return failed_test_count() > 0 || ad_hoc_test_result().Failed();
+  }
 
   // Returns the elapsed time, in milliseconds.
   TimeInMillis elapsed_time() const { return elapsed_time_; }
 
+  // Gets the time of the test suite start, in ms from the start of the
+  // UNIX epoch.
+  TimeInMillis start_timestamp() const { return start_timestamp_; }
+
   // Returns the i-th test among all the tests. i can range from 0 to
   // total_test_count() - 1. If i is not in that range, returns NULL.
   const TestInfo* GetTestInfo(int i) const;
 
   // Returns the TestResult that holds test properties recorded during
-  // execution of SetUpTestCase and TearDownTestCase.
+  // execution of SetUpTestSuite and TearDownTestSuite.
   const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; }
 
  private:
   friend class Test;
   friend class internal::UnitTestImpl;
 
-  // Gets the (mutable) vector of TestInfos in this TestCase.
+  // Gets the (mutable) vector of TestInfos in this TestSuite.
   std::vector<TestInfo*>& test_info_list() { return test_info_list_; }
 
-  // Gets the (immutable) vector of TestInfos in this TestCase.
+  // Gets the (immutable) vector of TestInfos in this TestSuite.
   const std::vector<TestInfo*>& test_info_list() const {
     return test_info_list_;
   }
@@ -908,51 +939,67 @@
   // Sets the should_run member.
   void set_should_run(bool should) { should_run_ = should; }
 
-  // Adds a TestInfo to this test case.  Will delete the TestInfo upon
-  // destruction of the TestCase object.
+  // Adds a TestInfo to this test suite.  Will delete the TestInfo upon
+  // destruction of the TestSuite object.
   void AddTestInfo(TestInfo * test_info);
 
-  // Clears the results of all tests in this test case.
+  // Clears the results of all tests in this test suite.
   void ClearResult();
 
-  // Clears the results of all tests in the given test case.
-  static void ClearTestCaseResult(TestCase* test_case) {
-    test_case->ClearResult();
+  // Clears the results of all tests in the given test suite.
+  static void ClearTestSuiteResult(TestSuite* test_suite) {
+    test_suite->ClearResult();
   }
 
-  // Runs every test in this TestCase.
+  // Runs every test in this TestSuite.
   void Run();
 
-  // Runs SetUpTestCase() for this TestCase.  This wrapper is needed
-  // for catching exceptions thrown from SetUpTestCase().
-  void RunSetUpTestCase() { (*set_up_tc_)(); }
+  // Skips the execution of tests under this TestSuite
+  void Skip();
 
-  // Runs TearDownTestCase() for this TestCase.  This wrapper is
-  // needed for catching exceptions thrown from TearDownTestCase().
-  void RunTearDownTestCase() { (*tear_down_tc_)(); }
+  // Runs SetUpTestSuite() for this TestSuite.  This wrapper is needed
+  // for catching exceptions thrown from SetUpTestSuite().
+  void RunSetUpTestSuite() {
+    if (set_up_tc_ != nullptr) {
+      (*set_up_tc_)();
+    }
+  }
 
-  // Returns true iff test passed.
+  // Runs TearDownTestSuite() for this TestSuite.  This wrapper is
+  // needed for catching exceptions thrown from TearDownTestSuite().
+  void RunTearDownTestSuite() {
+    if (tear_down_tc_ != nullptr) {
+      (*tear_down_tc_)();
+    }
+  }
+
+  // Returns true if and only if test passed.
   static bool TestPassed(const TestInfo* test_info) {
     return test_info->should_run() && test_info->result()->Passed();
   }
 
-  // Returns true iff test failed.
+  // Returns true if and only if test skipped.
+  static bool TestSkipped(const TestInfo* test_info) {
+    return test_info->should_run() && test_info->result()->Skipped();
+  }
+
+  // Returns true if and only if test failed.
   static bool TestFailed(const TestInfo* test_info) {
     return test_info->should_run() && test_info->result()->Failed();
   }
 
-  // Returns true iff the test is disabled and will be reported in the XML
-  // report.
+  // Returns true if and only if the test is disabled and will be reported in
+  // the XML report.
   static bool TestReportableDisabled(const TestInfo* test_info) {
     return test_info->is_reportable() && test_info->is_disabled_;
   }
 
-  // Returns true iff test is disabled.
+  // Returns true if and only if test is disabled.
   static bool TestDisabled(const TestInfo* test_info) {
     return test_info->is_disabled_;
   }
 
-  // Returns true iff this test will appear in the XML report.
+  // Returns true if and only if this test will appear in the XML report.
   static bool TestReportable(const TestInfo* test_info) {
     return test_info->is_reportable();
   }
@@ -962,17 +1009,17 @@
     return test_info->should_run();
   }
 
-  // Shuffles the tests in this test case.
+  // Shuffles the tests in this test suite.
   void ShuffleTests(internal::Random* random);
 
   // Restores the test order to before the first shuffle.
   void UnshuffleTests();
 
-  // Name of the test case.
+  // Name of the test suite.
   std::string name_;
   // Name of the parameter type, or NULL if this is not a typed or a
   // type-parameterized test.
-  const internal::scoped_ptr<const ::std::string> type_param_;
+  const std::unique_ptr<const ::std::string> type_param_;
   // The vector of TestInfos in their original order.  It owns the
   // elements in the vector.
   std::vector<TestInfo*> test_info_list_;
@@ -980,20 +1027,22 @@
   // shuffling and restoring the test order.  The i-th element in this
   // vector is the index of the i-th test in the shuffled test list.
   std::vector<int> test_indices_;
-  // Pointer to the function that sets up the test case.
-  Test::SetUpTestCaseFunc set_up_tc_;
-  // Pointer to the function that tears down the test case.
-  Test::TearDownTestCaseFunc tear_down_tc_;
-  // True iff any test in this test case should run.
+  // Pointer to the function that sets up the test suite.
+  internal::SetUpTestSuiteFunc set_up_tc_;
+  // Pointer to the function that tears down the test suite.
+  internal::TearDownTestSuiteFunc tear_down_tc_;
+  // True if and only if any test in this test suite should run.
   bool should_run_;
+  // The start time, in milliseconds since UNIX Epoch.
+  TimeInMillis start_timestamp_;
   // Elapsed time, in milliseconds.
   TimeInMillis elapsed_time_;
-  // Holds test properties recorded during execution of SetUpTestCase and
-  // TearDownTestCase.
+  // Holds test properties recorded during execution of SetUpTestSuite and
+  // TearDownTestSuite.
   TestResult ad_hoc_test_result_;
 
-  // We disallow copying TestCases.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestCase);
+  // We disallow copying TestSuites.
+  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestSuite);
 };
 
 // An Environment object is capable of setting up and tearing down an
@@ -1024,7 +1073,7 @@
   // If you see an error about overriding the following function or
   // about it being private, you have mis-spelled SetUp() as Setup().
   struct Setup_should_be_spelled_SetUp {};
-  virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; }
+  virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; }
 };
 
 #if GTEST_HAS_EXCEPTIONS
@@ -1060,8 +1109,13 @@
   // Fired after environment set-up for each iteration of tests ends.
   virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) = 0;
 
-  // Fired before the test case starts.
-  virtual void OnTestCaseStart(const TestCase& test_case) = 0;
+  // Fired before the test suite starts.
+  virtual void OnTestSuiteStart(const TestSuite& /*test_suite*/) {}
+
+  //  Legacy API is deprecated but still available
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+  virtual void OnTestCaseStart(const TestCase& /*test_case*/) {}
+#endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
   // Fired before the test starts.
   virtual void OnTestStart(const TestInfo& test_info) = 0;
@@ -1074,8 +1128,13 @@
   // Fired after the test ends.
   virtual void OnTestEnd(const TestInfo& test_info) = 0;
 
-  // Fired after the test case ends.
-  virtual void OnTestCaseEnd(const TestCase& test_case) = 0;
+  // Fired after the test suite ends.
+  virtual void OnTestSuiteEnd(const TestSuite& /*test_suite*/) {}
+
+//  Legacy API is deprecated but still available
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+  virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {}
+#endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
   // Fired before environment tear-down for each iteration of tests starts.
   virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) = 0;
@@ -1098,21 +1157,30 @@
 // above.
 class EmptyTestEventListener : public TestEventListener {
  public:
-  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {}
-  virtual void OnTestIterationStart(const UnitTest& /*unit_test*/,
-                                    int /*iteration*/) {}
-  virtual void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) {}
-  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {}
-  virtual void OnTestCaseStart(const TestCase& /*test_case*/) {}
-  virtual void OnTestStart(const TestInfo& /*test_info*/) {}
-  virtual void OnTestPartResult(const TestPartResult& /*test_part_result*/) {}
-  virtual void OnTestEnd(const TestInfo& /*test_info*/) {}
-  virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {}
-  virtual void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) {}
-  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {}
-  virtual void OnTestIterationEnd(const UnitTest& /*unit_test*/,
-                                  int /*iteration*/) {}
-  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {}
+  void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
+  void OnTestIterationStart(const UnitTest& /*unit_test*/,
+                            int /*iteration*/) override {}
+  void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) override {}
+  void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {}
+  void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {}
+//  Legacy API is deprecated but still available
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+  void OnTestCaseStart(const TestCase& /*test_case*/) override {}
+#endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+
+  void OnTestStart(const TestInfo& /*test_info*/) override {}
+  void OnTestPartResult(const TestPartResult& /*test_part_result*/) override {}
+  void OnTestEnd(const TestInfo& /*test_info*/) override {}
+  void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+  void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
+#endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+
+  void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) override {}
+  void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {}
+  void OnTestIterationEnd(const UnitTest& /*unit_test*/,
+                          int /*iteration*/) override {}
+  void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
 };
 
 // TestEventListeners lets users add listeners to track events in Google Test.
@@ -1152,7 +1220,7 @@
   }
 
  private:
-  friend class TestCase;
+  friend class TestSuite;
   friend class TestInfo;
   friend class internal::DefaultGlobalTestPartResultReporter;
   friend class internal::NoExecDeathTest;
@@ -1193,7 +1261,7 @@
   GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventListeners);
 };
 
-// A UnitTest consists of a vector of TestCases.
+// A UnitTest consists of a vector of TestSuites.
 //
 // This is a singleton class.  The only instance of UnitTest is
 // created when UnitTest::GetInstance() is first called.  This
@@ -1222,10 +1290,14 @@
   // was executed.  The UnitTest object owns the string.
   const char* original_working_dir() const;
 
-  // Returns the TestCase object for the test that's currently running,
+  // Returns the TestSuite object for the test that's currently running,
   // or NULL if no test is running.
-  const TestCase* current_test_case() const
-      GTEST_LOCK_EXCLUDED_(mutex_);
+  const TestSuite* current_test_suite() const GTEST_LOCK_EXCLUDED_(mutex_);
+
+// Legacy API is still available but deprecated
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+  const TestCase* current_test_case() const GTEST_LOCK_EXCLUDED_(mutex_);
+#endif
 
   // Returns the TestInfo object for the test that's currently running,
   // or NULL if no test is running.
@@ -1235,29 +1307,40 @@
   // Returns the random seed used at the start of the current test run.
   int random_seed() const;
 
-  // Returns the ParameterizedTestCaseRegistry object used to keep track of
+  // Returns the ParameterizedTestSuiteRegistry object used to keep track of
   // value-parameterized tests and instantiate and register them.
   //
   // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
-  internal::ParameterizedTestCaseRegistry& parameterized_test_registry()
+  internal::ParameterizedTestSuiteRegistry& parameterized_test_registry()
       GTEST_LOCK_EXCLUDED_(mutex_);
 
-  // Gets the number of successful test cases.
-  int successful_test_case_count() const;
+  // Gets the number of successful test suites.
+  int successful_test_suite_count() const;
 
-  // Gets the number of failed test cases.
-  int failed_test_case_count() const;
+  // Gets the number of failed test suites.
+  int failed_test_suite_count() const;
 
-  // Gets the number of all test cases.
-  int total_test_case_count() const;
+  // Gets the number of all test suites.
+  int total_test_suite_count() const;
 
-  // Gets the number of all test cases that contain at least one test
+  // Gets the number of all test suites that contain at least one test
   // that should run.
+  int test_suite_to_run_count() const;
+
+  //  Legacy API is deprecated but still available
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
+  int successful_test_case_count() const;
+  int failed_test_case_count() const;
+  int total_test_case_count() const;
   int test_case_to_run_count() const;
+#endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
   // Gets the number of successful tests.
   int successful_test_count() const;
 
+  // Gets the number of skipped tests.
+  int skipped_test_count() const;
+
   // Gets the number of failed tests.
   int failed_test_count() const;
 
@@ -1283,19 +1366,25 @@
   // Gets the elapsed time, in milliseconds.
   TimeInMillis elapsed_time() const;
 
-  // Returns true iff the unit test passed (i.e. all test cases passed).
+  // Returns true if and only if the unit test passed (i.e. all test suites
+  // passed).
   bool Passed() const;
 
-  // Returns true iff the unit test failed (i.e. some test case failed
-  // or something outside of all tests failed).
+  // Returns true if and only if the unit test failed (i.e. some test suite
+  // failed or something outside of all tests failed).
   bool Failed() const;
 
-  // Gets the i-th test case among all the test cases. i can range from 0 to
-  // total_test_case_count() - 1. If i is not in that range, returns NULL.
+  // Gets the i-th test suite among all the test suites. i can range from 0 to
+  // total_test_suite_count() - 1. If i is not in that range, returns NULL.
+  const TestSuite* GetTestSuite(int i) const;
+
+//  Legacy API is deprecated but still available
+#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
   const TestCase* GetTestCase(int i) const;
+#endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
   // Returns the TestResult containing information on test failures and
-  // properties logged outside of individual test cases.
+  // properties logged outside of individual test suites.
   const TestResult& ad_hoc_test_result() const;
 
   // Returns the list of event listeners that can be used to track events
@@ -1326,15 +1415,15 @@
       GTEST_LOCK_EXCLUDED_(mutex_);
 
   // Adds a TestProperty to the current TestResult object when invoked from
-  // inside a test, to current TestCase's ad_hoc_test_result_ when invoked
-  // from SetUpTestCase or TearDownTestCase, or to the global property set
+  // inside a test, to current TestSuite's ad_hoc_test_result_ when invoked
+  // from SetUpTestSuite or TearDownTestSuite, or to the global property set
   // when invoked elsewhere.  If the result already contains a property with
   // the same key, the value will be updated.
   void RecordProperty(const std::string& key, const std::string& value);
 
-  // Gets the i-th test case among all the test cases. i can range from 0 to
-  // total_test_case_count() - 1. If i is not in that range, returns NULL.
-  TestCase* GetMutableTestCase(int i);
+  // Gets the i-th test suite among all the test suites. i can range from 0 to
+  // total_test_suite_count() - 1. If i is not in that range, returns NULL.
+  TestSuite* GetMutableTestSuite(int i);
 
   // Accessors for the implementation object.
   internal::UnitTestImpl* impl() { return impl_; }
@@ -1348,6 +1437,7 @@
   friend class internal::StreamingListenerTest;
   friend class internal::UnitTestRecordPropertyTestHelper;
   friend Environment* AddGlobalTestEnvironment(Environment* env);
+  friend std::set<std::string>* internal::GetIgnoredParameterizedTestSuites();
   friend internal::UnitTestImpl* internal::GetUnitTestImpl();
   friend void internal::ReportFailureInUnknownLocation(
       TestPartResult::Type result_type,
@@ -1419,6 +1509,10 @@
 // UNICODE mode.
 GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv);
 
+// This overloaded version can be used on Arduino/embedded platforms where
+// there is no argc/argv.
+GTEST_API_ void InitGoogleTest();
+
 namespace internal {
 
 // Separate the error generating code from the code path to reduce the stack
@@ -1435,6 +1529,13 @@
                    false);
 }
 
+// This block of code defines operator==/!=
+// to block lexical scope lookup.
+// It prevents using invalid operator==/!= defined at namespace scope.
+struct faketype {};
+inline bool operator==(faketype, faketype) { return true; }
+inline bool operator!=(faketype, faketype) { return false; }
+
 // The helper function for {ASSERT|EXPECT}_EQ.
 template <typename T1, typename T2>
 AssertionResult CmpHelperEQ(const char* lhs_expression,
@@ -1448,26 +1549,17 @@
   return CmpHelperEQFailure(lhs_expression, rhs_expression, lhs, rhs);
 }
 
-// With this overloaded version, we allow anonymous enums to be used
-// in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous enums
-// can be implicitly cast to BiggestInt.
-GTEST_API_ AssertionResult CmpHelperEQ(const char* lhs_expression,
-                                       const char* rhs_expression,
-                                       BiggestInt lhs,
-                                       BiggestInt rhs);
-
-// The helper class for {ASSERT|EXPECT}_EQ.  The template argument
-// lhs_is_null_literal is true iff the first argument to ASSERT_EQ()
-// is a null pointer literal.  The following default implementation is
-// for lhs_is_null_literal being false.
-template <bool lhs_is_null_literal>
 class EqHelper {
  public:
   // This templatized version is for the general case.
-  template <typename T1, typename T2>
+  template <
+      typename T1, typename T2,
+      // Disable this overload for cases where one argument is a pointer
+      // and the other is the null pointer constant.
+      typename std::enable_if<!std::is_integral<T1>::value ||
+                              !std::is_pointer<T2>::value>::type* = nullptr>
   static AssertionResult Compare(const char* lhs_expression,
-                                 const char* rhs_expression,
-                                 const T1& lhs,
+                                 const char* rhs_expression, const T1& lhs,
                                  const T2& rhs) {
     return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
   }
@@ -1484,49 +1576,15 @@
                                  BiggestInt rhs) {
     return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
   }
-};
 
-// This specialization is used when the first argument to ASSERT_EQ()
-// is a null pointer literal, like NULL, false, or 0.
-template <>
-class EqHelper<true> {
- public:
-  // We define two overloaded versions of Compare().  The first
-  // version will be picked when the second argument to ASSERT_EQ() is
-  // NOT a pointer, e.g. ASSERT_EQ(0, AnIntFunction()) or
-  // EXPECT_EQ(false, a_bool).
-  template <typename T1, typename T2>
-  static AssertionResult Compare(
-      const char* lhs_expression,
-      const char* rhs_expression,
-      const T1& lhs,
-      const T2& rhs,
-      // The following line prevents this overload from being considered if T2
-      // is not a pointer type.  We need this because ASSERT_EQ(NULL, my_ptr)
-      // expands to Compare("", "", NULL, my_ptr), which requires a conversion
-      // to match the Secret* in the other overload, which would otherwise make
-      // this template match better.
-      typename EnableIf<!is_pointer<T2>::value>::type* = 0) {
-    return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
-  }
-
-  // This version will be picked when the second argument to ASSERT_EQ() is a
-  // pointer, e.g. ASSERT_EQ(NULL, a_pointer).
   template <typename T>
   static AssertionResult Compare(
-      const char* lhs_expression,
-      const char* rhs_expression,
-      // We used to have a second template parameter instead of Secret*.  That
-      // template parameter would deduce to 'long', making this a better match
-      // than the first overload even without the first overload's EnableIf.
-      // Unfortunately, gcc with -Wconversion-null warns when "passing NULL to
-      // non-pointer argument" (even a deduced integral argument), so the old
-      // implementation caused warnings in user code.
-      Secret* /* lhs (NULL) */,
-      T* rhs) {
+      const char* lhs_expression, const char* rhs_expression,
+      // Handle cases where '0' is used as a null pointer literal.
+      std::nullptr_t /* lhs */, T* rhs) {
     // We already know that 'lhs' is a null pointer.
-    return CmpHelperEQ(lhs_expression, rhs_expression,
-                       static_cast<T*>(NULL), rhs);
+    return CmpHelperEQ(lhs_expression, rhs_expression, static_cast<T*>(nullptr),
+                       rhs);
   }
 };
 
@@ -1547,11 +1605,6 @@
 // ASSERT_?? and EXPECT_??.  It is here just to avoid copy-and-paste
 // of similar code.
 //
-// For each templatized helper function, we also define an overloaded
-// version for BiggestInt in order to reduce code bloat and allow
-// anonymous enums to be used with {ASSERT|EXPECT}_?? when compiled
-// with gcc 4.
-//
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 
 #define GTEST_IMPL_CMP_HELPER_(op_name, op)\
@@ -1563,22 +1616,20 @@
   } else {\
     return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\
   }\
-}\
-GTEST_API_ AssertionResult CmpHelper##op_name(\
-    const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2)
+}
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 
 // Implements the helper function for {ASSERT|EXPECT}_NE
-GTEST_IMPL_CMP_HELPER_(NE, !=);
+GTEST_IMPL_CMP_HELPER_(NE, !=)
 // Implements the helper function for {ASSERT|EXPECT}_LE
-GTEST_IMPL_CMP_HELPER_(LE, <=);
+GTEST_IMPL_CMP_HELPER_(LE, <=)
 // Implements the helper function for {ASSERT|EXPECT}_LT
-GTEST_IMPL_CMP_HELPER_(LT, <);
+GTEST_IMPL_CMP_HELPER_(LT, <)
 // Implements the helper function for {ASSERT|EXPECT}_GE
-GTEST_IMPL_CMP_HELPER_(GE, >=);
+GTEST_IMPL_CMP_HELPER_(GE, >=)
 // Implements the helper function for {ASSERT|EXPECT}_GT
-GTEST_IMPL_CMP_HELPER_(GT, >);
+GTEST_IMPL_CMP_HELPER_(GT, >)
 
 #undef GTEST_IMPL_CMP_HELPER_
 
@@ -1774,13 +1825,13 @@
 //   FooTest() {
 //     // Can use GetParam() here.
 //   }
-//   virtual ~FooTest() {
+//   ~FooTest() override {
 //     // Can use GetParam() here.
 //   }
-//   virtual void SetUp() {
+//   void SetUp() override {
 //     // Can use GetParam() here.
 //   }
-//   virtual void TearDown {
+//   void TearDown override {
 //     // Can use GetParam() here.
 //   }
 // };
@@ -1789,7 +1840,7 @@
 //   Foo foo;
 //   ASSERT_TRUE(foo.DoesBar(GetParam()));
 // }
-// INSTANTIATE_TEST_CASE_P(OneToTenRange, FooTest, ::testing::Range(1, 10));
+// INSTANTIATE_TEST_SUITE_P(OneToTenRange, FooTest, ::testing::Range(1, 10));
 
 template <typename T>
 class WithParamInterface {
@@ -1798,12 +1849,9 @@
   virtual ~WithParamInterface() {}
 
   // The current parameter value. Is also available in the test fixture's
-  // constructor. This member function is non-static, even though it only
-  // references static data, to reduce the opportunity for incorrect uses
-  // like writing 'WithParamInterface<bool>::GetParam()' for a test that
-  // uses a fixture whose parameter type is int.
-  const ParamType& GetParam() const {
-    GTEST_CHECK_(parameter_ != NULL)
+  // constructor.
+  static const ParamType& GetParam() {
+    GTEST_CHECK_(parameter_ != nullptr)
         << "GetParam() can only be called inside a value-parameterized test "
         << "-- did you intend to write TEST_P instead of TEST_F?";
     return *parameter_;
@@ -1824,7 +1872,7 @@
 };
 
 template <typename T>
-const T* WithParamInterface<T>::parameter_ = NULL;
+const T* WithParamInterface<T>::parameter_ = nullptr;
 
 // Most value-parameterized classes can ignore the existence of
 // WithParamInterface, and can just inherit from ::testing::TestWithParam.
@@ -1835,6 +1883,11 @@
 
 // Macros for indicating success/failure in test code.
 
+// Skips test in runtime.
+// Skipping test aborts current function.
+// Skipped tests are neither successful nor failed.
+#define GTEST_SKIP() GTEST_SKIP_("")
+
 // ADD_FAILURE unconditionally adds a failure to the current test.
 // SUCCEED generates a success - it doesn't automatically make the
 // current test successful, as a test is only successful when it has
@@ -1864,6 +1917,11 @@
 // Generates a fatal failure with a generic message.
 #define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed")
 
+// Like GTEST_FAIL(), but at the given source file location.
+#define GTEST_FAIL_AT(file, line)         \
+  GTEST_MESSAGE_AT_(file, line, "Failed", \
+                    ::testing::TestPartResult::kFatalFailure)
+
 // Define this macro to 1 to omit the definition of FAIL(), which is a
 // generic name and clashes with some other libraries.
 #if !GTEST_DONT_DEFINE_FAIL
@@ -1904,19 +1962,38 @@
 // Boolean assertions. Condition can be either a Boolean expression or an
 // AssertionResult. For more information on how to use AssertionResult with
 // these macros see comments on that class.
-#define EXPECT_TRUE(condition) \
+#define GTEST_EXPECT_TRUE(condition) \
   GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
                       GTEST_NONFATAL_FAILURE_)
-#define EXPECT_FALSE(condition) \
+#define GTEST_EXPECT_FALSE(condition) \
   GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
                       GTEST_NONFATAL_FAILURE_)
-#define ASSERT_TRUE(condition) \
+#define GTEST_ASSERT_TRUE(condition) \
   GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
                       GTEST_FATAL_FAILURE_)
-#define ASSERT_FALSE(condition) \
+#define GTEST_ASSERT_FALSE(condition) \
   GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
                       GTEST_FATAL_FAILURE_)
 
+// Define these macros to 1 to omit the definition of the corresponding
+// EXPECT or ASSERT, which clashes with some users' own code.
+
+#if !GTEST_DONT_DEFINE_EXPECT_TRUE
+#define EXPECT_TRUE(condition) GTEST_EXPECT_TRUE(condition)
+#endif
+
+#if !GTEST_DONT_DEFINE_EXPECT_FALSE
+#define EXPECT_FALSE(condition) GTEST_EXPECT_FALSE(condition)
+#endif
+
+#if !GTEST_DONT_DEFINE_ASSERT_TRUE
+#define ASSERT_TRUE(condition) GTEST_ASSERT_TRUE(condition)
+#endif
+
+#if !GTEST_DONT_DEFINE_ASSERT_FALSE
+#define ASSERT_FALSE(condition) GTEST_ASSERT_FALSE(condition)
+#endif
+
 // Macros for testing equalities and inequalities.
 //
 //    * {ASSERT|EXPECT}_EQ(v1, v2): Tests that v1 == v2
@@ -1964,9 +2041,7 @@
 //   ASSERT_GT(records.size(), 0) << "There is no record left.";
 
 #define EXPECT_EQ(val1, val2) \
-  EXPECT_PRED_FORMAT2(::testing::internal:: \
-                      EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
-                      val1, val2)
+  EXPECT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
 #define EXPECT_NE(val1, val2) \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
 #define EXPECT_LE(val1, val2) \
@@ -1979,9 +2054,7 @@
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2)
 
 #define GTEST_ASSERT_EQ(val1, val2) \
-  ASSERT_PRED_FORMAT2(::testing::internal:: \
-                      EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
-                      val1, val2)
+  ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
 #define GTEST_ASSERT_NE(val1, val2) \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
 #define GTEST_ASSERT_LE(val1, val2) \
@@ -2172,12 +2245,6 @@
     PushTrace(file, line, message ? message : "(null)");
   }
 
-#if GTEST_HAS_GLOBAL_STRING
-  ScopedTrace(const char* file, int line, const ::string& message) {
-    PushTrace(file, line, message);
-  }
-#endif
-
   ScopedTrace(const char* file, int line, const std::string& message) {
     PushTrace(file, line, message);
   }
@@ -2215,10 +2282,9 @@
   ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
     __FILE__, __LINE__, (message))
 
-
 // Compile-time assertion for type equality.
-// StaticAssertTypeEq<type1, type2>() compiles iff type1 and type2 are
-// the same type.  The value it returns is not interesting.
+// StaticAssertTypeEq<type1, type2>() compiles if and only if type1 and type2
+// are the same type.  The value it returns is not interesting.
 //
 // Instead of making StaticAssertTypeEq a class template, we make it a
 // function template that invokes a helper class template.  This
@@ -2247,18 +2313,18 @@
 //
 // to cause a compiler error.
 template <typename T1, typename T2>
-bool StaticAssertTypeEq() {
-  (void)internal::StaticAssertTypeEqHelper<T1, T2>();
+constexpr bool StaticAssertTypeEq() noexcept {
+  static_assert(std::is_same<T1, T2>::value, "T1 and T2 are not the same type");
   return true;
 }
 
 // Defines a test.
 //
-// The first parameter is the name of the test case, and the second
-// parameter is the name of the test within the test case.
+// The first parameter is the name of the test suite, and the second
+// parameter is the name of the test within the test suite.
 //
-// The convention is to end the test case name with "Test".  For
-// example, a test case for the Foo class can be named FooTest.
+// The convention is to end the test suite name with "Test".  For
+// example, a test suite for the Foo class can be named FooTest.
 //
 // Test code should appear between braces after an invocation of
 // this macro.  Example:
@@ -2277,28 +2343,28 @@
 // code.  GetTestTypeId() is guaranteed to always return the same
 // value, as it always calls GetTypeId<>() from the Google Test
 // framework.
-#define GTEST_TEST(test_case_name, test_name)\
-  GTEST_TEST_(test_case_name, test_name, \
-              ::testing::Test, ::testing::internal::GetTestTypeId())
+#define GTEST_TEST(test_suite_name, test_name)             \
+  GTEST_TEST_(test_suite_name, test_name, ::testing::Test, \
+              ::testing::internal::GetTestTypeId())
 
 // Define this macro to 1 to omit the definition of TEST(), which
 // is a generic name and clashes with some other libraries.
 #if !GTEST_DONT_DEFINE_TEST
-# define TEST(test_case_name, test_name) GTEST_TEST(test_case_name, test_name)
+#define TEST(test_suite_name, test_name) GTEST_TEST(test_suite_name, test_name)
 #endif
 
 // Defines a test that uses a test fixture.
 //
 // The first parameter is the name of the test fixture class, which
-// also doubles as the test case name.  The second parameter is the
-// name of the test within the test case.
+// also doubles as the test suite name.  The second parameter is the
+// name of the test within the test suite.
 //
 // A test fixture class must be declared earlier.  The user should put
 // the test code between braces after using this macro.  Example:
 //
 //   class FooTest : public testing::Test {
 //    protected:
-//     virtual void SetUp() { b_.AddElement(3); }
+//     void SetUp() override { b_.AddElement(3); }
 //
 //     Foo a_;
 //     Foo b_;
@@ -2312,10 +2378,13 @@
 //     EXPECT_EQ(a_.size(), 0);
 //     EXPECT_EQ(b_.size(), 1);
 //   }
-
+//
+// GOOGLETEST_CM0011 DO NOT DELETE
+#if !GTEST_DONT_DEFINE_TEST
 #define TEST_F(test_fixture, test_name)\
   GTEST_TEST_(test_fixture, test_name, test_fixture, \
               ::testing::internal::GetTypeId<test_fixture>())
+#endif  // !GTEST_DONT_DEFINE_TEST
 
 // Returns a path to temporary directory.
 // Tries to determine an appropriate directory for the platform.
@@ -2325,6 +2394,86 @@
 #  pragma warning(pop)
 #endif
 
+// Dynamically registers a test with the framework.
+//
+// This is an advanced API only to be used when the `TEST` macros are
+// insufficient. The macros should be preferred when possible, as they avoid
+// most of the complexity of calling this function.
+//
+// The `factory` argument is a factory callable (move-constructible) object or
+// function pointer that creates a new instance of the Test object. It
+// handles ownership to the caller. The signature of the callable is
+// `Fixture*()`, where `Fixture` is the test fixture class for the test. All
+// tests registered with the same `test_suite_name` must return the same
+// fixture type. This is checked at runtime.
+//
+// The framework will infer the fixture class from the factory and will call
+// the `SetUpTestSuite` and `TearDownTestSuite` for it.
+//
+// Must be called before `RUN_ALL_TESTS()` is invoked, otherwise behavior is
+// undefined.
+//
+// Use case example:
+//
+// class MyFixture : public ::testing::Test {
+//  public:
+//   // All of these optional, just like in regular macro usage.
+//   static void SetUpTestSuite() { ... }
+//   static void TearDownTestSuite() { ... }
+//   void SetUp() override { ... }
+//   void TearDown() override { ... }
+// };
+//
+// class MyTest : public MyFixture {
+//  public:
+//   explicit MyTest(int data) : data_(data) {}
+//   void TestBody() override { ... }
+//
+//  private:
+//   int data_;
+// };
+//
+// void RegisterMyTests(const std::vector<int>& values) {
+//   for (int v : values) {
+//     ::testing::RegisterTest(
+//         "MyFixture", ("Test" + std::to_string(v)).c_str(), nullptr,
+//         std::to_string(v).c_str(),
+//         __FILE__, __LINE__,
+//         // Important to use the fixture type as the return type here.
+//         [=]() -> MyFixture* { return new MyTest(v); });
+//   }
+// }
+// ...
+// int main(int argc, char** argv) {
+//   std::vector<int> values_to_test = LoadValuesFromConfig();
+//   RegisterMyTests(values_to_test);
+//   ...
+//   return RUN_ALL_TESTS();
+// }
+//
+template <int&... ExplicitParameterBarrier, typename Factory>
+TestInfo* RegisterTest(const char* test_suite_name, const char* test_name,
+                       const char* type_param, const char* value_param,
+                       const char* file, int line, Factory factory) {
+  using TestT = typename std::remove_pointer<decltype(factory())>::type;
+
+  class FactoryImpl : public internal::TestFactoryBase {
+   public:
+    explicit FactoryImpl(Factory f) : factory_(std::move(f)) {}
+    Test* CreateTest() override { return factory_(); }
+
+   private:
+    Factory factory_;
+  };
+
+  return internal::MakeAndRegisterTestInfo(
+      test_suite_name, test_name, type_param, value_param,
+      internal::CodeLocation(file, line), internal::GetTypeId<TestT>(),
+      internal::SuiteApiResolver<TestT>::GetSetUpCaseOrSuite(file, line),
+      internal::SuiteApiResolver<TestT>::GetTearDownCaseOrSuite(file, line),
+      new FactoryImpl{std::move(factory)});
+}
+
 }  // namespace testing
 
 // Use this function in main() to run all tests.  It returns 0 if all
@@ -2343,4 +2492,4 @@
 
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
 
-#endif  // GTEST_INCLUDE_GTEST_GTEST_H_
+#endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_H_