0dcb4be4d3
And update instructions for the simpler method. |
||
---|---|---|
.. | ||
aes3500 | ||
egis0570 | ||
elan | ||
elanmoc | ||
elanspi | ||
goodixmoc | ||
nb1010 | ||
synaptics | ||
upektc_img | ||
vfs0050 | ||
vfs301 | ||
vfs5011 | ||
vfs7552 | ||
capture.py | ||
create-driver-test.py.in | ||
hwdb-check-unsupported.py | ||
meson.build | ||
README.md | ||
test-device-fake.c | ||
test-device-fake.h | ||
test-fp-context.c | ||
test-fp-device.c | ||
test-fpi-assembling.c | ||
test-fpi-device.c | ||
test-fpi-ssm.c | ||
test-generated-hwdb.sh | ||
test-utils.c | ||
test-utils.h | ||
umockdev-test.py | ||
unittest_inspector.py | ||
valgrind-python.supp | ||
virtual-device.py | ||
virtual-image.py |
umockdev
Tests
umockdev
tests use fingerprint devices mocked by umockdev
toolchain.
This document describes how to create a 'capture' test: a test that
captures a picture of a fingerprint from the device (mocked by
umockdev
) and compares it with the standard one.
Other kinds of umockdev
tests can be created in a similar manner. For
match-on-chip devices you would instead create a test specific custom.py
script, capture it and store the capture to custom.pcapng
.
'Capture' Test Creation
A new 'capture' test is created by means of capture.py
script:
-
Make sure that libfprint is built with support for the device driver that you want to capture a test case for.
-
From the build directory, run tests/create-driver-test.py as root. Note that if you're capturing data for a driver which already has a test case but the hardware is slightly different, you might want to pass a variant name as a command-line options, for example:
$ sudo tests/create-driver-test.py version2
-
If the capture is not successful, run the tool again to start another capture.
-
Add driver test name to
drivers_tests
in themeson.build
, as instructed, and change the ownership of the just-created test directory in the source. -
Check whether
meson test
passes with this new test.
Note. To avoid submitting a real fingerprint, the side of finger, arm, or anything else producing an image with the device can be used.
Possible Issues
Other changes may be needed to get everything working. For example the
elan
driver relies on a timeout that is not reported correctly. In
this case the driver works around it by interpreting the protocol
error differently in the virtual environment (by means of
FP_DEVICE_EMULATION
environment variable).