Commit Graph

1628 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri 3d5abc081f EflMacros: major improvements towards usability.
Stick to one target per directory and remove prefix from variables,
makes it cleaner and easier to use.

Document variables used and use a more consistent name that matches
CMake properties.
2017-01-23 18:23:40 +01:00
Gustavo Sverzut Barbieri dee24c3821 CMake: rework to use some helper macros.
This tries to defines some macros to create a cleaner build system.
2017-01-23 18:23:40 +01:00
Marcel Hollerbach 88283204c1 build: switch eina to half baked cmake 2017-01-23 18:23:40 +01:00
Daniel Kolesa c1c30cc6ce eolian tests: pass in generator path externally 2017-01-23 16:14:00 +01:00
Daniel Kolesa d8f7ade9c8 eolian: fix decl.eo in tests 2017-01-23 15:32:15 +01:00
Andy Williams e4fef24898 elm_code: Syntax highlighting for multiline comments 2017-01-22 21:58:20 +00:00
Andy Williams 5851a9d4a8 elm_code: Add initial simple syntax highlighting for C code
For c source and headers lookup a simple syntax definition.
Use a very simple text processing line by line to tokenise.
Simple but it gets us one step closer to cross-language syntax
2017-01-20 22:11:01 +00:00
Daniel Kolesa 95181f2d36 eolian: move base function doc API into implements
This allows us to unify retrieval of docs for both regular and
overridden funcs without having two separate APIs. It's currently
missing validation and docgen is still not adjusted properly for
it either, but at least there's this. Enables retrieval of docs
for overridden funcs by default as well.
2017-01-19 15:09:07 +01:00
Felipe Magno de Almeida a1f2db255b cxx: Modify how to generate C++ headers and allow cyclic dependencies
Allow cyclic dependencies in generated C++ headers by changing order
of includes and creating forward declarations.
2017-01-18 22:47:04 -02:00
Felipe Magno de Almeida 7f148feea8 eolian-cxx: Added cyclic compilation test 2017-01-18 22:46:26 -02:00
Daniel Kolesa 5f8172a589 eolian: add syntax for overridding docs in implements 2017-01-18 15:33:44 +01:00
Jean-Philippe Andre ffbc0645e5 eina: Remove EAPI eina_freeq_main_set()
I believe this function is not required and should not be
used by applications. If there is a very good use case to
use your own main freeq, then the API could be added again.

For now, removing the set() is probably the safer option.

Note: the API was introduced in the upcoming 1.19
2017-01-17 14:21:17 +09:00
Jean-Philippe Andre 4550b4cf83 eina: Introduce Eina_Slstr for short-lived strings
Built on top of the new 'postponed' free queue, the short-lived
strings API allows users to return new strings without caring
about freeing them. EFL main loop will do this automatically for
them you at a later point in time (at the end of an iteration).

The APIs provided will either duplicate (copy) or more generally
steal an existing string (char *, stringshare, tmpstr, strbuf),
taking ownership of it and controling its lifetime. Those strings
can then be safely returned by an API. From a user point of view,
those strings must be considered like simple const char *, ie.
no need to free() them and their validity is limited to the
local scope.

There is no function to remove such a string from the freeq.

The short lived strings API is not thread-safe: do not send a
short-lived object from one thread to another.

@feature
2017-01-17 14:20:55 +09:00
Jean-Philippe Andre 4f5e64fdea eina_freeq: Add mode for postponed deletion
While this reuses the existing (but new) infrastructure of
eina_freeq, the mode of operation and objective is very different
from the default freeq.

By default, any object added to the freeq is basically already
freed from the user point of view, and the freeq itself only adds
a tiny layer of memory safety by deferring the actual call to free
and optionally filling the memory blob with a pattern ('wwwww...').
This is mostly thread-safe (requires thread-safe free functions).

This new type I called postponed is intended to store objects that
will be short lived. This is not thread safe as the life of the
objects added to this queue depends on the thread that adds to
the queue. The main intent is to introduce a new API for short-lived
strings.

@feature
2017-01-17 14:05:16 +09:00
Daniel Kolesa 35c5e89269 eolian: remove/add APIs and clean up implements system
As there is no need to have separate is_auto, is_empty and
is_pure_virtual for functions and implements (each function has
its own base implement by default) I removed the function ones.
Instead, I added a way to retrieve a function's base implement
so that you can instead do the checks on the implement even when
you only have the function.

I also moved base implement build directly into the parser instead
of the database filler. That allows for significant cleanup. I
also removed distinction of implement pointers in Eolian_Function
for get and set as implements now always contain an entire thing
so the pointer was always the same anyway.

Things should still behave more or less the same, but ordering
of generated functions has changed because ordering of implements
has changed.
2017-01-16 15:55:06 +01:00
Daniel Kolesa cb3f8304e0 eolian: change eo file syntax @virtual_pure -> @pure_virtual 2017-01-13 15:44:09 +01:00
Daniel Kolesa 692ae7adb6 eolian: use consistent pure_virtual naming in API
Previously one API used just virtual (incorrect) and one used
virtual_pure (which just sounds weird). So unify with a single
name, pure_virtual, similar as in other lanugages.

This does not change eo file syntax yet.
2017-01-13 15:40:29 +01:00
Daniel Kolesa 078a4eef71 eolian: strict function type input checks in APIs
Strictness of various Eolian APIs has been enhanced, for example
eolian_class_function_get_by_name now won't return anything if
you request an EOLIAN_PROPERTY and the found func is just an
EOLIAN_PROP_GET, and various APIs won't accept arbitrary inputs
like EOLIAN_UNRESOLVED or EOLIAN_PROPERTY now, instead you will
need to provide EOLIAN_PROP_GET, EOLIAN_PROP_SET or EOLIAN_METHOD
explicitly.

