1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-22 17:35:35 +03:00

Merge pull request #11655 from yuwata/fix-11652

sd-device: fix device_copy_properties()
This commit is contained in:
Lennart Poettering 2019-02-07 15:01:31 +01:00 committed by GitHub
commit ad28cfebc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

@ -712,13 +712,13 @@ int device_copy_properties(sd_device *device_dst, sd_device *device_src) {
if (r < 0)
return r;
ORDERED_HASHMAP_FOREACH_KEY(property, value, device_src->properties_db, i) {
ORDERED_HASHMAP_FOREACH_KEY(value, property, device_src->properties_db, i) {
r = device_add_property_aux(device_dst, property, value, true);
if (r < 0)
return r;
}
ORDERED_HASHMAP_FOREACH_KEY(property, value, device_src->properties, i) {
ORDERED_HASHMAP_FOREACH_KEY(value, property, device_src->properties, i) {
r = device_add_property_aux(device_dst, property, value, false);
if (r < 0)
return r;

View File

@ -157,6 +157,15 @@ static void test_sd_device_monitor_filter_remove(sd_device *device) {
assert_se(sd_event_loop(sd_device_monitor_get_event(monitor_client)) == 100);
}
static void test_device_copy_properties(sd_device *device) {
_cleanup_(sd_device_unrefp) sd_device *copy = NULL;
assert_se(device_shallow_clone(device, &copy) >= 0);
assert_se(device_copy_properties(copy, device) >= 0);
test_send_receive_one(copy, false, false, false);
}
int main(int argc, char *argv[]) {
_cleanup_(sd_device_unrefp) sd_device *loopback = NULL, *sda = NULL;
int r;
@ -186,6 +195,7 @@ int main(int argc, char *argv[]) {
test_subsystem_filter(loopback);
test_sd_device_monitor_filter_remove(loopback);
test_device_copy_properties(loopback);
r = sd_device_new_from_subsystem_sysname(&sda, "block", "sda");
if (r < 0) {