This directory contains source code for Google C++ Testing and Mocking
Frameworks.

GoogleTest promotes "live-at-head" approach, recommending regularly
updating to the latest commit instead of using tagged releases.
However, to reduce maintenance burden, we are updating bundled
GoogleTest copy only occasionally, and prefer to use the latest
release unless it is severely outdated or does not contain
required features/bugfixes.

The code has been copied verbatim from the GoogleTest repository
(https://github.com/google/googletest). The currently bundled code
is from releave 1.17.0 which needs to be manually 
synchronized with the reference in python_packaging/sample_restraint/CMakeLists.txt

No files were omitted or changed, with a few exceptions listed below.

This README.Gromacs file is new, of course.

Made cmake_minimum_required set to same version as toplevel and inherited from it.

Conditional compilation based on __clang_analyzer__ is used to work
around reports from the clang static analyzer in
googletest/include/gtest/gtest.h,
googletest/include/gtest/gtest-matchers.h,
googlemock/include/gmock/gmock-matchers.h, and
googlemock/include/gmock/gmock-spec-builders.h.

A clang-tidy suppression has been added to
googletest/include/gtest/internal/gtest-internal.h.

A warning suppression was added to 
googletest/include/gtest/gtest-matchers.h
to silence the warning from GCC 12 arising from the use of 
the `_` wildcard matcher.

Include order was changed in
googletest/googlemock/CMakeLists.txt
to always prefer bundled headers over anything available
in system-wide direcories.

TYPED_TEST_SUITE_WITH_NAME was added in order to work around a
limitation of clang-19, since GROMACS so far does not use the
three-argument variant of TYPED_TEST_SUITE. Likewise
INSTANTIATE_TYPED_TEST_SUITE_P. See comments inline for details.

Some custom GoogleTest object-hierarchy casts were used in
gtest-printers.h for casts of plain values. Replaced these with
explicit casts to avoid warnings.

The implicit-float-size-conversion warning changed name and
implementation before oneAPI 2025.3, so that is now omitted.
