diff --git a/libfprint/drivers/virtual-device.c b/libfprint/drivers/virtual-device.c index 6a321f64..6f83a057 100644 --- a/libfprint/drivers/virtual-device.c +++ b/libfprint/drivers/virtual-device.c @@ -164,7 +164,11 @@ process_cmds (FpDeviceVirtualDevice * self, /* If we are not scanning, then we have to stop here. */ if (!scan) - break; + { + g_warning ("Could not process command: %s", cmd); + g_ptr_array_remove_index (self->pending_commands, 0); + break; + } if (g_str_has_prefix (cmd, SCAN_CMD_PREFIX)) { diff --git a/tests/virtual-device.py b/tests/virtual-device.py index c8cae88e..941b30cd 100644 --- a/tests/virtual-device.py +++ b/tests/virtual-device.py @@ -556,6 +556,12 @@ class VirtualDevice(unittest.TestCase): self.assertFalse(self._verify_completed) self.cancel_verify() + # Since we don't really cancel here, next command will be passed to release + self._close_on_teardown = False + with GLibErrorMessage('libfprint-virtual_device', + GLib.LogLevelFlags.LEVEL_WARNING, 'Could not process command: SCAN *'): + self.dev.close_sync() + def test_device_sleep_before_completing_verify(self): enrolled = self.enroll_print('foo-print', FPrint.Finger.LEFT_RING)