Commit Graph

4429 Commits

Author SHA1 Message Date
Derek Mauro
9ff2450a56 Update GoogleTest Bazel quickstart for Bzlmod
PiperOrigin-RevId: 652824490
Change-Id: I5e6f57004708e7fa62abb454db9bae81fa265c83
2024-07-16 06:58:45 -07:00
Derek Mauro
b62593aceb Update main branch to reflect the release of 1.15.0
PiperOrigin-RevId: 652824317
Change-Id: I39085d9451405c3decb462a0b4682added365d17
2024-07-16 06:57:43 -07:00
Abseil Team
d49a665484 Use matcher's description in AllOf if matcher has no explanation.
PiperOrigin-RevId: 652798234
Change-Id: I8e92248a2d9faf2a5719fe220145ea563acc14ff
2024-07-16 05:22:42 -07:00
Abseil Team
417158b8bc Use matcher's description in AllOf if matcher has no explanation.
PiperOrigin-RevId: 652634229
Change-Id: I5fd7eaef4db3dea3d4142e1fb5fc97e46f654358
2024-07-15 16:40:10 -07:00
Derek Mauro
7321f950df Update dependency versions in preparation for release
PiperOrigin-RevId: 652479800
Change-Id: I71574e7dc2ea2e9a2f3071aebbbf0e6b5ce32a35
2024-07-15 07:51:06 -07:00
Derek Mauro
4b21f1abdd README.md: Remove outdated notes about continuous integration and
documentation

PiperOrigin-RevId: 651816538
Change-Id: I3c85b4a26aff8277c627b99b1c5805bad0d29df6
2024-07-12 10:31:17 -07:00
Derek Mauro
b4aaf97d8f Workaround GCC 12 -Wrestrict false-positive
Suggested workaround from 751760ad54

Fixes #4570

PiperOrigin-RevId: 651044944
Change-Id: I21f099a15dd3182d335a7891d99b9b1293e5c53e
2024-07-10 09:15:21 -07:00
Derek Mauro
3ef16ef8b3 Fix the documentation that erroneously says you can use short versions
of help flags

Fixes #4564

PiperOrigin-RevId: 650730047
Change-Id: I3a52aca490338066c607e34ab20c827bfde5090d
2024-07-09 12:59:38 -07:00
Abseil Team
34ad51b3dc Add a bounds check to protect against an empty vector from GetArgs(), which
can cause an out of bounds access in GetCurrentExecutableName(). One way this
can happen is if the user forgets to call InitGoogleTest().

PiperOrigin-RevId: 647740658
Change-Id: Id87692aa3d515b8ae0836e474be477d2aafa3871
2024-06-28 11:12:56 -07:00
Abseil Team
1d17ea141d Skip the predicate on SIGSEGV in death-test on Android builds with API level <= 21.
PiperOrigin-RevId: 643076477
Change-Id: Id9486b7d73c3b17851df1eaf8f5ab2085238bf75
2024-06-13 12:00:01 -07:00
Abseil Team
a7f443b80b Mention the optional third argument to TYPED_TEST_SUITE
PiperOrigin-RevId: 637896001
Change-Id: Ia3a61ceec4b842e864a0cdfad13e9897bf0ecaaa
2024-05-28 07:42:39 -07:00
Derek Mauro
305e5a238b Update GoogleTest CI Docker image to use Clang 19, GCC 14, and CMake 3.29.3
PiperOrigin-RevId: 636977286
Change-Id: Id9e09398a991c74c2137672948a1eb7dd2d96596
2024-05-24 11:13:43 -07:00
Derek Mauro
9b4993ca7d Change GoogleTest flag removal to not read beyond the end of the array
to the NULL terminator.  #4532 says ASAN complains about this on some
platforms, although it is not clear if ASAN or the platform implementation
is incorrect about accessing the terminating NULL.

Fixes #4532

PiperOrigin-RevId: 635886009
Change-Id: Ibb4237055488c895b1dd09145ab979347bb9a390
2024-05-21 12:08:38 -07:00
Abseil Team
c8393f8554 Print mismatches for UnorderedElements() of different sizes.
Changes the behavior of UnorderedElements()/UnorderedElementsAreArray() to print items-without-matchers and matchers-without-items in the case where the actual and expected are different sizes.

PiperOrigin-RevId: 635451316
Change-Id: I2181bb28a14c14cdb577af9268d403e12e942bea
2024-05-20 07:36:47 -07:00
Abseil Team
33af80a883 Make EXPECT_DEATH_IF_SUPPORTED work with matchers
If death tests were not supported the macro would try
to force the second parameter as a string. The second
parameter can be a matcher or a string.

