blob: ceb0e12e968f6d251e7ce4f16a527eebf359dc55 [file] [log] [blame]
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +00001#ifndef DMTestTask_DEFINED
2#define DMTestTask_DEFINED
3
4#include "DMReporter.h"
5#include "DMTask.h"
6#include "DMTaskRunner.h"
7#include "SkString.h"
8#include "SkTemplates.h"
9#include "Test.h"
10
11// Runs a unit test.
12namespace DM {
13
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000014class TestReporter : public skiatest::Reporter {
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +000015public:
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000016 TestReporter() {}
17
18 const char* failure() const { return fFailure.c_str(); }
19
20private:
21 virtual bool allowExtendedTest() const SK_OVERRIDE;
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000022 virtual bool verbose() const SK_OVERRIDE;
23
24 virtual void onReportFailed(const SkString& desc) SK_OVERRIDE {
25 fFailure = desc;
26 }
27
28 SkString fFailure;
29};
30
31class CpuTestTask : public CpuTask {
32public:
33 CpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +000034
35 virtual void draw() SK_OVERRIDE;
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +000036 virtual bool shouldSkip() const SK_OVERRIDE { return false; }
37 virtual SkString name() const SK_OVERRIDE { return fName; }
38
39private:
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000040 TestReporter fTestReporter;
41 SkAutoTDelete<skiatest::Test> fTest;
42 const SkString fName;
43};
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +000044
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000045class GpuTestTask : public GpuTask {
46public:
47 GpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +000048
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000049 virtual void draw(GrContextFactory*) SK_OVERRIDE;
commit-bot@chromium.org787227d2014-03-26 21:26:15 +000050 virtual bool shouldSkip() const SK_OVERRIDE;
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000051 virtual SkString name() const SK_OVERRIDE { return fName; }
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +000052
commit-bot@chromium.orgef57b7e2014-02-28 20:31:31 +000053private:
commit-bot@chromium.org0dc5bd12014-02-26 16:31:22 +000054 TestReporter fTestReporter;
55 SkAutoTDelete<skiatest::Test> fTest;
56 const SkString fName;
57};
58
59} // namespace DM
60
61#endif // DMTestTask_DEFINED