From: Yu Watanabe Date: Mon, 4 Apr 2022 09:25:49 +0000 (+0900) Subject: test-sd-device: device ID requires subsystem X-Git-Tag: v251-rc2~197^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=901fa9a4c965f040834c6540c2e34e5b11a43043;p=thirdparty%2Fsystemd.git test-sd-device: device ID requires subsystem --- diff --git a/src/libsystemd/sd-device/test-sd-device.c b/src/libsystemd/sd-device/test-sd-device.c index f47df797432..222c5b9dbc9 100644 --- a/src/libsystemd/sd-device/test-sd-device.c +++ b/src/libsystemd/sd-device/test-sd-device.c @@ -17,7 +17,7 @@ static void test_sd_device_one(sd_device *d) { _cleanup_(sd_device_unrefp) sd_device *dev = NULL; - const char *syspath, *sysname, *subsystem = NULL, *id, *devname, *val; + const char *syspath, *sysname, *subsystem = NULL, *devname, *val; bool is_block = false; dev_t devnum; usec_t usec; @@ -41,7 +41,7 @@ static void test_sd_device_one(sd_device *d) { assert_se(sd_device_get_sysname(d, &sysname) >= 0); r = sd_device_get_subsystem(d, &subsystem); if (r >= 0) { - const char *name; + const char *name, *id; if (streq(subsystem, "drivers")) name = strjoina(d->driver_subsystem, ":", sysname); @@ -51,6 +51,24 @@ static void test_sd_device_one(sd_device *d) { assert_se(sd_device_get_syspath(dev, &val) >= 0); assert_se(streq(syspath, val)); dev = sd_device_unref(dev); + + /* The device ID depends on subsystem. */ + assert_se(device_get_device_id(d, &id) >= 0); + assert_se(sd_device_new_from_device_id(&dev, id) >= 0); + assert_se(sd_device_get_syspath(dev, &val) >= 0); + assert_se(streq(syspath, val)); + dev = sd_device_unref(dev); + + /* These require udev database, and reading database requires device ID. */ + r = sd_device_get_is_initialized(d); + if (r > 0) { + r = sd_device_get_usec_since_initialized(d, &usec); + assert_se((r >= 0 && usec > 0) || r == -ENODATA); + } else + assert(r == 0); + + r = sd_device_get_property_value(d, "ID_NET_DRIVER", &val); + assert_se(r >= 0 || r == -ENOENT); } else assert_se(r == -ENOENT); @@ -131,23 +149,8 @@ static void test_sd_device_one(sd_device *d) { r = sd_device_get_sysnum(d, &val); assert_se(r >= 0 || r == -ENOENT); - r = sd_device_get_is_initialized(d); - if (r > 0) { - r = sd_device_get_usec_since_initialized(d, &usec); - assert_se((r >= 0 && usec > 0) || r == -ENODATA); - } else - assert(r == 0); - r = sd_device_get_sysattr_value(d, "name_assign_type", &val); assert_se(r >= 0 || ERRNO_IS_PRIVILEGE(r) || IN_SET(r, -ENOENT, -EINVAL)); - - r = sd_device_get_property_value(d, "ID_NET_DRIVER", &val); - assert_se(r >= 0 || r == -ENOENT); - - assert_se(device_get_device_id(d, &id) >= 0); - assert_se(sd_device_new_from_device_id(&dev, id) >= 0); - assert_se(sd_device_get_syspath(dev, &val) >= 0); - assert_se(streq(syspath, val)); } TEST(sd_device_enumerator_devices) {