- 26 Apr, 2022 1 commit
-
-
Aaron Jacobs authored
This is necessary for generic support of these actions, since `DoAll` is a frequently-used action wrapper. PiperOrigin-RevId: 444561964 Change-Id: I02edb55e35ab4207fbd71e371255a319c8253136
-
- 22 Apr, 2022 1 commit
-
-
Derek Mauro authored
PiperOrigin-RevId: 443715444 Change-Id: I3ffd54b63d2728ae4a668ee7875c8c3c8188087c
-
- 21 Apr, 2022 1 commit
-
-
Derek Mauro authored
PiperOrigin-RevId: 443462203 Change-Id: I0c43f981663a7531ff5da4d4be01fb3d6762273d
-
- 13 Apr, 2022 1 commit
-
-
Aaron Jacobs authored
PiperOrigin-RevId: 441589196 Change-Id: Ic3e483ca70d72261046bad464d817f9dfd4bec65
-
- 09 Apr, 2022 1 commit
-
-
Abseil Team authored
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
-
- 04 Apr, 2022 1 commit
-
-
Abseil Team authored
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
-
- 15 Mar, 2022 1 commit
-
-
Abseil Team authored
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
-
- 08 Mar, 2022 1 commit
-
-
Abseil Team authored
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
-
- 26 Jan, 2022 1 commit
-
-
Dino Radakovic authored
PiperOrigin-RevId: 424355706 Change-Id: I618e5574b4b2c56a343905c20d8cc6d2a70cbcd1
-
- 18 Jan, 2022 1 commit
-
-
Abseil Team authored
PiperOrigin-RevId: 422559250 Change-Id: I9f630f2186724950e5e9fbd7093d5264e8bf0a71
-
- 22 Jul, 2021 1 commit
-
-
Abseil Team authored
Delete GOOGLETEST_CM.* tags from C++ code. PiperOrigin-RevId: 386268534
-
- 16 Mar, 2021 1 commit
-
-
Abseil Team authored
Internal change PiperOrigin-RevId: 362040448
-
- 09 Mar, 2021 1 commit
-
-
Abseil Team authored
PiperOrigin-RevId: 361213113
-
- 18 Feb, 2021 2 commits
-
-
Abseil Team authored
Update stale links to `gmock_cook_book.md`. I'm a new googletest user and found these links broken when reading the documentation. PiperOrigin-RevId: 357786392
-
Abseil Team authored
Make include guards conform with https://google.github.io/styleguide/cppguide.html#The__define_Guard, attempt #2 PiperOrigin-RevId: 357056902
-
- 11 Feb, 2021 2 commits
-
-
Abseil Team authored
Revert include guard fix PiperOrigin-RevId: 356588893
-
Abseil Team authored
Make include guards conform with https://google.github.io/styleguide/cppguide.html#The__define_Guard PiperOrigin-RevId: 355882793
-
- 09 Nov, 2020 1 commit
-
-
Abseil Team authored
Change ACTION{,_Pn,_TEMPLATE} macros to build functors rather than ActionInterface<> subclasses, thus changing the Action<> wrappers they create to use the modernized (non-const) argument tuple type, allowing these macros to mutate their arguments. Functor-based Action<>s deep-copy the implementing object, so have the functors use a shared_ptr to the non-trivial state of bound value parameters. No longer specialize that shared state to the particular action signature, encoding that information instead only in the instantiation of the implementation function. PiperOrigin-RevId: 341116208
-
- 05 Nov, 2020 1 commit
-
-
ofats authored
Rewrite InvokeArgument action without using pump. PiperOrigin-RevId: 340861582
-
- 20 Sep, 2020 1 commit
-
-
Abseil Team authored
Reduce the demangled name bloat of the Action constructor. PiperOrigin-RevId: 332234887
-
- 10 Sep, 2020 1 commit
-
-
Abseil Team authored
Mark ACTION_Pn()-generated functions as must-use-result. 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*)` and `ACTION(Use) { Use(arg); }` for later application to a Foo. With such an overload, a client may then write `Use();`, forgetting the param and being confused why nothing happens. This also catches when a client defines their own action in terms of an ACTION()-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: 330614454
-
- 27 Aug, 2020 1 commit
-
-
Abseil Team authored
Replace uses of ACTION_TEMPLATE and ACTION_P with manually written functors. The latter provide better error diagnostics. This fixes https://github.com/google/googletest/issues/2729. PiperOrigin-RevId: 328573022
-
- 24 Aug, 2020 2 commits
-
-
Abseil Team authored
Workaround static assert in early versions libc++ The error is "Attempted to construct a reference element in a tuple with an rvalue". We can fix this by putting everything into a non temporary tuple_args and implitly convert to the other tuple types. This avoids binding an rvalue reference to an lvalue reference inside the tuple. PiperOrigin-RevId: 327624990
-
Abseil Team authored
Fix DoAll to work with move-only sink arguments. This changes types of the first n - 1 actions so that they only get a readonly view of the arguments. The last action will accept move only objects. PiperOrigin-RevId: 327031893
-
- 07 Aug, 2020 2 commits
-
-
Abseil Team authored
Fix DoAll to work with move-only sink arguments. This changes types of the first n - 1 actions so that they only get a readonly view of the arguments. The last action will accept move only objects. PiperOrigin-RevId: 324619666
-
Abseil Team authored
Fix DoAll to work with move-only sink arguments. This changes types of the first n - 1 actions so that they only get a readonly view of the arguments. The last action will accept move only objects. PiperOrigin-RevId: 324600664
-
- 28 Jul, 2020 1 commit
-
-
ofats authored
Stop using ADL for InvokeArgument action. PiperOrigin-RevId: 323234396
-
- 28 May, 2020 3 commits
-
-
dmauro authored
Rollback of warning on unused ACTION result change PiperOrigin-RevId: 313380971
-
Abseil Team authored
Mark ACTION_Pn()-generated functions as must-use-result. 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*)` and `ACTION(Use) { Use(arg); }` for later application to a Foo. With such an overload, a client may then write `Use();`, forgetting the param and being confused why nothing happens. This also catches when a client defines their own action in terms of an ACTION()-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: 312108101 -
Abseil Team authored
Fix the ACTION* macros to allow for more than 10 arguments in the action. Only the first 10 will be passed as individual arguments as `argN`, but the rest can be accessed from the `args` tuple. PiperOrigin-RevId: 311542098
-
- 01 May, 2020 1 commit
-
-
Abseil Team authored
Rewrite ReturnNew action without using pump. PiperOrigin-RevId: 308219616
-
- 24 Apr, 2020 1 commit
-
-
Arthur O'Dwyer authored
None of these are strictly needed for correctness. A large number of them (maybe all of them?) trigger `-Wdeprecated` warnings on Clang trunk as soon as you try to use the implicitly defaulted (but deprecated) copy constructor of a class that has deleted its copy assignment operator. By declaring a deleted copy assignment operator, the old code also caused the move constructor and move assignment operator to be non-declared. This means that the old code never got move semantics -- "move-construction" would simply call the defaulted (but deprecated) copy constructor instead. With the new code, "move-construction" calls the defaulted move constructor, which I believe is what we want to happen. So this is a runtime performance optimization. Unfortunately we can't yet physically remove the definitions of these macros from gtest-port.h, because they are being used by other code internally at Google (according to zhangxy988). But no new uses should be added going forward.
-
- 31 Mar, 2020 1 commit
-
-
Abseil Team authored
Do not use std::result_of as it was removed in C++20. PiperOrigin-RevId: 303783600
-
- 28 Feb, 2020 1 commit
-
-
Abseil Team authored
Allow construction of an Action from a callable of zero args Action already allows construction from a callable with the same args as the mocked function, without needing to wrap the callable in Invoke. However, if you don't care about the arguments to the mocked function you need to either accept all of them or wrap your callable in InvokeWithoutArgs. This change makes both of those unnecessary, since it allows you to pass a no-args callable to Action directly. PiperOrigin-RevId: 296117034
-
- 07 Feb, 2020 1 commit
-
-
Abseil Team authored
Add missing explicit keyword for gmock_Impl constructor. When switching to using GMOCK_PP in ACTION* macroses `explicit` keyword was missed in gmock_Impl constructor causing ClangTidy warnings in ACTION_P macro. PiperOrigin-RevId: 291159975
-
- 16 Jan, 2020 2 commits
-
-
Abseil Team authored
Use GMOCK_PP to create GMOCK_INTERNAL_ACTION macro. Create GMOCK_INTERNAL_ACTION macro that generates ACTION_P* macroses using GMOCK_PP. PiperOrigin-RevId: 289815906
-
Abseil Team authored
Use GMOCK_PP to generate args boilerplate. Move common args describing part to separate macroses that uses GMOCK_PP to generate sequences. PiperOrigin-RevId: 289655624
-
- 09 Jan, 2020 2 commits
-
-
Abseil Team authored
Move part of functionality of Action* class to the base one. Reduce copypaste. Make constructor and conversion operator of Action* class independent of pump. PiperOrigin-RevId: 288907005
-
Abseil Team authored
Use C++11 variadic templates for Invoke in gmock-generated-actions.h. Replace InvokeArgumentAdl with Invoke that uses C++11 variadic templates. PiperOrigin-RevId: 288449236
-
- 02 Jan, 2020 1 commit
-
-
Abseil Team authored
Use C++11 variadic templates for InvokeArgumentAdl in gmock-generated-actions.h. Make InvokeArgumentAdl use variadic templates to generate its overloads instead of using pump.py syntax. PiperOrigin-RevId: 286267615
-