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

Unified Diff: tests/Test.h

Issue 1446453003: Generate list of GPU contexts outside SurfaceTest tests (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: msvc fixes Created 5 years, 1 month 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
« no previous file with comments | « tests/SurfaceTest.cpp ('k') | tests/TestTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/Test.h
diff --git a/tests/Test.h b/tests/Test.h
index c1e0c528fb5a0384af7677c860c42e8322f18163..be2ef1f788b0ee320b79d5b4559b9512e889e8cc 100644
--- a/tests/Test.h
+++ b/tests/Test.h
@@ -13,6 +13,8 @@
#include "SkTypes.h"
class GrContextFactory;
+class GrContext;
+class SkGLContext;
namespace skiatest {
@@ -69,6 +71,17 @@ typedef SkTRegistry<Test> TestRegistry;
...
}
*/
+enum GPUTestContexts {
+ kNone_GPUTestContexts = 0,
+ kNull_GPUTestContexts = 1,
+ kNative_GPUTestContexts = 1 << 1,
+ kOther_GPUTestContexts = 1 << 2, // Other than native, used only for below.
+ kAllRendering_GPUTestContexts = kNative_GPUTestContexts | kOther_GPUTestContexts,
+ kAll_GPUTestContexts = kAllRendering_GPUTestContexts | kNull_GPUTestContexts
+};
+template<typename T>
+void RunWithGPUTestContexts(T testFunction, GPUTestContexts contexts, Reporter* reporter,
+ GrContextFactory* factory);
} // namespace skiatest
#define REPORTER_ASSERT(r, cond) \
@@ -96,12 +109,41 @@ typedef SkTRegistry<Test> TestRegistry;
skiatest::Test(#name, false, test_##name)); \
void test_##name(skiatest::Reporter* reporter, GrContextFactory*)
+#define GPUTEST_EXPAND_MSVC(x) x
+#define GPUTEST_APPLY(C, ...) GPUTEST_EXPAND_MSVC(C(__VA_ARGS__))
+#define GPUTEST_SELECT(a1, a2, N, ...) N
+
+#define GPUTEST_CONTEXT_ARGS1(a1) GrContext* a1
+#define GPUTEST_CONTEXT_ARGS2(a1, a2) GrContext* a1, SkGLContext* a2
+#define GPUTEST_CONTEXT_ARGS(...) \
+ GPUTEST_APPLY(GPUTEST_SELECT(__VA_ARGS__, GPUTEST_CONTEXT_ARGS2, GPUTEST_CONTEXT_ARGS1), \
+ __VA_ARGS__)
+
#define DEF_GPUTEST(name, reporter, factory) \
static void test_##name(skiatest::Reporter*, GrContextFactory*); \
skiatest::TestRegistry name##TestRegistry( \
skiatest::Test(#name, true, test_##name)); \
void test_##name(skiatest::Reporter* reporter, GrContextFactory* factory)
+#define DEF_GPUTEST_FOR_CONTEXTS(name, contexts, reporter, ...) \
+ static void test_##name(skiatest::Reporter*, GPUTEST_CONTEXT_ARGS(__VA_ARGS__)); \
+ static void test_gpu_contexts_##name(skiatest::Reporter* reporter, \
+ GrContextFactory* factory) { \
+ skiatest::RunWithGPUTestContexts(test_##name, contexts, reporter, factory); \
+ } \
+ skiatest::TestRegistry name##TestRegistry( \
+ skiatest::Test(#name, true, test_gpu_contexts_##name)); \
+ void test_##name(skiatest::Reporter* reporter, GPUTEST_CONTEXT_ARGS(__VA_ARGS__))
+
+#define DEF_GPUTEST_FOR_ALL_CONTEXTS(name, reporter, ...) \
+ DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kAll_GPUTestContexts, reporter, __VA_ARGS__)
+#define DEF_GPUTEST_FOR_RENDERING_CONTEXTS(name, reporter, ...) \
+ DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kAllRendering_GPUTestContexts, reporter, __VA_ARGS__)
+#define DEF_GPUTEST_FOR_NULL_CONTEXT(name, reporter, ...) \
+ DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kNull_GPUTestContexts, reporter, __VA_ARGS__)
+#define DEF_GPUTEST_FOR_NATIVE_CONTEXT(name, reporter, ...) \
+ DEF_GPUTEST_FOR_CONTEXTS(name, skiatest::kNative_GPUTestContexts, reporter, __VA_ARGS__)
+
#define REQUIRE_PDF_DOCUMENT(TEST_NAME, REPORTER) \
do { \
SkDynamicMemoryWStream testStream; \
« no previous file with comments | « tests/SurfaceTest.cpp ('k') | tests/TestTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698