From 327429b62578eebb59b40e6397b7ee5e61ef826c Mon Sep 17 00:00:00 2001 From: Thom Wiggers Date: Tue, 16 Apr 2019 12:58:43 +0200 Subject: [PATCH] Make sure -fsanitizer binaries are always cleaned up --- test/test_functest.py | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/test/test_functest.py b/test/test_functest.py index be45404d..4923d74a 100644 --- a/test/test_functest.py +++ b/test/test_functest.py @@ -60,21 +60,25 @@ def check_functest_sanitizers(implementation): EXTRAFLAGS='-fsanitize=address,undefined', working_dir=os.path.join('..', 'test'), env=env) - helpers.run_subprocess( - [os.path.join('..', 'bin', 'functest_{}_{}{}'.format( - implementation.scheme.name, - implementation.name, - '.exe' if os.name == 'nt' else '' - ))], - os.path.join('..', 'bin'), - env=env, - ) - # Remove files with ASAN library compiled in - helpers.make('clean-scheme', - TYPE=implementation.scheme.type, - SCHEME=implementation.scheme.name, - IMPLEMENTATION=implementation.name, - working_dir=os.path.join('..', 'test')) + try: + helpers.run_subprocess( + [os.path.join('..', 'bin', 'functest_{}_{}{}'.format( + implementation.scheme.name, + implementation.name, + '.exe' if os.name == 'nt' else '' + ))], + os.path.join('..', 'bin'), + env=env, + ) + except AssertionError as e: + raise e + finally: + # Remove files with ASAN library compiled in + helpers.make('clean-scheme', + TYPE=implementation.scheme.type, + SCHEME=implementation.scheme.name, + IMPLEMENTATION=implementation.name, + working_dir=os.path.join('..', 'test')) if __name__ == '__main__':