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:
commit
ad28cfebc1
@ -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;
|
||||
|
@ -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, ©) >= 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) {
|
||||
|
Loading…
Reference in New Issue
Block a user