From 555abcba7561dd73e9461f75e4d0d51c741f00c3 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Fri, 15 Jul 2016 17:06:45 +0900 Subject: [PATCH 01/16] Packaging: update version to 0.1.0 Change-Id: Ie4431b662036429803ec2946d6944477940e2823 --- 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 1d04aa0..96ff310 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -1,5 +1,5 @@ Name: e-tizen-testcase -Version: 0.0.8 +Version: 0.1.0 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From 76a1420dfb914122361698e7bf195b212ca34271 Mon Sep 17 00:00:00 2001 From: MinJeong Kim Date: Wed, 3 Aug 2016 21:57:14 +0900 Subject: [PATCH 02/16] Wait for end of effect animation to get proper window list Change-Id: I0bac90e7a48de9287fbe21cb35431bab9ad27400 Signed-off-by: MinJeong Kim --- src/0000_easy.c | 2 +- src/e_test_runner.c | 77 +++++++++++++++++++++++++++++++++++++++-------------- src/e_test_runner.h | 3 ++- 3 files changed, 60 insertions(+), 22 deletions(-) diff --git a/src/0000_easy.c b/src/0000_easy.c index 07a2674..84538fb 100644 --- a/src/0000_easy.c +++ b/src/0000_easy.c @@ -129,7 +129,7 @@ tc_0011_win_register(E_TC *tc) EINA_SAFETY_ON_NULL_RETURN_VAL(tc, EINA_FALSE); - tw = e_tc_win_info_add(_WIN_ID, EINA_FALSE, "tc", 0, 0, 1, 1, 0); + tw = e_tc_win_info_add(_WIN_ID, EINA_FALSE, EINA_FALSE, "tc", 0, 0, 1, 1, 0); EINA_SAFETY_ON_NULL_GOTO(tw, finish); /* check RegisterWindow method */ diff --git a/src/e_test_runner.c b/src/e_test_runner.c index bce4fc3..07c58cb 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -7,6 +7,11 @@ int _log_dom = -1; struct tizen_policy *tizen_policy = NULL; struct tizen_surface *tizen_surface = NULL; +typedef struct { + Eina_List *list; + Eina_Bool retry; +} Window_Info_List; + static void _e_test_runner_cb_resource_id(void *data, struct tizen_resource *tizen_resource EINA_UNUSED, @@ -84,44 +89,56 @@ _cb_method_win_info_list_get(void *data, const char *name = NULL, *text = NULL; Eldbus_Message_Iter *array, *ec; Ecore_Window target_win = 0; - Eina_List *list = data; - Eina_Bool res; + Window_Info_List *info_list = data; + Eina_Bool res, animating = EINA_FALSE; + + if (!!!info_list) + goto finish; res = eldbus_message_error_get(msg, &name, &text); EINA_SAFETY_ON_TRUE_GOTO(res, finish); - res = eldbus_message_arguments_get(msg, "ua(usiiiiibb)", &target_win, &array); + res = eldbus_message_arguments_get(msg, "ua(usiiiiibbb)", &target_win, &array); EINA_SAFETY_ON_FALSE_GOTO(res, finish); while (eldbus_message_iter_get_and_next(array, 'r', &ec)) { const char *win_name; int x, y, w, h, layer; - Eina_Bool visible, alpha; + Eina_Bool visible, alpha, effect = EINA_FALSE; Ecore_Window native_win; E_TC_Win *tw = NULL; res = eldbus_message_iter_arguments_get(ec, - "usiiiiibb", - &native_win, + "usiiiiibbb", + &native_win, &win_name, &x, &y, &w, &h, &layer, + &effect, &visible, &alpha); + + if (effect) + animating = EINA_TRUE; + if (!res) { WRN("Failed to get win info\n"); continue; } - tw = e_tc_win_info_add(native_win, alpha, win_name, x, y, w, h, layer); - list = eina_list_append(list, tw); + tw = e_tc_win_info_add(native_win, alpha, effect, win_name, x, y, w, h, layer); + info_list->list = eina_list_append(info_list->list, tw); } + if (animating) + info_list->retry = EINA_TRUE; + + finish: if ((name) || (text)) { @@ -332,21 +349,39 @@ Eina_List * e_test_runner_req_win_info_list_get(E_Test_Runner *runner) { Eldbus_Pending *p; - Eina_List *list = NULL; - list = eina_list_append(list, NULL); + Window_Info_List *info_list = NULL; - p = eldbus_proxy_call(runner->dbus.proxy, - "GetWindowInfo", - _cb_method_win_info_list_get, - list, - -1, - ""); - EINA_SAFETY_ON_NULL_RETURN_VAL(p, NULL); + info_list = E_NEW(Window_Info_List, 1); - elm_run(); - list = eina_list_remove(list, NULL); + while (info_list) + { + p = eldbus_proxy_call(runner->dbus.proxy, + "GetWindowInfo", + _cb_method_win_info_list_get, + info_list, + -1, + ""); + EINA_SAFETY_ON_NULL_RETURN_VAL(p, NULL); + + elm_run(); + + if (info_list->retry) + { + E_TC_Win *tw; + info_list->retry = EINA_FALSE; + EINA_LIST_FREE(info_list->list, tw) + { + if (tw) + e_tc_win_del(tw); + } + + continue; + } + + break; + } - return list; + return info_list->list; } Eina_Bool @@ -523,6 +558,7 @@ err: E_TC_Win * e_tc_win_info_add(Ecore_Window native_win, Eina_Bool alpha, + Eina_Bool animating, const char *name, int x, int y, int w, int h, @@ -542,6 +578,7 @@ e_tc_win_info_add(Ecore_Window native_win, tw->h = h; tw->layer = layer; tw->alpha = alpha; + tw->animating = animating; return tw; } diff --git a/src/e_test_runner.h b/src/e_test_runner.h index 64e6fff..f646489 100644 --- a/src/e_test_runner.h +++ b/src/e_test_runner.h @@ -118,6 +118,7 @@ struct _E_TC_Win int layer; // value of E_Layer int vis; // visibility int alpha; // alpha window + Eina_Bool animating; }; struct _E_TC @@ -138,7 +139,7 @@ Eina_Bool e_test_runner_req_win_stack_set(E_Test_Runner *runner, E_TC_Win *tw, 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); -E_TC_Win *e_tc_win_info_add(Ecore_Window native_win, Eina_Bool alpha, const char *name, int x, int y, int w, int h, int layer); +E_TC_Win *e_tc_win_info_add(Ecore_Window native_win, Eina_Bool alpha, Eina_Bool animating, const char *name, int x, int y, int w, int h, int layer); void e_tc_win_del(E_TC_Win *tw); void e_tc_win_geom_update(E_TC_Win *tw); void e_tc_win_show(E_TC_Win *tw); -- 2.7.4 From 1a0f0717124bc85c38872ed4f2e119d407b126b9 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Tue, 9 Aug 2016 15:20:26 +0900 Subject: [PATCH 03/16] Packaging: update version to 0.1.1 Change-Id: Id0ba79acf3331e8cb78b1a46f5cd7dd590b1fa5b --- 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 96ff310..ba4eec1 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -1,5 +1,5 @@ Name: e-tizen-testcase -Version: 0.1.0 +Version: 0.1.1 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From b76baba3e4ed5001c509c1fb582b9a983dc5eb36 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Mon, 22 Aug 2016 13:21:02 +0900 Subject: [PATCH 04/16] e_test_runner: added missing free for info_list. Change-Id: Icfccb938cb8b50c5dd11a318a2b63a7f8858f05a --- src/e_test_runner.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/e_test_runner.c b/src/e_test_runner.c index 07c58cb..a77c1a0 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -350,8 +350,10 @@ e_test_runner_req_win_info_list_get(E_Test_Runner *runner) { Eldbus_Pending *p; Window_Info_List *info_list = NULL; + Eina_List *list = NULL; info_list = E_NEW(Window_Info_List, 1); + EINA_SAFETY_ON_NULL_RETURN_VAL(info_list, NULL); while (info_list) { @@ -381,7 +383,10 @@ e_test_runner_req_win_info_list_get(E_Test_Runner *runner) break; } - return info_list->list; + list = eina_list_clone(info_list->list); + E_FREE(info_list); + + return list; } Eina_Bool -- 2.7.4 From d17339c5a903159014260aa48b4bed7fab78ec51 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Mon, 22 Aug 2016 13:38:10 +0900 Subject: [PATCH 05/16] Packaging: update version to 0.1.2 Change-Id: I0cfbebd0ffd2c58b8612eb9bcd6e4ae7c3dc8481 --- 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 ba4eec1..6fa202a 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -1,5 +1,5 @@ Name: e-tizen-testcase -Version: 0.1.1 +Version: 0.1.2 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From 329695c1d23f79138e48d594ec7482a0a6578c02 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Wed, 24 Aug 2016 19:48:43 +0900 Subject: [PATCH 06/16] refactored codes and added a tizen-ws-shell screensaver TC Change-Id: I58dabc9ad27be8a158ab83722b3d1fa8ed0763ad --- configure.ac | 5 +- packaging/e-tizen-testcase.spec | 2 + src/0000_easy.c | 4 +- src/0400_tzsh.c | 84 +++++++++++++++++++++ src/Makefile.am | 3 +- src/e_test_runner.c | 163 +++++++++++++++++++++------------------- src/e_test_runner.h | 39 +++++++--- 7 files changed, 211 insertions(+), 89 deletions(-) create mode 100644 src/0400_tzsh.c diff --git a/configure.ac b/configure.ac index be1c478..238d4af 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,10 @@ requirements="\ capi-ui-efl-util \ wayland-client \ ecore-wayland \ - tizen-extension-client" + tizen-extension-client \ + tzsh-screensaver-manager-service \ + tzsh-screensaver-service \ + " PKG_CHECK_MODULES(E_TEST_RUNNER, [${requirements}]) diff --git a/packaging/e-tizen-testcase.spec b/packaging/e-tizen-testcase.spec index 6fa202a..2742933 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -11,6 +11,8 @@ BuildRequires: pkgconfig(eldbus) BuildRequires: pkgconfig(capi-ui-efl-util) BuildRequires: gettext 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} diff --git a/src/0000_easy.c b/src/0000_easy.c index 84538fb..d8b6d08 100644 --- a/src/0000_easy.c +++ b/src/0000_easy.c @@ -129,9 +129,11 @@ tc_0011_win_register(E_TC *tc) EINA_SAFETY_ON_NULL_RETURN_VAL(tc, EINA_FALSE); - tw = e_tc_win_info_add(_WIN_ID, EINA_FALSE, EINA_FALSE, "tc", 0, 0, 1, 1, 0); + tw = e_tc_win_info_add(); EINA_SAFETY_ON_NULL_GOTO(tw, finish); + tw->native_win = _WIN_ID; + /* check RegisterWindow method */ res = e_test_runner_req_win_register(tc->runner, tw); EINA_SAFETY_ON_FALSE_GOTO(res, finish); diff --git a/src/0400_tzsh.c b/src/0400_tzsh.c new file mode 100644 index 0000000..4fad532 --- /dev/null +++ b/src/0400_tzsh.c @@ -0,0 +1,84 @@ +#include +#include +#include "e_test_runner.h" + +/* Name: + * [0400] scrsaver basic + * Description: + * Check screensaver type window that is shown on the notification layer. + * Steps: + * 01. Create an elm basic window + * 02. Set elm window to be screensaver type using tzsh + * 03. Show window + * 04. Check window stack + * Expected results: + * A window is shown on the notification layer. + */ +Eina_Bool +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_SAFETY_ON_NULL_RETURN_VAL(tc, 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 = tzsh_screensaver_service_create(tzsh, tz_win); + EINA_SAFETY_ON_NULL_GOTO(tz_scrsaver, cleanup); + + res = e_test_runner_req_win_register(tc->runner, tw); + EINA_SAFETY_ON_FALSE_GOTO(res, cleanup); + + e_tc_win_geom_update(tw); + e_tc_win_show(tw); + e_test_runner_ev_wait(tc->runner, E_TC_EVENT_TYPE_VIS_ON); + + l = e_test_runner_req_win_info_list_get(tc->runner); + EINA_SAFETY_ON_NULL_GOTO(l, cleanup); + + EINA_LIST_FOREACH(l, ll, tw2) + { + if (tw2->layer < 650) break; + + if (tw2->native_win == tw->native_win) + { + found = EINA_TRUE; + + if (tw2->layer == 650) + tc->passed = EINA_TRUE; + else + EINA_SAFETY_ON_FALSE_GOTO(EINA_FALSE, cleanup); + + break; + } + } + + EINA_SAFETY_ON_FALSE_GOTO(found, cleanup); + +cleanup: + e_test_runner_req_win_info_list_free(l); + e_tc_win_hide(tw); + e_test_runner_req_win_deregister(tc->runner, tw); + e_tc_win_del(tw); + + tzsh_screensaver_service_destroy(tz_scrsaver); + tzsh_destroy(tzsh); + + return tc->passed; +} diff --git a/src/Makefile.am b/src/Makefile.am index 41c8885..bcf0f7e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,7 +14,8 @@ e_test_runner.h \ 0100_base_operation.c \ 0150_base_operation_multi_wins.c \ 0200_transient_for.c \ -0300_notification.c +0300_notification.c \ +0400_tzsh.c MAINTAINERCLEANFILES = \ Makefile.in diff --git a/src/e_test_runner.c b/src/e_test_runner.c index a77c1a0..ed7bc2d 100644 --- a/src/e_test_runner.c +++ b/src/e_test_runner.c @@ -98,40 +98,42 @@ _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(usiiiiibbb)", &target_win, &array); + res = eldbus_message_arguments_get(msg, "ua(usiiiiibbbiibbbbb)", &target_win, &array); EINA_SAFETY_ON_FALSE_GOTO(res, finish); while (eldbus_message_iter_get_and_next(array, 'r', &ec)) { - const char *win_name; - int x, y, w, h, layer; - Eina_Bool visible, alpha, effect = EINA_FALSE; - Ecore_Window native_win; - E_TC_Win *tw = NULL; - - res = eldbus_message_iter_arguments_get(ec, - "usiiiiibbb", - &native_win, - &win_name, - &x, - &y, - &w, - &h, - &layer, - &effect, - &visible, - &alpha); - - if (effect) - animating = EINA_TRUE; + E_TC_Win *tw = e_tc_win_info_add(); + if (!tw) continue; + + res = eldbus_message_iter_arguments_get + (ec, + "usiiiiibbbiibbbbb", + &tw->native_win, + &tw->name, + &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); + + if (tw->effect) + animating = EINA_TRUE; if (!res) { WRN("Failed to get win info\n"); + e_tc_win_del(tw); continue; } - tw = e_tc_win_info_add(native_win, alpha, effect, win_name, x, y, w, h, layer); info_list->list = eina_list_append(info_list->list, tw); } @@ -389,6 +391,17 @@ e_test_runner_req_win_info_list_get(E_Test_Runner *runner) return list; } +void +e_test_runner_req_win_info_list_free(Eina_List *l) +{ + E_TC_Win *tw; + + EINA_SAFETY_ON_NULL_RETURN(l); + + EINA_LIST_FREE(l, tw) + e_tc_win_del(tw); +} + Eina_Bool e_test_runner_ev_wait(E_Test_Runner *runner, E_TC_Event_Type ev) @@ -462,6 +475,34 @@ e_test_runner_work(void) elm_run(); } +void +e_test_runner_util_win_info_print(E_Test_Runner *runner) +{ + E_TC_Win *tw; + Eina_List *l, *ll; + + printf("--------------------------------------------------------------------------------------------------------------------------\n"); + l = e_test_runner_req_win_info_list_get(runner); + EINA_LIST_FOREACH(l, ll, tw) + { + 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, + tw->alpha, + tw->x, tw->y, tw->w, tw->h, + tw->vis.win, + tw->vis.obj, + tw->vis.opaque, + tw->vis.type, + tw->vis.skip, + tw->iconic, + tw->focus.win, + tw->focus.obj); + } + e_test_runner_req_win_info_list_free(l); + printf("--------------------------------------------------------------------------------------------------------------------------\n"); +} + E_TC_Win * e_tc_win_add(E_TC_Win *parent, Elm_Win_Type type, @@ -494,35 +535,18 @@ e_tc_win_add(E_TC_Win *parent, bg = elm_bg_add(elm_win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(elm_win, bg); + switch (color) { - case E_TC_WIN_COLOR_BLACK: - elm_bg_color_set(bg, 0, 0, 0); - break; - case E_TC_WIN_COLOR_WHITE: - elm_bg_color_set(bg, 255, 255, 255); - break; - case E_TC_WIN_COLOR_RED: - elm_bg_color_set(bg, 255, 0, 0); - break; - case E_TC_WIN_COLOR_GREEN: - elm_bg_color_set(bg, 0, 255, 0); - break; - case E_TC_WIN_COLOR_BLUE: - elm_bg_color_set(bg, 0, 0, 255); - break; - case E_TC_WIN_COLOR_YELLOW: - elm_bg_color_set(bg, 255, 255, 0); - break; - case E_TC_WIN_COLOR_CYAN: - elm_bg_color_set(bg, 0, 255, 255); - break; - case E_TC_WIN_COLOR_PURPLE: - elm_bg_color_set(bg, 255, 0, 255); - break; - default: - elm_bg_color_set(bg, 255, 0, 0); - break; + case E_TC_WIN_COLOR_BLACK: elm_bg_color_set(bg, 0, 0, 0); break; + case E_TC_WIN_COLOR_WHITE: elm_bg_color_set(bg, 255, 255, 255); break; + case E_TC_WIN_COLOR_RED: elm_bg_color_set(bg, 255, 0, 0); break; + case E_TC_WIN_COLOR_GREEN: elm_bg_color_set(bg, 0, 255, 0); break; + case E_TC_WIN_COLOR_BLUE: elm_bg_color_set(bg, 0, 0, 255); break; + case E_TC_WIN_COLOR_YELLOW: elm_bg_color_set(bg, 255, 255, 0); break; + case E_TC_WIN_COLOR_CYAN: elm_bg_color_set(bg, 0, 255, 255); break; + case E_TC_WIN_COLOR_PURPLE: elm_bg_color_set(bg, 255, 0, 255); break; + default: elm_bg_color_set(bg, 255, 0, 0); break; } evas_object_show(bg); @@ -536,17 +560,13 @@ e_tc_win_add(E_TC_Win *parent, tw->name = eina_stringshare_add(name); if (usr_geom) { - tw->x = x; - tw->y = y; - tw->w = w; - tw->h = h; + tw->x = x; tw->y = y; + tw->w = w; tw->h = h; } else { - tw->x = 0; - tw->y = 0; - tw->w = sw; - tw->h = sh; + tw->x = 0; tw->y = 0; + tw->w = sw; tw->h = sh; } tw->layer = layer; tw->alpha = alpha; @@ -561,30 +581,13 @@ err: } E_TC_Win * -e_tc_win_info_add(Ecore_Window native_win, - Eina_Bool alpha, - Eina_Bool animating, - const char *name, - int x, int y, - int w, int h, - int layer) +e_tc_win_info_add(void) { E_TC_Win *tw = NULL; tw = E_NEW(E_TC_Win, 1); EINA_SAFETY_ON_NULL_RETURN_VAL(tw, NULL); - tw->elm_win = NULL; - tw->native_win = native_win; - tw->name = eina_stringshare_add(name); - tw->x = x; - tw->y = y; - tw->w = w; - tw->h = h; - tw->layer = layer; - tw->alpha = alpha; - tw->animating = animating; - return tw; } @@ -612,12 +615,16 @@ e_tc_win_geom_update(E_TC_Win *tw) void e_tc_win_show(E_TC_Win *tw) { + EINA_SAFETY_ON_NULL_RETURN(tw); + evas_object_show(tw->elm_win); } void e_tc_win_hide(E_TC_Win *tw) { + EINA_SAFETY_ON_NULL_RETURN(tw); + evas_object_hide(tw->elm_win); } @@ -737,7 +744,9 @@ _e_test_runner_init(E_Test_Runner *runner) 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( 303, "Noti Level Change", T_FUNC( 303, notification_level_change ), 1); - /* TODO */ + + /* [0400 - 0499] tizen-ws-shell */ + TC_ADD( 400, "Screensaver: Basic", T_FUNC( 400, scrsaver_basic ), 1); #undef T_FUNC } diff --git a/src/e_test_runner.h b/src/e_test_runner.h index f646489..289a7c6 100644 --- a/src/e_test_runner.h +++ b/src/e_test_runner.h @@ -111,14 +111,29 @@ struct _E_Test_Runner struct _E_TC_Win { - Evas_Object *elm_win; // elm_win evas object - 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 - int vis; // visibility - int alpha; // alpha window - Eina_Bool animating; + Evas_Object *elm_win; // elm_win evas object + Eina_Bool animating; + + 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 + Eina_Bool effect; + struct + { + Eina_Bool win; + Eina_Bool obj; + int opaque; + int type; + Eina_Bool skip; + } vis; + Eina_Bool iconic; + Eina_Bool alpha; + struct + { + Eina_Bool win; + Eina_Bool obj; + } focus; }; struct _E_TC @@ -135,11 +150,12 @@ 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_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_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); -E_TC_Win *e_tc_win_info_add(Ecore_Window native_win, Eina_Bool alpha, Eina_Bool animating, const char *name, int x, int y, int w, int h, int layer); +E_TC_Win *e_tc_win_info_add(void); void e_tc_win_del(E_TC_Win *tw); void e_tc_win_geom_update(E_TC_Win *tw); void e_tc_win_show(E_TC_Win *tw); @@ -147,6 +163,9 @@ void e_tc_win_hide(E_TC_Win *tw); Eina_Bool e_tc_win_transient_for_set(E_TC_Win *tw_parent, E_TC_Win *tw_child, Eina_Bool set); void e_test_runner_work(void); +/* utils */ +void e_test_runner_util_win_info_print(E_Test_Runner *runner); + /* test cases */ Eina_Bool tc_0000_base_pass(E_TC *tc); Eina_Bool tc_0001_base_fail(E_TC *tc); @@ -185,4 +204,6 @@ Eina_Bool tc_0301_notification_level_2(E_TC *tc); 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); + #endif -- 2.7.4 From 5df7887f33d71fb949641a3fde53a3f6877a20b2 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Mon, 29 Aug 2016 21:12:53 +0900 Subject: [PATCH 07/16] Packaging: update version to 0.1.3 Change-Id: I79d158e7d85b60e1f5930f3f05bfe76b95f9c56b --- 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 2742933..4619e08 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -1,5 +1,5 @@ Name: e-tizen-testcase -Version: 0.1.2 +Version: 0.1.3 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From 12ca5fbbaec35b2f12f72853d1bbe172f67b57a6 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Mon, 29 Aug 2016 22:22:06 +0900 Subject: [PATCH 08/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 09/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 10/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 11/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 12/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 13/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 14/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 15/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 16/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