Commit Graph

33 Commits

Author SHA1 Message Date
Felipe Magno de Almeida 8948e80de7 eolian: Remove unnecessary import and export macros from test executables
Executables do not need to export and import symbols.
2020-08-23 14:02:51 -03:00
Mike Blumenkrantz 06258d3177 exactness: resolve float compare warnings
Summary: Depends on D11796

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11797
2020-05-12 16:10:02 +02:00
Marcel Hollerbach 2830d1c6fa exactness_player: do not test for delay_ms
that is a unsigned int, if its 0 the timer is called as fast as
possible. Not doing that breaks exactness.

@fix

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11774
2020-05-05 11:08:47 +02:00
Stefan Schmidt f5516e896d exactness: check action for NULL
If the given events list is NULL the data pointer would be as well. Make
sure we check for NULL here before accessing.

CID: 1419843

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11754
2020-04-23 13:21:54 +02:00
Stefan Schmidt d4c8bd4f4f exactness: use convinience ecore_file function to get dir
Instead of doing our own parsing here we should use ecore_file_dir_get()
which uses dirname() already to solve this.

CID: 1422196

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11727
2020-04-23 13:06:35 +02:00
Stefan Schmidt 7452700618 exactness: do not access potential NULL pointer
These to code lines should be in one block and not one exectued without
the if.

CID: 1422198

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11726
2020-04-23 13:06:33 +02:00
Stefan Schmidt 6b1ed0f573 exactness: make sure we handle a negative file descriptor
In an error case the fd could be negative here and we should check
before feeding it into fdopen(). This is the same patch we used in
recorder.c

CID: 1422194

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11728
2020-04-20 12:20:54 +02:00
Stefan Schmidt 61599d67ed exactness: limit length for font_path to stay in buffer
We get fonts_dir from a getenv() without and length check. Make sure
that we stay in the given buffer size when stitching the file path
together.

CID: 1422195

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11718
2020-04-17 10:43:04 +02:00
Stefan Schmidt 95bff0fac9 exactness: fix typo in function name
Simple spelling mistake. overlay instead of overloay.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11714
2020-04-17 10:43:01 +02:00
Marcel Hollerbach b3786aa83a exactness: protect against forked calls
there came up a issue, where a excatness spawned processes were bringing
up a efreetd instance, when the efreetd instance turned off itself, the
files for exactness were written again, which is wrong. This ensures
that forked instances do not take any actions.

Differential Revision: https://phab.enlightenment.org/D11634
2020-04-01 19:25:36 +02:00
Marcel Hollerbach b5a4dbc366 exactness: error when _src_unit is NULL
if _src_unit is NULL, the write here would delete the actions, with this
commit we ensure that this is printing an error.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11627
2020-03-31 14:56:46 +02:00
Marcel Hollerbach 7466ca4de7 exactness_play: transform to LD_PRELOAD library
this can now be loaded as LD_PRELOAD library

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11615
2020-03-31 14:56:33 +02:00
Marcel Hollerbach 09a7ebdc62 exactness_player: refactor main method
this refactors everything that is not argc argv related out of the main
method. For later usage

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11614
2020-03-31 14:56:31 +02:00
Marcel Hollerbach 8ee3ecff95 exactness: remove code for compiling
this seems to be made for compiling binaries before testing. That sounds
like a good idea, however, implementing a full buildtool in exactness is
a bit hard. Hence, using meson for that would be better.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11613
2020-03-31 14:56:28 +02:00
Marcel Hollerbach 66e2d71414 exactness: handbuild a new argv array instead of reassemling the new one
this commit removes the code that was changing argv values, and replaces
it with a new array. Which is absolutly fine, as the argv / argc values
are never accessed later on. Only the copies that have been passed to
efl_main or elm_main.

This resolves several issues:
1. the for loop is useless, every single array element that gets
   initialized with it, is some offset from argv[0] this may also crash
   when argv[i] - argv[opt_args] is bigger strlen argv[0].
2. The memcpy here is super dangerous, the dest array is not garanteed
   to have the same size as argv[0], this only works if the client
   application name is shorter than the name "exactness_recorder"
3. The memset here is absolutly wrong. There is again no garantee that
   the array has the expected size behind that, this was constantly
   overwriting the segment after the place where argv was stored, which
   was lukely enough on fedora always the environs, which deleted the
   couple first segments. (This was not causing any fuzz, since they
   have been sudo related env vars on the docker image). However, on
   arch this just crashed right away. On Ubuntu this overwrote DISPLAY,
   which resulted in the unability to launch the app.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11600
