Chromium Code Reviews| Index: tools/tests/skimage_self_test.py |
| diff --git a/tools/tests/skimage_self_test.py b/tools/tests/skimage_self_test.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..8c413f68ae2e5962d8ffa2fd29680687e308acb8 |
| --- /dev/null |
| +++ b/tools/tests/skimage_self_test.py |
| @@ -0,0 +1,59 @@ |
| +#!/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 os |
| +import subprocess |
| +import sys |
| + |
| +class BinaryNotFoundException(Exception): |
| + def __str__ (self): |
| + return "Could not find binary!\nDid you forget to build the tools project?\n" \ |
|
epoger
2013/05/14 15:24:45
or, I think this will also appease the Python inte
scroggo
2013/05/14 17:49:38
Done.
|
| + + "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 |
| + |
| +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 |
| + # Run skimage twice, first to create an expectations file, and then |
|
epoger
2013/05/14 15:24:45
IMHO, this would be easier to read with a newline
scroggo
2013/05/14 17:49:38
Done.
|
| + # comparing to it. |
| + # Both commands will run the binary, reading from resources. |
| + cmd_line = [skimage_binary] |
| + resources_dir = os.path.join(trunk_dir, 'resources') |
| + cmd_line.extend(["-r", resources_dir]) |
| + # Create the expectations file |
| + results_dir = os.path.join(file_dir, "skimage") |
| + create_expectations_cmd = cmd_line + ["--createExpectationsPath", results_dir] |
| + subprocess.check_call(create_expectations_cmd) |
| + # Now read from the expectations file |
| + results_file = os.path.join(results_dir, "results.json") |
| + check_expectations_cmd = cmd_line + ["--readExpectationsPath", results_file] |
| + subprocess.check_call(check_expectations_cmd) |
| + print "Self tests succeeded!" |
| + |
| +if __name__ == "__main__": |
| + main() |