| Index: tests/skia_test.cpp
|
| diff --git a/tests/skia_test.cpp b/tests/skia_test.cpp
|
| index 050a241ccd7ea9fec39b29afe0d67b8ed6cf3c72..48d87719d562c31c4cb7a3116f49d96fb41e4992 100644
|
| --- a/tests/skia_test.cpp
|
| +++ b/tests/skia_test.cpp
|
| @@ -17,7 +17,6 @@
|
|
|
| #if SK_SUPPORT_GPU
|
| #include "GrContext.h"
|
| -#include "GrContextFactory.h"
|
| #endif
|
|
|
| using namespace skiatest;
|
| @@ -30,6 +29,8 @@
|
| "^ and $ requires an exact match\n" \
|
| "If a test does not match any list entry,\n" \
|
| "it is skipped unless some list entry starts with ~");
|
| +DEFINE_string2(tmpDir, t, NULL, "tmp directory for tests to use.");
|
| +DEFINE_string2(resourcePath, i, "resources", "directory for test resources.");
|
| DEFINE_bool2(extendedTest, x, false, "run extended tests for pathOps.");
|
| DEFINE_bool2(leaks, l, false, "show leaked ref cnt'd objects.");
|
| DEFINE_bool2(single, z, false, "run tests on a single thread internally.");
|
| @@ -39,7 +40,6 @@
|
| DEFINE_bool(gpu, true, "whether or not to run GPU tests.");
|
| DEFINE_int32(threads, SkThreadPool::kThreadPerCore,
|
| "Run threadsafe tests on a threadpool with this many threads.");
|
| -DEFINE_string2(resourcePath, i, "resources", "directory for test resources.");
|
|
|
| // need to explicitly declare this, or we get some weird infinite loop llist
|
| template TestRegistry* TestRegistry::gHead;
|
| @@ -98,6 +98,16 @@
|
| const int fTotal;
|
| };
|
|
|
| +SkString Test::GetTmpDir() {
|
| + const char* tmpDir = FLAGS_tmpDir.isEmpty() ? NULL : FLAGS_tmpDir[0];
|
| + return SkString(tmpDir);
|
| +}
|
| +
|
| +SkString Test::GetResourcePath() {
|
| + const char* resourcePath = FLAGS_resourcePath.isEmpty() ? NULL : FLAGS_resourcePath[0];
|
| + return SkString(resourcePath);
|
| +}
|
| +
|
| // Deletes self when run.
|
| class SkTestRunnable : public SkRunnable {
|
| public:
|
| @@ -134,7 +144,6 @@
|
| int tool_main(int argc, char** argv) {
|
| SkCommandLineFlags::SetUsage("");
|
| SkCommandLineFlags::Parse(argc, argv);
|
| - Test::SetResourcePath(FLAGS_resourcePath[0]);
|
|
|
| #if SK_ENABLE_INST_COUNT
|
| if (FLAGS_leaks) {
|
| @@ -190,7 +199,7 @@
|
| int skipCount = 0;
|
|
|
| SkThreadPool threadpool(FLAGS_threads);
|
| - SkTArray<Test*> gpuTests; // Always passes ownership to an SkTestRunnable
|
| + SkTArray<Test*> unsafeTests; // Always passes ownership to an SkTestRunnable
|
|
|
| DebugfReporter reporter(toRun);
|
| for (int i = 0; i < total; i++) {
|
| @@ -198,20 +207,16 @@
|
| if (!should_run(test->getName(), test->isGPUTest())) {
|
| ++skipCount;
|
| } else if (test->isGPUTest()) {
|
| - gpuTests.push_back() = test.detach();
|
| + unsafeTests.push_back() = test.detach();
|
| } else {
|
| threadpool.add(SkNEW_ARGS(SkTestRunnable, (test.detach(), &failCount)));
|
| }
|
| }
|
|
|
| -#if SK_SUPPORT_GPU
|
| - GrContextFactory grContextFactory;
|
| - // Run GPU tests on this thread.
|
| - for (int i = 0; i < gpuTests.count(); i++) {
|
| - gpuTests[i]->setGrContextFactory(&grContextFactory);
|
| - SkNEW_ARGS(SkTestRunnable, (gpuTests[i], &failCount))->run();
|
| - }
|
| -#endif
|
| + // Run the tests that aren't threadsafe.
|
| + for (int i = 0; i < unsafeTests.count(); i++) {
|
| + SkNEW_ARGS(SkTestRunnable, (unsafeTests[i], &failCount))->run();
|
| + }
|
|
|
| // Block until threaded tests finish.
|
| threadpool.wait();
|
| @@ -221,6 +226,7 @@
|
| toRun, failCount, skipCount, reporter.countTests());
|
| }
|
| SkGraphics::Term();
|
| + GpuTest::DestroyContexts();
|
|
|
| SkDebugf("\n");
|
| return (failCount == 0) ? 0 : 1;
|
|
|