The purpose of this is to reduce potential bugs and fix ambiguous
behavior. Thanks to use of EINA_SAFETY, appropriate errors should
be printed into terminal when an API is used incorrectly.
2017-01-12 16:56:49 +01:00
Daniel Kolesa baaa482ebf eolian: fine-grained is_auto/is_empty for implements 2017-01-11 19:26:21 +01:00
Daniel Kolesa 289287f497 eolian: remove function_is_implemented
Its design does not match current Eolian and will be replaced later.
There isn't any generator using it right now, so it's safe to remove.
2017-01-11 19:26:21 +01:00
Andy Williams 6d4f1501bf elm_code: Selections of word break on quotes too 2017-01-10 12:53:21 +00:00
Cedric BAIL 95e1cefb40 eina: add test for all float/double util function. 2017-01-06 15:58:46 -08:00
Cedric BAIL 8f1c071d6a eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
Marcel Hollerbach 4d6d177ff7 eina_buf: replace eina_strbuf_free_return with eina_xXxbuf_release
The api name free_return wasnt a good choice so it is changed to
release. This also moves the implementation to binbuf template so it is
available in all buf types.
2017-01-06 12:45:27 +01:00
YeongJong Lee 13730d7a75 elm_code: Add 2 spaces auto indent after keywords
Summary:
When insert newline, check the previous line has keyword.
If so, insert 2 spaces indent more.

Test Plan:
1. run elementry_test - Code Editor or Edi.
2. Type some code with keywords.
3. Type <Return>.
4. Check that the indentation of newline is correct.

Reviewers: ajwillia.ms

Reviewed By: ajwillia.ms

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4543
2017-01-06 10:16:41 +00:00
Marcel Hollerbach 2f1d0fb189 eina_strbuf: add eina_strbuf_free_return
Summary:
For a function which just composes a string with strbuf its quite
usefull to return the string while its freed.

This makes a function like:

{
   Eina_Strbuf *buf;
   char *path;

   buf = eina_strbuf_new();
   eina_strbuf_append(buf, "test");
   eina_strbuf_append_printf(buf, "%s-%d.edj", "test", 0);
   path = eina_strbuf_string_steal(buf);
   eina_strbuf_free(buf);
   return path;
}

To:

{
   Eina_Strbuf *buf;

   buf = eina_strbuf_new();
   eina_strbuf_append(buf, "test");
   eina_strbuf_append_printf(buf, "%s-%d.edj", "test", 0);
   return eina_strbuf_free_return(buf);
}

Which is a bit more handy.

Test Plan: just run make check

Reviewers: raster, cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4545
2017-01-05 14:08:23 +01:00
Andy Williams 9bdaf07d6e elm_code: remove unneeded init code.
Move elm_code init to the main elementary as that's where it lives
2017-01-01 20:10:07 +00:00
YeongJong Lee 65dc673ae8 elm_code: refactor auto indent about brace matching
Summary: return value of brace matching function no longer need free().

Test Plan:
1. run elementry_test - Code Editor or Edi.
2. Type some code with braces.
3. Check that closing brace has correct indent.

Reviewers: ajwillia.ms

Reviewed By: ajwillia.ms

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4540
2017-01-01 14:45:30 +00:00
Andy Williams 5cf5e4bb3c elm_code: Fix filename/path for non-file based instances
And add tests appropriately
2016-12-27 21:12:49 +00:00
Daniel Kolesa 3797a269b6 eolian: allow new property impl syntax with auto/empty 2016-12-27 19:33:12 +01:00
Cedric BAIL 18f41e12bc eina: try slight improvement of eina tests suite.
Still need to go through individual test to improve them.
2016-12-21 16:40:22 -08:00
Cedric BAIL a5a587510e efl: add helper to run tests suite under valgrind. 2016-12-21 16:40:22 -08:00
Cedric BAIL b734d18cca efl: improve help displayed by each tests suite. 2016-12-21 16:40:22 -08:00
Cedric BAIL a8807b5c28 eldbus: always run the main loop.
Now that future result are always delayed, we always need to run
the main loop to collect them.
2016-12-21 11:36:42 -08:00
Daniel Kolesa 12fad8444b eolian: fix doc tests to match generation output 2016-12-21 19:01:32 +01:00
Marcel Hollerbach 4e9656feac eina: add api for assessing the relative position of two rectangles
Summary:
the api returns if a rectangle is positioned above/below/right or left
of a other rectangle.

Code which does simular things are part of verne and e, i think its a good idea to provide api for that.

Test Plan: Just run the test suite

Reviewers: raster, jpeg, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D4489

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-12-20 16:39:30 -08:00
Gustavo Sverzut Barbieri 09825cbe5d eina_binbuf: allow expand & usage of extra bytes.
Some code needs to read directly into eina_binbuf to avoid an extra
copy from eina_binbuf_append* variants.

This can be achieved by using eina_binbuf_expand(), which returns a
write-able slice of the spare bytes. Once they are used,
eina_binbuf_use() should be called to increment "buf->len", which is
used by all other binbuf functions such as eina_binbuf_length_get() or
eina_binbuf_append_slice().
2016-12-20 10:18:32 -02:00
Cedric BAIL c12d60c1e6 eina fixup matrix test 2016-12-19 16:33:46 -08:00
Cedric BAIL ae9257401e eina: get rid of float comparison warning on quaternion tests. 2016-12-19 16:33:46 -08:00
Cedric BAIL 27bf609b9d eina: get rid of float comparison warning on quad tests. 2016-12-19 16:33:46 -08:00
Cedric BAIL e24ad29142 eina: get rid of float comparison warning from str test. 2016-12-19 16:33:46 -08:00
Cedric BAIL d03482a0a7 eina: use proper logic for comparing double in matrix tests. 2016-12-19 16:33:46 -08:00
Cedric BAIL 4489e7520e eina: correctly compar double in eina xattr test. 2016-12-19 16:33:46 -08:00
Cedric BAIL a7e0f26e1b eio: correctly compar double in xattr test. 2016-12-19 16:33:46 -08:00
Gustavo Sverzut Barbieri e2c0b7741b tests/ecore_con: skip ipv6 tests if that's disabled on the running system. 2016-12-19 15:49:16 -02:00
Gustavo Sverzut Barbieri dd5cdda64b more eo simplified to use Eina_Slice instead of pointer to.
Working directly with Eina_Slice is easier than a pointer to it,
requires no validation of the pointers and is cheap since it's just
putting together size_t + void*.

