Summary:
All events must have a type now, otherwise bindings don't know how to handle
the event_info field.
Most of the missing event types were actually "void" (no event_info present).
Some struct definitions had to be moved to eo instead of h files, so they
are available to bindings. Some have not, and are marked with FIXME.
Some namespaces have been fixed (like Efl_Event_Cb -> Efl.Event_Cb).
In general, there are hundreds of changed files, but mostly to add a type which
was not present before, so there's no harm done.
Also, A lot of FIXMEs have been added which should be, like, fixed.
For example, some events can send different types of event_info, which is
very inconvenient (and error prone).
Test Plan: make with c# bindings works, make check and make examples work too.
Reviewers: cedric, q66, lauromoura
Subscribers: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6169
Summary:
Besides the normal methods returning Futures, we now generate
a wrapper with the "Async" suffix. This wrapper returns a
Systems.Threading.Tasks.Task which can be awaited on and reflect the
status of the Future.
When an eina.Future fails with ECANCELED, TaskCanceledException is
raised in the Task. Otherwise, an efl.FutureException(eina.Error) is
raised.
Depends on D6174
Reviewers: felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6175
Summary:
Promise/Future cleanup:
In the promises, we use a wrapper Eina_Promise_Cancel_Cb to
invalidate the wrapper if it ever gets cancelled from outside. When
invalidating from C#, we can do it directly.
For the futures, likewise, in order to be able to invalidate the
wrapper when the chain it belongs to gets resolved we then() an
internal future with a callback to invalidate the wrapper we return to
C#. The return of this intermediate then() is the future we actually
return to the user.
Also added ECANCELED to the list of default eina.Errors
Depends on D6173
Reviewers: felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6174
Summary:
eina.Value.Empty now means that we have an zeroed (empty) eina value.
For optional values that are empty use eina.Value.OptionalEmpty.
This was required to support the empty values passed with
EINA_VALUE_EMPTY in some Ecore futures.
Also, returning an eina_value by value is not supported in eolian
for safety reasons, so we removed some tests that tried to use this
behavior.
Depends on D6171
Reviewers: felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6172
This adds code to run the Eolian static checker as part of tests,
but considering how many failures there are at this point, does
not enable it. Once they're all fixed, it can be enabled by
removing the #if 0.
Summary:
Calling efl_canvas_text_style_set() with empty key means
setting a default style to object. But, it counldn't store style
as default properly. It caused a crash issue from elementary_test.
@fix
Test Plan:
New test case is included. Run test suite. Or,
1. Run elementary_test
2. Find and launch "Image Zoomable animation" test.
3. Close the image test window.
4. See the crash issue.
Reviewers: raster, herdsman, jpeg, cedric, zmike
Subscribers: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D5692
Committer's note: rebased and removed unrelated test.
Summary:
A style tag among a text has to be replcaed by its matched tag when
a format node is created. If the matched tag is changed, format nodes
should be updated.
But, if a style text for Evas Textblock Style is changed,
related format nodes are not updated without setting new text.
The patch changes to update format nodes when new style text is set.
@fix
Test Plan: Included in Evas Test Suite.
Reviewers: raster, tasn, herdsman, subodh6129, zmike
Subscribers: zmike, cedric, z-wony, Blackmole
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D4697
Committer's note: rebased.
Summary:
Due to the absence of typedef from C#, we generate thin structs with
implicit operators to allow reference the data from their typedef'd name
from C#.
The other alternatives would be always converting to the lowest base on
the alias stack (losing the meaningfulness of the typedef name) or using
the 'using' directive. The latter has the restriction that it makes an
alias visible only in the file they are declared.
Reviewers: felipealmeida, cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6157
When there is a redirect there is no need to adjust the focus property
based on a unregister, so just continue and cleanup the history. When
the redirect is unset the focus is restored.
fix T6908
Summary:
hnj_hyphen_hyphenate2() needs properly encoded text based on the given
dictionary. Each dictionary contains its encoding information at the head
of file. So, text will be converted to proper encoding before calling
the function. It fixes T3221.
@fix
Test Plan: Included in Evas test suite.
Reviewers: z-wony, tasn, woohyun, herdsman, Blackmole, minudf
Subscribers: zmike, stefan_schmidt, raster, cedric, jpeg
Tags: #efl
Maniphest Tasks: T3221
Differential Revision: https://phab.enlightenment.org/D3863
Summary: The Textblock Style which is created for user style was managed
application side. It is created and free'd from application - outside
of Evas Textblock. Recently, evas_object_textblock_style_user_push/pop
start to call efl_canvas_text_style_set() instead of legacy code. The
problem is efl_canvas_text_style_set() is always going to call free()
when a style is going to be deleted. It makes conflicts(double free
issue) with application which is used to call
evas_textblock_style_free(). So, the issue will be fixed by this patch.
The patch also revise push/pop/peek code to make clean and avoid
meaningless calculation/events.
@fix
Test Plan:
A test case is Included in this patch.
The test case try to trigger double free.
Reviewers: herdsman, raster, cedric
Subscribers: zmike, woohyun
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D5812
Committer's note: formatted commit summary (80 width).
Summary:
by removing the sleep() calls and reducing timeout time, tests remain
as accurate while taking less than 5% of the required time to run
fix T6914
Reviewers: stefan_schmidt, cedric
Reviewed By: cedric
Subscribers: cedric
Tags: #efl
Maniphest Tasks: T6914
Differential Revision: https://phab.enlightenment.org/D6047
Summary:
Uses a common helper to open and close namespaces, to get the managed
and unmanaged name of things, the interface, concrete and inherit class
names, etc.
eolian_cxx: Add namespace information to func_def, as it'll avoid
eolian-cxx clients dealing with the eolian C api directly when trying
to access a function pointer namespace.
Depends on D6048
Reviewers: felipealmeida, vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6049
Summary:
edje_object_part_text_cursor_prev/next/up/down has return value.
It has to return EINA_TRUE when only it successed.
But, when these funcs moved to legacy, it changed to return EINA_TRUE
whenever it fails or success. It must return EINA_FALSE when it fails.
@fix
Test Plan:
- Run test suite
make check
Reviewers: herdsman, raster, cedric, woohyun
Subscribers: zmike
Differential Revision: https://phab.enlightenment.org/D5972
Summary:
Also added a blacklist header to temporarily disable generation of eo
methods with futures as arguments or return type.
Once the models branch lands, we should enable future support again with
eina_futures.
Reviewers: cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D6018
This is much more extensive than before and we are now
testing both tree and group items.
This test has been run in 9 stable releases down to 1.12
the only one that fail is 1.18 that is know to be broken
wrt item iteration.
Hopefully definitly close T5938
Summary:
this is especially problematic for elm tests as the fork reset callback
in efreet will cause a huge number of server connections to be created
ref T6864
Depends on D5966
Reviewers: stefan_schmidt
Reviewed By: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5967
Summary:
this avoids the creation of a new win object for each test
ref T6864
Reviewers: stefan_schmidt, cedric
Reviewed By: cedric
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5965
Summary:
While the test events were declared as by value, the support code passed
by reference, which was - wrongly - the only implementation supported in
event code.
Also added test with Eina_Bool and structs (passed by pointer to events,
while not having the ptr modifier explicitly.
Depends on D5995
Reviewers: felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5996
Summary:
Don't try to lazily create the parts when getting them, as it would
modify the owner inside its @const Efl.Part.part.
Depends on D5993
Reviewers: felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5994
Summary:
To deal with events with the same name as some methods (Del, Invalidate,
etc), the suffix Evt was added.
Thus, now we use
obj.ButtonClickedEvt += callback;
Instead of
obj.BUTTON_CLICKED += cal
The argument classes use the same scheme, being called <Evt name>_Args.
Depends on D5991
Reviewers: felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5992
The file names are derived from the test case names. These two seem to
have been overlooked when copying one test case to another.
I hoped this would fix my problems I have with the eio test suite
recently, but sadly it does not. Time to go on a git bisect tour.
Summary:
avoid having lines from the main pid repeated in forks
Depends on D5963
Reviewers: stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5964
Doc refs no longer introduce new dependencies into files. Instead,
they're parsed globally, and any doc ref lookup is also made
globally. This allows unit based dependencies to correspond more
to what files actually really need at compile time/runtime, with
docs being irrelevant to that; it also simplifies the API.
The doc resolution API now takes Eolian_State instead of
Eolian_Unit, too.
Summary:
init is only called here to verify the refcount, shutdown is only necessary
when not forking in order to preserve the environment
ref T6864
Reviewers: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5958
This changes a lot of things all across the EFL. Previously,
methods tagged @const had both their external prototype and
internal impl generated with const on object, while property
getters only had const on the external API. This is now changed
and it all has const everywhere.
Ref T6859.
Summary:
opening the default theme file can take up to 0.2s in worst case during
a test
ref T6864
Depends on D5914
Reviewers: stefan_schmidt
Reviewed By: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6864
Differential Revision: https://phab.enlightenment.org/D5915
Summary:
jpeg loader tests take 4+ seconds due to manual value comparisons, so ensure
that they run separately
ref T6856
Reviewers: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6856
Differential Revision: https://phab.enlightenment.org/D5911
Summary:
this was only a temporary measure
Depends on D5916
Reviewers: stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5937
Summary:
check whether init+shutdown work explicitly before proceeding to other
tests
Depends on D5913
Reviewers: stefan_schmidt
Reviewed By: stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5914
Previously, class methods were implemented as regular instance methods.
This commits generates C# static methods for @class methods on the
*Concrete classes (and their childs).
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
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
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
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
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
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
Summary:
these are able to run now that a dbus session is always launched
Depends on D5880
Reviewers: stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5881
Summary:
this is buggy somehow and prints its info a few dozen times, likely
taking longer to print the info than to run the actual test
Depends on D5879
Reviewers: stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5880
Summary:
check does not internally do any parallelizing and is impossible to use
with threads, so using fork appears to be the only viable option for
using more cpu without radically redesigning all existing tests
ref T6825
ref T6848
Reviewers: stefan_schmidt
Subscribers: cedric
Maniphest Tasks: T6848, T6825
Differential Revision: https://phab.enlightenment.org/D5877
Looks like a copy and paste left over from another test.
../../../src/tests/elementary/elm_test_genlist.c:58:16: warning: unused variable ‘type’ [-Wunused-variable]
this works out to the same number of total tests as slstr_many but
now split across all the threads
fix T6846
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
these are supposed to be for testing the finding of values not in the
hash, not basic hash operations
fix T6839
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
there's no point in iterating this many times; the base step size is 32
and so each loop will only increase the buffer...not at all since it takes
3 loops for the buffer to increase by the step size
verify that the buffer increases and then stop instead of spinning uselessly
fix T6835
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
the timing does not matter for these tests, so there's no point in
randomly waiting longer and delaying build completion
fix T6832
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
this test is to try and match values in a tree which have not been
inserted, so remove irrelevant insert/remove operations as well as
insane looping
fix T6830
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
this performs an eina init/shutdown check and loads available modules
before running remaining tests
note that this still does not work and may never have worked because
PACKAGE_BUILD_DIR is broken
ref T6812
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
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>
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>