Commit Graph
100 Commits
Author SHA1 Message Date
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
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
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
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
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
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
Abseil Team f10e11fb27 No external change
PiperOrigin-RevId: 622203227
Change-Id: Ic3c24edf917dbda7b02c6ab8ce695398a436dc4c
2024-04-05 09:39:59 -07:00
Abseil Team 77afe8e014 Automated Code Change
PiperOrigin-RevId: 620448229
Change-Id: I487a0d8a8f89ebe82c9ec66fbb60cbe2203188c9
2024-03-30 01:54:42 -07: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
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
Abseil Team e4fdb87e76 Accept one-shot callables in InvokeArgument.
PiperOrigin-RevId: 611467660
Change-Id: Ic89ffc986141bee61f835cb60088aee92eb8bad9
2024-02-29 07:42:26 -08:00
Abseil Team 3b6d48e8d5 Reland https://github.com/google/googletest/commit/9756ee7cbaef1b6652065616ab832810a6032bbf
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
Abseil Team 814ba36338 Make sure that current_test_suite and current_test_info are mutex-protected while writing for thread-safety.
PiperOrigin-RevId: 610810340
Change-Id: I37f33510373dff04b8e9c9e8a9f32d30fcce46ff
2024-02-27 11:04:37 -08:00
Abseil Team 9d43b27f7a Revert incorrect update.
PiperOrigin-RevId: 609387046
Change-Id: I03e42c39011fc7e9715f896591a44ebede1933b2
2024-02-22 08:48:24 -08:00
Abseil Team 5df0241ea4 gtest.h: add IWYU export pragmas
PiperOrigin-RevId: 607136416
Change-Id: Ia29dd3156d4d455194745e58501eaee9d77045a1
2024-02-14 16:11:33 -08:00
Abseil Team 9756ee7cba Support Fuchsia target builds.
The Fuchsia team has been using either fork branches
(https://fuchsia.googlesource.com/third_
party/github.com/google/googletest/+/refs/heads/sandbox/fuchsia_bazel_sdk)
or patch files
(https://cs.opensource.google/fuchsia/fuchsia/+/main:build/bazel/patches/googletest/fuchsia-support.bundle)
to support googletest-based tests that run against a Fuchsia target device.

As our SDK is maturing and @platforms//os:fuchsia constraint has been added
for a while now, upstream Fuchsia gtest support to reduce technical debt and
overhead.

This change is noop for non-fuchsia platform builds.

PiperOrigin-RevId: 606843739
Change-Id: I61e0eb9c641f288d7ae57354fc0b484fce013223
2024-02-13 20:56:40 -08:00
Abseil Team 6eb225cb88 Add anchor for expectation ordering note
PiperOrigin-RevId: 606736565
Change-Id: Ifad0b34e1deeec1374377d733375c6210896d0d3
2024-02-13 13:55:04 -08:00
Abseil Team 96519a4019 Use _Exit instead of _exit in GoogleTest
_Exit is standardized since C99, whereas _exit is POSIX-only.

Fixes: #4447
PiperOrigin-RevId: 605000352
Change-Id: Ibfa84edaa043bd003a21383e8148bf45be7217f6
2024-02-07 09:01:25 -08:00
Abseil Team 64be1c79fa Destroy installed environments in normal code, not in static teardown.
Destruction in static teardown causes issues for Environments which own threads and try to join them in their destruction.

This may be a breaking change for users who call RUN_ALL_TESTS multiple times in the same main function if they also install environments, or those who access registered environments after RUN_ALL_TESTS.

The easiest fix is to only call RUN_ALL_TESTS once as the last line of the main function. Another potential fix is to re-register new instances of the Environment once before each call to RUN_ALL_TESTS.

PiperOrigin-RevId: 604800795
Change-Id: I37c44d4aca4a238052649f45a4b6b9cfb5355b71
2024-02-06 16:31:00 -08:00
Abseil Team 456574145c Modifications to improve portability of googletest tests.
PiperOrigin-RevId: 603034597
Change-Id: I4d716ed67f80f41075bfa266d975460d2ac27eb6
2024-01-31 06:51:14 -08:00
Abseil Team 6fdb4c303f Do not emit stack traces for messages generated by SUCCEED()
Stack traces in assertion failures are an extremely useful tool for
developers tasked with investigating failing tests. It's difficult to
understate this. In contrast to ordinary test assertions (e.g.,
ASSERT_TRUE or EXPECT_FALSE), SUCCEED() is a developer-authored
directive that indicates a success codepath. In fact, the documentation
states that this directive doesn't generate any output. Generating stack
traces for uses of SUCCEED() is wasted work since they are never
printed. If this were to change one day in the future, they still would
not be useful since any emitted message would include the file and line
number where SUCCEED was used. In addition to being noise in the output
in this case, symbolization of stack traces is not free. In some
Chromium configurations, symbolization for use of SUCCEED() can incur a
cost in excess of 25 seconds for a test that otherwise takes 0-1ms; see
https://crbug.com/1517343.

In this CL, we suppress generation and emission of stack traces for
kSuccess messages to reduce the overhead of SUCCEED().

PiperOrigin-RevId: 602832162
Change-Id: I557dd6a1d3e6ed6562daf727d69fd01fe914827b
2024-01-30 13:55:46 -08:00
Abseil Team 563ebf1769 Fix double-promotion warnings in AppropriateResolution()
When -Wdouble-promotion is enabled, the templatized function AppropriateResolution fails to compile since its float instantiation promotes floats to doubles when doing arithmetic and comparisons. Add static casts to resolve these errors.

PiperOrigin-RevId: 600776333
Change-Id: Ia530b4bbca6ddce27caf0a817196d87efef711cb
2024-01-23 07:02:53 -08:00
Abseil Team 96cd50c082 If GTEST_NO_ABSL_FLAGS is #defined, then the Abseil flag library
will not be used by googletest, even if GTEST_HAS_ABSL is #defined.

PiperOrigin-RevId: 599625032
Change-Id: Ieb994a15683dec89e88578120071eca8ac9fead1
2024-01-18 14:24:26 -08:00
Abseil Team f6f920d2ba Make posix::FileNo available under !GTEST_HAS_FILE_SYSTEM
This enables automatic color output without filesystem support, as that only requires testing to see if the output is a terminal.

Fixes: #4439
PiperOrigin-RevId: 598929397
Change-Id: Idca7490e6e090951a78cd1cdd710f41d756a68b4
2024-01-16 12:56:41 -08:00
Abseil Team cfe5076a8b Do not emit stack traces for messages generated by GTEST_SKIP()
Stack traces in assertion failures are an extremely useful tool for
developers tasked with investigating failing tests. It's difficult to
understate this. In contrast to ordinary test assertions (e.g.,
ASSERT_TRUE or EXPECT_FALSE), GTEST_SKIP is a developer-authored
directive to skip one or more tests. Stack traces emitted in skip
messages do not give the developer useful information, as the skip
message itself contains the code location where GTEST_SKIP was used. In
addition to being noise in the output, symbolization of stack traces is
not free. In some Chromium configurations, symbolization in a skipped
test can incur a cost in excess of 25 seconds for a test that otherwise
takes 0-1ms; see https://crbug.com/1517343#c9.

In this CL, we suppress generation and emission of stack traces for
kSkip messages to reduce the output noise and overhead of GTEST_SKIP().

PiperOrigin-RevId: 598899010
Change-Id: I46926fed452c8d7edcb3d636d8fed42cb6c0a9e9
2024-01-16 11:19:24 -08:00
Abseil Team 7f409cb3c0 Add a note about argv requiring NULL termination.
Fixes: #4434
PiperOrigin-RevId: 596960654
Change-Id: I1f70cc0801764fe0328030c46254f82eb9893a49
2024-01-09 09:39:16 -08:00
Abseil Team dddb219c3e Accept move-only callables in InvokeArguments
PiperOrigin-RevId: 594223533
Change-Id: I491fae7d851d4e0df07fb3627416949071fec8d6
2023-12-28 04:04:00 -08:00
Abseil Team 96eadf659f Minor documentation correction.
PiperOrigin-RevId: 593126348
Change-Id: I78e12ab5dd2e5acc69b21250bdb04e62990b6309
2023-12-22 08:51:16 -08:00
Abseil Team 8495449f07 Fix data race in leak detection
TSAN identified a data race between updates to the states_ map (ex. in Mock::UnregisterLocked) and the iteration done in this destructor. Writes to the map use g_gmock_mutex, but the destructor does not acquire it. Acquiring the lock here fixes the data race.

It should only be possible to trigger this TSAN finding in cases where a mock object is deleted by a thread other than the main thread.

PiperOrigin-RevId: 591935393
Change-Id: I9dd1faa40058d78e165a91333346514b4b73365c
2023-12-18 10:14:49 -08:00
Abseil Team 530d5c8c84 Add FAIL_AT macro variant of FAIL matching ADD_FAILURE, ADD_FAILURE_AT
`FAIL_AT` is shorthand for `GTEST_FAIL_AT` like `FAIL` is for `GTEST_FAIL`.

PiperOrigin-RevId: 590393926
Change-Id: I68263af8fa2f98ca0bbef509d475c84e22068018
2023-12-12 17:40:45 -08:00
Abseil Team 76bb2afb8b Implement testing::Rethrow to throw exceptions more easily via std::exception_ptr
We avoid overloading or specializing `testing::Throw` as this is fundamentally a different operation than throwing the object.
However, we disable the corresponding overload of `testing::Throw` to prevent likely mistakes in the usage.

Fixes: #4412
PiperOrigin-RevId: 585745469
Change-Id: I03bb585427ce51983d914e88f2bf65a13545c920
2023-11-27 13:32:49 -08:00
Abseil Team 5b7fd63d6d Export gmock-spec-builders.
gmock.h is the umbrella header to be used for rest of the library, and it also
enables users to export certain details. This wasn't working for some interfaces
like EXPECT_CALL because gmock-spec-builders wasn't explicitly exported.

PiperOrigin-RevId: 576966583
Change-Id: Ie050430cf11384977cd95f4ed6e73235d6857057
2023-10-26 13:15:23 -07:00
Abseil Team 116b7e5528 Improve error message for invalid parameterized test names.
PiperOrigin-RevId: 574992011
Change-Id: Id6030a9e5f317966186cc48ef2c09ad97fa15d3e
2023-10-19 13:55:15 -07:00
Abseil Team 9bb354fa83 s/::testing::/testing::/ in test documentation outside of using statements to align with best practice
PiperOrigin-RevId: 574377544
Change-Id: I0ca69a3bf14cc1aab75784eba220a48bf50cef04
2023-10-17 23:50:43 -07:00
Abseil Team 2dd1c13195 Fix RE::Init for Android and NetBSD.
This is a somewhat recent change for Android (I'm not clear on whether it's a recent change for NetBSD, or if Android was just very behind on its implementation), so while this worked fine as recently as API 32 devices, REG_GNU is required for API 34 (API 33 untested).

A test actually caught this, but https://github.com/google/googletest/pull/4334 "fixed" the test rather than the implementation. This CL also reverts the test change so it can catch the failure.

PiperOrigin-RevId: 571126374
Change-Id: I420dfcedea58f2c8b605f699515d744006c0a9d9
2023-10-05 14:13:04 -07:00
Abseil Team e47544ad31 Resolve -Wundef triggering on GTEST_CREATE_SHARED_LIBRARY and GTEST_LINKED_AS_SHARED_LIBRARY with shared libraries in GoogleTest
Fixes: #4372
PiperOrigin-RevId: 568327612
Change-Id: Ifc47f1a2a2648c29858a22966331557cc928cc47
2023-09-25 14:38:01 -07:00
Abseil Team e40661d89b Update C++ feature detection in gtest-port.h to rely on feature test macros where possible.
This also avoids conflating C++ language versions with standard library versions, which don't always align.

PiperOrigin-RevId: 567662118
Change-Id: I7c023bd043c81c540c9430eaeb7b450feaadb206
2023-09-22 10:46:16 -07:00
Abseil Team 80306a7b5e Use absl::HasAbslStringify, instead of the internal version.
PiperOrigin-RevId: 567349341
Change-Id: I35f2679901aecbe9cb90d2e78ff28c5e383e7257
2023-09-21 10:32:25 -07:00
Abseil Team adc5145386 Update code with IWYU annotations.
PiperOrigin-RevId: 566424331
Change-Id: I0e16d979b9d79643c882c5082e154842983a5317
2023-09-18 15:04:08 -07:00
Abseil Team 8be20cce69 Use the empty() method to check for emptiness instead of length()
PiperOrigin-RevId: 566247438
Change-Id: I8199ef53310a057abbe23f8f4295507b60d6b707
2023-09-18 03:20:19 -07:00
Abseil Team 762d3a7f66 Clean up typos: Exhaused => Exhausted
PiperOrigin-RevId: 558801066
Change-Id: Ia225d12014748db87639414f4c8c28a0d0e9e489
2023-08-21 08:47:54 -07:00
Abseil Team f42da0e443 Improve error message for invalid parameterized test names.
PiperOrigin-RevId: 557910190
Change-Id: Ia965a6c96e4cc5997d8af2611abc62c42e81653e
2023-08-17 12:56:29 -07:00
Abseil Team 7e33b6a1c4 Specify SetUpTestSuite is required to be public.
PiperOrigin-RevId: 555578256
Change-Id: I9366fc99ae953c29e468fcddb4be203c9c05661b
2023-08-10 11:27:05 -07:00
Abseil Team c875c4e224 Adjust includes to use <> instead of "", consistent with quickstart pages.
Right now, gtest documentation uses different #include syntax. The quickstart
pages (e.g., http://google.github.io/googletest/quickstart-bazel.html#create-and-run-a-binary) are checked in with `#include <gtest/gtest.h>` However, other
documentation (such as the primer) uses `#include "gtest/gtest.h"` (e.g.,
https://google.github.io/googletest/primer.html#writing-the-main-function).

PiperOrigin-RevId: 551878641
Change-Id: Iab93cc1da3ef4870a07b624071b75d6e9d3568c1
2023-07-28 09:51:41 -07:00
Abseil Team 01e18376ef Make AbslStringify usage public in GoogleTest
Fixes #4314

PiperOrigin-RevId: 549986457
Change-Id: Iff74f02ab1c106696f288540e9c623d56b76e3f7
2023-07-21 10:36:25 -07:00
Abseil Team 4a1a299b20 Update docstring of PrintWithFallback(..) to reflect the recently changed ordering.
PiperOrigin-RevId: 546373360
Change-Id: I2538b45d8c7710592071cc352da6771480c324e6
2023-07-07 13:43:30 -07:00
Abseil Team 1f531be3a1 Make GoogleTest handle SEH exceptions before stack unwinding rather than afterward
This ensure the erroring stack frame is visible and accessible when the handler is invoked.

Fixes #4298

PiperOrigin-RevId: 544692549
Change-Id: Ia165a8c293e8edc820da5f5ad4416546fffe2493
2023-06-30 10:32:57 -07:00
Abseil Team 251e720391 Change ::testing to testing in Testing Reference doc
PiperOrigin-RevId: 544466397
Change-Id: Icb4d5fae38361cd75d47f908886831696eb2b1c9
2023-06-29 14:40:26 -07:00
Abseil Team 687c589949 Print stack traces on SEH exceptions on Windows
Also tidies up a couple of things:
- Prevent handling of stack overflows, which cannot be done safely
- `exception_code` is a macro, so we rename it
- The `std::string` heap allocation was unnecessary

Fixes #4298

PiperOrigin-RevId: 544117790
Change-Id: I8ba61f87119d5fbdb1f653700d9867ca6f8c28ce
2023-06-28 11:45:07 -07:00
Abseil Team f269e15c5c Resolve an issue where the resolution of operator<< overloads would attempt to instantiate the incomplete testing::internal::Secret type.
PiperOrigin-RevId: 543799815
Change-Id: Ic0a4f48d825bef26cb8cc74d8a0117b3a5ef3f14
2023-06-27 11:17:00 -07:00
Abseil Team ec4fed9321 Update code examples in the gMock Cookbook following C++ best practices.
PiperOrigin-RevId: 542564354
Change-Id: Ia3307f13f845c662c88fb7303112f41ef8c56b28
2023-06-22 08:15:15 -07:00
Abseil Team 18fa6a4db3 Allow clients to un-suppress output from gUnit EXPECT_EXIT tests.
This is useful for running individual tests in a separate process, which is
useful for testing e.g. flag changes which have a process-global effect.

PiperOrigin-RevId: 540580573
Change-Id: I18a5d24d79425a9d595be3369efc44e2f655f6f8
2023-06-15 07:52:45 -07:00
Abseil Team 65cfeca1a1 internal g3doc documentation change.
PiperOrigin-RevId: 539134110
Change-Id: I28041f77e18bc67aa0ffabdc7205e350deed22c8
2023-06-09 11:29:42 -07:00
Abseil Team bb2941fcc6 Give CreateArgvFromArgs internal linkage
It isn't declared in any header or referenced from any other file.

PiperOrigin-RevId: 531209642
Change-Id: I9e7df37f737b00994f8845ed38c3b775879cb25c
2023-05-11 08:28:20 -07:00
Abseil Team bc860af087 This trips up when compiling with -Wvla otherwise.
PiperOrigin-RevId: 529762901
Change-Id: I6ce4d630191bf265f847aef2d5dcc12a712faa60
2023-05-05 11:05:02 -07:00
Abseil Team dea0484e4d Use Abseil Flag public API for flag parsing.
This change brings InitGoogleTest semantic in accordance with the official documentation: only GoogleTest flags are removed from argc/argv. The rest of the flags remains in place. We do nothing special for flags with unrecognized gunit_/gtest_ prefix and we do not report them.

PiperOrigin-RevId: 527257221
Change-Id: Ibb29a1bda1a44251a4ee579c0fb5bbdfd9965c21
2023-04-26 07:13:51 -07:00
Abseil Team 922e0b7d80 Update gMock Cookbook to reflect deprecation of testing::ByMove
PiperOrigin-RevId: 524868227
Change-Id: I702ede27570e3d3f06d534d6ccf8b39689105d07
2023-04-17 09:31:34 -07:00
Abseil Team 8fa9461cc2 Fix FunctionMocker compilation slowdown in 9d21db9e0a
The slowdown appears to be due to an implicit conversion of distinct (yet semantically identical) lambdas to `std::function`. Lifting out the lambdas into functors that don't get re-instantiated reduces compilation times by nearly half.

Fixes #4156

PiperOrigin-RevId: 523447948
Change-Id: Ib0ae0761a54d7b1f2b706b14b2858eedf47e2297
2023-04-11 10:55:11 -07:00
Abseil Team 7f6f9c12ad Support --gtest_stream_result_to on macOS
This seems to just have been an oversight. POSIX socket APIs work just
fine on macOS.

Fixes https://github.com/google/googletest/issues/4214.

PiperOrigin-RevId: 523398386
Change-Id: I9d56cd9c6933318c1f0b0024f7fef44122fd0c83
2023-04-11 07:41:50 -07:00
Abseil Team 057b4e904f gtest.cc: run tests within a test suite in a deterministic order.
Ensure that tests are run in the order specified in the source code, even if
they are registered manually using RegisterTest. There should be no behavior
change for the common case.

PiperOrigin-RevId: 522136303
Change-Id: If155e2666780af0e514fbbf5ff2b157d5fe2fef1
2023-04-05 13:27:21 -07:00
Abseil Team 7ee260c549 Rolled back due to breaking existing tests.
PiperOrigin-RevId: 521555658
Change-Id: I09742faceb82b2b7ceb423e850a8b50d532ad6ff
2023-04-03 14:01:45 -07:00
Abseil Team 0cd05c6ea9 Update naming to "GoogleTest" in the GoogleTest Primer.
PiperOrigin-RevId: 520409541
Change-Id: I75a0b8615ece923137d4f5dcdb915f38e4c3b1b2
2023-03-29 12:25:22 -07:00
Abseil Team e9fb5c7bac Replace const char* with absl::string_view as the latter is preferred.
PiperOrigin-RevId: 519122695
Change-Id: I7dcf969d15d26ccc4b376e3ab6db7f4c08c7386f
2023-03-24 05:58:11 -07:00
Abseil Team a0ced33ac6 Internal Code Change
PiperOrigin-RevId: 519071084
Change-Id: I6459d60606e93bf658e505544538367508722857
2023-03-24 00:23:16 -07:00
Abseil Team 6f01e3dc12 Internal Code Change
PiperOrigin-RevId: 518810140
Change-Id: Id3f9471f827894761080bc9199b0a092dc829b5f
2023-03-23 03:08:22 -07:00
Abseil Team 974e18ee6f Fix minor bug -- if ExecDeathTestChildMain() ever returns, we should exit
with a non-zero status.

PiperOrigin-RevId: 518306642
Change-Id: I72fb2764e477acb0362593c63f7748c4f64db0c6
2023-03-21 10:07:29 -07:00
Abseil Team e9faae170f Internal Code Change
PiperOrigin-RevId: 518213370
Change-Id: I88d0acc195dadf8d03cd15c8534c721141db14ea
2023-03-21 02:36:37 -07:00
Abseil Team 471087fbfc Introduce std::make_unique and bool literals where possible
PiperOrigin-RevId: 517910526
Change-Id: I398704f4b2ca0a55c86a06ca8b47d34c8670ddd7
2023-03-20 02:43:48 -07:00
Abseil Team 9fd3fb00ff Remove unused using-declarations in sample unit tests
PiperOrigin-RevId: 517910369
Change-Id: I87f29fb09bc83e7d1c7cffdf267b2f691d261c26
2023-03-20 02:42:55 -07:00
Abseil Team 28219b169c Fix typo in test case name.
PiperOrigin-RevId: 517814929
Change-Id: I2bc498ba048d4deab1cf2a021487f63fe44c466d
2023-03-19 14:30:57 -07:00
Abseil Team 391ce627de Internal Code Change
PiperOrigin-RevId: 515855852
Change-Id: I8016eefd45c36089e189bbd1ebbe9fdabe68255b
2023-03-11 02:48:36 -08:00
Abseil Team 50e07d1c92 Apply clang-tidy fixes
PiperOrigin-RevId: 515265927
Change-Id: Iea11668fa4bbf08f6d418a3823e836fb5b874dcc
2023-03-09 01:19:58 -08:00
Abseil Team 48a1b11058 Add a comment to clarify Fuchsia process launcher requirement.
PiperOrigin-RevId: 515154129
Change-Id: I3dd9e912e160d09d1f74a467336212701d4e1b7d
2023-03-08 15:10:45 -08:00
Abseil Team 82a570453c Apply clang-tidy fixes
PiperOrigin-RevId: 514936218
Change-Id: I24c443a2ca75c875052b0cf2d0a48e808d03ae43
2023-03-07 22:33:56 -08:00
Abseil Team cf4f4400db Suppress std::string DLL interface warning introduced in commit f063cd25c9
Fixes #4171

PiperOrigin-RevId: 514777144
Change-Id: I6f4b309c407684522fc1bc94dcc980ea1fe09cd9
2023-03-07 10:40:39 -08:00
Abseil Team 1a727c27aa Internal Code Change
PiperOrigin-RevId: 514678702
Change-Id: I5b0089d905152ccb85022be395ed340e42586234
2023-03-07 03:06:06 -08:00
Abseil Team cead3d57c9 Internal Code Change
PiperOrigin-RevId: 513770561
Change-Id: I82fbed177c6ba4e2e5b776ae3e0255c868e32e25
2023-03-03 02:25:22 -08:00
Abseil Team 555486f408 Rephrase the description of TEST_F() arguments for clarity.
PiperOrigin-RevId: 512937964
Change-Id: Ifa6369a80dc7d8efe60511417496d58317cfc28d
2023-02-28 08:17:16 -08:00
Abseil Team 8aa75fa771 Eliminate argv list action parameter.
PiperOrigin-RevId: 512791992
Change-Id: Ie7fc37ea06ea7d9f595268c9ec84a0e144c297bb
2023-02-27 18:47:21 -08:00
Abseil Team 95d8c7ac43 Reformat to current g3doc style guide. No content changes.
PiperOrigin-RevId: 512681427
Change-Id: I88b22d82430ed145b8342747adf300f3e734d43b
2023-02-27 11:21:55 -08:00
Abseil Team 3d787f5a0d Add const qualifier to gtest_sentinel which doesn't change.
PiperOrigin-RevId: 512094429
Change-Id: I29b116da65bc7471c43021d1650d90f7b2a685c2
2023-02-24 09:50:32 -08:00
Abseil Team d0ba3ccc76 Added a missing semicolon for GTEST_FLAG_SET code snippet.
PiperOrigin-RevId: 511858980
Change-Id: I0f9e6ffdeb8ae809d662eb3ff46eab5a109a8d93
2023-02-23 12:40:25 -08:00
Abseil Team 7a7231c442 Fix link in ReportUninterestingCall message
This CL changes the link in the ReportUninterestingCall message from
.../gmock_cook_book.md#knowing-when-to-expect to
.../gmock_cook_book.md#knowing-when-to-expect-useoncall. This is necessary
following https://github.com/google/googletest/commit/31ff597.

PiperOrigin-RevId: 510138974
Change-Id: Ic98c84b07751d27dfc95eddbe7874f76d68b456f
2023-02-16 07:33:48 -08:00
Abseil Team f063cd25c9 Remove strdup usage
PiperOrigin-RevId: 509947007
Change-Id: I31e1274afa889776829c877c40c9af589298dcf2
2023-02-15 15:22:10 -08:00
Abseil Team 2057566e4e Remove some filesystem APIs and tests under !GTEST_HAS_FILE_SYSTEM
PiperOrigin-RevId: 509537606
Change-Id: I68f7054e34b1fe76c1fd85099fffa4ee3c2b00c0
2023-02-14 08:33:42 -08:00
Abseil Team b80a07ffe6 Avoid reliance on <any> header without RTTI on MSVC
Fixes: #4144
PiperOrigin-RevId: 509322023
Change-Id: I52bdf6c25ff433327e174d3f9583b3d50b872d58
2023-02-13 13:46:03 -08:00
Abseil Team 3d568bdda5 Add support for the alternative base64 encoding in RFC 4648 section 5 to WhenBase64Unescaped.
PiperOrigin-RevId: 507527786
Change-Id: Ie5e088b1814981f6c760d7e25418a430172705ec
2023-02-06 11:00:05 -08:00
Abseil Team 6f21175f57 Add a trailing decimal point to FormatTimeInMillisAsSeconds() output when input
is an exact N seconds.

PiperOrigin-RevId: 506610898
Change-Id: Idcd705c719e0e721148c350c8a14f27b9eb5c4f7
2023-02-02 07:15:23 -08:00
Abseil Team 4b4c56aff6 Make document and example code more clear in the caveat section for potential memory leak with SetUpTestSuite.
PiperOrigin-RevId: 504706717
Change-Id: I5842a4569f81f6c0d636099b5cdaabe778996949
2023-01-25 17:43:53 -08:00
Abseil Team 643862d8ad Mention DescribeMatcher in matchers.md
PiperOrigin-RevId: 504591836
Change-Id: I48c93490d0c3b7c6bfaceceb1cef5eedeacfe6c6
2023-01-25 10:04:20 -08:00
Abseil Team ec25eea8f8 Mention using MockFunction as a way to mock free functions.
PiperOrigin-RevId: 502901538
Change-Id: I0cf351b9ad1411ae9c45e09550c24e006a24e179
2023-01-18 09:43:56 -08:00
Abseil Team ac7a126f39 gmock_output_test: normalize golden file output to unix line endings
When checked out on Windows, the repo might use \r\n line endings,
and so the golden output has them.  Adjust for that.

PiperOrigin-RevId: 502577222
Change-Id: Iabfe537f6d95a49bf6bdcb934e855d28c65f6f89
2023-01-17 07:12:50 -08:00
Abseil Team 71140c3ca7 Use a more recent commit of googletest that uses OS constraints from
@platforms//os:* instead of from @build_tools//platforms:*

See https://github.com/bazelbuild/bazel/issues/8622

Necessary to fix #4096

Also need the fix for #4098

PiperOrigin-RevId: 497182073
Change-Id: Ifd568b088d2f779755dd20264edfd5dad12ca9cc
2022-12-22 09:31:36 -08:00
Abseil Team 5ab508a01f Fix a typo in the documentation for "Using Predicates as Matchers".
PiperOrigin-RevId: 496679950
Change-Id: I2842050902876231d49a142165bcbb88d737505d
2022-12-20 09:26:42 -08:00
Abseil Team a4e0be898b Specify a name for a Property in a code example.
It is good practice to specify a name for the `testing::Property` matcher's use in diagnostics, and we should do so in our examples.

PiperOrigin-RevId: 496406309
Change-Id: Ibb4d1ba63771b5d6855442b91564027cda8ddaca
2022-12-19 08:28:01 -08:00
Abseil Team 3fa7f983c6 Shut up a Clang warning.
Clang warns on this pattern because it looks like the author might
have meant to use the value of the first part of the comma operator,
so it warns that it isn't being used. The cast here signals to Clang
that this behavior is intentional.

This was discovered while updating gmock in Android. Clang's -Wcomma
warning is on by default with either -Wall or -Werror, so users of
gmock with those on in combination with -Werror are unable to build
without this fix.

PiperOrigin-RevId: 495655990
Change-Id: Iaf27e2199669f5b6185a877738234e551b6b6556
2022-12-15 11:50:51 -08:00
Abseil Team 41fe6be7d7 Fix a typo in the gMock sample code for Defining a Custom Matcher Class.
EXPECT_CALL doesn't seem to make much sense here. I think the intent was to use EXPECT_THAT instead.

PiperOrigin-RevId: 495427663
Change-Id: I39a16ea37282729d34017c6bcd331a60cedf1fbe
2022-12-14 15:06:09 -08:00