However we can't hint the user of 'const(Eina.Slice)' properties as
Eolian is incorrectly generating getters as:

   const Eina_Slice class_property_get(...)

which is makes compilers complain about ignored qualifiers:

   ../src/lib/ecore/efl_io_copier.eo.h:329:7: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]

Leave some TODO so @q66 can fix those.
2016-12-19 15:30:56 -02:00
Cedric BAIL 2b7a68eb1b ecore: add test for efl_promise_connect. 2016-12-16 14:10:58 -08:00
Cedric BAIL b7635be57d ecore: add tests for new promise delayed behavior. 2016-12-16 14:10:58 -08:00
Cedric BAIL c1811de61f ecore: fix test to generate one main loop iteration to see promise fulfilled. 2016-12-16 14:10:58 -08:00
Jean-Philippe Andre 03eb4c6409 evas: Fix issues with masking (make check)
After a previous patch, mask_subrender worked differently, and
didn't reset the object's cache clip color. This made evas_suite
fail. But also it seems some other issues creeped in and it was
necessary to fix the test case by adding data_updates (mistake!)
and removing an invalid draw call.
2016-12-16 17:10:01 +09:00
Cedric BAIL 3b354d6757 eet: add test for eet_alias_get. 2016-12-15 15:18:54 -08:00
Cedric BAIL 20d77fda98 eet: add test for eet_memopen_read. 2016-12-15 15:18:41 -08:00
Cedric BAIL 0ff7bf3611 eina: add a test for eina_stringshare_refplace. 2016-12-15 15:00:58 -08:00
Cedric BAIL 563dcd1ed9 eina: add test for skyline algorithm. 2016-12-15 14:40:06 -08:00
Cedric BAIL b221fbc639 eio: fix attr tests to process an array of string. 2016-12-15 14:30:33 -08:00
Cedric BAIL b3cc37dd77 eina: pass the right size of the string to avoid unbounded access warning. 2016-12-15 11:39:16 -08:00
Cedric BAIL cf62558402 evas: fix comparison between unsigned and signed warning. 2016-12-15 10:01:35 -08:00
Cedric BAIL f553c92091 ecore_con: fix incompatible type warning. 2016-12-15 09:59:41 -08:00
Cedric BAIL 59bf58829c ecore_con: fix misleading indentation warning. 2016-12-15 09:55:11 -08:00
Daniel Kolesa e444d43bbb eolian: handle pointer types in typechecking expr eval
Also improve expr error messages and fix Eolian tests.
2016-12-14 18:23:16 +01:00
Daniel Kolesa ca50a4de4c ecore con tests: fix missing include 2016-12-14 18:23:16 +01:00
Gustavo Sverzut Barbieri c4ab9882e1 test efl_net_ip_address: also check localhost6.
Fedora and other systems use localhost6 for ::1, then use that in
addition to localhost.
2016-12-12 12:27:45 -02:00
Andy Williams 780da3c878 elm_code: Fix tests for parameter reordering
Apologies for the badness of not running the tests before
2016-12-12 14:01:20 +00:00
Gustavo Sverzut Barbieri 8415626397 test efl_net_ip_address: check if /etc/hosts has '::1 localhost'
it seems that the bot and some users do not have ::1 localhost in
/etc/hosts, check for that and print it out.

be more verbose on resolve errors, showing the results and error code.

also allow more time for resolution, otherwise the local timeout may
expire before getaddrinfo() returns with failures.
2016-12-12 11:22:16 -02:00
Gustavo Sverzut Barbieri 633ec445b8 efl_net: add Efl.Net.Ip_Address
This is a string parser, serializer and asynchronous resolver.

It's purpose is to convert to and from the strings we use in our
dialers and servers, such as "127.0.0.1:1234" or "[::1]:1234",
properties allow to check the family, port, address bytes (slice) and
even get a struct sockaddr pointer to use with bind()/connect() in
outside code.

It will also offer some utilities present in netinet/in.h in an easy
to use way, after all IN6_IS_ADDR_LOOPBACK() works one way, while
there is no IN_LOOPBACK and comparing with INADDR_LOOPBACK will lead
to errors since it's in network order.

Last but not least, it will do asynchronous resolve of host and port
names using an internal thread and getaddrinfo(). The results are
delivered using a Future with an array of objects.
2016-12-12 02:30:33 -02:00
Andy Williams 91e84aa3b8 elm_code: use geometry of cells to paint a simple cursor
Also allows others to figure out where cells are :)
2016-12-09 15:55:34 +00:00
Stefan Schmidt d46829f0f9 tests: ecore: detect if the timeout test runs on Jenkins and increase allowed offset
From time to time we run into trouble with this test. It goes over the, already
increased, limit on Jenkins. Most likely due to high load on the server. Neither
Cedric nor me have been able to pin this down on local runs and we already had
increased it from the initial 0.01 to 0.02 but just today we hit 0.38.

What we do now is to detect if we run on our jenkins and increase the allowed value
while having the intial lower value back for normal local runs.
2016-12-09 11:09:47 +01:00
Marcel Hollerbach 712ec60012 eina: add free cb to eina_iterator_filter_new
if you allocate memory for the data param data you can free it in this callback.
2016-12-09 10:16:08 +01:00
Tom Hacohen 5424cdbd81 Eo: Fix efl_isa() sometimes returning wrong results with extensions
This fixes an issue where efl_isa() wouldn't work for extensions or
ancestors of extensions of a class.

Example:
Class A implements interface F2
F2 inherits from interface F1
obj is of class A

Before this patch efl_isa(obj, F1) would return false, now it returns
true as expected.

This is just one example, there is a whole array of variations to this
issue that are now fixed.

Thanks to Gustavo for reminding me of this.

