Commit: a6fcfbacf024b8ac6496886fc67936fa5ce3a373 Author: Campbell Barton Date: Thu Jan 22 20:24:01 2015 +1100 Branches: cycles_ctests https://developer.blender.org/rBa6fcfbacf024b8ac6496886fc67936fa5ce3a373
Add BLENDER_VERBOSE env var check to cycles test This means you can see Blender's output if you want. also minor style edits =================================================================== M tests/python/cycles/render_tests.py =================================================================== diff --git a/tests/python/cycles/render_tests.py b/tests/python/cycles/render_tests.py index ee80a0b..036166a 100755 --- a/tests/python/cycles/render_tests.py +++ b/tests/python/cycles/render_tests.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Apache License, Version 2.0 import argparse import os @@ -6,35 +7,22 @@ import subprocess import sys import tempfile -parser = argparse.ArgumentParser() -parser.add_argument('-blender', nargs='+') -parser.add_argument('-testdir', nargs=1) -parser.add_argument('-idiff', nargs=1) -args = parser.parse_args() - -BLENDER = args.blender[0] -ROOT = args.testdir[0] -IDIFF = args.idiff[0] - -TEMP = tempfile.mkdtemp() -TEMP_FILE_MASK = os.path.join(TEMP, "test") -TEMP_FILE = TEMP_FILE_MASK + '0001.png' - -TEST_SCRIPT = os.path.join(os.path.dirname(__file__), 'runtime_check.py') - def render_file(filepath): - command = [BLENDER, - '--background', - '-noaudio', - '--factory-startup', - filepath, - '--python', TEST_SCRIPT, - '-o', TEMP_FILE_MASK, - '-f', '1', - ] + command = ( + BLENDER, + "--background", + "-noaudio", + "--factory-startup", + filepath, + "--python", TEST_SCRIPT, + "-o", TEMP_FILE_MASK, + "-f", "1", + ) try: - subprocess.check_output(command) + output = subprocess.check_output(command) + if VERBOSE: + print(output.decode("utf-8")) return None if os.path.exists(TEMP_FILE) else "NOT_FOUND" except subprocess.CalledProcessError as grepexc: return "NO_CYCLES" if grepexc.returncode == 128 else "CRASH" @@ -52,16 +40,17 @@ def test_get_name(filepath): def verify_output(filepath): testname = test_get_name(filepath) dirpath = os.path.dirname(filepath) - reference_dirpath = os.path.join(dirpath, 'reference_renders') - reference_image = os.path.join(reference_dirpath, testname + '.png') + reference_dirpath = os.path.join(dirpath, "reference_renders") + reference_image = os.path.join(reference_dirpath, testname + ".png") if not os.path.exists(reference_image): return False - command = [IDIFF, - '-fail', '0.01', - '-failpercent', '1', - reference_image, - TEMP_FILE, - ] + command = ( + IDIFF, + "-fail", "0.01", + "-failpercent", "1", + reference_image, + TEMP_FILE, + ) try: subprocess.check_output(command) return True @@ -72,14 +61,14 @@ def verify_output(filepath): def run_test(filepath): testname = test_get_name(filepath) spacer = "." * (32 - len(testname)) - print(testname, spacer, end='') + print(testname, spacer, end="") sys.stdout.flush() error = render_file(filepath) if not error: if verify_output(filepath): - print('PAS') + print("PASS") else: - error = 'VERIFY' + error = "VERIFY" if error: print("FAIL", error) return error @@ -100,8 +89,8 @@ def run_all_tests(dirpath): for filepath in all_files: error = run_test(filepath) if error: - if error == 'NO_CYCLES': - print('Can not perform tests because Cycles can''t be loaed') + if error == "NO_CYCLES": + print("Can't perform tests because Cycles failed to load!") return False testname = test_get_name(filepath) failed_tests.append(testname) @@ -109,15 +98,48 @@ def run_all_tests(dirpath): failed_tests.sort() print("\n\nFAILED tests:") for test in failed_tests: - print(" " + test) + print(" ", test) return False return True -ok = run_all_tests(ROOT) -# Cleanup temp files and folders -if os.path.exists(TEMP_FILE): - os.remove(TEMP_FILE) -os.rmdir(TEMP) +def create_argparse(): + parser = argparse.ArgumentParser() + parser.add_argument("-blender", nargs="+") + parser.add_argument("-testdir", nargs=1) + parser.add_argument("-idiff", nargs=1) + return parser + + +def main(): + parser = create_argparse() + args = parser.parse_args() + + global BLENDER, ROOT, IDIFF + global TEMP_FILE, TEMP_FILE_MASK, TEST_SCRIPT + global VERBOSE + + BLENDER = args.blender[0] + ROOT = args.testdir[0] + IDIFF = args.idiff[0] + + TEMP = tempfile.mkdtemp() + TEMP_FILE_MASK = os.path.join(TEMP, "test") + TEMP_FILE = TEMP_FILE_MASK + "0001.png" + + TEST_SCRIPT = os.path.join(os.path.dirname(__file__), "runtime_check.py") + + VERBOSE = os.environ.get("BLENDER_VERBOSE") is not None + + ok = run_all_tests(ROOT) + + # Cleanup temp files and folders + if os.path.exists(TEMP_FILE): + os.remove(TEMP_FILE) + os.rmdir(TEMP) + + sys.exit(not ok) + -sys.exit(0 if ok else 1) +if __name__ == "__main__": + main() _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs