git: 28f6c2f29280 - main - Import GoogleTest 1.14.0

From: Enji Cooper <ngie_at_FreeBSD.org>
Date: Thu, 10 Aug 2023 02:32:39 UTC
The branch main has been updated by ngie:

URL: https://cgit.FreeBSD.org/src/commit/?id=28f6c2f292806bf31230a959bc4b19d7081669a7

commit 28f6c2f292806bf31230a959bc4b19d7081669a7
Author:     Enji Cooper <ngie@FreeBSD.org>
AuthorDate: 2023-08-08 06:17:32 +0000
Commit:     Enji Cooper <ngie@FreeBSD.org>
CommitDate: 2023-08-10 09:32:33 +0000

    Import GoogleTest 1.14.0
    
    GoogleTest 1.14.0 now requires C++14 to build. Change
    `googletest.test.inc.mk` to reflect this requirement.
    
    Adjust the build integration logic to handle the new version of
    GoogleTest (add/remove headers/sources as needed).
    
    Tighten down warnings via `CXXFLAGS.clang` instead of ignoring all
    warnings. Some new warnings snuck in after I did my last round of fix
    submissions upstream.
    
    Also address some overlinking added in the previous version import by
    removing superfluous libraries.
    
    ===============================
    
    Expect WhenDynamicCastToTest.AmbiguousCast to fail
    
    This change reapplies the expected failure from 1.10.0.
    
    Ref: https://github.com/google/googletest/issues/2172
    
    MFC after:      2 weeks
    Reviewed by:    asomers, emaste
    Differential Revision:  https://reviews.freebsd.org/D41399
    
    Merge commit '8ef491440fcaec96f899d73e08873426c78583a4' into googletest-v1.14.0-import