@fix
2016-12-07 13:55:13 +00:00
Tom Hacohen 900b1726e6 Eo tests: Adjust according to latest commit. 2016-12-07 13:31:54 +00:00
Daniel Kolesa 2ffc93ddf9 eolian: add a reference resolver
New API function eolian_doc_token_ref_get will resolve the kind of
reference in the given token and extract the necessary data you
might need for further use, for example class and function for
methods, or struct and field for struct field. It also supports
event references that will be added into Eolian later.

EFL will be switched to the new resolver (by changing the validator
code) during the next step.
2016-12-06 19:11:17 +01:00
Jean-Philippe Andre 6076014f58 eo: Fix test case
The exact error message has changed.
Another test case is still broken.
2016-12-05 18:40:46 +09:00
Andy Williams 92eacde6e7 elm_code: refactoring of the elm_code_line_indent to work with lines 2016-12-03 15:59:52 +00:00
Andy Williams 717a0159d2 elm_code: ooops, fix test from previous refactor 2016-12-03 14:36:17 +00:00
Andy Williams ad5bce5cbd elm_code: Add indentation for matching braces
Summary: when type closing brace, it find matching braces and then indent.

Test Plan:
1. run elementry_test - Code Editor or Edi.
2. Type some code with braces.
3. Check that closing braces have correct indent.

Reviewers: ajwillia.ms

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4444
2016-12-03 00:56:25 +00:00
Marcel Hollerbach bf4b18ec92 eo: add new test case to check event emission while emitting 2016-12-02 12:27:37 +01:00
Marcel Hollerbach 0f72c8a031 eo: use the event stack to define behaviour
subscriptions are only executed if they were already subscriped at the
start of the event emission.
2016-12-02 12:27:37 +01:00
Marcel Hollerbach d81025a66c eo: add testcase to check emission of events 2016-12-02 12:27:37 +01:00
Daniel Kolesa 66b48f8f5d eolian: remove handling of short refs in tokenizer
Already expanded in the main lexer.
2016-12-01 17:22:19 +01:00
Daniel Kolesa d2105f99d4 eolian: add documentation tokenizer
This provides an API to tokenize Eolian docstrings. It does not
yet switch the rest of the infra to it, but it does have tests.
It doesn't verify correctness of references, as that's Eolian's
job. Therefore it's also your job to provide it with strings that
do not contain invalid references. Lua bindings are to come and
a complete switch will be done later.

@feature
2016-12-01 16:37:28 +01:00
Bruno Dilly adb95630ef eina: remove tests, examples and docs for eina_model
Summary:
Since eina_model was dropped some years ago.
Also a few other points where related stuff is just commented out.

Reviewers: iscaro, barbieri

Reviewed By: barbieri

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4442
2016-11-30 18:37:34 -02:00
Andy Williams 2935b0b4a3 elm_code: Add really simple indentation for braces handling
That's about as far as we can push it without proper scope handling
2016-11-30 00:27:58 +00:00
Andy Williams 428136e0f1 elm_code: Add some missing indent tests 2016-11-28 01:19:21 +00:00
Andy Williams 60cd219792 tests: Update for elm_code indent changes 2016-11-28 01:01:35 +00:00
Marcel Hollerbach c34e4b6312 eina_iterator: add new api to have a filtered iterator
Summary:
the new iterator represents the order from the elements of the original
iterator, elements where the filter callback return false will be
skipped.

The container of this iterator is the original iterator.

Test Plan: Just run `make check` there is a testcase

Reviewers: cedric, jpeg, raster, herdsman

Differential Revision: https://phab.enlightenment.org/D4417
2016-11-21 12:13:02 +01:00
Felipe Magno de Almeida 45e1ccf312 eolian-cxx: Remove EOLIAN_TYPE_POINTER enumeration 2016-11-10 15:20:36 -02:00
Daniel Kolesa 8002b3b24e eolian: remove parsing of pointers and the corresponding APIs
Everything should be done via the new ptr() system now.
2016-11-10 16:20:19 +01:00
Shinwoo Kim e648f1e85e [elementary][atspi] change accessible description to char* from const char*
Summary:
The accessible name is char*, this could confuse API user.
If we provide user callback to get description, an user would return allocated string.
The usage of elm_interface_atspi_description_get/set should be same with elm_interface_atspi_name_get/set

Reviewers: lukasz.stanislawski, cedric, raster

Reviewed By: raster

Subscribers: stanluk, jpeg

Differential Revision: https://phab.enlightenment.org/D4378
2016-11-10 11:11:48 +09:00
Jean-Philippe Andre f909a6d6ea evas: Fix masks of masks and clippers of clippers in general
The root cause was simple: smart object clipped was not
calling efl_super() on clip_set.

Fixes T4813 (and probably a whole lot of other bugs)
2016-11-09 10:52:03 +09:00
Cedric BAIL 6d7c6445f8 ecore: simplify suite name as I try to spot an intermitent failure.
While running ecore_suite, I, some times, see a failure in the thread queue test,
sadly I can't reproduce it while just executing :
CK_RUN_CASE=Eina_Thread_Queue  ./tests/ecore/ecore_suite
2016-11-07 14:05:55 -08:00
Cedric BAIL 50402592bf eio: fix conversion mistake from Eina_Promise to Efl_Future. 2016-11-07 13:43:11 -08:00
Cedric BAIL 8a3e745e1a eolian: remove test for generated Eina_Promise. 2016-11-07 13:43:11 -08:00
Cedric BAIL d45e3abdba eolian_cxx: do not test Eina_Promise anymore. 2016-11-07 12:03:55 -08:00
Cedric BAIL e842c79ff3 eina: remove Eina_Promise tests. 2016-11-07 11:23:59 -08:00
Cedric BAIL 1f7d96e167 ecore: remove Eina_Promise tests. 2016-11-07 11:18:37 -08:00
Cedric BAIL af3788439b ecore: remove tests for ecore_thread_promise_run. 2016-11-07 10:47:31 -08:00
Carsten Haitzler 0ee33e7b4b eina - add a free queue (eina_freeq) for deferring frees of data
this adds eina_freeq api's for c land for deferring freeing of
pointers and can be used a s a simple copy & paste drop-in for free()
just to "do this later". the pointer will eveentually be freed as
eina_shutdown will free the main free queue and this will in turn free
everything in it. as long as the main lo0op keeps pumping things will
og on the queue and then be freed from it. free queues have limits so
if they get full they will clear out old pointers and free them so it
won't grow without bound. the default max is 1mb of data or 16384
items whichever limit is hit first and at that point the oldest item
will be freed to make room for the newest. the mainloop whenever it
finishes idle enterers will add an idler to spin and free while idle.
the sizes can be tuned and aruged about as to what defaults should be.

