Add test GCedTreeNodeEmbedderTest.AsMapKey
This tests shows that persistent references to GC'd objects can
be used as keys in std::maps.
Change-Id: Ic114fde57d9b900b246cc55ed804f748cf229c4a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/71493
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/gc/gced_tree_node_embeddertest.cpp b/fxjs/gc/gced_tree_node_embeddertest.cpp
index 25a25b3..cbda307 100644
--- a/fxjs/gc/gced_tree_node_embeddertest.cpp
+++ b/fxjs/gc/gced_tree_node_embeddertest.cpp
@@ -4,6 +4,8 @@
#include "fxjs/gc/gced_tree_node.h"
+#include <map>
+
#include "core/fxcrt/observed_ptr.h"
#include "fxjs/gc/heap.h"
#include "testing/gced_embeddertest.h"
@@ -144,3 +146,10 @@
EXPECT_TRUE(s_root);
EXPECT_FALSE(watcher);
}
+
+TEST_F(GCedTreeNodeEmbedderTest, AsMapKey) {
+ std::map<cppgc::Persistent<ObservableGCedTreeNodeForTest>, int> score;
+ ObservableGCedTreeNodeForTest* node = CreateNode();
+ score[node] = 100;
+ EXPECT_EQ(100, score[node]);
+}