mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-06-11 02:28:05 +00:00
Merge tag 'v1.94.3' into tod
2021-11-02: v1.94.3 release Highlights: * Ensure idle mainloop before completing enumeration (fprintd#119) * It is now possible to extend already enrolled prints * elanspi: Fix timeout error with some hardware (#438) * elanspi: Fix cancellation issues * goodixmoc: Return matching device print; fixes duplicate checking (#444) * goodixmoc: Support clearing the storage (usually unused) Git-EVTag-v0-SHA512: 779b560b97bc7da5972d9a4854be5b74f8d310a22ac782fde50fa02c869cf93cc11254d75519076ac8ee59f81c8a9fc0466030eb249519827343ab84eb45e640
This commit is contained in:
+123
-1
@@ -27,6 +27,7 @@
|
||||
#include "fpi-compat.h"
|
||||
#include "fpi-log.h"
|
||||
#include "test-device-fake.h"
|
||||
#include "fp-print-private.h"
|
||||
|
||||
#ifdef TEST_TOD_DRIVER
|
||||
|
||||
@@ -256,6 +257,16 @@ make_fake_print (FpDevice *device,
|
||||
return enrolled_print;
|
||||
}
|
||||
|
||||
static FpPrint *
|
||||
make_fake_nbis_print (FpDevice *device)
|
||||
{
|
||||
FpPrint *enrolled_print = fp_print_new (device);
|
||||
|
||||
fpi_print_set_type (enrolled_print, FPI_PRINT_NBIS);
|
||||
|
||||
return enrolled_print;
|
||||
}
|
||||
|
||||
static FpPrint *
|
||||
make_fake_print_reffed (FpDevice *device,
|
||||
GVariant *print_data)
|
||||
@@ -1193,7 +1204,6 @@ test_driver_enroll_error_no_print (void)
|
||||
out_print =
|
||||
fp_device_enroll_sync (device, fp_print_new (device), NULL, NULL, NULL, &error);
|
||||
|
||||
g_test_assert_expected_messages ();
|
||||
g_assert (fake_dev->last_called_function == dev_class->enroll);
|
||||
g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_GENERAL);
|
||||
g_assert_null (out_print);
|
||||
@@ -1201,6 +1211,111 @@ test_driver_enroll_error_no_print (void)
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
test_driver_enroll_update_nbis (void)
|
||||
{
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(FpAutoResetClass) dev_class = auto_reset_device_class ();
|
||||
g_autoptr(FpAutoCloseDevice) device = NULL;
|
||||
g_autoptr(FpPrint) template_print = NULL;
|
||||
FpiDeviceFake *fake_dev = NULL;
|
||||
FpPrint *out_print = NULL;
|
||||
|
||||
dev_class->features |= FP_DEVICE_FEATURE_UPDATE_PRINT;
|
||||
device = auto_close_fake_device_new ();
|
||||
fake_dev = FPI_DEVICE_FAKE (device);
|
||||
|
||||
template_print = make_fake_nbis_print (device);
|
||||
fake_dev->ret_print = template_print;
|
||||
|
||||
out_print =
|
||||
fp_device_enroll_sync (device, template_print, NULL, NULL, NULL, &error);
|
||||
|
||||
g_assert (fake_dev->last_called_function == dev_class->enroll);
|
||||
g_assert (fake_dev->action_data == template_print);
|
||||
|
||||
g_assert_no_error (error);
|
||||
g_assert (out_print == template_print);
|
||||
}
|
||||
|
||||
static void
|
||||
test_driver_enroll_update_nbis_wrong_device (void)
|
||||
{
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(FpAutoResetClass) dev_class = auto_reset_device_class ();
|
||||
g_autoptr(FpAutoCloseDevice) device = NULL;
|
||||
g_autoptr(FpPrint) template_print = NULL;
|
||||
FpiDeviceFake *fake_dev = NULL;
|
||||
FpPrint *out_print = NULL;
|
||||
|
||||
dev_class->features |= FP_DEVICE_FEATURE_UPDATE_PRINT;
|
||||
|
||||
device = auto_close_fake_device_new ();
|
||||
fake_dev = FPI_DEVICE_FAKE (device);
|
||||
|
||||
template_print = make_fake_nbis_print (device);
|
||||
template_print->device_id = g_strdup ("wrong_device");
|
||||
fake_dev->ret_print = template_print;
|
||||
|
||||
out_print =
|
||||
fp_device_enroll_sync (device, template_print, NULL, NULL, NULL, &error);
|
||||
|
||||
g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_INVALID);
|
||||
g_assert (out_print == NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
test_driver_enroll_update_nbis_wrong_driver (void)
|
||||
{
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(FpAutoResetClass) dev_class = auto_reset_device_class ();
|
||||
g_autoptr(FpAutoCloseDevice) device = NULL;
|
||||
g_autoptr(FpPrint) template_print = NULL;
|
||||
FpiDeviceFake *fake_dev = NULL;
|
||||
FpPrint *out_print = NULL;
|
||||
|
||||
dev_class->features |= FP_DEVICE_FEATURE_UPDATE_PRINT;
|
||||
|
||||
device = auto_close_fake_device_new ();
|
||||
fake_dev = FPI_DEVICE_FAKE (device);
|
||||
|
||||
template_print = make_fake_nbis_print (device);
|
||||
template_print->driver = g_strdup ("wrong_driver");
|
||||
fake_dev->ret_print = template_print;
|
||||
|
||||
out_print =
|
||||
fp_device_enroll_sync (device, template_print, NULL, NULL, NULL, &error);
|
||||
|
||||
g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_INVALID);
|
||||
g_assert (out_print == NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
test_driver_enroll_update_nbis_missing_feature (void)
|
||||
{
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(FpAutoResetClass) dev_class = auto_reset_device_class ();
|
||||
g_autoptr(FpAutoCloseDevice) device = NULL;
|
||||
g_autoptr(FpPrint) template_print = NULL;
|
||||
FpiDeviceFake *fake_dev = NULL;
|
||||
FpPrint *out_print = NULL;
|
||||
|
||||
device = auto_close_fake_device_new ();
|
||||
fake_dev = FPI_DEVICE_FAKE (device);
|
||||
|
||||
template_print = make_fake_nbis_print (device);
|
||||
fake_dev->ret_print = template_print;
|
||||
|
||||
out_print =
|
||||
fp_device_enroll_sync (device, template_print, NULL, NULL, NULL, &error);
|
||||
|
||||
g_assert (fake_dev->last_called_function == dev_class->open);
|
||||
g_assert (fake_dev->action_data == NULL);
|
||||
|
||||
g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_INVALID);
|
||||
g_assert (out_print == NULL);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gint completed_stages;
|
||||
@@ -3530,6 +3645,13 @@ main (int argc, char *argv[])
|
||||
g_test_add_func ("/driver/enroll/error", test_driver_enroll_error);
|
||||
g_test_add_func ("/driver/enroll/error/no_print", test_driver_enroll_error_no_print);
|
||||
g_test_add_func ("/driver/enroll/progress", test_driver_enroll_progress);
|
||||
g_test_add_func ("/driver/enroll/update_nbis", test_driver_enroll_update_nbis);
|
||||
g_test_add_func ("/driver/enroll/update_nbis_wrong_device",
|
||||
test_driver_enroll_update_nbis_wrong_device);
|
||||
g_test_add_func ("/driver/enroll/update_nbis_wrong_driver",
|
||||
test_driver_enroll_update_nbis_wrong_driver);
|
||||
g_test_add_func ("/driver/enroll/update_nbis_missing_feature",
|
||||
test_driver_enroll_update_nbis_missing_feature);
|
||||
g_test_add_func ("/driver/verify", test_driver_verify);
|
||||
g_test_add_func ("/driver/verify/fail", test_driver_verify_fail);
|
||||
g_test_add_func ("/driver/verify/retry", test_driver_verify_retry);
|
||||
|
||||
Reference in New Issue
Block a user