test-sd-device: device ID requires subsystem
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user