static void test_hashmap_move(void) { Hashmap *m, *n; char *val1, *val2, *val3, *val4, *r; log_info("%s", __func__); val1 = strdup("val1"); assert_se(val1); val2 = strdup("val2"); assert_se(val2); val3 = strdup("val3"); assert_se(val3); val4 = strdup("val4"); assert_se(val4); m = hashmap_new(&string_hash_ops); n = hashmap_new(&string_hash_ops); hashmap_put(n, "key 1", strdup(val1)); hashmap_put(m, "key 1", val1); hashmap_put(m, "key 2", val2); hashmap_put(m, "key 3", val3); hashmap_put(m, "key 4", val4); assert_se(hashmap_move(n, NULL) == 0); assert_se(hashmap_move(n, m) == 0); assert_se(hashmap_size(m) == 1); r = hashmap_get(m, "key 1"); assert_se(r && streq(r, "val1")); r = hashmap_get(n, "key 1"); assert_se(r && streq(r, "val1")); r = hashmap_get(n, "key 2"); assert_se(r && streq(r, "val2")); r = hashmap_get(n, "key 3"); assert_se(r && streq(r, "val3")); r = hashmap_get(n, "key 4"); assert_se(r && streq(r, "val4")); hashmap_free_free(m); hashmap_free_free(n); }
void set_move(Set *s, Set *other) { return hashmap_move(MAKE_HASHMAP(s), MAKE_HASHMAP(other)); }