From: Stepan Dyatkovskiy Date: Thu, 26 Apr 2012 18:45:24 +0000 (+0000) Subject: Fixed SmallMap test. The order of items is undefined in DenseMap. So being checking... X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=5c77bc29db1ddf4664c2ed16da9da08d29ab3226;p=oota-llvm.git Fixed SmallMap test. The order of items is undefined in DenseMap. So being checking the increment for big mode, we can only check that all items are in map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155651 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/unittests/ADT/SmallMapTest.cpp b/unittests/ADT/SmallMapTest.cpp index 91319dede22..b2079243fd5 100644 --- a/unittests/ADT/SmallMapTest.cpp +++ b/unittests/ADT/SmallMapTest.cpp @@ -45,11 +45,6 @@ TEST(SmallMapTest, GeneralTest) { found = a.find(&buf[8]); EXPECT_EQ(found, a.end()); - // Check increment for small mode. - found = a.begin(); - ++found; - EXPECT_EQ(found->second, 10); - b.insert(std::make_pair(&buf[2], 2)); std::swap(a, b); @@ -82,11 +77,6 @@ TEST(SmallMapTest, GeneralTest) { found = b.find(&buf[8]); EXPECT_EQ(found, b.end()); - // Check increment for big mode. - found = b.find(&buf[1]); - ++found; - EXPECT_EQ(found->second, 14); - std::swap(a, b); a.swap(b); std::swap(a, b); @@ -130,4 +120,28 @@ TEST(SmallMapTest, GeneralTest) { SmallMap::value_type Buf7; Buf7 = a.FindAndConstruct(&buf[7]); EXPECT_EQ(Buf7.second, 0); + + // Check increments + + SmallMap c; + c.insert(std::make_pair(&buf[0], 0)); + c.insert(std::make_pair(&buf[1], 1)); + + // For small mode we know that flat array map is used and we know the + // order of items. + unsigned ii = 0; + for (SmallMap::iterator i = c.begin(), e = c.end(); + i != e; ++i, ++ii) { + EXPECT_TRUE((i->first == &buf[0] && i->second == 0 && ii == 0) || + (i->first == &buf[1] && i->second == 1 && ii == 1)); + } + + // For big mode DenseMap is used and final order of items is undefined. + c.insert(std::make_pair(&buf[2], 2)); + for (SmallMap::iterator i = c.begin(), e = c.end(); + i != e; ++i) { + EXPECT_TRUE((i->first == &buf[0] && i->second == 0) || + (i->first == &buf[1] && i->second == 1) || + (i->first == &buf[2] && i->second == 2)); + } }