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

Unified Diff: gm/gm_expectations.cpp

Issue 856103002: Revert "Revert "delete old things!"" (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gm/gm_error.h ('k') | gm/gm_json.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/gm_expectations.cpp
diff --git a/gm/gm_expectations.cpp b/gm/gm_expectations.cpp
deleted file mode 100644
index db6abdf404b6fd0c3827947d3b8c9bb0eea490e4..0000000000000000000000000000000000000000
--- a/gm/gm_expectations.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Copyright 2013 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * TODO(epoger): Combine this with tools/image_expectations.cpp, or eliminate one of the two.
- */
-
-#include "gm_expectations.h"
-#include "SkBitmapHasher.h"
-#include "SkData.h"
-#include "SkImageDecoder.h"
-
-#define DEBUGFAIL_SEE_STDERR SkDEBUGFAIL("see stderr for message")
-
-// See gm_json.py for descriptions of each of these JSON keys.
-// These constants must be kept in sync with the ones in that Python file!
-const static char kJsonKey_ActualResults[] = "actual-results";
-const static char kJsonKey_ActualResults_Failed[] = "failed";
-const static char kJsonKey_ActualResults_FailureIgnored[]= "failure-ignored";
-const static char kJsonKey_ActualResults_NoComparison[] = "no-comparison";
-const static char kJsonKey_ActualResults_Succeeded[] = "succeeded";
-const static char kJsonKey_ExpectedResults[] = "expected-results";
-const static char kJsonKey_ExpectedResults_AllowedDigests[] = "allowed-digests";
-const static char kJsonKey_ExpectedResults_IgnoreFailure[] = "ignore-failure";
-
-// Types of result hashes we support in the JSON file.
-const static char kJsonKey_Hashtype_Bitmap_64bitMD5[] = "bitmap-64bitMD5";
-
-
-namespace skiagm {
-
- Json::Value CreateJsonTree(Json::Value expectedResults,
- Json::Value actualResultsFailed,
- Json::Value actualResultsFailureIgnored,
- Json::Value actualResultsNoComparison,
- Json::Value actualResultsSucceeded) {
- Json::Value actualResults;
- actualResults[kJsonKey_ActualResults_Failed] = actualResultsFailed;
- actualResults[kJsonKey_ActualResults_FailureIgnored] = actualResultsFailureIgnored;
- actualResults[kJsonKey_ActualResults_NoComparison] = actualResultsNoComparison;
- actualResults[kJsonKey_ActualResults_Succeeded] = actualResultsSucceeded;
- Json::Value root;
- root[kJsonKey_ActualResults] = actualResults;
- root[kJsonKey_ExpectedResults] = expectedResults;
- return root;
- }
-
- // GmResultDigest class...
-
- GmResultDigest::GmResultDigest(const SkBitmap &bitmap) {
- fIsValid = SkBitmapHasher::ComputeDigest(bitmap, &fHashDigest);
- }
-
- GmResultDigest::GmResultDigest(const Json::Value &jsonTypeValuePair) {
- fIsValid = false;
- if (!jsonTypeValuePair.isArray()) {
- SkDebugf("found non-array json value when parsing GmResultDigest: %s\n",
- jsonTypeValuePair.toStyledString().c_str());
- DEBUGFAIL_SEE_STDERR;
- } else if (2 != jsonTypeValuePair.size()) {
- SkDebugf("found json array with wrong size when parsing GmResultDigest: %s\n",
- jsonTypeValuePair.toStyledString().c_str());
- DEBUGFAIL_SEE_STDERR;
- } else {
- // TODO(epoger): The current implementation assumes that the
- // result digest is always of type kJsonKey_Hashtype_Bitmap_64bitMD5
- Json::Value jsonHashValue = jsonTypeValuePair[1];
- if (!jsonHashValue.isIntegral()) {
- SkDebugf("found non-integer jsonHashValue when parsing GmResultDigest: %s\n",
- jsonTypeValuePair.toStyledString().c_str());
- DEBUGFAIL_SEE_STDERR;
- } else {
- fHashDigest = jsonHashValue.asUInt64();
- fIsValid = true;
- }
- }
- }
-
- bool GmResultDigest::isValid() const {
- return fIsValid;
- }
-
- bool GmResultDigest::equals(const GmResultDigest &other) const {
- // TODO(epoger): The current implementation assumes that this
- // and other are always of type kJsonKey_Hashtype_Bitmap_64bitMD5
- return (this->fIsValid && other.fIsValid && (this->fHashDigest == other.fHashDigest));
- }
-
- Json::Value GmResultDigest::asJsonTypeValuePair() const {
- // TODO(epoger): The current implementation assumes that the
- // result digest is always of type kJsonKey_Hashtype_Bitmap_64bitMD5
- Json::Value jsonTypeValuePair;
- if (fIsValid) {
- jsonTypeValuePair.append(Json::Value(kJsonKey_Hashtype_Bitmap_64bitMD5));
- jsonTypeValuePair.append(Json::UInt64(fHashDigest));
- } else {
- jsonTypeValuePair.append(Json::Value("INVALID"));
- }
- return jsonTypeValuePair;
- }
-
- SkString GmResultDigest::getHashType() const {
- // TODO(epoger): The current implementation assumes that the
- // result digest is always of type kJsonKey_Hashtype_Bitmap_64bitMD5
- return SkString(kJsonKey_Hashtype_Bitmap_64bitMD5);
- }
-
- SkString GmResultDigest::getDigestValue() const {
- // TODO(epoger): The current implementation assumes that the
- // result digest is always of type kJsonKey_Hashtype_Bitmap_64bitMD5
- SkString retval;
- retval.appendU64(fHashDigest);
- return retval;
- }
-
-
- // Expectations class...
-
- Expectations::Expectations(bool ignoreFailure) {
- fIgnoreFailure = ignoreFailure;
- }
-
- Expectations::Expectations(const SkBitmap& bitmap, bool ignoreFailure) {
- fBitmap = bitmap;
- fIgnoreFailure = ignoreFailure;
- fAllowedResultDigests.push_back(GmResultDigest(bitmap));
- }
-
- Expectations::Expectations(const BitmapAndDigest& bitmapAndDigest) {
- fBitmap = bitmapAndDigest.fBitmap;
- fIgnoreFailure = false;
- fAllowedResultDigests.push_back(bitmapAndDigest.fDigest);
- }
-
- Expectations::Expectations(Json::Value jsonElement) {
- if (jsonElement.empty()) {
- fIgnoreFailure = kDefaultIgnoreFailure;
- } else {
- Json::Value ignoreFailure = jsonElement[kJsonKey_ExpectedResults_IgnoreFailure];
- if (ignoreFailure.isNull()) {
- fIgnoreFailure = kDefaultIgnoreFailure;
- } else if (!ignoreFailure.isBool()) {
- SkDebugf("found non-boolean json value for key '%s' in element '%s'\n",
- kJsonKey_ExpectedResults_IgnoreFailure,
- jsonElement.toStyledString().c_str());
- DEBUGFAIL_SEE_STDERR;
- fIgnoreFailure = kDefaultIgnoreFailure;
- } else {
- fIgnoreFailure = ignoreFailure.asBool();
- }
-
- Json::Value allowedDigests = jsonElement[kJsonKey_ExpectedResults_AllowedDigests];
- if (allowedDigests.isNull()) {
- // ok, we'll just assume there aren't any AllowedDigests to compare against
- } else if (!allowedDigests.isArray()) {
- SkDebugf("found non-array json value for key '%s' in element '%s'\n",
- kJsonKey_ExpectedResults_AllowedDigests,
- jsonElement.toStyledString().c_str());
- DEBUGFAIL_SEE_STDERR;
- } else {
- for (Json::ArrayIndex i=0; i<allowedDigests.size(); i++) {
- fAllowedResultDigests.push_back(GmResultDigest(allowedDigests[i]));
- }
- }
- }
- }
-
- bool Expectations::match(GmResultDigest actualGmResultDigest) const {
- for (int i=0; i < this->fAllowedResultDigests.count(); i++) {
- GmResultDigest allowedResultDigest = this->fAllowedResultDigests[i];
- if (allowedResultDigest.equals(actualGmResultDigest)) {
- return true;
- }
- }
- return false;
- }
-
- Json::Value Expectations::asJsonValue() const {
- Json::Value allowedDigestArray;
- if (!this->fAllowedResultDigests.empty()) {
- for (int i=0; i < this->fAllowedResultDigests.count(); i++) {
- allowedDigestArray.append(this->fAllowedResultDigests[i].asJsonTypeValuePair());
- }
- }
-
- Json::Value jsonExpectations;
- jsonExpectations[kJsonKey_ExpectedResults_AllowedDigests] = allowedDigestArray;
- jsonExpectations[kJsonKey_ExpectedResults_IgnoreFailure] = this->ignoreFailure();
- return jsonExpectations;
- }
-
- // IndividualImageExpectationsSource class...
-
- Expectations IndividualImageExpectationsSource::get(const char *testName) const {
- SkString path = SkOSPath::Join(fRootDir.c_str(), testName);
- SkBitmap referenceBitmap;
- bool decodedReferenceBitmap =
- SkImageDecoder::DecodeFile(path.c_str(), &referenceBitmap, kN32_SkColorType,
- SkImageDecoder::kDecodePixels_Mode, NULL);
- if (decodedReferenceBitmap) {
- return Expectations(referenceBitmap);
- } else {
- return Expectations();
- }
- }
-
-
- // JsonExpectationsSource class...
-
- JsonExpectationsSource::JsonExpectationsSource(const char *jsonPath) {
- Parse(jsonPath, &fJsonRoot);
- fJsonExpectedResults = fJsonRoot[kJsonKey_ExpectedResults];
- }
-
- Expectations JsonExpectationsSource::get(const char *testName) const {
- return Expectations(fJsonExpectedResults[testName]);
- }
-
- /*static*/ bool JsonExpectationsSource::Parse(const char *jsonPath, Json::Value *jsonRoot) {
- SkAutoDataUnref dataRef(SkData::NewFromFileName(jsonPath));
- if (NULL == dataRef.get()) {
- SkDebugf("error reading JSON file %s\n", jsonPath);
- DEBUGFAIL_SEE_STDERR;
- return false;
- }
-
- const char *bytes = reinterpret_cast<const char *>(dataRef.get()->data());
- size_t size = dataRef.get()->size();
- Json::Reader reader;
- if (!reader.parse(bytes, bytes+size, *jsonRoot)) {
- SkDebugf("error parsing JSON file %s\n", jsonPath);
- DEBUGFAIL_SEE_STDERR;
- return false;
- }
- return true;
- }
-}
« no previous file with comments | « gm/gm_error.h ('k') | gm/gm_json.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698