@@ -871,6 +871,38 @@ def test_pythondevmode_env(self):
871
871
self .assertEqual (proc .stdout .rstrip (), 'True' )
872
872
self .assertEqual (proc .returncode , 0 , proc )
873
873
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
+
874
906
@unittest .skipUnless (sys .platform == 'win32' ,
875
907
'bpo-32457 only applies on Windows' )
876
908
def test_argv0_normalization (self ):
0 commit comments