]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: exclude "bdi" subsystem and loop block devices 23119/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 19 Apr 2022 12:16:53 +0000 (21:16 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 27 Apr 2022 07:32:42 +0000 (16:32 +0900)
On several CI environments, it seems that some loop block devices and
corresponding bdi devices are sometimes removed during the test is
running. Let's exclude them.

Fixes #22970.

src/libsystemd/sd-device/test-sd-device.c

index 7bc61354067cd0f7b80a85d8fe53c227af82d44a..3bd3761f3be6822f9c7107f01852938fbc7c8e93 100644 (file)
@@ -182,6 +182,10 @@ TEST(sd_device_enumerator_devices) {
 
         assert_se(sd_device_enumerator_new(&e) >= 0);
         assert_se(sd_device_enumerator_allow_uninitialized(e) >= 0);
+        /* On some CI environments, it seems some loop block devices and corresponding bdi devices sometimes
+         * disappear during running this test. Let's exclude them here for stability. */
+        assert_se(sd_device_enumerator_add_match_subsystem(e, "bdi", false) >= 0);
+        assert_se(sd_device_enumerator_add_nomatch_sysname(e, "loop*") >= 0);
         FOREACH_DEVICE(e, d)
                 test_sd_device_one(d);
 }
@@ -208,6 +212,8 @@ static void test_sd_device_enumerator_filter_subsystem_one(
 
         assert_se(sd_device_enumerator_new(&e) >= 0);
         assert_se(sd_device_enumerator_add_match_subsystem(e, subsystem, true) >= 0);
+        if (streq(subsystem, "block"))
+                assert_se(sd_device_enumerator_add_nomatch_sysname(e, "loop*") >= 0);
 
         FOREACH_DEVICE(e, d) {
                 const char *syspath;
@@ -250,6 +256,9 @@ TEST(sd_device_enumerator_filter_subsystem) {
 
         assert_se(subsystems = hashmap_new(&string_hash_ops));
         assert_se(sd_device_enumerator_new(&e) >= 0);
+        /* See comments in TEST(sd_device_enumerator_devices). */
+        assert_se(sd_device_enumerator_add_match_subsystem(e, "bdi", false) >= 0);
+        assert_se(sd_device_enumerator_add_nomatch_sysname(e, "loop*") >= 0);
 
         FOREACH_DEVICE(e, d) {
                 const char *syspath, *subsystem;