Initial CL to create GrBatchTest infrastructure

BUG=skia:

Review URL: https://codereview.chromium.org/1109153004
diff --git a/src/gpu/GrBatchTest.h b/src/gpu/GrBatchTest.h
new file mode 100644
index 0000000..3199354
--- /dev/null
+++ b/src/gpu/GrBatchTest.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrBatchTest_DEFINED
+#define GrBatchTest_DEFINED
+
+#include "GrTestUtils.h"
+
+#ifdef GR_TEST_UTILS
+
+class GrBatch;
+class GrContext;
+class SkRandom;
+
+/*
+ * This file defines some macros for testing batches, and also declares functions / objects which
+ * are generally useful for GrBatch testing
+ */
+
+// Batches should define test functions using BATCH_TEST_DEFINE.  The other macros defined below
+// are used exclusively by the test harness.
+typedef GrBatch* (*BatchTestFunc)(SkRandom* random, GrContext* context);
+#define BATCH_TEST_DEFINE(Batch) \
+    GrBatch* Batch##__Test(SkRandom* random, GrContext* context)
+#define BATCH_TEST_EXTERN(Batch) \
+    extern GrBatch* Batch##__Test(SkRandom*, GrContext* context);
+#define BATCH_TEST_ENTRY(Batch) \
+        Batch##__Test
+
+GrBatch* GrRandomBatch(SkRandom*, GrContext*);
+
+#endif
+#endif