blob: 366cb67468a7a0717808c8322674f550667d287e [file] [log] [blame]
William A. Kennington III8f90e282018-07-17 14:40:14 -07001#pragma once
2
3#include <gmock/gmock.h>
William A. Kennington III27efe8f2018-07-17 14:40:14 -07004#include <sdeventplus/internal/sdevent.hpp>
William A. Kennington III8f90e282018-07-17 14:40:14 -07005#include <systemd/sd-event.h>
6
7namespace sdeventplus
8{
William A. Kennington III0a816c52018-07-17 14:40:14 -07009namespace test
10{
William A. Kennington III8f90e282018-07-17 14:40:14 -070011
William A. Kennington III16cf1b62018-07-23 14:15:31 -070012/** @class SdEventMock
13 * @brief sd_event mocked implementation
14 * @details Uses googlemock to handle all sd_event calls
15 */
William A. Kennington III0a816c52018-07-17 14:40:14 -070016class SdEventMock : public internal::SdEvent
William A. Kennington III8f90e282018-07-17 14:40:14 -070017{
18 public:
William A. Kennington III0a816c52018-07-17 14:40:14 -070019 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*));
William A. Kennington III8f90e282018-07-17 14:40:14 -070023
William A. Kennington IIIce80c3f2018-07-22 14:59:13 -070024 MOCK_CONST_METHOD6(sd_event_add_io,
25 int(sd_event*, sd_event_source**, int, uint32_t,
26 sd_event_io_handler_t, void*));
William A. Kennington IIIe32a88e2018-07-17 14:40:14 -070027 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*));
William A. Kennington IIIa3a38502018-07-22 18:15:59 -070030 MOCK_CONST_METHOD5(sd_event_add_signal,
31 int(sd_event*, sd_event_source**, int,
32 sd_event_signal_handler_t, void*));
William A. Kennington III571fdf92018-07-22 18:16:22 -070033 MOCK_CONST_METHOD6(sd_event_add_child,
34 int(sd_event*, sd_event_source**, pid_t, int,
35 sd_event_child_handler_t, void*));
William A. Kennington III5a7365c2018-07-22 00:22:08 -070036 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*));
William A. Kennington IIIe32a88e2018-07-17 14:40:14 -070042
William A. Kennington IIIfe059912018-07-17 14:40:14 -070043 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));
William A. Kennington III0a816c52018-07-17 14:40:14 -070047 MOCK_CONST_METHOD1(sd_event_loop, int(sd_event*));
William A. Kennington IIIfe059912018-07-17 14:40:14 -070048 MOCK_CONST_METHOD2(sd_event_exit, int(sd_event*, int));
William A. Kennington III7597a082018-07-17 14:40:14 -070049
50 MOCK_CONST_METHOD3(sd_event_now, int(sd_event*, clockid_t, uint64_t*));
51
William A. Kennington IIIfe059912018-07-17 14:40:14 -070052 MOCK_CONST_METHOD2(sd_event_get_exit_code, int(sd_event*, int*));
William A. Kennington III0a816c52018-07-17 14:40:14 -070053 MOCK_CONST_METHOD1(sd_event_get_watchdog, int(sd_event*));
54 MOCK_CONST_METHOD2(sd_event_set_watchdog, int(sd_event*, int b));
William A. Kennington IIIdcc08b62018-07-17 14:40:14 -070055
William A. Kennington III0a816c52018-07-17 14:40:14 -070056 MOCK_CONST_METHOD1(sd_event_source_ref, sd_event_source*(sd_event_source*));
William A. Kennington IIIdcc08b62018-07-17 14:40:14 -070057 MOCK_CONST_METHOD1(sd_event_source_unref,
William A. Kennington III0a816c52018-07-17 14:40:14 -070058 sd_event_source*(sd_event_source*));
William A. Kennington III65db8632018-07-17 14:40:14 -070059
William A. Kennington III2d943ea2018-07-17 14:40:14 -070060 MOCK_CONST_METHOD2(sd_event_source_set_userdata,
61 void*(sd_event_source*, void*));
62
William A. Kennington III65db8632018-07-17 14:40:14 -070063 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));
William A. Kennington IIIce80c3f2018-07-22 14:59:13 -070077 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));
William A. Kennington IIIce80c3f2018-07-22 14:59:13 -070079 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*));
William A. Kennington IIIe32a88e2018-07-17 14:40:14 -070085 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));
William A. Kennington IIIa3a38502018-07-22 18:15:59 -070093 MOCK_CONST_METHOD1(sd_event_source_get_signal, int(sd_event_source*));
William A. Kennington III571fdf92018-07-22 18:16:22 -070094 MOCK_CONST_METHOD2(sd_event_source_get_child_pid,
95 int(sd_event_source*, pid_t*));
William A. Kennington III8f90e282018-07-17 14:40:14 -070096};
97
William A. Kennington III0a816c52018-07-17 14:40:14 -070098} // namespace test
William A. Kennington III8f90e282018-07-17 14:40:14 -070099} // namespace sdeventplus