---
 contrib/googletest/.clang-format                   |    4 +
 .../.github/ISSUE_TEMPLATE/00-bug_report.yml       |   53 +
 .../.github/ISSUE_TEMPLATE/10-feature_request.yml  |   33 +
 .../googletest/.github/ISSUE_TEMPLATE/config.yml   |    5 +
 contrib/googletest/.github/workflows/gtest-ci.yml  |   43 +
 contrib/googletest/.gitignore                      |   34 +
 contrib/googletest/BUILD.bazel                     |  127 +-
 contrib/googletest/CMakeLists.txt                  |   14 +-
 contrib/googletest/CONTRIBUTING.md                 |  203 +-
 contrib/googletest/{googletest => }/CONTRIBUTORS   |   28 +
 contrib/googletest/Makefile.am                     |   14 -
 contrib/googletest/README.md                       |  240 +-
 contrib/googletest/WORKSPACE                       |   27 +-
 contrib/googletest/appveyor.yml                    |  104 -
 contrib/googletest/ci/build-linux-bazel.sh         |   36 -
 contrib/googletest/ci/env-linux.sh                 |   41 -
 contrib/googletest/ci/env-osx.sh                   |   40 -
 contrib/googletest/ci/get-nprocessors.sh           |   48 -
 contrib/googletest/ci/install-linux.sh             |   49 -
 contrib/googletest/ci/install-osx.sh               |   39 -
 contrib/googletest/ci/linux-presubmit.sh           |  137 +
 .../Scripts/runtests.sh => ci/macos-presubmit.sh}  |   71 +-
 contrib/googletest/ci/travis.sh                    |   44 -
 contrib/googletest/ci/windows-presubmit.bat        |   58 +
 contrib/googletest/configure.ac                    |   16 -
 contrib/googletest/docs/_config.yml                |    1 +
 contrib/googletest/docs/_data/navigation.yml       |   43 +
 contrib/googletest/docs/_layouts/default.html      |   58 +
 contrib/googletest/docs/_sass/main.scss            |  200 +
 .../googletest/{googletest => }/docs/advanced.md   | 1608 +++--
 contrib/googletest/docs/assets/css/style.scss      |    5 +
 .../docs/community_created_documentation.md        |    7 +
 contrib/googletest/{googletest => }/docs/faq.md    |  362 +-
 contrib/googletest/docs/gmock_cheat_sheet.md       |  241 +
 contrib/googletest/docs/gmock_cook_book.md         | 4344 +++++++++++++
 contrib/googletest/docs/gmock_faq.md               |  390 ++
 contrib/googletest/docs/gmock_for_dummies.md       |  700 ++
 contrib/googletest/docs/index.md                   |   22 +
 contrib/googletest/docs/pkgconfig.md               |  144 +
 contrib/googletest/docs/platforms.md               |    8 +
 contrib/googletest/docs/primer.md                  |  483 ++
 contrib/googletest/docs/quickstart-bazel.md        |  153 +
 contrib/googletest/docs/quickstart-cmake.md        |  157 +
 contrib/googletest/docs/reference/actions.md       |  115 +
 contrib/googletest/docs/reference/assertions.md    |  633 ++
 contrib/googletest/docs/reference/matchers.md      |  302 +
 contrib/googletest/docs/reference/mocking.md       |  589 ++
 contrib/googletest/docs/reference/testing.md       | 1432 ++++
 .../googletest/{googletest => }/docs/samples.md    |    6 +-
 contrib/googletest/googlemock/CHANGES              |  126 -
 contrib/googletest/googlemock/CMakeLists.txt       |   74 +-
 contrib/googletest/googlemock/CONTRIBUTORS         |   40 -
 contrib/googletest/googlemock/LICENSE              |   28 -
 contrib/googletest/googlemock/Makefile.am          |  224 -
 contrib/googletest/googlemock/README.md            |  353 +-
 contrib/googletest/googlemock/build-aux/.keep      |    0
 contrib/googletest/googlemock/cmake/gmock.pc.in    |    3 +-
 .../googletest/googlemock/cmake/gmock_main.pc.in   |    3 +-
 contrib/googletest/googlemock/configure.ac         |  146 -
 contrib/googletest/googlemock/docs/CheatSheet.md   |  564 --
 contrib/googletest/googlemock/docs/CookBook.md     | 3660 -----------
 contrib/googletest/googlemock/docs/DesignDoc.md    |  280 -
 .../googletest/googlemock/docs/Documentation.md    |   15 -
 contrib/googletest/googlemock/docs/ForDummies.md   |  447 --
 .../googlemock/docs/FrequentlyAskedQuestions.md    |  627 --
 contrib/googletest/googlemock/docs/KnownIssues.md  |   19 -
 contrib/googletest/googlemock/docs/README.md       |    4 +
 .../googlemock/include/gmock/gmock-actions.h       | 2000 ++++--
 .../googlemock/include/gmock/gmock-cardinalities.h |   40 +-
 .../include/gmock/gmock-function-mocker.h          |  518 ++
 .../include/gmock/gmock-generated-actions.h        | 2567 --------
 .../include/gmock/gmock-generated-actions.h.pump   |  833 ---
 .../gmock/gmock-generated-function-mockers.h       | 1380 ----
 .../gmock/gmock-generated-function-mockers.h.pump  |  348 -
 .../include/gmock/gmock-generated-matchers.h       | 2260 -------
 .../include/gmock/gmock-generated-matchers.h.pump  |  678 --
 .../include/gmock/gmock-generated-nice-strict.h    |  459 --
 .../gmock/gmock-generated-nice-strict.h.pump       |  179 -
 .../googlemock/include/gmock/gmock-matchers.h      | 3681 ++++++-----
 .../googlemock/include/gmock/gmock-more-actions.h  |  795 ++-
 .../googlemock/include/gmock/gmock-more-matchers.h |   74 +-
 .../googlemock/include/gmock/gmock-nice-strict.h   |  277 +
 .../googlemock/include/gmock/gmock-spec-builders.h | 1120 ++--
 .../googletest/googlemock/include/gmock/gmock.h    |   28 +-
 .../include/gmock/internal/custom/README.md        |    2 +
 .../internal/custom/gmock-generated-actions.h      |   13 +-
 .../internal/custom/gmock-generated-actions.h.pump |   12 -
 .../include/gmock/internal/custom/gmock-matchers.h |   13 +-
 .../include/gmock/internal/custom/gmock-port.h     |   11 +-
 .../internal/gmock-generated-internal-utils.h      |  287 -
 .../internal/gmock-generated-internal-utils.h.pump |  137 -
 .../include/gmock/internal/gmock-internal-utils.h  |  433 +-
 .../googlemock/include/gmock/internal/gmock-port.h |   97 +-
 .../googlemock/include/gmock/internal/gmock-pp.h   |  279 +
 contrib/googletest/googlemock/make/Makefile        |  101 -
 contrib/googletest/googlemock/msvc/2005/gmock.sln  |   32 -
 .../googletest/googlemock/msvc/2005/gmock.vcproj   |  191 -
 .../googlemock/msvc/2005/gmock_config.vsprops      |   15 -
 .../googlemock/msvc/2005/gmock_main.vcproj         |  187 -
 .../googlemock/msvc/2005/gmock_test.vcproj         |  201 -
 contrib/googletest/googlemock/msvc/2010/gmock.sln  |   46 -
 .../googletest/googlemock/msvc/2010/gmock.vcxproj  |  145 -
 .../googlemock/msvc/2010/gmock_config.props        |   19 -
 .../googlemock/msvc/2010/gmock_main.vcxproj        |  151 -
 .../googlemock/msvc/2010/gmock_test.vcxproj        |  176 -
 contrib/googletest/googlemock/msvc/2015/gmock.sln  |   46 -
 .../googletest/googlemock/msvc/2015/gmock.vcxproj  |  145 -
 .../googlemock/msvc/2015/gmock_config.props        |   19 -
 .../googlemock/msvc/2015/gmock_main.vcxproj        |  151 -
 .../googlemock/msvc/2015/gmock_test.vcxproj        |  176 -
 .../googlemock/scripts/fuse_gmock_files.py         |  240 -
 .../googlemock/scripts/generator/LICENSE           |  203 -
 .../googletest/googlemock/scripts/generator/README |   34 -
 .../googlemock/scripts/generator/README.cppclean   |  115 -
 .../googlemock/scripts/generator/cpp/__init__.py   |    0
 .../googlemock/scripts/generator/cpp/ast.py        | 1736 -----
 .../scripts/generator/cpp/gmock_class.py           |  227 -
 .../scripts/generator/cpp/gmock_class_test.py      |  466 --
 .../googlemock/scripts/generator/cpp/keywords.py   |   59 -
 .../googlemock/scripts/generator/cpp/tokenize.py   |  287 -
 .../googlemock/scripts/generator/cpp/utils.py      |   41 -
 .../googlemock/scripts/generator/gmock_gen.py      |   31 -
 .../googletest/googlemock/scripts/gmock-config.in  |  303 -
 .../googletest/googlemock/scripts/gmock_doctor.py  |  640 --
 contrib/googletest/googlemock/scripts/upload.py    | 1387 ----
 .../googletest/googlemock/scripts/upload_gmock.py  |   78 -
 .../googlemock/src/gmock-cardinalities.cc          |   22 +-
 .../googlemock/src/gmock-internal-utils.cc         |  132 +-
 .../googletest/googlemock/src/gmock-matchers.cc    |  143 +-
 .../googlemock/src/gmock-spec-builders.cc          |  321 +-
 contrib/googletest/googlemock/src/gmock.cc         |   89 +-
 contrib/googletest/googlemock/src/gmock_main.cc    |   25 +-
 contrib/googletest/googlemock/test/BUILD.bazel     |   49 +-
 .../googlemock/test/gmock-actions_test.cc          | 1439 ++++-
 .../googlemock/test/gmock-cardinalities_test.cc    |  127 +-
 .../googlemock/test/gmock-function-mocker_test.cc  |  998 +++
 .../test/gmock-generated-actions_test.cc           | 1229 ----
 .../test/gmock-generated-function-mockers_test.cc  |  646 --
 .../test/gmock-generated-internal-utils_test.cc    |  128 -
 .../test/gmock-generated-matchers_test.cc          | 1341 ----
 .../googlemock/test/gmock-internal-utils_test.cc   |  441 +-
 .../test/gmock-matchers-arithmetic_test.cc         | 1516 +++++
 .../test/gmock-matchers-comparisons_test.cc        | 2371 +++++++
 .../test/gmock-matchers-containers_test.cc         | 3137 +++++++++
 .../googlemock/test/gmock-matchers-misc_test.cc    | 1823 ++++++
 .../googlemock/test/gmock-matchers_test.cc         | 6814 --------------------
 .../googlemock/test/gmock-matchers_test.h          |  192 +
 .../googlemock/test/gmock-more-actions_test.cc     | 1155 +++-
 .../googlemock/test/gmock-nice-strict_test.cc      |  201 +-
 .../googletest/googlemock/test/gmock-port_test.cc  |    2 +-
 .../googlemock/test/gmock-pp-string_test.cc        |  205 +
 .../googletest/googlemock/test/gmock-pp_test.cc    |   83 +
 .../googlemock/test/gmock-spec-builders_test.cc    | 1142 ++--
 .../googletest/googlemock/test/gmock_all_test.cc   |    9 +-
 .../googletest/googlemock/test/gmock_ex_test.cc    |    4 +-
 .../googletest/googlemock/test/gmock_leak_test.py  |   61 +-
 .../googletest/googlemock/test/gmock_leak_test_.cc |    8 +-
 .../googletest/googlemock/test/gmock_link2_test.cc |    1 -
 .../googletest/googlemock/test/gmock_link_test.cc  |    1 -
 .../googletest/googlemock/test/gmock_link_test.h   |   96 +-
 .../googlemock/test/gmock_output_test.py           |   21 +-
 .../googlemock/test/gmock_output_test_.cc          |   83 +-
 .../googlemock/test/gmock_output_test_golden.txt   |   32 +-
 .../googlemock/test/gmock_stress_test.cc           |  142 +-
 contrib/googletest/googlemock/test/gmock_test.cc   |  190 +-
 .../googletest/googlemock/test/gmock_test_utils.py |   19 +-
 contrib/googletest/googletest/CHANGES              |  157 -
 contrib/googletest/googletest/CMakeLists.txt       |   97 +-
 contrib/googletest/googletest/LICENSE              |   28 -
 contrib/googletest/googletest/Makefile.am          |  345 -
 contrib/googletest/googletest/README.md            |  348 +-
 contrib/googletest/googletest/cmake/gtest.pc.in    |    2 +-
 .../googletest/googletest/cmake/gtest_main.pc.in   |    4 +-
 .../googletest/cmake/internal_utils.cmake          |  166 +-
 contrib/googletest/googletest/cmake/libgtest.la.in |   21 +
 .../googletest/googletest/codegear/gtest.cbproj    |  138 -
 .../googletest/googletest/codegear/gtest.groupproj |   54 -
 .../googletest/googletest/codegear/gtest_link.cc   |   40 -
 .../googletest/codegear/gtest_main.cbproj          |   82 -
 .../googletest/codegear/gtest_unittest.cbproj      |   88 -
 contrib/googletest/googletest/configure.ac         |   68 -
 contrib/googletest/googletest/docs/Pkgconfig.md    |  146 -
 contrib/googletest/googletest/docs/PumpManual.md   |  177 -
 contrib/googletest/googletest/docs/README.md       |    4 +
 contrib/googletest/googletest/docs/XcodeGuide.md   |   93 -
 contrib/googletest/googletest/docs/primer.md       |  569 --
 .../include/gtest/gtest-assertion-result.h         |  237 +
 .../googletest/include/gtest/gtest-death-test.h    |  145 +-
 .../googletest/include/gtest/gtest-matchers.h      |  923 +++
 .../googletest/include/gtest/gtest-message.h       |  115 +-
 .../googletest/include/gtest/gtest-param-test.h    | 1264 +---
 .../include/gtest/gtest-param-test.h.pump          |  500 --
 .../googletest/include/gtest/gtest-printers.h      | 1074 +--
 .../googletest/include/gtest/gtest-spi.h           |  143 +-
 .../googletest/include/gtest/gtest-test-part.h     |   51 +-
 .../googletest/include/gtest/gtest-typed-test.h    |  225 +-
 .../googletest/googletest/include/gtest/gtest.h    | 1319 ++--
 .../googletest/include/gtest/gtest_pred_impl.h     |  276 +-
 .../googletest/include/gtest/gtest_prod.h          |   15 +-
 .../include/gtest/internal/custom/README.md        |   12 -
 .../include/gtest/internal/custom/gtest-port.h     |    6 +-
 .../include/gtest/internal/custom/gtest-printers.h |    6 +-
 .../include/gtest/internal/custom/gtest.h          |    6 +-
 .../gtest/internal/gtest-death-test-internal.h     |  193 +-
 .../include/gtest/internal/gtest-filepath.h        |   44 +-
 .../include/gtest/internal/gtest-internal.h        | 1107 ++--
 .../include/gtest/internal/gtest-linked_ptr.h      |  243 -
 .../gtest/internal/gtest-param-util-generated.h    | 5552 ----------------
 .../internal/gtest-param-util-generated.h.pump     |  282 -
 .../include/gtest/internal/gtest-param-util.h      |  762 ++-
 .../include/gtest/internal/gtest-port-arch.h       |  120 +-
 .../googletest/include/gtest/internal/gtest-port.h | 2211 +++----
 .../include/gtest/internal/gtest-string.h          |   53 +-
 .../include/gtest/internal/gtest-tuple.h           | 1021 ---
 .../include/gtest/internal/gtest-tuple.h.pump      |  348 -
 .../include/gtest/internal/gtest-type-util.h       | 3352 +---------
 .../include/gtest/internal/gtest-type-util.h.pump  |  314 -
 contrib/googletest/googletest/m4/acx_pthread.m4    |  363 --
 contrib/googletest/googletest/m4/gtest.m4          |   74 -
 contrib/googletest/googletest/make/Makefile        |   82 -
 .../googletest/googletest/msvc/2010/gtest-md.sln   |   55 -
 .../googletest/msvc/2010/gtest-md.vcxproj          |  149 -
 .../googletest/msvc/2010/gtest-md.vcxproj.filters  |   18 -
 contrib/googletest/googletest/msvc/2010/gtest.sln  |   55 -
 .../googletest/googletest/msvc/2010/gtest.vcxproj  |  149 -
 .../googletest/msvc/2010/gtest.vcxproj.filters     |   18 -
 .../googletest/msvc/2010/gtest_main-md.vcxproj     |  154 -
 .../msvc/2010/gtest_main-md.vcxproj.filters        |   18 -
 .../googletest/msvc/2010/gtest_main.vcxproj        |  162 -
 .../msvc/2010/gtest_main.vcxproj.filters           |   18 -
 .../msvc/2010/gtest_prod_test-md.vcxproj           |  199 -
 .../msvc/2010/gtest_prod_test-md.vcxproj.filters   |   26 -
 .../googletest/msvc/2010/gtest_prod_test.vcxproj   |  191 -
 .../msvc/2010/gtest_prod_test.vcxproj.filters      |   26 -
 .../googletest/msvc/2010/gtest_unittest-md.vcxproj |  188 -
 .../msvc/2010/gtest_unittest-md.vcxproj.filters    |   18 -
 .../googletest/msvc/2010/gtest_unittest.vcxproj    |  180 -
 .../msvc/2010/gtest_unittest.vcxproj.filters       |   18 -
 .../googletest/googletest/samples/prime_tables.h   |   39 +-
 contrib/googletest/googletest/samples/sample1.cc   |    6 +-
 contrib/googletest/googletest/samples/sample1.h    |    8 +-
 .../googletest/samples/sample10_unittest.cc        |   15 +-
 .../googletest/samples/sample1_unittest.cc         |   11 +-
 contrib/googletest/googletest/samples/sample2.cc   |    4 +-
 contrib/googletest/googletest/samples/sample2.h    |   18 +-
 .../googletest/samples/sample2_unittest.cc         |   10 +-
 .../googletest/googletest/samples/sample3-inl.h    |   31 +-
 .../googletest/samples/sample3_unittest.cc         |   23 +-
 contrib/googletest/googletest/samples/sample4.cc   |   14 +-
 contrib/googletest/googletest/samples/sample4.h    |    6 +-
 .../googletest/samples/sample4_unittest.cc         |    2 +-
 .../googletest/samples/sample5_unittest.cc         |   29 +-
 .../googletest/samples/sample6_unittest.cc         |   30 +-
 .../googletest/samples/sample7_unittest.cc         |   20 +-
 .../googletest/samples/sample8_unittest.cc         |   61 +-
 .../googletest/samples/sample9_unittest.cc         |   46 +-
 contrib/googletest/googletest/scripts/common.py    |   83 -
 .../googletest/scripts/fuse_gtest_files.py         |  253 -
 .../googletest/scripts/gen_gtest_pred_impl.py      |  730 ---
 .../googletest/googletest/scripts/gtest-config.in  |  274 -
 contrib/googletest/googletest/scripts/pump.py      |  855 ---
 .../googletest/googletest/scripts/release_docs.py  |  158 -
 .../googletest/googletest/scripts/test/Makefile    |   59 -
 contrib/googletest/googletest/scripts/upload.py    | 1387 ----
 .../googletest/googletest/scripts/upload_gtest.py  |   78 -
 contrib/googletest/googletest/src/gtest-all.cc     |    4 +-
 .../gtest-assertion-result.cc}                     |   69 +-
 .../googletest/googletest/src/gtest-death-test.cc  |  986 +--
 .../googletest/googletest/src/gtest-filepath.cc    |  239 +-
 .../googletest/googletest/src/gtest-internal-inl.h |  548 +-
 .../googletest/googletest/src/gtest-matchers.cc    |   98 +
 contrib/googletest/googletest/src/gtest-port.cc    |  714 +-
 .../googletest/googletest/src/gtest-printers.cc    |  294 +-
 .../googletest/googletest/src/gtest-test-part.cc   |   35 +-
 .../googletest/googletest/src/gtest-typed-test.cc  |   40 +-
 contrib/googletest/googletest/src/gtest.cc         | 4271 +++++++-----
 contrib/googletest/googletest/src/gtest_main.cc    |   31 +-
 contrib/googletest/googletest/test/BUILD.bazel     |  169 +-
 .../test/googletest-break-on-failure-unittest.py   |   79 +-
 .../test/googletest-break-on-failure-unittest_.cc  |   25 +-
 .../test/googletest-catch-exceptions-test.py       |  316 +-
 .../test/googletest-catch-exceptions-test_.cc      |  122 +-
 .../googletest/test/googletest-color-test.py       |   70 +-
 .../googletest/test/googletest-color-test_.cc      |    4 +-
 .../googletest/test/googletest-death-test-test.cc  |  613 +-
 .../test/googletest-death-test_ex_test.cc          |   31 +-
 .../googletest/test/googletest-env-var-test.py     |   11 +-
 .../googletest/test/googletest-env-var-test_.cc    |   36 +-
 .../test/googletest-failfast-unittest.py           |  461 ++
 .../test/googletest-failfast-unittest_.cc          |  166 +
 .../googletest/test/googletest-filepath-test.cc    |  226 +-
 .../googletest/test/googletest-filter-unittest.py  |  448 +-
 .../googletest/test/googletest-filter-unittest_.cc |   75 +-
 .../test/googletest-global-environment-unittest.py |  141 +
 .../googletest-global-environment-unittest_.cc}    |   47 +-
 .../test/googletest-json-outfiles-test.py          |  138 +-
 .../test/googletest-json-output-unittest.py        |  950 +--
 .../googletest/test/googletest-linked-ptr-test.cc  |  151 -
 .../test/googletest-list-tests-unittest.py         |  102 +-
 .../test/googletest-list-tests-unittest_.cc        |  103 +-
 .../googletest/test/googletest-listener-test.cc    |  480 +-
 .../googletest/test/googletest-message-test.cc     |   48 +-
 .../googletest/test/googletest-options-test.cc     |  103 +-
 .../test/googletest-output-test-golden-lin.txt     |  247 +-
 .../googletest/test/googletest-output-test.py      |  182 +-
 .../googletest/test/googletest-output-test_.cc     |  539 +-
 .../googletest-param-test-invalid-name1-test.py    |    4 +-
 .../googletest-param-test-invalid-name1-test_.cc   |   12 +-
 .../googletest-param-test-invalid-name2-test.py    |    5 +-
 .../googletest-param-test-invalid-name2-test_.cc   |   15 +-
 .../googletest/test/googletest-param-test-test.cc  |  556 +-
 .../googletest/test/googletest-param-test-test.h   |   14 +-
 .../googletest/test/googletest-param-test2-test.cc |   13 +-
 .../googletest/test/googletest-port-test.cc        |  315 +-
 .../googletest/test/googletest-printers-test.cc    | 1176 ++--
 .../test/googletest-setuptestsuite-test.py}        |   38 +-
 .../googletest-setuptestsuite-test_.cc}            |   26 +-
 .../googletest/test/googletest-shuffle-test.py     |  203 +-
 .../googletest/test/googletest-shuffle-test_.cc    |   13 +-
 .../googletest/test/googletest-test-part-test.cc   |   26 +-
 .../googletest/test/googletest-test2_test.cc       |   61 -
 .../test/googletest-throw-on-failure-test.py       |   77 +-
 .../test/googletest-throw-on-failure-test_.cc      |   12 +-
 .../googletest/test/googletest-tuple-test.cc       |  319 -
 .../test/googletest-uninitialized-test.py          |   13 +-
 .../test/googletest-uninitialized-test_.cc         |    5 +-
 .../googletest/test/gtest-typed-test2_test.cc      |   11 +-
 .../googletest/test/gtest-typed-test_test.cc       |  246 +-
 .../googletest/test/gtest-typed-test_test.h        |   24 +-
 .../googletest/test/gtest-unittest-api_test.cc     |  272 +-
 .../googletest/googletest/test/gtest_all_test.cc   |    1 -
 .../test/gtest_assert_by_exception_test.cc         |   28 +-
 .../googletest/googletest/test/gtest_dirs_test.cc  |  101 +
 .../googletest/test/gtest_environment_test.cc      |   29 +-
 .../googletest/googletest/test/gtest_help_test.py  |  129 +-
 .../googletest/googletest/test/gtest_help_test_.cc |    3 +-
 .../googletest/test/gtest_json_test_utils.py       |    4 +
 .../googletest/test/gtest_list_output_unittest.py  |  184 +-
 .../googletest/test/gtest_list_output_unittest_.cc |   26 +
 .../googletest/test/gtest_main_unittest.cc         |    4 +-
 .../googletest/test/gtest_pred_impl_unittest.cc    | 1793 +++--
 .../googletest/test/gtest_premature_exit_test.cc   |   30 +-
 .../googletest/test/gtest_repeat_test.cc           |   76 +-
 .../gtest_skip_check_output_test.py}               |   66 +-
 .../gtest_skip_environment_check_output_test.py}   |   40 +-
 .../test/gtest_skip_in_environment_setup_test.cc   |   26 +-
 .../googletest/googletest/test/gtest_skip_test.cc  |   10 +-
 .../googletest/test/gtest_sole_header_test.cc      |    4 +-
 .../googletest/test/gtest_stress_test.cc           |   36 +-
 .../test/gtest_test_macro_stack_footprint_test.cc  |   58 +-
 .../googletest/googletest/test/gtest_test_utils.py |  142 +-
 .../googletest/test/gtest_testbridge_test.py       |    4 +-
 .../googletest/test/gtest_testbridge_test_.cc      |    1 -
 .../test/gtest_throw_on_failure_ex_test.cc         |   19 +-
 .../googletest/googletest/test/gtest_unittest.cc   | 3944 ++++++-----
 .../googletest/test/gtest_xml_outfile1_test_.cc    |    8 +-
 .../googletest/test/gtest_xml_outfile2_test_.cc    |   46 +-
 .../googletest/test/gtest_xml_outfiles_test.py     |   55 +-
 .../googletest/test/gtest_xml_output_unittest.py   |  338 +-
 .../googletest/test/gtest_xml_output_unittest_.cc  |   56 +-
 .../googletest/test/gtest_xml_test_utils.py        |  170 +-
 contrib/googletest/googletest/test/production.h    |    7 +-
 .../googletest/xcode/Config/DebugProject.xcconfig  |   30 -
 .../xcode/Config/FrameworkTarget.xcconfig          |   17 -
 .../googletest/xcode/Config/General.xcconfig       |   41 -
 .../xcode/Config/ReleaseProject.xcconfig           |   32 -
 .../xcode/Config/StaticLibraryTarget.xcconfig      |   18 -
 .../googletest/xcode/Config/TestTarget.xcconfig    |    8 -
 .../googletest/xcode/Resources/Info.plist          |   30 -
 .../xcode/Samples/FrameworkSample/Info.plist       |   28 -
 .../WidgetFramework.xcodeproj/project.pbxproj      |  457 --
 .../xcode/Samples/FrameworkSample/widget.cc        |   63 -
 .../googletest/xcode/Scripts/versiongenerate.py    |  100 -
 .../xcode/gtest.xcodeproj/project.pbxproj          | 1182 ----
 contrib/googletest/googletest_deps.bzl             |   22 +
 lib/googletest/gmock/Makefile                      |   18 +-
 lib/googletest/gtest/Makefile                      |    5 +-
 lib/googletest/tests/gmock/Makefile                |    5 +-
 lib/googletest/tests/gmock_main/Makefile           |   20 +-
 lib/googletest/tests/gtest/Makefile                |   11 +-
 lib/googletest/tests/gtest_main/Makefile           |   15 +-
 share/mk/googletest.test.inc.mk                    |    2 +-
 382 files changed, 51489 insertions(+), 78609 deletions(-)

