bpo-34228: Allow PYTHONTRACEMALLOC=0 (GH-8467)

PYTHONTRACEMALLOC=0 environment variable and -X tracemalloc=0 command
line option are now allowed to disable explicitly tracemalloc at
startup.
This commit is contained in:
Victor Stinner 2018-07-25 19:23:53 +02:00 committed by GitHub
parent 96d1e69a12
commit 60b04c9f6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 9 deletions

View file

@ -15,6 +15,7 @@ except ImportError:
EMPTY_STRING_SIZE = sys.getsizeof(b'')
INVALID_NFRAME = (-1, 2**30)
def get_frames(nframe, lineno_delta):
@ -833,6 +834,13 @@ class TestCommandLine(unittest.TestCase):
stdout = stdout.rstrip()
self.assertEqual(stdout, b'False')
def test_env_var_disabled(self):
# tracing at startup
code = 'import tracemalloc; print(tracemalloc.is_tracing())'
ok, stdout, stderr = assert_python_ok('-c', code, PYTHONTRACEMALLOC='0')
stdout = stdout.rstrip()
self.assertEqual(stdout, b'False')
def test_env_var_enabled_at_startup(self):
# tracing at startup
code = 'import tracemalloc; print(tracemalloc.is_tracing())'
@ -861,7 +869,7 @@ class TestCommandLine(unittest.TestCase):
def test_env_var_invalid(self):
for nframe in (-1, 0, 2**30):
for nframe in INVALID_NFRAME:
with self.subTest(nframe=nframe):
self.check_env_var_invalid(nframe)
@ -889,7 +897,7 @@ class TestCommandLine(unittest.TestCase):
self.fail(f"unexpeced output: {stderr!a}")
def test_sys_xoptions_invalid(self):
for nframe in (-1, 0, 2**30):
for nframe in INVALID_NFRAME:
with self.subTest(nframe=nframe):
self.check_sys_xoptions_invalid(nframe)