diff --git a/test/core/gprpp/BUILD b/test/core/gprpp/BUILD index f93529110ff..70ba9534766 100644 --- a/test/core/gprpp/BUILD +++ b/test/core/gprpp/BUILD @@ -415,6 +415,7 @@ grpc_cc_test( external_deps = [ "gtest", "absl/strings:str_format", + "absl/container:flat_hash_map", ], language = "c++", uses_event_engine = False, diff --git a/test/core/gprpp/unique_type_name_test.cc b/test/core/gprpp/unique_type_name_test.cc index 83737c8c6a2..74f8a7c1d0d 100644 --- a/test/core/gprpp/unique_type_name_test.cc +++ b/test/core/gprpp/unique_type_name_test.cc @@ -17,10 +17,14 @@ #include #include +#include "absl/container/flat_hash_map.h" #include "absl/strings/str_format.h" #include "gmock/gmock.h" #include "gtest/gtest.h" +using testing::Pair; +using testing::UnorderedElementsAre; + namespace grpc_core { // Teach gtest to print names usefully. @@ -113,6 +117,23 @@ TEST(UniqueTypeNameTest, UniqueTypeNameHere) { EXPECT_NE(name1, name2); } +TEST(UniqueTypenameTest, Stringify) { + auto name = GRPC_UNIQUE_TYPE_NAME_HERE("bob"); + EXPECT_EQ("bob", absl::StrFormat("%v", name)); +} + +TEST(UniqueTypeNameTest, Hash) { + auto name1 = GRPC_UNIQUE_TYPE_NAME_HERE("name"); + auto name2 = GRPC_UNIQUE_TYPE_NAME_HERE("name"); + auto name3 = GRPC_UNIQUE_TYPE_NAME_HERE("other"); + absl::flat_hash_map m; + m[name1] = 1; + m[name2] = 2; + m[name3] = 3; + EXPECT_THAT( + m, UnorderedElementsAre(Pair(name1, 1), Pair(name2, 2), Pair(name3, 3))); +} + } // namespace } // namespace grpc_core