mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-06-11 02:28:05 +00:00
test: Run all the fpi-device tests with the dynamically loaded TOD driver
We can ensure better that it works as expected repeating all the device tests for it too. The nice part is that we can just do this by re-defininig its GType as the gtype of the loaded driver.
This commit is contained in:
+4
-1
@@ -229,11 +229,14 @@ if get_option('tod')
|
||||
tod_unit_tests = [
|
||||
'fp-context-tod',
|
||||
'fp-device-tod',
|
||||
'fpi-device',
|
||||
]
|
||||
|
||||
foreach test_name: tod_unit_tests
|
||||
basename = 'test-' + test_name
|
||||
test_exe = executable(basename,
|
||||
sufix = test_name.endswith('-tod') ? '' : '-tod'
|
||||
test_name = test_name + sufix
|
||||
test_exe = executable(basename + sufix,
|
||||
sources: basename + '.c',
|
||||
dependencies: libfprint_private_dep,
|
||||
c_args: [
|
||||
|
||||
@@ -26,6 +26,26 @@
|
||||
#include "fpi-log.h"
|
||||
#include "test-device-fake.h"
|
||||
|
||||
#ifdef TEST_TOD_DRIVER
|
||||
|
||||
#include "test-utils-tod.h"
|
||||
|
||||
#undef FPI_TYPE_DEVICE_FAKE
|
||||
#define FPI_TYPE_DEVICE_FAKE (fpt_context_device_driver_get_type ())
|
||||
|
||||
#undef FPI_DEVICE_FAKE
|
||||
#define FPI_DEVICE_FAKE(dev) (G_TYPE_CHECK_INSTANCE_CAST ((dev), FPI_TYPE_DEVICE_FAKE, FpiDeviceFake))
|
||||
|
||||
static GType
|
||||
fpt_context_device_driver_get_type (void)
|
||||
{
|
||||
FptContext *tctx = fpt_context_fake_dev_default ();
|
||||
|
||||
return G_TYPE_FROM_CLASS (FP_DEVICE_GET_CLASS (tctx->device));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* Utility functions */
|
||||
|
||||
typedef FpDevice FpAutoCloseDevice;
|
||||
@@ -2343,6 +2363,10 @@ test_driver_retry_error_types (void)
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
#ifdef TEST_TOD_DRIVER
|
||||
g_autoptr(FptContext) tctx = fpt_context_fake_dev_default ();
|
||||
#endif
|
||||
|
||||
g_test_init (&argc, &argv, NULL);
|
||||
|
||||
g_test_add_func ("/driver/get_driver", test_driver_get_driver);
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
|
||||
#include "test-utils-tod.h"
|
||||
|
||||
static FptContext *fake_context = NULL;
|
||||
|
||||
FptContext *
|
||||
fpt_context_new_with_fake_dev (void)
|
||||
{
|
||||
@@ -50,3 +52,13 @@ fpt_context_new_with_fake_dev (void)
|
||||
|
||||
return tctx;
|
||||
}
|
||||
|
||||
FptContext *
|
||||
fpt_context_fake_dev_default (void)
|
||||
{
|
||||
if (fake_context)
|
||||
return fake_context;
|
||||
|
||||
fake_context = fpt_context_new_with_fake_dev ();
|
||||
return fake_context;
|
||||
}
|
||||
|
||||
@@ -21,3 +21,5 @@
|
||||
#include "test-utils.h"
|
||||
|
||||
FptContext * fpt_context_new_with_fake_dev (void);
|
||||
|
||||
FptContext * fpt_context_fake_dev_default (void);
|
||||
|
||||
Reference in New Issue
Block a user