summaryrefslogtreecommitdiffstats
path: root/googlemock/include/gmock/gmock-actions.h
Commit message (Collapse)AuthorAgeFilesLines
* Googletest exportAbseil Team2021-03-161-3/+3
| | | | | | Internal change PiperOrigin-RevId: 362040448
* Internal changeAbseil Team2021-03-091-1/+1
| | | | PiperOrigin-RevId: 361213113
* Googletest exportAbseil Team2021-02-181-1/+1
| | | | | | | | 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
* Googletest exportAbseil Team2021-02-181-4/+3
| | | | | | Make include guards conform with https://google.github.io/styleguide/cppguide.html#The__define_Guard, attempt #2 PiperOrigin-RevId: 357056902
* Googletest exportAbseil Team2021-02-111-3/+4
| | | | | | Revert include guard fix PiperOrigin-RevId: 356588893
* Googletest exportAbseil Team2021-02-111-4/+3
| | | | | | Make include guards conform with https://google.github.io/styleguide/cppguide.html#The__define_Guard PiperOrigin-RevId: 355882793
* Googletest exportAbseil Team2020-11-091-97/+88
| | | | | | | | 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
* Googletest exportofats2020-11-051-9/+0
| | | | | | Rewrite InvokeArgument action without using pump. PiperOrigin-RevId: 340861582
* Googletest exportAbseil Team2020-09-201-8/+9
| | | | | | Reduce the demangled name bloat of the Action constructor. PiperOrigin-RevId: 332234887
* Googletest exportAbseil Team2020-09-101-0/+4
| | | | | | | | | | | | 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
* Googletest exportAbseil Team2020-08-261-16/+160
| | | | | | | | 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
* Googletest exportAbseil Team2020-08-231-2/+3
| | | | | | | | | | | 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
* Googletest exportAbseil Team2020-08-231-9/+14
| | | | | | | | | 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
* Googletest exportAbseil Team2020-08-071-11/+6
| | | | | | | | | 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
* Googletest exportAbseil Team2020-08-071-6/+11
| | | | | | | | | 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
* Googletest exportofats2020-07-281-10/+2
| | | | | | Stop using ADL for InvokeArgument action. PiperOrigin-RevId: 323234396
* Googletest exportdmauro2020-05-281-1/+0
| | | | | | Rollback of warning on unused ACTION result change PiperOrigin-RevId: 313380971
* Googletest exportAbseil Team2020-05-281-0/+1
| | | | | | | | | | | | 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
* Googletest exportAbseil Team2020-05-281-3/+5
| | | | | | | | 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
* Merge pull request #2815 from Quuxplusone:simpleGennadiy Rozental2020-05-011-36/+0
|\ | | | | | | PiperOrigin-RevId: 308625388
| * Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_.Arthur O'Dwyer2020-04-231-36/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Googletest exportAbseil Team2020-05-011-0/+26
|/ | | | | | Rewrite ReturnNew action without using pump. PiperOrigin-RevId: 308219616
* Googletest exportAbseil Team2020-03-311-1/+2
| | | | | | Do not use std::result_of as it was removed in C++20. PiperOrigin-RevId: 303783600
* Googletest exportAbseil Team2020-02-281-3/+33
| | | | | | | | 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
* Googletest exportAbseil Team2020-02-071-1/+1
| | | | | | | | | 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
* Googletest exportAbseil Team2020-01-161-5/+238
| | | | | | | | | 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
* Googletest exportAbseil Team2020-01-161-0/+16
| | | | | | | | | 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
* Googletest exportAbseil Team2020-01-091-0/+37
| | | | | | | | 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
* Googletest exportAbseil Team2020-01-091-0/+16
| | | | | | | | 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
* Googletest exportAbseil Team2020-01-021-17/+0
| | | | | | | | | 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
* Googletest exportAbseil Team2020-01-021-0/+17
| | | | | | | | | 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: 286148805
* Googletest exportAbseil Team2019-12-131-0/+40
| | | | | | | | Use C++11 variadic templates for ActionHelper in gmock-generated-actions.h. Make ActionHelper use variadic templates to generate Perform static member function specializations instead of using pump.py syntax. PiperOrigin-RevId: 284988441
* Merge pull request #2583 from ChristophStrehle:masterGennadiy Rozental2019-11-271-1/+2
|\ | | | | | | PiperOrigin-RevId: 282817206
| * Fix compile break for Microsoft Visual Studio 2017 v141Christoph Strehle2019-11-211-1/+2
| | | | | | | | | | | | | | | | This is a workaround, for those who have to compile with v141 build tools, for a bug in msvc that the compiler can't compile the WithArgsAction. see the following link for more details: https://developercommunityapi.westus.cloudapp.azure.com/content/problem/420339/googlemocks-withargs-doesnt-compile-with-permissiv.html
* | Googletest exportAbseil Team2019-11-221-2/+2
|/ | | | | | | | | | | | | Use standard C++11 integer types in gtest-port.h. Remove testing::internal::{Int,Uint}{32,64} in favor of types guaranteed to be in <cstdint> since C++11. Tests for built-in integer type coverage are switched from {Int,Uint}64 to [unsigned] long long, which is guaranteed by C++11 to exist and be at least 64-bit wide. PiperOrigin-RevId: 281565263
* Googletest exportAbseil Team2019-10-311-4/+4
| | | | | | Change variable name to match comment. PiperOrigin-RevId: 277713621
* Merge pull request #2527 from ↵vslashg2019-10-291-0/+4
|\ | | | | | | | | | | PiotrNycz:gmock_prevent_return_ref_to_store_temporaries_2 PiperOrigin-RevId: 277061341
| * Prevent using ReturnRef on reference to temporaryPiotr Nycz2019-10-221-0/+4
| | | | | | | | Fixed issue: 2471
* | Googletest exportAbseil Team2019-10-231-0/+47
|/ | | | | | Add a matcher `testing::ReturnRoundRobin` which, on each call, returns the next element in the sequence, restarting at the beginning once it has reached the end. PiperOrigin-RevId: 276312136
* Merge pull request #2387 from kuzkry:iffShaindel Schwartz2019-09-121-5/+6
|\ | | | | | | PiperOrigin-RevId: 268693457
| * restore mistakenly removed iffs in their explicit formKrystian Kuzniarek2019-08-201-5/+6
| | | | | | | | | | Due to confusion arisen from "iff" standing for "if and only if", this commit uses the latter.
* | Googletest exportHosein Ghahremanzadeh2019-09-121-2/+2
|/ | | | | | | | | Merge 4c9ef099b29d2c840c04643cd9662fd7be712f7b into 565f1b848215b77c3732bca345fe76a0431d8b34 Closes #2403 COPYBARA_INTEGRATE_REVIEW=https://github.com/google/googletest/pull/2403 from IYP-Programer-Yeah:remove-compile-assert-type-equal 4c9ef099b29d2c840c04643cd9662fd7be712f7b PiperOrigin-RevId: 268681883
* remove a custom implementation of std::is_referenceKrystian Kuzniarek2019-08-141-4/+4
|
* fix typosKrystian Kuzniarek2019-07-301-5/+5
|
* Googletest exportAbseil Team2019-05-031-67/+11
| | | | | | Remove special case for protocol buffers. It is no longer needed. PiperOrigin-RevId: 246550795
* Googletest exportAbseil Team2019-04-011-3/+0
| | | | | | | | Remove support for "global" ::string and ::wstring types. This support existed for legacy codebases that existed from before namespaces where a thing. It is no longer necessary. PiperOrigin-RevId: 241335738
* Googletest exportAbseil Team2019-03-211-5/+3
| | | | | | Remove mention of unused type ProtocolMessage. PiperOrigin-RevId: 239242706
* Googletest exportAbseil Team2019-01-171-58/+50
| | | | | | | | | Refactor the `Invoke` and `InvokeWithoutArgs` actions: - Replace pump'd classes and functions with templates. - Make the polymorphic actions be polymorphic functors instead. - Fix Invoke(Callback*) to work with subclasses of the callbacks, instead of trying to diagnose that in gmock_doctor. PiperOrigin-RevId: 229604112
* Googletest exportAbseil Team2019-01-141-29/+5
| | | | | | | Deduplicate testing::ReferenceWrapper with std::reference_wrapper. Minor cleanups in matchers_test. PiperOrigin-RevId: 229022872
* Googletest exportAbseil Team2019-01-021-5/+0
| | | | | | | | Remove the #ifs for old, unsupported and buggy compilers: * old versions of GCC & MSVC * Symbian PiperOrigin-RevId: 227116941
OpenPOWER on IntegriCloud