1 #pragma once 2 3 #include <gmock/gmock.h> 4 #include <sdeventplus/internal/sdevent.hpp> 5 #include <systemd/sd-event.h> 6 7 namespace sdeventplus 8 { 9 namespace test 10 { 11 12 /** @class SdEventMock 13 * @brief sd_event mocked implementation 14 * @details Uses googlemock to handle all sd_event calls 15 */ 16 class SdEventMock : public internal::SdEvent 17 { 18 public: 19 MOCK_CONST_METHOD1(sd_event_default, int(sd_event**)); 20 MOCK_CONST_METHOD1(sd_event_new, int(sd_event**)); 21 MOCK_CONST_METHOD1(sd_event_ref, sd_event*(sd_event*)); 22 MOCK_CONST_METHOD1(sd_event_unref, sd_event*(sd_event*)); 23 24 MOCK_CONST_METHOD6(sd_event_add_io, 25 int(sd_event*, sd_event_source**, int, uint32_t, 26 sd_event_io_handler_t, void*)); 27 MOCK_CONST_METHOD7(sd_event_add_time, 28 int(sd_event*, sd_event_source**, clockid_t, uint64_t, 29 uint64_t, sd_event_time_handler_t, void*)); 30 MOCK_CONST_METHOD5(sd_event_add_signal, 31 int(sd_event*, sd_event_source**, int, 32 sd_event_signal_handler_t, void*)); 33 MOCK_CONST_METHOD6(sd_event_add_child, 34 int(sd_event*, sd_event_source**, pid_t, int, 35 sd_event_child_handler_t, void*)); 36 MOCK_CONST_METHOD4(sd_event_add_defer, int(sd_event*, sd_event_source**, 37 sd_event_handler_t, void*)); 38 MOCK_CONST_METHOD4(sd_event_add_post, int(sd_event*, sd_event_source**, 39 sd_event_handler_t, void*)); 40 MOCK_CONST_METHOD4(sd_event_add_exit, int(sd_event*, sd_event_source**, 41 sd_event_handler_t, void*)); 42 43 MOCK_CONST_METHOD1(sd_event_prepare, int(sd_event*)); 44 MOCK_CONST_METHOD2(sd_event_wait, int(sd_event*, uint64_t)); 45 MOCK_CONST_METHOD1(sd_event_dispatch, int(sd_event*)); 46 MOCK_CONST_METHOD2(sd_event_run, int(sd_event*, uint64_t)); 47 MOCK_CONST_METHOD1(sd_event_loop, int(sd_event*)); 48 MOCK_CONST_METHOD2(sd_event_exit, int(sd_event*, int)); 49 50 MOCK_CONST_METHOD3(sd_event_now, int(sd_event*, clockid_t, uint64_t*)); 51 52 MOCK_CONST_METHOD2(sd_event_get_exit_code, int(sd_event*, int*)); 53 MOCK_CONST_METHOD1(sd_event_get_watchdog, int(sd_event*)); 54 MOCK_CONST_METHOD2(sd_event_set_watchdog, int(sd_event*, int b)); 55 56 MOCK_CONST_METHOD1(sd_event_source_ref, sd_event_source*(sd_event_source*)); 57 MOCK_CONST_METHOD1(sd_event_source_unref, 58 sd_event_source*(sd_event_source*)); 59 60 MOCK_CONST_METHOD2(sd_event_source_set_userdata, 61 void*(sd_event_source*, void*)); 62 63 MOCK_CONST_METHOD2(sd_event_source_get_description, 64 int(sd_event_source*, const char**)); 65 MOCK_CONST_METHOD2(sd_event_source_set_description, 66 int(sd_event_source*, const char*)); 67 MOCK_CONST_METHOD2(sd_event_source_set_prepare, 68 int(sd_event_source*, sd_event_handler_t)); 69 MOCK_CONST_METHOD1(sd_event_source_get_pending, int(sd_event_source*)); 70 MOCK_CONST_METHOD2(sd_event_source_get_priority, 71 int(sd_event_source*, int64_t*)); 72 MOCK_CONST_METHOD2(sd_event_source_set_priority, 73 int(sd_event_source*, int64_t)); 74 MOCK_CONST_METHOD2(sd_event_source_get_enabled, 75 int(sd_event_source*, int*)); 76 MOCK_CONST_METHOD2(sd_event_source_set_enabled, int(sd_event_source*, int)); 77 MOCK_CONST_METHOD1(sd_event_source_get_io_fd, int(sd_event_source*)); 78 MOCK_CONST_METHOD2(sd_event_source_set_io_fd, int(sd_event_source*, int)); 79 MOCK_CONST_METHOD2(sd_event_source_get_io_events, 80 int(sd_event_source*, uint32_t*)); 81 MOCK_CONST_METHOD2(sd_event_source_set_io_events, 82 int(sd_event_source*, uint32_t)); 83 MOCK_CONST_METHOD2(sd_event_source_get_io_revents, 84 int(sd_event_source*, uint32_t*)); 85 MOCK_CONST_METHOD2(sd_event_source_get_time, 86 int(sd_event_source*, uint64_t*)); 87 MOCK_CONST_METHOD2(sd_event_source_set_time, 88 int(sd_event_source*, uint64_t)); 89 MOCK_CONST_METHOD2(sd_event_source_get_time_accuracy, 90 int(sd_event_source*, uint64_t*)); 91 MOCK_CONST_METHOD2(sd_event_source_set_time_accuracy, 92 int(sd_event_source*, uint64_t)); 93 MOCK_CONST_METHOD1(sd_event_source_get_signal, int(sd_event_source*)); 94 MOCK_CONST_METHOD2(sd_event_source_get_child_pid, 95 int(sd_event_source*, pid_t*)); 96 }; 97 98 } // namespace test 99 } // namespace sdeventplus 100