this also allows for better memory debugging too by being able to fill
freed memory with patterns if its small enough etc. etc.

@feature
2016-11-06 13:13:10 +09:00
Stefan Schmidt a69506db44 tests: ecore_promise: removed unused variable
Looks like a copy and paste bug form the other tests.
2016-11-04 12:28:11 +01:00
Cedric BAIL a7ff7ceebb ecore: cleanup test 2016-11-03 18:03:16 -07:00
Cedric BAIL a614303fb6 ecore: add check to make sure that the order of future_get and value_set can be switched. 2016-11-03 18:03:16 -07:00
Vitor Sousa 10e4e65250 ecore: add test for efl_future_then after value_set 2016-11-03 18:03:16 -07:00
Felipe Magno de Almeida 137dd4864d eina-cxx: eolian-cxx: Fix correct usage of is_eolian_object traits 2016-11-03 17:59:20 -02:00
Carsten Haitzler 4ed2e01591 remove xcb support in ecore_x and evas engines as per mailing list
as per mailing list discussion about dropping xcb support now. it
hasn't been complete for a long time, thus not recommented for being
turned on. as we are moving to a wayland world xcbmakes even less
sense. as agreed, time to clean up a bit and remove a distraction as
well as not well tested code. this also updates po's too.

@feature
2016-11-03 22:22:54 +09:00
Daniel Kolesa f399e77a92 eolian: rename is_ref API to is_ptr to match syntax 2016-11-03 14:22:21 +01:00
Daniel Kolesa c4f64a3390 eolian: rename ref to ptr to avoid confusion with eo refs 2016-11-02 13:06:38 +01:00
Jean Guyomarc'h c850435213 tests: fix eolian_cxx tests with clang
eolian_cxx tests failed to link because of massively inexistant symbols.

I assume eolian_cxx tests have been working at some point. Maybe they
were gcc-only? I don't get what's going on with gcc and non-existant
symbols. Is there a sugar-coating of some kind? Because when a symbol
does not exist, clang throws you away. Is it because we are only
referring to the eo implementation functions via function pointers?
That's the second time I'm doing a fix like this. Maybe we should change
a bit our linking flags (see --unresolved-symbols in ld)??

Anyway, now we have our symbols. Clang is happy, make check can go on...
2016-10-30 19:21:59 +01:00
Tom Hacohen f736946d10 Eo: Add a method to mark objects for reuse.
This informas eo an object is going to get reused/cached, so eo can
reset the object appropriately.

@feature.
2016-10-28 13:19:10 +01:00
Felipe Magno de Almeida 4cd2bd8a66 js: Fix Makefile location and linking of efl.node and tests 2016-10-25 15:43:19 -02:00
Lauro Moura 508edf78c6 efl_js: Update after eo/efl api changes 2016-10-25 12:23:34 -02:00
Lauro Moura 21cc5715ba eolian_js efl_js: Fix tests.
* Probably the idle refactor changed the order the callbacks are called.
* Removed trailing * from class types
2016-10-25 12:23:34 -02:00
Tom Hacohen 047d88caa0 Eo: Add test for refcount in efl_add_ref
This commits adds a regression test to the previous commit.
2016-10-21 15:29:39 +01:00
Tom Hacohen 25242e6af9 Eo: Fix references of objects 2016-10-21 15:29:39 +01:00
Tom Hacohen 6c8489c3b7 Eo test: Fix cleanup of objects. 2016-10-21 15:29:39 +01:00
Daniel Kolesa db7b6dd7e0 eolian gen: use EWAPI for events instead of EOAPI
Apparently only methods/properties can be EOAPI.
2016-10-20 16:48:41 +02:00
Daniel Kolesa 5db3f14f85 eolian gen: use EWAPI for all generated variables 2016-10-20 16:44:20 +02:00
Daniel Kolesa 930af741b9 eolian gen: automatically uppercase names for vars/constants 2016-10-20 16:01:11 +02:00
Daniel Kolesa 02aed9a043 eolian gen: update tests to cover var generation 2016-10-20 15:22:14 +02:00
Cedric BAIL b5f2b695b7 ecore: test recursive case on efl_future. 2016-10-19 13:40:49 -07:00
Tom Hacohen d952b35098 Eo: Add a regression test for ref leak in function resolve
This adds a regression test for the last commit.
2016-10-19 16:32:16 +01:00
Tom Hacohen f4eb94a7d8 Eo: Remove no longer relevant tests. 2016-10-19 16:32:16 +01:00
Daniel Kolesa b6113a6bd9 eolian: add API to get the C class datatype 2016-10-13 15:04:20 +02:00
Daniel Kolesa e5d016bb63 eolian: add an API to get the C name used to access the class 2016-10-12 14:56:22 +02:00
Daniel Kolesa 9553fd9640 eolian gen2: move to eolian gen (as the old one is gone) 2016-10-07 13:34:47 +02:00
Daniel Kolesa 82291e9cf5 eolian gen2: fix tests to match the new generator 2016-10-07 13:13:27 +02:00
Jean-Philippe Andre 9c95eda748 eo: Fix deadlocks with composite objects
This happens with shared objects.

