Chromium Code Reviews| Index: gm/gmmain.cpp |
| =================================================================== |
| --- gm/gmmain.cpp (revision 8622) |
| +++ gm/gmmain.cpp (working copy) |
| @@ -174,13 +174,14 @@ |
| | SkGPipeWriter::kSharedAddressSpace_Flag } |
| }; |
| +const static ErrorCombination kDefaultIgnorableErrorTypes = ErrorCombination() |
| + .plus(kMissingExpectations_ErrorType) |
| + .plus(kIntentionallySkipped_ErrorType); |
| + |
| class GMMain { |
| public: |
| - GMMain() : fUseFileHierarchy(false), fMismatchPath(NULL), fTestsRun(0), |
| - fRenderModesEncountered(1) { |
| - fIgnorableErrorCombination.add(kMissingExpectations_ErrorType); |
| - fIgnorableErrorCombination.add(kIntentionallySkipped_ErrorType); |
| - } |
| + GMMain() : fUseFileHierarchy(false), fIgnorableErrorTypes(kDefaultIgnorableErrorTypes), |
| + fMismatchPath(NULL), fTestsRun(0), fRenderModesEncountered(1) {} |
| SkString make_name(const char shortName[], const char configName[]) { |
| SkString name; |
| @@ -291,7 +292,7 @@ |
| int significantErrors = 0; |
| for (int typeInt = 0; typeInt <= kLast_ErrorType; typeInt++) { |
| ErrorType type = static_cast<ErrorType>(typeInt); |
| - if (!fIgnorableErrorCombination.includes(type)) { |
| + if (!fIgnorableErrorTypes.includes(type)) { |
| significantErrors += fFailedTests[type].count(); |
| } |
| } |
| @@ -305,7 +306,7 @@ |
| * @param verbose whether to be all verbose about it |
| */ |
| void DisplayResultTypeSummary(ErrorType type, bool verbose) { |
| - bool isIgnorableType = fIgnorableErrorCombination.includes(type); |
| + bool isIgnorableType = fIgnorableErrorTypes.includes(type); |
| SkString line; |
| if (isIgnorableType) { |
| @@ -1096,7 +1097,7 @@ |
| // |
| bool fUseFileHierarchy; |
| - ErrorCombination fIgnorableErrorCombination; |
| + ErrorCombination fIgnorableErrorTypes; |
| const char* fMismatchPath; |
| @@ -1200,6 +1201,18 @@ |
| #endif |
| DEFINE_bool(hierarchy, false, "Whether to use multilevel directory structure " |
| "when reading/writing files."); |
| +// TODO(epoger): Maybe should make SkCommandLineFlags handle default string |
| +// values differently, so that the first definition of ignoreErrorTypes worked? |
|
borenet
2013/04/12 00:29:45
Good question for scroggo@. I'm not terribly fami
epoger
2013/04/12 02:44:43
Yeah, I wanted to commit this change and then see
scroggo
2013/04/12 15:24:30
Created https://code.google.com/p/skia/issues/deta
|
| +#if 0 |
| +DEFINE_string(ignoreErrorTypes, kDefaultIgnorableErrorTypes.asString(" ").c_str(), |
| + "Space-separated list of ErrorTypes that should be ignored. If any *other* error " |
| + "types are encountered, the tool will exit with a nonzero return value."); |
| +#else |
| +DEFINE_string(ignoreErrorTypes, "", SkString(SkString( |
| + "Space-separated list of ErrorTypes that should be ignored. If any *other* error " |
| + "types are encountered, the tool will exit with a nonzero return value. " |
| + "Defaults to: ") += kDefaultIgnorableErrorTypes.asString(" ")).c_str()); |
| +#endif |
| DEFINE_string(match, "", "Only run tests whose name includes this substring/these substrings " |
| "(more than one can be supplied, separated by spaces)."); |
| DEFINE_string(mismatchPath, "", "Write images for tests that failed due to " |
| @@ -1630,6 +1643,20 @@ |
| } |
| } |
| + if (FLAGS_ignoreErrorTypes.count() > 0) { |
| + gmmain.fIgnorableErrorTypes = ErrorCombination(); |
| + for (int i = 0; i < FLAGS_ignoreErrorTypes.count(); i++) { |
| + ErrorType type; |
| + const char *name = FLAGS_ignoreErrorTypes[i]; |
| + if (!getErrorTypeByName(name, &type)) { |
| + gm_fprintf(stderr, "cannot find ErrorType with name '%s'\n", name); |
| + return -1; |
| + } else { |
| + gmmain.fIgnorableErrorTypes.add(type); |
| + } |
| + } |
| + } |
| + |
| #if SK_SUPPORT_GPU |
| if (FLAGS_gpuCacheSize.count() > 0) { |
| if (FLAGS_gpuCacheSize.count() != 2) { |