PiperOrigin-RevId: 633199517
Change-Id: If5e71b4be0b569adb273eb4960202197bb264a8f
2024-05-13 07:16:53 -07:00
Copybara-Service
fa6de7f438 Merge pull request #4527 from abhina-sree:abhina/add_zos
PiperOrigin-RevId: 631167807
Change-Id: I563883341972bbb82c7407ebf3755d64317b84fc
2024-05-06 13:31:42 -07:00
Abseil Team
2d684efe87 Use std::forward on GoogleTest matcher arguments
This prevents a diagnostic from triggering for a missing std::move.

PiperOrigin-RevId: 631094640
Change-Id: I4ab33964c65f41240fb54a6bf7d0261836fd78e7
2024-05-06 09:48:55 -07:00
Copybara-Service
2d16ed055d Merge pull request #3991 from pgroke-dt:default-enable-thread-support-for-Solaris-AIX-zOS
PiperOrigin-RevId: 630402377
Change-Id: Ie9cafffaa49c2c02220981d665daa672164d35d8
2024-05-03 08:51:23 -07:00
Abseil Team
2954cb8d87 Add example using EXPECT statement in custom matcher
`EXPECT_...` statements can be used inside matcher definitions – this is an important option that is glossed over in this documentation. Users should definitely be aware of this option, since writing custom messages to the `result_listener` can be very cumbersome (and unnecessary) sometimes.

This change adds a relevant example and includes the associated error message it provides on failure.

PiperOrigin-RevId: 630206661
Change-Id: Idee00ba77ce3c1245597aa082f9cd0efff16aceb
2024-05-02 16:07:12 -07:00
Abhina Sreeskantharajan
5035ef3473 add zos for death test support 2024-05-02 09:54:31 -04:00
Paul Groke
fbc93e61c4
Merge branch 'main' into default-enable-thread-support-for-Solaris-AIX-zOS 2024-05-02 13:27:54 +02:00
Abseil Team
d83fee138a Adds "IWYU pragma: export" to gtest-param-util.h
PiperOrigin-RevId: 628105419
Change-Id: I364e8089b62050c44059e208b610e324eb5a656d
2024-04-25 09:50:29 -07:00
Derek Mauro
5a37b517ad Use [[maybe_unused]] when it is available to avoid
-Wused-but-marked-unused warnings

PiperOrigin-RevId: 625430612
Change-Id: Ia9d2e47984e1e6f91966afae8a6750119ae69446
2024-04-16 13:16:40 -07:00
Krzysztof Kosiński
5197b1a8e6 Modify example in the primer to match Testing FAQ.
The CtorVsSetUp section of the FAQ says that constructors and destructors should be preferred over SetUp() and TearDown(), because they will automatically chain up to the fixture's base class, whereas for methods the user must remember to add the chaining manually.

