William A. Kennington III | 8f90e28 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 1 | #pragma once |
| 2 | |
| 3 | #include <gmock/gmock.h> |
William A. Kennington III | 27efe8f | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 4 | #include <sdeventplus/internal/sdevent.hpp> |
William A. Kennington III | 8f90e28 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 5 | #include <systemd/sd-event.h> |
| 6 | |
| 7 | namespace sdeventplus |
| 8 | { |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 9 | namespace test |
| 10 | { |
William A. Kennington III | 8f90e28 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 11 | |
William A. Kennington III | 16cf1b6 | 2018-07-23 14:15:31 -0700 | [diff] [blame^] | 12 | /** @class SdEventMock |
| 13 | * @brief sd_event mocked implementation |
| 14 | * @details Uses googlemock to handle all sd_event calls |
| 15 | */ |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 16 | class SdEventMock : public internal::SdEvent |
William A. Kennington III | 8f90e28 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 17 | { |
| 18 | public: |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 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*)); |
William A. Kennington III | 8f90e28 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 23 | |
William A. Kennington III | ce80c3f | 2018-07-22 14:59:13 -0700 | [diff] [blame] | 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*)); |
William A. Kennington III | e32a88e | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 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*)); |
William A. Kennington III | a3a3850 | 2018-07-22 18:15:59 -0700 | [diff] [blame] | 30 | 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 III | 571fdf9 | 2018-07-22 18:16:22 -0700 | [diff] [blame] | 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*)); |
William A. Kennington III | 5a7365c | 2018-07-22 00:22:08 -0700 | [diff] [blame] | 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*)); |
William A. Kennington III | e32a88e | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 42 | |
William A. Kennington III | fe05991 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 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)); |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 47 | MOCK_CONST_METHOD1(sd_event_loop, int(sd_event*)); |
William A. Kennington III | fe05991 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 48 | MOCK_CONST_METHOD2(sd_event_exit, int(sd_event*, int)); |
William A. Kennington III | 7597a08 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 49 | |
| 50 | MOCK_CONST_METHOD3(sd_event_now, int(sd_event*, clockid_t, uint64_t*)); |
| 51 | |
William A. Kennington III | fe05991 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 52 | MOCK_CONST_METHOD2(sd_event_get_exit_code, int(sd_event*, int*)); |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 53 | 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 III | dcc08b6 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 55 | |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 56 | MOCK_CONST_METHOD1(sd_event_source_ref, sd_event_source*(sd_event_source*)); |
William A. Kennington III | dcc08b6 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 57 | MOCK_CONST_METHOD1(sd_event_source_unref, |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 58 | sd_event_source*(sd_event_source*)); |
William A. Kennington III | 65db863 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 59 | |
William A. Kennington III | 2d943ea | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 60 | MOCK_CONST_METHOD2(sd_event_source_set_userdata, |
| 61 | void*(sd_event_source*, void*)); |
| 62 | |
William A. Kennington III | 65db863 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 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)); |
William A. Kennington III | ce80c3f | 2018-07-22 14:59:13 -0700 | [diff] [blame] | 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)); |
William A. Kennington III | ce80c3f | 2018-07-22 14:59:13 -0700 | [diff] [blame] | 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*)); |
William A. Kennington III | e32a88e | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 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)); |
William A. Kennington III | a3a3850 | 2018-07-22 18:15:59 -0700 | [diff] [blame] | 93 | MOCK_CONST_METHOD1(sd_event_source_get_signal, int(sd_event_source*)); |
William A. Kennington III | 571fdf9 | 2018-07-22 18:16:22 -0700 | [diff] [blame] | 94 | MOCK_CONST_METHOD2(sd_event_source_get_child_pid, |
| 95 | int(sd_event_source*, pid_t*)); |
William A. Kennington III | 8f90e28 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 96 | }; |
| 97 | |
William A. Kennington III | 0a816c5 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 98 | } // namespace test |
William A. Kennington III | 8f90e28 | 2018-07-17 14:40:14 -0700 | [diff] [blame] | 99 | } // namespace sdeventplus |