Commit 99217593 authored by Max Kellermann's avatar Max Kellermann

test/util/TestIntrusiveList: add AutoUnlink test

parent 1c6e4a2b
......@@ -132,3 +132,47 @@ TEST(IntrusiveList, SafeLink)
ASSERT_FALSE(a.is_linked());
}
TEST(IntrusiveList, AutoUnlink)
{
struct Item final : AutoUnlinkIntrusiveListHook {};
Item a;
ASSERT_FALSE(a.is_linked());
IntrusiveList<Item> list;
Item b;
ASSERT_FALSE(b.is_linked());
{
Item c;
list.push_back(a);
list.push_back(b);
list.push_back(c);
ASSERT_TRUE(a.is_linked());
ASSERT_TRUE(b.is_linked());
ASSERT_TRUE(c.is_linked());
auto i = list.begin();
ASSERT_EQ(&*i, &a);
++i;
ASSERT_EQ(&*i, &b);
++i;
ASSERT_EQ(&*i, &c);
++i;
ASSERT_EQ(i, list.end());
}
auto i = list.begin();
ASSERT_EQ(&*i, &a);
++i;
ASSERT_EQ(&*i, &b);
++i;
ASSERT_EQ(i, list.end());
ASSERT_TRUE(a.is_linked());
ASSERT_TRUE(b.is_linked());
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment