1 #include "DMTestTask.h" 2 #include "DMUtil.h" 3 #include "SkCommandLineFlags.h" 4 5 // When PathOps threaded tests get going, they're briefly a big consumer of lots of RAM. 6 // We disable the internal threading there by default on 32-bit builds. 7 static const bool is32Bit = sizeof(void*) == 4; 8 9 DEFINE_bool2(pathOpsExtended, x, false, "Run extended pathOps tests."); 10 DEFINE_bool2(pathOpsSingleThread, z, is32Bit, "Disallow pathOps tests from using threads."); 11 DEFINE_bool2(pathOpsVerbose, V, false, "Tell pathOps tests to be verbose."); 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_pathOpsVerbose; } 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 62