| Index: testing/tools/gold.py
|
| diff --git a/testing/tools/gold.py b/testing/tools/gold.py
|
| index 7598caffdc361c307e1898871dc654becf6fb88e..db3bf81b739fd4bfe654cf806457096fb1671057 100644
|
| --- a/testing/tools/gold.py
|
| +++ b/testing/tools/gold.py
|
| @@ -51,7 +51,8 @@ import shutil
|
| # }
|
| #
|
| class GoldResults(object):
|
| - def __init__(self, source_type, outputDir, propertiesStr, keyStr):
|
| + def __init__(self, source_type, outputDir, propertiesStr, keyStr,
|
| + ignore_hashes_file):
|
| """
|
| source_type is the source_type (=corpus) field used for all results.
|
| output_dir is the directory where the resulting images are copied and
|
| @@ -60,6 +61,8 @@ class GoldResults(object):
|
| is used to set the top level fields in the output JSON file.
|
| keyStr is a string with space separated key/value pairs that
|
| is used to set the 'key' field in the output JSON file.
|
| + ignore_hashes_file is a file that contains a list of image hashes
|
| + that should be ignored.
|
| """
|
| self._source_type = source_type
|
| self._properties = self._parseKeyValuePairs(propertiesStr)
|
| @@ -71,13 +74,22 @@ class GoldResults(object):
|
| if not os.path.exists(outputDir):
|
| os.makedirs(outputDir)
|
|
|
| + self._ignore_hashes = set()
|
| + if ignore_hashes_file:
|
| + with open(ignore_hashes_file, 'r') as ig_file:
|
| + hashes=[x.strip() for x in ig_file.readlines() if x.strip()]
|
| + self._ignore_hashes = set(hashes)
|
| +
|
| def AddTestResult(self, testName, md5Hash, outputImagePath):
|
| - # Copy the image to <output_dir>/<md5Hash>.<image_extension>
|
| + # If the hash is in the list of hashes to ignore then we don'try
|
| + # make a copy, but add it to the result.
|
| imgExt = os.path.splitext(outputImagePath)[1].lstrip(".")
|
| - if not imgExt:
|
| - raise ValueError("File %s does not have an extension" % outputImagePath)
|
| - newFilePath = os.path.join(self._outputDir, md5Hash + '.' + imgExt)
|
| - shutil.copy2(outputImagePath, newFilePath)
|
| + if md5Hash not in self._ignore_hashes:
|
| + # Copy the image to <output_dir>/<md5Hash>.<image_extension>
|
| + if not imgExt:
|
| + raise ValueError("File %s does not have an extension" % outputImagePath)
|
| + newFilePath = os.path.join(self._outputDir, md5Hash + '.' + imgExt)
|
| + shutil.copy2(outputImagePath, newFilePath)
|
|
|
| # Add an entry to the list of test results
|
| self._results.append({
|
| @@ -123,7 +135,11 @@ if __name__ == "__main__":
|
|
|
| keyStr = "arch arm64 compiler Clang configuration Debug"
|
|
|
| - gr = GoldResults("pdfium", testDir, propStr, keyStr)
|
| + hash_file = os.path.join(testDir, "ignore_hashes.txt")
|
| + with open(hash_file, 'wb') as f:
|
| + f.write("\n".join(["hash-1","hash-4"]) + "\n")
|
| +
|
| + gr = GoldResults("pdfium", testDir, propStr, keyStr, hash_file)
|
| gr.AddTestResult("test-1", "hash-1", os.path.join(testDir, "image1.png"))
|
| gr.AddTestResult("test-2", "hash-2", os.path.join(testDir, "image2.png"))
|
| gr.AddTestResult("test-3", "hash-3", os.path.join(testDir, "image3.png"))
|
|
|