| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright 2011 Google Inc. | 2  * Copyright 2011 Google Inc. | 
| 3  * | 3  * | 
| 4  * Use of this source code is governed by a BSD-style license that can be | 4  * Use of this source code is governed by a BSD-style license that can be | 
| 5  * found in the LICENSE file. | 5  * found in the LICENSE file. | 
| 6  */ | 6  */ | 
| 7 | 7 | 
| 8 /* | 8 /* | 
| 9  * Code for the "gm" (Golden Master) rendering comparison tool. | 9  * Code for the "gm" (Golden Master) rendering comparison tool. | 
| 10  * | 10  * | 
| (...skipping 1222 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1233 #if SK_SUPPORT_GPU | 1233 #if SK_SUPPORT_GPU | 
| 1234 DEFINE_string(gpuCacheSize, "", "<bytes> <count>: Limit the gpu cache to byte si
      ze or " | 1234 DEFINE_string(gpuCacheSize, "", "<bytes> <count>: Limit the gpu cache to byte si
      ze or " | 
| 1235               "object count. " TOSTRING(DEFAULT_CACHE_VALUE) " for either value 
      means " | 1235               "object count. " TOSTRING(DEFAULT_CACHE_VALUE) " for either value 
      means " | 
| 1236               "use the default. 0 for either disables the cache."); | 1236               "use the default. 0 for either disables the cache."); | 
| 1237 #endif | 1237 #endif | 
| 1238 DEFINE_bool(hierarchy, false, "Whether to use multilevel directory structure " | 1238 DEFINE_bool(hierarchy, false, "Whether to use multilevel directory structure " | 
| 1239             "when reading/writing files."); | 1239             "when reading/writing files."); | 
| 1240 DEFINE_string(ignoreErrorTypes, kDefaultIgnorableErrorTypes.asString(" ").c_str(
      ), | 1240 DEFINE_string(ignoreErrorTypes, kDefaultIgnorableErrorTypes.asString(" ").c_str(
      ), | 
| 1241               "Space-separated list of ErrorTypes that should be ignored. If any
       *other* error " | 1241               "Space-separated list of ErrorTypes that should be ignored. If any
       *other* error " | 
| 1242               "types are encountered, the tool will exit with a nonzero return v
      alue."); | 1242               "types are encountered, the tool will exit with a nonzero return v
      alue."); | 
| 1243 DEFINE_string(match, "",  "Only run tests whose name includes this substring/the
      se substrings " | 1243 DEFINE_string(match, "", "[~][^]substring[$] [...] of test name to run.\n" | 
| 1244               "(more than one can be supplied, separated by spaces)."); | 1244               "Multiple matches may be separated by spaces.\n" | 
|  | 1245               "~ causes a matching test to always be skipped\n" | 
|  | 1246               "^ requires the start of the test to match\n" | 
|  | 1247               "$ requires the end of the test to match\n" | 
|  | 1248               "^ and $ requires an exact match\n" | 
|  | 1249               "If a test does not match any list entry,\n" | 
|  | 1250               "it is skipped unless some list entry starts with ~"); | 
| 1245 DEFINE_string(mismatchPath, "", "Write images for tests that failed due to " | 1251 DEFINE_string(mismatchPath, "", "Write images for tests that failed due to " | 
| 1246               "pixel mismatches into this directory."); | 1252               "pixel mismatches into this directory."); | 
| 1247 DEFINE_string(modulo, "", "[--modulo <remainder> <divisor>]: only run tests for 
      which " | 1253 DEFINE_string(modulo, "", "[--modulo <remainder> <divisor>]: only run tests for 
      which " | 
| 1248               "testIndex %% divisor == remainder."); | 1254               "testIndex %% divisor == remainder."); | 
| 1249 DEFINE_bool(pdf, true, "Exercise the pdf rendering test pass."); | 1255 DEFINE_bool(pdf, true, "Exercise the pdf rendering test pass."); | 
| 1250 DEFINE_bool(pipe, true, "Exercise the SkGPipe replay test pass."); | 1256 DEFINE_bool(pipe, true, "Exercise the SkGPipe replay test pass."); | 
| 1251 DEFINE_string2(readPath, r, "", "Read reference images from this dir, and report
       " | 1257 DEFINE_string2(readPath, r, "", "Read reference images from this dir, and report
       " | 
| 1252                "any differences between those and the newly generated ones."); | 1258                "any differences between those and the newly generated ones."); | 
| 1253 DEFINE_bool(replay, true, "Exercise the SkPicture replay test pass."); | 1259 DEFINE_bool(replay, true, "Exercise the SkPicture replay test pass."); | 
| 1254 DEFINE_string2(resourcePath, i, "", "Directory that stores image resources."); | 1260 DEFINE_string2(resourcePath, i, "", "Directory that stores image resources."); | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1299 static int findConfig(const char config[]) { | 1305 static int findConfig(const char config[]) { | 
| 1300     for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) { | 1306     for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) { | 
| 1301         if (!strcmp(config, gRec[i].fName)) { | 1307         if (!strcmp(config, gRec[i].fName)) { | 
| 1302             return (int) i; | 1308             return (int) i; | 
| 1303         } | 1309         } | 
| 1304     } | 1310     } | 
| 1305     return -1; | 1311     return -1; | 
| 1306 } | 1312 } | 
| 1307 | 1313 | 
| 1308 static bool skip_name(SkCommandLineFlags::StringArray array, const char name[]) 
      { | 1314 static bool skip_name(SkCommandLineFlags::StringArray array, const char name[]) 
      { | 
| 1309     if (0 == array.count()) { | 1315     // FIXME: this duplicates the logic in test/skia_test.cpp -- consolidate | 
| 1310         // no names, so don't skip anything | 1316     int count = array.count(); | 
| 1311         return false; | 1317     size_t testLen = strlen(name); | 
| 1312     } | 1318     bool anyExclude = count == 0; | 
| 1313     for (int i = 0; i < array.count(); ++i) { | 1319     for (int i = 0; i < array.count(); ++i) { | 
| 1314         if (strstr(name, array[i])) { | 1320         const char* matchName = array[i]; | 
| 1315             // found the name, so don't skip | 1321         size_t matchLen = strlen(matchName); | 
| 1316             return false; | 1322         bool matchExclude, matchStart, matchEnd; | 
|  | 1323         if ((matchExclude = matchName[0] == '~')) { | 
|  | 1324             anyExclude = true; | 
|  | 1325             matchName++; | 
|  | 1326             matchLen--; | 
|  | 1327         } | 
|  | 1328         if ((matchStart = matchName[0] == '^')) { | 
|  | 1329             matchName++; | 
|  | 1330             matchLen--; | 
|  | 1331         } | 
|  | 1332         if ((matchEnd = matchName[matchLen - 1] == '$')) { | 
|  | 1333             matchLen--; | 
|  | 1334         } | 
|  | 1335         if (matchStart ? (!matchEnd || matchLen == testLen) | 
|  | 1336                 && strncmp(name, matchName, matchLen) == 0 | 
|  | 1337                 : matchEnd ? matchLen <= testLen | 
|  | 1338                 && strncmp(name + testLen - matchLen, matchName, matchLen) == 0 | 
|  | 1339                 : strstr(name, matchName) != 0) { | 
|  | 1340             return matchExclude; | 
| 1317         } | 1341         } | 
| 1318     } | 1342     } | 
| 1319     return true; | 1343     return !anyExclude; | 
| 1320 } | 1344 } | 
| 1321 | 1345 | 
| 1322 namespace skiagm { | 1346 namespace skiagm { | 
| 1323 #if SK_SUPPORT_GPU | 1347 #if SK_SUPPORT_GPU | 
| 1324 SkAutoTUnref<GrContext> gGrContext; | 1348 SkAutoTUnref<GrContext> gGrContext; | 
| 1325 /** | 1349 /** | 
| 1326  * Sets the global GrContext, accessible by individual GMs | 1350  * Sets the global GrContext, accessible by individual GMs | 
| 1327  */ | 1351  */ | 
| 1328 static void SetGr(GrContext* grContext) { | 1352 static void SetGr(GrContext* grContext) { | 
| 1329     SkSafeRef(grContext); | 1353     SkSafeRef(grContext); | 
| (...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2008     if (FLAGS_forceBWtext) { | 2032     if (FLAGS_forceBWtext) { | 
| 2009         canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); | 2033         canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); | 
| 2010     } | 2034     } | 
| 2011 } | 2035 } | 
| 2012 | 2036 | 
| 2013 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) | 2037 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) | 
| 2014 int main(int argc, char * const argv[]) { | 2038 int main(int argc, char * const argv[]) { | 
| 2015     return tool_main(argc, (char**) argv); | 2039     return tool_main(argc, (char**) argv); | 
| 2016 } | 2040 } | 
| 2017 #endif | 2041 #endif | 
| OLD | NEW | 
|---|