From f2b1e89309bad765a79ebfb1da5f9347cea9f875 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 14 Apr 2021 12:40:26 +0900 Subject: [PATCH] e_test_event: Added timeout set method Added timeout set method. It could set/unset timer of Testcase, and can set time of timer. The patch needs enlightenment's "e_test_helper: Added timeout set method" patch. Change-Id: I2651f3e6d561c90f6569baf07cf755eb2a843309 --- src/e_test_event.cpp | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/e_test_event.h | 1 + 2 files changed, 58 insertions(+) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 94d4dd5..63af5ac 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -73,6 +73,7 @@ static void _cb_method_window_register(void *data, const Eldbus_Message *msg, El static void _cb_method_zone_rotation_change(void *data, const Eldbus_Message *msg, Eldbus_Pending *p); static void _cb_method_window_effect(void *data, const Eldbus_Message *msg, Eldbus_Pending *p); static void _cb_method_set_tc_start_end(void *data, const Eldbus_Message *msg, Eldbus_Pending *p); +static void _cb_method_set_tc_timeout(void *data, const Eldbus_Message *msg, Eldbus_Pending *p); static void _cb_method_transient_for_below(void *data, const Eldbus_Message *msg, Eldbus_Pending *p); /* callbacks - signal */ @@ -592,6 +593,35 @@ etRunner::setTCEnd() } Eina_Bool +etRunner::setTCTimeout(Eina_Bool set, int timeout) +{ + Eldbus_Pending *p = NULL; + Eina_Bool res = EINA_FALSE; + + if (timeout <= 0) return EINA_FALSE; + + p = eldbus_proxy_call(dbus.ds_proxy, + "SetTestTimeout", + _cb_method_set_tc_timeout, + &res, + -1, + "bu", + set, + timeout); + EINA_SAFETY_ON_NULL_GOTO(p, err); + + work(); + + EINA_SAFETY_ON_FALSE_GOTO(res, err); + + return EINA_TRUE; + +err: + setTCEnd(); + return EINA_FALSE; +} + +Eina_Bool etRunner::getWinInfo(etWin *tw) { Eldbus_Pending *p = NULL; @@ -1888,6 +1918,33 @@ finish: } static void +_cb_method_set_tc_timeout(void *data, + const Eldbus_Message *msg, + Eldbus_Pending *p) +{ + const char *name = NULL, *text = NULL; + Eina_Bool res = EINA_FALSE; + Eina_Bool *accept = (Eina_Bool *)data; + + *accept = EINA_FALSE; + + res = eldbus_message_error_get(msg, &name, &text); + EINA_SAFETY_ON_TRUE_GOTO(res, finish); + + res = eldbus_message_arguments_get(msg, "b", accept); + EINA_SAFETY_ON_FALSE_GOTO(res, finish); + EINA_SAFETY_ON_FALSE_GOTO(*accept, finish); + +finish: + if ((name) || (text)) + { + ERR("errname: %s errmsg: %s\n", name, text); + } + + etRunner::get().finishWork(); +} + +static void _cb_method_transient_for_below(void *data, const Eldbus_Message *msg, Eldbus_Pending *p) diff --git a/src/e_test_event.h b/src/e_test_event.h index c8c7fd5..811e55a 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -197,6 +197,7 @@ public: Eina_Bool delAuxHint(etWin *tw, int hint_id); Eina_Bool setTCStart(); Eina_Bool setTCEnd(); + Eina_Bool setTCTimeout(Eina_Bool set, int timeout); Eina_Bool getWinInfo(etWin *tw); Eina_List *getWinInfoList(); void freeWinInfoList(Eina_List *list); -- 2.7.4