Marco Trevisan (Treviño)
072fbc2b46
tests_fprintd_utils: Print the process output when done
...
This is particularly useful when using valgrind or address sanitizer to read
the output log
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
7846359b65
test_fprintd_utils: De-duplicate utilities launching
...
Avoid repeating the same operation to launch the utilities all the times,
but provide instead a function that allows to start a process and saves its
output without having to handle this in every test.
Simplify the operation when we just want the final output, still reusing
the same code.
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
08339a0648
tests/fprintd: Skip some tests in CI depending on permissions
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
3dd10b4b37
tests/fprind: Check that device is released when Caller operation is done
...
Add support to run fprintd-utils to test fprint daemon, and ensure that a
device is released and its operation cancelled once a caller goes away.
Related to https://gitlab.freedesktop.org/libfprint/fprintd/issues/37
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
bee2e154b1
tests/fprintd: Ensure that other clients can't interfere with claimer
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
27f0b64d03
tests/fprintd: Add tests for verification through finger id
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
f4ee2f86a3
device: Throw NoEnrolledPrints on missing finger in gallery
...
Throw a NoEnrolledPrints error if the requested finger isn't present
in the gallery.
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
04829ed39f
tests/fprintd: Check that we can't mix Enroll and Verify operations
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
756a80a63e
tests/fprintd: Ensure we throw NoActionInProgress on *Stop()
2020-03-17 17:14:35 +01:00
Marco Trevisan (Treviño)
b861500a9f
device: Throw AlreadyInUse error if stopping an enroll during verification
...
When starting an enroll when verification is in progress (and vice-versa) we
emit an AlreadyInUse error, however when calling VerifyStop() during an
enrollment (and vice-versa) we just return a NoActionInProgress error, which
is not the case.
So let's be consistent and change the error type.
2020-03-17 17:14:33 +01:00
Marco Trevisan (Treviño)
154d0c0373
device: Use proper function name in debug
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
b2cdc1ed1e
tests/fprint: Check current API user permissions
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
ab47e03f05
tests/fprintd: Ensure device open is correctly handled
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
f92801a15c
tests/fprintd: Ensure that verify fails on storage read failure
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
086ceb98ab
tests/fprintd: Ensure enroll fails on storage save failure
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
8bdbc7e2b0
tests/fprintd: Ensure that we can't verify without enrolled fingers
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
1f8bb1abd4
tests/fprintd: Ensure that devices are available on name appeared
...
Given we don't support adding devices after we created the manager (yet) we
must ensure that once the name appeared we have them all
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
47d55a97c4
tests/fprintd: Add tests for Manager methods
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
657b90a066
tests/fprintd: Move assertFprintError to FPrintdTest
...
This may be used by any class inheriting FPrintdTest, so let's move it at
lower level.
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
3821b96ca5
tests/fprintd: Only enable 'virtual_image' driver
...
When we run tests in a system with real devices, we may try to initialize
the real ones, while we can just ignore them all in tests.
We do it in setUp instead of setUpClass to allow tests to change this if
they need to, but just for temporary.
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
22ad9b5ae8
tests/fprintd: Check all the error types during verify/enroll
...
Ensure that we properly handle all the errors that a driver may return us
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
2ddc8a86a2
tests/fprind: Add verify retry tests for all the cases
...
The tests are repeated for both verify and identify actions
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
930cae4647
tests/fprind: Add enroll retry tests for all the cases
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
5e9624bef5
device: Fix verify-disconnected state name
...
Respect protocol, and use proper name
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
efac52d94f
device: Fix retry enroll error names
...
Use proper names for enroll retry errors, fixing a copy/paste error from the
verify code.
2020-03-17 17:10:17 +01:00
Marco Trevisan (Treviño)
af18aa35e5
tests/fprintd: Add tests to verify permissions on prints management
2020-03-17 17:10:16 +01:00
Marco Trevisan (Treviño)
0d7a703200
tests/fprintd: Split claimed device tests to a single class
...
Avoid doing fo reach test the Claim/Release procedure manually if it is just
a prerequisite for the test.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
ad19c49e2e
tests/fprintd: Move tests which need a claimed device
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
a8de1003a4
tests/fprintd: Use addCleanup to always terminate daemons
...
Ensure that the daemons are always terminated after each test, even on
failure, so that we don't have to do hacks such as always trying to stop
them
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
cefe939141
tests/fprintd: Use addCleanup to ensure we remove the test dir
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
24cd986476
tests/fprintd: Use GTestDBus unset to undefine envs
...
Unset the dbus environment that may affect the dbus tests using GTestDBus
utility, instead of doing it manually.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
06480c7994
tests/fprintd: Use a new bus for each test unit
...
When creating a new unit we used to get the system bus via Gio.bus_get_sync,
however this has a singleton implementation, and so would always return the
same connection, creating issues in tests when a new test suite is added
because the newly got connection would be already closed.
So, just manually create a new bus connection, also close the bus and
cleanup the test bus in dbus.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
b2ad590891
tests/fprintd: Call the super class on setup
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
85aad7bb01
tests/fprintd: Remove usage of never-used self.client variable
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
0fb4f3b021
tests/fprintd: Cleanup the client proxies on tearDown
...
Ensure we nullify them when the test is done.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
21564885ea
tests/fprintd: Do the parent tearDown after we've done our stuff
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
6064e30200
tests/fprintd: Remove the force-exit timeout
...
Since we rely on meson now to do this, we don't need to have manual
management of the timeout
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
fd8297306c
tests/fprintd: Ensure that we get an error on early release
...
Ensure that we get an error when releasing a device that is in process of
enrollment, verification or identification
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
e7f804e9fc
device: Cancel the ongoing operation when releasing the device
...
If a device is currently verifying, identifying or enrolling we may want the
user to stop the operation before we actually release the device.
Otherwise we may end-up in trying to close (failing) the internal device,
while fprintd is still considering the device active, causing a dead-lock
(the device can't be released, but neither claimed again or stop the current
action).
In fact calling Claim() -> EnrollStart() -> Release(), we would fail with
the error
net.reactivated.Fprint.Error.Internal:
Release failed with error: The device is still busy with another
operation, please try again later. (36)"
However, if we try to call VerifyStop, after this error, we'd fail because
for the fprintd logic, the device is not claimed anymore, but actually
closed, and we'd need to claim it again, but... That would still cause an
internal error.
To avoid this, in case Relase() is called cancel the ongoing operation,
and wait until it's done before completing the release call.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
0e993d92e2
device: Return 'verify-no-match' on cancelled verification
...
We were returning a 'verify-unknown-error' while we actually know what
happened, so better to return a soft operation failure.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
b312a5e540
device: Return 'enroll-failed' on cancelled enrollment
...
We were returning an 'enroll-unknown-error' while we actually know what
happened, so better to return a soft operation failure.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
c12778ec5b
tests/fprintd: Verify that each enroll stage happens
...
Instead of automatically replying with the 'whorl' image for every enroll
state signal with result 'enroll-stage-passed', only perform the number
of required enroll stages and ensure that we get the expected results.
This also will allow to manually perform enroll steps in other tests.
2020-03-17 17:09:19 +01:00
Marco Trevisan (Treviño)
dbabd4d7d3
tests/fprintd: Deduplicate enrollment code
2020-03-17 15:54:14 +01:00
Marco Trevisan (Treviño)
db1865eb3e
tests/fprintd: Deduplicate result wait code
2020-03-17 15:49:40 +01:00
Bastien Nocera
10a3e75937
ci: Fix unknown keys in CI
...
Fix:
root config contains unknown keys: container_fedora_build
2020-03-17 15:31:08 +01:00
Bastien Nocera
01ea517a97
ci: Fix CI syntax error
...
Fix CI syntax error:
container_fedora_build: unknown keys in `extends` (.fedora@container-build)
Caused by changes in the wayland CI templates:
4a73f030d0
2020-03-17 15:29:37 +01:00
Bastien Nocera
3a98ef646b
ci: Re-enable stable branch
...
Now that libfprint v2 has landed in rawhide.
2020-02-19 13:07:27 +01:00
Marco Trevisan (Treviño)
750a815fdf
ci: Use extends to repeat libfprint builds
...
This syntax is just nicer and more maintainable than the YAML anchors
2020-02-18 14:08:32 +01:00
Marco Trevisan (Treviño)
53fcf52989
ci: Factorize the similar parameters in build jobs
2020-02-18 14:06:32 +01:00
Marco Trevisan (Treviño)
52e12459df
main: Improve comments on fprint manager creation
...
Explain why the manager creation is async better in both in the main file
and in the manager itself
2020-02-14 16:01:01 +01:00