diff options
Diffstat (limited to 'chromium/third_party/skia/dm/DMTestTask.h')
-rw-r--r-- | chromium/third_party/skia/dm/DMTestTask.h | 62 |
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 |