diff options
author | Marius Kintel <marius@kintel.net> | 2011-11-26 01:25:28 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-11-26 01:25:28 (GMT) |
commit | 7678f0f08305ecbc9d6f137f9deb19c60c904346 (patch) | |
tree | bc6a293eb556aa4a4ab221ffbc2de90cad538bed /tests/test_cmdline_tool.py | |
parent | 60e4c81b4304d40d2e77990d746a9e387d1637d7 (diff) |
Now uses Imagemagick convert for performing image tests
Diffstat (limited to 'tests/test_cmdline_tool.py')
-rwxr-xr-x | tests/test_cmdline_tool.py | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/tests/test_cmdline_tool.py b/tests/test_cmdline_tool.py index 3f27c1e..8b49f78 100755 --- a/tests/test_cmdline_tool.py +++ b/tests/test_cmdline_tool.py @@ -48,13 +48,15 @@ def execute_and_redirect(cmd, params, outfile): retval = -1 try: proc = subprocess.Popen([cmd] + params, stdout=outfile) + out = proc.communicate()[0] retval = proc.wait() except: print >> sys.stderr, "Error running subprocess: ", sys.exc_info()[1] print >> sys.stderr, " cmd:", cmd print >> sys.stderr, " params:", params print >> sys.stderr, " outfile:", outfile - return retval + if outfile == subprocess.PIPE: return (retval, out) + else: return retval def get_normalized_text(filename): text = open(filename).read() @@ -73,10 +75,22 @@ def compare_png(resultfilename): if not resultfilename: print >> sys.stderr, "Error: OpenSCAD did not generate an image" return False - print >> sys.stderr, 'Yee image compare: ', expectedfilename, ' ', resultfilename - if execute_and_redirect("./yee_compare", [expectedfilename, resultfilename, "-downsample", "1", "-threshold", "150"], sys.stderr) != 0: - return False - return True + +# args = [expectedfilename, resultfilename, "-alpha", "Off", "-compose", "difference", "-composite", "-threshold", "10%", "-blur", "2", "-threshold", "30%", "-format", "%[fx:w*h*mean]", "info:"] + args = [expectedfilename, resultfilename, "-alpha", "Off", "-compose", "difference", "-composite", "-threshold", "10%", "-morphology", "Erode", "Square", "-format", "%[fx:w*h*mean]", "info:"] + print >> sys.stderr, 'convert ', ' '.join(args) + (retval, output) = execute_and_redirect("convert", args, subprocess.PIPE) + if retval == 0: + pixelerr = int(float(output.strip())) + if pixelerr < 32: return True + else: print >> sys.stderr, pixelerr, ' pixel errors' + return False + +# Old compare solution, based on yee_compare +# print >> sys.stderr, 'Yee image compare: ', expectedfilename, ' ', resultfilename +# if execute_and_redirect("./yee_compare", [expectedfilename, resultfilename, "-downsample", "1", "-threshold", "150"], sys.stderr) != 0: +# return False +# return True def compare_with_expected(resultfilename): if not options.generate: |