Commit Graph

319 Commits

Author SHA1 Message Date
Tom Hacohen aad13a286f Evas text: Make tests more lax so they'll work on Ubuntu.
It seems that a different version of freetype is causing some different
values to be calculated for some glyphs. Also, we consider the whole
font list when calculating max ascent/descent, so there will always be
differences there.

This commit just laxes the tests, requiring the values to be at least
the values we expect from our font.

Fixes T1079
2014-03-18 15:02:13 +00:00
Gustavo Sverzut Barbieri f2a1f14abd eet: fix tokenizer's escape logic.
Tokenizer's approach of looking back is horrible and breaks the
following simple case (bug I had that lead to this patch):

          "string\\"

As the parser would get the end quote and check the previous character
if it was a backslash and it was, but it was not escaping the quote,
but being escaped by the previous backslash.

The best approach is to first check for escape and then go to
quote. Escape is simple and only the following byte, so we enter
escape, process the byte and then are back to regular mode (be it
quote or unquote).

Added testcase so we avoid breaking it again.

@bugfix cherry-pick
2014-03-13 22:08:44 -03:00
Tom Hacohen d175b8aa69 Evas textblock: Fix clipping issues with some texts with width > advance.
This happens with many texts. The issue occurs when the width of the
last char is larger than it's advance. Before this patch, we didn't the
width into account when calculating width, thus causing clipping issues
in some cases.
2014-03-10 14:58:18 +00:00
Felipe Magno de Almeida 2ab6aac74d eina-cxx: Added malloc_clone_allocator to use with POD's when wrapping Eina C structures
Summary:
Added efl::eina::malloc_clone_allocator to be used with ptr_* data
structures for wrapping structures allocated by EFL in C.

This allows for example:

  void foo(Eina_List* l)
  {
    efl::eina::ptr_list<int, efl::eina::malloc_clone_allocator> list(l);
  }

If the standard efl::eina::heap_no_clone_allocator is used, the
deallocation code uses C++ delete operator, which causes undefined
behavior because the allocation was originally done with malloc.

Reviewers: cedric

CC: savio, cedric

Differential Revision: https://phab.enlightenment.org/D614
2014-03-10 12:35:00 +09:00
Felipe Magno de Almeida 416376e03c eina-cxx: Added eina_log support for C++, using IOStreams syntax
Summary:
Added eina_log support for C++ using the following macros:

For logging into a domain:

EINA_CXX_DOM_LOG
EINA_CXX_DOM_LOG_CRIT
EINA_CXX_DOM_LOG_ERR
EINA_CXX_DOM_LOG_INFO
EINA_CXX_DOM_LOG_DBG
EINA_CXX_DOM_LOG_WARN

And for logging into the default domain:

EINA_CXX_LOG
EINA_CXX_LOG_CRIT
EINA_CXX_LOG_ERR
EINA_CXX_LOG_INFO
EINA_CXX_LOG_DBG
EINA_CXX_LOG_WARN

The usage is simple as can be seen in the tests:

  efl::eina::log_domain domain("error_domain_name");
  domain.set_level(efl::eina::log_level::critical);
  EINA_CXX_DOM_LOG_CRIT(domain, "something went wrong with the following error: " << error);

@feature

Reviewers: cedric

CC: raster, savio, cedric, sanjeev

Differential Revision: https://phab.enlightenment.org/D605
2014-03-10 12:35:00 +09:00
Felipe Magno de Almeida 5942207b25 eina-cxx: Added range types for containers
Summary:
Added inarray, inlist, ptr_array and ptr_list's range types named: range_inarray, range_inlist, range_ptr_array and range_ptr_list.

Each has two "flavours": mutable and not mutable. The const versions are parameterized by a const parameter. For example: range_ptr_list<int const> and the mutable doesn't have the const, so: range_ptr_list<int>.

