static void test_hashmap_merge(void) { Hashmap *m; Hashmap *n; char *val1, *val2, *val3, *val4, *r; val1 = strdup("my val1"); assert_se(val1); val2 = strdup("my val2"); assert_se(val2); val3 = strdup("my val3"); assert_se(val3); val4 = strdup("my val4"); assert_se(val4); n = hashmap_new(&string_hash_ops); m = hashmap_new(&string_hash_ops); hashmap_put(m, "Key 1", val1); hashmap_put(m, "Key 2", val2); hashmap_put(n, "Key 3", val3); hashmap_put(n, "Key 4", val4); assert_se(hashmap_merge(m, n) == 0); r = hashmap_get(m, "Key 3"); assert_se(r && streq(r, "my val3")); r = hashmap_get(m, "Key 4"); assert_se(r && streq(r, "my val4")); assert_se(n); assert_se(m); hashmap_free(n); hashmap_free_free(m); }
int set_merge(Set *s, Set *other) { return hashmap_merge(MAKE_HASHMAP(s), MAKE_HASHMAP(other)); }