diff options
Diffstat (limited to 'deps/v8/test/unittests/base/threaded-list-unittest.cc')
-rw-r--r-- | deps/v8/test/unittests/base/threaded-list-unittest.cc | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/deps/v8/test/unittests/base/threaded-list-unittest.cc b/deps/v8/test/unittests/base/threaded-list-unittest.cc index 96a730370b..effe9b08f7 100644 --- a/deps/v8/test/unittests/base/threaded-list-unittest.cc +++ b/deps/v8/test/unittests/base/threaded-list-unittest.cc @@ -20,6 +20,10 @@ struct ThreadedListTestNode { ThreadedListTestNode* next_; struct OtherTraits { + static ThreadedListTestNode** start(ThreadedListTestNode** h) { return h; } + static ThreadedListTestNode* const* start(ThreadedListTestNode* const* h) { + return h; + } static ThreadedListTestNode** next(ThreadedListTestNode* t) { return t->other_next(); } @@ -134,16 +138,6 @@ TEST_F(ThreadedListTest, AddFront) { CHECK_EQ(list.first(), &new_node); } -TEST_F(ThreadedListTest, ReinitializeHead) { - CHECK_EQ(list.LengthForTest(), 5); - CHECK_NE(extra_test_list.first(), list.first()); - list.ReinitializeHead(&extra_test_node_0); - list.Verify(); - CHECK_EQ(extra_test_list.first(), list.first()); - CHECK_EQ(extra_test_list.end(), list.end()); - CHECK_EQ(extra_test_list.LengthForTest(), 3); -} - TEST_F(ThreadedListTest, DropHead) { CHECK_EQ(extra_test_list.LengthForTest(), 3); CHECK_EQ(extra_test_list.first(), &extra_test_node_0); @@ -166,6 +160,23 @@ TEST_F(ThreadedListTest, Append) { CHECK_EQ(list.end(), initial_extra_list_end); } +TEST_F(ThreadedListTest, AppendOutOfScope) { + ThreadedListTestNode local_extra_test_node_0; + CHECK_EQ(list.LengthForTest(), 5); + { + ThreadedList<ThreadedListTestNode, ThreadedListTestNode::OtherTraits> + scoped_extra_test_list; + + list.Append(std::move(scoped_extra_test_list)); + } + list.Add(&local_extra_test_node_0); + + list.Verify(); + CHECK_EQ(list.LengthForTest(), 6); + CHECK_EQ(list.AtForTest(4), &nodes[4]); + CHECK_EQ(list.AtForTest(5), &local_extra_test_node_0); +} + TEST_F(ThreadedListTest, Prepend) { CHECK_EQ(list.LengthForTest(), 5); list.Prepend(std::move(extra_test_list)); |