mirror of
https://github.com/python/cpython.git
synced 2025-09-09 02:11:51 +00:00
Gh-68586: use run_python_until_end in test_capi (GH-102729)
Co-authored-by: Aidin Gharibnavaz Automerge-Triggered-By: GH:kumaraditya303
This commit is contained in:
parent
45b4b37fc2
commit
8317d51996
1 changed files with 7 additions and 11 deletions
|
@ -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)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue