12945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer//===- llvm/unittest/ADT/SmallPtrSetTest.cpp ------------------------------===// 22945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// 32945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// The LLVM Compiler Infrastructure 42945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// 52945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// This file is distributed under the University of Illinois Open Source 62945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// License. See LICENSE.TXT for details. 72945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// 82945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer//===----------------------------------------------------------------------===// 92945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// 102945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// SmallPtrSet unit tests. 112945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// 122945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer//===----------------------------------------------------------------------===// 132945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 142945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer#include "gtest/gtest.h" 152945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer#include "llvm/ADT/SmallPtrSet.h" 162945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 172945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramerusing namespace llvm; 182945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 192945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer// SmallPtrSet swapping test. 202945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin KramerTEST(SmallPtrSetTest, SwapTest) { 212945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer int buf[10]; 222945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 232945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer SmallPtrSet<int *, 2> a; 242945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer SmallPtrSet<int *, 2> b; 252945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 262945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer a.insert(&buf[0]); 272945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer a.insert(&buf[1]); 282945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer b.insert(&buf[2]); 292945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 302945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer std::swap(a, b); 312945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 322945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(1U, a.size()); 332945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(2U, b.size()); 342945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[2])); 352945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[0])); 362945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[1])); 372945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 382945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer b.insert(&buf[3]); 392945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer std::swap(a, b); 402945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 412945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(3U, a.size()); 422945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(1U, b.size()); 432945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[0])); 442945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[1])); 452945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[3])); 462945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[2])); 472945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 482945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer std::swap(a, b); 492945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 502945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(1U, a.size()); 512945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(3U, b.size()); 522945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[2])); 532945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[0])); 542945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[1])); 552945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[3])); 562945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 572945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer a.insert(&buf[4]); 582945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer a.insert(&buf[5]); 592945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer a.insert(&buf[6]); 602945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 612945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer std::swap(b, a); 622945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer 632945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(3U, a.size()); 642945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_EQ(4U, b.size()); 652945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[2])); 662945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[4])); 672945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[5])); 682945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(b.count(&buf[6])); 692945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[0])); 702945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[1])); 712945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer EXPECT_TRUE(a.count(&buf[3])); 722945a32ffd0bf079de1b23db12bc8a0de596a167Benjamin Kramer} 73