From bdfdac0f26aafb3e9ff2db123116f0406fa49efc Mon Sep 17 00:00:00 2001 From: Ebrahim Byagowi Date: Fri, 19 Jul 2019 10:33:00 +0430 Subject: [PATCH] [ci][fuzzer] print valgrind failure if an error happened --- test/fuzzing/run-shape-fuzzer-tests.py | 34 +++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/test/fuzzing/run-shape-fuzzer-tests.py b/test/fuzzing/run-shape-fuzzer-tests.py index ba480dd52..6d36c2cfe 100755 --- a/test/fuzzing/run-shape-fuzzer-tests.py +++ b/test/fuzzing/run-shape-fuzzer-tests.py @@ -5,41 +5,41 @@ from __future__ import print_function, division, absolute_import import sys, os, subprocess, tempfile, threading -def which(program): +def which (program): # https://stackoverflow.com/a/377028 - def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + def is_exe (fpath): + return os.path.isfile (fpath) and os.access (fpath, os.X_OK) - fpath, _ = os.path.split(program) + fpath, _ = os.path.split (program) if fpath: - if is_exe(program): + if is_exe (program): return program else: - for path in os.environ["PATH"].split(os.pathsep): - exe_file = os.path.join(path, program) - if is_exe(exe_file): + for path in os.environ["PATH"].split (os.pathsep): + exe_file = os.path.join (path, program) + if is_exe (exe_file): return exe_file return None -def cmd(command): +def cmd (command): # https://stackoverflow.com/a/4408409 # https://stackoverflow.com/a/10012262 - with tempfile.TemporaryFile() as tempf: + with tempfile.TemporaryFile () as tempf: p = subprocess.Popen (command, stderr=tempf) is_killed = {'value': False} - def timeout(p, is_killed): + def timeout (p, is_killed): is_killed['value'] = True - p.kill() + p.kill () timer = threading.Timer (2, timeout, [p, is_killed]) try: timer.start() p.wait () tempf.seek (0) - text = tempf.read().decode ("utf-8").strip () + text = tempf.read ().decode ("utf-8").strip () returncode = p.returncode finally: timer.cancel() @@ -67,9 +67,9 @@ please provide it as the first argument to the tool""") print ('hb_shape_fuzzer:', hb_shape_fuzzer) fails = 0 -libtool = os.environ.get('LIBTOOL') +libtool = os.environ.get ('LIBTOOL') valgrind = None -if os.environ.get('RUN_VALGRIND', ''): +if os.environ.get ('RUN_VALGRIND', ''): valgrind = which ('valgrind') if valgrind is None: print ("""Valgrind requested but not found.""") @@ -80,7 +80,7 @@ if os.environ.get('RUN_VALGRIND', ''): parent_path = os.path.join (srcdir, "fonts") for file in os.listdir (parent_path): - path = os.path.join(parent_path, file) + path = os.path.join (parent_path, file) if valgrind: text, returncode = cmd (libtool.split(' ') + ['--mode=execute', valgrind + ' --leak-check=full --error-exitcode=1', '--', hb_shape_fuzzer, path]) @@ -89,7 +89,7 @@ for file in os.listdir (parent_path): if 'error' in text: returncode = 1 - if not valgrind and text.strip (): + if (not valgrind or returncode) and text.strip (): print (text) if returncode != 0: