Commit Graph

191 Commits

Author SHA1 Message Date
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 8882a38cdb Fix EET description of images 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 db747c49a9 Disable PRELOAD libs compilation 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 c83ed3fabb Fix preload after removal of ecore_main_loop_begin
Since this function doesn't exist anymore, we need to catch the loop
begin in a different way.
2018-01-01 00:18:27 +02:00
Daniel Zaoui 09dc7c8353 Update code after EFL changes 2017-09-19 10:36:04 +03:00
Daniel Zaoui 62298eb8ff Check evas validity before invocations 2016-11-30 07:06:02 +02:00
Daniel Zaoui 8a76345c15 Fix compilation when debug is enabled 2016-11-30 06:42:06 +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 8e0a638b19 Rename static variable 2016-10-23 06:10:20 +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 081a86902c Rename internal file
This is the first part to separate hooks related to recorder and to
player.
2016-10-09 07:41:20 +03:00
Daniel Zaoui 66347ba6a7 Modify internal functions scope.
These functions were declared as EAPI when they were only used
internally.
2016-10-09 07:38:07 +03:00
Daniel Zaoui 389c05bb5c Remove unused structure 2016-10-09 07:14:21 +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 1ad03a2e49 Modify macro to prevent simple-but-hard-to-find bugs
One of them is to forget to replace the struct name during a line copy,
leading to write bad data in the recording file and to its corruption.
2016-09-22 08:01:39 +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
Daniel Zaoui 4effc37ab0 Support reference timestamp
An issue due to timing happens when applying scenarios on applications.

The first event is directly treated, even if the recorder waited a few
seconds without any action.
The reason is that Exactness saves in the .rec file a timestamp that is
the uptime value, i.e an absolute value. A better choice would have been
to save the number of ms relative to the launch of the application.

Because of this, Exactness doesnt have any way to know when the first
event has to be treated and consumes it whenever possible, i.e at the
beginning.

This patch adds to the recording file a timestamp reference, corresponding
to the uptime at ecore_init. When applying the scenario, this timestamp
is checked and gives an idea of a delay to wait before consuming the first
event.
2016-03-23 11:42:47 +02:00
Daniel Zaoui b5900b27af Don't record an event with incorrect timestamp 2016-03-23 11:41:53 +02:00
Daniel Zaoui 1a35f7e8ba Remove struct member that has no reason to be 2016-03-23 09:06:08 +02: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 06811238a1 Recording: stop recording consecutive duplicates events
A lot of events caught by Exactness preload are repeated with the same
information, such as mouse move on the same coordinates and with the
same timestamp. This adds a lot of noise into the recording file.

This patch checks if the current caught event is the same as the last
stored and skips it if they are the same.
2016-03-17 11:48:35 +02: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
Daniel Zaoui ef0b0ae89b Modify the verbose rectangle color on clicked and shot
This is useful when looking at recorded scenarios to understand what is
done.
Sometimes, when scenarios are too old, click is not done on the right
area, leading to weird behavior.
2016-02-28 15:00:40 +02:00
Daniel Zaoui 83b9e632dc Add F3 key to record scenario
During ecore_shutdown, when the refcount reached 0, the scenario record
has to be done. The problem is that the ecore termination never happens
because of ecore modules loaded during init that references ecore
refcount.
The solution, until this is fixed, is to trigger the scenario recording
from a key press.
2016-02-28 15:00:40 +02:00
kabeer khan 7989552b29 replace "compare" utility with custom compare function using only EFL.
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric, tasn

Reviewed By: cedric, tasn

Subscribers: tasn

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-07-29 23:27:29 +02:00
kabeer khan bb051fce2b Prevent deletion of shots having same prefix as test name
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: tasn

Differential Revision: https://phab.enlightenment.org/D2629
2015-06-09 13:52:53 +01:00
kabeer khan 773e539083 Avoid comparing of tests in play step having common prefix
Summary:
Currently genlist_group is also running in play step even if it is
commented in tests.txt. Fixed this issue

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric, stefan_schmidt, tasn

Subscribers: stefan_schmidt

Differential Revision: https://phab.enlightenment.org/D2604
2015-06-04 10:50:33 +01:00
kabeer khan 834021b743 Enabled exactness to use efl beta API's
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric, tasn

Differential Revision: https://phab.enlightenment.org/D2583
2015-05-27 13:12:40 +01:00
kabeer khan e02ad005f1 Using sha1 to compare two images in play step instead of md5
Summary:
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 <kabeer.khan@samsung.com>

Reviewers: cedric, tasn

Differential Revision: https://phab.enlightenment.org/D2569
2015-05-27 11:41:28 +01:00
kabeer khan a701d336ca Make exactness independant of elementary
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: tasn

Differential Revision: https://phab.enlightenment.org/D2105
2015-03-05 13:03:08 +00:00
Tom Hacohen e2c1fa0636 Remove unused variable. 2015-03-05 12:03:55 +00:00
kabeer khan 079dbb6dd5 added code to enable shots capturing of ecore_evas and evas examples
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric, tasn

Reviewed By: tasn

Differential Revision: https://phab.enlightenment.org/D2082
2015-03-04 15:00:05 +00:00
kabeer khan 450d2888eb Add key up/down with keycode event handler
Summary:
To catch key press event added key up/down with keycode event handler

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric, tasn

Differential Revision: https://phab.enlightenment.org/D2052
2015-03-04 14:55:17 +00:00
kabeer khan c883067d4b Added .gitignore in bin folder to ignore exactness binary
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: tasn

