3881 Commits

Author SHA1 Message Date
Aaron Jacobs
80600e56cc Document two surprises in DoAllAction::NonFinalType.
PiperOrigin-RevId: 441589196
Change-Id: Ic3e483ca70d72261046bad464d817f9dfd4bec65
2022-04-13 15:04:29 -07:00
Abseil Team
733f875989 Replace infinite recursion call (intentionally invoking undefined behavior to indicate unreachability) with explicit unreachability marker.
PiperOrigin-RevId: 441474979
Change-Id: I1fcbb437026631212fec954c663482bb7e1cf819
2022-04-13 07:28:00 -07:00
Abseil Team
a1cc8c5519 Add support for move-only and &&-qualified actions in WillOnce.
This provides a type-safe way for an action to express that it wants to be
called only once, or to capture move-only objects. It is a generalization of
the type system-evading hack in ByMove, with the improvement that it works for
_any_ action (including user-defined ones), and correctly expresses that the
action can only be used with WillOnce. I'll make existing actions benefit in a
future commit.

PiperOrigin-RevId: 440496139
Change-Id: I4145d191cca5655995ef41360bb126c123cb41d3
2022-04-08 18:40:07 -07:00
Derek Mauro
5f467ec04d Clarify what live-at-head actually means
PiperOrigin-RevId: 439835271
Change-Id: I40765e607a96dfc3f0679450938daf25163c48a4
2022-04-06 07:39:26 -07:00
Abseil Team
c9044ba3dd Trying to make it more clear: this is probably not about mock classes, but about mocked classes
PiperOrigin-RevId: 439427291
Change-Id: I3cac035e732fb3fe4f9c314657932a55269e0416
2022-04-04 15:30:50 -07:00
Abseil Team
137f67e91f gmock: improve SFINAE for actions involving arguments.
Avoid instantiating functions like std::get<index> for an out of range index
when doing SFINAE on the invocability of the action itself.

PiperOrigin-RevId: 439415110
Change-Id: Ifc20285a6d526c34830870cd1910c2b2b92e1e81
2022-04-04 14:38:58 -07:00
Abseil Team
3ffa237f0e Use ResultOf()'s result_description when explaining match result.
PiperOrigin-RevId: 439389646
Change-Id: Ie34adcdd2b24378e85962efac53b7bb89ed93803
2022-04-04 12:56:24 -07:00
Derek Mauro
25dcdc7e8b Use the Abseil flags library when Abseil is present
When built with `--define=absl=1` under Bazel, GoogleTest
flags use ABSL_FLAG instead of GoogleTest's own implementation.

There are some minor behavior differences in this mode.

The most notable difference is that unrecognized flags result
in a flag parsing error, and are not returned to the user though
a modified argc/argv, unless they appear after the positional
argument delimiter ("--").

For example, to pass a non-Abseil flag, you would have to do
./mytest --gtest_color=false -- --myflag=myvalue

The documentation at https://abseil.io/docs/cpp/guides/flags
may be helpful in understanding the behavior.

There are some other minor differences. For example,
passing --help results in the program returning 1 instead of 0.

https://github.com/google/googletest/issues/3646

PiperOrigin-RevId: 439312700
Change-Id: Id696a25f50f24a5b1785c45ca8fa59794f86fd5c
2022-04-04 07:39:03 -07:00
Abseil Team
af29db7ec2 Address deprecation warning surfaced by Github presubmit tests
PiperOrigin-RevId: 436839469
Change-Id: I2bb90dce524c16bcc31569bb98772dcc62d08fbf
2022-03-23 15:08:26 -07:00
Mattias Ellert
073293463e Split gmock-matchers_test into 4 smaller test #3653
The one large test does not link in limited memory environments

Closes #3653

PiperOrigin-RevId: 436753193
Change-Id: Idd59b6509994fc642147b88279ee791cd1d7bdd0
2022-03-23 09:08:04 -07:00
Copybara-Service
0affd45b62 Merge pull request #3779 from messerb5467:promote-inclusive-behavior
PiperOrigin-RevId: 436579789
Change-Id: I19faae341027efba83f1c2b3839636fc95780fc7
2022-03-22 14:59:23 -07:00
Abseil Team
5d6f38c1e2 Only print disabled test banner if the test matches gtest_filter
Currently, the "[ DISABLED ]" banner is printed for every test in a suite.
When iterating on a single test gtest_filter this is very noisy.

PiperOrigin-RevId: 436489088
Change-Id: If337087a7a0986b073fabf2b0a55d26485eb5c37
2022-03-22 09:07:51 -07:00
Abseil Team
1754febbaa Clarify public access on gmock examples.
PiperOrigin-RevId: 436268062
Change-Id: I3161b36121f78acf920d66fe121b2f1d5e5707b9
2022-03-21 11:57:05 -07:00
Brad Messer
9e71237221
Merge branch 'main' into promote-inclusive-behavior 2022-03-18 12:32:39 -04:00
Brad Messer
794da715d4 Remove sanity as it is offensive to neurodiverse individuals. 2022-03-18 12:19:38 -04:00
Abseil Team
b007c54f29 Running clang-format over all of GoogleTest
A few tests are examining code locations and looking af the resulting line
numbers to verify that GoogleTest shows those to users correctly. Some of those
locations change when clang-format is run. For those locations, I've wrapped
portions in:
// clang-format off
...
// clang-format on