The situation seems to be:
1. object has composited object a of class A in thread 1
2. call something on object a from thread 2, deadlock
In fact, do anything from thread 2 on a shared object and you deadlock.
2016-10-06 17:57:45 +09:00
Jean-Philippe Andre 6ce60a0de5 eo: Fix deadlock in efl_parent_set
If the object is shared and the given parent is invalid (eg. deleted)
then we will deadlock later. This also adds a test case with it.
2016-10-06 16:19:12 +09:00
Jean-Philippe Andre 7db67aaea8 eo: Test deadlock after finalize (shared objects)
This is a test case for 258cfbbe80
Unfortunately there are many other functions that we should
be testing, not just efl_finalized_get().
2016-10-06 16:12:01 +09:00
Jean Guyomarc'h a1373a860d tests: oops, remove invalid trailing slash 2016-10-01 21:26:16 +02:00
Jean Guyomarc'h eb7a11b515 tests: add missing symbols
make check failed on OSX (clang) because of missing symbols.
2016-10-01 21:19:24 +02:00
Jean Guyomarc'h 06a3629bec tests: check for the presence of clock_gettime()
macOS Sierra provides clock_gettime().
Instead of testing for the Mach kernel to re-implement clock_gettime(),
let first check that clock_gettime() is not already declared. Older OSX
versions will have the Mach-only fallback.

@fix
2016-10-01 21:19:15 +02:00
Jean Guyomarc'h 00b0501424 tests: mimic POSIX API in clock_gettime()
Let the clock_gettime() re-implementation have the same signature than
its POSIX definition.
2016-10-01 21:17:05 +02:00
Felipe Magno de Almeida 1a2014a122 efl: Update Efl.Model to use new Efl_Promise and Efl_Future
Replaced all Eina_Promise_Owner and Eina_Promise with Efl_Promise and
Efl_Future.
2016-09-29 13:12:27 -03:00
Jee-Yong Um ed7febb2c5 edje_cc: allow combine lazEDC keywords
Summary:
Fix parsing error which occurs when lazEDC keyword is combined
with other keyword by period. (like parts.rect)

@fix

Test Plan: Download attached file and run "make"

Reviewers: Hermet, cedric, jpeg

Subscribers: taxi2se

Differential Revision: https://phab.enlightenment.org/D4309
2016-09-23 11:56:19 +09:00
Jean-Philippe Andre 63088b583c elm_image: Add smart cbs for async open
This adds a few callbacks to inform applications about
async open and preload:
- load,open
- load,ready
- load,error
- load,cancel

This patch adds a new EAPI as well: elm_image_async_open_set.
This is the only way to use async file open with the legacy APIs
and should be easily matched with whatever EO API we end up using
(be it based on promises or events).

Alter the test cases for make check as they were using the
unstable EO API which I just removed.

Thanks @arosis for the original patch. And sorry for the huge
delay in merging this.

See also: https://phab.enlightenment.org/D4215

@feature
2016-09-23 11:28:14 +09:00
Yeshwanth Reddivari 7b90e11474 emotion: convert Emotion_Object into Efl.Canvas.Video
Reviewers: singh.amitesh, raster, jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D3994

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-09-21 11:04:34 -07:00
Stefan Schmidt a24734d80a tests: elm_win: fix compiler warning about signed vs. unsigned comparison
The variable i only goes from 0 to 4 here but it gets compared against a normal
int so we make sure i also is a normal int.
2016-09-21 10:56:36 +02:00
Felipe Magno de Almeida 10293e6520 eo-cxx: Add progress to future and promise 2016-09-20 23:30:29 -03:00
Stefan Schmidt a6d3c0d0fd tests: ecore: switch from fprintf to ck_asser_msg macro for custom error message
The ck_assert_msg macro can do this for us already in a failed case.
2016-09-20 12:46:37 +02:00
Cedric BAIL 71ec6a95b8 ecore: fix warning in timer test. 2016-09-19 16:27:14 -07:00
Stefan Schmidt c25d4e8325 tests: ecore: relax the timing precision for the promise timeout test
This test has been failing on Jenkins again and again. After adding the debug
a while ago it now shows that the value is between 0.01 and 0.02 in all cases
I have seen. Relaxing the timeout here a bit to make it pass in situation where
our CI is under load.
2016-09-19 14:01:19 +02:00
Cedric Bail d6935e983a eio: use proper const for progress. 2016-09-15 21:49:08 -07:00
Cedric Bail b741580329 ecore: migrate job and timeout tests to use efl_future. 2016-09-15 21:49:08 -07:00
Cedric Bail de0a54f0b9 ecore: make sure that progress type have the proper const. 2016-09-15 21:49:08 -07:00
Vitor Sousa 93d7b480fd elm fileselector: fix test to wait for the right event
Fileselector test was waiting for the wrong event. It caused the test to
fail in some situations, since it could check the object when it is
not ready.

Fix T4502

@fix
2016-09-14 21:04:00 -03:00
Felipe Magno de Almeida 5df0b6765b eo-cxx: Replace for ENOMEM to avoid warnings 2016-09-14 00:55:51 -03:00
Felipe Magno de Almeida 5e735fe762 eo-cxx: Fix race promises 2016-09-14 00:33:22 -03:00
Felipe Magno de Almeida 3339f03964 eo-cxx: Add promise type 2016-09-14 00:33:22 -03:00
Felipe Magno de Almeida 2bdad3f1d6 eo-cxx: race for promises 2016-09-14 00:33:22 -03:00
Stefan Schmidt d01fa64edf tests: eio: use eina file infrastructure for temporary file creation
The tmp dir is not always /tmp.
2016-09-13 11:28:52 +02:00
Vivek Ellur fb73aabc61 eio_eet: Added test suite for eio eet module.
Summary:
Added new test suite for eio eet module

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: stefan_schmidt, jpeg, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D3316
2016-09-13 11:28:52 +02:00
Felipe Magno de Almeida a63cfcafc7 eolian-cxx: Implement future template class for C++ 2016-09-11 23:44:05 -03:00
Daniel Kolesa dd9155cf24 eolian: properly add < in struct/enum field docs
Fixes T4443.
2016-09-09 13:04:04 +02:00
Tom Hacohen 7ebf9d879d Eo: Change the way functions are registered to classes
This change lets us remove a field from the structure that leads to
around 20KiB more of saving in private dirty pages in elementary.

