[ADT] Update SmallVectorTest.EmplaceBack tests after rL356312

rL356312 changed the return type of emplace_back from void to reference.
Update the tests to check the behavior.

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: dexonsmith, llvm-commits

Tags: #llvm

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

llvm-svn: 356980
This commit is contained in:
Fangrui Song 2019-03-26 05:33:52 +00:00
parent 4dcabf8ddf
commit 78e21bac99
1 changed files with 42 additions and 36 deletions

View File

@ -908,63 +908,69 @@ TEST(SmallVectorTest, EmplaceBack) {
EmplaceableArg<3> A3(true);
{
SmallVector<Emplaceable, 3> V;
V.emplace_back();
Emplaceable &back = V.emplace_back();
EXPECT_TRUE(&back == &V.back());
EXPECT_TRUE(V.size() == 1);
EXPECT_TRUE(V.back().State == ES_Emplaced);
EXPECT_TRUE(V.back().A0.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A1.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A2.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A3.State == EAS_Defaulted);
EXPECT_TRUE(back.State == ES_Emplaced);
EXPECT_TRUE(back.A0.State == EAS_Defaulted);
EXPECT_TRUE(back.A1.State == EAS_Defaulted);
EXPECT_TRUE(back.A2.State == EAS_Defaulted);
EXPECT_TRUE(back.A3.State == EAS_Defaulted);
}
{
SmallVector<Emplaceable, 3> V;
V.emplace_back(std::move(A0));
Emplaceable &back = V.emplace_back(std::move(A0));
EXPECT_TRUE(&back == &V.back());
EXPECT_TRUE(V.size() == 1);
EXPECT_TRUE(V.back().State == ES_Emplaced);
EXPECT_TRUE(V.back().A0.State == EAS_RValue);
EXPECT_TRUE(V.back().A1.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A2.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A3.State == EAS_Defaulted);
EXPECT_TRUE(back.State == ES_Emplaced);
EXPECT_TRUE(back.A0.State == EAS_RValue);
EXPECT_TRUE(back.A1.State == EAS_Defaulted);
EXPECT_TRUE(back.A2.State == EAS_Defaulted);
EXPECT_TRUE(back.A3.State == EAS_Defaulted);
}
{
SmallVector<Emplaceable, 3> V;
V.emplace_back(A0);
Emplaceable &back = V.emplace_back(A0);
EXPECT_TRUE(&back == &V.back());
EXPECT_TRUE(V.size() == 1);
EXPECT_TRUE(V.back().State == ES_Emplaced);
EXPECT_TRUE(V.back().A0.State == EAS_LValue);
EXPECT_TRUE(V.back().A1.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A2.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A3.State == EAS_Defaulted);
EXPECT_TRUE(back.State == ES_Emplaced);
EXPECT_TRUE(back.A0.State == EAS_LValue);
EXPECT_TRUE(back.A1.State == EAS_Defaulted);
EXPECT_TRUE(back.A2.State == EAS_Defaulted);
EXPECT_TRUE(back.A3.State == EAS_Defaulted);
}
{
SmallVector<Emplaceable, 3> V;
V.emplace_back(A0, A1);
Emplaceable &back = V.emplace_back(A0, A1);
EXPECT_TRUE(&back == &V.back());
EXPECT_TRUE(V.size() == 1);
EXPECT_TRUE(V.back().State == ES_Emplaced);
EXPECT_TRUE(V.back().A0.State == EAS_LValue);
EXPECT_TRUE(V.back().A1.State == EAS_LValue);
EXPECT_TRUE(V.back().A2.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A3.State == EAS_Defaulted);
EXPECT_TRUE(back.State == ES_Emplaced);
EXPECT_TRUE(back.A0.State == EAS_LValue);
EXPECT_TRUE(back.A1.State == EAS_LValue);
EXPECT_TRUE(back.A2.State == EAS_Defaulted);
EXPECT_TRUE(back.A3.State == EAS_Defaulted);
}
{
SmallVector<Emplaceable, 3> V;
V.emplace_back(std::move(A0), std::move(A1));
Emplaceable &back = V.emplace_back(std::move(A0), std::move(A1));
EXPECT_TRUE(&back == &V.back());
EXPECT_TRUE(V.size() == 1);
EXPECT_TRUE(V.back().State == ES_Emplaced);
EXPECT_TRUE(V.back().A0.State == EAS_RValue);
EXPECT_TRUE(V.back().A1.State == EAS_RValue);
EXPECT_TRUE(V.back().A2.State == EAS_Defaulted);
EXPECT_TRUE(V.back().A3.State == EAS_Defaulted);
EXPECT_TRUE(back.State == ES_Emplaced);
EXPECT_TRUE(back.A0.State == EAS_RValue);
EXPECT_TRUE(back.A1.State == EAS_RValue);
EXPECT_TRUE(back.A2.State == EAS_Defaulted);
EXPECT_TRUE(back.A3.State == EAS_Defaulted);
}
{
SmallVector<Emplaceable, 3> V;
V.emplace_back(std::move(A0), A1, std::move(A2), A3);
Emplaceable &back = V.emplace_back(std::move(A0), A1, std::move(A2), A3);
EXPECT_TRUE(&back == &V.back());
EXPECT_TRUE(V.size() == 1);
EXPECT_TRUE(V.back().State == ES_Emplaced);
EXPECT_TRUE(V.back().A0.State == EAS_RValue);
EXPECT_TRUE(V.back().A1.State == EAS_LValue);
EXPECT_TRUE(V.back().A2.State == EAS_RValue);
EXPECT_TRUE(V.back().A3.State == EAS_LValue);
EXPECT_TRUE(back.State == ES_Emplaced);
EXPECT_TRUE(back.A0.State == EAS_RValue);
EXPECT_TRUE(back.A1.State == EAS_LValue);
EXPECT_TRUE(back.A2.State == EAS_RValue);
EXPECT_TRUE(back.A3.State == EAS_LValue);
}
{
SmallVector<int, 1> V;