From 8eaf5fcc598df14c8956c5afe657f51e683074ef Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 29 Mar 2019 15:36:39 -0700 Subject: internal/utils: performCallback should preserve argument references Arguments including the function are now passed with reference types forwarded. Change-Id: I32cf4704737faa6c140d16352528ceb0d738f5b8 Signed-off-by: William A. Kennington III --- test/internal/utils.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'test/internal/utils.cpp') diff --git a/test/internal/utils.cpp b/test/internal/utils.cpp index 403964c..8f5d75c 100644 --- a/test/internal/utils.cpp +++ b/test/internal/utils.cpp @@ -1,7 +1,10 @@ +#include #include +#include #include #include #include +#include namespace sdeventplus { @@ -15,6 +18,20 @@ TEST(UtilsTest, PerformCallbackSuccess) EXPECT_EQ(0, performCallback(nullptr, []() {})); } +TEST(UtilsTest, PerformCallbackAcceptsReference) +{ + auto f = + std::bind([](const std::unique_ptr&) {}, std::make_unique(1)); + EXPECT_EQ(0, performCallback(nullptr, f)); +} + +TEST(UtilsTest, PerformCallbackAcceptsMove) +{ + auto f = + std::bind([](const std::unique_ptr&) {}, std::make_unique(1)); + EXPECT_EQ(0, performCallback(nullptr, std::move(f))); +} + TEST(UtilsTest, SetPrepareSystemError) { EXPECT_EQ(-EBUSY, performCallback("system_error", []() { -- cgit v1.2.3