From 573693a052c0be150b4bbf8f8e016cbef249a483 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 4 Oct 2021 21:12:51 +0530 Subject: [PATCH] Cleaner rexec logic --- setup/test.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/setup/test.py b/setup/test.py index 5220c331c9..eba93d8328 100644 --- a/setup/test.py +++ b/setup/test.py @@ -181,14 +181,15 @@ class Test(Command): help='Run the test suite with the sanitizer preloaded') def run(self, opts): - if opts.under_sanitize: + if opts.under_sanitize and 'CALIBRE_EXECED_UNDER_SANITIZE' not in os.environ: if 'libasan' not in os.environ.get('LD_PRELOAD', ''): os.environ['LD_PRELOAD'] = os.path.abspath(subprocess.check_output('gcc -print-file-name=libasan.so'.split()).decode('utf-8').strip()) - os.environ['ASAN_OPTIONS'] = 'detect_leaks=0' - os.environ['PYCRYPTODOME_DISABLE_DEEPBIND'] = '1' # https://github.com/Legrandin/pycryptodome/issues/558 - self.info(f'Re-execing with LD_PRELOAD={os.environ["LD_PRELOAD"]}') - sys.stdout.flush() - os.execl('setup.py', *sys.argv) + os.environ['CALIBRE_EXECED_UNDER_SANITIZE'] = '1' + os.environ['ASAN_OPTIONS'] = 'detect_leaks=0' + os.environ['PYCRYPTODOME_DISABLE_DEEPBIND'] = '1' # https://github.com/Legrandin/pycryptodome/issues/558 + self.info(f'Re-execing with LD_PRELOAD={os.environ["LD_PRELOAD"]}') + sys.stdout.flush() + os.execl('setup.py', *sys.argv) from calibre.utils.run_tests import ( filter_tests_by_name, remove_tests_by_name, run_cli )