18f90e28bSWilliam A. Kennington III #include <sdeventplus/event.hpp> 28f90e28bSWilliam A. Kennington III #include <sdeventplus/exception.hpp> 38f90e28bSWilliam A. Kennington III #include <sdeventplus/test/sdevent.hpp> 4*a8c11e3cSPatrick Williams 5*a8c11e3cSPatrick Williams #include <memory> 6*a8c11e3cSPatrick Williams #include <optional> 78f90e28bSWilliam A. Kennington III #include <type_traits> 88f90e28bSWilliam A. Kennington III 9*a8c11e3cSPatrick Williams #include <gmock/gmock.h> 10*a8c11e3cSPatrick Williams #include <gtest/gtest.h> 11*a8c11e3cSPatrick Williams 128f90e28bSWilliam A. Kennington III namespace sdeventplus 138f90e28bSWilliam A. Kennington III { 148f90e28bSWilliam A. Kennington III namespace 158f90e28bSWilliam A. Kennington III { 168f90e28bSWilliam A. Kennington III 178f90e28bSWilliam A. Kennington III using testing::DoAll; 188f90e28bSWilliam A. Kennington III using testing::Return; 198f90e28bSWilliam A. Kennington III using testing::SetArgPointee; 208f90e28bSWilliam A. Kennington III 218f90e28bSWilliam A. Kennington III class EventTest : public testing::Test 228f90e28bSWilliam A. Kennington III { 238f90e28bSWilliam A. Kennington III protected: 240a816c5dSWilliam A. Kennington III testing::StrictMock<test::SdEventMock> mock; 258f90e28bSWilliam A. Kennington III sd_event* const expected_event = reinterpret_cast<sd_event*>(1234); 268f90e28bSWilliam A. Kennington III }; 278f90e28bSWilliam A. Kennington III 288f90e28bSWilliam A. Kennington III TEST_F(EventTest, NewEventRef) 298f90e28bSWilliam A. Kennington III { 308f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_ref(expected_event)) 318f90e28bSWilliam A. Kennington III .WillOnce(Return(expected_event)); 328f90e28bSWilliam A. Kennington III Event event(expected_event, &mock); 33bdc59018SWilliam A. Kennington III EXPECT_EQ(&mock, event.getSdEvent()); 34bdc59018SWilliam A. Kennington III EXPECT_EQ(expected_event, event.get()); 358f90e28bSWilliam A. Kennington III 368f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr)); 378f90e28bSWilliam A. Kennington III } 388f90e28bSWilliam A. Kennington III 398f90e28bSWilliam A. Kennington III TEST_F(EventTest, NewEventNoRef) 408f90e28bSWilliam A. Kennington III { 418f90e28bSWilliam A. Kennington III Event event(expected_event, std::false_type(), &mock); 42bdc59018SWilliam A. Kennington III EXPECT_EQ(&mock, event.getSdEvent()); 43bdc59018SWilliam A. Kennington III EXPECT_EQ(expected_event, event.get()); 448f90e28bSWilliam A. Kennington III 458f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr)); 468f90e28bSWilliam A. Kennington III } 478f90e28bSWilliam A. Kennington III 48e68f5b51SWilliam A. Kennington III TEST_F(EventTest, CopyEventNoOwn) 49e68f5b51SWilliam A. Kennington III { 50e68f5b51SWilliam A. Kennington III Event event(expected_event, std::false_type(), &mock); 51e68f5b51SWilliam A. Kennington III EXPECT_EQ(&mock, event.getSdEvent()); 52e68f5b51SWilliam A. Kennington III EXPECT_EQ(expected_event, event.get()); 53e68f5b51SWilliam A. Kennington III 54e68f5b51SWilliam A. Kennington III Event event_noown(event, sdeventplus::internal::NoOwn()); 55e68f5b51SWilliam A. Kennington III EXPECT_EQ(&mock, event_noown.getSdEvent()); 56e68f5b51SWilliam A. Kennington III EXPECT_EQ(expected_event, event_noown.get()); 57e68f5b51SWilliam A. Kennington III 58e68f5b51SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr)); 59e68f5b51SWilliam A. Kennington III } 60e68f5b51SWilliam A. Kennington III 61e68f5b51SWilliam A. Kennington III TEST_F(EventTest, CopyEventNoOwnCopy) 62e68f5b51SWilliam A. Kennington III { 63e68f5b51SWilliam A. Kennington III Event event(expected_event, std::false_type(), &mock); 64e68f5b51SWilliam A. Kennington III EXPECT_EQ(&mock, event.getSdEvent()); 65e68f5b51SWilliam A. Kennington III EXPECT_EQ(expected_event, event.get()); 66e68f5b51SWilliam A. Kennington III 67e68f5b51SWilliam A. Kennington III Event event_noown(event, sdeventplus::internal::NoOwn()); 68e68f5b51SWilliam A. Kennington III EXPECT_EQ(&mock, event_noown.getSdEvent()); 69e68f5b51SWilliam A. Kennington III EXPECT_EQ(expected_event, event_noown.get()); 70e68f5b51SWilliam A. Kennington III 71e68f5b51SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_ref(expected_event)) 72e68f5b51SWilliam A. Kennington III .WillOnce(Return(expected_event)); 73e68f5b51SWilliam A. Kennington III Event event2(event_noown); 74e68f5b51SWilliam A. Kennington III EXPECT_EQ(&mock, event2.getSdEvent()); 75e68f5b51SWilliam A. Kennington III EXPECT_EQ(expected_event, event2.get()); 76e68f5b51SWilliam A. Kennington III 77e68f5b51SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_unref(expected_event)) 78e68f5b51SWilliam A. Kennington III .WillOnce(Return(nullptr)) 79e68f5b51SWilliam A. Kennington III .WillOnce(Return(nullptr)); 80e68f5b51SWilliam A. Kennington III } 81e68f5b51SWilliam A. Kennington III 828f90e28bSWilliam A. Kennington III TEST_F(EventTest, GetNewEvent) 838f90e28bSWilliam A. Kennington III { 848f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_new(testing::_)) 858f90e28bSWilliam A. Kennington III .WillOnce(DoAll(SetArgPointee<0>(expected_event), Return(0))); 868f90e28bSWilliam A. Kennington III Event event = Event::get_new(&mock); 87bdc59018SWilliam A. Kennington III EXPECT_EQ(&mock, event.getSdEvent()); 88bdc59018SWilliam A. Kennington III EXPECT_EQ(expected_event, event.get()); 898f90e28bSWilliam A. Kennington III 908f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr)); 918f90e28bSWilliam A. Kennington III } 928f90e28bSWilliam A. Kennington III 938f90e28bSWilliam A. Kennington III TEST_F(EventTest, GetNewEventFail) 948f90e28bSWilliam A. Kennington III { 958f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_new(testing::_)).WillOnce(Return(-EINVAL)); 968f90e28bSWilliam A. Kennington III EXPECT_THROW(Event::get_new(&mock), SdEventError); 978f90e28bSWilliam A. Kennington III } 988f90e28bSWilliam A. Kennington III 998f90e28bSWilliam A. Kennington III TEST_F(EventTest, GetDefaultEvent) 1008f90e28bSWilliam A. Kennington III { 1018f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_default(testing::_)) 1028f90e28bSWilliam A. Kennington III .WillOnce(DoAll(SetArgPointee<0>(expected_event), Return(0))); 1038f90e28bSWilliam A. Kennington III Event event = Event::get_default(&mock); 104bdc59018SWilliam A. Kennington III EXPECT_EQ(&mock, event.getSdEvent()); 105bdc59018SWilliam A. Kennington III EXPECT_EQ(expected_event, event.get()); 1068f90e28bSWilliam A. Kennington III 1078f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr)); 1088f90e28bSWilliam A. Kennington III } 1098f90e28bSWilliam A. Kennington III 1108f90e28bSWilliam A. Kennington III TEST_F(EventTest, GetDefaultEventFail) 1118f90e28bSWilliam A. Kennington III { 1128f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_default(testing::_)).WillOnce(Return(-EINVAL)); 1138f90e28bSWilliam A. Kennington III EXPECT_THROW(Event::get_default(&mock), SdEventError); 1148f90e28bSWilliam A. Kennington III } 1158f90e28bSWilliam A. Kennington III 116631c2460SWilliam A. Kennington III class EventMethodTest : public EventTest 1178f90e28bSWilliam A. Kennington III { 118631c2460SWilliam A. Kennington III protected: 119631c2460SWilliam A. Kennington III std::unique_ptr<Event> event; 120631c2460SWilliam A. Kennington III 121631c2460SWilliam A. Kennington III void SetUp() 122631c2460SWilliam A. Kennington III { 123*a8c11e3cSPatrick Williams event = std::make_unique<Event>(expected_event, std::false_type(), 124*a8c11e3cSPatrick Williams &mock); 1258f90e28bSWilliam A. Kennington III } 1268f90e28bSWilliam A. Kennington III 127631c2460SWilliam A. Kennington III void TearDown() 128631c2460SWilliam A. Kennington III { 129631c2460SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_unref(expected_event)) 130631c2460SWilliam A. Kennington III .WillOnce(Return(nullptr)); 131631c2460SWilliam A. Kennington III } 132631c2460SWilliam A. Kennington III }; 133631c2460SWilliam A. Kennington III 134fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, PrepareSuccessNone) 135fe059910SWilliam A. Kennington III { 136fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_prepare(expected_event)).WillOnce(Return(0)); 137fe059910SWilliam A. Kennington III EXPECT_EQ(0, event->prepare()); 138fe059910SWilliam A. Kennington III } 139fe059910SWilliam A. Kennington III 140fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, PrepareSuccessReady) 141fe059910SWilliam A. Kennington III { 142fe059910SWilliam A. Kennington III const int events_ready = 10; 143fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_prepare(expected_event)) 144fe059910SWilliam A. Kennington III .WillOnce(Return(events_ready)); 145fe059910SWilliam A. Kennington III EXPECT_EQ(events_ready, event->prepare()); 146fe059910SWilliam A. Kennington III } 147fe059910SWilliam A. Kennington III 148fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, PrepareInternalError) 149fe059910SWilliam A. Kennington III { 150fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_prepare(expected_event)) 151fe059910SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 152fe059910SWilliam A. Kennington III EXPECT_THROW(event->prepare(), SdEventError); 153fe059910SWilliam A. Kennington III } 154fe059910SWilliam A. Kennington III 155fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, WaitSuccessNone) 156fe059910SWilliam A. Kennington III { 157fe059910SWilliam A. Kennington III const std::chrono::microseconds timeout{20}; 158fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_wait(expected_event, timeout.count())) 159fe059910SWilliam A. Kennington III .WillOnce(Return(0)); 160fe059910SWilliam A. Kennington III EXPECT_EQ(0, event->wait(timeout)); 161fe059910SWilliam A. Kennington III } 162fe059910SWilliam A. Kennington III 163fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, WaitSuccessReady) 164fe059910SWilliam A. Kennington III { 165fe059910SWilliam A. Kennington III const int events_ready = 10; 166fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_wait(expected_event, static_cast<uint64_t>(-1))) 167fe059910SWilliam A. Kennington III .WillOnce(Return(events_ready)); 1685f3cdfadSWilliam A. Kennington III EXPECT_EQ(events_ready, event->wait(std::nullopt)); 169fe059910SWilliam A. Kennington III } 170fe059910SWilliam A. Kennington III 171fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, WaitInternalError) 172fe059910SWilliam A. Kennington III { 173fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_wait(expected_event, static_cast<uint64_t>(-1))) 174fe059910SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 1755f3cdfadSWilliam A. Kennington III EXPECT_THROW(event->wait(std::nullopt), SdEventError); 176fe059910SWilliam A. Kennington III } 177fe059910SWilliam A. Kennington III 178fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, DispatchInitial) 179fe059910SWilliam A. Kennington III { 180fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_dispatch(expected_event)).WillOnce(Return(0)); 181fe059910SWilliam A. Kennington III EXPECT_EQ(0, event->dispatch()); 182fe059910SWilliam A. Kennington III } 183fe059910SWilliam A. Kennington III 184fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, DispatchDone) 185fe059910SWilliam A. Kennington III { 186fe059910SWilliam A. Kennington III const int done_code = 10; 187fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_dispatch(expected_event)) 188fe059910SWilliam A. Kennington III .WillOnce(Return(done_code)); 189fe059910SWilliam A. Kennington III EXPECT_EQ(done_code, event->dispatch()); 190fe059910SWilliam A. Kennington III } 191fe059910SWilliam A. Kennington III 192fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, DispatchInternalError) 193fe059910SWilliam A. Kennington III { 194fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_dispatch(expected_event)) 195fe059910SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 196fe059910SWilliam A. Kennington III EXPECT_THROW(event->dispatch(), SdEventError); 197fe059910SWilliam A. Kennington III } 198fe059910SWilliam A. Kennington III 199fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, RunSuccessNone) 200fe059910SWilliam A. Kennington III { 201fe059910SWilliam A. Kennington III const std::chrono::microseconds timeout{20}; 202fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_run(expected_event, timeout.count())) 203fe059910SWilliam A. Kennington III .WillOnce(Return(0)); 204fe059910SWilliam A. Kennington III EXPECT_EQ(0, event->run(timeout)); 205fe059910SWilliam A. Kennington III } 206fe059910SWilliam A. Kennington III 207fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, RunSuccessReady) 208fe059910SWilliam A. Kennington III { 209fe059910SWilliam A. Kennington III const int events_ready = 10; 210fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_run(expected_event, static_cast<uint64_t>(-1))) 211fe059910SWilliam A. Kennington III .WillOnce(Return(events_ready)); 2125f3cdfadSWilliam A. Kennington III EXPECT_EQ(events_ready, event->run(std::nullopt)); 213fe059910SWilliam A. Kennington III } 214fe059910SWilliam A. Kennington III 215fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, RunInternalError) 216fe059910SWilliam A. Kennington III { 217fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_run(expected_event, static_cast<uint64_t>(-1))) 218fe059910SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 2195f3cdfadSWilliam A. Kennington III EXPECT_THROW(event->run(std::nullopt), SdEventError); 220fe059910SWilliam A. Kennington III } 221fe059910SWilliam A. Kennington III 222631c2460SWilliam A. Kennington III TEST_F(EventMethodTest, LoopSuccess) 223631c2460SWilliam A. Kennington III { 224631c2460SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_loop(expected_event)).WillOnce(Return(0)); 225631c2460SWilliam A. Kennington III EXPECT_EQ(0, event->loop()); 226631c2460SWilliam A. Kennington III } 227631c2460SWilliam A. Kennington III 228631c2460SWilliam A. Kennington III TEST_F(EventMethodTest, LoopUserError) 2298f90e28bSWilliam A. Kennington III { 2308f90e28bSWilliam A. Kennington III const int user_error = 10; 2318f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_loop(expected_event)) 2328f90e28bSWilliam A. Kennington III .WillOnce(Return(user_error)); 2336364dd9eSWilliam A. Kennington III EXPECT_EQ(user_error, event->loop()); 2348f90e28bSWilliam A. Kennington III } 2358f90e28bSWilliam A. Kennington III 236631c2460SWilliam A. Kennington III TEST_F(EventMethodTest, LoopInternalError) 2378f90e28bSWilliam A. Kennington III { 2388f90e28bSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_loop(expected_event)).WillOnce(Return(-EINVAL)); 239631c2460SWilliam A. Kennington III EXPECT_THROW(event->loop(), SdEventError); 240631c2460SWilliam A. Kennington III } 241631c2460SWilliam A. Kennington III 242fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, ExitSuccess) 243fe059910SWilliam A. Kennington III { 244fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_exit(expected_event, 0)).WillOnce(Return(2)); 2450005e30cSWilliam A. Kennington III event->exit(0); 2460005e30cSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_exit(expected_event, 0)).WillOnce(Return(0)); 2470005e30cSWilliam A. Kennington III event->exit(0); 2480005e30cSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_exit(expected_event, 10)).WillOnce(Return(0)); 2490005e30cSWilliam A. Kennington III event->exit(10); 250fe059910SWilliam A. Kennington III } 251fe059910SWilliam A. Kennington III 252fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, ExitInternalError) 253fe059910SWilliam A. Kennington III { 254fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_exit(expected_event, 5)) 255fe059910SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 256fe059910SWilliam A. Kennington III EXPECT_THROW(event->exit(5), SdEventError); 257fe059910SWilliam A. Kennington III } 258fe059910SWilliam A. Kennington III 259fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, GetExitCodeSuccess) 260fe059910SWilliam A. Kennington III { 261fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_get_exit_code(expected_event, testing::_)) 262fe059910SWilliam A. Kennington III .WillOnce(DoAll(SetArgPointee<1>(1), Return(0))); 263fe059910SWilliam A. Kennington III EXPECT_EQ(1, event->get_exit_code()); 264fe059910SWilliam A. Kennington III 265fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_get_exit_code(expected_event, testing::_)) 266fe059910SWilliam A. Kennington III .WillOnce(DoAll(SetArgPointee<1>(0), Return(2))); 267fe059910SWilliam A. Kennington III EXPECT_EQ(0, event->get_exit_code()); 268fe059910SWilliam A. Kennington III } 269fe059910SWilliam A. Kennington III 270fe059910SWilliam A. Kennington III TEST_F(EventMethodTest, GetExitCodeError) 271fe059910SWilliam A. Kennington III { 272fe059910SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_get_exit_code(expected_event, testing::_)) 273fe059910SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 274fe059910SWilliam A. Kennington III EXPECT_THROW(event->get_exit_code(), SdEventError); 275fe059910SWilliam A. Kennington III } 276fe059910SWilliam A. Kennington III 277631c2460SWilliam A. Kennington III TEST_F(EventMethodTest, GetWatchdogSuccess) 278631c2460SWilliam A. Kennington III { 279631c2460SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_get_watchdog(expected_event)) 280631c2460SWilliam A. Kennington III .WillOnce(Return(0)); 2810005e30cSWilliam A. Kennington III EXPECT_FALSE(event->get_watchdog()); 282631c2460SWilliam A. Kennington III 283631c2460SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_get_watchdog(expected_event)) 284631c2460SWilliam A. Kennington III .WillOnce(Return(2)); 2850005e30cSWilliam A. Kennington III EXPECT_TRUE(event->get_watchdog()); 286631c2460SWilliam A. Kennington III } 287631c2460SWilliam A. Kennington III 288631c2460SWilliam A. Kennington III TEST_F(EventMethodTest, GetWatchdogError) 289631c2460SWilliam A. Kennington III { 290631c2460SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_get_watchdog(expected_event)) 291631c2460SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 292631c2460SWilliam A. Kennington III EXPECT_THROW(event->get_watchdog(), SdEventError); 293631c2460SWilliam A. Kennington III } 294631c2460SWilliam A. Kennington III 295631c2460SWilliam A. Kennington III TEST_F(EventMethodTest, SetWatchdogSuccess) 296631c2460SWilliam A. Kennington III { 2970005e30cSWilliam A. Kennington III // Disable 2980005e30cSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_set_watchdog(expected_event, false)) 299631c2460SWilliam A. Kennington III .WillOnce(Return(0)); 3000005e30cSWilliam A. Kennington III EXPECT_FALSE(event->set_watchdog(false)); 301631c2460SWilliam A. Kennington III 3020005e30cSWilliam A. Kennington III // Enable but not supported 3030005e30cSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_set_watchdog(expected_event, true)) 3040005e30cSWilliam A. Kennington III .WillOnce(Return(0)); 3050005e30cSWilliam A. Kennington III EXPECT_FALSE(event->set_watchdog(true)); 3060005e30cSWilliam A. Kennington III 3070005e30cSWilliam A. Kennington III // Enabled and supported 3080005e30cSWilliam A. Kennington III EXPECT_CALL(mock, sd_event_set_watchdog(expected_event, true)) 309631c2460SWilliam A. Kennington III .WillOnce(Return(2)); 3100005e30cSWilliam A. Kennington III EXPECT_TRUE(event->set_watchdog(true)); 311631c2460SWilliam A. Kennington III } 312631c2460SWilliam A. Kennington III 313631c2460SWilliam A. Kennington III TEST_F(EventMethodTest, SetWatchdogError) 314631c2460SWilliam A. Kennington III { 315631c2460SWilliam A. Kennington III EXPECT_CALL(mock, sd_event_set_watchdog(expected_event, 1)) 316631c2460SWilliam A. Kennington III .WillOnce(Return(-EINVAL)); 317631c2460SWilliam A. Kennington III EXPECT_THROW(event->set_watchdog(1), SdEventError); 3188f90e28bSWilliam A. Kennington III } 3198f90e28bSWilliam A. Kennington III 3208f90e28bSWilliam A. Kennington III } // namespace 3218f90e28bSWilliam A. Kennington III } // namespace sdeventplus 322