1. 18 Feb, 2021 2 commits
  2. 11 Feb, 2021 2 commits
  3. 09 Nov, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · fbef0711
      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
      fbef0711
  4. 05 Nov, 2020 1 commit
    • ofats's avatar
      Googletest export · 710f9c11
      ofats authored
      Rewrite InvokeArgument action without using pump.
      
      PiperOrigin-RevId: 340861582
      710f9c11
  5. 20 Sep, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · bb272534
      Abseil Team authored
      Reduce the demangled name bloat of the Action constructor.
      
      PiperOrigin-RevId: 332234887
      bb272534
  6. 10 Sep, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · a4ab0abb
      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
      a4ab0abb
  7. 27 Aug, 2020 1 commit
  8. 24 Aug, 2020 2 commits
    • Abseil Team's avatar
      Googletest export · ec9be15b
      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
      ec9be15b
    • Abseil Team's avatar
      Googletest export · fc1e7788
      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
      fc1e7788
  9. 07 Aug, 2020 2 commits
    • Abseil Team's avatar
      Googletest export · 5a5caab3
      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
      5a5caab3
    • Abseil Team's avatar
      Googletest export · 48ec6409
      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
      48ec6409
  10. 28 Jul, 2020 1 commit
    • ofats's avatar
      Googletest export · c6430992
      ofats authored
      Stop using ADL for InvokeArgument action.
      
      PiperOrigin-RevId: 323234396
      c6430992
  11. 28 May, 2020 3 commits
    • dmauro's avatar
      Googletest export · 8f3854e2
      dmauro authored
      Rollback of warning on unused ACTION result change
      
      PiperOrigin-RevId: 313380971
      8f3854e2
    • Abseil Team's avatar
      Googletest export · 1397db9e
      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
      1397db9e
    • Abseil Team's avatar
      Googletest export · 63713e1c
      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
      63713e1c
  12. 01 May, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 95555251
      Abseil Team authored
      Rewrite ReturnNew action without using pump.
      
      PiperOrigin-RevId: 308219616
      95555251
  13. 24 Apr, 2020 1 commit
    • Arthur O'Dwyer's avatar
      Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_. · 766ac2e1
      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.
      766ac2e1
  14. 31 Mar, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 61f010d7
      Abseil Team authored
      Do not use std::result_of as it was removed in C++20.
      
      PiperOrigin-RevId: 303783600
      61f010d7
  15. 28 Feb, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · fd538161
      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
      fd538161
  16. 07 Feb, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 22397f28
      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
      22397f28
  17. 16 Jan, 2020 2 commits
    • Abseil Team's avatar
      Googletest export · 5336106b
      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
      5336106b
    • Abseil Team's avatar
      Googletest export · 7a8591e6
      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
      7a8591e6
  18. 09 Jan, 2020 2 commits
    • Abseil Team's avatar
      Googletest export · c901f67d
      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
      c901f67d
    • Abseil Team's avatar
      Googletest export · 4b9c1691
      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
      4b9c1691
  19. 02 Jan, 2020 2 commits
    • Abseil Team's avatar
      Googletest export · d0a52125
      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
      d0a52125
    • Abseil Team's avatar
      Googletest export · 6f1a8ffd
      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: 286148805
      6f1a8ffd
  20. 13 Dec, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · d8eeb976
      Abseil Team authored
      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
      d8eeb976
  21. 22 Nov, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · 717ce7fe
      Abseil Team authored
      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
      717ce7fe
  22. 21 Nov, 2019 1 commit
  23. 31 Oct, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · 2db3df9c
      Abseil Team authored
      Change variable name to match comment.
      
      PiperOrigin-RevId: 277713621
      2db3df9c
  24. 23 Oct, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · 37f32278
      Abseil Team authored
      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
      37f32278
  25. 22 Oct, 2019 1 commit
  26. 12 Sep, 2019 1 commit
  27. 20 Aug, 2019 1 commit
  28. 14 Aug, 2019 1 commit
  29. 30 Jul, 2019 1 commit
  30. 03 May, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · 3f5b5b8f
      Abseil Team authored
      Remove special case for protocol buffers. It is no longer needed.
      
      PiperOrigin-RevId: 246550795
      3f5b5b8f
  31. 01 Apr, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · d9825431
      Abseil Team authored
      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
      d9825431