1#include "DMTestTask.h"
2#include "DMUtil.h"
3#include "SkCommandLineFlags.h"
4#include "SkCommonFlags.h"
5
6DEFINE_bool2(pathOpsExtended, x, false, "Run extended pathOps tests.");
7
8namespace DM {
9
10bool TestReporter::allowExtendedTest() const { return FLAGS_pathOpsExtended; }
11bool TestReporter::verbose()           const { return FLAGS_veryVerbose; }
12
13static SkString test_name(const char* name) {
14    SkString result("test ");
15    result.append(name);
16    return result;
17}
18
19CpuTestTask::CpuTestTask(Reporter* reporter,
20                         TaskRunner* taskRunner,
21                         skiatest::TestRegistry::Factory factory)
22    : CpuTask(reporter, taskRunner)
23    , fTest(factory(NULL))
24    , fName(test_name(fTest->getName())) {}
25
26GpuTestTask::GpuTestTask(Reporter* reporter,
27                         TaskRunner* taskRunner,
28                         skiatest::TestRegistry::Factory factory)
29    : GpuTask(reporter, taskRunner)
30    , fTest(factory(NULL))
31    , fName(test_name(fTest->getName())) {}
32
33
34void CpuTestTask::draw() {
35    fTest->setReporter(&fTestReporter);
36    fTest->run();
37    if (!fTest->passed()) {
38        this->fail(fTestReporter.failure());
39    }
40}
41
42void GpuTestTask::draw(GrContextFactory* grFactory) {
43    fTest->setGrContextFactory(grFactory);
44    fTest->setReporter(&fTestReporter);
45    fTest->run();
46    if (!fTest->passed()) {
47        this->fail(fTestReporter.failure());
48    }
49}
50
51bool GpuTestTask::shouldSkip() const {
52    return kGPUDisabled;
53}
54
55}  // namespace DM
56