Index: dm/DM.cpp |
diff --git a/dm/DM.cpp b/dm/DM.cpp |
index 003145b92187a92743051a57bd1e5724612d5b2e..0077d5ac1b2a18415509954c342a455616b82e38 100644 |
--- a/dm/DM.cpp |
+++ b/dm/DM.cpp |
@@ -119,7 +119,7 @@ static void kick_off_tests(const SkTDArray<TestRegistry::Factory>& tests, |
} |
} |
-static void kick_off_skps(DM::Reporter* reporter, DM::TaskRunner* tasks) { |
+static void find_skps(SkTArray<SkString>* skps) { |
if (FLAGS_skps.isEmpty()) { |
return; |
} |
@@ -127,23 +127,28 @@ static void kick_off_skps(DM::Reporter* reporter, DM::TaskRunner* tasks) { |
SkOSFile::Iter it(FLAGS_skps[0], ".skp"); |
SkString filename; |
while (it.next(&filename)) { |
- if (SkCommandLineFlags::ShouldSkip(FLAGS_match, filename.c_str())) { |
- continue; |
+ if (!SkCommandLineFlags::ShouldSkip(FLAGS_match, filename.c_str())) { |
+ skps->push_back( |
+ SkOSPath::SkPathJoin(FLAGS_skps[0], filename.c_str())); |
} |
+ } |
+} |
- const SkString path = SkOSPath::SkPathJoin(FLAGS_skps[0], filename.c_str()); |
- |
- SkAutoTDelete<SkStream> stream(SkStream::NewFromFile(path.c_str())); |
+static void kick_off_skps(const SkTArray<SkString>& skps, |
+ DM::Reporter* reporter, DM::TaskRunner* tasks) { |
+ for (int i = 0; i < skps.count(); ++i) { |
+ SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(skps[i].c_str())); |
if (stream.get() == NULL) { |
- SkDebugf("Could not read %s.\n", path.c_str()); |
+ SkDebugf("Could not read %s.\n", skps[i].c_str()); |
exit(1); |
} |
SkAutoTUnref<SkPicture> pic(SkPicture::CreateFromStream(stream.get())); |
if (pic.get() == NULL) { |
- SkDebugf("Could not read %s as an SkPicture.\n", path.c_str()); |
+ SkDebugf("Could not read %s as an SkPicture.\n", skps[i].c_str()); |
exit(1); |
} |
+ SkString filename = SkOSPath::SkBasename(skps[i].c_str()); |
tasks->add(SkNEW_ARGS(DM::SKPTask, (reporter, tasks, pic, filename))); |
tasks->add(SkNEW_ARGS(DM::PDFTask, (reporter, tasks, pic, filename, |
RASTERIZE_PDF_PROC))); |
@@ -221,13 +226,16 @@ int dm_main() { |
append_matching_factories<Test>(TestRegistry::Head(), &tests); |
} |
- SkDebugf("%d GMs x %d configs, %d tests\n", |
- gms.count(), configs.count(), tests.count()); |
+ SkTArray<SkString> skps; |
+ find_skps(&skps); |
+ |
+ SkDebugf("%d GMs x %d configs, %d tests, %d pictures\n", |
+ gms.count(), configs.count(), tests.count(), skps.count()); |
DM::Reporter reporter; |
DM::TaskRunner tasks(FLAGS_threads, FLAGS_gpuThreads); |
kick_off_gms(gms, configs, gpuAPI, *expectations, &reporter, &tasks); |
kick_off_tests(tests, &reporter, &tasks); |
- kick_off_skps(&reporter, &tasks); |
+ kick_off_skps(skps, &reporter, &tasks); |
tasks.wait(); |
SkDebugf("\n"); |