Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / dm / DMTestTask.cpp
1 #include "DMTestTask.h"
2 #include "DMUtil.h"
3 #include "SkCommandLineFlags.h"
4 #include "SkCommonFlags.h"
5
6 // When PathOps threaded tests get going, they're briefly a big consumer of lots of RAM.
7 // We disable the internal threading there by default on 32-bit builds.
8 static const bool is32Bit = sizeof(void*) == 4;
9
10 DEFINE_bool2(pathOpsExtended,     x, false, "Run extended pathOps tests.");
11 DEFINE_bool2(pathOpsSingleThread, z, is32Bit, "Disallow pathOps tests from using threads.");
12
13 namespace DM {
14
15 bool TestReporter::allowExtendedTest() const { return FLAGS_pathOpsExtended; }
16 bool TestReporter::allowThreaded()     const { return !FLAGS_pathOpsSingleThread; }
17 bool TestReporter::verbose()           const { return FLAGS_veryVerbose; }
18
19 static SkString test_name(const char* name) {
20     SkString result("test ");
21     result.append(name);
22     return result;
23 }
24
25 CpuTestTask::CpuTestTask(Reporter* reporter,
26                          TaskRunner* taskRunner,
27                          skiatest::TestRegistry::Factory factory)
28     : CpuTask(reporter, taskRunner)
29     , fTest(factory(NULL))
30     , fName(test_name(fTest->getName())) {}
31
32 GpuTestTask::GpuTestTask(Reporter* reporter,
33                          TaskRunner* taskRunner,
34                          skiatest::TestRegistry::Factory factory)
35     : GpuTask(reporter, taskRunner)
36     , fTest(factory(NULL))
37     , fName(test_name(fTest->getName())) {}
38
39
40 void CpuTestTask::draw() {
41     fTest->setReporter(&fTestReporter);
42     fTest->run();
43     if (!fTest->passed()) {
44         this->fail(fTestReporter.failure());
45     }
46 }
47
48 void GpuTestTask::draw(GrContextFactory* grFactory) {
49     fTest->setGrContextFactory(grFactory);
50     fTest->setReporter(&fTestReporter);
51     fTest->run();
52     if (!fTest->passed()) {
53         this->fail(fTestReporter.failure());
54     }
55 }
56
57 bool GpuTestTask::shouldSkip() const {
58     return kGPUDisabled;
59 }
60
61 }  // namespace DM