]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Gh-68586: use run_python_until_end in test_capi (GH-102729) 30216/head
authorFurkan Onder <furkanonder@protonmail.com>
Sun, 9 Apr 2023 08:44:49 +0000 (11:44 +0300)
committerGitHub <noreply@github.com>
Sun, 9 Apr 2023 08:44:49 +0000 (01:44 -0700)
Co-authored-by: Aidin Gharibnavaz
Automerge-Triggered-By: GH:kumaraditya303
Lib/test/test_capi/test_misc.py

index c34ee578b5c83f15899edb7974fac14112270089..637adc01a331ce7a49dee73d896043e2ae55dd2c 100644 (file)
@@ -21,7 +21,7 @@ from test.support import MISSING_C_DOCSTRINGS
 from test.support import import_helper
 from test.support import threading_helper
 from test.support import warnings_helper
-from test.support.script_helper import assert_python_failure, assert_python_ok
+from test.support.script_helper import assert_python_failure, assert_python_ok, run_python_until_end
 try:
     import _posixsubprocess
 except ImportError:
@@ -69,21 +69,17 @@ class CAPITest(unittest.TestCase):
 
     @support.requires_subprocess()
     def test_no_FatalError_infinite_loop(self):
-        with support.SuppressCrashReport():
-            p = subprocess.Popen([sys.executable, "-c",
-                                  'import _testcapi;'
-                                  '_testcapi.crash_no_current_thread()'],
-                                 stdout=subprocess.PIPE,
-                                 stderr=subprocess.PIPE,
-                                 text=True)
-        (out, err) = p.communicate()
-        self.assertEqual(out, '')
+        run_result, _cmd_line = run_python_until_end(
+            '-c', 'import _testcapi; _testcapi.crash_no_current_thread()',
+        )
+        _rc, out, err = run_result
+        self.assertEqual(out, b'')
         # This used to cause an infinite loop.
         msg = ("Fatal Python error: PyThreadState_Get: "
                "the function must be called with the GIL held, "
                "after Python initialization and before Python finalization, "
                "but the GIL is released "
-               "(the current Python thread state is NULL)")
+               "(the current Python thread state is NULL)").encode()
         self.assertTrue(err.rstrip().startswith(msg),
                         err)