Commit Graph

272 Commits

Author SHA1 Message Date
Yeongjong Lee 15cc9a65aa ecore_pipe: remove null check condition and fix segfualt on Windows
Summary:
This reverts commit 4917910b49.

4917910b break backward compatibility.

Reproduction:
   void pipe_handler(...);

   pipe = ecore_pipe_add(pipe_handler, NULL);
   ecore_pipe_write(pipe, NULL, 0);

Because of the null check condition, pipe_handler isn't called after 4917910b.
Some apps behavior which is written to expected to call pipe_handler was broken.

also, this patch fixed segfault during build on Windows

Test Plan: make on Windows

Reviewers: raster, zmike, vtorri

Reviewed By: zmike, vtorri

Subscribers: woohyun, cedric, #reviewers, #committers, zmike, vtorri

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6824
2018-08-17 12:42:35 -04:00
Hosang Kim a92274f811 ecore: fix that timers are not called in the order they were registered.
Summary:
Timers are not called in the order they were registered.
Because when current timer is deleted, getting next timer is called twice.

Test Plan:
<error>
Timer1 expired after 0.001 seconds.
Timer3 expired after 0.001 seconds.
Timer5 expired after 0.001 seconds.
Timer7 expired after 0.001 seconds.
Timer2 expired after 0.001 seconds.
Timer6 expired after 0.001 seconds.
Timer4 expired after 0.001 seconds.
Timer8 expired after 0.001 seconds.
<correct>
Timer1 expired after 0.001 seconds.
Timer2 expired after 0.001 seconds.
Timer3 expired after 0.001 seconds.
Timer4 expired after 0.001 seconds.
Timer5 expired after 0.001 seconds.
Timer6 expired after 0.001 seconds.
Timer7 expired after 0.001 seconds.
Timer8 expired after 0.001 seconds.|

{F3268233}

Reviewers: Hermet, Jaehyun_Cho, zmike, SanghyeonLee

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl_tests

Differential Revision: https://phab.enlightenment.org/D6700
2018-08-02 09:14:15 -04:00
Mike Blumenkrantz 774ac32f69 tests/ecore: remove tolerance threshold from ecore_timer_reset test case
unit tests should test one thing only: testing timer accuracy and the
effectiveness of resetting a timer in the same test leads to timing issues,
so remove the timing component from the test

ref T6878

Differential Revision: https://phab.enlightenment.org/D6653
2018-07-30 17:40:57 +02:00
Mike Blumenkrantz 9028fb5ac2 tests/ecore: remove ecore-drm test
Summary:
this caused DSO linker issues when enabled and was only testing
init+shutdown for a deprecated component which has not been actively developed
in some time

Reviewers: devilhorns, ManMower, bu5hm4n

Reviewed By: devilhorns, ManMower

Subscribers: bu5hm4n, ManMower, cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6539
2018-07-10 14:44:44 -04:00
Mike Blumenkrantz 6ee58996e1 tests/ecore: check uid on ecore-file tests
Summary:
these tests will fail if run with root permission, so avoid checking them
when run as root

ref T7094

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7094

Differential Revision: https://phab.enlightenment.org/D6534
2018-07-09 13:31:20 -04:00
Mike Blumenkrantz 3a3fcfb423 tests: ignore ibus module in ecore-imf tests when DISPLAY is not set
Summary:
ibus module will refuse to load if DISPLAY is not set, so avoid failing
for no reason in this case
Depends on D6433

Reviewers: ManMower, bu5hm4n, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6434
2018-06-27 06:18:00 -04:00
Mike Blumenkrantz 21bba131c8 tests: avoid cascading failure in ecore-imf tests when not forking
Summary:
these tests explicitly call ecore_imf_init, so they must call ecore_imf_shutdown
even on failure cases to avoid propagating their failure to subsequent tests

ref T7085

Reviewers: ManMower, bu5hm4n, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7085

Differential Revision: https://phab.enlightenment.org/D6433
2018-06-27 06:17:45 -04:00
Mike Blumenkrantz 407d89f29b tests: make ecore timeout special casing dependent on check version
Summary:
tcase_name() was added in 0.11.0 (2016), which is still not widely enough
distributed to rely upon without version checks

