Add a DEF_GPUTEST() macro.

This macro is similar to DEF_TEST() and simplifies the process of
setting up a GPU test.

BUG=skia:1952
TEST=tests
R=mtklein@google.com

Review URL: https://codereview.chromium.org/132293005

git-svn-id: http://skia.googlecode.com/svn/trunk@13033 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/TestClassDef.h b/tests/TestClassDef.h
index f874acc..8351ba7 100644
--- a/tests/TestClassDef.h
+++ b/tests/TestClassDef.h
@@ -11,9 +11,9 @@
     e.g.
     #include "TestClassDef.h"
 
-    DEF_TEST(some_test_name, r) {
+    DEF_TEST(TestName, reporter) {
         ...
-        REPORTER_ASSERT(r, x == 15);
+        REPORTER_ASSERT(reporter, x == 15);
     }
 */
 
@@ -31,16 +31,18 @@
     }                                                                                \
     static void name(skiatest::Reporter* reporter)
 
-#define DEFINE_GPUTESTCLASS(uiname, classname, function)                                \
-    namespace skiatest {                                                                \
-        class classname : public GpuTest {                                              \
-        public:                                                                         \
-            static Test* Factory(void*) { return SkNEW(classname); }                    \
-        protected:                                                                      \
-            virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(uiname); }   \
-            virtual void onRun(Reporter* reporter) SK_OVERRIDE {                        \
-                function(reporter, GetGrContextFactory());                              \
-            }                                                                           \
-        };                                                                              \
-        static TestRegistry gReg_##classname(classname::Factory);                       \
-    }
+#define DEF_GPUTEST(name, reporter, factory)                                         \
+    static void name(skiatest::Reporter* reporter, GrContextFactory* factory);       \
+    namespace skiatest {                                                             \
+        class name##Class : public GpuTest {                                         \
+        public:                                                                      \
+            static Test* Factory(void*) { return SkNEW(name##Class); }               \
+        protected:                                                                   \
+            virtual void onGetName(SkString* name) SK_OVERRIDE { name->set(#name); } \
+            virtual void onRun(Reporter* reporter) SK_OVERRIDE {                     \
+                name(reporter, GetGrContextFactory());                               \
+            }                                                                        \
+        };                                                                           \
+        static TestRegistry gReg_##name##Class(name##Class::Factory);                \
+    }                                                                                \
+    static void name(skiatest::Reporter* reporter, GrContextFactory* factory)