From afcd9285e6f52c31d5b5b95307d3e6227545a509 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Sun, 5 Apr 2020 23:15:19 +0200 Subject: [PATCH] dispatcher: updated tests (lib) --- test/CMakeLists.txt | 2 -- test/lib/dispatcher/types.h | 6 ++-- test/lib/dispatcher_plugin/main.cpp | 19 +++------- test/lib/dispatcher_plugin/plugin.cpp | 9 +++-- test/lib/dispatcher_plugin/proxy.h | 16 --------- test/lib/dispatcher_plugin/types.h | 6 ---- test/lib/dispatcher_plugin_std/main.cpp | 43 ----------------------- test/lib/dispatcher_plugin_std/plugin.cpp | 18 ---------- test/lib/dispatcher_plugin_std/proxy.h | 16 --------- test/lib/dispatcher_plugin_std/types.h | 16 --------- test/lib/dispatcher_std/lib.cpp | 8 ----- test/lib/dispatcher_std/main.cpp | 24 ------------- test/lib/dispatcher_std/types.h | 12 ------- 13 files changed, 16 insertions(+), 179 deletions(-) delete mode 100644 test/lib/dispatcher_plugin/proxy.h delete mode 100644 test/lib/dispatcher_plugin_std/main.cpp delete mode 100644 test/lib/dispatcher_plugin_std/plugin.cpp delete mode 100644 test/lib/dispatcher_plugin_std/proxy.h delete mode 100644 test/lib/dispatcher_plugin_std/types.h delete mode 100644 test/lib/dispatcher_std/lib.cpp delete mode 100644 test/lib/dispatcher_std/main.cpp delete mode 100644 test/lib/dispatcher_std/types.h diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6b3078160..c9f453804 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -115,7 +115,6 @@ if(BUILD_LIB) SETUP_LIB_TEST(meta) SETUP_LIB_TEST(registry) - SETUP_LIB_TEST(dispatcher_std ENTT_STANDARD_CPP) SETUP_LIB_TEST(emitter_std ENTT_STANDARD_CPP) SETUP_LIB_TEST(meta_std ENTT_STANDARD_CPP) SETUP_LIB_TEST(registry_std ENTT_STANDARD_CPP) @@ -125,7 +124,6 @@ if(BUILD_LIB) SETUP_PLUGIN_TEST(meta_plugin) SETUP_PLUGIN_TEST(registry_plugin) - SETUP_PLUGIN_TEST(dispatcher_plugin_std ENTT_STANDARD_CPP) SETUP_PLUGIN_TEST(emitter_plugin_std ENTT_STANDARD_CPP) SETUP_PLUGIN_TEST(meta_plugin_std ENTT_STANDARD_CPP) SETUP_PLUGIN_TEST(registry_plugin_std ENTT_STANDARD_CPP) diff --git a/test/lib/dispatcher/types.h b/test/lib/dispatcher/types.h index 0ad39c33c..d130f4230 100644 --- a/test/lib/dispatcher/types.h +++ b/test/lib/dispatcher/types.h @@ -1,10 +1,12 @@ #ifndef ENTT_LIB_DISPATCHER_TYPES_H #define ENTT_LIB_DISPATCHER_TYPES_H -struct message { +#include + +struct ENTT_API message { int payload; }; -struct event {}; +struct ENTT_API event {}; #endif diff --git a/test/lib/dispatcher_plugin/main.cpp b/test/lib/dispatcher_plugin/main.cpp index f2c45091f..597998a6e 100644 --- a/test/lib/dispatcher_plugin/main.cpp +++ b/test/lib/dispatcher_plugin/main.cpp @@ -2,21 +2,12 @@ #include #include +#include #include -#include "proxy.h" #include "types.h" -proxy::proxy(entt::dispatcher &ref) - : dispatcher{&ref} -{} - -void proxy::trigger(message msg) { - dispatcher->trigger(msg); -} - -void proxy::trigger(event ev) { - dispatcher->trigger(ev); -} +template +struct entt::type_index {}; struct listener { void on(message msg) { value = msg.payload; } @@ -25,7 +16,6 @@ struct listener { TEST(Lib, Dispatcher) { entt::dispatcher dispatcher; - proxy handler{dispatcher}; listener listener; ASSERT_EQ(listener.value, 0); @@ -33,11 +23,12 @@ TEST(Lib, Dispatcher) { dispatcher.sink().connect<&listener::on>(listener); cr_plugin ctx; - ctx.userdata = &handler; + ctx.userdata = &dispatcher; cr_plugin_load(ctx, PLUGIN); cr_plugin_update(ctx); ASSERT_EQ(listener.value, 42); + dispatcher = {}; cr_plugin_close(ctx); } diff --git a/test/lib/dispatcher_plugin/plugin.cpp b/test/lib/dispatcher_plugin/plugin.cpp index 90ab4ba6d..404315c3f 100644 --- a/test/lib/dispatcher_plugin/plugin.cpp +++ b/test/lib/dispatcher_plugin/plugin.cpp @@ -1,11 +1,16 @@ #include +#include +#include #include "types.h" +template +struct entt::type_index {}; + CR_EXPORT int cr_main(cr_plugin *ctx, cr_op operation) { switch (operation) { case CR_STEP: - static_cast(ctx->userdata)->trigger(event{}); - static_cast(ctx->userdata)->trigger(message{42}); + static_cast(ctx->userdata)->trigger(); + static_cast(ctx->userdata)->trigger(42); break; case CR_CLOSE: case CR_LOAD: diff --git a/test/lib/dispatcher_plugin/proxy.h b/test/lib/dispatcher_plugin/proxy.h deleted file mode 100644 index 52ebac80a..000000000 --- a/test/lib/dispatcher_plugin/proxy.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef ENTT_LIB_DISPATCHER_PLUGIN_PROXY_H -#define ENTT_LIB_DISPATCHER_PLUGIN_PROXY_H - -#include -#include "types.h" - -struct proxy: dispatcher_proxy { - proxy(entt::dispatcher &); - void trigger(message) override; - void trigger(event) override; - -private: - entt::dispatcher *dispatcher; -}; - -#endif diff --git a/test/lib/dispatcher_plugin/types.h b/test/lib/dispatcher_plugin/types.h index bf95f955c..b0707106b 100644 --- a/test/lib/dispatcher_plugin/types.h +++ b/test/lib/dispatcher_plugin/types.h @@ -7,10 +7,4 @@ struct message { struct event {}; -struct dispatcher_proxy { - virtual ~dispatcher_proxy() = default; - virtual void trigger(message) = 0; - virtual void trigger(event) = 0; -}; - #endif diff --git a/test/lib/dispatcher_plugin_std/main.cpp b/test/lib/dispatcher_plugin_std/main.cpp deleted file mode 100644 index f2c45091f..000000000 --- a/test/lib/dispatcher_plugin_std/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#define CR_HOST - -#include -#include -#include -#include "proxy.h" -#include "types.h" - -proxy::proxy(entt::dispatcher &ref) - : dispatcher{&ref} -{} - -void proxy::trigger(message msg) { - dispatcher->trigger(msg); -} - -void proxy::trigger(event ev) { - dispatcher->trigger(ev); -} - -struct listener { - void on(message msg) { value = msg.payload; } - int value{}; -}; - -TEST(Lib, Dispatcher) { - entt::dispatcher dispatcher; - proxy handler{dispatcher}; - listener listener; - - ASSERT_EQ(listener.value, 0); - - dispatcher.sink().connect<&listener::on>(listener); - - cr_plugin ctx; - ctx.userdata = &handler; - cr_plugin_load(ctx, PLUGIN); - cr_plugin_update(ctx); - - ASSERT_EQ(listener.value, 42); - - cr_plugin_close(ctx); -} diff --git a/test/lib/dispatcher_plugin_std/plugin.cpp b/test/lib/dispatcher_plugin_std/plugin.cpp deleted file mode 100644 index 90ab4ba6d..000000000 --- a/test/lib/dispatcher_plugin_std/plugin.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include "types.h" - -CR_EXPORT int cr_main(cr_plugin *ctx, cr_op operation) { - switch (operation) { - case CR_STEP: - static_cast(ctx->userdata)->trigger(event{}); - static_cast(ctx->userdata)->trigger(message{42}); - break; - case CR_CLOSE: - case CR_LOAD: - case CR_UNLOAD: - // nothing to do here, this is only a test. - break; - } - - return 0; -} diff --git a/test/lib/dispatcher_plugin_std/proxy.h b/test/lib/dispatcher_plugin_std/proxy.h deleted file mode 100644 index 42c9204e0..000000000 --- a/test/lib/dispatcher_plugin_std/proxy.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef ENTT_LIB_DISPATCHER_PLUGIN_STD_PROXY_H -#define ENTT_LIB_DISPATCHER_PLUGIN_STD_PROXY_H - -#include -#include "types.h" - -struct proxy: dispatcher_proxy { - proxy(entt::dispatcher &); - void trigger(message) override; - void trigger(event) override; - -private: - entt::dispatcher *dispatcher; -}; - -#endif diff --git a/test/lib/dispatcher_plugin_std/types.h b/test/lib/dispatcher_plugin_std/types.h deleted file mode 100644 index 459b28796..000000000 --- a/test/lib/dispatcher_plugin_std/types.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef ENTT_LIB_DISPATCHER_PLUGIN_STD_TYPES_H -#define ENTT_LIB_DISPATCHER_PLUGIN_STD_TYPES_H - -struct message { - int payload; -}; - -struct event {}; - -struct dispatcher_proxy { - virtual ~dispatcher_proxy() = default; - virtual void trigger(message) = 0; - virtual void trigger(event) = 0; -}; - -#endif diff --git a/test/lib/dispatcher_std/lib.cpp b/test/lib/dispatcher_std/lib.cpp deleted file mode 100644 index 3641667fe..000000000 --- a/test/lib/dispatcher_std/lib.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include "types.h" - -ENTT_API void trigger(entt::dispatcher &dispatcher) { - dispatcher.trigger(); - dispatcher.trigger(42); -} diff --git a/test/lib/dispatcher_std/main.cpp b/test/lib/dispatcher_std/main.cpp deleted file mode 100644 index 73998534b..000000000 --- a/test/lib/dispatcher_std/main.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include -#include -#include "types.h" - -ENTT_API void trigger(entt::dispatcher &); - -struct listener { - void on(message msg) { value = msg.payload; } - int value{}; -}; - -TEST(Lib, Dispatcher) { - entt::dispatcher dispatcher; - listener listener; - - ASSERT_EQ(listener.value, 0); - - dispatcher.sink().connect(&listener::on)>(listener); - trigger(dispatcher); - - ASSERT_EQ(listener.value, 42); -} diff --git a/test/lib/dispatcher_std/types.h b/test/lib/dispatcher_std/types.h deleted file mode 100644 index f17c0d6af..000000000 --- a/test/lib/dispatcher_std/types.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef ENTT_LIB_DISPATCHER_STD_TYPES_H -#define ENTT_LIB_DISPATCHER_STD_TYPES_H - -#include - -struct ENTT_API message { - int payload; -}; - -struct ENTT_API event {}; - -#endif