PiperOrigin-RevId: 624273474
Change-Id: Ida41aae193d417eaf996587c7ae1a0099a8cab32
2024-04-12 13:19:21 -07:00
Abseil Team
b1a777f319 Fix https://github.com/google/googletest/issues/4423
PiperOrigin-RevId: 623407029
Change-Id: I3559f11e1c18a4f151d521c6ac115c358a11b40c
2024-04-10 01:03:53 -07:00
Copybara-Service
3d73dee972 Merge pull request #4508 from davidmatson:addJsonSkipped
PiperOrigin-RevId: 622929007
Change-Id: Ifaf5a701baee74503e6845f32ebc27425882e950
2024-04-08 13:02:42 -07:00
Abseil Team
f10e11fb27 No external change
PiperOrigin-RevId: 622203227
Change-Id: Ic3c24edf917dbda7b02c6ab8ce695398a436dc4c
2024-04-05 09:39:59 -07:00
Lawrence Wolf-Sonkin
0af976647f [gtest] Use std::index_sequence and friends instead of rolling our own
* Applies for `std::index_sequence`, `std::make_index_sequence`, and `std::index_sequence_for` replacing `IndexSequence`, `MakeIndexSequence` and IndexSequenceFor`
* Also deleted implementation helper `DoubleSequence`
* The standard interfaces [have been in the standard library since C++14](https://en.cppreference.com/w/cpp/utility/integer_sequence), which [is the minimum supported C++ version by Google Test](https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md)

PiperOrigin-RevId: 621939977
Change-Id: Id264266f08da66c0fa2a6e6fbb8f86fd3cb3a421
2024-04-04 12:38:42 -07:00
Copybara-Service
61db1e1740 Merge pull request #4505 from to01z:add-winapi-partition-games-support
PiperOrigin-RevId: 621631167
Change-Id: I0790f7082ce3c20fef92958c820d40ec854fe91d
2024-04-03 13:59:49 -07:00
Derek Mauro
d3a29ff624 Fix a race condition between the Watcher thread and the main thread
during program exit

A race condition exist between the Watcher thread and main(). A case
was found where the Watcher thread does not get execution time before
the main function returns and calls atexit(). At that point the
Watcher thread started runing tls_init() code while the main thread
was shutting down. This resulted in rare crashes and deadlocks.

Fixes #4493
Closes #4494

PiperOrigin-RevId: 621619768
Change-Id: I66f00d8f0f3c37f9937c6d13890f7fa10038256d
2024-04-03 13:21:58 -07:00
David Matson
f16770d63d Add skipped messages to JSON output (fixes #4507).
Fix the gap between JSON and XML output.
2024-04-03 08:49:07 -07:00
Derek Mauro
ec7b38672c Delete the unofficial GitHub actions tests.
We do not look at these.

Close #4509

PiperOrigin-RevId: 621511191
Change-Id: Icbd3fe0a18444e0888bbec61345c6a957d8899d6
2024-04-03 07:06:06 -07:00
Copybara-Service
a2f106c7e2 Merge pull request #4503 from davidmatson:fixTypo
PiperOrigin-RevId: 621334548
Change-Id: I19747f832b51cc5bbb0231bbd9416a8373e4aa77
2024-04-02 16:50:56 -07:00
Copybara-Service
c4fec74514 Merge pull request #4502 from davidmatson:fixStreamHelpTextOs
PiperOrigin-RevId: 621172364
Change-Id: Ibaacb17c60b5ee0e58c3689b79aa2cd6b49dc1c4
2024-04-02 07:53:31 -07:00
Abseil Team
77afe8e014 Automated Code Change
PiperOrigin-RevId: 620448229
Change-Id: I487a0d8a8f89ebe82c9ec66fbb60cbe2203188c9
2024-03-30 01:54:42 -07:00
Troels Gram
a7678dd0db Revert changes to googletest-port-test.cc
GoogleTest's tests do not currently compile when WINAPI_FAMILY is set to
anything else than WINAPI_FAMILY_DESKTOP_APP on Windows (if WINAPI_FAMILY is not
set explicitly, it will default to WINAPI_FAMILY_DESKTOP_APP).
2024-03-28 22:05:08 -07:00
David Matson
f7a6bba24c Fix typo in comment. 2024-03-28 17:34:21 -07:00
David Matson
53ee0fc0b2 Fix help text for stream_result_to flag.
Support for Mac was previously added, in addition to Linux. Fix the help
text to match the code.
2024-03-28 16:59:37 -07:00
Troels Gram
f1269cc220 Add support for compiling GoogleTest for Xbox
Support for Xbox platforms, requires the code to support compilation with the
WINAPI_FAMILY_GAMES subset of the Win32 API.

- Add support for WINAPI_FAMILY_GAMES to enable GTEST_OS_WINDOWS_GAMES platform.
- Disable stream redirection (GTEST_HAS_STREAM_REDIRECTION = 0) and colored TTY
  printing for GTEST_OS_WINDOWS_GAMES platform. Both features currently require
  Win32 functions that don't exist in the WINAPI_FAMILY_GAMES subset.

Misc fixes:
- gtest-port.cc: Move GTEST_DISABLE_MSC_DEPRECATED_PUSH_ into
  GTEST_HAS_STREAM_REDIRECTION conditional section where the corresponding
  GTEST_DISABLE_MSC_DEPRECATED_POP_ is located.
- googletest-port-test.cc: Switch stream redirection tests to be conditional on
  GTEST_HAS_STREAM_REDIRECTION instead of !defined(GTEST_OS_WINDOWS_MOBILE).
2024-03-23 22:53:35 -07:00
Copybara-Service
eff443c6ef Merge pull request #4490 from memdo:main
PiperOrigin-RevId: 616931521
Change-Id: Iffbb24e3f9add4e7acf8f1988a03afc8628b0733
2024-03-18 13:34:04 -07:00
Mustafa Berkay Düzenli
a1a608348e Add colored output support for Alacritty 2024-03-16 00:28:30 +03:00
Abseil Team
c231e6f5b1 Add test for move-only type in Action signature
PiperOrigin-RevId: 616031018
Change-Id: Ie724f9562174387eab866a824d28106f344c558d
2024-03-15 00:00:12 -07:00
Daniel Cheng
b479e7a3c1 Guard Abseil flags usage in googlemock with GTEST_NO_ABSL_FLAGS.
googletest avoids using the Abseil flag library, so googlemock should
do the same for consistency.

PiperOrigin-RevId: 614713968
Change-Id: I0925804b8644ddc6fd3ad07a320d94829b11bb8e
2024-03-11 10:31:56 -07:00
Abseil Team
e1a38bc370 Reland: Optimize Google Test process startup
Google Test performs hidden test registration during process
startup. For test binaries that contain a large number of tests, this
registration can be costly. In this CL, we reduce the overhead of
registration via several tactics:

- Treat CodeLocation and FilePath as value types, using std::move to
  pass them around.
- Reduce string copies in various places by either passing std::string
  values via std::move, or passing const-refs to std::string instances.
- Use std::to_string to stringify an int in DefaultParamName rather than
  a std::stringstream.
- Pull some std::string instances out of nested loops in
  ParameterizedTestSuiteInfo::RegisterTests so as to reuse some
  allocations, and replace stringstream with ordinary string appends.
- Use std::unordered_map in UnitTestImpl::GetTestSuite and
  ParameterizedTestSuiteRegistry::GetTestSuitePatternHolder to spend a
  little memory to turn O(N) lookups into constant time lookpus.
- Use range-based for loops in a few places.
- Use emplace-ish methods to add to containers where appropriate.

All together, these changes reduce the overall runtime of a series of 50
death tests in a single Chromium test executable by ~38% due to the
fact that the registration costs are paid in every death test's child
process.

PiperOrigin-RevId: 613833210
Change-Id: I51a262a770edff98ffa1e3b60c4d78a8308f9a9f
2024-03-07 23:53:47 -08:00
Abseil Team
31993dfa6b Revert Optimize Google Test process startup
PiperOrigin-RevId: 612878184
Change-Id: Ia8e23da1ad09c2e0ce635a855f0c250f368f6878
2024-03-05 09:59:16 -08:00
Abseil Team
b9059aaa4c Optimize Google Test process startup
Google Test performs hidden test registration during process
startup. For test binaries that contain a large number of tests, this
registration can be costly. In this CL, we reduce the overhead of
registration via several tactics:

- Treat CodeLocation and FilePath as value types, using std::move to
  pass them around.
- Reduce string copies in various places by either passing std::string
  values via std::move, or passing const-refs to std::string instances.
- Use std::to_string to stringify an int in DefaultParamName rather than
  a std::stringstream.
- Pull some std::string instances out of nested loops in
  ParameterizedTestSuiteInfo::RegisterTests so as to reuse some
  allocations, and replace stringstream with ordinary string appends.
- Use std::unordered_map in UnitTestImpl::GetTestSuite and
  ParameterizedTestSuiteRegistry::GetTestSuitePatternHolder to spend a
  little memory to turn O(N) lookups into constant time lookpus.
- Use range-based for loops in various places.
- Use emplace-ish methods to add to containers where appropriate.

All together, these changes reduce the overall runtime of a series of 50
death tests in a single Chromium test executable by ~38% due to the
fact that the registration costs are paid in every death test's child
process.

PiperOrigin-RevId: 612763676
Change-Id: I1f46e012ccb9004c009e1027e4f7c38780ffb9e2
2024-03-05 02:37:09 -08:00
Copybara-Service
926f681a90 Merge pull request #4466 from danfabo:fix-fetch-content-uses-gtest
PiperOrigin-RevId: 612560830
Change-Id: Ib639603d34258909cf0e0d6fceb297dd8c983d54
2024-03-04 13:15:25 -08:00
Abseil Team
e4fdb87e76 Accept one-shot callables in InvokeArgument.
PiperOrigin-RevId: 611467660
Change-Id: Ic89ffc986141bee61f835cb60088aee92eb8bad9
2024-02-29 07:42:26 -08:00
Copybara-Service
e15c5a51b8 Merge pull request #4477 from tmiguelf:feature/soup_cleanup
PiperOrigin-RevId: 611133343
Change-Id: Ieef806f51fcbc2877805dae415f76d03547b8dfa
2024-02-28 09:48:31 -08:00
Abseil Team
3b6d48e8d5 Reland 9756ee7cba
Since Fuchsia engineers rarely work within this repo, initialize a lightweight fake @fuchsia_sdk repo rather than distributing the Fuchsia SDK here.

Tested locally via `bazel query --[no]enable_bzlmod "deps(set(//googletest/test:gtest_all_test))"` (#4472)

PiperOrigin-RevId: 610826859
Change-Id: I7d41b1dbe9e7f133fe535d7337dc5bff5bf97d3a
2024-02-27 11:54:30 -08:00