summaryrefslogtreecommitdiff
path: root/test/fake-reactor.c
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2023-01-26 13:07:07 +0100
committerAlbert Cervin <albert@acervin.com>2023-01-26 13:07:07 +0100
commite65158a0326108d1fc724ee683b7fa900ef2671a (patch)
tree9bad30b377a326e0d0e3101c4f96228ae7a41673 /test/fake-reactor.c
parent9a2b138a03e27d0f04101fe6ae3977d79518c513 (diff)
downloaddged-e65158a0326108d1fc724ee683b7fa900ef2671a.tar.gz
dged-e65158a0326108d1fc724ee683b7fa900ef2671a.tar.xz
dged-e65158a0326108d1fc724ee683b7fa900ef2671a.zip
More tests and documentation
Also, split out platform-specific parts and add mocks for tests.
Diffstat (limited to 'test/fake-reactor.c')
-rw-r--r--test/fake-reactor.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/fake-reactor.c b/test/fake-reactor.c
new file mode 100644
index 0000000..aafe8a3
--- /dev/null
+++ b/test/fake-reactor.c
@@ -0,0 +1,47 @@
+#include "fake-reactor.h"
+#include <stdlib.h>
+
+struct reactor {
+ struct fake_reactor_impl *impl;
+};
+
+struct reactor *reactor_create() {
+ return (struct reactor *)calloc(1, sizeof(struct reactor));
+}
+
+void reactor_destroy(struct reactor *reactor) { free(reactor); }
+
+void reactor_update(struct reactor *reactor) {}
+bool reactor_poll_event(struct reactor *reactor, uint32_t ev_id) {
+ if (reactor->impl != NULL) {
+ return reactor->impl->poll_event(reactor->impl->userdata, ev_id);
+ } else {
+ return false;
+ }
+}
+
+uint32_t reactor_register_interest(struct reactor *reactor, int fd,
+ enum interest interest) {
+ if (reactor->impl != NULL) {
+ return reactor->impl->register_interest(reactor->impl->userdata, fd,
+ interest);
+ } else {
+ return 0;
+ }
+}
+
+void reactor_unregister_interest(struct reactor *reactor, uint32_t ev_id) {
+ if (reactor->impl != NULL) {
+ return reactor->impl->unregister_interest(reactor->impl->userdata, ev_id);
+ }
+}
+
+struct reactor *fake_reactor_create(struct fake_reactor_impl *impl) {
+ struct reactor *r = reactor_create();
+ set_reactor_impl(r, impl);
+ return r;
+}
+
+void set_reactor_impl(struct reactor *reactor, struct fake_reactor_impl *impl) {
+ reactor->impl = impl;
+}