| Index: tests/LListTest.cpp
|
| diff --git a/tests/LListTest.cpp b/tests/LListTest.cpp
|
| index 6b373e33aca9e1b456bda8d29da1a970403db8a6..4709982d3c63c3c69bf660765441eaf0d1a31de3 100644
|
| --- a/tests/LListTest.cpp
|
| +++ b/tests/LListTest.cpp
|
| @@ -23,9 +23,12 @@ public:
|
|
|
| int fID;
|
|
|
| + SK_DECLARE_NAMED_INTERNAL_LLIST_INTERFACE(ListElement, NamedList);
|
| private:
|
| SK_DECLARE_INST_COUNT_ROOT(ListElement);
|
| SK_DECLARE_INTERNAL_LLIST_INTERFACE(ListElement);
|
| +
|
| + SK_DECLARE_NAMED_INTERNAL_LLIST_INTERFACE_DATA(ListElement, NamedList);
|
| };
|
|
|
| SK_DEFINE_INST_COUNT(ListElement);
|
| @@ -121,6 +124,60 @@ static void TestTInternalLList(skiatest::Reporter* reporter) {
|
| }
|
| }
|
|
|
| +static void TestNamedTInternalLList(skiatest::Reporter* reporter) {
|
| + SK_DECLARE_NAMED_INTERNAL_LLIST(ListElement, NamedList, list);
|
| + ListElement elements[4] = {
|
| + ListElement(0),
|
| + ListElement(1),
|
| + ListElement(2),
|
| + ListElement(3),
|
| + };
|
| + list.addToHead(&elements[0]);
|
| + list.addToHead(&elements[1]);
|
| + list.addToHead(&elements[2]);
|
| + list.addToHead(&elements[3]);
|
| +
|
| +
|
| + NamedListInternalLListType::Iter iter;
|
| + ListElement* e = iter.init(list, NamedListInternalLListType::Iter::kTail_IterStart);
|
| + REPORTER_ASSERT(reporter, e == &elements[0]);
|
| + REPORTER_ASSERT(reporter, iter.prev() == &elements[1]);
|
| + REPORTER_ASSERT(reporter, iter.prev() == &elements[2]);
|
| + REPORTER_ASSERT(reporter, iter.prev() == &elements[3]);
|
| + REPORTER_ASSERT(reporter, iter.prev() == NULL);
|
| +}
|
| +
|
| +struct ElementFinder {
|
| + ElementFinder(int id)
|
| + : fID(id) {
|
| + }
|
| +
|
| + bool operator()(const ListElement* element) const {
|
| + return element->fID == fID;
|
| + }
|
| +
|
| + int fID;
|
| +};
|
| +
|
| +
|
| +static void TestTInternalLListFind(skiatest::Reporter* reporter) {
|
| + SK_DECLARE_NAMED_INTERNAL_LLIST(ListElement, NamedList, list);
|
| + ListElement elements[4] = {
|
| + ListElement(0),
|
| + ListElement(1),
|
| + ListElement(2),
|
| + ListElement(3),
|
| + };
|
| + list.addToHead(&elements[0]);
|
| + list.addToHead(&elements[1]);
|
| + list.addToHead(&elements[2]);
|
| + list.addToHead(&elements[3]);
|
| +
|
| + for (size_t i = 0; i < SK_ARRAY_COUNT(elements); ++i) {
|
| + REPORTER_ASSERT(reporter, &elements[i] == list.find(ElementFinder(elements[i].fID)));
|
| + }
|
| +}
|
| +
|
| static void TestTLList(skiatest::Reporter* reporter) {
|
| typedef SkTLList<ListElement> ElList;
|
| typedef ElList::Iter Iter;
|
| @@ -314,7 +371,10 @@ static void TestTLList(skiatest::Reporter* reporter) {
|
|
|
| static void test_llists(skiatest::Reporter* reporter) {
|
| TestTInternalLList(reporter);
|
| + TestNamedTInternalLList(reporter);
|
| + TestTInternalLListFind(reporter);
|
| TestTLList(reporter);
|
| +
|
| }
|
|
|
| #include "TestClassDef.h"
|
|
|