[glib/th/hash-steal-extended-set: 28/29] ghash/tests: add test cases for g_hash_table_steal_extended() for a set
- From: Thomas Haller <thaller src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/th/hash-steal-extended-set: 28/29] ghash/tests: add test cases for g_hash_table_steal_extended() for a set
- Date: Thu, 20 Oct 2022 12:31:19 +0000 (UTC)
commit 0ea74fe91185b8f26defa95a2840b63b30ef9d39
Author: Thomas Haller <thaller redhat com>
Date: Tue Oct 18 20:57:59 2022 +0200
ghash/tests: add test cases for g_hash_table_steal_extended() for a set
glib/tests/hash.c | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
---
diff --git a/glib/tests/hash.c b/glib/tests/hash.c
index 604dcc0492..121e14548b 100644
--- a/glib/tests/hash.c
+++ b/glib/tests/hash.c
@@ -1271,6 +1271,47 @@ test_steal_extended (void)
g_assert_cmpuint (g_hash_table_size (hash), ==, 5);
g_hash_table_unref (hash);
+
+ hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+
+ g_hash_table_add (hash, g_strdup ("a"));
+ g_hash_table_add (hash, g_strdup ("b"));
+ g_hash_table_add (hash, g_strdup ("c"));
+ g_hash_table_add (hash, g_strdup ("d"));
+ g_hash_table_add (hash, g_strdup ("e"));
+
+ g_assert_true (g_hash_table_steal_extended (hash, "a", (gpointer *) &stolen_key,
+ (gpointer *) &stolen_value));
+ g_assert_cmpstr (stolen_key, ==, "a");
+ g_assert_cmpstr (stolen_value, ==, NULL);
+ g_clear_pointer (&stolen_key, g_free);
+
+ g_assert_true (g_hash_table_steal_extended (hash, "b", (gpointer *) &stolen_key,
+ NULL));
+ g_assert_cmpstr (stolen_key, ==, "b");
+ g_clear_pointer (&stolen_key, g_free);
+
+ g_assert_true (g_hash_table_steal_extended (hash, "c", NULL,
+ (gpointer *) &stolen_value));
+ g_assert_cmpstr (stolen_value, ==, "c");
+ g_clear_pointer (&stolen_value, g_free);
+
+ g_assert_true (g_hash_table_steal_extended (hash, "d", (gpointer *) &stolen_key,
+ (gpointer *) &stolen_value));
+ g_assert_cmpstr (stolen_key, ==, "d");
+ g_assert_cmpstr (stolen_value, ==, NULL);
+ g_clear_pointer (&stolen_key, g_free);
+
+ g_hash_table_replace (hash, g_strdup ("x"), NULL);
+
+ g_assert_true (g_hash_table_steal_extended (hash, "e", (gpointer *) &stolen_key,
+ (gpointer *) &stolen_value));
+ g_assert_cmpstr (stolen_key, ==, "e");
+ g_assert_cmpstr (stolen_value, ==, "e");
+ g_clear_pointer (&stolen_key, g_free);
+ stolen_value = NULL;
+
+ g_hash_table_unref (hash);
}
/* Test that passing %NULL to the optional g_hash_table_steal_extended()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]