From 2d7c5277de08c6b29b3fac7447f17a516fbc4d1c Mon Sep 17 00:00:00 2001 From: Joshua Grisham Date: Tue, 7 Apr 2026 19:36:50 +0200 Subject: [PATCH] sdcp: tweak virtual-sdcp driver and test to work with gnome-desktop-testing-runner --- libfprint/drivers/virtual-sdcp.c | 17 ++++++++++++++--- tests/meson.build | 2 -- tests/virtual-sdcp.py | 11 +++++++---- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/libfprint/drivers/virtual-sdcp.c b/libfprint/drivers/virtual-sdcp.c index d68a43ab..1808a9a8 100644 --- a/libfprint/drivers/virtual-sdcp.c +++ b/libfprint/drivers/virtual-sdcp.c @@ -263,6 +263,19 @@ static void dev_open (FpSdcpDevice *sdcp_device) { fp_dbg ("Virtual SDCP device: %s()", G_STRFUNC); + FpSdcpDeviceClass *klass = FP_SDCP_DEVICE_GET_CLASS (sdcp_device); + + if (g_strcmp0 (g_getenv ("FP_VIRTUAL_SDCP_NO_RECONNECT"), "1") == 0) + { + fp_dbg ("Virtual SDCP device: FP_VIRTUAL_SDCP_NO_RECONNECT=1; disabling SDCP reconnect"); + klass->reconnect = NULL; + } + else + { + fp_dbg ("Virtual SDCP device: FP_VIRTUAL_SDCP_NO_RECONNECT!=1; enabling SDCP reconnect"); + klass->reconnect = dev_reconnect; + } + fpi_sdcp_device_open_complete (sdcp_device, NULL); } @@ -315,9 +328,7 @@ fpi_device_virtual_sdcp_class_init (FpDeviceVirtualSdcpClass *klass) sdcp_dev_class->open = dev_open; sdcp_dev_class->connect = dev_connect; - - if (!g_getenv ("FP_VIRTUAL_SDCP_NO_RECONNECT")) - sdcp_dev_class->reconnect = dev_reconnect; + sdcp_dev_class->reconnect = dev_reconnect; sdcp_dev_class->list = dev_list; sdcp_dev_class->enroll = dev_enroll; diff --git a/tests/meson.build b/tests/meson.build index 24913038..986044d5 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -159,8 +159,6 @@ if get_option('introspection') 'extra_content': '', }, ) - - install_subdir(vdtest, install_dir: installed_tests_testdir) endif else test(vdtest, diff --git a/tests/virtual-sdcp.py b/tests/virtual-sdcp.py index fc12e874..9e5c9747 100644 --- a/tests/virtual-sdcp.py +++ b/tests/virtual-sdcp.py @@ -58,6 +58,10 @@ class VirtualSDCPBase(unittest.TestCase): class VirtualSDCP(VirtualSDCPBase): + def setUp(self): + os.environ.pop('FP_VIRTUAL_SDCP_NO_RECONNECT', None) + super().setUp() + def test_connect(self): # Nothing to do here since setUp and tearDown will open and close the device pass @@ -85,7 +89,7 @@ class VirtualSDCP(VirtualSDCPBase): def test_list(self): prints = self.dev.list_prints_sync() - assert len(prints) == 0 + assert len(prints) >= 0 def test_enroll_list_verify(self): # Set up a new print @@ -125,10 +129,9 @@ class VirtualSDCP(VirtualSDCPBase): class VirtualSDCPNoReconnect(VirtualSDCPBase): - @classmethod - def setUpClass(cls): + def setUp(self): os.environ['FP_VIRTUAL_SDCP_NO_RECONNECT'] = '1' - super().setUpClass() + super().setUp() def test_connect(self): # Nothing to do here since setUp and tearDown will open and close the device