summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authordevdanzin <74280297+devdanzin@users.noreply.github.com>2024-06-18 17:12:58 (GMT)
committerGitHub <noreply@github.com>2024-06-18 17:12:58 (GMT)
commitc81a5e6b5b7749862d271e7a67f89976069ad2cd (patch)
tree88facfe93162e46f65d8693797ff890b717e7959 /Lib
parente9f4d80fa66e0d3331e79d539329747297e54ae5 (diff)
downloadcpython-c81a5e6b5b7749862d271e7a67f89976069ad2cd.zip
cpython-c81a5e6b5b7749862d271e7a67f89976069ad2cd.tar.gz
cpython-c81a5e6b5b7749862d271e7a67f89976069ad2cd.tar.bz2
gh-119574: Add some missing environment variables to '--help-env'. (GH-120006)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_cmd_line.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py
index 8418da5..a9963bf 100644
--- a/Lib/test/test_cmd_line.py
+++ b/Lib/test/test_cmd_line.py
@@ -5,6 +5,7 @@
import os
import subprocess
import sys
+import sysconfig
import tempfile
import textwrap
import unittest
@@ -912,6 +913,75 @@ class CmdLineTest(unittest.TestCase):
self.assertEqual(proc.stdout.rstrip(), expected)
self.assertEqual(proc.stderr, '')
+ def test_python_asyncio_debug(self):
+ code = "import asyncio; print(asyncio.get_event_loop().get_debug())"
+ rc, out, err = assert_python_ok('-c', code, PYTHONASYNCIODEBUG='1')
+ self.assertIn(b'True', out)
+
+ @unittest.skipUnless(sysconfig.get_config_var('Py_TRACE_REFS'), "Requires --with-trace-refs build option")
+ def test_python_dump_refs(self):
+ code = 'import sys; sys._clear_type_cache()'
+ rc, out, err = assert_python_ok('-c', code, PYTHONDUMPREFS='1')
+ self.assertEqual(rc, 0)
+
+ @unittest.skipUnless(sysconfig.get_config_var('Py_TRACE_REFS'), "Requires --with-trace-refs build option")
+ def test_python_dump_refs_file(self):
+ with tempfile.NamedTemporaryFile() as dump_file:
+ code = 'import sys; sys._clear_type_cache()'
+ rc, out, err = assert_python_ok('-c', code, PYTHONDUMPREFSFILE=dump_file.name)
+ self.assertEqual(rc, 0)
+ with open(dump_file.name, 'r') as file:
+ contents = file.read()
+ self.assertIn('Remaining objects', contents)
+
+ @unittest.skipUnless(sys.platform == 'darwin', 'PYTHONEXECUTABLE only works on macOS')
+ def test_python_executable(self):
+ code = 'import sys; print(sys.executable)'
+ expected = "/busr/bbin/bpython"
+ rc, out, err = assert_python_ok('-c', code, PYTHONEXECUTABLE=expected)
+ self.assertIn(expected.encode(), out)
+
+ @unittest.skipUnless(support.MS_WINDOWS, 'Test only applicable on Windows')
+ def test_python_legacy_windows_fs_encoding(self):
+ code = "import sys; print(sys.getfilesystemencoding())"
+ expected = 'mbcs'
+ rc, out, err = assert_python_ok('-c', code, PYTHONLEGACYWINDOWSFSENCODING='1')
+ self.assertIn(expected.encode(), out)
+
+ @unittest.skipUnless(support.MS_WINDOWS, 'Test only applicable on Windows')
+ def test_python_legacy_windows_stdio(self):
+ code = "import sys; print(sys.stdin.encoding, sys.stdout.encoding)"
+ expected = 'cp'
+ rc, out, err = assert_python_ok('-c', code, PYTHONLEGACYWINDOWSSTDIO='1')
+ self.assertIn(expected.encode(), out)
+
+ @unittest.skipIf("-fsanitize" in sysconfig.get_config_vars().get('PY_CFLAGS', ()),
+ "PYTHONMALLOCSTATS doesn't work with ASAN")
+ def test_python_malloc_stats(self):
+ code = "pass"
+ rc, out, err = assert_python_ok('-c', code, PYTHONMALLOCSTATS='1')
+ self.assertIn(b'Small block threshold', err)
+
+ def test_python_user_base(self):
+ code = "import site; print(site.USER_BASE)"
+ expected = "/custom/userbase"
+ rc, out, err = assert_python_ok('-c', code, PYTHONUSERBASE=expected)
+ self.assertIn(expected.encode(), out)
+
+ def test_python_basic_repl(self):
+ # Currently this only tests that the env var is set
+ code = "import os; print('PYTHON_BASIC_REPL' in os.environ)"
+ expected = "True"
+ rc, out, err = assert_python_ok('-c', code, PYTHON_BASIC_REPL='1')
+ self.assertIn(expected.encode(), out)
+
+ @unittest.skipUnless(sysconfig.get_config_var('HAVE_PERF_TRAMPOLINE'), "Requires HAVE_PERF_TRAMPOLINE support")
+ def test_python_perf_jit_support(self):
+ code = "import sys; print(sys.is_stack_trampoline_active())"
+ expected = "True"
+ rc, out, err = assert_python_ok('-c', code, PYTHON_PERF_JIT_SUPPORT='1')
+ self.assertIn(expected.encode(), out)
+
@unittest.skipUnless(sys.platform == 'win32',
'bpo-32457 only applies on Windows')
def test_argv0_normalization(self):