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

Side by Side Diff: tests/TestClassDef.h

Issue 114563003: Get rid of DEFINE_TESTCLASS() macro. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: tileCount() 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 | « tests/ImageFilterTest.cpp ('k') | tests/TileGridTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1
2 /* 1 /*
3 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
4 * 3 *
5 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 5 * found in the LICENSE file.
7 */ 6 */
7
8 /* This file is meant to be included by .cpp files, so it can spew out a 8 /* This file is meant to be included by .cpp files, so it can spew out a
9 customized class + global definition. 9 customized class + global definition.
10 10
11 e.g. 11 e.g.
12 #include "TestClassDef.h" 12 #include "TestClassDef.h"
13 DEFINE_TESTCLASS("MyTest", MyTestClass, MyTestFunction) 13 DEFINE_TESTCLASS_SHORT(MyTestFunction)
14 14
15 where MyTestFunction is declared as 15 where MyTestFunction is declared as:
16 16
17 void MyTestFunction(skiatest::Reporter*) 17 static void MyTestFunction(skiatest::Reporter* reporter) {
18 }
18 */ 19 */
19 20
20 // FIXME: replace all three param callers with the short one param version
21 #define DEFINE_TESTCLASS_SHORT(function) \ 21 #define DEFINE_TESTCLASS_SHORT(function) \
22 namespace skiatest { \ 22 namespace skiatest { \
23 class function##Class : public Test { \ 23 class function##Class : public Test { \
24 public: \ 24 public: \
25 static Test* Factory(void*) { return SkNEW(function##Class); } \ 25 static Test* Factory(void*) { return SkNEW(function##Class); } \
26 protected: \ 26 protected: \
27 virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(#func tion); } \ 27 virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(#func tion); } \
28 virtual void onRun(Reporter* reporter) SK_OVERRIDE { function(report er); } \ 28 virtual void onRun(Reporter* reporter) SK_OVERRIDE { function(report er); } \
29 }; \ 29 }; \
30 static TestRegistry gReg_##function##Class(function##Class::Factory); \ 30 static TestRegistry gReg_##function##Class(function##Class::Factory); \
31 } 31 }
32 32
33 #define DEFINE_TESTCLASS(uiname, classname, function) \
34 namespace skiatest { \
35 class classname : public Test { \
36 public: \
37 static Test* Factory(void*) { return SkNEW(classname); } \
38 protected: \
39 virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(uinam e); } \
40 virtual void onRun(Reporter* reporter) SK_OVERRIDE { function(report er); } \
41 }; \
42 static TestRegistry gReg_##classname(classname::Factory); \
43 }
44
45 #define DEFINE_GPUTESTCLASS(uiname, classname, function) \ 33 #define DEFINE_GPUTESTCLASS(uiname, classname, function) \
46 namespace skiatest { \ 34 namespace skiatest { \
47 class classname : public GpuTest { \ 35 class classname : public GpuTest { \
48 public: \ 36 public: \
49 static Test* Factory(void*) { return SkNEW(classname); } \ 37 static Test* Factory(void*) { return SkNEW(classname); } \
50 protected: \ 38 protected: \
51 virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(uinam e); } \ 39 virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(uinam e); } \
52 virtual void onRun(Reporter* reporter) SK_OVERRIDE { \ 40 virtual void onRun(Reporter* reporter) SK_OVERRIDE { \
53 function(reporter, GetGrContextFactory()); \ 41 function(reporter, GetGrContextFactory()); \
54 } \ 42 } \
55 }; \ 43 }; \
56 static TestRegistry gReg_##classname(classname::Factory); \ 44 static TestRegistry gReg_##classname(classname::Factory); \
57 } 45 }
58 46
59 47
60 // Yet shorter way to define a test. E.g. 48 // Yet shorter way to define a test. E.g.
61 // 49 //
62 // DEF_TEST(some_test_name, r) { 50 // DEF_TEST(some_test_name, r) {
63 // ... 51 // ...
64 // REPORTER_ASSERT(r, x == 15); 52 // REPORTER_ASSERT(r, x == 15);
65 // } 53 // }
66 #define DEF_TEST(name, reporter) \ 54 #define DEF_TEST(name, reporter) \
67 static void name(skiatest::Reporter* reporter); \ 55 static void name(skiatest::Reporter* reporter); \
68 DEFINE_TESTCLASS_SHORT(name) \ 56 DEFINE_TESTCLASS_SHORT(name) \
69 static void name(skiatest::Reporter* reporter) 57 static void name(skiatest::Reporter* reporter)
OLDNEW
« no previous file with comments | « tests/ImageFilterTest.cpp ('k') | tests/TileGridTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698