Reviewers: stefan_schmidt, ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6260
2018-06-12 13:57:01 -04:00
Mike Blumenkrantz 7aeab74e41 tests: add timeout to fixture for ecore tests
Summary:
this is mainly to handle the case of ecore-file, which fetches external
resources during the test and requires an active network connection which
may fail to resolve/connect/download during the test. if this particular test
fails then it is almost certainly a network issue

a future patch should implement some form of http server to remove the
dependency on external network resources

also probably all test suites should have timeout timers just in case

fix T6950
Depends on D6205

Reviewers: stefan_schmidt, cedric

Reviewed By: cedric

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6950

Differential Revision: https://phab.enlightenment.org/D6206
2018-06-12 11:03:59 -04:00
Mike Blumenkrantz d5a4fba118 tests: improve ecore timer test code
Summary:
a stack variable was incorrectly used here, along with some lazy timing
calcs which did not accurately measure the time for each timer iteration,
resulting in a test which intermittently failed in some cases

fix T6878

Reviewers: stefan_schmidt, bu5hm4n, ManMower

Reviewed By: ManMower

Subscribers: ManMower, cedric, #committers

Tags: #efl

Maniphest Tasks: T6878

Differential Revision: https://phab.enlightenment.org/D6256
2018-06-12 10:52:12 -04:00
Cedric BAIL ccb5642eb9 Revert "efl_add_ref - fis to use efl_add properly with a parent."
This reverts commit 2fb5cc3ad0.

Most of this change where wrong as they didn't affect the destruction
of the object. efl_add_ref allow for manual handling of the lifecycle
of the object and make sure it is still alive during destructor. efl_add
will not allow you to access an object after invalidate also efl.parent.get
will always return NULL once the object is invalidated.

Differential Revision: https://phab.enlightenment.org/D6062
2018-05-24 16:02:17 -07:00
Mike Blumenkrantz 5bbe49ab99 tests: split ecore thread queue tests into 2 test cases
Summary:
enable running these tests in parallel

ref T6851
Depends on D5905

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6851

Differential Revision: https://phab.enlightenment.org/D5906
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 99f3f89f24 tests: split efl_app promise tests into separate test cases
Summary:
each test case can run in parallel, so this provides a ~300% speedup

ref T6850
Depends on D5904

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6850

Differential Revision: https://phab.enlightenment.org/D5905
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 43c420d3d0 tests: ensure eina/efl_object are initialized for all efl_app tests
Summary:
these aren't tested so don't init/shutdown for every test

ref T6850
Depends on D5903

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6850

Differential Revision: https://phab.enlightenment.org/D5904
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 5e806ee41f tests: move ecore promise tests into efl_app_suite
Summary:
ref T6815
Depends on D5902

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6815

Differential Revision: https://phab.enlightenment.org/D5903
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 1bd52cc116 tests: split ecore poller tests into separate file
Summary:
ref T6850
Depends on D5900

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6850

Differential Revision: https://phab.enlightenment.org/D5901
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 88a6a3c769 tests: split ecore idler tests into separate file
Summary:
ref T6850
Depends on D5899

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6850

Differential Revision: https://phab.enlightenment.org/D5900
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 3b22dbc5af tests: move efl_loop_fd tests into efl_app_suite
Summary:
ref T6815
Depends on D5898

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6815

Differential Revision: https://phab.enlightenment.org/D5899
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz f83dfb2173 tests: break out simple timer failure test into separate test
Summary: Depends on D5897

Reviewers: stefan_schmidt

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5898
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 3547297f80 tests: add fixtures for efl_app tests
Summary:
ref T6811
Depends on D5896

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6811

Differential Revision: https://phab.enlightenment.org/D5897
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz fab4c313f4 tests: move disabled efl loop timer test into efl_app_suite
Summary:
ref T6815
Depends on D5895

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6815

Differential Revision: https://phab.enlightenment.org/D5896
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz e02598cd4e tests: split efl_loop tests out of efl_app_suite.c
Summary: Depends on D5894