2020-03-25 22:12:56 +01:00
Stefan Schmidt 912fbe79a2 exactness: switch from homegrown debug printf to eina_log
Use a full eina_log domain here for each executable. No need to have a
own half baked ex_printf version here for such things.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11558
2020-03-24 12:24:07 +01:00
Stefan Schmidt 9da0235d74 exactness: remove exactness library and move code into binary folder
We do not want to have EAPI from exactness exposed at this point without
any real user. I know of no application using the exactness library.
If we come to that point we can move things back into a lib, but for now
having the code shared between the various executables is all we need.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11545
2020-03-24 12:24:04 +01:00
Stefan Schmidt 2359386d5d exactness: remove support for legacy .rec format
From now on we will only go with the new .exu format. All tests have
been converted two and a half years ago already. If there still is a
need for this in some corner cases the external exactness application
still has support for this.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11537
2020-03-20 12:04:40 +01:00
Stefan Schmidt 2754bc93e6 exactness: factor out the special _mkdir() handling
We have an ecore function to handle most of this already. For the case
where we give a file name cut off that part before handing it off to
creation.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11458
2020-03-20 12:04:37 +01:00
Stefan Schmidt b84694f518 exactness: factour out the program invoke code
It needs a little special case handling for the player (to load the edj
file), but the rest is really the same.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11460
2020-03-20 12:04:35 +01:00
Stefan Schmidt b69bc02c02 exactness: factor out duplicated code for debug session handling
No need to have these macros ducplicated in two file, we can just share
them and reduce maintenance.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11459
2020-03-12 16:41:07 +01:00
Stefan Schmidt 525113650d exactness: hamonize use of PATH_MAX as maximal path length allowed
There have been to many different defines for this in exactness.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11457
2020-03-12 16:41:05 +01:00
Stefan Schmidt f8299e0542 exactness: factor out _printf() handling into common part
First step to do some re-factoring of the exactness binaries. We will
share common parts from the different binaries in common.{c,h} to reduce
the code duplication. The start makes _printf() used in various places.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11456
2020-03-12 16:41:03 +01:00
Stefan Schmidt 5e675938d5 exactness: use eina_strdup() to avoid extra NULL checking
strdup() would not be happy about a NULL to copy, but we have
eina_strdup in place already to handle this gracefully.

CID: 1419846

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11421
2020-02-26 15:15:50 +01:00
Stefan Schmidt 983d03d012 exactness: check return code from ecore_evas_init
Check if we can initialize correctly and return failure if not.

CID: 1419872, 1419864, 1419867, 1419850

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11420
2020-02-26 15:15:48 +01:00
Stefan Schmidt de389fbe5e exactness: avoid leak on leaving scope
Before we leave the fucntion here we need to free our temporaray paths
variable.

CID: 1419860

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11411
2020-02-26 15:15:45 +01:00
Stefan Schmidt fa0fd8214f exactness: player: allow space for the terminating null
Allocate extra space for the terminating null byte and / of the string.
Switch to snprintf() as well.

CID: 1419863

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11410
2020-02-26 15:15:43 +01:00
Stefan Schmidt bf2b9adec5 exactness_player: fix running of exactness player after compile fix
Summary:
The last compile fix broke the execution of exactness. When replacing
_POSIX_PATH_MAX with PATH_MAX here we did not catch that it would
overwrite out of bounds here as the original _POSIX_PATH_MAX is limited
to 256 while PATH_MAX can go up to 4096. This screws up the size of the
memset.

Reviewers: zmike, bu5hm4n, vtorri, ali.alzyod

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11317
2020-02-12 12:10:04 -05:00
Stefan Schmidt 5f1047c8b4 exactness_player: make use of PATH_MAX define instead of posix variant
The use of _POSIX_ has lead to a compile problem on old Ubuntu (16.04)
versions. We use PATH_MAX everywhere else so follow suit here.

Fixes T8613

Reviewed-by: Ali Alzyod <ali198724@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11305
2020-02-10 14:01:47 +01:00
Stefan Schmidt 248f3d9d6b exactness: fix init/shutdown handling of efl components in various binaries
The init/shutdown handling for efl libraries was a bit sloppy and
unbalanced in the exactness binaries. Switching over to use
ecore_eas_init/shutdown here instead of doing all libs individually.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11289
2020-02-07 11:31:25 +01:00
Stefan Schmidt 6a4e297ec8 exactness: remove unused code
Either commented out, blank lines or no needed includes.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11288
2020-02-07 11:31:21 +01:00
Stefan Schmidt 93bdf120d0 exactness: remove no longer needed EO and BETA API defines
This has been in place during development and not updated for recent
changes and merge into efl master.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11287
2020-02-07 11:31:18 +01:00
Daniel Zaoui 50dbfcf31d exactness: import code from external repo into efl.git
Exactness has been developed in a separate git repo for many years. This
finally moves it over into efl. Having it in tree allows us for easier
testing with our current main target elementary_test and integration
into our CI system (patches for this are work in progress already).

We are only importing the lib and binary for test execution, not the
full set of test data. This is would be over 500MB and thus it will stay
in a different repo and only made available during the actual testing.

[The original patch was made by Daniel Zaoui. Over the course of review
and testing it got extended with build fixes for API changes and mingw
compilation support from Stefan Schmidt and Michael Blumenkrantz]

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11285
2020-02-07 11:31:13 +01:00