diff options
Diffstat (limited to 'third_party/chromium/base/tuple_unittest.cc')
-rw-r--r-- | third_party/chromium/base/tuple_unittest.cc | 81 |
1 files changed, 45 insertions, 36 deletions
diff --git a/third_party/chromium/base/tuple_unittest.cc b/third_party/chromium/base/tuple_unittest.cc index 668c115..65e3396 100644 --- a/third_party/chromium/base/tuple_unittest.cc +++ b/third_party/chromium/base/tuple_unittest.cc @@ -33,51 +33,34 @@ struct Addz { } // namespace TEST(TupleTest, Basic) { - base::Tuple<> t0 = base::MakeTuple(); + std::tuple<> t0 = std::make_tuple(); ALLOW_UNUSED_LOCAL(t0); - base::Tuple<int> t1(1); - base::Tuple<int, const char*> t2 = - base::MakeTuple(1, static_cast<const char*>("wee")); - base::Tuple<int, int, int> t3(1, 2, 3); - base::Tuple<int, int, int, int*> t4(1, 2, 3, &get<0>(t1)); - base::Tuple<int, int, int, int, int*> t5(1, 2, 3, 4, &get<0>(t4)); - base::Tuple<int, int, int, int, int, int*> t6(1, 2, 3, 4, 5, &get<0>(t4)); - - EXPECT_EQ(1, get<0>(t1)); - EXPECT_EQ(1, get<0>(t2)); - EXPECT_EQ(1, get<0>(t3)); - EXPECT_EQ(2, get<1>(t3)); - EXPECT_EQ(3, get<2>(t3)); - EXPECT_EQ(1, get<0>(t4)); - EXPECT_EQ(2, get<1>(t4)); - EXPECT_EQ(3, get<2>(t4)); - EXPECT_EQ(1, get<0>(t5)); - EXPECT_EQ(2, get<1>(t5)); - EXPECT_EQ(3, get<2>(t5)); - EXPECT_EQ(4, get<3>(t5)); - EXPECT_EQ(1, get<0>(t6)); - EXPECT_EQ(2, get<1>(t6)); - EXPECT_EQ(3, get<2>(t6)); - EXPECT_EQ(4, get<3>(t6)); - EXPECT_EQ(5, get<4>(t6)); - - EXPECT_EQ(1, get<0>(t1)); + std::tuple<int> t1(1); + std::tuple<int, const char*> t2 = + std::make_tuple(1, static_cast<const char*>("wee")); + ALLOW_UNUSED_LOCAL(t2); + std::tuple<int, int, int> t3(1, 2, 3); + std::tuple<int, int, int, int*> t4(1, 2, 3, &std::get<0>(t1)); + std::tuple<int, int, int, int, int*> t5(1, 2, 3, 4, &std::get<0>(t4)); + std::tuple<int, int, int, int, int, int*> t6(1, 2, 3, 4, 5, &std::get<0>(t4)); + + EXPECT_EQ(1, std::get<0>(t1)); DispatchToFunction(&DoAdd, t4); - EXPECT_EQ(6, get<0>(t1)); + EXPECT_EQ(6, std::get<0>(t1)); int res = 0; - DispatchToFunction(&DoAdd, base::MakeTuple(9, 8, 7, &res)); + DispatchToFunction(&DoAdd, std::make_tuple(9, 8, 7, &res)); EXPECT_EQ(24, res); Addy addy; - EXPECT_EQ(1, get<0>(t4)); + EXPECT_EQ(1, std::get<0>(t4)); DispatchToMethod(&addy, &Addy::DoAdd, t5); - EXPECT_EQ(10, get<0>(t4)); + EXPECT_EQ(10, std::get<0>(t4)); Addz addz; - EXPECT_EQ(10, get<0>(t4)); + EXPECT_EQ(10, std::get<0>(t4)); DispatchToMethod(&addz, &Addz::DoAdd, t6); - EXPECT_EQ(15, get<0>(t4)); + EXPECT_EQ(15, std::get<0>(t4)); } namespace { @@ -112,8 +95,8 @@ TEST(TupleTest, Copying) { bool res = false; // Creating the tuple should copy the class to store internally in the tuple. - base::Tuple<CopyLogger, CopyLogger*, bool*> tuple(logger, &logger, &res); - get<1>(tuple) = &get<0>(tuple); + std::tuple<CopyLogger, CopyLogger*, bool*> tuple(logger, &logger, &res); + std::get<1>(tuple) = &std::get<0>(tuple); EXPECT_EQ(2, CopyLogger::TimesConstructed); EXPECT_EQ(1, CopyLogger::TimesCopied); @@ -132,4 +115,30 @@ TEST(TupleTest, Copying) { EXPECT_EQ(2, CopyLogger::TimesCopied); } +TEST(TupleTest, Get) { + int i = 1; + int j = 2; + std::tuple<int, int&, int&&> t(3, i, std::move(j)); + EXPECT_TRUE((std::is_same<int&, decltype(base::get<0>(t))>::value)); + EXPECT_EQ(3, base::get<0>(t)); + + EXPECT_TRUE((std::is_same<int&, decltype(base::get<1>(t))>::value)); + EXPECT_EQ(1, base::get<1>(t)); + + EXPECT_TRUE((std::is_same<int&, decltype(base::get<2>(t))>::value)); + EXPECT_EQ(2, base::get<2>(t)); + + EXPECT_TRUE((std::is_same<int&&, + decltype(base::get<0>(std::move(t)))>::value)); + EXPECT_EQ(3, base::get<0>(std::move(t))); + + EXPECT_TRUE((std::is_same<int&, + decltype(base::get<1>(std::move(t)))>::value)); + EXPECT_EQ(1, base::get<1>(std::move(t))); + + EXPECT_TRUE((std::is_same<int&&, + decltype(base::get<2>(std::move(t)))>::value)); + EXPECT_EQ(2, base::get<2>(std::move(t))); +} + } // namespace base |