There may be other locations that are currently not tickled by running
clang-format.

PiperOrigin-RevId: 434844712
Change-Id: I3a9f0a6f39eff741c576b6de389bef9b1d11139d
2022-03-15 13:42:11 -07:00
Copybara-Service
8a422b8398 Merge pull request #3774 from sobczyk:main
PiperOrigin-RevId: 434738675
Change-Id: I7c8de4004bac6b750674d19e3e79c0695a42652e
2022-03-15 06:55:30 -07:00
Dino Radakovic
ae5e06dd35 Remove references to deleted script gen_gtest_pred_impl.py
PiperOrigin-RevId: 434464892
Change-Id: Iaa2277f26d0049b3d792e87f64679774a28205c6
2022-03-14 08:00:38 -07:00
Abseil Team
ae1b7ad430 Mark ACTION_Pn()-generated functions as must-use-result, adding non-compilation tests.
This catches when a client creates an action and discards it, thinking that the action has actually been applied to something.

This will help people who make the mistake of defining, for example, both `void Use(Foo*, Bar)` and `ACTION_P(Use, bar) { Use(arg, bar); }` for later application to a Foo.  With such an overload, a client may then write `Use(bar);`, selecting the Action<> overload and being confused why nothing happens.

This also catches when a client defines their own action in terms of an ACTION_P()-generated one, invokes the Action<>'s builder, and then fails to invoke the resulting action, thinking it's operating on the outer action's parameters.

PiperOrigin-RevId: 433197479
Change-Id: I98e4389150d01a5e753230113016d9fc38b1d260
2022-03-08 06:42:11 -08:00
Szymon Sobik
3c5320bf6f Add myself to contributors 2022-03-08 01:21:16 +01:00
Szymon Sobik
132059ba0c Adjust documentation regarding xml and json source file location otput. 2022-03-08 01:16:36 +01:00
Szymon Sobik
5c1b42a58d Adjust xml and json unit tests to test for source file and line location. 2022-03-08 01:15:20 +01:00
Szymon Sobik
ee5e3043ce Add support for testing of xml and json output of source file and line location 2022-03-08 01:14:21 +01:00
Szymon Sobik
f7621f0191 Output source file path and line number in xml and json files.
It outputs the location of testcase only.
Standalone EXPECT will have no location.
2022-03-08 01:12:35 +01:00
Derek Mauro
c9461a9b55 Update GCC/Clang Linux tests to use Bazel 5.0.0
PiperOrigin-RevId: 429400664
Change-Id: I6454cf52cb2fc616a96663823de997591b63dfae
2022-02-17 14:19:07 -08:00
Abseil Team
ea55f1f52c Address conversion warning by explicitly casting to size_t
Closes #3762

PiperOrigin-RevId: 428593750
Change-Id: Ifac216568fbc7d999adb71996ec6a1bbe3b97412
2022-02-14 13:28:28 -08:00
Abseil Team
0e402173c9 Add a 3-arg overload for ResultOf() matcher that takes a description string for better error messages.
PiperOrigin-RevId: 427598749
Change-Id: I8c7a5d7b2dde017641534f1c7eed8dd56c33e845
2022-02-09 16:20:06 -08:00
Copybara-Service
06519cedc3 Merge pull request #3751 from noiseless:gtest-help-test-OpenBSD
PiperOrigin-RevId: 427207981
Change-Id: Ib93f8f61bf568d4651f9148fbc522288308c0d71
2022-02-08 09:11:25 -08:00
Copybara-Service
504eb98953 Merge pull request #3746 from IYP-Programer-Yeah:use-constant-time-lookup-for-exact-match
PiperOrigin-RevId: 427179775
Change-Id: I9928be2421d559acf0e0f03643ce0b856b63f737
2022-02-08 06:51:54 -08:00
Copybara-Service
43efa0a4ef Merge pull request #3617 from Bagira80:fix_3616
PiperOrigin-RevId: 426976022
Change-Id: Ib9f49cf84775a50cbc806d331349e61a1060b498
2022-02-07 11:51:52 -08:00
Hossein Ghahramanzadeh
d6841c040d Apply requested changes by using std::inserter with move. 2022-02-05 17:43:21 +01:00
Andrew Krasavin
631f4f9947 Fix gtest-help-test failure on OpenBSD 2022-02-05 03:44:54 +03:00
Copybara-Service
14aa11db02 Merge pull request #3724 from jjfvanderpol:main
PiperOrigin-RevId: 426450614
Change-Id: Iccbe56ddd81f4f3935b3d44aa5b835146758ff83
2022-02-04 11:28:32 -08:00
Abseil Team
25ad42aabe GetCurrentOsStackTraceExceptTop (both the method of UnitTestImpl and the wrapper function in gtest.cc) rely on the fact that the inner call is not getting optimized.
This CL annotates them with the appropriate attributes.

