Alter GM's --mpd option to write out images
Review URL: https://codereview.chromium.org/811863002
This commit is contained in:
parent
88640cf363
commit
ed31343805
@ -247,11 +247,11 @@ public:
|
||||
/**
|
||||
* Assemble filename suitable for writing out an SkBitmap.
|
||||
*/
|
||||
SkString make_bitmap_filename(const char *path,
|
||||
const char *shortName,
|
||||
const char *configName,
|
||||
const char *renderModeDescriptor,
|
||||
const GmResultDigest &bitmapDigest) {
|
||||
SkString makeBitmapFilename(const char *path,
|
||||
const char *shortName,
|
||||
const char *configName,
|
||||
const char *renderModeDescriptor,
|
||||
const GmResultDigest &bitmapDigest) {
|
||||
if (fWriteChecksumBasedFilenames) {
|
||||
SkString filename;
|
||||
filename.append(bitmapDigest.getHashType());
|
||||
@ -296,7 +296,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
static ErrorCombination write_bitmap(const SkString& path, const SkBitmap& bitmap) {
|
||||
static ErrorCombination WriteBitmap(const SkString& path, const SkBitmap& bitmap) {
|
||||
// TODO(epoger): Now that we have removed force_all_opaque()
|
||||
// from this method, we should be able to get rid of the
|
||||
// transformation to 8888 format also.
|
||||
@ -335,7 +335,7 @@ public:
|
||||
/**
|
||||
* Returns true if failures on this test should be ignored.
|
||||
*/
|
||||
bool ShouldIgnoreTest(const char *name) const {
|
||||
bool shouldIgnoreTest(const char *name) const {
|
||||
for (int i = 0; i < fIgnorableTestNames.count(); i++) {
|
||||
if (fIgnorableTestNames[i].equals(name)) {
|
||||
return true;
|
||||
@ -843,10 +843,10 @@ public:
|
||||
// Write out the "actuals" for any tests without expectations, if we have
|
||||
// been directed to do so.
|
||||
if (fMissingExpectationsPath) {
|
||||
SkString path = make_bitmap_filename(fMissingExpectationsPath, shortName,
|
||||
configName, renderModeDescriptor,
|
||||
actualBitmapAndDigest.fDigest);
|
||||
write_bitmap(path, actualBitmapAndDigest.fBitmap);
|
||||
SkString path = this->makeBitmapFilename(fMissingExpectationsPath, shortName,
|
||||
configName, renderModeDescriptor,
|
||||
actualBitmapAndDigest.fDigest);
|
||||
WriteBitmap(path, actualBitmapAndDigest.fBitmap);
|
||||
}
|
||||
|
||||
} else if (!expectations.match(actualBitmapAndDigest.fDigest)) {
|
||||
@ -862,10 +862,10 @@ public:
|
||||
// Write out the "actuals" for any mismatches, if we have
|
||||
// been directed to do so.
|
||||
if (fMismatchPath) {
|
||||
SkString path = make_bitmap_filename(fMismatchPath, shortName, configName,
|
||||
renderModeDescriptor,
|
||||
actualBitmapAndDigest.fDigest);
|
||||
write_bitmap(path, actualBitmapAndDigest.fBitmap);
|
||||
SkString path = this->makeBitmapFilename(fMismatchPath, shortName, configName,
|
||||
renderModeDescriptor,
|
||||
actualBitmapAndDigest.fDigest);
|
||||
WriteBitmap(path, actualBitmapAndDigest.fBitmap);
|
||||
}
|
||||
|
||||
// If we have access to a single expected bitmap, log more
|
||||
@ -944,7 +944,7 @@ public:
|
||||
* @param actualBitmapAndDigest ptr to bitmap generated by this run, or NULL
|
||||
* if we don't have a usable bitmap representation
|
||||
*/
|
||||
ErrorCombination compare_test_results_to_stored_expectations(
|
||||
ErrorCombination compareTestResultsToStoredExpectations(
|
||||
GM* gm, const ConfigData& gRec, const char* configName,
|
||||
const BitmapAndDigest* actualBitmapAndDigest) {
|
||||
ErrorCombination errors;
|
||||
@ -982,7 +982,7 @@ public:
|
||||
* See comments above complete_bitmap() for more detail.
|
||||
*/
|
||||
Expectations expectations = expectationsSource->get(nameWithExtension.c_str());
|
||||
if (this->ShouldIgnoreTest(gm->getName())) {
|
||||
if (this->shouldIgnoreTest(gm->getName())) {
|
||||
expectations.setIgnoreFailure(true);
|
||||
}
|
||||
errors.add(compare_to_expectations(expectations, *actualBitmapAndDigest,
|
||||
@ -1072,7 +1072,6 @@ public:
|
||||
SkBitmap* bitmap) {
|
||||
ErrorCombination errors;
|
||||
SkDynamicMemoryWStream document;
|
||||
SkString path;
|
||||
|
||||
if (gRec.fBackend == kRaster_Backend ||
|
||||
gRec.fBackend == kGPU_Backend) {
|
||||
@ -1084,22 +1083,15 @@ public:
|
||||
// trying to generate the image.
|
||||
return errors;
|
||||
}
|
||||
BitmapAndDigest bitmapAndDigest(*bitmap);
|
||||
errors.add(compare_test_results_to_stored_expectations(
|
||||
gm, gRec, gRec.fName, &bitmapAndDigest));
|
||||
|
||||
if (writePath && (gRec.fFlags & kWrite_ConfigFlag)) {
|
||||
path = make_bitmap_filename(writePath, gm->getName(), gRec.fName,
|
||||
"", bitmapAndDigest.fDigest);
|
||||
errors.add(write_bitmap(path, bitmapAndDigest.fBitmap));
|
||||
}
|
||||
errors.add(this->writeBitmap(gm, gRec, gRec.fName, writePath, *bitmap));
|
||||
} else if (gRec.fBackend == kPDF_Backend) {
|
||||
if (!generate_pdf(gm, document)) {
|
||||
errors.add(kGeneratePdfFailed_ErrorType);
|
||||
} else {
|
||||
SkAutoTUnref<SkStreamAsset> documentStream(document.detachAsStream());
|
||||
if (writePath && (gRec.fFlags & kWrite_ConfigFlag)) {
|
||||
path = make_filename(writePath, gm->getName(), gRec.fName, "", "pdf");
|
||||
SkString path = make_filename(writePath, gm->getName(), gRec.fName, "", "pdf");
|
||||
errors.add(write_document(path, documentStream));
|
||||
}
|
||||
|
||||
@ -1120,16 +1112,8 @@ public:
|
||||
configName.append("-");
|
||||
configName.append(pdfRasterizers[i]->fName);
|
||||
|
||||
BitmapAndDigest bitmapAndDigest(pdfBitmap);
|
||||
errors.add(compare_test_results_to_stored_expectations(
|
||||
gm, gRec, configName.c_str(), &bitmapAndDigest));
|
||||
|
||||
if (writePath && (gRec.fFlags & kWrite_ConfigFlag)) {
|
||||
path = make_bitmap_filename(writePath, gm->getName(),
|
||||
configName.c_str(),
|
||||
"", bitmapAndDigest.fDigest);
|
||||
errors.add(write_bitmap(path, bitmapAndDigest.fBitmap));
|
||||
}
|
||||
errors.add(this->writeBitmap(gm, gRec, configName.c_str(),
|
||||
writePath, pdfBitmap));
|
||||
}
|
||||
} else {
|
||||
errors.add(kIntentionallySkipped_ErrorType);
|
||||
@ -1139,11 +1123,11 @@ public:
|
||||
generate_xps(gm, document);
|
||||
SkAutoTUnref<SkStreamAsset> documentStream(document.detachAsStream());
|
||||
|
||||
errors.add(compare_test_results_to_stored_expectations(
|
||||
errors.add(this->compareTestResultsToStoredExpectations(
|
||||
gm, gRec, gRec.fName, NULL));
|
||||
|
||||
if (writePath && (gRec.fFlags & kWrite_ConfigFlag)) {
|
||||
path = make_filename(writePath, gm->getName(), gRec.fName, "", "xps");
|
||||
SkString path = make_filename(writePath, gm->getName(), gRec.fName, "", "xps");
|
||||
errors.add(write_document(path, documentStream));
|
||||
}
|
||||
} else {
|
||||
@ -1206,8 +1190,31 @@ public:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ErrorCombination writeBitmap(GM* gm,
|
||||
const ConfigData& config,
|
||||
const char* configName,
|
||||
const char* writePath,
|
||||
const SkBitmap& bitmap) {
|
||||
ErrorCombination errors;
|
||||
|
||||
BitmapAndDigest bitmapAndDigest(bitmap);
|
||||
errors.add(this->compareTestResultsToStoredExpectations(gm, config,
|
||||
configName, &bitmapAndDigest));
|
||||
|
||||
if (writePath && (config.fFlags & kWrite_ConfigFlag)) {
|
||||
SkString path;
|
||||
|
||||
path = this->makeBitmapFilename(writePath, gm->getName(), configName,
|
||||
"", bitmapAndDigest.fDigest);
|
||||
errors.add(WriteBitmap(path, bitmapAndDigest.fBitmap));
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
ErrorCombination testMPDDrawing(GM* gm,
|
||||
const ConfigData& config,
|
||||
const char* writePath,
|
||||
GrSurface* gpuTarget,
|
||||
const SkBitmap& referenceBitmap) {
|
||||
SkASSERT(kRaster_Backend == config.fBackend || kGPU_Backend == config.fBackend);
|
||||
@ -1227,8 +1234,10 @@ public:
|
||||
surf->readPixels(bitmap.info(), bitmap.getPixels(), bitmap.rowBytes(), 0, 0);
|
||||
complete_bitmap(&bitmap);
|
||||
|
||||
return compare_test_results_to_reference_bitmap(
|
||||
gm->getName(), config.fName, "-mpd", bitmap, &referenceBitmap);
|
||||
SkString configName(config.fName);
|
||||
configName.append("-mpd");
|
||||
|
||||
return this->writeBitmap(gm, config, configName.c_str(), writePath, bitmap);
|
||||
}
|
||||
|
||||
ErrorCombination test_pipe_playback(GM* gm, const ConfigData& gRec,
|
||||
@ -1898,7 +1907,8 @@ ErrorCombination run_multiple_configs(GMMain &gmmain, GM *gm,
|
||||
config.fBackend);
|
||||
errorsForThisConfig.add(kIntentionallySkipped_ErrorType);
|
||||
} else if (!(gmFlags & GM::kGPUOnly_Flag)) {
|
||||
errorsForThisConfig.add(gmmain.testMPDDrawing(gm, config, gpuTarget,
|
||||
errorsForThisConfig.add(gmmain.testMPDDrawing(gm, config,
|
||||
writePath, gpuTarget,
|
||||
comparisonBitmap));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user