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

Unified Diff: tools/tests/skimage_self_test.py

Issue 22293006: Truly ignore failures in skimage. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Fix a typo Created 7 years, 2 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 | « tools/tests/skimage/input/images-with-known-hashes/incorrect-results.json ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/tests/skimage_self_test.py
diff --git a/tools/tests/skimage_self_test.py b/tools/tests/skimage_self_test.py
index 24164d4a5190b7bd397965127cedcab0e533ed3a..6229d6a9fffafbd79ef4a557ef316a292c8dbf76 100755
--- a/tools/tests/skimage_self_test.py
+++ b/tools/tests/skimage_self_test.py
@@ -39,6 +39,66 @@ def DieIfFilesMismatch(expected, actual):
expected, actual)
exit(1)
+def test_invalid_file(file_dir, skimage_binary):
+ """ Test the return value of skimage when an invalid file is decoded.
+ If there is no expectation file, or the file expects a particular
+ result, skimage should return nonzero indicating failure.
+ If the file has no expectation, or ignore-failure is set to true,
+ skimage should return zero indicating success. """
+ invalid_file = os.path.join(file_dir, "skimage", "input", "bad-images",
+ "invalid.png")
+ # No expectations file:
+ args = [skimage_binary, "--readPath", invalid_file]
+ result = subprocess.call(args)
+ if 0 == result:
+ print "'%s' should have reported failure!" % " ".join(args)
+ exit(1)
+
+ # Directory holding all expectations files
+ expectations_dir = os.path.join(file_dir, "skimage", "input", "bad-images")
+
+ # Expectations file expecting a valid decode:
+ incorrect_expectations = os.path.join(expectations_dir,
+ "incorrect-results.json")
+ args = [skimage_binary, "--readPath", invalid_file,
+ "--readExpectationsPath", incorrect_expectations]
+ result = subprocess.call(args)
+ if 0 == result:
+ print "'%s' should have reported failure!" % " ".join(args)
+ exit(1)
+
+ # Empty expectations:
+ empty_expectations = os.path.join(expectations_dir, "empty-results.json")
+ subprocess.check_call([skimage_binary, "--readPath", invalid_file,
+ "--readExpectationsPath", empty_expectations])
+
+ # Ignore failure:
+ ignore_expectations = os.path.join(expectations_dir, "ignore-results.json")
+ subprocess.check_call([skimage_binary, "--readPath", invalid_file,
+ "--readExpectationsPath", ignore_expectations])
+
+def test_incorrect_expectations(file_dir, skimage_binary):
+ """ Test that comparing to incorrect expectations fails, unless
+ ignore-failures is set to true. """
+ valid_file = os.path.join(file_dir, "skimage", "input",
+ "images-with-known-hashes",
+ "1209453360120438698.png")
+ expectations_dir = os.path.join(file_dir, "skimage", "input",
+ "images-with-known-hashes")
+
+ incorrect_results = os.path.join(expectations_dir,
+ "incorrect-results.json")
+ args = [skimage_binary, "--readPath", valid_file, "--readExpectationsPath",
+ incorrect_results]
+ result = subprocess.call(args)
+ if 0 == result:
+ print "'%s' should have reported failure!" % " ".join(args)
+ exit(1)
+
+ ignore_results = os.path.join(expectations_dir, "ignore-failures.json")
+ subprocess.check_call([skimage_binary, "--readPath", valid_file,
+ "--readExpectationsPath", ignore_results])
+
def main():
# Use the directory of this file as the out directory
file_dir = os.path.abspath(os.path.dirname(__file__))
@@ -68,8 +128,8 @@ def main():
subprocess.check_call([skimage_binary, "--readPath", images_dir,
"--readExpectationsPath", expectations_path])
- # TODO(scroggo): Add a test that compares expectations and image files that
- # are known to NOT match, and make sure it returns an error.
+ test_incorrect_expectations(file_dir=file_dir,
+ skimage_binary=skimage_binary)
# Generate an expectations file from an empty directory.
empty_dir = tempfile.mkdtemp()
@@ -91,6 +151,8 @@ def main():
"nonexistent-dir", "expectations.json")
DieIfFilesMismatch(expected=golden_expectations, actual=expectations_path)
+ test_invalid_file(file_dir=file_dir, skimage_binary=skimage_binary)
+
# Done with all tests.
print "Self tests succeeded!"
« no previous file with comments | « tools/tests/skimage/input/images-with-known-hashes/incorrect-results.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698