//===- llvm/unittest/ADT/StringSetTest.cpp - StringSet unit tests ----------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "llvm/ADT/StringSet.h" #include "gtest/gtest.h" using namespace llvm; namespace { // Test fixture class StringSetTest : public testing::Test {}; TEST_F(StringSetTest, IterSetKeys) { StringSet<> Set; Set.insert("A"); Set.insert("B"); Set.insert("C"); Set.insert("D"); auto Keys = to_vector<4>(Set.keys()); llvm::sort(Keys); SmallVector Expected = {"A", "B", "C", "D"}; EXPECT_EQ(Expected, Keys); } TEST_F(StringSetTest, InsertAndCountStringMapEntry) { // Test insert(StringMapEntry) and count(StringMapEntry) // which are required for set_difference(StringSet, StringSet). StringSet<> Set; StringMapEntry *Element = StringMapEntry::Create("A"); Set.insert(*Element); size_t Count = Set.count(*Element); size_t Expected = 1; EXPECT_EQ(Expected, Count); Element->Destroy(); } } // end anonymous namespace