OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 #ifndef skiatest_Test_DEFINED | 8 #ifndef skiatest_Test_DEFINED |
9 #define skiatest_Test_DEFINED | 9 #define skiatest_Test_DEFINED |
10 | 10 |
11 #include "SkString.h" | 11 #include "SkString.h" |
12 #include "SkTRegistry.h" | 12 #include "SkTRegistry.h" |
13 #include "SkTypes.h" | 13 #include "SkTypes.h" |
14 | 14 |
15 class GrContextFactory; | 15 class GrContextFactory; |
| 16 class GrContext; |
16 | 17 |
17 namespace skiatest { | 18 namespace skiatest { |
18 | 19 |
19 SkString GetTmpDir(); | 20 SkString GetTmpDir(); |
20 | 21 |
21 struct Failure { | 22 struct Failure { |
22 Failure(const char* f, int l, const char* c, const SkString& m) | 23 Failure(const char* f, int l, const char* c, const SkString& m) |
23 : fileName(f), lineNo(l), condition(c), message(m) {} | 24 : fileName(f), lineNo(l), condition(c), message(m) {} |
24 const char* fileName; | 25 const char* fileName; |
25 int lineNo; | 26 int lineNo; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 ... | 63 ... |
63 REPORTER_ASSERT_MESSAGE(reporter, x == 15, "x should be 15"); | 64 REPORTER_ASSERT_MESSAGE(reporter, x == 15, "x should be 15"); |
64 ... | 65 ... |
65 if (x != 15) { | 66 if (x != 15) { |
66 ERRORF(reporter, "x should be 15, but is %d", x); | 67 ERRORF(reporter, "x should be 15, but is %d", x); |
67 return; | 68 return; |
68 } | 69 } |
69 ... | 70 ... |
70 } | 71 } |
71 */ | 72 */ |
| 73 enum GPUTestContexts { |
| 74 kNone_GPUTestContexts = 0, |
| 75 kNull_GPUTestContexts = 1, |
| 76 kNative_GPUTestContexts = 1 << 1, |
| 77 kOther_GPUTestContexts = 1 << 2, // Other than native, used only for below. |
| 78 kAllRendering_GPUTestContexts = kNative_GPUTestContexts | kOther_GPUTestCont
exts, |
| 79 kAll_GPUTestContexts = kAllRendering_GPUTestContexts | kNull_GPUTestContexts |
| 80 }; |
| 81 void RunWithGPUTestContexts(void(*test)(skiatest::Reporter*, GrContext*), |
| 82 skiatest::GPUTestContexts, |
| 83 skiatest::Reporter* reporter, |
| 84 GrContextFactory* factory); |
72 } // namespace skiatest | 85 } // namespace skiatest |
73 | 86 |
74 #define REPORTER_ASSERT(r, cond) \ | 87 #define REPORTER_ASSERT(r, cond) \ |
75 do { \ | 88 do { \ |
76 if (!(cond)) { \ | 89 if (!(cond)) { \ |
77 REPORT_FAILURE(r, #cond, SkString()); \ | 90 REPORT_FAILURE(r, #cond, SkString()); \ |
78 } \ | 91 } \ |
79 } while (0) | 92 } while (0) |
80 | 93 |
81 #define REPORTER_ASSERT_MESSAGE(r, cond, message) \ | 94 #define REPORTER_ASSERT_MESSAGE(r, cond, message) \ |
(...skipping 13 matching lines...) Expand all Loading... |
95 skiatest::TestRegistry name##TestRegistry( \ | 108 skiatest::TestRegistry name##TestRegistry( \ |
96 skiatest::Test(#name, false, test_##name)); \ | 109 skiatest::Test(#name, false, test_##name)); \ |
97 void test_##name(skiatest::Reporter* reporter, GrContextFactory*) | 110 void test_##name(skiatest::Reporter* reporter, GrContextFactory*) |
98 | 111 |
99 #define DEF_GPUTEST(name, reporter, factory) \ | 112 #define DEF_GPUTEST(name, reporter, factory) \ |
100 static void test_##name(skiatest::Reporter*, GrContextFactory*); \ | 113 static void test_##name(skiatest::Reporter*, GrContextFactory*); \ |
101 skiatest::TestRegistry name##TestRegistry( \ | 114 skiatest::TestRegistry name##TestRegistry( \ |
102 skiatest::Test(#name, true, test_##name)); \ | 115 skiatest::Test(#name, true, test_##name)); \ |
103 void test_##name(skiatest::Reporter* reporter, GrContextFactory* factory) | 116 void test_##name(skiatest::Reporter* reporter, GrContextFactory* factory) |
104 | 117 |
| 118 #define DEF_GPUTEST_FOR_CONTEXTS(name, contexts, reporter, context)
\ |
| 119 static void test_##name(skiatest::Reporter*, GrContext*);
\ |
| 120 static void test_gpu_contexts_##name(skiatest::Reporter* reporter,
\ |
| 121 GrContextFactory* factory) {
\ |
| 122 skiatest::RunWithGPUTestContexts(test_##name, contexts, reporter, factor
y); \ |
| 123 }
\ |
| 124 skiatest::TestRegistry name##TestRegistry(
\ |
| 125 skiatest::Test(#name, true, test_gpu_contexts_##name));
\ |
| 126 void test_##name(skiatest::Reporter* reporter, GrContext* context) |
| 127 |
| 128 #define DEF_GPUTEST_FOR_ALL_CONTEXTS(name, reporter, context) \ |
| 129 DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kAll_GPUTestContexts, reporter,
context) |
| 130 #define DEF_GPUTEST_FOR_RENDERING_CONTEXTS(name, reporter, context) \ |
| 131 DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kAllRendering_GPUTestContexts,
reporter, context) |
| 132 #define DEF_GPUTEST_FOR_NULL_CONTEXT(name, reporter, context) \ |
| 133 DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kNull_GPUTestContexts, reporter
, context) |
| 134 #define DEF_GPUTEST_FOR_NATIVE_CONTEXT(name, reporter, context) \ |
| 135 DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kNative_GPUTestContexts, report
er, context) |
| 136 |
105 #define REQUIRE_PDF_DOCUMENT(TEST_NAME, REPORTER) \ | 137 #define REQUIRE_PDF_DOCUMENT(TEST_NAME, REPORTER) \ |
106 do { \ | 138 do { \ |
107 SkDynamicMemoryWStream testStream; \ | 139 SkDynamicMemoryWStream testStream; \ |
108 SkAutoTUnref<SkDocument> testDoc(SkDocument::CreatePDF(&testStream)); \ | 140 SkAutoTUnref<SkDocument> testDoc(SkDocument::CreatePDF(&testStream)); \ |
109 if (!testDoc) { \ | 141 if (!testDoc) { \ |
110 if ((REPORTER) && (REPORTER)->verbose()) { \ | 142 if ((REPORTER) && (REPORTER)->verbose()) { \ |
111 SkDebugf("PDF disabled; %s test skipped.", #TEST_NAME); \ | 143 SkDebugf("PDF disabled; %s test skipped.", #TEST_NAME); \ |
112 } \ | 144 } \ |
113 return; \ | 145 return; \ |
114 } \ | 146 } \ |
115 } while (false) | 147 } while (false) |
116 | 148 |
117 #endif | 149 #endif |
OLD | NEW |