Page MenuHomePhabricator

Write test cases for Ecore_Wl2 API
Closed, ResolvedPublic

Description

After the API has been discussed, fixed and stabilized, we should write test cases for any API that we are going to expose to public.

Managed APIs LIST

  • ecore_wl2_display_compositor_version_get(disp);
  • ecore_wl2_display_connect(name);
  • ecore_wl2_display_create(name);
  • ecore_wl2_display_destroy(display);
  • ecore_wl2_display_disconnect(display);
  • ecore_wl2_display_dmabuf_get(display);
  • ecore_wl2_display_flush(display); @myoungwoon
  • ecore_wl2_display_get(display);
  • ecore_wl2_display_globals_get(display);
  • ecore_wl2_display_input_find(const display, unsigned id); @myoungwoon
  • ecore_wl2_display_input_find_by_name(const display, name); @myoungwoon
  • ecore_wl2_display_inputs_get(display);
  • ecore_wl2_display_name_get(const display);
  • ecore_wl2_display_registry_get(display);
  • ecore_wl2_display_screen_size_get(display, *w, *h);
  • ecore_wl2_display_shm_get(display);
  • ecore_wl2_display_sync_is_done(const display); @myoungwoon
  • ecore_wl2_display_terminate(display); @myoungwoon
  • ecore_wl2_dnd_drag_end(input); @myoungwoon
  • ecore_wl2_dnd_drag_start(input, window, drag_window); @myoungwoon
  • ecore_wl2_dnd_drag_types_set(input, *types); @myoungwoon
  • ecore_wl2_dnd_selection_clear(input); @myoungwoon
  • ecore_wl2_dnd_selection_get(input); @myoungwoon
  • ecore_wl2_dnd_selection_set(input, *types); @myoungwoon
  • ecore_wl2_dnd_set_actions(input); @myoungwoon
  • ecore_wl2_init();
  • ecore_wl2_input_cursor_from_name_set(input, cursor); @myoungwoon
  • ecore_wl2_input_display_get(const input);
  • ecore_wl2_input_keyboard_repeat_set(const input, double *rate, double *delay);
  • ecore_wl2_input_keyboard_repeat_get(const input, double *rate, double *delay); @myoungwoon
  • ecore_wl2_input_keymap_get(const input);
  • ecore_wl2_input_name_get(input);
  • ecore_wl2_input_pointer_set(input, surface, hot_x, hot_y); @myoungwoon
  • ecore_wl2_input_pointer_xy_get(const input, *x, *y); @myoungwoon
  • ecore_wl2_input_seat_capabilities_get(input); @myoungwoon
  • ecore_wl2_input_seat_device_get(const input, const window); @myoungwoon
  • ecore_wl2_input_seat_get(input);
  • ecore_wl2_input_seat_id_get(input) EINA_WARN_UNUSED_RESULT;
  • ecore_wl2_offer_accept(Ecore_Wl2_Offer *offer, mime_type); @eagleeye
  • ecore_wl2_offer_action_get(Ecore_Wl2_Offer *offer); @eagleeye
  • ecore_wl2_offer_actions_get(Ecore_Wl2_Offer *offer); @eagleeye
  • ecore_wl2_offer_actions_set(Ecore_Wl2_Offer *offer, Ecore_Wl2_Drag_Action actions, Ecore_Wl2_Drag_Action action); @eagleeye
  • ecore_wl2_offer_finish(Ecore_Wl2_Offer *offer); @eagleeye
  • ecore_wl2_offer_mimes_get(Ecore_Wl2_Offer *offer); @eagleeye
  • ecore_wl2_offer_mimes_set(Ecore_Wl2_Offer *offer, Eina_Array *mimes); @eagleeye
  • ecore_wl2_offer_proxy_receive(Ecore_Wl2_Offer *offer, mime, fd); @eagleeye
  • ecore_wl2_offer_proxy_receive_end(Ecore_Wl2_Offer *offer); @eagleeye
  • ecore_wl2_offer_receive(Ecore_Wl2_Offer *offer, char *mime); @eagleeye
  • ecore_wl2_offer_supports_mime(Ecore_Wl2_Offer *offer, mime); @eagleeye
  • ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output); @eagleeye
  • ecore_wl2_output_transform_get(Ecore_Wl2_Output *output); @eagleeye
  • ecore_wl2_session_recovery_disable(); ?? @eagleeye
  • ecore_wl2_shutdown();
  • ecore_wl2_subsurface_del(Ecore_Wl2_Subsurface *subsurface); @eagleeye
  • ecore_wl2_subsurface_new(window); @eagleeye
  • ecore_wl2_subsurface_opaque_region_set(Ecore_Wl2_Subsurface *subsurface, x, y, w, h); @eagleeye
  • ecore_wl2_subsurface_place_above(Ecore_Wl2_Subsurface *subsurface, surface); @eagleeye
  • ecore_wl2_subsurface_place_below(Ecore_Wl2_Subsurface *subsurface, surface); @eagleeye
  • ecore_wl2_subsurface_position_get(Ecore_Wl2_Subsurface *subsurface, *x, *y); @eagleeye
  • ecore_wl2_subsurface_position_set(Ecore_Wl2_Subsurface *subsurface, x, y); @eagleeye
  • ecore_wl2_subsurface_surface_get(Ecore_Wl2_Subsurface *subsurface); @eagleeye
  • ecore_wl2_subsurface_sync_set(Ecore_Wl2_Subsurface *subsurface, sync); @eagleeye
  • ecore_wl2_window_activated_get(const window); @CHAN
  • ecore_wl2_window_alpha_get(window);
  • ecore_wl2_window_alpha_set(window, alpha);
  • ecore_wl2_window_aspect_set(window, w, h, unsigned aspect); ?? @CHAN
  • ecore_wl2_window_aux_hint_add(window, id, h, val); @CHAN
  • ecore_wl2_window_aux_hint_change(window, id, val); @CHAN
  • ecore_wl2_window_aux_hint_del(window, id); @CHAN
  • ecore_wl2_window_aux_hints_supported_get(window);
  • ecore_wl2_window_available_rotations_get(window, **rots, unsigned *count); @CHAN
  • ecore_wl2_window_available_rotations_set(window, const *rots, unsigned count); @CHAN
  • ecore_wl2_window_buffer_attach(win, *buffer, x, y, implicit); @CHAN
  • ecore_wl2_window_buffer_transform_set(window, transform); @CHAN
  • ecore_wl2_window_class_set(window, clas); ?? @CHAN
  • ecore_wl2_window_commit(window, flush); @CHAN
  • ecore_wl2_window_display_get(const window);
  • ecore_wl2_window_floating_mode_get(window);
  • ecore_wl2_window_floating_mode_set(window, floating);
  • ecore_wl2_window_focus_skip_get(window);
  • ecore_wl2_window_focus_skip_set(window, focus_skip);
  • ecore_wl2_window_frame_callback_add(window, Ecore_Wl2_Frame_Cb cb, *data); @CHAN
  • ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle); @CHAN
  • ecore_wl2_window_free(window); @CHAN No way to check D10760
  • ecore_wl2_window_fullscreen_get(window);
  • ecore_wl2_window_fullscreen_set(window, fullscreen);
  • ecore_wl2_window_geometry_get(window, *x, *y, *w, *h);
  • ecore_wl2_window_geometry_set(window, x, y, w, h);
  • ecore_wl2_window_hide(window); @CHAN
  • ecore_wl2_window_iconified_set(window, iconified); @CHAN Internal? or create get API
  • ecore_wl2_window_input_region_set(window, x, y, w, h); @CHAN Internal? or create get API
  • ecore_wl2_window_maximized_get(window);
  • ecore_wl2_window_maximized_set(window, maximized);
  • ecore_wl2_window_move(window, input); @CHAN Need user input to test...
  • ecore_wl2_window_new(display, parent, x, y, w, h);
  • ecore_wl2_window_opaque_region_set(window, x, y, w, h); @CHAN Internal? or create get API
  • ecore_wl2_window_output_find(window);
  • ecore_wl2_window_pending_get(window); @CHAN It seems work on only for manual buffer render case.
  • ecore_wl2_window_popup_input_set(window, input); @CHAN create get API?
  • ecore_wl2_window_preferred_rotation_get(window);
  • ecore_wl2_window_preferred_rotation_set(window, rot);
  • ecore_wl2_window_resize(window, input, location); @CHAN Need user input to test...
  • ecore_wl2_window_resizing_get(window); @CHAN Need user input to test...
  • ecore_wl2_window_role_set(window, role); ?? @CHAN
  • ecore_wl2_window_rotation_app_get(window);
  • ecore_wl2_window_rotation_app_set(window, set);
  • ecore_wl2_window_rotation_get(window);
  • ecore_wl2_window_rotation_set(window, rotation);
  • ecore_wl2_window_shell_surface_exists(win); @CHAN
  • ecore_wl2_window_show(window); @CHAN
  • ecore_wl2_window_surface_get(window);
  • ecore_wl2_window_surface_id_get(window);
  • ecore_wl2_window_title_set(window, title); ?? @CHAN
  • ecore_wl2_window_type_set(window, Ecore_Wl2_Window_Type type);
  • ecore_wl2_window_update_begin(window); @CHAN
  • ecore_wl2_window_wm_rotation_supported_get(window);
  • ecore_wl2_window_wm_rotation_supported_set(window, enabled);

