Add unit test for transparent comparison of UnownedPtr<T>.
Show that collections keyed by UnownedPtr<T> can be looked up against
using raw T* pointers using std::less<>.
Change-Id: I991689fe734ec1bfdd29bfc03a0546fc37585618
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/98371
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcrt/unowned_ptr_unittest.cpp b/core/fxcrt/unowned_ptr_unittest.cpp
index 2d123bf..a1a3ec7 100644
--- a/core/fxcrt/unowned_ptr_unittest.cpp
+++ b/core/fxcrt/unowned_ptr_unittest.cpp
@@ -4,7 +4,9 @@
#include "core/fxcrt/unowned_ptr.h"
+#include <functional>
#include <memory>
+#include <set>
#include <utility>
#include "testing/gtest/include/gtest/gtest.h"
@@ -186,4 +188,14 @@
EXPECT_FALSE(ptr2 < ptr1);
}
+TEST(UnownedPtr, TransparentCompare) {
+ int foos[2];
+ UnownedPtr<int> ptr1(&foos[0]);
+ UnownedPtr<int> ptr2(&foos[1]);
+ std::set<UnownedPtr<int>, std::less<>> holder;
+ holder.insert(ptr1);
+ EXPECT_NE(holder.end(), holder.find(&foos[0]));
+ EXPECT_EQ(holder.end(), holder.find(&foos[1]));
+}
+
} // namespace fxcrt