summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/dm/DMTestTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/dm/DMTestTask.h')
-rw-r--r--chromium/third_party/skia/dm/DMTestTask.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/chromium/third_party/skia/dm/DMTestTask.h b/chromium/third_party/skia/dm/DMTestTask.h
new file mode 100644
index 00000000000..a65f096c58d
--- /dev/null
+++ b/chromium/third_party/skia/dm/DMTestTask.h
@@ -0,0 +1,62 @@
+#ifndef DMTestTask_DEFINED
+#define DMTestTask_DEFINED
+
+#include "DMReporter.h"
+#include "DMTask.h"
+#include "DMTaskRunner.h"
+#include "SkString.h"
+#include "SkTemplates.h"
+#include "Test.h"
+
+// Runs a unit test.
+namespace DM {
+
+class TestReporter : public skiatest::Reporter {
+public:
+ TestReporter() {}
+
+ const char* failure() const { return fFailure.c_str(); }
+
+private:
+ virtual bool allowExtendedTest() const SK_OVERRIDE;
+ virtual bool allowThreaded() const SK_OVERRIDE;
+ virtual bool verbose() const SK_OVERRIDE;
+
+ virtual void onReportFailed(const SkString& desc) SK_OVERRIDE {
+ fFailure = desc;
+ }
+
+ SkString fFailure;
+};
+
+class CpuTestTask : public CpuTask {
+public:
+ CpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
+
+ virtual void draw() SK_OVERRIDE;
+ virtual bool shouldSkip() const SK_OVERRIDE { return false; }
+ virtual SkString name() const SK_OVERRIDE { return fName; }
+
+private:
+ TestReporter fTestReporter;
+ SkAutoTDelete<skiatest::Test> fTest;
+ const SkString fName;
+};
+
+class GpuTestTask : public GpuTask {
+public:
+ GpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
+
+ virtual void draw(GrContextFactory*) SK_OVERRIDE;
+ virtual bool shouldSkip() const SK_OVERRIDE;
+ virtual SkString name() const SK_OVERRIDE { return fName; }
+
+private:
+ TestReporter fTestReporter;
+ SkAutoTDelete<skiatest::Test> fTest;
+ const SkString fName;
+};
+
+} // namespace DM
+
+#endif // DMTestTask_DEFINED