OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 #ifndef gm_expectations_DEFINED | 7 #ifndef gm_expectations_DEFINED |
8 #define gm_expectations_DEFINED | 8 #define gm_expectations_DEFINED |
9 | 9 |
10 #include "gm.h" | 10 #include "gm.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 * don't have any expectations. | 96 * don't have any expectations. |
97 */ | 97 */ |
98 Expectations(Json::Value jsonElement) { | 98 Expectations(Json::Value jsonElement) { |
99 if (jsonElement.empty()) { | 99 if (jsonElement.empty()) { |
100 fIgnoreFailure = kDefaultIgnoreFailure; | 100 fIgnoreFailure = kDefaultIgnoreFailure; |
101 } else { | 101 } else { |
102 Json::Value ignoreFailure = jsonElement[kJsonKey_ExpectedResults
_IgnoreFailure]; | 102 Json::Value ignoreFailure = jsonElement[kJsonKey_ExpectedResults
_IgnoreFailure]; |
103 if (ignoreFailure.isNull()) { | 103 if (ignoreFailure.isNull()) { |
104 fIgnoreFailure = kDefaultIgnoreFailure; | 104 fIgnoreFailure = kDefaultIgnoreFailure; |
105 } else if (!ignoreFailure.isBool()) { | 105 } else if (!ignoreFailure.isBool()) { |
106 fprintf(stderr, "found non-boolean json value for key '%s' i
n element '%s'\n", | 106 fprintf(stderr, GM_PREAMBLE "found non-boolean json value" |
| 107 " for key '%s' in element '%s'\n", |
107 kJsonKey_ExpectedResults_IgnoreFailure, | 108 kJsonKey_ExpectedResults_IgnoreFailure, |
108 jsonElement.toStyledString().c_str()); | 109 jsonElement.toStyledString().c_str()); |
109 DEBUGFAIL_SEE_STDERR; | 110 DEBUGFAIL_SEE_STDERR; |
110 fIgnoreFailure = kDefaultIgnoreFailure; | 111 fIgnoreFailure = kDefaultIgnoreFailure; |
111 } else { | 112 } else { |
112 fIgnoreFailure = ignoreFailure.asBool(); | 113 fIgnoreFailure = ignoreFailure.asBool(); |
113 } | 114 } |
114 | 115 |
115 Json::Value allowedChecksums = jsonElement[kJsonKey_ExpectedResu
lts_Checksums]; | 116 Json::Value allowedChecksums = jsonElement[kJsonKey_ExpectedResu
lts_Checksums]; |
116 if (allowedChecksums.isNull()) { | 117 if (allowedChecksums.isNull()) { |
117 // ok, we'll just assume there aren't any expected checksums
to compare against | 118 // ok, we'll just assume there aren't any expected checksums
to compare against |
118 } else if (!allowedChecksums.isArray()) { | 119 } else if (!allowedChecksums.isArray()) { |
119 fprintf(stderr, "found non-array json value for key '%s' in
element '%s'\n", | 120 fprintf(stderr, GM_PREAMBLE "found non-array json value" |
| 121 " for key '%s' in element '%s'\n", |
120 kJsonKey_ExpectedResults_Checksums, | 122 kJsonKey_ExpectedResults_Checksums, |
121 jsonElement.toStyledString().c_str()); | 123 jsonElement.toStyledString().c_str()); |
122 DEBUGFAIL_SEE_STDERR; | 124 DEBUGFAIL_SEE_STDERR; |
123 } else { | 125 } else { |
124 for (Json::ArrayIndex i=0; i<allowedChecksums.size(); i++) { | 126 for (Json::ArrayIndex i=0; i<allowedChecksums.size(); i++) { |
125 Json::Value checksumElement = allowedChecksums[i]; | 127 Json::Value checksumElement = allowedChecksums[i]; |
126 if (!checksumElement.isIntegral()) { | 128 if (!checksumElement.isIntegral()) { |
127 fprintf(stderr, "found non-integer checksum in json
element '%s'\n", | 129 fprintf(stderr, GM_PREAMBLE "found non-integer check
sum" |
| 130 " in json element '%s'\n", |
128 jsonElement.toStyledString().c_str()); | 131 jsonElement.toStyledString().c_str()); |
129 DEBUGFAIL_SEE_STDERR; | 132 DEBUGFAIL_SEE_STDERR; |
130 } else { | 133 } else { |
131 fAllowedChecksums.push_back() = asChecksum(checksumE
lement); | 134 fAllowedChecksums.push_back() = asChecksum(checksumE
lement); |
132 } | 135 } |
133 } | 136 } |
134 } | 137 } |
135 } | 138 } |
136 } | 139 } |
137 | 140 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 SkBitmap referenceBitmap; | 229 SkBitmap referenceBitmap; |
227 bool decodedReferenceBitmap = | 230 bool decodedReferenceBitmap = |
228 SkImageDecoder::DecodeFile(path.c_str(), &referenceBitmap, | 231 SkImageDecoder::DecodeFile(path.c_str(), &referenceBitmap, |
229 SkBitmap::kARGB_8888_Config, | 232 SkBitmap::kARGB_8888_Config, |
230 SkImageDecoder::kDecodePixels_Mode, | 233 SkImageDecoder::kDecodePixels_Mode, |
231 NULL); | 234 NULL); |
232 if (decodedReferenceBitmap) { | 235 if (decodedReferenceBitmap) { |
233 return Expectations(referenceBitmap); | 236 return Expectations(referenceBitmap); |
234 } else { | 237 } else { |
235 if (fNotifyOfMissingFiles) { | 238 if (fNotifyOfMissingFiles) { |
236 fprintf(stderr, "FAILED to read %s\n", path.c_str()); | 239 fprintf(stderr, GM_PREAMBLE "FAILED to read %s\n", path.c_st
r()); |
237 } | 240 } |
238 return Expectations(); | 241 return Expectations(); |
239 } | 242 } |
240 } | 243 } |
241 | 244 |
242 private: | 245 private: |
243 const SkString fRootDir; | 246 const SkString fRootDir; |
244 const bool fNotifyOfMissingFiles; | 247 const bool fNotifyOfMissingFiles; |
245 }; | 248 }; |
246 | 249 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 } | 327 } |
325 | 328 |
326 /** | 329 /** |
327 * Read the file contents from jsonPath and parse them into jsonRoot. | 330 * Read the file contents from jsonPath and parse them into jsonRoot. |
328 * | 331 * |
329 * Returns true if successful. | 332 * Returns true if successful. |
330 */ | 333 */ |
331 static bool parse(const char *jsonPath, Json::Value *jsonRoot) { | 334 static bool parse(const char *jsonPath, Json::Value *jsonRoot) { |
332 SkFILEStream inFile(jsonPath); | 335 SkFILEStream inFile(jsonPath); |
333 if (!inFile.isValid()) { | 336 if (!inFile.isValid()) { |
334 fprintf(stderr, "unable to read JSON file %s\n", jsonPath); | 337 fprintf(stderr, GM_PREAMBLE "unable to read JSON file %s\n", jso
nPath); |
335 DEBUGFAIL_SEE_STDERR; | 338 DEBUGFAIL_SEE_STDERR; |
336 return false; | 339 return false; |
337 } | 340 } |
338 | 341 |
339 SkAutoDataUnref dataRef(readFileIntoSkData(inFile)); | 342 SkAutoDataUnref dataRef(readFileIntoSkData(inFile)); |
340 if (NULL == dataRef.get()) { | 343 if (NULL == dataRef.get()) { |
341 fprintf(stderr, "error reading JSON file %s\n", jsonPath); | 344 fprintf(stderr, GM_PREAMBLE "error reading JSON file %s\n", json
Path); |
342 DEBUGFAIL_SEE_STDERR; | 345 DEBUGFAIL_SEE_STDERR; |
343 return false; | 346 return false; |
344 } | 347 } |
345 | 348 |
346 const char *bytes = reinterpret_cast<const char *>(dataRef.get()->da
ta()); | 349 const char *bytes = reinterpret_cast<const char *>(dataRef.get()->da
ta()); |
347 size_t size = dataRef.get()->size(); | 350 size_t size = dataRef.get()->size(); |
348 Json::Reader reader; | 351 Json::Reader reader; |
349 if (!reader.parse(bytes, bytes+size, *jsonRoot)) { | 352 if (!reader.parse(bytes, bytes+size, *jsonRoot)) { |
350 fprintf(stderr, "error parsing JSON file %s\n", jsonPath); | 353 fprintf(stderr, GM_PREAMBLE "error parsing JSON file %s\n", json
Path); |
351 DEBUGFAIL_SEE_STDERR; | 354 DEBUGFAIL_SEE_STDERR; |
352 return false; | 355 return false; |
353 } | 356 } |
354 return true; | 357 return true; |
355 } | 358 } |
356 | 359 |
357 Json::Value fJsonRoot; | 360 Json::Value fJsonRoot; |
358 Json::Value fJsonExpectedResults; | 361 Json::Value fJsonExpectedResults; |
359 }; | 362 }; |
360 | 363 |
361 } | 364 } |
362 #endif | 365 #endif |
OLD | NEW |