When running eo_test_suite we get an memory error: "double free or corruption".
That error arises because we try to free an Eina_Value value in eo_test_value
that doesn't need to freed.
I switched the eina_value_free to wina_value_flush, the proper way of
releasing it.
@fix
If we are going to test for 10000000 messages we should not print out for each
of them to stdout. The log file for ecore_suite will catch them all. It ended
up being 199MB on my machine just filled with these debug statements.
I left it in in case someone needs it for debugging but we should not have it
on by default.
Previously Eina_Stringshare printf variant where returning NULL with ("%s", ""). This
is highly disturbing as you would have gotten "(null)", if you asked for ("s", NULL).
To clarify and make things logical, we now return "".
Here are only 3 very basic test cases.
One is a dumb set/get to check that image objects can
be passed as clippers.
The other one is a pixel verification test with extremely
basic data (NEAREST scaling and just rectangles). It also
compares text clipping and masking.
The last one performs a very basic verification that masks
of masks work.
Updated the code for the "inheritance helper" functions and classes
to be in conformance with the new wrapper architecture.
Member variable "parents" of efl::eo::eo_class struct was split in two
member variables, "ancestors" and "parents", the former containing all
Eo class ancestors and the later only the direct bases.
Changed all required files accordingly.
Check to avoid using biding string when the parameter is @out now matches
any variation of "char".
Add default constructor to efl::eo::concrete in order to allow it to be
NULL initialized in the "inheritance helper" classes.
Removed conflicting parent_set member function in the efl::eo::inherit
class.
Removed the "inheritance_extension_function" generator since it is no
longer used.
Overloaded address-of operator for C++ Eolian wrappers for implicit converting
to any ancestor pointer type when getting the object memory address.
Added new grammars to aid the creation of the pointer wrappers
responsible of doing the implicit conversions.
Added a unit test which checks the address-of overload for arbitrary classes.
Added new .eo files to be used in it.
Using a new architecture in the generated files that simplify multiple
inheritance and allows the use of interface types as parameters.
No longer using a hand-crafted C++ header for eo_base.eo.
This file was added to the generation process.
Updated all files that are dependent in the hand-crafted eo_base
C++ header.
Now there is a class that contains the essentials functions of the former
eo::base wrapper and that is used to create (through inheritance) the
"concrete" classes for all Eo generated wrappers.
No longer binding any function or property that are protected, private or
legacy for now.
eolian_type_instance is now a struct with general information for the
whole type.
Added the new header file namespace_generator.hh to hold namespace
generation grammars.
Separated declaration and definition of Eo wrappers methods.
Referring for most objects by its full name (starting at the global
namespace ::) in the generated files.
Created additional helper grammars to avoid code replication.
Removed a TODO comment referring to a doubt about inheritance of
constructor methods.
Added a TODO comment regarding memory allocation for callbacks in static
member functions.
In convert.cc: Reading functions instead of implements to convert the
Eolian_Class. It avoids creation of methods that do not belong to the
class, in special it avoids calling the default constructor twice in the
generated code.
No longer generating one constructor in the C++ wrapper for each eolian
class constructor, since the correct behavior demands that all constructor
should be called. Now the wrappers have "constructor methods" that
must be called when creating a new object.
Updated test cases and examples to match the new interface. Some class
constructors and some test cases have to be removed since they were based
on the wrong assumption that constructors are mutually exclusive.
Created new generators for forwarding parameters and for looping over
the relevant parameters to the C++ wrapper executing a generic lambda.
Added a TODO comment regarding the call of constructor methods of all
base classes. Currently there is no base type with constructors, so this
situation should be discussed more.
Added a TODO comment regarding the way callback parameters are being
processed.
Added static assertion in the generated header to ensure that the wrapper
have the same size of Eo*, thus grating compatibility between these types.
Added static assertion in the generated header to ensure that the wrapper
have standard layout. This should ensure correct type sizes when dealing
with inheritance.
Created a test to ensure that eo::base and the eolian wrappers have the
same size of a Eo*.
Added eolian_cxx_test_wrapper.cc to the list of test source files in
Makefile_Eolian_Cxx.am.
Removed the eina_init call from the test suite main function to enforce
that each test case creates an instance of the eina::eina_init object.
Added an eina::eina_init object instanciation for each test case that
were lacking this code.
Created a specialization of the eina::accessor for C++ Eo wrappers.
Created an override of the "accessor" methods in the eina::list specialization
for Eo wrappers (in eina_list.hh). It is necessary to create accessors with the
correct type.
Created specializations of std::is_base_of to avoid compilation errors related
with _Eo_Opaque type.
Added new test cases in "eina_cxx_test_accessor.cc" to test the accessor
specialization.
Added efl::eina::eina_init to the existing test cases to correctly do the
on demand initialization required by the tests.
@fix
Before this fix, when a deletion was invoked twice on an object, a
wrong message ("...You wrongly call eo_unref() within a destructor...")
was printed. This was caused by the del_triggered flag that was not
resetted when the destruction finished.
This patch fixes this behavior by printing the right message on a double
deletion.
this api makes it far more obvious as to how to verify an eet file via
the eet identify mechanisms that use x509 certificates to sign files.
this is consistent with the api used to generate the key for sigining
thus you can use the same certificate file to compare against for
identify.
@feature
Summary:
The selection performance is slow if we select large chunk of text.
This is caused by many rectangles created and deleted.
This patch provides a way to improve it by combine selection rectangles
of line in middle into one rectangles (i.e, if we have N lines,
the selection rectangle for lines 2 to N-1 will be combined into one.)
@feature
Reviewers: raster, cedric, tasn
Subscribers: herdsman, woohyun, cedric
Differential Revision: https://phab.enlightenment.org/D1508
Summary:
If a RTL textblock has right margin, text is wrongly placed
(right margin is moved to left).
This patch fixes this issue.
Test cases are also added to test text position with margins.
@fix
Reviewers: tasn, herdsman
Subscribers: woohyun, cedric
Differential Revision: https://phab.enlightenment.org/D1691
It works but the compiler is right when complaining about it. fail_unless()
expects and integer but we passed in a pointer. Negate the pointer and use
fail_if() like we do in all other places.
Summary:
Added 3 test cases. First to test initialise, shutdown Ecore_File module.
Second to test all file operation functions defined in the module.
Third to test ecore file monitor
Signed-off-by: kabeer khan <kabeer.khan@samsung.com>
Reviewers: devilhorns, stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1662
Summary:
.ply format is important for relation blender and EFl, because in blender exist only two mesh export API: bpy.ops.import_mesh.ply and bpy.ops.import_mesh.stl. One of them is necessary for .edc 3D generator. Which I writing now.
Sorry, it isn't like image loader. Refactoring of import/export will be soon.
Reviewers: Oleksander, artem.popov, Hermet, raster, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1544
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
These inits and shutdown are already done in elocation_init() directly. As we
do not use any of its functionality here we better concentrate on elocation
unit tests in here.
This breaks make check and distcheck when run more than once. I first look
seems to indicate that the hardcoded /tmp/rootDir is not removed during
shutdown and fials to be created the next time as it is already present.
When removing it manually another problem with the subdir popped up. No
time to fix this just before I want to do the release so this gets
reverted. Please fix this up and submit it again for 1.13. Thanks.
This reverts commit cb84017a3f.
This commit alone is fine but it does changes to another commit that needs
reverting as it breaks make check / distcheck and thus this one has to be
reverted as well.
This reverts commit 652e2f688b.
Much confusion with this spaghetti code of #ifdefs and clocks.
So, we can't use CPU clocks for the timedwait, this doesn't make
sense (and it's explicit in the manpage, too).
But we can use CLOCK_MONOTONIC or CLOCK_MONOTONIC_RAW which are
much better than the wall clock (because of ntp updates, etc...)
The test case tests that the cond actually waited for as long as was
requested and for not too long either.
This is hopefully a final fix for T1701.
Summary:
Added 2 test cases. First to test initialise, shutdown Ecore_File module and second to test all file operation functions defined in the module.
Signed-off-by: kabeer khan <kabeer.khan@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1600
Summary:
Added test suite for ecore_input with one test case.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1602
Summary:
_ecore_con_init_count should not go below zero. I've added a test case to test this and also the code to fix this.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1603
Summary:
Added test suite for ecore_fb with test for ecore_fb_init
w
Signed-off-by: vivek <vivek.ellur@samsung.com>
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1594
This adds a fragile test for cedric's fix from commit
3550c38080.
It assumes that all the added 64 functions are in order and that each
eo_op chain is 32 in length. As long as those don't change, this should
be a decent test.
Summary:
If WAYLAND_DISPLAY is not set or if wayland-0 fd doesn't exist in the XDG_RUNTIME_DIR path, then this test case fails. That should not be the case. So made changes in the test case.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1590
Summary:
_ecore_drm_init_count should not go below zero. So added test case to verify that.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1589
Summary:
Added a test case to calling ecore_wl_shutdown before ecore_wl_init. The return value of ecore_wl_shutdown should not go below 0.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1584
Summary:
Adding test-suite to ecore_drm with one test case.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1583