Reviewers: stefan_schmidt

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5895
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz ab8237d36d tests: reduce duration of ecore_test_timers
Summary:
fix T6852
Depends on D5893

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6852

Differential Revision: https://phab.enlightenment.org/D5894
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 96da1551c5 tests: move ecore_test_ecore_main_loop_timer into timers test file
Summary: Depends on D5892

Reviewers: stefan_schmidt

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5893
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 3858186376 tests: reduce duration of ecore_test_animators
Summary:
fix T6852
Depends on D5891

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6852

Differential Revision: https://phab.enlightenment.org/D5892
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 94d0aae906 tests: reduce duration of ecore_test_ecore_main_loop_timer test
Summary:
fix T6852
Depends on D5890

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6852

Differential Revision: https://phab.enlightenment.org/D5891
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz f810e0a3ba tests: improve ecore thread queue reliability
Summary:
* check inside thread callbacks whether thread has been canceled
* clean up (global) objects
* wait for threads to die before exiting each test

ref T6851
Depends on D5889

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6851

Differential Revision: https://phab.enlightenment.org/D5890
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 0ea6624e10 tests: remove "info" messages from ecore-drm/input tests
Summary: Depends on D5888

Reviewers: stefan_schmidt

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5889
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz e5fc5f0263 tests: quiet useless printf spam from thread queue tests
Summary: Depends on D5886

Reviewers: stefan_schmidt

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5887
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 59520a57cb tests: remove extra download in ecore_test_ecore_file_download
Summary:
this function is just a wrapper, avoid downloading the same file
multiple times

ref T6853
Depends on D5885

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6853

Differential Revision: https://phab.enlightenment.org/D5886
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz a04e7be83a tests: use different website for ecore_test_ecore_file_download
Summary:
while it may be the case that we do not control example.com, it is also
the case that loading anything from enlightenment.org takes 10+ seconds
longer (at minimum) than loading example.com

ref T6853
Depends on D5884

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6853

Differential Revision: https://phab.enlightenment.org/D5885
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz ed4c53b628 tests: use 0.05s as poller interval in ecore_test_ecore_main_loop_poller
Summary:
fix T6852
Depends on D5883

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6852

Differential Revision: https://phab.enlightenment.org/D5884
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz a995a0c0fe tests: split ecore_test_ecore_main_loop_poller_add_del into separate tests
Summary:
unit tests should verify only small pieces of functionality to ensure
that they are testing what they claim to be testing

fix T6852
Depends on D5882

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6852

Differential Revision: https://phab.enlightenment.org/D5883
2018-04-10 11:28:01 +02:00
Mike Blumenkrantz 853e2c43ca tests: remove random usleeps from ecore thread queue tests
Summary:
fix T6851
Depends on D5881

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6851

Differential Revision: https://phab.enlightenment.org/D5882
2018-04-10 11:28:01 +02:00
Stefan Schmidt ea60b359a7 tests: ecore: remove no longer needed jenkins check function
After changes to the ecore_timer tests this function is no longer used
or needed. It can safely go.
2018-04-06 11:19:40 +02:00
Cedric Bail 0ba3ffda8d ecore: and rename the test for Eina_Future to be the only promise test. 2018-04-05 13:18:24 -07:00
Cedric Bail 8563e3780e ecore: remove tests of old Efl_Future based on Eo. 2018-04-05 13:17:32 -07:00
Mike Blumenkrantz ddd00273a4 tests: disable xim in ecore_imf test when DISPLAY is not set
tests should be able to run in console without failing

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:27 +02:00
Mike Blumenkrantz 624925fe6e tests: move to using checked fixtures for all test suites
individual tests should not need to explicitly call init/shutdown functions
in most cases, and many did not properly do this anyway

see followup commit which resolves some issues with eina tests

ref T6813
ref T6811

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:26 +02:00
Mike Blumenkrantz adc601aca2 tests: add instrumentation to existing tests to find slow tests
efl_check.h must be included and the EFL_START/END_TEST macros must be
used in place of normal START/END_TEST macros

