Home | History | Annotate | Download | only in dm
      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 allowThreaded()     const SK_OVERRIDE;
     23   virtual bool verbose()           const SK_OVERRIDE;
     24 
     25   virtual void onReportFailed(const SkString& desc) SK_OVERRIDE {
     26       fFailure = desc;
     27   }
     28 
     29   SkString fFailure;
     30 };
     31 
     32 class CpuTestTask : public CpuTask {
     33 public:
     34     CpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
     35 
     36     virtual void draw() SK_OVERRIDE;
     37     virtual bool shouldSkip() const SK_OVERRIDE { return false; }
     38     virtual SkString name() const SK_OVERRIDE { return fName; }
     39 
     40 private:
     41     TestReporter fTestReporter;
     42     SkAutoTDelete<skiatest::Test> fTest;
     43     const SkString fName;
     44 };
     45 
     46 class GpuTestTask : public GpuTask {
     47 public:
     48     GpuTestTask(Reporter*, TaskRunner*, skiatest::TestRegistry::Factory);
     49 
     50     virtual void draw(GrContextFactory*) SK_OVERRIDE;
     51     virtual bool shouldSkip() const SK_OVERRIDE;
     52     virtual SkString name() const SK_OVERRIDE { return fName; }
     53 
     54 private:
     55     TestReporter fTestReporter;
     56     SkAutoTDelete<skiatest::Test> fTest;
     57     const SkString fName;
     58 };
     59 
     60 }  // namespace DM
     61 
     62 #endif // DMTestTask_DEFINED
     63