Details

Differential Revisions
D10760: tests/ecore_wl2: Add test for ecore_wl2_window_free function
D10758: tests/ecore_wl2: Add test for ecore_wl2_window_buffer_tranform function
D10756: tests/ecore_wl2: Add test for ecore_wl2_window_buffer_attach function
D10754: tests/ecore_wl2: Add test for ecore_wl2_window_aux_hint functions
Commits
D11214 / rEFL0bf3fd386613: tests/ecore_wl2: Add dummy tests for ecore_wl2_* functions.
rEFLba3fbb566760: tests/ecore_wl2: Fix check for Enlightenment compositor
rEFL55118cac119d: tests/ecore_wl2: Add test for ecore_wl2_input_keyboard_repeat functions
D11150 / rEFL0bf03036b7c3: tests/ecore_wl2: Add tests for move, resize, resizing_get functions.
D11147 / rEFLe23dc58e200e: Revert "ecore-wl2: Move ecore_wl2_input_cursor_from_name_set to be internal"
rEFLaeb2b506fdd6: tests/ecore_wl2: Fix issue of tests running without a Wayland display
D11111 / rEFL87be474bb542: tests/ecore_wl2: Code clean up and Add, Modify TCs.
rEFLe2ba3328666c: tests/ecore_wl2: Add test for ecore_wl2_input_pointer_xy_get function
rEFL4c232f12d718: tests/ecore_wl2: Remove test of ecore_wl2_window_hint_aux functions
D11007 / rEFL2010c2ce132a: tests/ecore_wl2: Add test for ecore_wl2_window_xxx functions
rEFL83a291604399: tests/ecore_wl2: Remove test the ecore_wl2_window_output_find
rEFLd0845de6b36c: tests/ecore_wl2: Simplify test infrastructure
rEFLd8c0080dba59: tests/ecore_wl2: Add test for ecore_wl2_input_seat_capabilities_get
rEFL60672bdc5aaf: tests/ecore_wl2: Add test for ecore_wl2_display_input_find_by_name
rEFLa9ded0ab5c0d: tests/ecore_wl2: Fix input_keymap test
rEFL9df48a5a3c47: tests/ecore_wl2: Add test for ecore_wl2_window_popup_input functions
rEFL0bb0d862cebd: tests/ecore_wl2: Add test for ecore_wl2_window_opaque_region functions
rEFL59ec4ea1b349: tests/ecore_wl2: Add test for ecore_wl2_window_input_region functions
D11039 / rEFL52fa6aa1b5ca: ecore_wl2: Move ecore_wl2_window_iconified, ecore_wl2_window_pending_get…
D11007 / rEFL4ea865623df8: tests/ecore_wl2: Add test for ecore_wl2_window_xxx functions
D11038 / rEFL926cbb98af47: ecore_wl2: Add APIs to get window property.
D10829 / rEFL431f3b1fcef2: tests/ecore_wl2: Add test for ecore_wl2_window_role functions
D10761 / rEFL7d40e03ca701: tests/ecore_wl2: Add test for ecore_wl2_window_title functions
D10759 / rEFL0bfdc94df82f: tests/ecore_wl2: Add test for ecore_wl2_window_class functions
rEFL00aaf99765a1: tests/ecore_wl2: Fix bad window test
D10747 / rEFL12cb64cfadb7: tests/ecore_wl2: Add test for ecore_wl2_window_aspect functions
D10755 / rEFL167cb43a9680: tests/ecore_wl2: Add test for ecore_wl2_window_available_rotations functions
D10746 / rEFLffc3c4a7e7d9: tests/ecore_wl2: Add test for ecore_wl2_window_activated_get function
rEFL8195368929be: tests/ecore_wl2: Add test for ecore_wl2_window_type functions
rEFLdd74c6ed35e2: tests/ecore_wl2: Add test for ecore_wl2_window_geometry functions
rEFL5b588c3c39a4: tests/ecore_wl2: Add test for ecore_wl2_window_wm_rotation_supported functions
rEFL96e148b2310e: tests/ecore_wl2: Modify ecore_wl2_window_rotation test
rEFL821352458395: tests/ecore_wl2: Add test for ecore_wl2_window_rotation_app functions
rEFL67995823fd28: tests/ecore_wl2: Add test for ecore_wl2_window_maximized functions
rEFLeb7816c72792: tests/ecore_wl2: Add test for ecore_wl2_window_preferred_rotation functions
rEFL52299bffa0e5: tests/ecore_wl2: Add test for ecore_wl2_window_focus_skip_get/set functions
rEFL239549deec2a: tests/ecore_wl2: Add test for ecore_wl2_window_fullscreen functions
rEFL17919040b6d9: tests/ecore_wl2: Add test for ecore_wl2_window_floating_mode_get/set functions
rEFL1357171d569a: tests/ecore_wl2: Add test for ecore_wl2_window_alpha_get/set functions
rEFLfb718059256e: tests/ecore_wl2: Add test for ecore_wl2_display_compositor_version_get
rEFL4068d1c5be2f: tests/ecore-wl2: Remove surface test
rEFL27a1ec507a27: tests/ecore_wl2: Skip aux_hints_supported test if not run in Enlightenment
rEFL10c0e37a72e4: tests/ecore_wl2: Add ecore_wl2_surface tests to build order
rEFLe533bef2bf56: tests/ecore_wl2: Add start of ecore_wl2_surface tests
rEFL2c4b26ef4eb1: tests/ecore_wl2: Add test for ecore_wl2_input_keymap_get
rEFLadaea4170af0: tests/ecore_wl2: Add test for ecore_wl2_input_name_get
rEFLf15ca5e227fc: tests/ecore_wl2: Add test for ecore_wl2_input_display_get function
rEFLf166cf3741c0: tests/ecore_wl2: Add test for ecore_wl2_input_seat_id_get function
rEFLf481b6acf19c: tests/ecore_wl2: Fix assert tests for some window functions
rEFL34514ccf58c8: tests/ecore_wl2: Add start of Ecore_Wl2_Input API tests
rEFLa526285db4dd: tests/ecore_wl2: Reduce calls to ecore_wl2_display_connect
rEFL725cce8cb406: tests/ecore_wl2: Combine tests of ecore_wl2_window_surface functions
rEFLc1c4072b0788: tests/ecore_wl2: Add wayland protocol as a dep for ecore_wl2 tests
rEFL28c232d770bf: tests/ecore_wl2: Add test for ecore_wl2_window_display_get
rEFL5cf095dd3d8f: tests/ecore_wl2: Add test for ecore_wl2_window_output_find
rEFLa7cc7730afce: tests/ecore_wl2: Add test for ecore_wl2_window_aux_hints_supported_get
rEFLafe8414925f5: tests/ecore_wl2: Add test for ecore_wl2_window_rotation_get
rEFL8510de33c37b: tests/ecore_wl2: Add test case for ecore_wl2_window_surface_id_get
rEFL11de06e5b801: tests/ecore_wl2: Add test for ecore_wl2_window_surface_get function
rEFLccfd74f17ab0: tests/ecore_wl2: Remove use of macros for display setup & connect
rEFLaf0a37da03a7: tests/ecore_wl2: Check for valid xdg_runtime_dir
rEFL3be7c844fd81: tests/ecore_wl2: Add test for ecore_wl2_display_inputs_get
rEFLf30ef634adbb: tests/ecore_wl2: Add start of Ecore_Wl2 Window tests
rEFL7a85ad660b9f: tests/ecore_wl2: Add test for ecore_wl2_display_registry_get function
rEFL539775b1cd1a: tests/ecore_wl2: Add test for ecore_wl2_display_globals_get function
rEFLa081920c7dda: tests/ecore_wl2: Add test for ecore_wl2_display_screen_size_get function
rEFL9ef1ab7876c2: tests/ecore_wl2: Add printf for compositor detection
rEFL7618a6caf01c: tests/ecore_wl2: Add ecore_wl2_display_dmabuf_get test
rEFL3a3a2f667a18: tests/ecore_wl2: Add ecore_wl2_display_shm_get test
rEFL723412404f81: tests/ecore_wl2: Add test cases for wl2 client-side functions
rEFLb9f89fabb6f9: tests: Add tests for ecore_wl2_display_get and ecore_wl2_display_name_get
rEFL73acf72cc433: tests: Add file for Ecore_Wl2 display tests
rEFL3b28a0a0f5bf: meson: Modify Ecore_Wl2 sub project to add tests
rEFLe33609937e90: tests: Add start of Ecore_Wl2 test suite
There are a very large number of changes, so older changes are hidden. Show Older Changes
devilhorns updated the task description. (Show Details)Dec 3 2019, 8:33 AM
CHAN updated the task description. (Show Details)Dec 8 2019, 10:52 PM
CHAN updated the task description. (Show Details)Dec 9 2019, 12:16 AM
CHAN added a comment.Dec 20 2019, 12:16 AM

