| Index: dm/DM.cpp
|
| diff --git a/dm/DM.cpp b/dm/DM.cpp
|
| index 256014e5daabc979a0339b36086a230744700216..3ad82262c4a17d01240dd677931430b0020844dd 100644
|
| --- a/dm/DM.cpp
|
| +++ b/dm/DM.cpp
|
| @@ -42,6 +42,10 @@ DEFINE_string(blacklist, "",
|
|
|
| DEFINE_string2(readPath, r, "", "If set check for equality with golden results in this directory.");
|
|
|
| +DEFINE_string(uninterestingHashesFile, "",
|
| + "File containing a list of uninteresting hashes. If a result hashes to something in "
|
| + "this list, no image is written for that result.");
|
| +
|
| __SK_FORCE_IMAGE_DECODER_LINKING;
|
| using namespace DM;
|
|
|
| @@ -137,6 +141,21 @@ static void gather_gold() {
|
|
|
| /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
| +static SkTHashSet<SkString> gUninterestingHashes;
|
| +
|
| +static void gather_uninteresting_hashes() {
|
| + if (!FLAGS_uninterestingHashesFile.isEmpty()) {
|
| + SkAutoTUnref<SkData> data(SkData::NewFromFileName(FLAGS_uninterestingHashesFile[0]));
|
| + SkTArray<SkString> hashes;
|
| + SkStrSplit((const char*)data->data(), "\n", &hashes);
|
| + for (const SkString& hash : hashes) {
|
| + gUninterestingHashes.add(hash);
|
| + }
|
| + }
|
| +}
|
| +
|
| +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
| +
|
| template <typename T>
|
| struct Tagged : public SkAutoTDelete<T> {
|
| const char* tag;
|
| @@ -435,7 +454,7 @@ struct Task {
|
| FLAGS_readPath[0]));
|
| }
|
|
|
| - if (!FLAGS_writePath.isEmpty()) {
|
| + if (!FLAGS_writePath.isEmpty() && !gUninterestingHashes.contains(md5)) {
|
| const char* ext = task->sink->fileExtension();
|
| if (data->getLength()) {
|
| WriteToDisk(*task, md5, ext, data, data->getLength(), NULL);
|
| @@ -625,6 +644,7 @@ int dm_main() {
|
| start_keepalive();
|
|
|
| gather_gold();
|
| + gather_uninteresting_hashes();
|
|
|
| gather_srcs();
|
| gather_sinks();
|
|
|