The difference between the two is that the const versions can't modify the elements from the sequence, while the mutable allows so. Also, the const receives a Eina_Array const* while the mutable must have a Eina_Array*.

Reviewers: cedric

CC: savio, cedric

Differential Revision: https://phab.enlightenment.org/D613
2014-03-10 12:35:00 +09:00
Felipe Magno de Almeida 4105c002b3 ecore-cxx: add support for exceptions.
Summary:
Added support for exceptions on ecore_main_loop_thread_safe_call_async and
ecore_main_loop_thread_safe_call_sync. Also optimized the transport of the
return value through a parameter on ecore_main_loop_thread_safe_call_sync.

ecore-cxx: Changed uses of alignas for aligned_storage in C++11

Reviewers: cedric, raster

CC: savio, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-03-07 14:37:03 +09:00
Felipe Magno de Almeida bc0a54c57c eina-cxx: renamed efl::eina::eina_value to efl::eina::value
Reviewers: cedric

CC: savio, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-03-07 14:32:42 +09:00
Sylvain Laperche 53e0a2d6bd eina: Fix bug in eina_convert_itoa
The current implementation of eina_convert_itoa cannot convert INT_MIN.

When the input number is negative, the function negates it and this is
an undefined behavior for INT_MIN since -INT_MIN cannot be represented
in a signed int.

@fix T1062

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-03-07 14:17:28 +09:00
Cedric BAIL e6faf98868 eina: indent test to up to date standard. 2014-03-07 14:17:28 +09:00
Cedric BAIL 563ea6a01c tests: remove warnings. 2014-03-06 14:27:26 +09:00
Jérémy Zurcher ef09ef7489 eo: replace composite_objects Eina_List with an array of Eo_Object*
as we don't support multiple composites of the same class,
and know at class elaboration how many composites we should have,
we can create the composites array and pack it at the end of the object.
2014-03-05 23:57:39 +01:00
Jean-Philippe ANDRE 01f0b600ac Ecore suite: Don't fail if PulseAudio is not running
In a previous commit I mentionned that make check would fail
if PulseAudio is not running. Well, this is a bit excessive,
especially for buildbots where it doesn't have to be running.
So let's check that PulseAudio is running before failing.

Other errors should still be caught.

A simple "pulseaudio --check" should do the trick.
2014-03-04 22:31:02 +09:00
Jean-Philippe Andre 9750bd51f2 Ecore suite: Fix hangs when PulseAudio is not present
EFL can be built with PulseAudio support even if PA is
not present on the system. In that case, ecore_suite will
hang forever. Let's just catch the error instead.

Note: make check will fail if PA is not available (but not hang)

This is not related to Tom's recent mail (but yeah it reminded me
of this bug^^)

Fixes T732.
2014-03-04 16:01:45 +09:00
Jérémy Zurcher c7922f92bc eo: revert 13502a1 and 7821df1
I'm running out of time, will look at it later
2014-02-27 15:02:45 +01:00
Felipe Magno de Almeida 91f5a9b043 ecore_cxx: add main_loop_thread_safe_call_sync and main_loop_thread_safe_call_async with tests
The point of this binding is to enable the support for easy lambda for ecore function
that wont be using Eo. See the tests on how to use those.

Reviewers: cedric, raster

CC: savio, cedric

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

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-02-26 18:52:08 -03:00
Jérémy Zurcher 13502a159c eo: add tests for eo_composite_detach 2014-02-26 16:25:00 +01:00
Jérémy Zurcher e199230615 eo: eo_composite_attach check composite class, disallow duplicates
eo_composite_attach fail if the class of the composite is not
listed in the parent class extensions, or if there is already a
composite of the same class. The later because calls are
forwarded to the first responding composite, see _eo_op_internal().
2014-02-26 16:25:00 +01:00
Felipe Magno de Almeida f279225a63 eina: add a C++ bindings to Eina @feature.
The goal of this library is to make the life of C++ developers easier
when having to manipulate Eina datatype by providing a layer to abstract
those data type in C++. Check examples for now. Documentation will come
soon, but we are pushing that rather sooner to get feedback on those bindings.

