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

Side by Side Diff: src/gpu/gr_unittests.cpp

Issue 88113002: Speed up GrResourceCache lookup by inlining GrBinHashKey comparisons (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: address review comments (capitalized statics) 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/gpu/effects/GrTextureStripAtlas.h ('k') | tests/GrUnitTests.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1
2 /*
3 * Copyright 2010 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9 #include "GrBinHashKey.h"
10 #include "GrDrawTarget.h"
11 #include "SkMatrix.h"
12 #include "GrRedBlackTree.h"
13
14 // FIXME: needs to be in a header
15 void gr_run_unittests();
16
17 // If we aren't inheriting these as #defines from elsewhere,
18 // clang demands they be declared before we #include the template
19 // that relies on them.
20 #ifdef SK_DEBUG
21 static bool LT(const int& elem, int value) {
22 return elem < value;
23 }
24 static bool EQ(const int& elem, int value) {
25 return elem == value;
26 }
27 #include "GrTBSearch.h"
28
29 static void test_bsearch() {
30 const int array[] = {
31 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99
32 };
33
34 for (int n = 0; n < static_cast<int>(GR_ARRAY_COUNT(array)); ++n) {
35 for (int i = 0; i < n; i++) {
36 int index = GrTBSearch<int, int>(array, n, array[i]);
37 SkASSERT(index == (int) i);
38 index = GrTBSearch<int, int>(array, n, -array[i]);
39 SkASSERT(index < 0);
40 }
41 }
42 }
43 #endif
44
45 // bogus empty class for GrBinHashKey
46 class BogusEntry {};
47
48 static void test_binHashKey()
49 {
50 const char* testStringA_ = "abcdABCD";
51 const char* testStringB_ = "abcdBBCD";
52 const uint32_t* testStringA = reinterpret_cast<const uint32_t*>(testStringA_ );
53 const uint32_t* testStringB = reinterpret_cast<const uint32_t*>(testStringB_ );
54 enum {
55 kDataLenUsedForKey = 8
56 };
57
58 GrTBinHashKey<BogusEntry, kDataLenUsedForKey> keyA;
59 keyA.setKeyData(testStringA);
60 // test copy constructor and comparison
61 GrTBinHashKey<BogusEntry, kDataLenUsedForKey> keyA2(keyA);
62 SkASSERT(keyA.compare(keyA2) == 0);
63 SkASSERT(keyA.getHash() == keyA2.getHash());
64 // test re-init
65 keyA2.setKeyData(testStringA);
66 SkASSERT(keyA.compare(keyA2) == 0);
67 SkASSERT(keyA.getHash() == keyA2.getHash());
68 // test sorting
69 GrTBinHashKey<BogusEntry, kDataLenUsedForKey> keyB;
70 keyB.setKeyData(testStringB);
71 SkASSERT(keyA.compare(keyB) < 0);
72 SkASSERT(keyA.getHash() != keyB.getHash());
73 }
74
75
76 void gr_run_unittests() {
77 SkDEBUGCODE(test_bsearch();)
78 test_binHashKey();
79 GrRedBlackTree<int>::UnitTest();
80 }
OLDNEW
« no previous file with comments | « src/gpu/effects/GrTextureStripAtlas.h ('k') | tests/GrUnitTests.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698