@devilhorns

Hi. I think we need a simple example for this.
Without actual window we can't make a reasonable test cases.

I tried to create a simple example to create a example which has a ecore wl2 window.
But it's not that easy.

Could you please add or share simple example for this?
I mean just using ecore_wl2 APIs and when it runs one window comming.

devilhorns added a comment.EditedDec 20 2019, 6:31 AM

@CHAN The issue with this is because Ecore_Wl2 does not actually handle any drawing. If we used Ecore_Evas in this test suite, then it would be a simple thing to do. However, Ecore_Wl2 window does not handle any actual rendering so in order to get it to "draw" a window, we would need to manually create a wl_buffer and attach it to an Ecore_Wl2 window. After doing that, it is still problematic because there is no rendering loop in Ecore_Wl2, so getting any changes to draw in the Ecore_Wl2 window would require a lot of code...

An easier method would be to use ecore_evas_wayland in this test suite (for Ecore_Wl2), but I do not know if that is really desired....

Please Note: I will be on vacation from 12/23/2019 to 01/01/2020.

CHAN updated the task description. (Show Details)Jan 2 2020, 2:18 AM
CHAN updated the task description. (Show Details)Jan 2 2020, 2:24 AM
CHAN updated the task description. (Show Details)Jan 2 2020, 11:33 PM
CHAN updated the task description. (Show Details)Jan 2 2020, 11:35 PM
CHAN updated the task description. (Show Details)Jan 3 2020, 1:44 AM
CHAN updated the task description. (Show Details)
CHAN updated the task description. (Show Details)Jan 3 2020, 2:01 AM
CHAN updated the task description. (Show Details)Jan 3 2020, 2:15 AM
CHAN updated the task description. (Show Details)Jan 3 2020, 2:43 AM
CHAN updated the task description. (Show Details)
CHAN updated the task description. (Show Details)Jan 7 2020, 2:07 AM
CHAN updated the task description. (Show Details)
CHAN added a comment.Jan 7 2020, 2:14 AM

