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;
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;
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) {