mirror of
https://github.com/python/cpython.git
synced 2026-01-02 13:33:44 +00:00
[3.12] gh-104839: Prevent test_venv AddressSanitizer spam (GH-105005) (#105006)
gh-104839: Prevent test_venv AddressSanitizer spam (GH-105005)
Pass any ASAN_OPTIONS environment variable through to the child process
so that leak sanitizer being disabled on our CI and buildbots stays
true in the children.
(cherry picked from commit a17f160376)
Co-authored-by: Gregory P. Smith [Google] <greg@krypto.org>
This commit is contained in:
parent
2c02c68867
commit
f625ec3603
1 changed files with 8 additions and 9 deletions
|
|
@ -600,15 +600,14 @@ def test_zippath_from_non_installed_posix(self):
|
|||
ld_library_path_env = "DYLD_LIBRARY_PATH"
|
||||
else:
|
||||
ld_library_path_env = "LD_LIBRARY_PATH"
|
||||
# Note that in address sanitizer mode, the current runtime
|
||||
# implementation leaks memory due to not being able to correctly
|
||||
# clean all unicode objects during runtime shutdown. Therefore,
|
||||
# this uses subprocess.run instead of subprocess.check_call to
|
||||
# maintain the core of the test while not failing due to the refleaks.
|
||||
# This should be able to use check_call once all refleaks are fixed.
|
||||
subprocess.run(cmd,
|
||||
env={"PYTHONPATH": pythonpath,
|
||||
ld_library_path_env: ld_library_path})
|
||||
child_env = {
|
||||
"PYTHONPATH": pythonpath,
|
||||
ld_library_path_env: ld_library_path,
|
||||
}
|
||||
if asan_options := os.environ.get("ASAN_OPTIONS"):
|
||||
# prevent https://github.com/python/cpython/issues/104839
|
||||
child_env["ASAN_OPTIONS"] = asan_options
|
||||
subprocess.check_call(cmd, env=child_env)
|
||||
envpy = os.path.join(self.env_dir, self.bindir, self.exe)
|
||||
# Now check the venv created from the non-installed python has
|
||||
# correct zip path in pythonpath.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue