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:
Marco Trevisan (Treviño)
2020-12-03 04:38:15 +01:00
parent 9cbb3e5f55
commit c9579ab21b
4 changed files with 42 additions and 1 deletions
+4 -1
View File
@@ -229,11 +229,14 @@ if get_option('tod')
tod_unit_tests = [ tod_unit_tests = [
'fp-context-tod', 'fp-context-tod',
'fp-device-tod', 'fp-device-tod',
'fpi-device',
] ]
foreach test_name: tod_unit_tests foreach test_name: tod_unit_tests
basename = 'test-' + test_name 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', sources: basename + '.c',
dependencies: libfprint_private_dep, dependencies: libfprint_private_dep,
c_args: [ c_args: [
+24
View File
@@ -26,6 +26,26 @@
#include "fpi-log.h" #include "fpi-log.h"
#include "test-device-fake.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 */ /* Utility functions */
typedef FpDevice FpAutoCloseDevice; typedef FpDevice FpAutoCloseDevice;
@@ -2343,6 +2363,10 @@ test_driver_retry_error_types (void)
int int
main (int argc, char *argv[]) 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_init (&argc, &argv, NULL);
g_test_add_func ("/driver/get_driver", test_driver_get_driver); g_test_add_func ("/driver/get_driver", test_driver_get_driver);
+12
View File
@@ -21,6 +21,8 @@
#include "test-utils-tod.h" #include "test-utils-tod.h"
static FptContext *fake_context = NULL;
FptContext * FptContext *
fpt_context_new_with_fake_dev (void) fpt_context_new_with_fake_dev (void)
{ {
@@ -50,3 +52,13 @@ fpt_context_new_with_fake_dev (void)
return tctx; 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;
}
+2
View File
@@ -21,3 +21,5 @@
#include "test-utils.h" #include "test-utils.h"
FptContext * fpt_context_new_with_fake_dev (void); FptContext * fpt_context_new_with_fake_dev (void);
FptContext * fpt_context_fake_dev_default (void);