Commit Graph

21 Commits

Author SHA1 Message Date
Daniel Zaoui 92457031ee Add first support for Windows and fix many other config stuff
Thanks to vtorri for this patch
2018-05-20 21:29:45 +03:00
Daniel Zaoui 637285018f Player: overlay the default theme to disable the text cursor
The text cursor creates noise during the shots, as it is an animation.

In order to solve the issue, the theme is overlayed to hide the cursor.
Most of the entry edc file must be overlayed (and not only the cursor
group) because of the internal way edje_cc compiles the theme (kind of
static link).
2018-05-14 11:09:37 +03:00
Daniel Zaoui 7c47c57383 Isolate legacy code
Only the legacy file read function needs to be public. The H file is not
needed anymore.
2018-05-14 11:09:37 +03:00
Daniel Zaoui 72d998943f Remove unused file (common.c) 2018-05-14 11:09:37 +03:00
Daniel Zaoui 9c3fe1b118 Introduce a remote actions injection mechanism
By executing an application under the player (option
--external-injection), actions can be remotely forwarded.
The communication is done via Eina Debug channel. Therefore, efl_debugd
must be run before the application.
An injection tool has been implemented to show how to communicate with
the application.
2018-05-14 11:09:37 +03:00
Daniel Zaoui dc891a41e1 Refactor structures and make them public
The exu doesn't contain the old scenario entries (Variant_st) but the new
The recorder doesn't create old rec file but only exu.
The player/inspector support rec files by converting them to the new
format internally.
The structures have been tried to be simpler.
2018-05-14 11:09:37 +03:00
Daniel Zaoui bea26c676e Inspect: introduce a scenario visualizer and compare tool
This replaces the existing exactness_helper. A GUI has been added:
- Compare images
- Compare scenarios
2018-05-06 22:53:30 +03:00
Daniel Zaoui e4ac42a7b1 Refactor exactness binary
As all the file have been merged, code cleaning is necessary. In
addition, some structures have been removed.
2018-05-06 22:53:30 +03:00
Daniel Zaoui 83e34fec36 Merge all the source files of exactness binary
It will be easier to refactor everything after that
2018-04-21 22:20:23 +03:00
Daniel Zaoui 76a433273e Introduce a new recorder not using LD_PRELOAD 2018-04-21 22:20:23 +03:00
Daniel Zaoui 7a4e7f2e55 Introduce a new player not using LD_PRELOAD
To make Exactness portable, LD_PRELOAD needs to be replaced by other
2018-04-21 22:20:23 +03:00
Daniel Zaoui dd4c1caade Store and compare objects information at every shot
This feature is aimed to provide a new way to debug applications during
scenarios playing.
When a difference happens between two shots of an application, the
investigation can be tough as the cause may be hidden into a tiny
change, such as an update of the theme.
This feature tries to respond to this problem by storing objects of
the application every time a shot is taken. Then during shots comparison,
objects information are compared and differences are displayed on the

The feature can be used with the -S option.

For the moment, only hierarchy, order and geometry are checked.
2016-10-26 07:57:24 +03:00
Daniel Zaoui 0eb607e7df Separate code related to recording and to playing hooks.
Hooks mixed in a same file leads to less readability.
2016-10-09 10:28:14 +03:00
Daniel Zaoui a21c2f39cc Add an new executable to help on recordings maintenance
An issue that currently happens in Exactness is that we don't have any
way to debug the recordings.
Only debug information can help us to figure out what data is stored
inside the rec files.

Three commands are available:
- Clean: remove bad timestamp events and duplicate events
- Add a delay: because of the first event is directly treated if no
first timestamp is present, we need a way to fix recordings by adding
them a delay before the first event.
- List information: display the list of events, as vieet doesn't work at
all. Really helpful to figure out bugs.
2016-03-27 11:53:44 +03:00
kabeer khan bb051fce2b Prevent deletion of shots having same prefix as test name
Summary: Signed-off-by: kabeer khan <>

Reviewers: tasn

Differential Revision:
2015-06-09 13:52:53 +01:00
kabeer khan e02ad005f1 Using sha1 to compare two images in play step instead of md5
Using using emile to calculate image sha1 instead of md5 to compare
two images, hence making exactness independant of md5.

Signed-off-by: kabeer khan <>

Reviewers: cedric, tasn

Differential Revision:
2015-05-27 11:41:28 +01:00
Tom Hacohen c2547c0199 Made the exactness script a C program (with improvements).
It's now considerably faster thanks to concurrency.
It's cleaner (almost the same loc).
Better error output.
Easier to use.
2013-05-08 11:47:59 +01:00
Tom Hacohen f51a7e4835 Exactness: Removed useless bin dir. Merging that into elm_test.
SVN revision: 67934
2012-02-14 13:52:58 +00:00
Aharon Hillel e0f368a947 exactness: removed redundent tests
Signed-off-by: Aharon Hillel <>

SVN revision: 66391
2011-12-20 13:41:36 +00:00
Aharon Hillel 0d2d5f4510 exactness: Removed redundent (NA) tests
Signed-off-by: Aharon Hillel <>

SVN revision: 66388
2011-12-20 13:41:25 +00:00
Aharon Hillel e820a4033d Exactness: initial commit.
(Commit message by TAsn):
Exactness is a pixel perfect test suite for elm/evas/edje.
Exactness lets you write tests, and then record a specific interaction
with them, while taking windowshots in the process. The tests can later
be played back (windowshots will be automatically taken) and the
pictures will be compared for differences (usage of fail_if is also
There is a premade set of tests and recordings for all (most?) of the
elementary widgets in various scenarios.
Because of the nature of this test suite, it doesn't handle well any
tests with continued running animations/viedos (timing can never be 100%
      right). But you can use it to test widgets with transition
animations. Bottom line: just give it a go.

Read the README for more inforamtion.

I hope it'll be deployed on our servers soon, as we really need
automatic testing.

Signed-off-by: Aharon Hillel <>

SVN revision: 65961
2011-12-06 16:05:14 +00:00