Differential Revision: https://phab.enlightenment.org/D2057
2015-02-26 13:10:01 +00:00
Tom Hacohen 3b0eb3b873 Fixed a bug preventing it from working on some setups. 2013-10-20 11:21:12 +01:00
Tom Hacohen 163567f0cc Added a more verbose "Shot taken" message.
Include the filename in the message.
2013-06-14 14:41:55 +01:00
Tom Hacohen a2c36ec82a Fix memory leak of filename when running in simulation mode. 2013-06-14 14:41:04 +01:00
Tom Hacohen 7f40296382 Sort exactness errors. 2013-06-14 13:33:32 +01:00
Tom Hacohen 4b8326ad60 Change image files naming template: name_%d.png -> name_%03d.png. 2013-06-14 13:33:23 +01:00
Tom Hacohen 5500a3c0b1 Add an hook to evas_event_input_mouse_move.
Apparently this one is what the new function that is used by ecore_input
(and should be used by input providers) to get input to Evas.
2013-06-13 15:38:03 +01:00
Tom Hacohen b606de65cc Hook on evas_new instead of elm_win_add when tracking Evas.
This makes it more general and thus suitable for non-elm applications.
2013-06-13 13:48:28 +01:00
Tom Hacohen b4b7e65edd Fix initialization issues (and thus some segfaults).
Init ecore before using it, shutdown after done.
Init eet, as we need it as well.
2013-06-13 13:47:22 +01:00
Tom Hacohen b5523094af Print an error if report file can't be opened for writing. 2013-06-12 15:15:02 +01:00
Tom Hacohen 2d5cc83ed5 Also fail if exit signal is non-zero.
We should fail if we segfault, or exit because of another error that
ecore_exe reports a zero exit code for.
2013-06-10 16:57:48 +01:00
Daniel Willmann f94850e84a ecore_init/shutdown: Proper refcounting for wrappers
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-06-10 16:57:48 +01:00
Tom Hacohen ed1d015b8f Added more verbose output to test buildbot. 2013-06-10 13:44:36 +01:00
Tom Hacohen afb0cd3cd1 Added the 'wrap' parameter, to use a wrapping command around the tests.
A good example would be valgrind.
2013-05-21 15:35:35 +01:00
Tom Hacohen c99fdfb239 Added some verbose support (including cursor in simulation). 2013-05-17 15:47:08 +01:00
Tom Hacohen 36fe181d8e Moved recordings to exactness-data-elm. 2013-05-17 11:23:24 +01:00
Tom Hacohen 3e4c93bd83 Make the Exactness error report valid XHTML 1.0 Strict. 2013-05-15 17:20:00 +01:00
Tom Hacohen 11cc575120 Added html output for easier viewing of the errors. 2013-05-15 16:48:04 +01:00
Daniel Willmann feac36f368 Fix destdir usage for destdir != ./
Some more checks would be good, but this fixes basic usage for now.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-05-09 13:59:58 +01:00
Tom Hacohen 93ed31024e Removed accidentally added printf. 2013-05-08 15:48:21 +01:00
Tom Hacohen c5860fc6e6 Fixed exactness compilation. Thanks seoz. 2013-05-08 15:43:19 +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 6d474175e2 More clean-ups. 2013-04-30 10:35:52 +01:00
Tom Hacohen a1b35c44ac Reduced some code duplicity. 2013-04-29 18:05:49 +01:00
Tom Hacohen 2a31033738 Fixed info message. 2013-04-29 18:05:49 +01:00
Tom Hacohen c00c3aaa29 Added explanations to the flags to the help message.
Also fixed indentation.
2013-04-26 14:19:05 +01:00
Tom Hacohen 33df8ecb2c Get rid of the compare option, useless. 2013-04-26 14:15:41 +01:00
Tom Hacohen 381bd401f8 Get rid of the useless TSUITE_BASE_DIR env var. 2013-04-26 14:11:43 +01:00
Tom Hacohen 6873cad582 Implement VERBOSE the same way as DEBUG. 2013-04-26 14:11:31 +01:00
Tom Hacohen 50cef78346 Fixed usage of backtick that broke in a previous commit.
commit that broke it: 802baf489f
2013-04-26 14:10:29 +01:00
Tom Hacohen fdb791a421 Changed base dir to a sane default. 2013-04-26 13:54:39 +01:00
Tom Hacohen bf5f589310 Fixed up indentation and some general style. 2013-04-26 10:25:57 +01:00
Tom Hacohen 802baf489f Cleaned up script generation and got rid of the atrocious write.sh 2013-04-19 17:12:00 +01:00
Tom Hacohen 7b1df1a40f Fixed out of source builds. 2013-03-18 16:36:10 +00:00
Aharon Hillel eed1c5afdb exactness: Fixed warnings.
Signed-off-by: Aharon Hillel <a.hillel@partner.samsung.com>

SVN revision: 68338
2012-02-23 13:59:44 +00:00
Aharon Hillel 8afb58e764 exactness: Fixed evas function in tsuite_shot_do
Signed-off-by: Aharon Hillel <a.hillel@partner.samsung.com>

SVN revision: 68273
2012-02-22 13:44:12 +00:00
Aharon Hillel 52bc4e785e exactness: added -v (verbose) option
Signed-off-by: Aharon Hillel <a.hillel@partner.samsung.com>

SVN revision: 68272
2012-02-22 13:44:08 +00:00
Aharon Hillel 6d68ce3439 exactness: Make it possible to run only selected tests from list file.
Signed-off-by: Aharon Hillel <a.hillel@partner.samsung.com>

SVN revision: 67970
2012-02-15 09:56:07 +00: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 7a99abbbb0 exactness: Fixed test command Using eval to handle test-names containing spaces
Signed-off-by: Aharon Hillel <a.hillel@partner.samsung.com>

SVN revision: 67931
2012-02-14 13:52:49 +00:00