llvm/unittests/ADT/StringSetTest.cpp
Michael Pozulp a17e361b99 [ADT] Enable set_difference() to be used on StringSet
Summary: Re-land r362766 after it was reverted in r362823.

Reviewers: jhenderson, dsanders, aaron.ballman, MatzeB, lhames, dblaikie

Reviewed By: dblaikie

Subscribers: smeenai, mgrang, mgorny, dexonsmith, kristina, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62369

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362835 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-07 20:23:03 +00:00

45 lines
1.2 KiB
C++

//===- 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<StringRef, 4> 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<StringRef> *Element = StringMapEntry<StringRef>::Create("A");
Set.insert(*Element);
size_t Count = Set.count(*Element);
size_t Expected = 1;
EXPECT_EQ(Expected, Count);
Element->Destroy();
}
} // end anonymous namespace