From: Yu Watanabe Date: Wed, 22 Jan 2025 02:10:10 +0000 (+0900) Subject: test: use hash ops with destructor X-Git-Tag: v258-rc1~1512^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=58f0cd14a0b9f3f489c7dc40f8a73fa58a886c54;p=thirdparty%2Fsystemd.git test: use hash ops with destructor --- diff --git a/src/test/test-hashmap-plain.c b/src/test/test-hashmap-plain.c index 81effec21ab..6b6058b08ac 100644 --- a/src/test/test-hashmap-plain.c +++ b/src/test/test-hashmap-plain.c @@ -74,36 +74,21 @@ TEST(hashmap_ensure_replace) { } TEST(hashmap_copy) { - _cleanup_hashmap_free_ Hashmap *m = NULL; - _cleanup_hashmap_free_free_ Hashmap *copy = NULL; - char *val1, *val2, *val3, *val4, *r; - - val1 = strdup("val1"); - assert_se(val1); - val2 = strdup("val2"); - assert_se(val2); - val3 = strdup("val3"); - assert_se(val3); - val4 = strdup("val4"); - assert_se(val4); + _cleanup_hashmap_free_ Hashmap *m = NULL, *copy = NULL; - m = hashmap_new(&string_hash_ops); + ASSERT_NOT_NULL(m = hashmap_new(&string_hash_ops)); - 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_OK_POSITIVE(hashmap_put(m, "key 1", (void*) "val1")); + ASSERT_OK_POSITIVE(hashmap_put(m, "key 2", (void*) "val2")); + ASSERT_OK_POSITIVE(hashmap_put(m, "key 3", (void*) "val3")); + ASSERT_OK_POSITIVE(hashmap_put(m, "key 4", (void*) "val4")); - copy = hashmap_copy(m); + ASSERT_NOT_NULL(copy = hashmap_copy(m)); - r = hashmap_get(copy, "key 1"); - ASSERT_STREQ(r, "val1"); - r = hashmap_get(copy, "key 2"); - ASSERT_STREQ(r, "val2"); - r = hashmap_get(copy, "key 3"); - ASSERT_STREQ(r, "val3"); - r = hashmap_get(copy, "key 4"); - ASSERT_STREQ(r, "val4"); + ASSERT_STREQ(hashmap_get(copy, "key 1"), "val1"); + ASSERT_STREQ(hashmap_get(copy, "key 2"), "val2"); + ASSERT_STREQ(hashmap_get(copy, "key 3"), "val3"); + ASSERT_STREQ(hashmap_get(copy, "key 4"), "val4"); } TEST(hashmap_get_strv) { @@ -140,7 +125,7 @@ TEST(hashmap_get_strv) { } TEST(hashmap_move_one) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL, *n = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL, *n = NULL; char *val1, *val2, *val3, *val4, *r; val1 = strdup("val1"); @@ -152,8 +137,8 @@ TEST(hashmap_move_one) { val4 = strdup("val4"); assert_se(val4); - m = hashmap_new(&string_hash_ops); - n = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); + n = hashmap_new(&string_hash_ops_value_free); hashmap_put(m, "key 1", val1); hashmap_put(m, "key 2", val2); @@ -176,7 +161,7 @@ TEST(hashmap_move_one) { } TEST(hashmap_move) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL, *n = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL, *n = NULL; char *val1, *val2, *val3, *val4, *r; val1 = strdup("val1"); @@ -188,8 +173,8 @@ TEST(hashmap_move) { val4 = strdup("val4"); assert_se(val4); - m = hashmap_new(&string_hash_ops); - n = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); + n = hashmap_new(&string_hash_ops_value_free); hashmap_put(n, "key 1", strdup(val1)); hashmap_put(m, "key 1", val1); @@ -282,7 +267,7 @@ TEST(hashmap_remove1) { } TEST(hashmap_remove2) { - _cleanup_hashmap_free_free_free_ Hashmap *m = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL; char key1[] = "key 1"; char key2[] = "key 2"; char val1[] = "val 1"; @@ -292,7 +277,7 @@ TEST(hashmap_remove2) { r = hashmap_remove2(NULL, "key 1", &r2); ASSERT_NULL(r); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_free_free); assert_se(m); r = hashmap_remove2(m, "no such key", &r2); @@ -480,7 +465,7 @@ TEST(hashmap_foreach_key) { } TEST(hashmap_foreach) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL; bool value_found[] = { false, false, false, false }; char *val1, *val2, *val3, *val4, *s; unsigned count; @@ -499,7 +484,7 @@ TEST(hashmap_foreach) { count++; assert_se(count == 0); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); count = 0; HASHMAP_FOREACH(s, m) @@ -527,8 +512,7 @@ TEST(hashmap_foreach) { } TEST(hashmap_merge) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL; - _cleanup_hashmap_free_ Hashmap *n = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL, *n = NULL; char *val1, *val2, *val3, *val4, *r; val1 = strdup("my val1"); @@ -540,7 +524,7 @@ TEST(hashmap_merge) { val4 = strdup("my val4"); assert_se(val4); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); n = hashmap_new(&string_hash_ops); hashmap_put(m, "Key 1", val1); @@ -559,13 +543,13 @@ TEST(hashmap_merge) { } TEST(hashmap_contains) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL; char *val1; val1 = strdup("my val"); assert_se(val1); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); assert_se(!hashmap_contains(m, "Key 1")); hashmap_put(m, "Key 1", val1); @@ -578,13 +562,13 @@ TEST(hashmap_contains) { } TEST(hashmap_isempty) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL; char *val1; val1 = strdup("my val"); assert_se(val1); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); assert_se(hashmap_isempty(m)); hashmap_put(m, "Key 1", val1); @@ -594,7 +578,7 @@ TEST(hashmap_isempty) { } TEST(hashmap_size) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL; char *val1, *val2, *val3, *val4; val1 = strdup("my val"); @@ -609,7 +593,7 @@ TEST(hashmap_size) { assert_se(hashmap_size(NULL) == 0); assert_se(hashmap_buckets(NULL) == 0); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); hashmap_put(m, "Key 1", val1); hashmap_put(m, "Key 2", val2); @@ -622,7 +606,7 @@ TEST(hashmap_size) { } TEST(hashmap_get) { - _cleanup_hashmap_free_free_ Hashmap *m = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL; char *r; char *val; @@ -632,7 +616,7 @@ TEST(hashmap_get) { r = hashmap_get(NULL, "Key 1"); ASSERT_NULL(r); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_value_free); hashmap_put(m, "Key 1", val); @@ -646,7 +630,7 @@ TEST(hashmap_get) { } TEST(hashmap_get2) { - _cleanup_hashmap_free_free_free_ Hashmap *m = NULL; + _cleanup_hashmap_free_ Hashmap *m = NULL; char *r; char *val; char key_orig[] = "Key 1"; @@ -661,7 +645,7 @@ TEST(hashmap_get2) { r = hashmap_get2(NULL, key_orig, &key_copy); ASSERT_NULL(r); - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_free_free); hashmap_put(m, key_copy, val); key_copy = NULL; @@ -870,32 +854,29 @@ TEST(hashmap_steal_first) { assert_se(hashmap_isempty(m)); } -TEST(hashmap_clear_free_free) { +DEFINE_PRIVATE_HASH_OPS_WITH_KEY_DESTRUCTOR(test_hash_ops_key, char, string_hash_func, string_compare_func, free); +DEFINE_PRIVATE_HASH_OPS_FULL(test_hash_ops_full, char, string_hash_func, string_compare_func, free, char, free); + +TEST(hashmap_clear) { _cleanup_hashmap_free_ Hashmap *m = NULL; - m = hashmap_new(&string_hash_ops); + m = hashmap_new(&string_hash_ops_free_free); assert_se(m); assert_se(hashmap_put(m, strdup("key 1"), NULL) == 1); assert_se(hashmap_put(m, strdup("key 2"), NULL) == 1); assert_se(hashmap_put(m, strdup("key 3"), NULL) == 1); - hashmap_clear_free_free(m); + hashmap_clear(m); assert_se(hashmap_isempty(m)); assert_se(hashmap_put(m, strdup("key 1"), strdup("value 1")) == 1); assert_se(hashmap_put(m, strdup("key 2"), strdup("value 2")) == 1); assert_se(hashmap_put(m, strdup("key 3"), strdup("value 3")) == 1); - hashmap_clear_free_free(m); + hashmap_clear(m); assert_se(hashmap_isempty(m)); -} - -DEFINE_PRIVATE_HASH_OPS_WITH_KEY_DESTRUCTOR(test_hash_ops_key, char, string_hash_func, string_compare_func, free); -DEFINE_PRIVATE_HASH_OPS_FULL(test_hash_ops_full, char, string_hash_func, string_compare_func, free, char, free); - -TEST(hashmap_clear_free_with_destructor) { - _cleanup_hashmap_free_ Hashmap *m = NULL; + m = hashmap_free(m); m = hashmap_new(&test_hash_ops_key); assert_se(m); @@ -904,7 +885,7 @@ TEST(hashmap_clear_free_with_destructor) { assert_se(hashmap_put(m, strdup("key 2"), NULL) == 1); assert_se(hashmap_put(m, strdup("key 3"), NULL) == 1); - hashmap_clear_free(m); + hashmap_clear(m); assert_se(hashmap_isempty(m)); m = hashmap_free(m); @@ -915,7 +896,7 @@ TEST(hashmap_clear_free_with_destructor) { assert_se(hashmap_put(m, strdup("key 2"), strdup("value 2")) == 1); assert_se(hashmap_put(m, strdup("key 3"), strdup("value 3")) == 1); - hashmap_clear_free(m); + hashmap_clear(m); assert_se(hashmap_isempty(m)); } diff --git a/src/test/test-mountpoint-util.c b/src/test/test-mountpoint-util.c index c712cd8f2bf..32a3b927e59 100644 --- a/src/test/test-mountpoint-util.c +++ b/src/test/test-mountpoint-util.c @@ -50,13 +50,13 @@ TEST(mount_propagation_flag) { TEST(mnt_id) { _cleanup_fclose_ FILE *f = NULL; - _cleanup_hashmap_free_free_ Hashmap *h = NULL; + _cleanup_hashmap_free_ Hashmap *h = NULL; char *p; void *k; int r; assert_se(f = fopen("/proc/self/mountinfo", "re")); - assert_se(h = hashmap_new(&trivial_hash_ops)); + assert_se(h = hashmap_new(&trivial_hash_ops_value_free)); for (;;) { _cleanup_free_ char *line = NULL, *path = NULL;