This also looks a bit better and feels a bit cleaner.

Breaks API and ABI.
2016-09-09 11:14:35 +01:00
Tom Hacohen 5ad71f1486 Eo: don't allow object override to introduce previously undefined functions. 2016-09-09 11:14:05 +01:00
Carsten Haitzler fe81fff89b eo test suite - finish off the tests so we're testing all the features
testing all the core features of eo domains now. yes it could be a lot
more extensive but it tests the important day to day cases. this is
the case across most of our tests too - they dont really stress things
out a lot.
2016-09-09 18:53:20 +09:00
Cedric BAIL bd362b13d6 efl: add documentation and last cleanup of the API. 2016-09-08 15:16:43 -07:00
Cedric BAIL 8e8c50e7a1 eio: fix manager tests. 2016-09-08 15:16:42 -07:00
Cedric Bail d8310b7180 ecore: test efl_future_link. 2016-09-08 14:58:06 -07:00
Cedric Bail 5edb42d371 ecore: add test for efl_future_race. 2016-09-08 14:58:06 -07:00
Cedric Bail 61957ace36 ecore: add tests for efl_future_all. 2016-09-08 14:58:05 -07:00
Cedric Bail 674acaf63d ecore: add tests for Efl.Promise. 2016-09-08 14:58:05 -07:00
Cedric BAIL 36bc9aa187 eolian: add a builtin to handle a free callback. 2016-09-08 14:58:05 -07:00
Cedric BAIL ed9dff8fbd eolian: add support for future.
Future is the read only side of a Promise. For now, I am not removing
Eina_Promise until everything is in place, but eventually the promise
type of eolian will be gone.
2016-09-08 14:58:05 -07:00
Tom Hacohen bd3801247e Eo: Make function overrides implicit.
Before this commit, function overrides were explicit. That is, you'd
have to explicitly state you were overriding a function instead of
creating a new one. This made the code a tad more complex, and was also
a bit more annoying to use. This commit removes this extra piece of
information.

