diff options
author | Abseil Team <absl-team@google.com> | 2023-04-24 08:04:04 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-04-24 08:04:41 -0700 |
commit | 8bd7178b14ea61972f8b04e9a9352bc4a4666cfb (patch) | |
tree | 3355edf637fd61458b2b4467e322b89a18769fa1 /absl/functional/function_ref_test.cc | |
parent | 43e07a0ee0ee1111186a69bf32f65a0a2a24e387 (diff) | |
download | abseil-8bd7178b14ea61972f8b04e9a9352bc4a4666cfb.tar.gz abseil-8bd7178b14ea61972f8b04e9a9352bc4a4666cfb.tar.bz2 abseil-8bd7178b14ea61972f8b04e9a9352bc4a4666cfb.zip |
Adds template specialization for nullptr assertion of absl::AnyInvocable types.
PiperOrigin-RevId: 526644558
Change-Id: I050162c2c0d667c32f7e11f51201054cca52667d
Diffstat (limited to 'absl/functional/function_ref_test.cc')
-rw-r--r-- | absl/functional/function_ref_test.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/absl/functional/function_ref_test.cc b/absl/functional/function_ref_test.cc index d0923fdd..f91e15e0 100644 --- a/absl/functional/function_ref_test.cc +++ b/absl/functional/function_ref_test.cc @@ -20,6 +20,7 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" #include "absl/container/internal/test_instance_tracker.h" +#include "absl/functional/any_invocable.h" #include "absl/memory/memory.h" namespace absl { @@ -157,6 +158,25 @@ TEST(FunctionRef, NullMemberPtrAssertFails) { EXPECT_DEBUG_DEATH({ FunctionRef<int(const S& s)> ref(mem_ptr); }, ""); } +TEST(FunctionRef, NullStdFunctionAssertPasses) { + std::function<void()> function = []() {}; + FunctionRef<void()> ref(function); +} + +TEST(FunctionRef, NullStdFunctionAssertFails) { + std::function<void()> function = nullptr; + EXPECT_DEBUG_DEATH({ FunctionRef<void()> ref(function); }, ""); +} + +TEST(FunctionRef, NullAnyInvocableAssertPasses) { + AnyInvocable<void() const> invocable = []() {}; + FunctionRef<void()> ref(invocable); +} +TEST(FunctionRef, NullAnyInvocableAssertFails) { + AnyInvocable<void() const> invocable = nullptr; + EXPECT_DEBUG_DEATH({ FunctionRef<void()> ref(invocable); }, ""); +} + #endif // GTEST_HAS_DEATH_TEST TEST(FunctionRef, CopiesAndMovesPerPassByValue) { |