10dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org#include "DMTestTask.h" 20dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org#include "DMUtil.h" 30dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org#include "SkCommandLineFlags.h" 40dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org 5125c6cdefe3d297319de6cdbf8210c9329abe99acommit-bot@chromium.org// When PathOps threaded tests get going, they're briefly a big consumer of lots of RAM. 6125c6cdefe3d297319de6cdbf8210c9329abe99acommit-bot@chromium.org// We disable the internal threading there by default on 32-bit builds. 7125c6cdefe3d297319de6cdbf8210c9329abe99acommit-bot@chromium.orgstatic const bool is32Bit = sizeof(void*) == 4; 8125c6cdefe3d297319de6cdbf8210c9329abe99acommit-bot@chromium.org 90dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.orgDEFINE_bool2(pathOpsExtended, x, false, "Run extended pathOps tests."); 10125c6cdefe3d297319de6cdbf8210c9329abe99acommit-bot@chromium.orgDEFINE_bool2(pathOpsSingleThread, z, is32Bit, "Disallow pathOps tests from using threads."); 110dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.orgDEFINE_bool2(pathOpsVerbose, V, false, "Tell pathOps tests to be verbose."); 120dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org 130dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.orgnamespace DM { 140dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org 15ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgbool TestReporter::allowExtendedTest() const { return FLAGS_pathOpsExtended; } 16ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgbool TestReporter::allowThreaded() const { return !FLAGS_pathOpsSingleThread; } 17ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgbool TestReporter::verbose() const { return FLAGS_pathOpsVerbose; } 18ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org 1938aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.orgstatic SkString test_name(const char* name) { 2038aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.org SkString result("test "); 2138aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.org result.append(name); 2238aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.org return result; 2338aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.org} 2438aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.org 25ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgCpuTestTask::CpuTestTask(Reporter* reporter, 26ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org TaskRunner* taskRunner, 27ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org skiatest::TestRegistry::Factory factory) 28ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org : CpuTask(reporter, taskRunner) 290dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org , fTest(factory(NULL)) 3038aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.org , fName(test_name(fTest->getName())) {} 310dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org 32ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgGpuTestTask::GpuTestTask(Reporter* reporter, 33ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org TaskRunner* taskRunner, 34ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org skiatest::TestRegistry::Factory factory) 35ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org : GpuTask(reporter, taskRunner) 36ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org , fTest(factory(NULL)) 37ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org , fName(test_name(fTest->getName())) {} 38ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org 39ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org 40ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgvoid CpuTestTask::draw() { 410dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org fTest->setReporter(&fTestReporter); 420dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org fTest->run(); 430dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org if (!fTest->passed()) { 440dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org this->fail(fTestReporter.failure()); 450dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org } 460dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org} 470dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org 48ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgvoid GpuTestTask::draw(GrContextFactory* grFactory) { 49ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org fTest->setGrContextFactory(grFactory); 50ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org fTest->setReporter(&fTestReporter); 51ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org fTest->run(); 52ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org if (!fTest->passed()) { 53ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org this->fail(fTestReporter.failure()); 54ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org } 55ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org} 560dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org 57787227d3560bd8021394b76ada2cb184ecf5c919commit-bot@chromium.orgbool GpuTestTask::shouldSkip() const { 58787227d3560bd8021394b76ada2cb184ecf5c919commit-bot@chromium.org return kGPUDisabled; 59787227d3560bd8021394b76ada2cb184ecf5c919commit-bot@chromium.org} 60787227d3560bd8021394b76ada2cb184ecf5c919commit-bot@chromium.org 610dc5bd149a8b69e8dc6d3b4713b827659c9b0a6bcommit-bot@chromium.org} // namespace DM 62