@devilhorns Hello.

You mvoe the buffer APIs to internal.h
that means you think we dont have to allow manual buffer render case?

CHAN updated the task description. (Show Details)Jan 7 2020, 2:19 AM

@CHAN The buffer API functions where moved to be internal because they were not being used anywhere else other than inside EFL itself.

@CHAN The other thing I would like to get your opinion on is: What do you think about using Ecore_Evas inside the Ecore_Wl2 test suite ?? It would allow us to make tests that require user input, and also allow us to check that the window functions are working correctly because it would let us create an actual window, without having to specifically need EGL/GL.

CHAN added a comment.Jan 7 2020, 4:12 PM

@devilhorns

Yea, I agree with you.
However, we want to make the best case for the actual use case of ecore_wl2 API.

Thanks for the feedback.

+ We aim to complete the work in January.
    For APIs that require user input, we will cover it with a dummy test case and fill it later.

+ Please care D9215 :)

CHAN added a comment.Jan 7 2020, 9:46 PM

@devilhorns

Derek said iconified is not work properly in this commit 50a9b49acca943754f603bd45aa4fa5b9f5020b6

Can i move it (ecore_wl2_window_iconified_set) to internal?

CHAN added a comment.Jan 8 2020, 12:06 AM

@devilhorns

Now the ecore_wl2_output_find failed.

