Skip to content

Commit

Permalink
pythonGh-68586: use run_python_until_end in test_capi (pythonGH-102729)
Browse files Browse the repository at this point in the history
Co-authored-by: Aidin Gharibnavaz

Automerge-Triggered-By: GH:kumaraditya303
  • Loading branch information
furkanonder authored Apr 9, 2023
1 parent 45b4b37 commit 8317d51
Showing 1 changed file with 7 additions and 11 deletions.
18 changes: 7 additions & 11 deletions Lib/test/test_capi/test_misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
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:
Expand Down Expand Up @@ -69,21 +69,17 @@ def test_instancemethod(self):

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

Expand Down

0 comments on commit 8317d51

Please sign in to comment.