@@ -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