8000 Add test for PYTHON_GIL in test_cmd_line · python/cpython@4f43a87 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4f43a87

Browse files
committed
Add test for PYTHON_GIL in test_cmd_line
1 parent e0b8484 commit 4f43a87

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Lib/test/test_cmd_line.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,38 @@ def test_pythondevmode_env(self):
871871
self.assertEqual(proc.stdout.rstrip(), 'True')
872872
self.assertEqual(proc.returncode, 0, proc)
873873

874+
@unittest.skipUnless(support.Py_GIL_DISABLED,
875+
"PYTHON_GIL only supported in Py_GIL_DISABLED builds")
876+
def test_python_gil_env(self):
877+
code = """if 1:
878+
import _testinternalcapi
879+
print(_testinternalcapi.get_configs()['config'].get('enable_gil'))
880+
"""
881+
args = [sys.executable, '-c', code]
882+
env = dict(os.environ)
883+
env.pop('PYTHON_GIL', None)
884+
885+
def run():
886+
return subprocess.run(args, stdout=subprocess.PIPE,
887+
stderr=subprocess.PIPE, text=True, env=env)
888+
889+
proc = run()
890+
self.assertEqual(proc.returncode, 0, proc)
891+
self.assertEqual(proc.stdout.rstrip(), '0')
892+
self.assertEqual(proc.stderr, '')
893+
894+
env['PYTHON_GIL'] = '0'
895+
proc = run()
896+
self.assertEqual(proc.returncode, 0, proc)
897+
self.assertEqual(proc.stdout.rstrip(), '1')
898+
self.assertEqual(proc.stderr, '')
899+
900+
env['PYTHON_GIL'] = '1'
901+
proc = run()
902+
self.assertEqual(proc.returncode, 0, proc)
903+
self.assertEqual(proc.stdout.rstrip(), '2')
904+
self.assertEqual(proc.stderr, '')
905+
874906
@unittest.skipUnless(sys.platform == 'win32',
875907
'bpo-32457 only applies on Windows')
876908
def test_argv0_normalization(self):

0 commit comments

Comments
 (0)
0