From 0e993d92e2c8abc5c32fd04469182d010951771c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Mon, 10 Feb 2020 17:23:19 +0100 Subject: [PATCH] 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. --- src/device.c | 2 ++ tests/fprintd.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/device.c b/src/device.c index 68a0143..a4a6632 100644 --- a/src/device.c +++ b/src/device.c @@ -345,6 +345,8 @@ verify_result_to_name (gboolean match, GError *error) */ if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_PROTO)) return "verify-disconnect"; + else if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return "verify-no-match"; return "verify-unknown-error"; } diff --git a/tests/fprintd.py b/tests/fprintd.py index 1883f0d..f237eb1 100755 --- a/tests/fprintd.py +++ b/tests/fprintd.py @@ -527,6 +527,19 @@ class FPrintdVirtualDeviceTest(FPrintdTest): self.device.EnrollStop() self.wait_for_result(expected='enroll-failed') + def test_verify_stop_cancels(self): + self.device.Claim('(s)', 'testuser') + self.enroll_image('whorl') + self.device.VerifyStart('(s)', 'any') + self.device.VerifyStop() + self.wait_for_result(expected='verify-no-match') + + def test_verify_finger_stop_cancels(self): + self.device.Claim('(s)', 'testuser') + self.enroll_image('whorl', finger='left-thumb') + self.device.VerifyStart('(s)', 'left-thumb') + self.device.VerifyStop() + if __name__ == '__main__': if len(sys.argv) == 2 and sys.argv[1] == "list-tests":