Marco Trevisan (Treviño)
0592c0e5ad
uru4000: Cleanup cancelled error before early return
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño)
684e3c460a
uru4000: Shutdown NSS on device close
...
We were allocating NSS during device opening but never closing it,
causing many leaks.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño)
4278668c8f
egis0570: Cleanup the received image that is going to be resized
...
It's just temporary for us as we're providing the resized one instead.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño)
a86ab6c854
test-fpi-device: Cleanup the device ID / driver before overriding it
...
Otherwise we'd leak the one that was initially set.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño)
b04eed0aea
test-device-fake: Consume the identify print if we're returning with error
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño)
669e091b03
virtual-device: Use an autoptr to handle the new scan print
...
We may not use this print, so let's use an autoptr to handle its life
cycle to clean it up when not used.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño)
0b6a92150c
tests/fpcmoc: Ensure python tests exit with error on every exception
...
We ignored assertions happening on callbacks as they only raise
exceptions that does not stop the execution.
So ensure that this is happening in all the tests as synaptics was
doing already
Same as commit: be8888431
2022-10-13 04:26:58 +02:00
Marco Trevisan (Treviño)
b718f4d567
tests/meson: Avoid searching for programs multiple times
2022-09-28 01:23:58 +02:00
Marco Trevisan (Treviño)
be88884315
tests: Ensure python tests exit with error on every exception
...
We ignored assertions happening on callbacks as they only raise
exceptions that does not stop the execution.
So ensure that this is happening in all the tests as synaptics was
doing already
2022-09-28 01:22:15 +02:00
Marco Trevisan (Treviño)
d2a0eda56c
synaptics, goodix: Properly check for finger status during enroll progress
...
It may contain other values, but for sure we finger must be neeeded
2022-09-28 01:21:31 +02:00
Marco Trevisan (Treviño)
5d9fc8b3c8
fpi-device: Do not leak USB devices while iterating
...
To compute the device ports we walked up through the devices using
g_usb_device_get_parent(), but this is supposed to return a device with
transfer full, so we need to unref it when done with it.
To handle this nicely, use a mixture of autopointer's and g_set_object
to ensure we're doing the right thing when passing the ownership around.
2022-09-27 18:21:20 +02:00
Marco Trevisan (Treviño)
62f2f34655
fpi-device: Fix a small leak when configuring the wakeup
2022-09-27 17:38:51 +02:00
Marco Trevisan (Treviño)
171e65f73f
libfprint: Use g_memdup2 everywhere
...
It's just safer when available.
2022-09-27 17:10:33 +02:00
Marco Trevisan (Treviño)
446cedbcfc
fpi-compat: Add definition for g_memdup2 when not available or deprecated
...
It's suggested to use g_memdup2 everywhere, but since we've a max-glib
version set we'd get a "deprecation" warning.
Avoid it this by re-defininig it through a macro in both cases.
2022-09-27 17:10:33 +02:00
Marco Trevisan (Treviño)
4012a4fe6f
fpi-device: Clarify identify prints gallery usage in drivers docs
2022-09-27 16:43:33 +02:00
Marco Trevisan (Treviño)
70dc61d647
libfprint: Add top-level sync-udev-hwdb target for updating DB
2022-09-27 16:32:09 +02:00
Marco Trevisan (Treviño)
ca481cce50
fprint-list-udev-hwdb: Update devices from wiki
2022-09-27 16:32:09 +02:00
Marco Trevisan (Treviño)
4d74838c50
ci: Generate Cobertura XML and use it to feed gitlab for MR integration
...
gitlab has coverage integration in MRs, but we need a cobertura
formatted XML files (each must be less than 10 MB) to show it, since
meson generates it already via gcovr, we can just inform gitlab about it
See https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html
2022-09-27 13:05:01 +02:00
Marco Trevisan (Treviño)
c429052e5e
tests: Do not use deprecated declarations in virtual device tests
2022-09-27 12:52:38 +02:00
Marco Trevisan (Treviño)
7ea2e55793
ci: Check for uncrustify changes in a safer way
2022-09-27 01:38:26 +02:00
Marco Trevisan (Treviño)
34e8655a08
ci: Use versioned image tags
2022-09-27 01:06:35 +02:00
Marco Trevisan (Treviño)
c512a47e8a
ci: Install debuginfo packages for better valgrind debugging
...
Related-to: https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/507
2022-09-27 00:21:05 +02:00
Marco Trevisan (Treviño)
012d77ac41
libfprint-templates: Include exec commands
2022-09-27 00:15:16 +02:00
Marco Trevisan (Treviño)
2acd3ca571
ci: Rebuild the image in case deps changed
2022-09-27 00:15:16 +02:00
Marco Trevisan (Treviño)
15bee898b8
ci: Use junit test reports
...
They can be used to show test failure logs directly in the MR's
pipelines page.
2022-07-14 22:13:49 +02:00
Marco Trevisan (Treviño)
fb9e054637
test-fp-device: Add few tests to check identification init errors
2022-07-14 21:35:30 +02:00
Marco Trevisan (Treviño)
7f6ab61292
fp-device: Return an error if prints are invalid
...
We'd crash later otherwise, while it's better to return an error.
2022-07-14 21:14:29 +02:00
Marco Trevisan (Treviño)
f03d9361e3
fpi-device: Improve documentation for identify/verify report and complete
...
We still mentioned variables that are not accepted anymore since we
switched to match reporting API.
2022-07-14 21:13:35 +02:00
Marco Trevisan (Treviño)
378fae0ea2
doc: Add missing Drivers API SSM functions
2021-10-28 16:56:11 +02:00
Marco Trevisan (Treviño)
01b0f7aba0
doc: Include missing types (SPI) and functions to the Drivers API
2021-10-28 16:39:35 +02:00
Marco Trevisan (Treviño)
de46e1e4b8
tests: Add missing trailing new lines on devices attributes
...
This as per the same reasons of commit 63bfaf4 , and without trailing new
lines such attributes aren't picked by umockdev in ubuntu and debian.
2021-10-27 02:01:50 +02:00
Marco Trevisan (Treviño)
88cb452e05
fpi-device: Do not include config.h in headers
...
It should be included in files requiring it only.
2021-09-03 18:49:45 +02:00
Marco Trevisan (Treviño)
9aa3060d32
ci: Expose valgrind test logs
2021-04-13 19:39:50 +02:00
Marco Trevisan (Treviño)
9a1dcaa801
tests: Use native meson exec wrapper in test setups instead of our script
...
No need to provide a script that will break usage of `meson test --gdb`
when we can use a native and cleaner alternative.
We can then ignore LIBFPRINT_TEST_WRAPPER in basic tests, while it is
still needed by umockdev tests.
2021-04-13 19:38:58 +02:00
Marco Trevisan (Treviño)
683ac48e21
libfprint2-sections: Add missing FpFingerStatusFlags
2021-04-12 22:14:06 +02:00
Marco Trevisan (Treviño)
3b34fc9b5b
ci: Expose coverage report and meson logs in MRs
2021-04-12 22:14:06 +02:00
Marco Trevisan (Treviño)
41f8737b48
device: Deprecate fp_device_{supports,has}_* functions for has_feature
...
We can avoid having multiple device feature-check functions now and
just rely on a few.
Add uncrustify config to properly handle begin/end deprecation macros.
2021-04-12 22:14:06 +02:00
Marco Trevisan (Treviño)
ef805f2341
device: Expose supported features publicly as FpDeviceFeature
...
It can be convenient for device users to check what it supports, without
having multiple functions to check each single feature.
So expose this and add tests.
2021-04-12 22:14:06 +02:00
Marco Trevisan (Treviño)
bd99f865d8
fp-device: Gracefully handle capture calls on devices with no support
2021-04-12 22:14:06 +02:00
Marco Trevisan (Treviño)
3717468a8a
device: Make verification support optional
...
We always assumed a device can verify, but nothing prevents from having
a device that only can identify or capture.
So, given that we've more fine grained checks, let's stop the task if
this is the case.
2021-04-12 22:14:06 +02:00
Marco Trevisan (Treviño)
8d545a0b95
fpi-device: Add FpiDeviceFeature flags to FpDeviceClass
...
Allows drivers to define more fine grained features for devices, not
strictly depending on assumptions we can make depending on the
implemented vfuncs.
We keep this per class but could be in theory moved to each instance.
In any case, added an utility function to initialize it in the way we
can ensure that we've a consistent way for setting them across all the
devices.
2021-04-12 22:14:06 +02:00
Marco Trevisan (Treviño)
9321791d0e
ci: Do not use verbose logging for tests, just rely on artifacts
...
Only print errors if any
2021-04-01 18:01:29 +02:00
Marco Trevisan (Treviño)
4031bb62d7
device: Gracefully handle identify on devices with no support
...
We were crashing as trying to still call the identify vfunc, so check if
identification is supported and if not return a relative error.
Added test as well
2021-04-01 17:44:56 +02:00
Marco Trevisan (Treviño)
59767af552
doc/libfprint-2.types: Also include fp-image-device to get image type
2021-04-01 17:13:11 +02:00
Marco Trevisan (Treviño)
e8a7ff1033
tests/virtual-device: Add test checking close while we're still opening
2021-03-03 19:41:04 +01:00
Marco Trevisan (Treviño)
8ae27b4672
fpi-assemping: Do not include unneeded headers and do not use absolute search paths
2021-03-03 19:40:49 +01:00
Marco Trevisan (Treviño)
8fd1fcbe49
virtual-device: Move shared functions into the internal scope
...
We are currently exporting such functions in the library, even though
they are meant to be only private.
2021-02-22 21:08:57 +01:00
Marco Trevisan (Treviño)
e4a297887b
virtual-image: Use explicit list of cases in which we want to listen
...
Depending on the enum order is ok, but not really maintainable so better
to explicitly list the states we want to listen.
2021-02-22 19:09:11 +01:00
Marco Trevisan (Treviño)
6a62d32c81
goodix: Consume the retry errors during verify/identify reports
...
We should not pass such kind of errors to complete functions, or we'll
fail the identification without ability to retry immediately.
2021-01-29 20:02:15 +01:00
Marco Trevisan (Treviño)
b2a64cc980
virtual-device: Do actual errors codes checks instead of regex checks
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
88117c172e
tests/virtual-device: Add enroll and verify script test
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
27a62443a1
virtual-device: Add SET_KEEP_ALIVE command, to keep the listener up
...
We may want to be able to talk with the device while it's closed to
queue commands to be performed once it opens (could be even a script),
so to do this we need to close the device first, send those commands and
eventually process them.
We used a trick to send an invalid command before that was ignored by
release, but having the device available is just easier to handle.
So, when keep alive is enabled we don't stop the listener when closing
but only on actual device disposition.
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
2f7c78eb97
virtual-device: Make possible to use a script to perform enroll operations
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
74f8a8ee27
virtual-device: Handle cancelled state gracefully in should_wait_to_sleep
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
acd0a10e76
virtual-device: Add test that open fails with a busy error if is still ongoing
...
The idea of the test was just checking what happens when we're opening a
device multiple times while a first request is still going.
However, it actually ends up also checking the previous commit change
because without it we'd stop the close iteration before the device is
actually closed and stop the open iteration before the device is
actually opened, leading to an infinite loop.
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
27c2466bda
fpi-device: Mark the device as open and notify it on idle callback
...
We're delaying any completed operation until we've completed an idle,
but the open/close state is changed and notified as soon as the device
completes the operation.
While this can be true, it means that we notify earlier than the finish
callback is actually called, while iterations are still needed to get
the actual state completed, and the current_task reset.
So if we'd open/close and iterate till fp_device_is_open() returns TRUE
we'd end up in a state in which the device is marked as ready, but it's
actually still busy since it's priv->current_task isn't unset yet.
The same if we'd try to do any action on notify::opened.
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
33ba248c44
virtual-device: Add test checking for early errors during dev API calls
2021-01-28 15:49:22 +01:00
Marco Trevisan (Treviño)
43cf28b9da
fp-device: Do not try to deference potentially NULL task data
...
In case we do an early error return in verify and identify calls we
do not initialize the task data, but still in the finish functions we
still try to use it.
Avoid doing this, but just nullify the returned values.
2021-01-28 15:39:48 +01:00
Marco Trevisan (Treviño)
4da52f78f6
virtual-device: Check properties match the getters
2021-01-28 15:39:48 +01:00
Marco Trevisan (Treviño)
e4e0937848
tests/virtual-*: Check for enrolled prints properties
2021-01-28 15:39:48 +01:00
Marco Trevisan (Treviño)
25a6c916aa
fp-device: Fix property getters for enroll stages and driver ID
...
We were returning an invalid type for the enroll stages, while trying to
get the class from the private instance for the device driver
2021-01-28 15:39:48 +01:00
Marco Trevisan (Treviño)
51009b48a0
virtual-device: Process supported commands on device open
...
When opening the device we can process commands that we left for that
after the previous close, to do that we only have to inject an invalid
command that will be processed (and ignored) while closing, so that at
next device opening we will be able to proceed with the previously
sent commands.
Add tests to finally check this case!
2021-01-28 15:39:48 +01:00
Marco Trevisan (Treviño)
e1e3f6955e
virtual-device: Remove messages we can't process from queue when not scanning
...
Commands that are not valid for non-scan operations should be removed
from queue, or these may be re-proposed forever.
2021-01-28 15:38:57 +01:00
Marco Trevisan (Treviño)
c495b82000
virtual-device: Use python's with idiom to check GLib expected error messages
...
And we can properly provide a real traceback as well
2021-01-28 15:38:56 +01:00
Marco Trevisan (Treviño)
d90ee96df8
virtual-device: Return an duplicated data error if trying to re-enroll a print
2021-01-28 15:38:56 +01:00
Marco Trevisan (Treviño)
36304b736b
tests/virtual-device: Properly handle exceptions on enroll callback
...
We need to get them back to the caller function to be caught by the test
suite.
2021-01-28 15:38:29 +01:00
Marco Trevisan (Treviño)
31e34bd4bd
virtual-device: Emit data not found during verify/identify
...
If trying to identify a print not in the storage we emit data not found
error, this can be helpful to do further fprintd testing too
2021-01-28 15:38:29 +01:00
Marco Trevisan (Treviño)
ec4c7ca5a9
virtual-device-storage: Don't listed prints
2021-01-28 02:32:28 +01:00
Marco Trevisan (Treviño)
c4069065f9
virtual-device: Ensure we've an error before dereferencing it
2021-01-26 16:54:14 +01:00
Marco Trevisan (Treviño)
31541edc58
tests/virtual-device: Use a sleep multiplier when under valgrind
2021-01-26 16:54:14 +01:00
Marco Trevisan (Treviño)
549718753f
fpi-device: Fix argument name on report_finger_status() annotation
2021-01-26 16:54:14 +01:00
Marco Trevisan (Treviño)
cfde050220
virtual-device: Add ability to close a device with delay or with error
2021-01-26 16:54:14 +01:00
Marco Trevisan (Treviño)
88a38c38af
virtual-device: Add support for sleeping and sending errors on list and delete
2021-01-26 16:54:14 +01:00
Marco Trevisan (Treviño)
7ffcc2f9e7
virtual-device: Make possible to inject sleep events while verifying/identifying
...
Each command should be separated by SLEEP to be considered as something
we want to perform during the current operation, otherwise will be used
by next operation consuming it.
2021-01-26 16:53:24 +01:00
Marco Trevisan (Treviño)
1dae6796f7
virtual-device: Report finger presency when we receive a 'SCAN' event
2021-01-26 04:49:50 +01:00
Marco Trevisan (Treviño)
0bb0492025
virtual-device: Mark finger as needed only after we start scanning
...
In case we sent a sleep event to the device we may want to wait it to
emit the finger needed state before the timeout is completed.
So add a function to manage this for all the scan cases
2021-01-26 04:49:50 +01:00
Marco Trevisan (Treviño)
3db0858fb0
tests/virtual-device: Add a class function to wait for a timeout
2021-01-26 04:49:50 +01:00
Marco Trevisan (Treviño)
2382506491
virtual-device: Add checks for verify reports
2021-01-26 04:49:50 +01:00
Marco Trevisan (Treviño)
3693c39bc5
virtual-device: Make cancellation support toggable
...
We may want to have the device to sleep while releasing an operation,
this will allow to do it.
2021-01-25 17:40:49 +01:00
Marco Trevisan (Treviño)
993109a7f8
virtual-device: Implement cancel vfunc, to stop timeouts
2021-01-25 17:40:49 +01:00
Marco Trevisan (Treviño)
18db20d160
virtual-device: Add support for sleep command
...
It can be used to delay operations, simulating a busy device.
2021-01-25 17:40:48 +01:00
Marco Trevisan (Treviño)
89b4c4ee75
virtual-device: Test unplug operation while we're verifying
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
153b24a95a
virtual-device: Use identify function for verify tests when possible
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
8c45c0952e
virtual-device: Split verify check function in two parts to be reusable
...
We can so inject further operations in the middle, such as for the
finger status check
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
c3ece8621d
virtual-device: Implement UNPLUG operation
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
67cb61cc18
tests/virtual-device: Add identification tests
...
Reusing most of the logic of the `check_verify` utility function
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
33ffadf402
tests/virtual-device: Cleanup device storage on teardown
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
162a83e484
tests/virtual-device: Add ability to enroll with a retry step and test it
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
dfb27222eb
tests/virtual-device: Add function that figures out the command from type
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
81e53c422d
virtual-device: Add support for changing the device scan type
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
be0b4ae2bb
tests/virtual-device: Trigger new scans when we got progress callback
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
56bcf1ffdd
virtual-device: Add command to change the number of enroll stages
...
As per this don't use the class value anymore at enroll phase, as it may
differ.
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
665de7813b
fpi-device: Ensure we're receiving a valid number of enroll stages
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
a291d17f26
virtual-device: Properly cleanup the virtual devices data
...
Ensure we call the parent finalize function and cleanup local data
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
e8886dbc6b
virtual-device: Support all the configured enrolling stages
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
3d6fb15b5c
virtual-device: Add API to change current finger status
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
43d0dfdd8f
virtual-device-storage: Set needed finger state on enroll and verify
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
50f522583e
virtual-device: Set needed finger state on enroll and verify
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
f0443ba2f3
virtual-device: Add support for reporting device Retry "errors"
2021-01-25 17:40:15 +01:00
Marco Trevisan (Treviño)
546f35132c
tests/virtual-device: Use FPrint.DeviceError values to send errors
2021-01-25 17:40:15 +01:00