From 12ca5fbbaec35b2f12f72853d1bbe172f67b57a6 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Mon, 29 Aug 2016 22:22:06 +0900 Subject: [PATCH 01/16] e_test_runner: fixed a build error on 64-bit Change-Id: I738e3758ee3c7ffad90f0d6250e548ab56780f65 --- src/e_test_runner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/e_test_runner.c b/src/e_test_runner.c index ed7bc2d..cdd5136 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -487,7 +487,7 @@ e_test_runner_util_win_info_print(E_Test_Runner *runner) { printf("%04d WinID:%5u alpha:%d %5d,%5d (%5dx%5d) vis(Win:%d Obj:%d Opaque:%2d Type:%2d Skip:%d) Icon:%d Focus(Win:%d Obj:%d)\n", tw->layer, - tw->native_win, + (unsigned int)tw->native_win, tw->alpha, tw->x, tw->y, tw->w, tw->h, tw->vis.win, -- 2.7.4 From 68e0d690db9c0c7c9e2c866fab6e5157e797e3f8 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Thu, 1 Sep 2016 14:31:37 +0900 Subject: [PATCH 02/16] added a new TC: 0401 screensaver manager basic Change-Id: I07f1563ea97dce152b5ecca98a57a9e78fcb49ae --- src/0400_tzsh.c | 198 ++++++++++++++++++++++++++++++++++++++++++++++++---- src/e_test_runner.c | 102 ++++++++++++++++++++++++++- src/e_test_runner.h | 59 +++++++++++++++- 3 files changed, 343 insertions(+), 16 deletions(-) diff --git a/src/0400_tzsh.c b/src/0400_tzsh.c index 4fad532..ba6e416 100644 --- a/src/0400_tzsh.c +++ b/src/0400_tzsh.c @@ -3,7 +3,7 @@ #include "e_test_runner.h" /* Name: - * [0400] scrsaver basic + * [0400] screensaver basic * Description: * Check screensaver type window that is shown on the notification layer. * Steps: @@ -20,12 +20,16 @@ tc_0400_scrsaver_basic(E_TC *tc) Eina_Bool res = EINA_FALSE; Eina_List *l = NULL, *ll = NULL; E_TC_Win *tw = NULL, *tw2 = NULL; - Eina_Bool found = EINA_FALSE; tzsh_h tzsh = NULL; tzsh_window tz_win = NULL; tzsh_screensaver_service_h tz_scrsaver = NULL; + Eina_Bool chk_found = EINA_FALSE; + Eina_Bool chk_ly = EINA_FALSE; + Eina_Bool chk_vis = EINA_FALSE; + Eina_Bool chk_focus = EINA_FALSE; + EINA_SAFETY_ON_NULL_RETURN_VAL(tc, EINA_FALSE); tw = e_tc_win_add(NULL, ELM_WIN_BASIC, EINA_FALSE, NULL, @@ -54,22 +58,31 @@ tc_0400_scrsaver_basic(E_TC *tc) EINA_LIST_FOREACH(l, ll, tw2) { - if (tw2->layer < 650) break; + if (tw2->native_win != tw->native_win) continue; - if (tw2->native_win == tw->native_win) - { - found = EINA_TRUE; + chk_found = EINA_TRUE; - if (tw2->layer == 650) - tc->passed = EINA_TRUE; - else - EINA_SAFETY_ON_FALSE_GOTO(EINA_FALSE, cleanup); + if (tw2->layer == E_LAYER_CLIENT_NOTIFICATION_LOW) + chk_ly = EINA_TRUE; - break; - } + if ((tw2->vis.win) && + (tw2->vis.obj) && + (tw2->vis.type == E_VISIBILITY_UNOBSCURED)) + chk_vis = EINA_TRUE; + + if ((tw2->focus.obj) && + (tw2->focus.win)) + chk_focus = EINA_TRUE; + + break; } - EINA_SAFETY_ON_FALSE_GOTO(found, cleanup); + EINA_SAFETY_ON_FALSE_GOTO(chk_found, cleanup); + EINA_SAFETY_ON_FALSE_GOTO(chk_ly, cleanup); + EINA_SAFETY_ON_FALSE_GOTO(chk_vis, cleanup); + EINA_SAFETY_ON_FALSE_GOTO(chk_focus, cleanup); + + tc->passed = EINA_TRUE; cleanup: e_test_runner_req_win_info_list_free(l); @@ -82,3 +95,162 @@ cleanup: return tc->passed; } + +struct _E_TC_Data +{ + E_Test_Runner *runner; + Ecore_Timer *expire_timer; + + /* 0401 */ + Eina_Bool chk_timeout_val; + Eina_Bool chk_ev_state_idle_timeout; + Eina_Bool chk_ev_state_not_idle; + int chk_cb_called; +}; + +static Eina_Bool +_cb_timeout(void *data) +{ + E_TC_Data *tc_data = data; + + tc_data->expire_timer = NULL; + + elm_exit(); + + return ECORE_CALLBACK_DONE; +} + +static void +_cb_state_change(void *data, + tzsh_screensaver_manager_service_h service, + int states) +{ + E_TC_Data *tc_data = data; + unsigned int time; + + tc_data->chk_cb_called++; + + if (states & TZSH_SCREENSAVER_MANAGER_SERVICE_STATE_IDLE_TIMEOUT_EXPIRED) + { + EINA_SAFETY_ON_FALSE_RETURN(tc_data->chk_cb_called == 1); + + if (tc_data->expire_timer) + { + ecore_timer_del(tc_data->expire_timer); + tc_data->expire_timer = NULL; + } + tc_data->expire_timer = ecore_timer_add(1.0, _cb_timeout, tc_data); + + tc_data->chk_ev_state_idle_timeout = EINA_TRUE; + + e_test_runner_req_ev_thaw(tc_data->runner); + e_test_runner_req_ev_feed_mouse_down(tc_data->runner, 1, 1); + e_test_runner_req_ev_feed_mouse_up(tc_data->runner, 1, 1); + e_test_runner_req_ev_freeze(tc_data->runner); + } + else if (states & TZSH_SCREENSAVER_MANAGER_SERVICE_STATE_NOT_IDLE) + { + EINA_SAFETY_ON_FALSE_RETURN(tc_data->chk_cb_called == 2); + + if (tc_data->expire_timer) + { + ecore_timer_del(tc_data->expire_timer); + tc_data->expire_timer = NULL; + } + + tc_data->chk_ev_state_not_idle = EINA_TRUE; + + tzsh_screensaver_manager_service_idle_timeout_get(service, &time); + EINA_SAFETY_ON_FALSE_RETURN(time == 1000); + + tc_data->chk_timeout_val = EINA_TRUE; + + elm_exit(); + } + else + { + EINA_SAFETY_ON_FALSE_RETURN(EINA_FALSE); + } +} + +/* Name: + * [0401] screensaver manager basic + * Description: + * Check screensaver manager APIs and 'state changed' callback + * Steps: + * 01. Create an elm basic window that won't be shown + * 02. Set elm window to be screensaver manager using tzsh + * 03. Set idle timeout to 1.0 seconds + * 04. Set screensaver feature enabled + * 05. Check TZSH_SCREENSAVER_MANAGER_SERVICE_STATE_IDLE_TIMEOUT_EXPIRED event + * 06. Request to feed fake key event + * 07. Check TZSH_SCREENSAVER_MANAGER_SERVICE_STATE_NOT_IDLE event + * Expected results: + * TZSH_SCREENSAVER_MANAGER_SERVICE_STATE_IDLE_TIMEOUT_EXPIRED event occurs. + * TZSH_SCREENSAVER_MANAGER_SERVICE_STATE_NOT_IDLE event occurs. + */ +Eina_Bool +tc_0401_scrsaver_mng_basic(E_TC *tc) +{ + E_TC_Win *tw = NULL; + tzsh_h tzsh = NULL; + tzsh_window tz_win = NULL; + tzsh_screensaver_manager_service_h tz_scrsaver_mng = NULL; + int res = 0; + E_TC_Data *data; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tc, EINA_FALSE); + + data = E_NEW(E_TC_Data, 1); + EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); + + tw = e_tc_win_add(NULL, ELM_WIN_BASIC, EINA_FALSE, NULL, + 0, 0, 0, 0, EINA_FALSE, + 0, E_TC_WIN_COLOR_RED); + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); + + tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL); + EINA_SAFETY_ON_NULL_GOTO(tzsh, cleanup); + + tz_win = elm_win_window_id_get(tw->elm_win); + EINA_SAFETY_ON_FALSE_GOTO(tz_win, cleanup); + + tz_scrsaver_mng = tzsh_screensaver_manager_service_create(tzsh, tz_win); + EINA_SAFETY_ON_NULL_GOTO(tz_scrsaver_mng, cleanup); + + res = tzsh_screensaver_manager_service_idle_timeout_set(tz_scrsaver_mng, 1000); + EINA_SAFETY_ON_FALSE_GOTO(res == 0, cleanup); + + res = tzsh_screensaver_manager_service_enable(tz_scrsaver_mng); + EINA_SAFETY_ON_FALSE_GOTO(res == 0, cleanup); + + res = tzsh_screensaver_manager_service_state_change_cb_set(tz_scrsaver_mng, + _cb_state_change, + data); + EINA_SAFETY_ON_FALSE_GOTO(res == 0, cleanup); + + data->expire_timer = ecore_timer_add(1.0, _cb_timeout, data); + data->runner = tc->runner; + + e_test_runner_req_ev_freeze(tc->runner); + + e_test_runner_work(); + + e_test_runner_req_ev_thaw(tc->runner); + + EINA_SAFETY_ON_FALSE_GOTO(data->chk_ev_state_idle_timeout, cleanup); + EINA_SAFETY_ON_FALSE_GOTO(data->chk_ev_state_not_idle, cleanup); + EINA_SAFETY_ON_FALSE_GOTO(data->chk_timeout_val, cleanup); + EINA_SAFETY_ON_FALSE_GOTO(data->chk_cb_called == 2, cleanup); + + tc->passed = EINA_TRUE; + +cleanup: + if (data->expire_timer) ecore_timer_del(data->expire_timer); + E_FREE(data); + e_tc_win_del(tw); + tzsh_screensaver_manager_service_destroy(tz_scrsaver_mng); + tzsh_destroy(tzsh); + + return tc->passed; +} diff --git a/src/e_test_runner.c b/src/e_test_runner.c index cdd5136..b1d6864 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -1,6 +1,6 @@ #include "e_test_runner.h" -#define E_TEST_RUNNER_WORK_TIME 0.3 +#define E_TEST_RUNNER_WORK_TIME 3.0 int _log_dom = -1; @@ -403,6 +403,105 @@ e_test_runner_req_win_info_list_free(Eina_List *l) } Eina_Bool +e_test_runner_req_dpms_on(E_Test_Runner *runner) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "DPMS", + NULL, NULL, -1, + "u", 1); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_dpms_off(E_Test_Runner *runner) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "DPMS", + NULL, NULL, -1, + "u", 0); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_ev_freeze(E_Test_Runner *runner) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "EventFreeze", + NULL, NULL, -1, + "u", 1); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_ev_thaw(E_Test_Runner *runner) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "EventFreeze", + NULL, NULL, -1, + "u", 0); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_ev_feed_mouse_down(E_Test_Runner *runner, int x, int y) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "EventMouse", + NULL, NULL, -1, + "uii", 0, x, y); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_ev_feed_mouse_move(E_Test_Runner *runner, int x, int y) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "EventMouse", + NULL, NULL, -1, + "uii", 1, x, y); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_ev_feed_mouse_up(E_Test_Runner *runner, int x, int y) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "EventMouse", + NULL, NULL, -1, + "uii", 2, x, y); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_ev_feed_key_down(E_Test_Runner *runner, const char *key) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "EventKey", + NULL, NULL, -1, + "us", 0, key); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool +e_test_runner_req_ev_feed_key_up(E_Test_Runner *runner, const char *key) +{ + Eldbus_Pending *p; + p = eldbus_proxy_call(runner->dbus.proxy, "EventKey", + NULL, NULL, -1, + "us", 1, key); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool e_test_runner_ev_wait(E_Test_Runner *runner, E_TC_Event_Type ev) { @@ -747,6 +846,7 @@ _e_test_runner_init(E_Test_Runner *runner) /* [0400 - 0499] tizen-ws-shell */ TC_ADD( 400, "Screensaver: Basic", T_FUNC( 400, scrsaver_basic ), 1); + TC_ADD( 401, "Screensaver Manager: Basic", T_FUNC( 401, scrsaver_mng_basic ), 1); #undef T_FUNC } diff --git a/src/e_test_runner.h b/src/e_test_runner.h index 289a7c6..90586b3 100644 --- a/src/e_test_runner.h +++ b/src/e_test_runner.h @@ -85,6 +85,50 @@ typedef enum _E_TC_Win_Color E_TC_WIN_COLOR_PURPLE, } E_TC_Win_Color; +/* NB: These types are originally defined in the enlightenment. + * But, we can't use original types in the header files of enlightenment, + * because e_test_runner needs to use tizen-extension-client-protocol that + * conflicts with tizen-extension-server-protocol enlightenment header had. + * + * Duplicated enum types: E_Layer, E_Visibility + */ +typedef enum _E_Layer +{ + E_LAYER_BOTTOM = -100, + E_LAYER_BG = -1, + E_LAYER_DESKTOP = 0, + E_LAYER_DESKTOP_TOP = 10, + E_LAYER_CLIENT_DESKTOP = 100, + E_LAYER_CLIENT_BELOW = 150, + E_LAYER_CLIENT_NORMAL = 200, + E_LAYER_CLIENT_ABOVE = 250, + E_LAYER_CLIENT_EDGE = 300, + E_LAYER_CLIENT_FULLSCREEN = 350, + E_LAYER_CLIENT_EDGE_FULLSCREEN = 400, + E_LAYER_CLIENT_POPUP = 450, + E_LAYER_CLIENT_TOP = 500, + E_LAYER_CLIENT_DRAG = 550, + E_LAYER_CLIENT_PRIO = 600, + E_LAYER_CLIENT_NOTIFICATION_LOW = 650, + E_LAYER_CLIENT_NOTIFICATION_NORMAL = 700, + E_LAYER_CLIENT_NOTIFICATION_HIGH = 750, + E_LAYER_CLIENT_NOTIFICATION_TOP = 800, + E_LAYER_CLIENT_ALERT = 850, + E_LAYER_POPUP = 999, + E_LAYER_EFFECT = 1999, + E_LAYER_MENU = 5000, + E_LAYER_DESKLOCK = 9999, + E_LAYER_MAX = 32767 +} E_Layer; + +typedef enum _E_Visibility +{ + E_VISIBILITY_UNKNOWN = -1, + E_VISIBILITY_UNOBSCURED = 0, + E_VISIBILITY_PARTIALLY_OBSCURED = 1, + E_VISIBILITY_FULLY_OBSCURED = 2 +} E_Visibility; + typedef struct _E_Test_Runner E_Test_Runner; typedef struct _E_TC_Win E_TC_Win; typedef struct _E_TC E_TC; @@ -117,14 +161,14 @@ struct _E_TC_Win Ecore_Window native_win; // native window id const char *name; // name of client window int x, y, w, h; // geometry - int layer; // value of E_Layer + E_Layer layer; Eina_Bool effect; struct { Eina_Bool win; Eina_Bool obj; int opaque; - int type; + E_Visibility type; Eina_Bool skip; } vis; Eina_Bool iconic; @@ -152,6 +196,16 @@ Eina_Bool e_test_runner_req_win_deregister(E_Test_Runner *runner, E_TC_Win *tw) Eina_List *e_test_runner_req_win_info_list_get(E_Test_Runner *runner); void e_test_runner_req_win_info_list_free(Eina_List *l); Eina_Bool e_test_runner_req_win_stack_set(E_Test_Runner *runner, E_TC_Win *tw, E_TC_Win *sibling, Eina_Bool above); +Eina_Bool e_test_runner_req_dpms_on(E_Test_Runner *runner); +Eina_Bool e_test_runner_req_dpms_off(E_Test_Runner *runner); +Eina_Bool e_test_runner_req_ev_freeze(E_Test_Runner *runner); +Eina_Bool e_test_runner_req_ev_thaw(E_Test_Runner *runner); +Eina_Bool e_test_runner_req_ev_feed_mouse_down(E_Test_Runner *runner, int x, int y); +Eina_Bool e_test_runner_req_ev_feed_mouse_move(E_Test_Runner *runner, int x, int y); +Eina_Bool e_test_runner_req_ev_feed_mouse_up(E_Test_Runner *runner, int x, int y); +Eina_Bool e_test_runner_req_ev_feed_key_down(E_Test_Runner *runner, const char *key); +Eina_Bool e_test_runner_req_ev_feed_key_up(E_Test_Runner *runner, const char *key); + Eina_Bool e_test_runner_ev_wait(E_Test_Runner *runner, E_TC_Event_Type ev); E_TC_Win *e_tc_win_add(E_TC_Win *parent, Elm_Win_Type type, Eina_Bool alpha, const char *name, int x, int y, int w, int h, Eina_Bool usr_geom, int layer, E_TC_Win_Color color); @@ -205,5 +259,6 @@ Eina_Bool tc_0302_notification_level_3(E_TC *tc); Eina_Bool tc_0303_notification_level_change(E_TC *tc); Eina_Bool tc_0400_scrsaver_basic(E_TC *tc); +Eina_Bool tc_0401_scrsaver_mng_basic(E_TC *tc); #endif -- 2.7.4 From a0e6471318b73777d02fcd6b5a49f43bcf014e78 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Thu, 1 Sep 2016 15:01:22 +0900 Subject: [PATCH 03/16] used EINA_SAFETY for checking error condition Change-Id: I1511c1ee7abbb197448f68aa47025c30884fd072 --- src/e_test_runner.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/e_test_runner.c b/src/e_test_runner.c index b1d6864..d1c2491 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -944,28 +944,16 @@ elm_main(int argc EINA_UNUSED, EINA_SAFETY_ON_FALSE_GOTO((res > 0), err); runner->dbus.conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM); - if (!runner->dbus.conn) - { - ERR("Can't get dbus connection."); - goto err; - } + EINA_SAFETY_ON_NULL_GOTO(runner->dbus.conn, err); runner->dbus.obj = eldbus_object_get(runner->dbus.conn, "org.enlightenment.wm", "/org/enlightenment/wm"); - if (!runner->dbus.obj) - { - ERR("Can't get dbus object."); - goto err; - } + EINA_SAFETY_ON_NULL_GOTO(runner->dbus.obj, err); runner->dbus.proxy = eldbus_proxy_get(runner->dbus.obj, "org.enlightenment.wm.Test"); - if (!runner->dbus.proxy) - { - ERR("Can't get dbus proxy."); - goto err; - } + EINA_SAFETY_ON_NULL_GOTO(runner->dbus.proxy, err); _e_test_runner_init(runner); _e_test_runner_run(runner); -- 2.7.4 From 12901639c7f8a1849c2f299711e12f72c382c0d9 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Thu, 1 Sep 2016 15:57:07 +0900 Subject: [PATCH 04/16] added a '-t' option to excute a single specific test case Change-Id: Ibf0d9636416a76e77d29249735bc25eeadf0224f --- src/e_test_runner.c | 101 +++++++++++++++++++++++++++++++++++++++++----------- src/e_test_runner.h | 1 + 2 files changed, 81 insertions(+), 21 deletions(-) diff --git a/src/e_test_runner.c b/src/e_test_runner.c index d1c2491..3e558fe 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -769,17 +769,14 @@ _e_tc_add(unsigned int num, const char *name, Eina_Bool (*func)(E_TC*), Eina_Bool expect, - E_Test_Runner *runner) + E_Test_Runner *runner, + Eina_Bool all, + int chosen) { E_TC *tc; tc = E_NEW(E_TC, 1); - if (!tc) - { - ERR("Can't allocate E_TC %s", name); - return NULL; - } - + EINA_SAFETY_ON_NULL_RETURN_VAL(tc, NULL); tc->num = num; tc->name = name; @@ -787,16 +784,21 @@ _e_tc_add(unsigned int num, tc->expect = expect; tc->runner = runner; + if ((!all) && (num != (unsigned int)chosen)) + tc->skip = EINA_TRUE; + runner->tc_list = eina_list_append(runner->tc_list, tc); return tc; } #undef TC_ADD -#define TC_ADD(num, name, func, expect) _e_tc_add(num, name, func, expect, runner) +#define TC_ADD(num, name, func, expect) _e_tc_add(num, name, func, expect, runner, all, chosen) static void -_e_test_runner_init(E_Test_Runner *runner) +_e_test_runner_init(E_Test_Runner *runner, + Eina_Bool all, + int chosen) { #undef T_FUNC #define T_FUNC(num_, test_) tc_000##num_##_##test_ @@ -876,6 +878,8 @@ _e_test_runner_run(E_Test_Runner *runner) EINA_LIST_FOREACH(runner->tc_list, l, tc) { + if (tc->skip) continue; + pass = tc->func(tc); tc->passed = (pass == tc->expect); @@ -891,6 +895,7 @@ _e_test_runner_result(E_Test_Runner *runner) Eina_Strbuf *buf; Eina_List *l; E_TC *tc; + int skip_case = 0; int pass_case = 0; int fail_case = 0; int total = 0; @@ -908,14 +913,18 @@ _e_test_runner_result(E_Test_Runner *runner) "[%04d] TEST \"%-30.30s\" : %s\n", tc->num, tc->name, + tc->skip ? "SKIP..." : tc->passed ? "PASS" : "FAIL"); total++; + + tc->skip ? skip_case++ : tc->passed ? pass_case++ : fail_case++; } eina_strbuf_append(buf, "==============================================\n"); eina_strbuf_append_printf(buf, "TOTAL: %4d Cases\n", total); + eina_strbuf_append_printf(buf, "SKIP : %4d Cases\n", skip_case); eina_strbuf_append_printf(buf, "PASS : %4d Cases\n", pass_case); eina_strbuf_append_printf(buf, "FAIL : %4d Cases\n", fail_case); eina_strbuf_append(buf, "==============================================\n"); @@ -923,22 +932,73 @@ _e_test_runner_result(E_Test_Runner *runner) printf("%s", eina_strbuf_string_get(buf)); } +static void +_usage(const char *exec) +{ + printf("\n"); + printf("Usage: %s [OPTION]\n", exec); + printf("\n"); + printf("Options:\n"); + printf(" -h display this help and exit\n"); + printf(" -d display the list of test cases\n"); + printf(" -t num select and run a testcase\n"); + printf("\n"); +} + +static Eina_Bool +_opts_check(int argc, + char **argv, + Eina_Bool *all, + int *chosen) +{ + int tc; + + if (argc == 1) return EINA_TRUE; + + if (!strcmp(argv[1], "-h") || + !strcmp(argv[1], "-help") || + !strcmp(argv[1], "--help")) + { + goto usage; + } + else if (!strcmp(argv[1], "-d")) + { + /* TODO */ + return EINA_FALSE; + } + else if (!strcmp(argv[1], "-t")) + { + if (argc != 3) goto usage; + tc = atoi(argv[2]); + + *all = EINA_FALSE; + *chosen = tc; + return EINA_TRUE; + } + +usage: + _usage(argv[0]); + + return EINA_FALSE; +} + EAPI_MAIN int -elm_main(int argc EINA_UNUSED, - char **argv EINA_UNUSED) +elm_main(int argc, + char **argv) { E_Test_Runner *runner = NULL; - int res; + Eina_Bool r, all = EINA_TRUE; + int res, chosen = -1; + int ret = -1; + + r = _opts_check(argc, argv, &all, &chosen); + if (!r) goto err; runner = E_NEW(E_Test_Runner, 1); EINA_SAFETY_ON_NULL_GOTO(runner, err); _log_dom = eina_log_domain_register("e-tc", EINA_COLOR_BLUE); - if (_log_dom < 0) - { - ERR("Can't register e-tc log domain."); - goto err; - } + EINA_SAFETY_ON_FALSE_GOTO(_log_dom >= 0, err); res = eldbus_init(); EINA_SAFETY_ON_FALSE_GOTO((res > 0), err); @@ -955,7 +1015,7 @@ elm_main(int argc EINA_UNUSED, "org.enlightenment.wm.Test"); EINA_SAFETY_ON_NULL_GOTO(runner->dbus.proxy, err); - _e_test_runner_init(runner); + _e_test_runner_init(runner, all, chosen); _e_test_runner_run(runner); _e_test_runner_result(runner); _e_test_runner_shutdown(runner); @@ -966,11 +1026,10 @@ elm_main(int argc EINA_UNUSED, eldbus_shutdown(); eina_log_domain_unregister(_log_dom); - E_FREE(runner); - return 0; + ret = 0; err: E_FREE(runner); - return -1; + return ret; } ELM_MAIN() diff --git a/src/e_test_runner.h b/src/e_test_runner.h index 90586b3..665e707 100644 --- a/src/e_test_runner.h +++ b/src/e_test_runner.h @@ -184,6 +184,7 @@ struct _E_TC { const char *name; unsigned int num; + Eina_Bool skip; Eina_Bool (*func) (E_TC *tc); Eina_Bool passed; Eina_Bool expect; -- 2.7.4 From e5b09e46270633318f0454b0baa7cc06c12d1c2c Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Fri, 28 Oct 2016 13:51:05 +0900 Subject: [PATCH 05/16] rotation: Added initial TC, for available rotations of a window. Major Number: 0500 Brief Description Added TC: Test whether available rotation works fine for a window. Change-Id: I54a2977f1b4b1fb030b576b09a2f9dcf1fc06b15 --- src/0500_rotation.c | 111 +++++++++++++++++++++++++++++++ src/0500_rotation.h | 10 +++ src/Makefile.am | 3 +- src/e_test_runner.c | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++-- src/e_test_runner.h | 6 ++ 5 files changed, 308 insertions(+), 5 deletions(-) create mode 100644 src/0500_rotation.c create mode 100644 src/0500_rotation.h diff --git a/src/0500_rotation.c b/src/0500_rotation.c new file mode 100644 index 0000000..293b542 --- /dev/null +++ b/src/0500_rotation.c @@ -0,0 +1,111 @@ +#include "e_test_runner.h" + +static Eina_Bool +_e_tc_rot_win_rotation_test(E_Test_Runner *runner, E_TC_Win *tw, int rot) +{ + Eina_Bool res; + + res = e_test_runner_req_zone_rotation_change(runner, rot); + if (!res) + { + ERR("Changing rotaiton is denied."); + return EINA_FALSE; + } + + res = e_test_runner_ev_wait(runner, E_TC_EVENT_TYPE_WINDOW_ROTATION_CHANGE); + if (!res) + { + ERR("Failed waiting rotation change event"); + return EINA_FALSE; + } + + res = e_test_runner_req_win_info_get(runner, tw); + if ((!res) || + (tw->rot != rot)) + { + ERR("Failed to rotate res %d, pass %d, result %d", res, rot, tw->rot); + return EINA_FALSE; + } + + return EINA_TRUE; +} + +/* @ Brief + * Test whether available rotation works fine for a window. + * + * @ Test Step: + * 1. Creating a Window + * 2. Set a available rotation list(0, 90, 180, 270) to window + * 3. Request to server for rotation about all available angles. + * 4. Verifying a window is rotated. + * + * @ Expected Result: + * Window should be rotated after accepted request for rotation. + */ +ROT_TC_DEFINE(00, available_rots) +{ + E_TC_Win *tw; + Eina_Bool res; + int rot, saved_rot; + const int rots[4] = {0, 90, 180, 270}; + + /* create window */ + tw = e_tc_win_add(NULL, ELM_WIN_BASIC, + EINA_FALSE, "Test Window for Rotation", + 0, 0, 0, 0, EINA_FALSE, + 200, E_TC_WIN_COLOR_BLUE); + EINA_SAFETY_ON_NULL_GOTO(tw, end); + + /* set available rotations */ + elm_win_wm_rotation_available_rotations_set(tw->elm_win, rots, 4); + + /* register window */ + res = e_test_runner_req_win_register(tc->runner, tw); + if (!res) + goto err_reg; + + e_tc_win_geom_update(tw); + e_tc_win_show(tw); + e_test_runner_ev_wait(tc->runner, E_TC_EVENT_TYPE_VIS_ON); + + /* Update window info */ + res = e_test_runner_req_win_info_get(tc->runner, tw); + if (!res) + { + ERR("Failed to get initial window info"); + goto err_info_get; + } + + /* to restore orientation after finishing tc */ + saved_rot = tw->rot; + + for (rot = ((saved_rot + 90) % 360); + rot == saved_rot; + rot = ((rot + 90) % 360)) + { + /* hard coded, reverse portrait(180) mode is disabled in mobile */ + if (rot == 180) continue; + + res = _e_tc_rot_win_rotation_test(tc->runner, tw, rot); + if (!res) + { + ERR("Failed to try to rotate given angle: %d", rot); + goto err_tc; + } + } + + tc->passed = EINA_TRUE; + +err_tc: + /* restore orientation */ + res = e_test_runner_req_zone_rotation_change(tc->runner, saved_rot); + if (!res) + ERR("Failed to restore orientation"); +err_info_get: + e_test_runner_req_win_deregister(tc->runner, tw); + e_tc_win_hide(tw); +err_reg: + e_tc_win_del(tw); +end: + return tc->passed; +} diff --git a/src/0500_rotation.h b/src/0500_rotation.h new file mode 100644 index 0000000..20a35c0 --- /dev/null +++ b/src/0500_rotation.h @@ -0,0 +1,10 @@ +#ifndef TC_ROTATION_H +#define TC_ROTATION_H + +#include + +#define ROT_TC_DEFINE(num, name) Eina_Bool tc_05##num##_rotation_##name(E_TC *tc) + +ROT_TC_DEFINE(00, available_rots); + +#endif diff --git a/src/Makefile.am b/src/Makefile.am index bcf0f7e..496e7a6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,7 +15,8 @@ e_test_runner.h \ 0150_base_operation_multi_wins.c \ 0200_transient_for.c \ 0300_notification.c \ -0400_tzsh.c +0400_tzsh.c \ +0500_rotation.c MAINTAINERCLEANFILES = \ Makefile.in diff --git a/src/e_test_runner.c b/src/e_test_runner.c index 3e558fe..283e414 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -1,6 +1,7 @@ #include "e_test_runner.h" #define E_TEST_RUNNER_WORK_TIME 3.0 +#define E_TC_SIGN_WIN_INFO "usiiiiibbbiibbbbbi" int _log_dom = -1; @@ -82,6 +83,55 @@ _e_test_runner_window_id_get(Evas_Object *elm_win) } static void +_cb_method_win_info_get(void *data, + const Eldbus_Message *msg, + Eldbus_Pending *p EINA_UNUSED) +{ + const char *name = NULL, *text = NULL, *wname = NULL; + E_TC_Win *tw; + Eina_Bool res; + + tw = data; + + res = eldbus_message_error_get(msg, &name, &text); + EINA_SAFETY_ON_TRUE_GOTO(res, finish); + + res = eldbus_message_arguments_get + (msg, + E_TC_SIGN_WIN_INFO, + &tw->native_win, + &wname, + &tw->x, &tw->y, &tw->w, &tw->h, + &tw->layer, + &tw->effect, + &tw->vis.win, + &tw->vis.obj, + &tw->vis.opaque, + &tw->vis.type, + &tw->vis.skip, + &tw->iconic, + &tw->alpha, + &tw->focus.win, + &tw->focus.obj, + &tw->rot); + + if (wname) + { + if (tw->name) + eina_stringshare_del(tw->name); + tw->name = eina_stringshare_add(wname); + } + +finish: + if ((name) || (text)) + { + ERR("errname:%s errmsg:%s\n", name, text); + } + + elm_exit(); +} + +static void _cb_method_win_info_list_get(void *data, const Eldbus_Message *msg, Eldbus_Pending *p EINA_UNUSED) @@ -98,7 +148,7 @@ _cb_method_win_info_list_get(void *data, res = eldbus_message_error_get(msg, &name, &text); EINA_SAFETY_ON_TRUE_GOTO(res, finish); - res = eldbus_message_arguments_get(msg, "ua(usiiiiibbbiibbbbb)", &target_win, &array); + res = eldbus_message_arguments_get(msg, "ua("E_TC_SIGN_WIN_INFO")", &target_win, &array); EINA_SAFETY_ON_FALSE_GOTO(res, finish); while (eldbus_message_iter_get_and_next(array, 'r', &ec)) @@ -108,7 +158,7 @@ _cb_method_win_info_list_get(void *data, res = eldbus_message_iter_arguments_get (ec, - "usiiiiibbbiibbbbb", + E_TC_SIGN_WIN_INFO, &tw->native_win, &tw->name, &tw->x, &tw->y, &tw->w, &tw->h, @@ -122,7 +172,8 @@ _cb_method_win_info_list_get(void *data, &tw->iconic, &tw->alpha, &tw->focus.win, - &tw->focus.obj); + &tw->focus.obj, + &tw->rot); if (tw->effect) animating = EINA_TRUE; @@ -205,6 +256,33 @@ finish: } static void +_cb_method_zone_rotation_change(void *data, + const Eldbus_Message *msg, + Eldbus_Pending *p EINA_UNUSED) +{ + const char *name = NULL, *text = NULL; + Eina_Bool res; + Eina_Bool *allowed = data; + + *allowed = EINA_FALSE; + + res = eldbus_message_error_get(msg, &name, &text); + EINA_SAFETY_ON_TRUE_GOTO(res, finish); + + res = eldbus_message_arguments_get(msg, "b", allowed); + EINA_SAFETY_ON_FALSE_GOTO(res, finish); + EINA_SAFETY_ON_FALSE_GOTO(*allowed, finish); + +finish: + if ((name) || (text)) + { + ERR("errname:%s errmsg:%s\n", name, text); + } + + elm_exit(); +} + +static void _cb_signal_vis_changed(void *data, const Eldbus_Message *msg) { @@ -262,6 +340,33 @@ finish: } } +static void +_cb_signal_win_rot_changed(void *data, + const Eldbus_Message *msg) +{ + E_Test_Runner *runner = data; + const char *name = NULL, *text = NULL; + Eina_Bool res; + int angle = 0; + Ecore_Window id; + + res = eldbus_message_error_get(msg, &name, &text); + EINA_SAFETY_ON_TRUE_GOTO(res, finish); + + /* TODO unused 'window id' and 'angle' */ + res = eldbus_message_arguments_get(msg, "ui", &id, &angle); + EINA_SAFETY_ON_FALSE_GOTO(res, finish); + + runner->ev.response = runner->ev.expect; + elm_exit(); + +finish: + if ((name) || (text)) + { + ERR("errname:%s errmsg:%s\n", name, text); + } +} + static Eina_Bool _cb_work_time_out(void *data EINA_UNUSED) { @@ -347,6 +452,66 @@ e_test_runner_req_win_stack_set(E_Test_Runner *runner, return EINA_TRUE; } +Eina_Bool +e_test_runner_req_zone_rotation_change(E_Test_Runner *runner, int angle) +{ + Eldbus_Pending *p; + Eina_Bool allowed = EINA_FALSE; + + p = eldbus_proxy_call(runner->dbus.proxy, + "ChangeZoneRotation", + _cb_method_zone_rotation_change, + &allowed, + -1, + "i", + angle); + EINA_SAFETY_ON_NULL_RETURN_VAL(p, EINA_FALSE); + + elm_run(); + + return allowed; +} + +Eina_Bool +e_test_runner_req_win_info_get(E_Test_Runner *runner, E_TC_Win *tw) +{ + Eldbus_Pending *p; + Ecore_Window win; + int retry = 10; + + EINA_SAFETY_ON_NULL_RETURN_VAL(runner, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); + + win = tw->native_win; + while (retry) + { + p = eldbus_proxy_call(runner->dbus.proxy, + "GetWinInfo", + _cb_method_win_info_get, + tw, + -1, + "u", + win); + EINA_SAFETY_ON_NULL_RETURN_VAL(p, EINA_FALSE); + + elm_run(); + + if ((tw->native_win == win) && (!tw->effect)) + return EINA_TRUE; + else + retry--; + } + + if (tw->native_win != win) + { + ERR("Something Wrong. Difference with querying window and received window from server"); + tw->native_win = win; + } + + return EINA_FALSE; +} + + Eina_List * e_test_runner_req_win_info_list_get(E_Test_Runner *runner) { @@ -360,7 +525,7 @@ e_test_runner_req_win_info_list_get(E_Test_Runner *runner) while (info_list) { p = eldbus_proxy_call(runner->dbus.proxy, - "GetWindowInfo", + "GetWinsInfo", _cb_method_win_info_list_get, info_list, -1, @@ -534,6 +699,14 @@ e_test_runner_ev_wait(E_Test_Runner *runner, EINA_SAFETY_ON_NULL_GOTO(sh, finish); break; + case E_TC_EVENT_TYPE_WINDOW_ROTATION_CHANGE: + sh = eldbus_proxy_signal_handler_add(runner->dbus.proxy, + "WinRotationChanged", + _cb_signal_win_rot_changed, + runner); + EINA_SAFETY_ON_NULL_GOTO(sh, finish); + break; + default: goto finish; break; @@ -849,6 +1022,8 @@ _e_test_runner_init(E_Test_Runner *runner, /* [0400 - 0499] tizen-ws-shell */ TC_ADD( 400, "Screensaver: Basic", T_FUNC( 400, scrsaver_basic ), 1); TC_ADD( 401, "Screensaver Manager: Basic", T_FUNC( 401, scrsaver_mng_basic ), 1); + + TC_ADD( 500, "Rotation: Available Rotation", T_FUNC( 500, rotation_available_rots ), 1); #undef T_FUNC } diff --git a/src/e_test_runner.h b/src/e_test_runner.h index 665e707..48ec2c2 100644 --- a/src/e_test_runner.h +++ b/src/e_test_runner.h @@ -70,6 +70,7 @@ typedef enum _E_TC_Event_Type E_TC_EVENT_TYPE_STACK_LOWER, E_TC_EVENT_TYPE_STACK_ABOVE, E_TC_EVENT_TYPE_STACK_BELOW, + E_TC_EVENT_TYPE_WINDOW_ROTATION_CHANGE, E_TC_EVENT_TYPE_MAX } E_TC_Event_Type; @@ -161,6 +162,7 @@ struct _E_TC_Win Ecore_Window native_win; // native window id const char *name; // name of client window int x, y, w, h; // geometry + int rot; E_Layer layer; Eina_Bool effect; struct @@ -194,6 +196,7 @@ struct _E_TC Eina_Bool e_test_runner_req_win_register(E_Test_Runner *runner, E_TC_Win *tw); Eina_Bool e_test_runner_req_win_deregister(E_Test_Runner *runner, E_TC_Win *tw); +Eina_Bool e_test_runner_req_win_info_get(E_Test_Runner *runner, E_TC_Win *tw); Eina_List *e_test_runner_req_win_info_list_get(E_Test_Runner *runner); void e_test_runner_req_win_info_list_free(Eina_List *l); Eina_Bool e_test_runner_req_win_stack_set(E_Test_Runner *runner, E_TC_Win *tw, E_TC_Win *sibling, Eina_Bool above); @@ -206,6 +209,7 @@ Eina_Bool e_test_runner_req_ev_feed_mouse_move(E_Test_Runner *runner, int x, in Eina_Bool e_test_runner_req_ev_feed_mouse_up(E_Test_Runner *runner, int x, int y); Eina_Bool e_test_runner_req_ev_feed_key_down(E_Test_Runner *runner, const char *key); Eina_Bool e_test_runner_req_ev_feed_key_up(E_Test_Runner *runner, const char *key); +Eina_Bool e_test_runner_req_zone_rotation_change(E_Test_Runner *runner, int angle); Eina_Bool e_test_runner_ev_wait(E_Test_Runner *runner, E_TC_Event_Type ev); @@ -262,4 +266,6 @@ Eina_Bool tc_0303_notification_level_change(E_TC *tc); Eina_Bool tc_0400_scrsaver_basic(E_TC *tc); Eina_Bool tc_0401_scrsaver_mng_basic(E_TC *tc); +#include "0500_rotation.h" + #endif -- 2.7.4 From 24da7eea23061ff99a063a69df4b89f6e6b9b178 Mon Sep 17 00:00:00 2001 From: JengHyun Kang Date: Thu, 19 Jan 2017 15:57:45 +0900 Subject: [PATCH 06/16] Initialize a variable to correct type Change-Id: I424b40b531176fd32439cfa49e0cf610980880b7 --- src/0400_tzsh.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/0400_tzsh.c b/src/0400_tzsh.c index ba6e416..f01de5d 100644 --- a/src/0400_tzsh.c +++ b/src/0400_tzsh.c @@ -22,7 +22,7 @@ tc_0400_scrsaver_basic(E_TC *tc) E_TC_Win *tw = NULL, *tw2 = NULL; tzsh_h tzsh = NULL; - tzsh_window tz_win = NULL; + tzsh_window tz_win = 0x0; tzsh_screensaver_service_h tz_scrsaver = NULL; Eina_Bool chk_found = EINA_FALSE; @@ -194,7 +194,7 @@ tc_0401_scrsaver_mng_basic(E_TC *tc) { E_TC_Win *tw = NULL; tzsh_h tzsh = NULL; - tzsh_window tz_win = NULL; + tzsh_window tz_win = 0x0; tzsh_screensaver_manager_service_h tz_scrsaver_mng = NULL; int res = 0; E_TC_Data *data; -- 2.7.4 From e3041bb1c0c7f183bffdc999bb5e08afc35f0a56 Mon Sep 17 00:00:00 2001 From: Sung-Jin Park Date: Thu, 19 Jan 2017 16:43:56 +0900 Subject: [PATCH 07/16] Packaging : update version to 0.1.4 Change-Id: I2559f202943b227bd226f1f28d8953f3d11206f9 --- packaging/e-tizen-testcase.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/e-tizen-testcase.spec b/packaging/e-tizen-testcase.spec index 4619e08..2ae0a72 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -1,5 +1,5 @@ Name: e-tizen-testcase -Version: 0.1.3 +Version: 0.1.4 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From eb0049955615260763ff7fc4dab745be7302a00c Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Wed, 19 Apr 2017 17:34:25 +0900 Subject: [PATCH 08/16] fix svace Change-Id: I8b0a507671c8acd38b08b1dfe76a023994a9eaf2 --- src/0400_tzsh.c | 2 +- src/e_test_runner.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/0400_tzsh.c b/src/0400_tzsh.c index f01de5d..d829044 100644 --- a/src/0400_tzsh.c +++ b/src/0400_tzsh.c @@ -207,7 +207,7 @@ tc_0401_scrsaver_mng_basic(E_TC *tc) tw = e_tc_win_add(NULL, ELM_WIN_BASIC, EINA_FALSE, NULL, 0, 0, 0, 0, EINA_FALSE, 0, E_TC_WIN_COLOR_RED); - EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); + EINA_SAFETY_ON_NULL_GOTO(tw, cleanup); tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL); EINA_SAFETY_ON_NULL_GOTO(tzsh, cleanup); diff --git a/src/e_test_runner.c b/src/e_test_runner.c index 283e414..d6992d1 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -1105,6 +1105,7 @@ _e_test_runner_result(E_Test_Runner *runner) eina_strbuf_append(buf, "==============================================\n"); printf("%s", eina_strbuf_string_get(buf)); + eina_strbuf_free(buf); } static void -- 2.7.4 From a70922da6be2a6a5cea8409fdab39a0b87ecb2c2 Mon Sep 17 00:00:00 2001 From: Youngjae Shin Date: Tue, 22 Aug 2017 15:00:02 +0900 Subject: [PATCH 09/16] revise installing a license file Change-Id: I756e1531e71041806818302c2b2f92aff31ce908 --- packaging/e-tizen-testcase.spec | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packaging/e-tizen-testcase.spec b/packaging/e-tizen-testcase.spec index 2ae0a72..0345f8e 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -14,8 +14,6 @@ BuildRequires: pkgconfig(tizen-extension-client) BuildRequires: pkgconfig(tzsh-screensaver-manager-service) BuildRequires: pkgconfig(tzsh-screensaver-service) -%global TZ_SYS_RO_SHARE %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE}%{!?TZ_SYS_RO_SHARE:/usr/share} - %description This package is a test case runner for enlightenment. @@ -34,14 +32,10 @@ make %{?_smp_mflags} %install rm -rf %{buildroot} -# for license notification -mkdir -p %{buildroot}/%{TZ_SYS_RO_SHARE}/license -cp -a %{_builddir}/%{buildsubdir}/COPYING %{buildroot}/%{TZ_SYS_RO_SHARE}/license/%{name} - # install make install DESTDIR=%{buildroot} %files %defattr(-,root,root,-) -%{TZ_SYS_RO_SHARE}/license/%{name} %{_bindir}/e_test_runner +%license COPYING \ No newline at end of file -- 2.7.4 From 543d69fcab7191c4b6b06272323bfebfd69e85f1 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Mon, 18 Sep 2017 17:20:34 +0900 Subject: [PATCH 10/16] e_test_runner: change version of tizen_policy from 1 to 7. changing version of tizen_policy from 1 to 7 because of tizen_extensions version up Change-Id: I4078dfe54550651cc7428ee53da81932b1418e50 --- src/e_test_runner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/e_test_runner.c b/src/e_test_runner.c index d6992d1..7f2942d 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -920,7 +920,7 @@ e_tc_win_transient_for_set(E_TC_Win *tw_child, E_TC_Win *tw_parent, Eina_Bool se { tizen_policy = wl_registry_bind(registry, global->id, - &tizen_policy_interface, 1); + &tizen_policy_interface, 7); } } -- 2.7.4 From bd021772af0e38cd5e39a330295805308390b4dc Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Wed, 20 Sep 2017 19:12:07 +0900 Subject: [PATCH 11/16] Packaging: update version to 0.1.5 Change-Id: I6aed62d4851685edffa9527310db67c195d9807b --- packaging/e-tizen-testcase.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/e-tizen-testcase.spec b/packaging/e-tizen-testcase.spec index 0345f8e..ee50c9b 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -1,5 +1,5 @@ Name: e-tizen-testcase -Version: 0.1.4 +Version: 0.1.5 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org @@ -38,4 +38,4 @@ make install DESTDIR=%{buildroot} %files %defattr(-,root,root,-) %{_bindir}/e_test_runner -%license COPYING \ No newline at end of file +%license COPYING -- 2.7.4 From 994833acf0390c64ce5acd4b1da67db52fb37bbf Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 12 Oct 2017 16:33:29 +0900 Subject: [PATCH 12/16] e_test_runner: changing tw->name from string to eina_stringshare Change-Id: Ie39c9cadd4858abe785c3b016c72b3e07d4f75a9 --- src/e_test_runner.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/e_test_runner.c b/src/e_test_runner.c index 7f2942d..e399e99 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -136,7 +136,7 @@ _cb_method_win_info_list_get(void *data, const Eldbus_Message *msg, Eldbus_Pending *p EINA_UNUSED) { - const char *name = NULL, *text = NULL; + const char *name = NULL, *text = NULL, *wname = NULL; Eldbus_Message_Iter *array, *ec; Ecore_Window target_win = 0; Window_Info_List *info_list = data; @@ -160,7 +160,7 @@ _cb_method_win_info_list_get(void *data, (ec, E_TC_SIGN_WIN_INFO, &tw->native_win, - &tw->name, + &wname, &tw->x, &tw->y, &tw->w, &tw->h, &tw->layer, &tw->effect, @@ -175,6 +175,13 @@ _cb_method_win_info_list_get(void *data, &tw->focus.obj, &tw->rot); + if (wname) + { + if (tw->name) + eina_stringshare_del(tw->name); + tw->name = eina_stringshare_add(wname); + } + if (tw->effect) animating = EINA_TRUE; -- 2.7.4 From 6d064df866fa05c81b407cb0ff6b5b5c75e36320 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 12 Oct 2017 17:04:30 +0900 Subject: [PATCH 13/16] Testcase_0000: renew method, signal name used in the tc_0010 Change-Id: Ie879a9b5bd07b5926f2110d59d0026c027b83480 --- src/0000_easy.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/0000_easy.c b/src/0000_easy.c index d8b6d08..d24a8f9 100644 --- a/src/0000_easy.c +++ b/src/0000_easy.c @@ -15,13 +15,22 @@ _cb_introspect(void *data, res = eldbus_message_arguments_get(msg, "s", &arg); EINA_SAFETY_ON_FALSE_GOTO(res, finish); - if ((!strstr(arg, "method name=\"RegisterWindow\"" )) || - (!strstr(arg, "method name=\"DeregisterWindow\"" )) || - (!strstr(arg, "method name=\"SetWindowStack\"" )) || - (!strstr(arg, "method name=\"GetWindowInfo\"" )) || - (!strstr(arg, "signal name=\"VisibilityChanged\"")) || - (!strstr(arg, "signal name=\"StackChanged\"" )) || - (!strstr(arg, "property name=\"Registrant\"" ))) + if ((!strstr(arg, "method name=\"RegisterWindow\"" )) || + (!strstr(arg, "method name=\"DeregisterWindow\"" )) || + (!strstr(arg, "method name=\"SetWindowStack\"" )) || + (!strstr(arg, "method name=\"GetWinInfo\"" )) || + (!strstr(arg, "method name=\"GetWinsInfo\"" )) || + (!strstr(arg, "method name=\"DPMS\"" )) || + (!strstr(arg, "method name=\"EventFreeze\"" )) || + (!strstr(arg, "method name=\"EventMouse\"" )) || + (!strstr(arg, "method name=\"EventKey\"" )) || + (!strstr(arg, "method name=\"HWC\"" )) || + (!strstr(arg, "method name=\"GetCurrentZoneRotation\"")) || + (!strstr(arg, "method name=\"ChangeZoneRotation\"" )) || + (!strstr(arg, "signal name=\"VisibilityChanged\"" )) || + (!strstr(arg, "signal name=\"StackChanged\"" )) || + (!strstr(arg, "signal name=\"WinRotationChanged\"" )) || + (!strstr(arg, "property name=\"Registrant\"" ))) { ERR("missing mehod, signal or property:%s\n", arg); goto finish; -- 2.7.4 From a667f9077207f0b7bd7085f78e588f6200862b4e Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Mon, 16 Oct 2017 10:20:56 +0900 Subject: [PATCH 14/16] tc_0400: replace compare screensaver layer from noti_low to alert Change-Id: I0aa97dc7ee07c92dd301b04818f3f3a07a57a08c --- src/0400_tzsh.c | 2 +- src/e_test_runner.h | 24 ++++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/0400_tzsh.c b/src/0400_tzsh.c index d829044..5b718ed 100644 --- a/src/0400_tzsh.c +++ b/src/0400_tzsh.c @@ -62,7 +62,7 @@ tc_0400_scrsaver_basic(E_TC *tc) chk_found = EINA_TRUE; - if (tw2->layer == E_LAYER_CLIENT_NOTIFICATION_LOW) + if (tw2->layer == E_LAYER_CLIENT_ALERT) chk_ly = EINA_TRUE; if ((tw2->vis.win) && diff --git a/src/e_test_runner.h b/src/e_test_runner.h index 48ec2c2..1174c8d 100644 --- a/src/e_test_runner.h +++ b/src/e_test_runner.h @@ -96,10 +96,10 @@ typedef enum _E_TC_Win_Color typedef enum _E_Layer { E_LAYER_BOTTOM = -100, - E_LAYER_BG = -1, - E_LAYER_DESKTOP = 0, - E_LAYER_DESKTOP_TOP = 10, - E_LAYER_CLIENT_DESKTOP = 100, + E_LAYER_BG = -1, // zone bg stuff + E_LAYER_DESKTOP = 0, // desktop objects: fileman, gadgets, shelves + E_LAYER_DESKTOP_TOP = 10, // raised desktop objects: gadgets + E_LAYER_CLIENT_DESKTOP = 100, //shelves E_LAYER_CLIENT_BELOW = 150, E_LAYER_CLIENT_NORMAL = 200, E_LAYER_CLIENT_ABOVE = 250, @@ -114,12 +114,15 @@ typedef enum _E_Layer E_LAYER_CLIENT_NOTIFICATION_NORMAL = 700, E_LAYER_CLIENT_NOTIFICATION_HIGH = 750, E_LAYER_CLIENT_NOTIFICATION_TOP = 800, - E_LAYER_CLIENT_ALERT = 850, - E_LAYER_POPUP = 999, + E_LAYER_CLIENT_ALERT_LOW = 850, + E_LAYER_CLIENT_ALERT = 900, + E_LAYER_CLIENT_ALERT_HIGH = 950, + E_LAYER_CLIENT_CURSOR = 990, + E_LAYER_POPUP = 999, // popups E_LAYER_EFFECT = 1999, - E_LAYER_MENU = 5000, - E_LAYER_DESKLOCK = 9999, - E_LAYER_MAX = 32767 + E_LAYER_MENU = 5000, // menus + E_LAYER_DESKLOCK = 9999, // desklock + E_LAYER_MAX = 32767 // EVAS_LAYER_MAX } E_Layer; typedef enum _E_Visibility @@ -127,7 +130,8 @@ typedef enum _E_Visibility E_VISIBILITY_UNKNOWN = -1, E_VISIBILITY_UNOBSCURED = 0, E_VISIBILITY_PARTIALLY_OBSCURED = 1, - E_VISIBILITY_FULLY_OBSCURED = 2 + E_VISIBILITY_FULLY_OBSCURED = 2, + E_VISIBILITY_PRE_UNOBSCURED = 3, } E_Visibility; typedef struct _E_Test_Runner E_Test_Runner; -- 2.7.4 From 641f257d6324d5aadef945e4a54cbed0b2b459ea Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Tue, 17 Oct 2017 18:21:55 +0900 Subject: [PATCH 15/16] tc0300_notification: renew deprecated notification level to newer Change-Id: I9f8e3dcc4471cb9a12fb09a25bfa54ab4326a224 --- src/0300_notification.c | 24 ++++++++++++------------ src/e_test_runner.c | 6 +++--- src/e_test_runner.h | 6 +++--- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/0300_notification.c b/src/0300_notification.c index a7f9fcf..a201d27 100644 --- a/src/0300_notification.c +++ b/src/0300_notification.c @@ -154,7 +154,7 @@ failed: } Eina_Bool -tc_0300_notification_level_1(E_TC *tc) +tc_0300_notification_level_default(E_TC *tc) { Eina_Bool res = EINA_FALSE; E_TC_Data *data; @@ -165,10 +165,10 @@ tc_0300_notification_level_1(E_TC *tc) EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); data = tc->data; - res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_1); + res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); - res = _tc_noti_level_check(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_1); + res = _tc_noti_level_check(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); res = _tc_check_stack(tc, data->tw_normal, data->tw_noti2, data->tw_noti1); @@ -182,7 +182,7 @@ cleanup: } Eina_Bool -tc_0301_notification_level_2(E_TC *tc) +tc_0301_notification_level_medium(E_TC *tc) { Eina_Bool res = EINA_FALSE; E_TC_Data *data; @@ -193,10 +193,10 @@ tc_0301_notification_level_2(E_TC *tc) EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); data = tc->data; - res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_2); + res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); - res = _tc_noti_level_check(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_2); + res = _tc_noti_level_check(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); res = _tc_check_stack(tc, data->tw_normal, data->tw_noti2, data->tw_noti1); @@ -210,7 +210,7 @@ cleanup: } Eina_Bool -tc_0302_notification_level_3(E_TC *tc) +tc_0302_notification_level_top(E_TC *tc) { Eina_Bool res = EINA_FALSE; E_TC_Data *data; @@ -221,10 +221,10 @@ tc_0302_notification_level_3(E_TC *tc) EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); data = tc->data; - res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_3); + res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_TOP); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); - res = _tc_noti_level_check(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_3); + res = _tc_noti_level_check(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_TOP); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); res = _tc_check_stack(tc, data->tw_normal, data->tw_noti2, data->tw_noti1); @@ -249,16 +249,16 @@ tc_0303_notification_level_change(E_TC *tc) EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); data = tc->data; - res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_3); + res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_TOP); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); - res = _tc_noti_level_set(data->tw_noti2, EFL_UTIL_NOTIFICATION_LEVEL_2); + res = _tc_noti_level_set(data->tw_noti2, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); res = _tc_check_stack(tc, data->tw_normal, data->tw_noti2, data->tw_noti1); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); - res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_1); + res = _tc_noti_level_set(data->tw_noti1, EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); res = _tc_check_stack(tc, data->tw_normal, data->tw_noti1, data->tw_noti2); diff --git a/src/e_test_runner.c b/src/e_test_runner.c index e399e99..2b57478 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -1021,9 +1021,9 @@ _e_test_runner_init(E_Test_Runner *runner, TC_ADD( 204, "Transient for: Stack below", T_FUNC( 204, transient_for_stack_below ), 1); /* [0300 - 0399] notification */ - TC_ADD( 300, "Noti Level 1", T_FUNC( 300, notification_level_1 ), 1); - TC_ADD( 301, "Noti Level 2", T_FUNC( 301, notification_level_2 ), 1); - TC_ADD( 302, "Noti Level 3", T_FUNC( 302, notification_level_3 ), 1); + TC_ADD( 300, "Noti Level default", T_FUNC( 300, notification_level_default), 1); + TC_ADD( 301, "Noti Level medium", T_FUNC( 301, notification_level_medium ), 1); + TC_ADD( 302, "Noti Level top", T_FUNC( 302, notification_level_top ), 1); TC_ADD( 303, "Noti Level Change", T_FUNC( 303, notification_level_change ), 1); /* [0400 - 0499] tizen-ws-shell */ diff --git a/src/e_test_runner.h b/src/e_test_runner.h index 1174c8d..796b79d 100644 --- a/src/e_test_runner.h +++ b/src/e_test_runner.h @@ -262,9 +262,9 @@ Eina_Bool tc_0202_transient_for_lower(E_TC *tc); Eina_Bool tc_0203_transient_for_stack_above(E_TC *tc); Eina_Bool tc_0204_transient_for_stack_below(E_TC *tc); -Eina_Bool tc_0300_notification_level_1(E_TC *tc); -Eina_Bool tc_0301_notification_level_2(E_TC *tc); -Eina_Bool tc_0302_notification_level_3(E_TC *tc); +Eina_Bool tc_0300_notification_level_default(E_TC *tc); +Eina_Bool tc_0301_notification_level_medium(E_TC *tc); +Eina_Bool tc_0302_notification_level_top(E_TC *tc); Eina_Bool tc_0303_notification_level_change(E_TC *tc); Eina_Bool tc_0400_scrsaver_basic(E_TC *tc); -- 2.7.4 From c45b1d4a40c51cff01e5bd2a79600dd690f9b1e2 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Wed, 18 Oct 2017 14:33:11 +0900 Subject: [PATCH 16/16] tc0401_scrsaver_manager: change time of expire_timer Change-Id: I011183f4b443079494f89e24e69c64703f3ab1d8 --- src/0400_tzsh.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/0400_tzsh.c b/src/0400_tzsh.c index 5b718ed..96e125b 100644 --- a/src/0400_tzsh.c +++ b/src/0400_tzsh.c @@ -139,7 +139,7 @@ _cb_state_change(void *data, ecore_timer_del(tc_data->expire_timer); tc_data->expire_timer = NULL; } - tc_data->expire_timer = ecore_timer_add(1.0, _cb_timeout, tc_data); + tc_data->expire_timer = ecore_timer_add(1.1, _cb_timeout, tc_data); tc_data->chk_ev_state_idle_timeout = EINA_TRUE; @@ -229,7 +229,7 @@ tc_0401_scrsaver_mng_basic(E_TC *tc) data); EINA_SAFETY_ON_FALSE_GOTO(res == 0, cleanup); - data->expire_timer = ecore_timer_add(1.0, _cb_timeout, data); + data->expire_timer = ecore_timer_add(1.1, _cb_timeout, data); data->runner = tc->runner; e_test_runner_req_ev_freeze(tc->runner); -- 2.7.4