| 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()
|
|
|