output list gets a value when _surface_enter() being called.

According to wl doc
(This is emitted whenever a surface's creation, movement, or resizing results in some part of it being within the scan out region of an output.
Note that a surface may be overlapping with zero or more outputs. )

It should be called if i create a win and move it. but its not called...

any idea about it?

In T8016#149222, @CHAN wrote:

@devilhorns

Derek said iconified is not work properly in this commit 50a9b49acca943754f603bd45aa4fa5b9f5020b6

Can i move it (ecore_wl2_window_iconified_set) to internal?

@CHAN Yes, ecore_wl2_window_iconified_set can be moved to internal.

devilhorns updated the task description. (Show Details)Jan 8 2020, 5:08 AM
devilhorns added a comment.EditedJan 8 2020, 5:34 AM
In T8016#149233, @CHAN wrote:

@devilhorns

Now the ecore_wl2_output_find failed.

output list gets a value when _surface_enter() being called.

According to wl doc
(This is emitted whenever a surface's creation, movement, or resizing results in some part of it being within the scan out region of an output.
Note that a surface may be overlapping with zero or more outputs. )

It should be called if i create a win and move it. but its not called...

any idea about it?

I took a look into this ... and from what I can see going on, the issue is that we never get the _surface_enter event. This could be due to the surface Not Actually being shown on screen ... but I am not 100% sure yet and will keep digging into it

