Allow implicit matcher construction from nullptr. This allows "nullptr" to be used as a valid matcher for smart pointer types.

PiperOrigin-RevId: 861759501
Change-Id: I09ff55cd532014015725ec61356f480760819b29
This commit is contained in:
Abseil Team
2026-01-27 09:35:08 -08:00
committed by Copybara-Service
parent 5fd443cdc3
commit 56efe39831
2 changed files with 30 additions and 1 deletions
@@ -798,6 +798,7 @@ TEST(ExpectThat, TakesLiterals) {
EXPECT_THAT(1, 1);
EXPECT_THAT(1.0, 1.0);
EXPECT_THAT(std::string(), "");
EXPECT_THAT(std::shared_ptr<int>(), nullptr);
}
TEST(ExpectThat, TakesFunctions) {
@@ -1126,6 +1127,16 @@ TEST(IsNullTest, CanDescribeSelf) {
EXPECT_EQ("isn't NULL", DescribeNegation(m));
}
struct SmartPtrHelper {
MOCK_METHOD(void, Call, (std::shared_ptr<int>));
};
TEST(IsNullTest, WorksWithSmartPtr) {
SmartPtrHelper helper;
EXPECT_CALL(helper, Call(nullptr));
helper.Call(nullptr);
}
// Tests that NotNull() matches any non-NULL pointer of any type.
TEST(NotNullTest, MatchesNonNullPointer) {
Matcher<int*> m1 = NotNull();