1. 26 Apr, 2022 1 commit
  2. 22 Apr, 2022 1 commit
  3. 21 Apr, 2022 1 commit
  4. 13 Apr, 2022 1 commit
  5. 09 Apr, 2022 1 commit
    • Abseil Team's avatar
      Add support for move-only and &&-qualified actions in WillOnce. · a1cc8c55
      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
      a1cc8c55
  6. 04 Apr, 2022 1 commit
    • Abseil Team's avatar
      gmock: improve SFINAE for actions involving arguments. · 137f67e9
      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
      137f67e9
  7. 15 Mar, 2022 1 commit
    • Abseil Team's avatar
      Running clang-format over all of GoogleTest · b007c54f
      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
      b007c54f
  8. 08 Mar, 2022 1 commit
    • Abseil Team's avatar
      Mark ACTION_Pn()-generated functions as must-use-result, adding non-compilation tests. · ae1b7ad4
      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
      ae1b7ad4
  9. 26 Jan, 2022 1 commit
  10. 18 Jan, 2022 1 commit
  11. 22 Jul, 2021 1 commit
    • Abseil Team's avatar
      Googletest export · 96f4ce02
      Abseil Team authored
      Delete GOOGLETEST_CM.* tags from C++ code.
      
      PiperOrigin-RevId: 386268534
      96f4ce02
  12. 16 Mar, 2021 1 commit
  13. 09 Mar, 2021 1 commit
  14. 18 Feb, 2021 2 commits
  15. 11 Feb, 2021 2 commits
  16. 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
  17. 05 Nov, 2020 1 commit
    • ofats's avatar
      Googletest export · 710f9c11
      ofats authored
      Rewrite InvokeArgument action without using pump.
      
      PiperOrigin-RevId: 340861582
      710f9c11
  18. 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
  19. 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
  20. 27 Aug, 2020 1 commit
  21. 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
  22. 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
  23. 28 Jul, 2020 1 commit
    • ofats's avatar
      Googletest export · c6430992
      ofats authored
      Stop using ADL for InvokeArgument action.
      
      PiperOrigin-RevId: 323234396
      c6430992
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 02 Jan, 2020 1 commit
    • 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