From dd0f15bf02379e7efcdc8c1bdbd9a3c6861aa08c Mon Sep 17 00:00:00 2001 From: Ge-org Brohammer Date: Mon, 31 Aug 2026 19:52:50 +0200 Subject: [PATCH] tests/realtek: Cover duplicate enrollment errors Extend the 2541:fa03 storage-error fixture to enroll the same finger twice and assert FP_DEVICE_ERROR_DATA_DUPLICATE, reusing the device session the delete test already opened rather than starting a second one. Compact redundant polling transactions while preserving the recorded protocol state changes. --- tests/realtek-storage-errors/custom.pcapng | Bin 6524 -> 42036 bytes tests/realtek-storage-errors/custom.py | 36 +++++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/tests/realtek-storage-errors/custom.pcapng b/tests/realtek-storage-errors/custom.pcapng index d029c041d684a86ddcb3a0737865d5fe8bffe2a5..529633f7dfea246ede5e3985621fb669e2f17b46 100644 GIT binary patch literal 42036 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 KuwmoZ^AZ3N