tests: Repeat tests for TOD drivers compiled for each supported version

This commit is contained in:
Marco Trevisan (Treviño)
2021-09-04 03:10:08 +02:00
parent 4a337393a6
commit 125d6e276f
16 changed files with 49 additions and 49 deletions
+7 -6
View File
@@ -248,13 +248,11 @@ if get_option('tod')
tod_envs.prepend('LD_LIBRARY_PATH', tod_envs.prepend('LD_LIBRARY_PATH',
meson.build_root() / 'libfprint', meson.build_root() / 'libfprint',
meson.build_root() / 'libfprint' / 'tod') meson.build_root() / 'libfprint' / 'tod')
tod_subversion = meson.project_version().split('+tod')[0]
tod_c_args = [ tod_c_args = [
'-DTEST_TOD_DRIVER=1', '-DTEST_TOD_DRIVER=1',
'-DTOD_CURRENT_VERSION=@0@'.format(tod_soversion), '-DTOD_CURRENT_VERSION=@0@'.format(tod_soversion),
'-DTOD_CURRENT_SUBVERSION="@0@.@1@"'.format( '-DTOD_CURRENT_SUBVERSION="@0@"'.format(tod_subversion),
meson.project_version().split('.')[0],
meson.project_version().split('.')[1],
),
] ]
fake_driver = shared_module('device-fake-tod-driver', fake_driver = shared_module('device-fake-tod-driver',
@@ -314,8 +312,11 @@ if get_option('tod')
if host_machine.cpu_family() == 'x86_64' if host_machine.cpu_family() == 'x86_64'
tod_test_versions = [ tod_test_versions = [
'v1+1.90', 'v1+1.90.1',
'v1+1.94', 'v1+1.90.2',
'v1+1.90.3',
'v1+1.90.5',
'v1+1.94.0',
] ]
foreach tod_version: tod_test_versions foreach tod_version: tod_test_versions
+42 -43
View File
@@ -116,19 +116,18 @@ tod_check_version (FpDeviceClass *device_class,
return TRUE; return TRUE;
versions = g_strsplit (sub_version, ".", -1); versions = g_strsplit (sub_version, ".", -1);
g_assert_cmpuint (g_strv_length (versions), ==, 2); g_assert_cmpuint (g_strv_length (versions), ==, 3);
wanted_versions = g_strsplit (tod_subversion, ".", -1); wanted_versions = g_strsplit (tod_subversion, ".", -1);
g_assert_cmpuint (g_strv_length (wanted_versions), ==, 2); g_assert_cmpuint (g_strv_length (wanted_versions), ==, 3);
if (atoi (wanted_versions[0]) > atoi (versions[0])) if (atoi (versions[0]) >= atoi (wanted_versions[0]) &&
return FALSE; atoi (versions[1]) > atoi (wanted_versions[1]))
return TRUE;
if (atoi (wanted_versions[1]) > atoi (versions[1]))
return FALSE;
return TRUE;
return atoi (versions[0]) == atoi (wanted_versions[0]) &&
atoi (versions[1]) == atoi (wanted_versions[1]) &&
atoi (versions[2]) >= atoi (wanted_versions[2]);
#endif #endif
return TRUE; return TRUE;
} }
@@ -634,9 +633,9 @@ test_driver_features_probe_updates (void)
FpDeviceClass *dev_class = FP_DEVICE_GET_CLASS (device); FpDeviceClass *dev_class = FP_DEVICE_GET_CLASS (device);
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
if (!tod_check_device_version (device, 1, "1.92")) if (!tod_check_device_version (device, 1, "1.92.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.92"); g_test_skip ("Feature not supported by TODv1 versions before 1.92.0");
return; return;
} }
@@ -693,7 +692,7 @@ test_driver_initial_features (void)
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE);
if (tod_check_device_version (device, 1, "1.92")) if (tod_check_device_version (device, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -710,7 +709,7 @@ test_driver_initial_features (void)
g_assert_true (fp_device_has_feature (device, FP_DEVICE_FEATURE_STORAGE)); g_assert_true (fp_device_has_feature (device, FP_DEVICE_FEATURE_STORAGE));
g_assert_true (fp_device_has_feature (device, FP_DEVICE_FEATURE_STORAGE_LIST)); g_assert_true (fp_device_has_feature (device, FP_DEVICE_FEATURE_STORAGE_LIST));
g_assert_true (fp_device_has_feature (device, FP_DEVICE_FEATURE_STORAGE_DELETE)); g_assert_true (fp_device_has_feature (device, FP_DEVICE_FEATURE_STORAGE_DELETE));
if (tod_check_device_version (device, 1, "1.92")) if (tod_check_device_version (device, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -723,7 +722,7 @@ test_driver_initial_features (void)
FP_DEVICE_FEATURE_STORAGE | FP_DEVICE_FEATURE_STORAGE |
FP_DEVICE_FEATURE_STORAGE_LIST | FP_DEVICE_FEATURE_STORAGE_LIST |
FP_DEVICE_FEATURE_STORAGE_DELETE | FP_DEVICE_FEATURE_STORAGE_DELETE |
(tod_check_device_version (device, 1, "1.92") ? (tod_check_device_version (device, 1, "1.92.0") ?
FP_DEVICE_FEATURE_STORAGE_CLEAR : 0)); FP_DEVICE_FEATURE_STORAGE_CLEAR : 0));
} }
@@ -771,7 +770,7 @@ test_driver_initial_features_no_capture (void)
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE);
if (tod_check_version (dev_class, 1, "1.92")) if (tod_check_version (dev_class, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -795,7 +794,7 @@ test_driver_initial_features_no_verify (void)
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE);
if (tod_check_version (dev_class, 1, "1.92")) if (tod_check_version (dev_class, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -819,7 +818,7 @@ test_driver_initial_features_no_identify (void)
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE);
if (tod_check_version (dev_class, 1, "1.92")) if (tod_check_version (dev_class, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -843,7 +842,7 @@ test_driver_initial_features_no_storage (void)
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST);
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE);
if (tod_check_version (dev_class, 1, "1.92")) if (tod_check_version (dev_class, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -864,13 +863,13 @@ test_driver_initial_features_no_list (void)
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_IDENTIFY); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_IDENTIFY);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_VERIFY); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_VERIFY);
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_DUPLICATES_CHECK); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_DUPLICATES_CHECK);
if (tod_check_version (dev_class, 1, "1.92")) if (tod_check_version (dev_class, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE);
if (tod_check_version (dev_class, 1, "1.92")) if (tod_check_version (dev_class, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -894,7 +893,7 @@ test_driver_initial_features_no_delete (void)
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE);
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_LIST);
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_DELETE);
if (tod_check_version (dev_class, 1, "1.92")) if (tod_check_version (dev_class, 1, "1.92.0"))
g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_true (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
else else
g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR); g_assert_false (dev_class->features & FP_DEVICE_FEATURE_STORAGE_CLEAR);
@@ -2134,9 +2133,9 @@ test_driver_identify_suspend_continues (void)
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
FpPrint *expected_matched; FpPrint *expected_matched;
if (!tod_check_version (dev_class, 1, "1.94")) if (!tod_check_version (dev_class, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -2206,9 +2205,9 @@ test_driver_identify_suspend_succeeds (void)
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
FpPrint *expected_matched; FpPrint *expected_matched;
if (!tod_check_version (dev_class, 1, "1.94")) if (!tod_check_version (dev_class, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -2274,9 +2273,9 @@ test_driver_identify_suspend_busy_error (void)
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
FpPrint *expected_matched; FpPrint *expected_matched;
if (!tod_check_version (dev_class, 1, "1.94")) if (!tod_check_version (dev_class, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -2337,9 +2336,9 @@ test_driver_identify_suspend_while_idle (void)
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
if (!tod_check_version (dev_class, 1, "1.94")) if (!tod_check_version (dev_class, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -2387,9 +2386,9 @@ test_driver_identify_warmup_cooldown (void)
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
gint64 start_time; gint64 start_time;
if (!tod_check_version (dev_class, 1, "1.94")) if (!tod_check_version (dev_class, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -2691,9 +2690,9 @@ test_driver_clear_storage (void)
FpiDeviceFake *fake_dev = FPI_DEVICE_FAKE (device); FpiDeviceFake *fake_dev = FPI_DEVICE_FAKE (device);
gboolean ret; gboolean ret;
if (!tod_check_device_version (device, 1, "1.92")) if (!tod_check_device_version (device, 1, "1.92.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.92"); g_test_skip ("Feature not supported by TODv1 versions before 1.92.0");
return; return;
} }
@@ -2712,9 +2711,9 @@ test_driver_clear_storage_error (void)
FpiDeviceFake *fake_dev = FPI_DEVICE_FAKE (device); FpiDeviceFake *fake_dev = FPI_DEVICE_FAKE (device);
gboolean ret; gboolean ret;
if (!tod_check_device_version (device, 1, "1.92")) if (!tod_check_device_version (device, 1, "1.92.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.92"); g_test_skip ("Feature not supported by TODv1 versions before 1.92.0");
return; return;
} }
@@ -2824,9 +2823,9 @@ test_driver_critical (void)
void (*orig_verify) (FpDevice *device) = dev_class->verify; void (*orig_verify) (FpDevice *device) = dev_class->verify;
FpiDeviceFake *fake_dev = FPI_DEVICE_FAKE (device); FpiDeviceFake *fake_dev = FPI_DEVICE_FAKE (device);
if (!tod_check_device_version (device, 1, "1.94")) if (!tod_check_device_version (device, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -3038,9 +3037,9 @@ test_driver_action_is_cancelled_open (void)
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
if (!tod_check_version (dev_class, 1, "1.94")) if (!tod_check_version (dev_class, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -3064,9 +3063,9 @@ test_driver_action_internally_cancelled_open (void)
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
FpiDeviceFake *fake_dev; FpiDeviceFake *fake_dev;
if (!tod_check_version (dev_class, 1, "1.94")) if (!tod_check_version (dev_class, 1, "1.94.0"))
{ {
g_test_skip ("Feature not supported by TODv1 versions before 1.94"); g_test_skip ("Feature not supported by TODv1 versions before 1.94.0");
return; return;
} }
@@ -3219,7 +3218,7 @@ test_driver_action_error_all (void)
g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_INVALID); g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_INVALID);
g_clear_error (&error); g_clear_error (&error);
if (tod_check_device_version (device, 1, "1.92")) if (tod_check_device_version (device, 1, "1.92.0"))
{ {
fake_dev->ret_error = fpi_device_error_new (FP_DEVICE_ERROR_DATA_INVALID); fake_dev->ret_error = fpi_device_error_new (FP_DEVICE_ERROR_DATA_INVALID);
g_assert_false (fp_device_clear_storage_sync (device, NULL, &error)); g_assert_false (fp_device_clear_storage_sync (device, NULL, &error));
@@ -3333,7 +3332,7 @@ test_driver_action_error_fallback_all (void)
g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_GENERAL); g_assert_error (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_GENERAL);
g_clear_error (&error); g_clear_error (&error);
if (tod_check_device_version (device, 1, "1.92")) if (tod_check_device_version (device, 1, "1.92.0"))
{ {
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
"*Device failed to pass an error to generic action " "*Device failed to pass an error to generic action "