timing is enabled when TIMING_ENABLED is set
https://phab.enlightenment.org/w/improve_tests/

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:25 +02:00
Carsten Haitzler 2fb5cc3ad0 efl_add_ref - fis to use efl_add properly with a parent.
fixes bc18b7e7ad and
168849e8a0
2018-03-29 13:30:55 +09:00
Cedric BAIL 4c4177ac20 efl: use efl_add_ref to create objects which have no parent
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:56 -07:00
Carsten Haitzler eb0b826776 ecore thread queue tests - reduce size and craziness and fix 1
1 test was wrong. it didn't wait for the thread to exit before checking
msg count recieved. fixed. race condition here.

also reduce the sheer message counts sent - it makes the suite take a
lot longer than is sane and als consume massive amounts of log space
in /tmp as a result.
2018-03-03 13:40:33 +09:00
Carsten Haitzler d8bd4e15d4 ecore file test - change url to a file we control.
rthe ecore file download test was downloading from sf.net ... and i
noticed sf.net refusing thus the ecore tests suite failing... i
changes it to grab a file (rss.php which is disabled for us but there)
so at least enlightenment.org has it.

better would be to spawn a webserver and test against that locally.
but thats a whole other level of work.
2018-03-03 13:40:33 +09:00
Carsten Haitzler 6f31f36aa8 put efl app test back with mods to match app as superclass 2018-03-03 13:40:33 +09:00
Carsten Haitzler 1bdd9e4dd1 ecore - a different take on efl.app class as a super class to efl.loop
so the MAIN loop is actually an efl.app object. which inherits from
efl.loop. the idea is that other loops in threads will not be efl.app
objects. thread on the creator side return an efl.thread object.
inside the thread, like the mainloop, there is now an efl.appthread
object that is for all non-main-loop threads.

every thread (main loop or child) when it spawns a thread is the
parent. there are i/o pipes from parnet to child and back. so parents
are generally expected to, if they want to talk to child thread, so
use the efl.io interfaces on efl.thread, and the main loop's elf.app
class allows you to talk to stdio back to the parent process like the
efl.appthread does the same using the efl.io interfaces to talk to its
parent app or appthread. it's symmetrical

no tests here - sure. i have been holding off on tests until things
settle. that's why i haven't done them yet. those will come back in a
subsequent commit

for really quick examples on using this see:

https://phab.enlightenment.org/F2983118
https://phab.enlightenment.org/F2983142

they are just my test code for this.

Please see this design document:

https://phab.enlightenment.org/w/efl-loops-threads/
2018-03-03 13:40:33 +09:00
Carsten Haitzler 1c74aaa7e9 Revert "cxx: Fix manual code after efl_app change."
This reverts commit 135154303b.

Revert "efl: move signal events from efl.loop to efl.app"
This reverts commit 3dbca39f98.

Revert "efl: add test suite for efl_app"
This reverts commit 3e94be5d73.

Revert "efl: create Efl.App class, the parent of Efl.Loop"
This reverts commit 28fe00b94e.

Go back to before efl.app because I think this should be done with
superclassing here not a parent object. reasons?

1. multiple loops per single thread make no sense. so if multilpe loop
objects they wont be contained in a single app object and then deleted
like this.
2. the app object is not really sharable in this design so it cant be
accessed from other threads
3. it makes it harder to get the main loop or app object (well 2 func
calls one calling the other and more typing. it is longer to type and
more work where it is not necessary, and again it can't work from
other threads unless we go duplicating efl.app per thread and then
what is the point of splittyign out the signal events from efl.loop
then?)

etc.
2018-03-03 13:40:33 +09:00
Mike Blumenkrantz 3e94be5d73 efl: add test suite for efl_app
this moves existing tests out of the ecore suite and into a new one,
adds some checks to verify loop object parenting, and verifies compile
for Efl_Core.h and Efl_Net.h using EFL_NOLEGACY_API_SUPPORT
2018-02-26 14:02:51 -05:00
Mike Blumenkrantz 28fe00b94e efl: create Efl.App class, the parent of Efl.Loop 2018-02-26 14:02:51 -05:00
Mike Blumenkrantz 30e52e9413 ecore_audio: remove "name" property 2018-02-15 13:11:00 -05:00