devilhorns updated the task description. (Show Details)Jan 8 2020, 7:35 AM
devilhorns updated the task description. (Show Details)Jan 8 2020, 7:57 AM
devilhorns updated the task description. (Show Details)Jan 8 2020, 8:01 AM
devilhorns updated the task description. (Show Details)Jan 8 2020, 8:05 AM
devilhorns updated the task description. (Show Details)Jan 8 2020, 8:15 AM
CHAN added a comment.Jan 8 2020, 8:55 PM

@devilhorns

Thanks for giving me an answer and adding a new TC.

I have a question about other APIs.

ecore_wl2_dnd and ecore_wl2_offer APIs looks that support Copy & Paste between or within windows using wl protocol.
If then, I wonder if these APIs will be usable when open to the public. Tizen also uses only internal modules.

ecore_wl2_subsurface APIs...
These APIs are hard to determine for what usability.
Could you please tell me more about what these APIs are used for? In Tizen there is no case used.

CHAN added a comment.EditedJan 8 2020, 10:21 PM

@devilhorns

input = ecore_wl2_display_input_find_by_name(disp, "default);

You added above line in TC.
In my env the value is "seat0" instead of "default".
So it failed.

Do we work on different env?

In T8016#149295, @CHAN wrote:

@devilhorns

input = ecore_wl2_display_input_find_by_name(disp, "default);

You added above line in TC.
In my env the value is "seat0" instead of "default".
So it failed.

Do we work on different env?

I can change it to be "seat0", that's no problem

In T8016#149293, @CHAN wrote:

@devilhorns

Thanks for giving me an answer and adding a new TC.

I have a question about other APIs.

ecore_wl2_dnd and ecore_wl2_offer APIs looks that support Copy & Paste between or within windows using wl protocol.
If then, I wonder if these APIs will be usable when open to the public. Tizen also uses only internal modules.

ecore_wl2_subsurface APIs...
These APIs are hard to determine for what usability.
Could you please tell me more about what these APIs are used for? In Tizen there is no case used.

I will have to take a look at where the dnd, offer, and subsurface functions are used in our codebase. It is possible that some of these can be moved to Internal functions.

In T8016#149295, @CHAN wrote:

@devilhorns

input = ecore_wl2_display_input_find_by_name(disp, "default);

You added above line in TC.
In my env the value is "seat0" instead of "default".
So it failed.

Do we work on different env?

I can change it to be "seat0", that's no problem

@CHAN Ok, so the test should be fixed now. Apparently Enlightenment uses 'seat0', but Weston uses 'default'. I have added a trap in the test case to fix this.

In T8016#149293, @CHAN wrote:

@devilhorns

Thanks for giving me an answer and adding a new TC.

I have a question about other APIs.

ecore_wl2_dnd and ecore_wl2_offer APIs looks that support Copy & Paste between or within windows using wl protocol.
If then, I wonder if these APIs will be usable when open to the public. Tizen also uses only internal modules.

ecore_wl2_subsurface APIs...
These APIs are hard to determine for what usability.
Could you please tell me more about what these APIs are used for? In Tizen there is no case used.

I will have to take a look at where the dnd, offer, and subsurface functions are used in our codebase. It is possible that some of these can be moved to Internal functions.

@CHAN Ok, so I searched through the efl & enlightenment codebase for dnd, offer, and subsurface functions. They are Not used inside Enlightenment and are Only used Internally inside EFL, so I can move these ones to be Internal.

devilhorns updated the task description. (Show Details)Jan 9 2020, 7:17 AM
In T8016#149233, @CHAN wrote:

@devilhorns

Now the ecore_wl2_output_find failed.

output list gets a value when _surface_enter() being called.

According to wl doc
(This is emitted whenever a surface's creation, movement, or resizing results in some part of it being within the scan out region of an output.
Note that a surface may be overlapping with zero or more outputs. )

It should be called if i create a win and move it. but its not called...

any idea about it?

I took a look into this ... and from what I can see going on, the issue is that we never get the _surface_enter event. This could be due to the surface Not Actually being shown on screen ... but I am not 100% sure yet and will keep digging into it

@CHAN I tried various methods to get this to work, but because we never actually Show a surface, the surface_enter event never happens. I took a look through the EFL, Enlightenment, and Tizen codebase but the ecore_wl2_window_output_find function is only ever used Internally in EFL, so I removed it from the public API and removed the test case also.

CHAN added a comment.Jan 12 2020, 10:43 PM

@devilhorns Thank you for caring this ticket.

I will try to add a simple TC for the remaining APIs.

Please look around D11007

@CHAN I moved the ecore_wl2_window_aux_hint functions to be internal now as they are not used anywhere outside of EFL itself. I also removed the test case for the one function that was there.

devilhorns updated the task description. (Show Details)Jan 15 2020, 8:04 AM
devilhorns updated the task description. (Show Details)Jan 15 2020, 8:05 AM
CHAN added a comment.Jan 16 2020, 2:04 AM

@devilhorns

I'm working for remain APIs.

and moving API to Internal may cause build error when merged into Tizen, so I will work on it and request a review to you.

Thank you so much.

CHAN added a comment.Jan 16 2020, 4:45 AM

ecore_wl2_display_terminate(display);
ecore_wl2_input_cursor_from_name_set(input, cursor);
ecore_wl2_session_recovery_disable();

  • Internal? what do you think? if you agree with that i will put on a patch for this.

ecore_wl2_input_cursor_from_name_set(input, cursor);
ecore_wl2_input_keyboard_repeat_get(const input, double *rate, double *delay);
ecore_wl2_input_pointer_set(input, surface, hot_x, hot_y);
ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output)
ecore_wl2_output_transform_get(Ecore_Wl2_Output *output);

  • I will create TC some of APIs related with D9215

ecore_wl2_window_move();
ecore_wl2_window_resize();
ecore_wl2_window_resizing_get();

  • I will add dummy TCs for this.
In T8016#149704, @CHAN wrote:

ecore_wl2_display_terminate(display);
ecore_wl2_input_cursor_from_name_set(input, cursor);
ecore_wl2_session_recovery_disable();

  • Internal? what do you think? if you agree with that i will put on a patch for this.

ecore_wl2_session_recovery_disable cannot be made Internal sadly. It is used by Enlightenment. The other 2 functions can be made Internal. I will take care of that

CHAN added a comment.EditedJan 21 2020, 8:46 PM

@devilhorns Oops Sorry, the ecore_wl2_input_cursor_from_name_set(input, cursor); API is using in tizen as public.

dont need to work for it. thanks.

D11147

CHAN updated the task description. (Show Details)Jan 21 2020, 11:34 PM
CHAN updated the task description. (Show Details)
devilhorns updated the task description. (Show Details)Jan 22 2020, 5:36 AM
CHAN added a comment.Jan 28 2020, 12:25 AM

@devilhorns

Please check D11214

I added dummy TCs for some API which has no idea to validation check in code.

Let's close this ticket with the above commit.
We'd better organize them separately for further work.
Thank you for your help.

devilhorns closed this task as Resolved.Apr 30 2020, 6:14 AM