From 4f4b0d5f11bfd251ef343b18ebd7ca1166558baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 2 Apr 2021 00:08:22 +0200 Subject: [PATCH] tests/fprintd: Check that garbage collecting works on duplicated print --- tests/fprintd.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/fprintd.py b/tests/fprintd.py index 6eb6b48..b3366d9 100644 --- a/tests/fprintd.py +++ b/tests/fprintd.py @@ -966,6 +966,38 @@ class FPrintdVirtualStorageDeviceTests(FPrintdVirtualStorageDeviceBaseTest): garbage_collect.pop() self.assertEqual(set(prints), set(garbage_collect + list(enrolled_prints.keys()))) + def test_garbage_collect_on_duplicate(self): + self._maybe_reduce_enroll_stages(stages=1) + self.send_command('INSERT', 'stored-print') + self.device.Release() + self.device.Claim('(s)', 'testuser') + + self.assertEqual(self.get_stored_prints(), ['stored-print']) + self.device.EnrollStart('(s)', 'right-thumb') + self.send_image('stored-print') # During identify + self.wait_for_result('enroll-stage-passed') + self.assertFalse(self.get_stored_prints()) + + self.send_image('stored-print') + self.wait_for_result('enroll-completed') # During enroll + self.assertEqual(self.get_stored_prints(), ['stored-print']) + self.device.EnrollStop() + + def test_garbage_collect_failed_on_duplicate(self): + self._maybe_reduce_enroll_stages(stages=1) + self.send_command('INSERT', 'stored-print') + self.device.Release() + self.device.Claim('(s)', 'testuser') + + self.assertEqual(self.get_stored_prints(), ['stored-print']) + self.device.EnrollStart('(s)', 'right-thumb') + self.send_image('stored-print') # During identify + self.send_error(FPrint.DeviceError.PROTO) # During garbage collecting + self.wait_for_result('enroll-duplicate') + self.assertEqual(self.get_stored_prints(), ['stored-print']) + + self.device.EnrollStop() + def test_delete(self): # We expect collection in this order garbage_prints = [