PiperOrigin-RevId: 425663217
Change-Id: Ib9ec2a69a7dd98d37640b56d4d7798572da66669
2022-02-01 10:44:59 -08:00
Copybara-Service
4517697675 Merge pull request #3744 from danger89:patch-2
PiperOrigin-RevId: 425519462
Change-Id: I196b22675e471f66929c1cdd0f85a405ebac8484
2022-01-31 20:01:13 -08:00
Hossein Ghahramanzadeh
2eadda6e00 Do constant time matching for exact match filters. 2022-01-31 19:22:37 +01:00
Derek Mauro
28e1da21d8 Finish some missed pieces of the TestCase to TestSuite Migration
PiperOrigin-RevId: 424864779
Change-Id: Iac5cafa3568f5fe41c85c52d28f7d61845f76868
2022-01-28 07:27:11 -08:00
Dino Radakovic
0b7798b2fb Change ReturnArg to use perfect forwarding of arguments (#3733)
PiperOrigin-RevId: 424355706
Change-Id: I618e5574b4b2c56a343905c20d8cc6d2a70cbcd1
2022-01-26 08:40:27 -08:00
Melroy van den Berg
f2d71f0be2
Let me give a change to try it again - updating to latest version 2022-01-25 22:45:24 +01:00
Abseil Team
f45d5865ed Make recreate_environments_when_repeating=false the default.
So that global test environments are by default set up and torn down once,
regardless of the value of the repeat flag.

The point of global environments is to be set up and torn down once, and shared
by all tests in the process. There is no obvious reason why multiple runs of the
same test should be treated distinctly from single runs of different tests.

Having this be false by default means that repeats using a global environment
run faster. It can still be set to true if it's desired that every repeat get a
fresh environment, but this seems less important given the nature of a global
environment. Every test I've seen using a global environment uses it to set up
some expensive external resource, not something that can/should be set up for
each test anew. (Again this is unsurprising, since the environment is a global.)

PiperOrigin-RevId: 424003937
Change-Id: I9e8a825cb8900960dd65b85fe5ffcc0a337e57f3
2022-01-24 23:46:52 -08:00
Copybara-Service
7eae8de0da Merge pull request #3723 from ramkumar-kr:patch-1
PiperOrigin-RevId: 423920083
Change-Id: I5e172813387f841d5a6c56eea155b876a465d208
2022-01-24 15:04:20 -08:00
Copybara-Service
f64cf6b7b8 Merge pull request #3732 from joshiayush:i2174
PiperOrigin-RevId: 423906844
Change-Id: I1c34a3ce8a5c761ef9f1d7ce48bef8826742e97d
2022-01-24 14:08:19 -08:00
Copybara-Service
3d81736c97 Merge pull request #3615 from IYP-Programer-Yeah:fix-per-test-filter-processing
PiperOrigin-RevId: 423326942
Change-Id: I913f31960d7917b176c9f390424630708473837a
2022-01-21 08:18:49 -08:00
Abseil Team
2ddfdf819d Factor out AssertionResult into dedicated gtest-assertion-result header + implementation files to prevent cyclic includes between gtest.h and gtest_pred_impl.h
PiperOrigin-RevId: 422863083
Change-Id: I299018a860152216adc206780c32923c03bedb2a
2022-01-19 11:31:36 -08:00
Abseil Team
100f6fbf5f Consistently apply IWYU pragmas across googletest and googlemock headers
PiperOrigin-RevId: 422559250
Change-Id: I9f630f2186724950e5e9fbd7093d5264e8bf0a71
2022-01-18 08:11:11 -08:00
Copybara-Service
c9643a2e45 Merge pull request #3721 from joshiayush:i3719
PiperOrigin-RevId: 422405356
Change-Id: I8ea22485d9a25dce81a28d0c323a73b36d15e912
2022-01-17 12:59:48 -08:00
Dino Radakovic
4e9fe30884 Fix reference to source file in gmock FAQ
PiperOrigin-RevId: 421915817
Change-Id: I22800e8943f9eb050304c521701d4040b1b7a914
2022-01-14 14:40:35 -08:00
Derek Mauro
4e82924686 Update test Docker image to GCC 11.2, Clang 14 (prerelease),
CMake 3.22.1, and Bazel 4.2.2

PiperOrigin-RevId: 421814198
Change-Id: Ief4e39d7f077089f10afdc8d63cc1e51dc18e97f
2022-01-14 06:52:59 -08:00
Ayush Joshi
ca3ffd90f2 FIX #2174 -- remove DEBUG_POSTFIX
while this is not synced with the pkg-config file, it only breaks things

Fix #2174

Signed-off-by: Ayush Joshi <ayush854032@gmail.com>
2022-01-13 21:24:56 +05:30
Abseil Team
2d07f12b60 Fix run-on sentence
dispatch. It will use the definition from the class the constructor of which

PiperOrigin-RevId: 421291241
Change-Id: If81e3d6d3774edfbbb4baaec8a3cd96566b3b09c
2022-01-12 07:19:51 -08:00