summaryrefslogtreecommitdiff
path: root/tests/testmap.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testmap.vala')
-rw-r--r--tests/testmap.vala16
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/testmap.vala b/tests/testmap.vala
index 5a63cf8..468d477 100644
--- a/tests/testmap.vala
+++ b/tests/testmap.vala
@@ -35,6 +35,7 @@ public abstract class MapTests : Gee.TestCase {
add_test ("[Map] keys", test_keys);
add_test ("[Map] values", test_values);
add_test ("[Map] entries", test_entries);
+ add_test ("[Map] entry weak pointer lifetime", test_entry_weak_pointer_lifetime);
add_test ("[Map] set all", test_set_all);
add_test ("[Map] unset all", test_unset_all);
add_test ("[Map] has all", test_has_all);
@@ -283,7 +284,20 @@ public abstract class MapTests : Gee.TestCase {
entries = test_map.entries;
assert (entries.size == 0);
}
-
+
+ private void test_entry_weak_pointer_lifetime () {
+ // Issue was reproducible with AddressSanitizer and G_SLICE=always-malloc
+
+ test_map["1337"] = "Badger";
+
+ foreach (var entry in test_map.entries) {
+ if (entry.value == "Badger") {
+ test_map.unset (entry.key);
+ break;
+ }
+ }
+ }
+
public void test_clear () {
test_map.set ("one", "value_of_one");
test_map.set ("two", "value_of_two");