Commit Graph

93 Commits

Author SHA1 Message Date
Daniel Zaoui 3457071db1 Recorder: support stabilization via hotkey 2018-05-16 18:00:39 +03:00
Daniel Zaoui f56ee0dfac Suite: replace the compare method
Instead of using ImageMagick, we now use an internal function.
2018-05-16 18:00:39 +03:00
Daniel Zaoui 53a52a3419 Suite: support exu files comparison 2018-05-16 15:16:24 +03:00
Daniel Zaoui 1f063e3715 Suite: support multiple base directories
It is needed if, for example, rec and exu files are not stored in the
same place while an unique tests file is used.
2018-05-14 11:09:37 +03:00
Daniel Zaoui d049f0cc2c Player: make the screenshot retrieval asynchronous 2018-05-14 11:09:37 +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 f3c1cd693d Player: begin actions feeding after the first canvas is created 2018-05-14 11:09:37 +03:00
Daniel Zaoui 6489ac6142 Player: support screenshots disabling 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 8f9e553d20 Exactness: add the stabilize action to the scenario
This action is needed when the time for the frames to be stable is not
known.
2018-05-14 11:09:37 +03:00
Daniel Zaoui ca185b925a Support of EFL event invocations on named widgets
A new action has been added, permitting the invocation of EFL events on
named widgets.
The name must be set via efl_name_set.
2018-05-14 11:09:37 +03:00
Daniel Zaoui 4373f25dc1 Update ignored files 2018-05-14 11:09:37 +03:00
Daniel Zaoui 2858adbd8d Store delays instead of timestamps in the scenario 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 0c30b92bc6 Fix crash when no scenario is present on one side 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
(Exactness_Action).
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 ffe0659fbe Inspect: support images displaying from shot entry
A button has been added next to the shot entry. The image itself is set
as the its content.
2018-05-09 21:58:08 +03:00
Daniel Zaoui c3a31c436d Inspect: add --show-only-diffs option
It works only with --compare and in the GUI.
2018-05-09 21:58:08 +03:00
Daniel Zaoui 44cc8381bf Inspect: colorize differences 2018-05-09 21:58:08 +03:00
Daniel Zaoui 56cfef5694 Inspect: add objects information comparison
Genlists management needed to be modified to fit this new feature
2018-05-09 21:58:08 +03:00
Daniel Zaoui fbd75a4356 Add objects information support 2018-05-09 21:58:08 +03:00
Daniel Zaoui 1497fa7336 Recorder: port args to Ecore GetOpt 2018-05-09 21:58:08 +03:00
Daniel Zaoui a74cc726f0 Player: port args to Ecore GetOpt 2018-05-09 21:58:08 +03:00
Daniel Zaoui a62f3906e7 Fix images EET handling by using correct APIs 2018-05-06 22:53:30 +03:00
Daniel Zaoui d589c93764 Recorder: support exu 2018-05-06 22:53:30 +03:00
Daniel Zaoui e71334118b Inspect: rename groups names 2018-05-06 22:53:30 +03:00
Daniel Zaoui 5da255c3e8 Inspect: fix timestamps printing 2018-05-06 22:53:30 +03:00
Daniel Zaoui 1086aa6885 Player: support exu as source 2018-05-06 22:53:30 +03:00
Daniel Zaoui 5555a38c1e Support exu file for Exactness
The exu is a EET file for Exactness (Exactness Unit). It currently
contains the scenario and the images shots.
exactness_inspect supports it, as well as the player (only as output).
2018-05-06 22:53:30 +03:00
Daniel Zaoui 3dd58276a2 Add EET for new Exactness data types 2018-05-06 22:53:30 +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 3bcd6bb4de Replace preload invocation with exactness_play 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
mechanisms.
2018-04-21 22:20:23 +03:00
Daniel Zaoui 7c10de63e3 Support adding delay to a specific shot in the scenario
It helps when a shot is not stable and need a few ms more to be ok.
2018-01-01 00:18:27 +02:00
Daniel Zaoui 781f294654 Helper: write recording only if needed 2016-11-06 10:19:37 +02:00
Daniel Zaoui ee1e8f77e1 Print command line when verbose is on 2016-11-06 08:43:47 +02: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
screen.

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 33730b5dcd Destination directory is not needed during simulation
Shots are not needed in this mode too.
2016-10-10 10:42:48 +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 905a507ab0 Centralize run command string generation
Most of this command is common to all the run modes.
2016-09-29 08:02:32 +03:00
Daniel Zaoui 95327a0f7c Recording: support new EFL input events
During recording, hooking on Evas functions can't work anymore as they
are no more invoked internally.
The new way to catch the events is to listen to them on the canvas.
Additionally, regular mouse events are now multi events whose tool (device id)
is 0, as well as key events with and without keycode are now always
considered with a keycode that can be 0.

Previous events catching has been kept to support legacy applications.
2016-09-22 07:38:10 +03:00
Daniel Zaoui fefa31d7b2 Fix compilation after Emile API change 2016-09-11 13:14:03 +03:00
Daniel Hirt 365630b8db Use correct output dir for reports
Not really sure if it needs to generate reports on 'init' mode, but at least now
it will be in the correct directory.
2016-07-13 16:30:07 +00: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
Stefan Schmidt 33787ceb6a Revert "replace "compare" utility with custom compare function using only EFL."
This reverts commit 7989552b29.

This change introduces segfaults on my machine as well as Jenkins every time a
test fails and a comparison of the images is needed. We might want to bring this
back later but for now a working solution is preferred.
2016-03-22 14:13:56 +01:00
Daniel Zaoui 4b2887721b Force scale and finger size
These two environment variables need to be forced to the standard
values to make sure scenarios are well applied.
Without this forcing, mouse clicks are not done at the right
coordinates, leading to a different behavior of the application. In
addition, shots comparison will always fail if the series of images are
based on different values of these variables.
2016-03-02 12:46:26 +02:00