diff options
author | Benjamin Berg <bberg@redhat.com> | 2022-05-31 18:00:15 +0200 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2022-05-31 18:06:47 +0200 |
commit | eac55b91a6a1e9bca1304aaf3fd48682edd69881 (patch) | |
tree | 59ec47307890eb61c118f0897b1da8cc865ad37c | |
parent | ae38f38cc3fc98acecfd2967741a30bad3e99411 (diff) | |
download | libgudev-eac55b91a6a1e9bca1304aaf3fd48682edd69881.tar.gz |
tests: Move testbed creation into fixture
No need to duplicate this between tests once we add more tests. Also, it
fixes the issue that the testbed was not free'ed resulting in the test
directory to not be deleted.
-rw-r--r-- | tests/test-double.c | 27 | ||||
-rw-r--r-- | tests/test-enumerator-filter.c | 31 | ||||
-rw-r--r-- | tests/test-sysfsattr.c | 27 |
3 files changed, 65 insertions, 20 deletions
diff --git a/tests/test-double.c b/tests/test-double.c index 886fa02..91e77c9 100644 --- a/tests/test-double.c +++ b/tests/test-double.c @@ -18,18 +18,30 @@ #define GNU_SKIP_RETURNCODE 77 +typedef struct { + UMockdevTestbed *testbed; +} Fixture; + static void -test_double (void) +fixture_setup (Fixture *f, G_GNUC_UNUSED const void *data) { - /* create test bed */ - UMockdevTestbed *testbed = umockdev_testbed_new (); + f->testbed = umockdev_testbed_new (); - /* Relies on a test bed having been set up */ g_assert (umockdev_in_mock_environment ()); +} + +static void +fixture_teardown (Fixture *f, G_GNUC_UNUSED const void *data) +{ + g_clear_object (&f->testbed); +} +static void +test_double (Fixture *f, G_GNUC_UNUSED const void *data) +{ g_assert_cmpstr (nl_langinfo(RADIXCHAR), ==, ","); - umockdev_testbed_add_device (testbed, "platform", "dev1", NULL, + umockdev_testbed_add_device (f->testbed, "platform", "dev1", NULL, "in_accel_scale", "0.0000098", NULL, "ID_MODEL", "KoolGadget", "SCALE", "0.0000098", NULL); @@ -63,7 +75,10 @@ int main(int argc, char **argv) g_test_init (&argc, &argv, NULL); - g_test_add_func ("/gudev/double", test_double); + g_test_add ("/gudev/double", Fixture, NULL, + fixture_setup, + test_double, + fixture_teardown); return g_test_run (); } diff --git a/tests/test-enumerator-filter.c b/tests/test-enumerator-filter.c index 6e9a073..0faf34f 100644 --- a/tests/test-enumerator-filter.c +++ b/tests/test-enumerator-filter.c @@ -20,25 +20,37 @@ #include <gudev/gudev.h> +typedef struct { + UMockdevTestbed *testbed; +} Fixture; + static void -test_enumerator_filter (void) +fixture_setup (Fixture *f, G_GNUC_UNUSED const void *data) { - /* create test bed */ - UMockdevTestbed *testbed = umockdev_testbed_new (); + f->testbed = umockdev_testbed_new (); - /* Relies on a test bed having been set up */ g_assert (umockdev_in_mock_environment ()); +} + +static void +fixture_teardown (Fixture *f, G_GNUC_UNUSED const void *data) +{ + g_clear_object (&f->testbed); +} +static void +test_enumerator_filter (Fixture *f, G_GNUC_UNUSED const void *data) +{ /* Add 2 devices in the USB subsystem, and one in the DRM subsystem */ - umockdev_testbed_add_device (testbed, "usb", "dev1", NULL, + umockdev_testbed_add_device (f->testbed, "usb", "dev1", NULL, "idVendor", "0815", "idProduct", "AFFE", NULL, "ID_MODEL", "KoolGadget", NULL); - umockdev_testbed_add_device (testbed, "usb", "dev2", NULL, + umockdev_testbed_add_device (f->testbed, "usb", "dev2", NULL, "idVendor", "0815", "idProduct", "AFFF", NULL, "ID_MODEL", "KoolGadget 2", NULL); - umockdev_testbed_add_device (testbed, "drm", "dev3", NULL, + umockdev_testbed_add_device (f->testbed, "drm", "dev3", NULL, "ID_FOR_SEAT", "drm-pci-0000_00_02_0", NULL, NULL); @@ -66,7 +78,10 @@ int main(int argc, char **argv) setlocale (LC_ALL, NULL); g_test_init (&argc, &argv, NULL); - g_test_add_func ("/gudev/enumerator_filter", test_enumerator_filter); + g_test_add ("/gudev/enumerator_filter", Fixture, NULL, + fixture_setup, + test_enumerator_filter, + fixture_teardown); return g_test_run (); } diff --git a/tests/test-sysfsattr.c b/tests/test-sysfsattr.c index 9c2f769..13f4a5b 100644 --- a/tests/test-sysfsattr.c +++ b/tests/test-sysfsattr.c @@ -15,16 +15,28 @@ #include <gudev/gudev.h> +typedef struct { + UMockdevTestbed *testbed; +} Fixture; + static void -test_uncached_sysfs_attr (void) +fixture_setup (Fixture *f, G_GNUC_UNUSED const void *data) { - /* create test bed */ - UMockdevTestbed *testbed = umockdev_testbed_new (); + f->testbed = umockdev_testbed_new (); - /* Relies on a test bed having been set up */ g_assert (umockdev_in_mock_environment ()); +} + +static void +fixture_teardown (Fixture *f, G_GNUC_UNUSED const void *data) +{ + g_clear_object (&f->testbed); +} - umockdev_testbed_add_device (testbed, "platform", "dev1", NULL, +static void +test_uncached_sysfs_attr (Fixture *f, G_GNUC_UNUSED const void *data) +{ + umockdev_testbed_add_device (f->testbed, "platform", "dev1", NULL, "dytc_lapmode", "1", "console", "Y\n", NULL, "ID_MODEL", "KoolGadget", NULL); @@ -73,7 +85,10 @@ int main(int argc, char **argv) setlocale (LC_ALL, NULL); g_test_init (&argc, &argv, NULL); - g_test_add_func ("/gudev/uncached_sysfs_attr", test_uncached_sysfs_attr); + g_test_add ("/gudev/uncached_sysfs_attr", Fixture, NULL, + fixture_setup, + test_uncached_sysfs_attr, + fixture_teardown); return g_test_run (); } |