1. 05 Feb, 2021 1 commit
    • Abseil Team's avatar
      Googletest export · d1143988
      Abseil Team authored
      Remove uses of GTEST_HAS_TYPED_TEST_P and GTEST_HAS_TYPED_TEST.
      
      PiperOrigin-RevId: 353935996
      d1143988
  2. 26 Jan, 2021 4 commits
    • ofats's avatar
      Googletest export · 59dea67b
      ofats authored
      Remove scripts for code generating together with related files.
      
      PiperOrigin-RevId: 352805926
      59dea67b
    • Abseil Team's avatar
      Googletest export · 997c36c1
      Abseil Team authored
      Stop using pump for generating internal/custom/gmock-generated-actions.h
      
      PiperOrigin-RevId: 352660735
      997c36c1
    • Abseil Team's avatar
      Googletest export · 2c06d021
      Abseil Team authored
      Internal change
      
      PiperOrigin-RevId: 352607401
      2c06d021
    • Abseil Team's avatar
      Googletest export · 14098f20
      Abseil Team authored
      Merge CONTRIBUTORS, delete LICENSEs in googletest/ and googlemock/
      
      PiperOrigin-RevId: 352558822
      14098f20
  3. 14 Jan, 2021 1 commit
    • Abseil Team's avatar
      Googletest export · c13c27a5
      Abseil Team authored
      Change Matcher<T> to allow binding an implementation by value directly:
       - Drop the requirement of MatcherInterface. Doing manual type erasure avoid
         extra layers in many cases.
       - Avoid the adaptor for `MatcherInterface<T>` and `MatcherInterface<const T&>` mismatch.
       - Use a small object optimization when possible. This makes things like
         `_` and `Eq(1)` really cheap and do not require memory allocations.
       - Migrate some matchers to the new model to speed them up and to test the new framework. More matchers to come in future changes.
      
      PiperOrigin-RevId: 350580998
      c13c27a5
  4. 22 Dec, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · ca4b7c9f
      Abseil Team authored
      Give each of Naggy/Nice/StrictMock a base class whose constructor runs before
      the mocked class's constructor, and a destructor that runs after the mocked
      class's destructor, so that any mock methods run in either the constructor or
      destructor use the same strictness as other calls.
      
      PiperOrigin-RevId: 348511612
      ca4b7c9f
  5. 12 Dec, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 18f8200e
      Abseil Team authored
      Add static_asserts that verify that no class hierarchy contains more than one
      of {NiceMock, NaggyMock, StrictMock}. This sort of nesting has always been
      disallowed, but this CL adds a compile-time check to prevent it.
      
      PiperOrigin-RevId: 347037822
      18f8200e
  6. 09 Dec, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · e5644f5f
      Abseil Team authored
      Introduce a new `Address` matcher to gmock.
      
      PiperOrigin-RevId: 346344591
      e5644f5f
  7. 07 Dec, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · a02a5916
      Abseil Team authored
      Add a `Pointer` matcher as an analog to `Pointee`.
      
      Similar to `Pointee`, `Pointer` works with either raw or smart pointers and
      allows creating a matcher like Pointer(Eq(foo)) for smart pointers.
      
      PiperOrigin-RevId: 346164768
      a02a5916
  8. 12 Nov, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · a1adec79
      Abseil Team authored
      Use a tagged constructor for FlatTuple instead.
      Some versions of MSVC are getting confused with that constructor and generating invalid code.
      
      PiperOrigin-RevId: 342050957
      a1adec79
  9. 09 Nov, 2020 2 commits
    • 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
    • Abseil Team's avatar
      Googletest export · 0c400f67
      Abseil Team authored
      GMock: Make Truly explain when it fails
      
      I just wrote a test that had a matcher of the form
        Optional(AllOf(
          SomeMatcher,
          SomeOtherMatcher,
          Truly(SomePredicate)))
      
      The predicate failed, the other two matchers succeeded, and I got a hard-to-interpret message saying that the value in the optional "didn't match". Didn't match what?
      
      This change improves situations like that slightly by having Truly explain to its result listener when it fails. When there are multiple Trulys in an AllOf, there will be some ambiguity, but it will at least provide more information than right now.
      
      PiperOrigin-RevId: 341105141
      0c400f67
  10. 06 Nov, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · d89b3630
      Abseil Team authored
      Add support for ref qualifiers in MOCK_METHOD.
      
      PiperOrigin-RevId: 341047839
      d89b3630
  11. 05 Nov, 2020 1 commit
    • ofats's avatar
      Googletest export · 710f9c11
      ofats authored
      Rewrite InvokeArgument action without using pump.
      
      PiperOrigin-RevId: 340861582
      710f9c11
  12. 30 Oct, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 28287731
      Abseil Team authored
      Remove obsolete comment about non-const references.
      
      They used to be banned by the C++ style guide, but positions shifted, and this comment is no longer up to date.
      
      There's another reference (heh) on lines 816-819 to how gmock is a "general framework", with the possible implication that support for non-const references was weird in some way and only there to be "general", but I left it alone because I don't really feel I understand what it's saying.
      
      PiperOrigin-RevId: 339323428
      28287731
  13. 15 Oct, 2020 1 commit
    • dmauro's avatar
      Googletest export · 3c95bf55
      dmauro authored
      Fixes build warnings from previous CL
      Add CMake to internal presubmit to prevent these
      
      PiperOrigin-RevId: 337325504
      3c95bf55
  14. 14 Oct, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · a4621888
      Abseil Team authored
      Add ::testing::FieldsAre matcher for objects that support get<> and structured bindings.
      PiperOrigin-RevId: 337165285
      a4621888
  15. 07 Oct, 2020 1 commit
  16. 29 Sep, 2020 1 commit
  17. 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
  18. 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
  19. 27 Aug, 2020 1 commit
  20. 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
  21. 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
  22. 03 Aug, 2020 7 commits
  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. 05 Jul, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 356f2d26
      Abseil Team authored
      Improve compatibility with strict compilers targeting Windows
      
      Remove an unnecessary ##, which could result in warnings about invalid preprocessor tokens when pasting to an initial '('
      
      PiperOrigin-RevId: 319277617
      356f2d26
  25. 10 Jun, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 13a433a9
      Abseil Team authored
      Change string matchers, like HasSubstr, to accept `string_view` input if available.
      
      PiperOrigin-RevId: 315726484
      13a433a9
  26. 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