Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / dm / DMTestTask.h
1 #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.
12 namespace DM {
13
14 class TestReporter : public skiatest::Reporter {
15 public:
16   TestReporter() {}
17
18   const char* failure() const { return fFailure.c_str(); }
19
20 private:
21   virtual bool allowExtendedTest() const SK_OVERRIDE;
22   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
31 class CpuTestTask : public CpuTask {
32 public:
33     CpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
34
35     virtual void draw() SK_OVERRIDE;
36     virtual bool shouldSkip() const SK_OVERRIDE { return false; }
37     virtual SkString name() const SK_OVERRIDE { return fName; }
38
39 private:
40     TestReporter fTestReporter;
41     SkAutoTDelete<skiatest::Test> fTest;
42     const SkString fName;
43 };
44
45 class GpuTestTask : public GpuTask {
46 public:
47     GpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
48
49     virtual void draw(GrContextFactory*) SK_OVERRIDE;
50     virtual bool shouldSkip() const SK_OVERRIDE;
51     virtual SkString name() const SK_OVERRIDE { return fName; }
52
53 private:
54     TestReporter fTestReporter;
55     SkAutoTDelete<skiatest::Test> fTest;
56     const SkString fName;
57 };
58
59 }  // namespace DM
60
61 #endif // DMTestTask_DEFINED