Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Unified Diff: tests/LListTest.cpp

Issue 91453002: Speed up GrResourceCache add and lookup by using TDynamicHash (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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"

Powered by Google App Engine
This is Rietveld 408576698