diff --git a/contrib/googletest/.clang-format b/contrib/googletest/.clang-format
new file mode 100644
index 000000000000..5b9bfe6d2242
--- /dev/null
+++ b/contrib/googletest/.clang-format
@@ -0,0 +1,4 @@
+# Run manually to reformat a file:
+# clang-format -i --style=file <file>
+Language:        Cpp
+BasedOnStyle:  Google
diff --git a/contrib/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml b/contrib/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml
new file mode 100644
index 000000000000..586779ad2d61
--- /dev/null
+++ b/contrib/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml
@@ -0,0 +1,53 @@
+name: Bug Report
+description: Let us know that something does not work as expected.
+title: "[Bug]: Please title this bug report"
+body:
+  - type: textarea
+    id: what-happened
+    attributes:
+      label: Describe the issue
+      description: What happened, and what did you expect to happen?
+    validations:
+      required: true
+  - type: textarea
+    id: steps
+    attributes:
+      label: Steps to reproduce the problem
+      description: It is important that we are able to reproduce the problem that you are experiencing. Please provide all code and relevant steps to reproduce the problem, including your `BUILD`/`CMakeLists.txt` file and build commands. Links to a GitHub branch or [godbolt.org](https://godbolt.org/) that demonstrate the problem are also helpful.
+    validations:
+      required: true
+  - type: textarea
+    id: version
+    attributes:
+      label: What version of GoogleTest are you using?
+      description: Please include the output of `git rev-parse HEAD` or the GoogleTest release version number that you are using.
+    validations:
+      required: true
+  - type: textarea
+    id: os
+    attributes:
+      label: What operating system and version are you using?
+      description: If you are using a Linux distribution please include the name and version of the distribution as well.
+    validations:
+      required: true
+  - type: textarea
+    id: compiler
+    attributes:
+      label: What compiler and version are you using?
+      description: Please include the output of `gcc -v` or `clang -v`, or the equivalent for your compiler.
+    validations:
+      required: true
+  - type: textarea
+    id: buildsystem
+    attributes:
+      label: What build system are you using?
+      description: Please include the output of `bazel --version` or `cmake --version`, or the equivalent for your build system.
+    validations:
+      required: true
+  - type: textarea
+    id: additional
+    attributes:
+      label: Additional context
+      description: Add any other context about the problem here.
+    validations:
+      required: false
diff --git a/contrib/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml b/contrib/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml
new file mode 100644
index 000000000000..f3bbc091e8e9
--- /dev/null
+++ b/contrib/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml
@@ -0,0 +1,33 @@
+name: Feature request
+description: Propose a new feature.
+title: "[FR]: Please title this feature request"
+labels: "enhancement"
+body:
+  - type: textarea
+    id: version
+    attributes:
+      label: Does the feature exist in the most recent commit?
+      description: We recommend using the latest commit from GitHub in your projects.
+    validations:
+      required: true
+  - type: textarea
+    id: why
+    attributes:
+      label: Why do we need this feature?
+      description: Ideally, explain why a combination of existing features cannot be used instead.
+    validations:
+      required: true
+  - type: textarea
+    id: proposal
+    attributes:
+      label: Describe the proposal.
+      description: Include a detailed description of the feature, with usage examples.
+    validations:
+      required: true
+  - type: textarea
+    id: platform
+    attributes:
+      label: Is the feature specific to an operating system, compiler, or build system version?
+      description: If it is, please specify which versions.
+    validations:
+      required: true
diff --git a/contrib/googletest/.github/ISSUE_TEMPLATE/config.yml b/contrib/googletest/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000000..65170d10a782
--- /dev/null
+++ b/contrib/googletest/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+    - name: Get Help
+      url: https://github.com/google/googletest/discussions
+      about: Please ask and answer questions here.
diff --git a/contrib/googletest/.github/workflows/gtest-ci.yml b/contrib/googletest/.github/workflows/gtest-ci.yml
new file mode 100644
index 000000000000..03a8cc5e287b
--- /dev/null
+++ b/contrib/googletest/.github/workflows/gtest-ci.yml
@@ -0,0 +1,43 @@
+name: ci
+
+on:
+  push:
+  pull_request:
+
+env:
+  BAZEL_CXXOPTS: -std=c++14
+
+jobs:
+  Linux:
+    runs-on: ubuntu-latest
+    steps:
+
+    - uses: actions/checkout@v3
+      with:
+        fetch-depth: 0
+
+    - name: Tests
+      run: bazel test --cxxopt=-std=c++14 --features=external_include_paths --test_output=errors ...
+
+  macOS:
+    runs-on: macos-latest
+    steps:
+
+    - uses: actions/checkout@v3
+      with:
+        fetch-depth: 0
+
+    - name: Tests
+      run:  bazel test --cxxopt=-std=c++14 --features=external_include_paths --test_output=errors ...
+
+
+  Windows:
+    runs-on: windows-latest
+    steps:
+
+    - uses: actions/checkout@v3
+      with:
+        fetch-depth: 0
+
+    - name: Tests
+      run: bazel test --cxxopt=/std:c++14 --features=external_include_paths --test_output=errors ...
diff --git a/contrib/googletest/.gitignore b/contrib/googletest/.gitignore
index 73cdd2c203ff..fede02f65093 100644
--- a/contrib/googletest/.gitignore
+++ b/contrib/googletest/.gitignore
@@ -12,6 +12,7 @@ bazel-testlogs
 *.pyc
 
 # Visual Studio files
+.vs
 *.sdf
 *.opensdf
 *.VC.opendb
@@ -23,6 +24,10 @@ Win32-Release/
 x64-Debug/
 x64-Release/
 
+# VSCode files
+.cache/
+cmake-variants.yaml
+
 # Ignore autoconf / automake files
 Makefile.in
 aclocal.m4
@@ -34,6 +39,7 @@ googletest/m4/ltoptions.m4
 googletest/m4/ltsugar.m4
 googletest/m4/ltversion.m4
 googletest/m4/lt~obsolete.m4
+googlemock/m4
 
 # Ignore generated directories.
 googlemock/fused-src/
@@ -41,6 +47,8 @@ googletest/fused-src/
 
 # macOS files
 .DS_Store
+googletest/.DS_Store
+googletest/xcode/.DS_Store
 
 # Ignore cmake generated directories and files.
 CMakeFiles
@@ -52,3 +60,29 @@ googlemock/CTestTestfile.cmake
 googlemock/Makefile
 googlemock/cmake_install.cmake
 googlemock/gtest
+/bin
+/googlemock/gmock.dir
+/googlemock/gmock_main.dir
+/googlemock/RUN_TESTS.vcxproj.filters
+/googlemock/RUN_TESTS.vcxproj
+/googlemock/INSTALL.vcxproj.filters
+/googlemock/INSTALL.vcxproj
+/googlemock/gmock_main.vcxproj.filters
+/googlemock/gmock_main.vcxproj
+/googlemock/gmock.vcxproj.filters
+/googlemock/gmock.vcxproj
+/googlemock/gmock.sln
+/googlemock/ALL_BUILD.vcxproj.filters
+/googlemock/ALL_BUILD.vcxproj
+/lib
+/Win32
+/ZERO_CHECK.vcxproj.filters
+/ZERO_CHECK.vcxproj
+/RUN_TESTS.vcxproj.filters
+/RUN_TESTS.vcxproj
+/INSTALL.vcxproj.filters
+/INSTALL.vcxproj
+/googletest-distribution.sln
+/CMakeCache.txt
+/ALL_BUILD.vcxproj.filters
+/ALL_BUILD.vcxproj
diff --git a/contrib/googletest/BUILD.bazel b/contrib/googletest/BUILD.bazel
index 41a098579818..b1e3b7fba89a 100644
--- a/contrib/googletest/BUILD.bazel
+++ b/contrib/googletest/BUILD.bazel
@@ -28,22 +28,40 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-# Author: misterg@google.com (Gennadiy Civil)
-#
 #   Bazel Build for Google C++ Testing Framework(Google Test)
 
 package(default_visibility = ["//visibility:public"])
 
 licenses(["notice"])
 
+exports_files(["LICENSE"])
+
+config_setting(
+    name = "qnx",
+    constraint_values = ["@platforms//os:qnx"],
+)
+
 config_setting(
     name = "windows",
-    values = {"cpu": "x64_windows"},
+    constraint_values = ["@platforms//os:windows"],
+)
+
+config_setting(
+    name = "freebsd",
+    constraint_values = ["@platforms//os:freebsd"],
 )
 
 config_setting(
-    name = "windows_msvc",
-    values = {"cpu": "x64_windows_msvc"},
+    name = "openbsd",
+    constraint_values = ["@platforms//os:openbsd"],
+)
+
+config_setting(
+    name = "msvc_compiler",
+    flag_values = {
+        "@bazel_tools//tools/cpp:compiler": "msvc-cl",
+    },
+    visibility = [":__subpackages__"],
 )
 
 config_setting(
@@ -51,6 +69,13 @@ config_setting(
     values = {"define": "absl=1"},
 )
 
+# Library that defines the FRIEND_TEST macro.
+cc_library(
+    name = "gtest_prod",
+    hdrs = ["googletest/include/gtest/gtest_prod.h"],
+    includes = ["googletest/include"],
+)
+
 # Google Test including Google Mock
 cc_library(
     name = "gtest",
@@ -73,21 +98,19 @@ cc_library(
         "googletest/include/gtest/*.h",
         "googlemock/include/gmock/*.h",
     ]),
-    copts = select(
-        {
-            ":windows": [],
-            ":windows_msvc": [],
-            "//conditions:default": ["-pthread"],
-        },
-    ),
-    defines = select(
-        {
-            ":has_absl": [
-                "GTEST_HAS_ABSL=1",
-            ],
-            "//conditions:default": [],
-        },
-    ),
+    copts = select({
+        ":qnx": [],
+        ":windows": [],
+        "//conditions:default": ["-pthread"],
+    }),
+    defines = select({
+        ":has_absl": ["GTEST_HAS_ABSL=1"],
+        "//conditions:default": [],
+    }),
+    features = select({
+        ":windows": ["windows_export_all_symbols"],
+        "//conditions:default": [],
+    }),
     includes = [
         "googlemock",
         "googlemock/include",
@@ -95,32 +118,45 @@ cc_library(
         "googletest/include",
     ],
     linkopts = select({
+        ":qnx": ["-lregex"],
         ":windows": [],
-        ":windows_msvc": [],
-        "//conditions:default": [
+        ":freebsd": [
+            "-lm",
             "-pthread",
         ],
+        ":openbsd": [
+            "-lm",
+            "-pthread",
+        ],
+        "//conditions:default": ["-pthread"],
+    }),
+    deps = select({
+        ":has_absl": [
+            "@com_google_absl//absl/container:flat_hash_set",
+            "@com_google_absl//absl/debugging:failure_signal_handler",
+            "@com_google_absl//absl/debugging:stacktrace",
+            "@com_google_absl//absl/debugging:symbolize",
+            "@com_google_absl//absl/flags:flag",
+            "@com_google_absl//absl/flags:parse",
+            "@com_google_absl//absl/flags:reflection",
+            "@com_google_absl//absl/flags:usage",
+            "@com_google_absl//absl/strings",
+            "@com_google_absl//absl/types:any",
+            "@com_google_absl//absl/types:optional",
+            "@com_google_absl//absl/types:variant",
+            "@com_googlesource_code_re2//:re2",
+        ],
+        "//conditions:default": [],
     }),
-    deps = select(
-        {
-            ":has_absl": [
-                "@com_google_absl//absl/debugging:failure_signal_handler",
-                "@com_google_absl//absl/debugging:stacktrace",
-                "@com_google_absl//absl/debugging:symbolize",
-                "@com_google_absl//absl/strings",
-                "@com_google_absl//absl/types:optional",
-                "@com_google_absl//absl/types:variant",
-            ],
-            "//conditions:default": [],
-        },
-    ),
 )
 
 cc_library(
     name = "gtest_main",
-    srcs = [
-        "googlemock/src/gmock_main.cc",
-    ],
+    srcs = ["googlemock/src/gmock_main.cc"],
+    features = select({
+        ":windows": ["windows_export_all_symbols"],
+        "//conditions:default": [],
+    }),
     deps = [":gtest"],
 )
 
@@ -139,14 +175,18 @@ cc_library(
         "googletest/samples/sample3-inl.h",
         "googletest/samples/sample4.h",
     ],
+    features = select({
+        ":windows": ["windows_export_all_symbols"],
+        "//conditions:default": [],
+    }),
 )
 
 cc_test(
     name = "gtest_samples",
     size = "small",
-    #All Samples except:
-    #sample9 ( main )
-    #sample10 (main and takes a command line option and needs to be separate)
+    # All Samples except:
+    #   sample9 (main)
+    #   sample10 (main and takes a command line option and needs to be separate)
     srcs = [
         "googletest/samples/sample1_unittest.cc",
         "googletest/samples/sample2_unittest.cc",
@@ -157,6 +197,7 @@ cc_test(
         "googletest/samples/sample7_unittest.cc",
         "googletest/samples/sample8_unittest.cc",
     ],
+    linkstatic = 0,
     deps = [
         "gtest_sample_lib",
         ":gtest_main",
@@ -174,7 +215,5 @@ cc_test(
     name = "sample10_unittest",
     size = "small",
     srcs = ["googletest/samples/sample10_unittest.cc"],
-    deps = [
-        ":gtest",
-    ],
+    deps = [":gtest"],
 )
diff --git a/contrib/googletest/CMakeLists.txt b/contrib/googletest/CMakeLists.txt
index d77321165aeb..089ac987fb60 100644
--- a/contrib/googletest/CMakeLists.txt
+++ b/contrib/googletest/CMakeLists.txt
@@ -1,11 +1,14 @@
-cmake_minimum_required(VERSION 2.8.8)
+# Note: CMake support is community-based. The maintainers do not use CMake
+# internally.
 
-if (POLICY CMP0048)
-  cmake_policy(SET CMP0048 NEW)
-endif (POLICY CMP0048)
+cmake_minimum_required(VERSION 3.13)
 
 project(googletest-distribution)
-set(GOOGLETEST_VERSION 1.9.0)
+set(GOOGLETEST_VERSION 1.14.0)
+
+if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX)
+  set(CMAKE_CXX_EXTENSIONS OFF)
+endif()
 
 enable_testing()
 
@@ -15,6 +18,7 @@ include(GNUInstallDirs)
 #Note that googlemock target already builds googletest
 option(BUILD_GMOCK "Builds the googlemock subproject" ON)
 option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON)
+option(GTEST_HAS_ABSL "Use Abseil and RE2. Requires Abseil and RE2 to be separately added to the build." OFF)
 
 if(BUILD_GMOCK)
   add_subdirectory( googlemock )
diff --git a/contrib/googletest/CONTRIBUTING.md b/contrib/googletest/CONTRIBUTING.md
index 846dd8abfb1c..8bed14b2666d 100644
--- a/contrib/googletest/CONTRIBUTING.md
+++ b/contrib/googletest/CONTRIBUTING.md
@@ -2,16 +2,16 @@
 
 ## Contributor License Agreements
 
-We'd love to accept your patches! Before we can take them, we
-have to jump a couple of legal hurdles.
+We'd love to accept your patches! Before we can take them, we have to jump a
+couple of legal hurdles.
 
 Please fill out either the individual or corporate Contributor License Agreement
 (CLA).
 
-  * If you are an individual writing original source code and you're sure you
+*   If you are an individual writing original source code and you're sure you
     own the intellectual property, then you'll need to sign an
     [individual CLA](https://developers.google.com/open-source/cla/individual).
-  * If you work for a company that wants to allow you to contribute your work,
+*   If you work for a company that wants to allow you to contribute your work,
     then you'll need to sign a
     [corporate CLA](https://developers.google.com/open-source/cla/corporate).
 
@@ -20,141 +20,122 @@ instructions for how to sign and return it. Once we receive it, we'll be able to
 accept your pull requests.
 
 ## Are you a Googler?
-If you are a Googler, you can either create an internal change or work on GitHub directly.
 
+If you are a Googler, please make an attempt to submit an internal contribution
+rather than a GitHub Pull Request. If you are not able to submit internally, a
+PR is acceptable as an alternative.
 
 ## Contributing A Patch
 
-1. Submit an issue describing your proposed change to the
-   [issue tracker](https://github.com/google/googletest).
-1. Please don't mix more than one logical change per submittal,
-   because it makes the history hard to follow. If you want to make a
-   change that doesn't have a corresponding issue in the issue
-   tracker, please create one.
-1. Also, coordinate with team members that are listed on the issue in
-   question. This ensures that work isn't being duplicated and
-   communicating your plan early also generally leads to better
-   patches.
-1. If your proposed change is accepted, and you haven't already done so, sign a
-   Contributor License Agreement (see details above).
-1. Fork the desired repo, develop and test your code changes.
-1. Ensure that your code adheres to the existing style in the sample to which
-   you are contributing.
-1. Ensure that your code has an appropriate set of unit tests which all pass.
-1. Submit a pull request.
-
-## The Google Test and Google Mock Communities ##
+1.  Submit an issue describing your proposed change to the
+    [issue tracker](https://github.com/google/googletest/issues).
+2.  Please don't mix more than one logical change per submittal, because it
+    makes the history hard to follow. If you want to make a change that doesn't
+    have a corresponding issue in the issue tracker, please create one.
+3.  Also, coordinate with team members that are listed on the issue in question.
+    This ensures that work isn't being duplicated and communicating your plan
+    early also generally leads to better patches.
+4.  If your proposed change is accepted, and you haven't already done so, sign a
+    Contributor License Agreement
+    ([see details above](#contributor-license-agreements)).
+5.  Fork the desired repo, develop and test your code changes.
+6.  Ensure that your code adheres to the existing style in the sample to which
+    you are contributing.
+7.  Ensure that your code has an appropriate set of unit tests which all pass.
+8.  Submit a pull request.
+
+## The Google Test and Google Mock Communities
 
 The Google Test community exists primarily through the
-[discussion group](http://groups.google.com/group/googletestframework)
-and the GitHub repository.
-Likewise, the Google Mock community exists primarily through their own
-[discussion group](http://groups.google.com/group/googlemock).
-You are definitely encouraged to contribute to the
-discussion and you can also help us to keep the effectiveness of the
-group high by following and promoting the guidelines listed here.
-
-### Please Be Friendly ###
-
-Showing courtesy and respect to others is a vital part of the Google
-culture, and we strongly encourage everyone participating in Google
-Test development to join us in accepting nothing less. Of course,
-being courteous is not the same as failing to constructively disagree
-with each other, but it does mean that we should be respectful of each
-other when enumerating the 42 technical reasons that a particular
*** 162876 LINES SKIPPED ***