| OLD | NEW |
| 1 // Main binary for DM. | 1 // Main binary for DM. |
| 2 // For a high-level overview, please see dm/README. | 2 // For a high-level overview, please see dm/README. |
| 3 | 3 |
| 4 #include "SkBenchmark.h" | 4 #include "SkBenchmark.h" |
| 5 #include "SkCommandLineFlags.h" | 5 #include "SkCommandLineFlags.h" |
| 6 #include "SkForceLinking.h" | 6 #include "SkForceLinking.h" |
| 7 #include "SkGraphics.h" | 7 #include "SkGraphics.h" |
| 8 #include "SkPicture.h" | 8 #include "SkPicture.h" |
| 9 #include "SkString.h" | 9 #include "SkString.h" |
| 10 #include "Test.h" | 10 #include "Test.h" |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 SkAutoTUnref<SkPicture> pic(SkPicture::CreateFromStream(stream.get())); | 175 SkAutoTUnref<SkPicture> pic(SkPicture::CreateFromStream(stream.get())); |
| 176 if (pic.get() == NULL) { | 176 if (pic.get() == NULL) { |
| 177 SkDebugf("Could not read %s as an SkPicture.\n", path.c_str()); | 177 SkDebugf("Could not read %s as an SkPicture.\n", path.c_str()); |
| 178 exit(1); | 178 exit(1); |
| 179 } | 179 } |
| 180 | 180 |
| 181 tasks->add(SkNEW_ARGS(DM::SKPTask, (reporter, tasks, pic.detach(), filen
ame))); | 181 tasks->add(SkNEW_ARGS(DM::SKPTask, (reporter, tasks, pic.detach(), filen
ame))); |
| 182 } | 182 } |
| 183 } | 183 } |
| 184 | 184 |
| 185 static void report_failures(const DM::Reporter& reporter) { | 185 static void report_failures(const SkTArray<SkString>& failures) { |
| 186 SkTArray<SkString> failures; | |
| 187 reporter.getFailures(&failures); | |
| 188 | |
| 189 if (failures.count() == 0) { | 186 if (failures.count() == 0) { |
| 190 return; | 187 return; |
| 191 } | 188 } |
| 192 | 189 |
| 193 SkDebugf("Failures:\n"); | 190 SkDebugf("Failures:\n"); |
| 194 for (int i = 0; i < failures.count(); i++) { | 191 for (int i = 0; i < failures.count(); i++) { |
| 195 SkDebugf(" %s\n", failures[i].c_str()); | 192 SkDebugf(" %s\n", failures[i].c_str()); |
| 196 } | 193 } |
| 194 SkDebugf("%d failures.\n", failures.count()); |
| 197 } | 195 } |
| 198 | 196 |
| 199 template <typename T, typename Registry> | 197 template <typename T, typename Registry> |
| 200 static void append_matching_factories(Registry* head, SkTDArray<typename Registr
y::Factory>* out) { | 198 static void append_matching_factories(Registry* head, SkTDArray<typename Registr
y::Factory>* out) { |
| 201 for (const Registry* reg = head; reg != NULL; reg = reg->next()) { | 199 for (const Registry* reg = head; reg != NULL; reg = reg->next()) { |
| 202 SkAutoTDelete<T> forName(reg->factory()(NULL)); | 200 SkAutoTDelete<T> forName(reg->factory()(NULL)); |
| 203 if (!SkCommandLineFlags::ShouldSkip(FLAGS_match, forName->getName())) { | 201 if (!SkCommandLineFlags::ShouldSkip(FLAGS_match, forName->getName())) { |
| 204 *out->append() = reg->factory(); | 202 *out->append() = reg->factory(); |
| 205 } | 203 } |
| 206 } | 204 } |
| 207 } | 205 } |
| 208 | 206 |
| 209 int tool_main(int argc, char** argv); | 207 int tool_main(int argc, char** argv); |
| 210 int tool_main(int argc, char** argv) { | 208 int tool_main(int argc, char** argv) { |
| 211 SkGraphics::Init(); | 209 SkAutoGraphics ag; |
| 212 SkCommandLineFlags::Parse(argc, argv); | 210 SkCommandLineFlags::Parse(argc, argv); |
| 213 #if SK_ENABLE_INST_COUNT | 211 #if SK_ENABLE_INST_COUNT |
| 214 gPrintInstCount = FLAGS_leaks; | 212 gPrintInstCount = FLAGS_leaks; |
| 215 #endif | 213 #endif |
| 216 GM::SetResourcePath(FLAGS_resources[0]); | 214 GM::SetResourcePath(FLAGS_resources[0]); |
| 217 SkBenchmark::SetResourcePath(FLAGS_resources[0]); | 215 SkBenchmark::SetResourcePath(FLAGS_resources[0]); |
| 218 Test::SetResourcePath(FLAGS_resources[0]); | 216 Test::SetResourcePath(FLAGS_resources[0]); |
| 219 | 217 |
| 220 SkTArray<SkString> configs; | 218 SkTArray<SkString> configs; |
| 221 for (int i = 0; i < FLAGS_config.count(); i++) { | 219 for (int i = 0; i < FLAGS_config.count(); i++) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 gms.count(), benches.count(), configs.count(), tests.count()); | 251 gms.count(), benches.count(), configs.count(), tests.count()); |
| 254 DM::Reporter reporter; | 252 DM::Reporter reporter; |
| 255 DM::TaskRunner tasks(FLAGS_threads, FLAGS_gpuThreads); | 253 DM::TaskRunner tasks(FLAGS_threads, FLAGS_gpuThreads); |
| 256 kick_off_gms(gms, configs, *expectations, &reporter, &tasks); | 254 kick_off_gms(gms, configs, *expectations, &reporter, &tasks); |
| 257 kick_off_benches(benches, configs, &reporter, &tasks); | 255 kick_off_benches(benches, configs, &reporter, &tasks); |
| 258 kick_off_tests(tests, &reporter, &tasks); | 256 kick_off_tests(tests, &reporter, &tasks); |
| 259 kick_off_skps(&reporter, &tasks); | 257 kick_off_skps(&reporter, &tasks); |
| 260 tasks.wait(); | 258 tasks.wait(); |
| 261 | 259 |
| 262 SkDebugf("\n"); | 260 SkDebugf("\n"); |
| 263 report_failures(reporter); | |
| 264 | 261 |
| 265 SkGraphics::Term(); | 262 SkTArray<SkString> failures; |
| 266 | 263 reporter.getFailures(&failures); |
| 267 return reporter.failed() > 0; | 264 report_failures(failures); |
| 265 return failures.count() > 0; |
| 268 } | 266 } |
| 269 | 267 |
| 270 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) | 268 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) |
| 271 int main(int argc, char** argv) { | 269 int main(int argc, char** argv) { |
| 272 return tool_main(argc, argv); | 270 return tool_main(argc, argv); |
| 273 } | 271 } |
| 274 #endif | 272 #endif |
| OLD | NEW |