| 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!"
|
|
|
|
|