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

Unified Diff: tools/tests/skimage/self_test.py

Issue 14969007: Create a self test for skimage. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 7 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 | « no previous file | 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
new file mode 100755
index 0000000000000000000000000000000000000000..978a126241fb3b119f9b18284bc114644e7d3253
--- /dev/null
+++ b/tools/tests/skimage/self_test.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
scroggo 2013/05/09 15:50:43 I noticed that gm's self test has a note that it s
epoger 2013/05/09 16:35:50 Yes, good idea to do it that way in the first plac
+# 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
+
+# Use the directory of this file as the out directory
epoger 2013/05/09 16:35:50 I think it would be better to write test files int
scroggo 2013/05/09 19:05:59 Done.
+out_dir = os.path.dirname(__file__)
+out_dir = os.path.abspath(out_dir)
+
+# Move up to trunk
+old_working_dir = os.getcwd()
+os.chdir(out_dir)
+os.chdir('../../../')
+
+# Find the binary
+skimage_binary = None
+xcode_path = "xcodebuild/Debug/skimage"
+gcc_path = "out/Debug/skimage"
scroggo 2013/05/09 15:50:43 It looks like gm's self test assumes you have alre
epoger 2013/05/09 16:35:50 Yeah, it's a tough call, because individual develo
+
+if (os.path.exists(gcc_path)):
epoger 2013/05/09 16:35:50 Good idea to go looking for the binary in differen
scroggo 2013/05/09 19:05:59 I have added a function to find the binary. I also
+ skimage_binary = gcc_path
+elif (os.path.exists(xcode_path)):
+ skimage_binary = xcode_path
+
+resultsFile = None
+
+if (skimage_binary != None):
+ try:
+ # Run skimage twice, first to create an expectations file, and then
+ # comparing to it.
+ # Both commands will run the binary, reading from resources.
+ cmd_line = [skimage_binary]
+ cmd_line.extend(["-r", "resources/CMYK.jpg", "resources/plane.png"])
epoger 2013/05/09 16:35:50 Alternatively, you could assemble these paths as a
scroggo 2013/05/09 19:05:59 Done.
+ # Create the expectations file
+ create_expectations_cmd = cmd_line + ["--createExpectationsPath", out_dir]
+ subprocess.check_call(create_expectations_cmd)
scroggo 2013/05/09 15:57:29 There are some commands for calling programs more
epoger 2013/05/09 16:35:50 Unfortunately, no. Most developers will have chec
scroggo 2013/05/09 19:05:59 That sounds reasonable to me. Probably outside of
epoger 2013/05/09 19:19:39 Definitely outside the scope of this CL. Please c
+ # Now read from the expectations file
+ resultsFile = os.path.join(out_dir, "results.json")
+ check_expectations_cmd = cmd_line + ["--readExpectationsPath", resultsFile]
epoger 2013/05/09 16:35:50 Great! This is definitely a good start... but, if
scroggo 2013/05/09 19:05:59 Definitely the long term plan is to compare agains
epoger 2013/05/09 19:19:39 To some extent, we may be able to have expectation
+ subprocess.check_call(check_expectations_cmd)
+ print "Self tests succeeded!"
+ except subprocess.CalledProcessError as e:
+ print skimage_binary + " failed with error code " + str(e.returncode)
+ print "Self tests failed!"
epoger 2013/05/09 16:35:50 It would be better if the process exited with a no
scroggo 2013/05/09 19:05:59 Done.
+else:
+ print "Could not find skimage binary!"
+ print "Did you forget to build tools project?"
+ print "Self tests failed"
+
+# Delete the results file, which is no longer needed.
+if (resultsFile != None and os.path.exists(resultsFile)):
+ os.remove(resultsFile)
+
+# Return to the original working directory.
+os.chdir(old_working_dir)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698