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

Unified Diff: tools/tests/skimage_self_test.py

Issue 804133003: skimage, die die die (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Expectations too Created 6 years 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/output-expected/nonexistent-dir/expectations.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
deleted file mode 100755
index 171404c5e4cbbee56d1f08964ade897343b9ed10..0000000000000000000000000000000000000000
--- a/tools/tests/skimage_self_test.py
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Self-test for skimage.
-
-import filecmp
-import os
-import subprocess
-import sys
-import tempfile
-
-class BinaryNotFoundException(Exception):
- def __str__ (self):
- return ("Could not find binary!\n"
- "Did you forget to build the tools project?\n"
- "Self tests failed")
-
-# Find a path to the binary to use. Iterates through a list of possible
-# locations the binary may be.
-def PickBinaryPath(base_dir):
- POSSIBLE_BINARY_PATHS = [
- 'out/Debug/skimage',
- 'out/Release/skimage',
- 'xcodebuild/Debug/skimage',
- 'xcodebuild/Release/skimage',
- ]
- for binary in POSSIBLE_BINARY_PATHS:
- binary_full_path = os.path.join(base_dir, binary)
- if (os.path.exists(binary_full_path)):
- return binary_full_path
- raise BinaryNotFoundException
-
-# Quit early if two files have different content.
-def DieIfFilesMismatch(expected, actual):
- if not filecmp.cmp(expected, actual):
- raise Exception("Error: file mismatch! expected=%s , actual=%s" % (
- expected, actual))
-
-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:
- raise Exception("'%s' should have reported failure!" % " ".join(args))
-
- # 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:
- raise Exception("'%s' should have reported failure!" % " ".join(args))
-
- # Empty expectations:
- empty_expectations = os.path.join(expectations_dir, "empty-results.json")
- output = subprocess.check_output([skimage_binary, "--readPath", invalid_file,
- "--readExpectationsPath",
- empty_expectations],
- stderr=subprocess.STDOUT)
- if not "Missing" in output:
- # Another test (in main()) tests to ensure that "Missing" does not appear
- # in the output. That test could be passed if the output changed so
- # "Missing" never appears. This ensures that an error is not missed if
- # that happens.
- raise Exception(
- "skimage output changed! This may cause other self tests to fail!")
-
- # Ignore failure:
- ignore_expectations = os.path.join(expectations_dir, "ignore-results.json")
- output = subprocess.check_output([skimage_binary, "--readPath", invalid_file,
- "--readExpectationsPath",
- ignore_expectations],
- stderr=subprocess.STDOUT)
- if not "failures" in output:
- # Another test (in main()) tests to ensure that "failures" does not
- # appear in the output. That test could be passed if the output changed
- # so "failures" never appears. This ensures that an error is not missed
- # if that happens.
- raise Exception(
- "skimage output changed! This may cause other self tests to fail!")
-
-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:
- raise Exception("'%s' should have reported failure!" % " ".join(args))
-
- 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__))
-
- trunk_dir = os.path.normpath(os.path.join(file_dir, os.pardir, os.pardir))
-
- # Find the binary
- skimage_binary = PickBinaryPath(trunk_dir)
- print "Running " + skimage_binary
-
- # Generate an expectations file from known images.
- images_dir = os.path.join(file_dir, "skimage", "input",
- "images-with-known-hashes")
- expectations_path = os.path.join(file_dir, "skimage", "output-actual",
- "create-expectations", "expectations.json")
- subprocess.check_call([skimage_binary, "--readPath", images_dir,
- "--createExpectationsPath", expectations_path])
-
- # Make sure the expectations file was generated correctly.
- golden_expectations = os.path.join(file_dir, "skimage", "output-expected",
- "create-expectations",
- "expectations.json")
- DieIfFilesMismatch(expected=golden_expectations, actual=expectations_path)
-
- # Tell skimage to read back the expectations file it just wrote, and
- # confirm that the images in images_dir match it.
- output = subprocess.check_output([skimage_binary, "--readPath", images_dir,
- "--readExpectationsPath",
- expectations_path],
- stderr=subprocess.STDOUT)
-
- # Although skimage succeeded, it would have reported success if the file
- # was missing from the expectations file. Consider this a failure, since
- # the expectations file was created from this same image. (It will print
- # "Missing" in this case before listing the missing expectations).
- if "Missing" in output:
- raise Exception("Expectations file was missing expectations: %s" % output)
-
- # Again, skimage would succeed if there were known failures (and print
- # "failures"), but there should be no failures, since the file just
- # created did not include failures to ignore.
- if "failures" in output:
- raise Exception("Image failed: %s" % output)
-
-
- test_incorrect_expectations(file_dir=file_dir,
- skimage_binary=skimage_binary)
-
- # Generate an expectations file from an empty directory.
- empty_dir = tempfile.mkdtemp()
- expectations_path = os.path.join(file_dir, "skimage", "output-actual",
- "empty-dir", "expectations.json")
- subprocess.check_call([skimage_binary, "--readPath", empty_dir,
- "--createExpectationsPath", expectations_path])
- golden_expectations = os.path.join(file_dir, "skimage", "output-expected",
- "empty-dir", "expectations.json")
- DieIfFilesMismatch(expected=golden_expectations, actual=expectations_path)
- os.rmdir(empty_dir)
-
- # Generate an expectations file from a nonexistent directory.
- expectations_path = os.path.join(file_dir, "skimage", "output-actual",
- "nonexistent-dir", "expectations.json")
- subprocess.check_call([skimage_binary, "--readPath", "/nonexistent/dir",
- "--createExpectationsPath", expectations_path])
- golden_expectations = os.path.join(file_dir, "skimage", "output-expected",
- "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!"
-
-if __name__ == "__main__":
- main()
« no previous file with comments | « tools/tests/skimage/output-expected/nonexistent-dir/expectations.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698