As you will notice, this library is just composed of headers. There is no .so
and we do think it is better this way. Reducing ABI and API stability issue for
applications developers who are the primary target of this binding.

Also please note that you will need to have C++11 to use this binding.

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-02-25 18:05:01 -03:00
Davide Andreoli 0b02540e4e Emotion test: fix calculation of the displayed time. 2014-02-22 16:25:45 +01:00
Davide Andreoli 2a85f160b8 Emotion test: added --loop and --position args.
* New --loop: restart the playback when end reached
* New --position: start the playback from the last know position
* Fixed double -R option. now -r is --reflex and -R is --copyright

Loop and last-position was implemented yet, this commit just made
them optionally, so the default behaviour of the test reflect the
default behaviour of emotion.
2014-02-22 11:45:18 +01:00
Jean-Philippe Andre 2fe5656b63 Evas filters: Improve test coverage of the filters
LCOV reports > 80% of coverage in evas/filters.
2014-02-20 13:27:43 +09:00
Jean-Philippe Andre 18a7939f41 Evas filters: Add render test cases with pixel verification
Force render into an Ecore_Evas, and check that the pixels
are valid:
- Not all transparent (can't really happen)
- Not all black (since there's a black rect behind the text)
- All valid premultiplied values (A >= R,G,B)

Yes, it's a bit slow. But at least it really checks something :)
2014-02-20 13:27:43 +09:00
Jean-Philippe Andre e797f7f4c4 Evas filters: Add more test cases
Set filter on a text object and check the object's geometry.
Get the padding and the geometry so we're sure they match.

Also, pad_get would return 0 if the filter did not compile,
so this checks that these filters are valid.
2014-02-20 13:27:42 +09:00
Jean-Philippe Andre 78c7931575 Evas filters: Add test cases for the script parser
Basic syntax checks and instructions coverage.
2014-02-20 13:27:42 +09:00
Tom Hacohen 00b2974a2c Evas textblock tests: Improved textblock word start/end tests.
Removed a wrong test and added some more tests.
2014-02-19 14:38:06 +00:00
Tom Hacohen e0428e9cb0 Evas textblock tests: Add a wrapping test for complex cluster wrapping.
This test uses some Devanagari text that should have more complex
clusters than what latin text can provide. This is a more complex
wrapping case that should be tested and haven't been tested until now.
2014-02-19 12:08:56 +00:00
Davide Andreoli 064307edee Emotion test: more cleanups
* really free Frame_Data on EVAS_CALLBACK_FREE (data was NULL)
* place video windows with an incremental offset
2014-02-16 20:33:11 +01:00
Davide Andreoli 11e04529f8 Emotion test: no need for an animator to update the time string.
It is yet handled in the frame decode callback, tested with vlc, gstreamer1, video and only audio.
2014-02-16 19:53:17 +01:00
Davide Andreoli 828e6f995d Emotion test: some small cleanups
* simpler and stronger way to search the theme file
* removed unused verbose option
* removed unused start_time var
2014-02-16 19:37:55 +01:00
Davide Andreoli 690a60c3cc Emotion test: no need to search for a folder that no more exists 2014-02-16 19:04:13 +01:00
Davide Andreoli 5e493a0851 Emotion test: add the volume slider also to the Reflex group.
NOTE: do we really need to maintain 2 different groups for the reflex effect?
The 2 groups differ only for the added reflection part.
Isn't enough to show/hide the reflection part when requested?
2014-02-16 18:27:10 +01:00
Davide Andreoli dae8975c99 Emotion test: Removed volume key bind. EINA_UNUSED--
Volume is now managed per-window, no more need for a global volume key.
2014-02-16 18:27:10 +01:00
Davide Andreoli 88c53dd2bc Emotion test: rename speed slider to alpha as it should be.
That slider was probaly used for speed years ago, it is used for alpha now, so call it with the right name.
2014-02-16 18:27:10 +01:00
Davide Andreoli 2ed26fed59 Emotion test: New volume slider. More readable alpha text. 2014-02-16 18:27:10 +01:00
Davide Andreoli 4f41c98906 Emotion test: some small usability improvements.
* use different icons for play/pause/stop
* alpha slider moved to the right
* centered the progress text
2014-02-14 21:49:08 +01:00
Davide Andreoli 482ce33eb0 Emotion test theme: formatting 2014-02-14 20:51:25 +01:00
Davide Andreoli 92fb6926b5 Emotion test theme: tabs-- 2014-02-14 20:35:50 +01:00
Davide Andreoli 38e85d79f5 Emotion test: tabs-- 2014-02-14 20:31:07 +01:00
Tom Hacohen 1dcf143192 Evas textblock: Added a test for rendering of spaces in some cases.
This checks that spaces are one again used, in a specific case
with wrapping.
2014-02-10 14:17:02 +00:00
Tom Hacohen 13664f3af1 Evas textblock: Fixed test shadow warnings. 2014-02-07 13:18:38 +00:00
Tom Hacohen 97f625c021 Evas textblock: Added tests for *_cursor_char_coord_set.
There are issues with values between the beginning of the first par and
the beginning of the first line.
2014-02-07 13:14:21 +00:00
Tom Hacohen a5691571e3 Evas textblock: Added a test for range geometry with bidi text. 2014-01-29 13:27:45 +00:00
Carsten Haitzler b6f4af28b2 ecore audio: tests - remove #if0'd out code 2014-01-26 18:33:36 +09:00
Cedric BAIL f5c125dfc2 eina: fix test suite for rwlock... hopefully. 2014-01-24 12:00:32 +09:00
Jérémy Zurcher 316dc52d2f eina_tls: add eina_tls_cb_new(Eina_TLS *key, Eina_TLS_Delete_Cb delete_cb)
Summary:
   delete_cb is called at thread exit for each Eina_TLS keys used by the thread

Details:
   posix:
      pthread_key_create(key, delete_cb); does it
   win32/wince:
      eina_tls_free/new un/registers key&&cb into a static eina_list.
      eina_tls_set add the key to an eina_list in Eina_Thread_Win3.
      this list is cleared and callbacks are called in _eina_thread_join()

Test Plan: win32/wince has to be tested, I have no setup to do it.

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D489
2014-01-23 14:50:08 +09:00
Cedric BAIL 55a56fe5c0 eina: add eina_{str,bin}buf_manage_read_only_new_length().
It is sometime useful to start from a defined buffer, but to not touch it
until needed. This make life of caller more easier as they don't need to
duplicate the buffer themself as Eina will now take care of that.
2014-01-20 13:04:07 +09:00
Jean-Philippe Andre cc82e2ded5 Textblock: Add test cases for style padding
In the previous commit, style padding has been changed, so
that lines don't get extra space just because there's a special
style (glow, ...)

This adds some test cases that check the actual geometry of the
lines relatively to each other.

NOTE: This test does not fail before the padding commits, as
_relayout_if_needed() adjusts the padding properly.
2014-01-15 17:55:27 +09:00
Shinwoo Kim 37f7bb981c [eina] add test case - eina_list_clone, eina_list_reverse_clone 2014-01-10 22:46:52 -08:00
Cedric BAIL 324f4aebe8 ecore: fix shutdown when using system module.
This patch will detect how many more times ecore_init was called
during initialization and use that as a threshold to do a clean shutdown.
It is a necessary evil as we do have ecore module that will initialize
eldbus that will then reinit ecore_init from within ecore_init and without
a chance for the application to act on it.

I also reenable a test to make sure we will catch earlier this kind of issue.
2013-12-23 11:58:17 +09:00