Commit Graph

211 Commits

Author SHA1 Message Date
Daniel Zaoui 9831560caf Use source codes stored in the unit as application
This can be useful if the application is not in an official repository
like elementary_test.
This feature allows compiling the source code and using it to run the
scenario on.
The command (e.g gcc...) must be stored in the unit as well. $SRC and
$DEST can be used to specify the source and destination files in the
2018-08-29 12:08:22 +03:00
Daniel Zaoui 5ffc8ec640 Player: send back screenshot data when remotely requested
When the external injection is used (scenario injected by an external
tool via Eina Debug) and a screenshot is required, the data is sent
to the injector.
2018-08-22 21:59:42 +03:00
Daniel Zaoui 1551b5358f Player: enable shots (silently) even if disabled in the command line
A bug appears in "box vert" test. If --disable-screenshots is set, and
no other optional such as -v, the application will receive only 4
clicked events instead of 8. The bug doesn't appear if -v is set or if
the application is shown on the screen.

It seems that the buffer engine doesn't want to consume the events
because no damage/shot request is "reported".

The solution for that bug is to enable the screenshots process, just
without saving the outputs.

2018-07-11 12:18:52 +03:00
Daniel Zaoui d8315ffdc7 Remove printfs 2018-06-10 12:33:35 +03:00
Daniel Zaoui 49e455f481 Player: try to stabilize screenshotting
Buffer evas cannot be used when the application is shown on the screen.
It means the _sync_shot_get function cannot work always. That is a
problem when the stabilization feature is used.
That's why we need to use snapshot no matter the case. The problem is
that snapshot seems to sit on the canvas and therefore doesn't forward
the events, such as mouse down... So we need to create a snapshot only
when needed.
Additionally, stabilization feature needed to be finished. The threshold
to guarantee the stabilization was not implemented.
2018-06-10 11:58:40 +03:00
Daniel Zaoui e59cca6fce Suite: support player --disable-screenshots options 2018-06-10 11:57:28 +03:00
Daniel Zaoui 08a6abd881 Fix how the jobs are consumed
In init mode, we don't need to compare. So we have to check the mode and
then decide if a comparison or the next test execution is needed.
2018-06-07 12:46:32 +03:00
Daniel Zaoui 4d0579aa15 Fix command preparation in simulation mode
The sentinel was forgotten, leading to issues when launching the
2018-06-07 12:45:39 +03:00
Daniel Zaoui 0e1f0cf1c5 Exactness: add fonts support
One of the biggest issue in Exactness is related to the system
configuration differences. Among them, the fonts can for example
impact on the height of the widgets.
The solution to not be dependent on the fonts consist in using embedded
fonts and to force their usage when playing the applications.

The -f option has been added to the player and the recorder so the user
can provide the path to a fonts directory. This option must be set in
order to force the fonts replacement. Since tests shots can use different
fonts, the exu file stores the version of fonts that have been used.
This is why it is needed to have in the provided directory different
directories, each pointing to a different version of the fonts. For
example, some old tests can use fonts of 2017 (e.g directory 20170101)
while new tests will use new fonts (20180601). Check the
exactness-elm-data repository (fonts branch) for a better understanding.

During recording, the -f option will apply the indicated fonts on the
launched application and will record the mouse events accordingly. The
fonts datestamp is stored in the exu output.
During playing, the fonts will be loaded by reading the exu fonts path,
and then the application is launched. If no information is provided in
the exu but -f is used, the tool will load the most recent fonts (by
comparing the datestamp directories).
2018-06-05 00:06:18 +03:00
Daniel Zaoui 621dac67ce Fix uninitialized variables 2018-06-04 23:37:41 +03:00
Daniel Zaoui e215368501 Replace arrays with alloca to prevent dumb warnings
snprintf now throws warning during compilation on potential buffer
overflow when using arrays.
2018-06-04 23:37:35 +03:00
Daniel Zaoui 4203336691 Remove references to POSIX 2018-06-04 13:38:11 +03:00
Daniel Zaoui 4b5ced9b07 Fix potention buffer overflow 2018-06-04 13:35:18 +03:00
Daniel Zaoui ab22f74b0a Fix warnings
n_evas is unsigned so always above or equal 0
2018-06-04 12:23:31 +03:00
Daniel Zaoui b95c50de65 Player/injection: don't feed events from an internal source 2018-06-04 12:22:31 +03:00
Daniel Zaoui e13c15f39e Fix warnings related to string manipulation 2018-06-04 12:20:50 +03:00
Daniel Zaoui 55cba900b9 Revert "Add exactness-elm-data as submodule"
This reverts commit 3ddd87589d.

This patch should not have been pushed.
2018-06-04 12:11:53 +03:00
Daniel Zaoui 65c07efc0e Revert "Add check-exactness target with -j support"
This reverts commit f1bfcaeaf0.

This patch should not have been pushed.
2018-06-04 12:11:31 +03:00
Daniel Zaoui ee532a6aac Inspect: fix extension extraction when different extensions are given
When a exu and a rec file were given, the ext was remaining exu and a
crash was happening.
2018-05-23 09:35:00 +03:00
Daniel Zaoui f1bfcaeaf0 Add check-exactness target with -j support
It is still on going.

One of the issues is that for some mystic reason, the
HAVE_EXACTNESS_DATA seems not checked as the target check-exactness is
always present, no matter if the submodule exists.
2018-05-22 22:35:39 +03:00
Daniel Zaoui 3ddd87589d Add exactness-elm-data as submodule 2018-05-22 22:35:08 +03:00
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 7337672562 Compare the shots directly after the test to speed up
The problem that we try to solve is the time taken to compare the shots after
all the scenarios have been run.
Now, comparing the shots sequentially is done right after the test
finished to run. With -j 1, it won't change anything. With more CPUs, it
will compare while other tests are running, i.e when the CPU is not too
much busy.
2018-05-20 21:29:45 +03:00
Daniel Zaoui a1341ac74c Fix Valgrind issue
It was complaining of an invalid read size because it was accessing
bytes after the pixels buffer.
2018-05-18 17:21:13 +03:00
Daniel Zaoui 667171d1d9 Player: improve the stabilization mechanism
The goal is to support applications where editable entries are used.
The problem is the text cursor that, even if we disable its animation
through the theme overlay, triggers the render post event, which breaks
all the previous method used to detect stability.
Now, every 100ms, we compare the current canvas image with the previous
saved shot.
2018-05-16 18:00:39 +03:00
Daniel Zaoui 8eafc850bc Player: don't play actions after the last shot
There is no good reason to play these actions, as no comparison is made
2018-05-16 18:00:39 +03:00
Daniel Zaoui f12aa93376 Inspect: permit stabilization action appending via command line 2018-05-16 18:00:39 +03:00
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 1396549299 Remove old recorder and player 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
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 cdb033bcbc Install Exactness.h and create library for unit access 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
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