This means we now store much less information per function, that will
let us further optimise out structures in the future.
2016-09-08 13:59:04 +01:00
Carsten Haitzler 150cc62a0d eo domain tests - make a start on them with some basic ones
this adds tests for some of the basic domain tests. doing the
inter-thread ones is going to be much more.... fun.
2016-09-08 18:39:38 +09:00
Amitesh Singh a2e3b8ad13 eeze: add support of GPIO sysfs detection and watch.
This adds support for detection and watch of GPIO pins in /sys/class/gpio/*
This detects both gpiochip<N> & gpio<N>.

@feature
2016-09-06 20:42:26 +05:30
Jean-Philippe Andre 8ee431572d evas: Switch EO APIs to Eina_Slice for gfx buffers (map)
This adds a plane and eina slice argument to the map/unmap
functions, instead of void_ptr + length.
2016-09-06 16:54:53 +09:00
Tom Hacohen 9c779dca90 Rename efl_self to efl_added
It has been discussed on the ML (thread: "[RFC] rename efl_self") and
IRC, and has been decided we should rename it to this in order to avoid
confusion with the already established meaning of self which is very
similar to what we were using it for, but didn't have complete overlap.

Kudos to Marcel Hollerbach for initiating the discussion and
fighting for it until he convinced a significant mass. :)

This commit breaks API, and depending on compiler potentially ABI.

@feature
2016-09-05 16:59:56 +01:00
Tom Hacohen a8ccb191c6 Adjust the EFL to the Eo class_initilizer changes. 2016-09-05 16:03:17 +01:00
Tom Hacohen c8c0bbcfcf Efl object: rename EFL_OBJECT_OVERRIDE_OPS_DEFINE.
It is now called EFL_OPS_DEFINE as it's used for general purpose ops
definition.
2016-09-05 16:03:16 +01:00
Tom Hacohen 48f7eb02a8 Eolian: Fix tests according to recent generator changes. 2016-09-05 16:03:16 +01:00
Tom Hacohen e0a95a96c9 Efl object: Simplify test that was unneededly prone to breaking 2016-09-05 16:00:07 +01:00
Stefan Schmidt f52ffec5dd tests: ecore: add some debug for ecore timer test case
This tests fails on Jenkins from time to time. The timeout is to big. Adding
some debug here top see how far we are off when this happens.
2016-09-05 11:21:54 +02:00
Stefan Schmidt 6bc1dc6d83 cxx: follow EINA_ERROR_OUT_OF_MEMORY deprecation
Follow the rest of efl and use ENOMEM from now on. This avoids ugly deprecation
warnings.
2016-09-05 10:39:24 +02:00
Cedric BAIL 3ab60a1564 eo: store registered callbacks in an array instead of a single chained list. 2016-09-02 10:19:45 -07:00
Jean-Philippe Andre b3993b684e win: Add EO API to query state of multi touch points
This combines evas canvas functions to list and query
touch points into a single iterator:
 - evas_touch_point_list_count
 - evas_touch_point_list_nth_xy_get
 - evas_touch_point_list_nth_id_get
 - evas_touch_point_list_nth_state_get

This also fixes a number of issues related to feeding fake
input events.

Note: I wanted to add delta x,y information as well but it's
in fact not really possible outside the event callback itself,
as the previous x,y position will not be updated unless there's
an event.

@feature
2016-09-01 14:57:11 +09:00
Daniel Hirt 2d44738fae Canvas text: fix ellipsis RTL handling
First, fixing ellipsis text positions: ellipsis items should be assigned the
text positions of the omitted text (while maintaining the formatting of the
last visual item). In the case where an entire item was rejected, it
will be assigned that item's text position. If an item was split, it will be
assigned the text position of the split portion.
The BiDi reorder code relies on properly-assigned text positions.

Second, fixing ellipsis handling: the width calc was only considering the
ellipsis item's width. However, if the ellipsis is placed as e.g. the first
visual item (such as in RTL cases), its advance value should've be considered,
instead.

Thanks Youngbok Shin for the test case and information.

@fix
2016-08-31 16:23:32 +03:00
Vitor Sousa f02ff462e7 efl callbacks: update some events calls to no longer trigger legacy callbacks 2016-08-30 13:59:59 -03:00
Tom Hacohen d5e321466e Efl object: Rename Eo_Event -> Efl_Event.
This is the last step of the Eo renaming efforts.
2016-08-30 13:34:10 +01:00
Jean Guyomarc'h 5b8315aeff ecore-tests: make sure we always get a canonical path
There may be extraneous slashes that are contained in the returned
generated directories (because they were put there in environment
variables). Since we test with string comparison, some tests would fail
due to different environment setups.
2016-08-29 20:03:52 +02:00
Jean Guyomarc'h 3791ed5fe0 elm-tests: don't include Ecore_X.h when not available
This fixes a build issue on Mac OS X.
2016-08-29 20:03:52 +02:00
Vitor Sousa 8356b16a49 Efl Object: remove legacy callback calls from event_callback_call
Efl.Object.event_callback_call no longer calls legacy smart callbacks;
calling only event callbacks registered with the given event description
pointer.

Create the method Efl.Object.event_callback_legacy_call to inherit the old
behavior from Efl.Object.event_callback_call, calling both Efl.Object events
and legacy smart callbacks.

Update all other files accordingly in order to still supply legacy
callbacks while they are necessary.
2016-08-26 15:45:07 -03:00
Jean-Philippe Andre d504284dd2 efl: Rename Efl.Event.XX to Efl.Input.XX
This removes:
 Efl.Event interface

And renames:
 Efl.Event.Input -> Efl.Input.Event
 Efl.Event -> Efl.Input.Event (merged)
 Efl.Event.Pointer -> Efl.Input.Pointer
 Efl.Event.Key -> Efl.Input.Key
 Efl.Event.Hold -> Efl.Input.Hold

This also moves some interfaces from efl/ to evas/ where they
belong better.

This allows renaming Eo_Event to Efl_Event.
2016-08-26 10:18:01 +09:00
Gustavo Sverzut Barbieri 45c0002929 eina_slice: startswith and endswith.
these helpers around memcmp() make the code more readable.
2016-08-23 21:25:02 -03:00
Gustavo Sverzut Barbieri 9944c164bd eina_slice: fix multi-byte find function, add tests. 2016-08-23 20:17:13 -03:00
Tom Hacohen 199737add5 Eolian: Fix tests according to recent eolian changes. 2016-08-23 14:47:28 +01:00
Tom Hacohen a6f126af12 Efl object: Don't pass events to eo class creation.
This was never used and there is no plan to ever use it. I'm going to
soon add a different mechanism with which it will be possible to provide
them again to Eo if ever needed without breaking ABI. Though it's
unlikely it will ever be.
2016-08-23 14:47:28 +01:00
Gustavo Sverzut Barbieri 0d96ba9734 binbuf, strbuf and ustrbuf: add slice_get() and rw_slice_get(). 2016-08-22 18:25:14 -03:00
Gustavo Sverzut Barbieri 77faebde67 eina_stringshare: add slice_get() 2016-08-22 18:25:14 -03:00
Gustavo Sverzut Barbieri 9062bbd8e0 eina: introduce Eina_Slice and Eina_Rw_Slice.
A plain simple pointer + length describing a linear memory region.
2016-08-22 18:25:14 -03:00
Cedric BAIL 552db73ac4 eina_cxx: change strings to match new returned system string. 2016-08-19 10:17:15 -07:00
Gustavo Sverzut Barbieri e56811ed4d eina_error: allow errno.h codes.
we have some duplication of errors between Eina_Error and errno.h,
however we should use Eina_Error to extend the traditional errno.h
system.

then change eina_error_msg_register() and
eina_error_msg_static_register() to return a magic bit to state the
number was registered, and on other functions test this bit in order
to operate on registered values, otherwise fallback to errno.h, such
as strerror().

It also deprecates 2 clear duplicated errors:

- EINA_ERROR_OUT_OF_MEMORY -> ENOMEM

- EINA_ERROR_TIMEOUT -> ETIMEDOUT

There are two details when using strerror():

 - old behavior did not return strings for non-error, such as
   "Success" or "Unknown error ${N}"

 - thread-safety issues: since we must be thread safe, then use
   strerror_r() and eina_stringshare_add() that value, keeping a hash
   of cached values
2016-08-18 13:36:05 -03:00
Jean-Philippe Andre cb24d5f489 eina: Set EINA_ERROR_TIMEOUT to cond_timedwait
This adds a new error code.

I'm using a weak symbol (were supported, ie GCC on linux) for
some kind of forward compatibility.

Fixes T1780

@feature
2016-08-16 16:14:21 +09:00
Thiep Ha fb15910640 elm video: correct api
The elm_videfl_add should be elm_video_add.
It was changed by commit e65aae994e.
This commit brings it back.
2016-08-16 12:36:26 +09:00
Felipe Magno de Almeida f8a6568d5c eolian-cxx: Fix compilation break with Eo rename to EFL 2016-08-15 15:14:53 -03:00
Tom Hacohen e65aae994e Eo: Finish the renaming of Eo to the EFL.
This renames all the rest of the API to the EFL namespace except for
Eo_Event that will follow soon.

Obviously breaks both API and ABI.
2016-08-15 15:07:42 +01:00
Daniel Kolesa aa5068d1e2 eolian tests: fix reference file after beta in legacy change 2016-08-15 12:50:52 +01:00
Felipe Magno de Almeida f4a90dcde2 eolian-cxx: Fix compilation break from changes in Eo nomenclature
Rename of classes and function calls in generated code and C++ headers
2016-08-11 16:24:15 -03:00
Tom Hacohen c662934be8 Change the EFL to follow the new Eo rename. 2016-08-11 17:04:43 +01:00
Stefan Schmidt 27c1155cd4 tests: elm: follow up fix for _animation_disabled_ rename
This is a follow up fix for 4f840c5feb
Due to the abbreviated use in this macro I missed this occurrence.

With this fix it passes make check as well.
2016-08-09 23:03:19 +02:00