}
}
-TEST(sd_device_enumerator_devices) {
- _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
-
- ASSERT_OK(sd_device_enumerator_new(&e));
- ASSERT_OK(sd_device_enumerator_allow_uninitialized(e));
+static void exclude_problematic_devices(sd_device_enumerator *e) {
/* 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_OK(sd_device_enumerator_add_match_subsystem(e, "bdi", false));
/* On CentOS CI, systemd-networkd-tests.py may be running when this test is invoked. The networkd
* test creates and removes many network interfaces, and may interfere with this test. */
ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "net", false));
+}
+
+TEST(sd_device_enumerator_devices) {
+ _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
+
+ ASSERT_OK(sd_device_enumerator_new(&e));
+ ASSERT_OK(sd_device_enumerator_allow_uninitialized(e));
+ exclude_problematic_devices(e);
+
FOREACH_DEVICE(e, d)
test_sd_device_one(d);
}
ASSERT_NOT_NULL((subsystems = hashmap_new(&string_hash_ops)));
ASSERT_OK(sd_device_enumerator_new(&e));
- /* See comments in TEST(sd_device_enumerator_devices). */
- ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "bdi", false));
- ASSERT_OK(sd_device_enumerator_add_nomatch_sysname(e, "loop*"));
- ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "net", false));
+ exclude_problematic_devices(e);
FOREACH_DEVICE(e, d) {
const char *syspath, *subsystem;
ASSERT_OK(sd_device_enumerator_new(&e));
ASSERT_OK(sd_device_enumerator_allow_uninitialized(e));
- /* See comments in TEST(sd_device_enumerator_devices). */
- ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "bdi", false));
- ASSERT_OK(sd_device_enumerator_add_nomatch_sysname(e, "loop*"));
- ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "net", false));
+ exclude_problematic_devices(e);
if (!slow_tests_enabled())
ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "block", true));
ASSERT_OK(sd_device_enumerator_new(&e));
ASSERT_OK(sd_device_enumerator_allow_uninitialized(e));
- /* See comments in TEST(sd_device_enumerator_devices). */
- ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "bdi", false));
- ASSERT_OK(sd_device_enumerator_add_nomatch_sysname(e, "loop*"));
- ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "net", false));
+ exclude_problematic_devices(e);
if (!slow_tests_enabled())
ASSERT_OK(sd_device_enumerator_add_match_subsystem(e, "block", true));