Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Side by Side Diff: dm/DM.cpp

Issue 546873002: Start to rework DM JSON handling. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: back to one hash Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | dm/DMExpectations.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "CrashHandler.h" 4 #include "CrashHandler.h"
5 #include "LazyDecodeBitmap.h" 5 #include "LazyDecodeBitmap.h"
6 #include "SkCommonFlags.h" 6 #include "SkCommonFlags.h"
7 #include "SkForceLinking.h" 7 #include "SkForceLinking.h"
8 #include "SkGraphics.h" 8 #include "SkGraphics.h"
9 #include "SkOSFile.h"
9 #include "SkPicture.h" 10 #include "SkPicture.h"
10 #include "SkString.h" 11 #include "SkString.h"
11 #include "SkTaskGroup.h" 12 #include "SkTaskGroup.h"
12 #include "Test.h" 13 #include "Test.h"
13 #include "gm.h" 14 #include "gm.h"
14 #include "sk_tool_utils.h" 15 #include "sk_tool_utils.h"
15 #include "sk_tool_utils_flags.h" 16 #include "sk_tool_utils_flags.h"
16 17
17 #include "DMCpuGMTask.h" 18 #include "DMCpuGMTask.h"
18 #include "DMGpuGMTask.h" 19 #include "DMGpuGMTask.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 gPrintInstCount = FLAGS_leaks; 202 gPrintInstCount = FLAGS_leaks;
202 #endif 203 #endif
203 204
204 SkTArray<SkString> configs; 205 SkTArray<SkString> configs;
205 for (int i = 0; i < FLAGS_config.count(); i++) { 206 for (int i = 0; i < FLAGS_config.count(); i++) {
206 SkStrSplit(FLAGS_config[i], ", ", &configs); 207 SkStrSplit(FLAGS_config[i], ", ", &configs);
207 } 208 }
208 209
209 GrGLStandard gpuAPI = get_gl_standard(); 210 GrGLStandard gpuAPI = get_gl_standard();
210 211
211 SkTDArray<GMRegistry::Factory> gms; 212 SkAutoTDelete<DM::Expectations> expectations(SkNEW(DM::Expectations));
212 SkAutoTDelete<DM::Expectations> expectations(SkNEW(DM::NoExpectations)); 213 if (FLAGS_expectations.count() > 0) {
213 if (FLAGS_gms) { 214 expectations.reset(DM::WriteTask::Expectations::Create(FLAGS_expectation s[0]));
214 append_matching_factories<GM>(GMRegistry::Head(), &gms); 215 if (!expectations.get()) {
215 216 return 1;
216 if (FLAGS_expectations.count() > 0) {
217 const char* path = FLAGS_expectations[0];
218 if (sk_isdir(path)) {
219 expectations.reset(SkNEW_ARGS(DM::WriteTask::Expectations, (path )));
220 } else {
221 expectations.reset(SkNEW_ARGS(DM::JsonExpectations, (path)));
222 }
223 } 217 }
224 } 218 }
225 219
220 SkTDArray<GMRegistry::Factory> gms;
221 if (FLAGS_gms) {
222 append_matching_factories<GM>(GMRegistry::Head(), &gms);
223 }
224
226 SkTDArray<TestRegistry::Factory> tests; 225 SkTDArray<TestRegistry::Factory> tests;
227 if (FLAGS_tests) { 226 if (FLAGS_tests) {
228 append_matching_factories<Test>(TestRegistry::Head(), &tests); 227 append_matching_factories<Test>(TestRegistry::Head(), &tests);
229 } 228 }
230 229
231 SkTArray<SkString> skps; 230 SkTArray<SkString> skps;
232 find_skps(&skps); 231 find_skps(&skps);
233 232
234 SkDebugf("%d GMs x %d configs, %d tests, %d pictures\n", 233 SkDebugf("%d GMs x %d configs, %d tests, %d pictures\n",
235 gms.count(), configs.count(), tests.count(), skps.count()); 234 gms.count(), configs.count(), tests.count(), skps.count());
236 DM::Reporter reporter; 235 DM::Reporter reporter;
237 236
238 DM::TaskRunner tasks; 237 DM::TaskRunner tasks;
239 kick_off_tests(tests, &reporter, &tasks); 238 kick_off_tests(tests, &reporter, &tasks);
240 kick_off_gms(gms, configs, gpuAPI, *expectations, &reporter, &tasks); 239 kick_off_gms(gms, configs, gpuAPI, *expectations, &reporter, &tasks);
241 kick_off_skps(skps, &reporter, &tasks); 240 kick_off_skps(skps, &reporter, &tasks);
242 tasks.wait(); 241 tasks.wait();
243 242
243 DM::WriteTask::DumpJson();
244
244 SkDebugf("\n"); 245 SkDebugf("\n");
245 #ifdef SK_DEBUG 246 #ifdef SK_DEBUG
246 if (FLAGS_portableFonts && FLAGS_reportUsedChars) { 247 if (FLAGS_portableFonts && FLAGS_reportUsedChars) {
247 sk_tool_utils::report_used_chars(); 248 sk_tool_utils::report_used_chars();
248 } 249 }
249 #endif 250 #endif
250 251
251 SkTArray<SkString> failures; 252 SkTArray<SkString> failures;
252 reporter.getFailures(&failures); 253 reporter.getFailures(&failures);
253 report_failures(failures); 254 report_failures(failures);
254 return failures.count() > 0; 255 return failures.count() > 0;
255 } 256 }
256 257
257 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) 258 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
258 int main(int argc, char** argv) { 259 int main(int argc, char** argv) {
259 SkCommandLineFlags::Parse(argc, argv); 260 SkCommandLineFlags::Parse(argc, argv);
260 return dm_main(); 261 return dm_main();
261 } 262 }
262 #endif 263 #endif
OLDNEW
« no previous file with comments | « no previous file | dm/DMExpectations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698