| Index: gm/gmmain.cpp
|
| ===================================================================
|
| --- gm/gmmain.cpp (revision 8850)
|
| +++ gm/gmmain.cpp (working copy)
|
| @@ -63,6 +63,8 @@
|
| typedef int GLContextType;
|
| #endif
|
|
|
| +#define DEBUGFAIL_SEE_STDERR SkDEBUGFAIL("see stderr for message")
|
| +
|
| extern bool gSkSuppressFontCachePurgeSpew;
|
|
|
| #ifdef SK_SUPPORT_PDF
|
| @@ -768,17 +770,15 @@
|
|
|
| /**
|
| * Add this result to the appropriate JSON collection of actual results,
|
| - * depending on status.
|
| + * depending on errors encountered.
|
| */
|
| void add_actual_results_to_json_summary(const char testName[],
|
| - const SkHashDigest& actualBitmapHash,
|
| - ErrorCombination result,
|
| + const SkHashDigest& actualResult,
|
| + ErrorCombination errors,
|
| bool ignoreFailure) {
|
| - Json::Value actualResults;
|
| - actualResults[kJsonKey_ActualResults_AnyStatus_Checksum] =
|
| - asJsonValue(actualBitmapHash);
|
| - if (result.isEmpty()) {
|
| - this->fJsonActualResults_Succeeded[testName] = actualResults;
|
| + Json::Value jsonActualResults = ActualResultAsJsonValue(actualResult);
|
| + if (errors.isEmpty()) {
|
| + this->fJsonActualResults_Succeeded[testName] = jsonActualResults;
|
| } else {
|
| if (ignoreFailure) {
|
| // TODO: Once we have added the ability to compare
|
| @@ -788,9 +788,9 @@
|
| // failures (both for kMissingExpectations_ErrorType
|
| // and kExpectationsMismatch_ErrorType).
|
| this->fJsonActualResults_FailureIgnored[testName] =
|
| - actualResults;
|
| + jsonActualResults;
|
| } else {
|
| - if (result.includes(kMissingExpectations_ErrorType)) {
|
| + if (errors.includes(kMissingExpectations_ErrorType)) {
|
| // TODO: What about the case where there IS an
|
| // expected image hash digest, but that gm test
|
| // doesn't actually run? For now, those cases
|
| @@ -803,11 +803,11 @@
|
| // (and add a test case for which an expectation
|
| // is given but the test is never run).
|
| this->fJsonActualResults_NoComparison[testName] =
|
| - actualResults;
|
| + jsonActualResults;
|
| }
|
| - if (result.includes(kExpectationsMismatch_ErrorType) ||
|
| - result.includes(kRenderModeMismatch_ErrorType)) {
|
| - this->fJsonActualResults_Failed[testName] = actualResults;
|
| + if (errors.includes(kExpectationsMismatch_ErrorType) ||
|
| + errors.includes(kRenderModeMismatch_ErrorType)) {
|
| + this->fJsonActualResults_Failed[testName] = jsonActualResults;
|
| }
|
| }
|
| }
|
| @@ -818,15 +818,7 @@
|
| */
|
| void add_expected_results_to_json_summary(const char testName[],
|
| Expectations expectations) {
|
| - // For now, we assume that this collection starts out empty and we
|
| - // just fill it in as we go; once gm accepts a JSON file as input,
|
| - // we'll have to change that.
|
| - Json::Value expectedResults;
|
| - expectedResults[kJsonKey_ExpectedResults_Checksums] =
|
| - expectations.allowedChecksumsAsJson();
|
| - expectedResults[kJsonKey_ExpectedResults_IgnoreFailure] =
|
| - expectations.ignoreFailure();
|
| - this->fJsonExpectedResults[testName] = expectedResults;
|
| + this->fJsonExpectedResults[testName] = expectations.asJsonValue();
|
| }
|
|
|
| /**
|
| @@ -1959,18 +1951,10 @@
|
| #endif
|
|
|
| if (FLAGS_writeJsonSummaryPath.count() == 1) {
|
| - Json::Value actualResults;
|
| - actualResults[kJsonKey_ActualResults_Failed] =
|
| - gmmain.fJsonActualResults_Failed;
|
| - actualResults[kJsonKey_ActualResults_FailureIgnored] =
|
| - gmmain.fJsonActualResults_FailureIgnored;
|
| - actualResults[kJsonKey_ActualResults_NoComparison] =
|
| - gmmain.fJsonActualResults_NoComparison;
|
| - actualResults[kJsonKey_ActualResults_Succeeded] =
|
| - gmmain.fJsonActualResults_Succeeded;
|
| - Json::Value root;
|
| - root[kJsonKey_ActualResults] = actualResults;
|
| - root[kJsonKey_ExpectedResults] = gmmain.fJsonExpectedResults;
|
| + Json::Value root = CreateJsonTree(
|
| + gmmain.fJsonExpectedResults,
|
| + gmmain.fJsonActualResults_Failed, gmmain.fJsonActualResults_FailureIgnored,
|
| + gmmain.fJsonActualResults_NoComparison, gmmain.fJsonActualResults_Succeeded);
|
| std::string jsonStdString = root.toStyledString();
|
| SkFILEWStream stream(FLAGS_writeJsonSummaryPath[0]);
|
| stream.write(jsonStdString.c_str(), jsonStdString.length());
|
|
|