🌐 AI搜索 & 代理 主页
Skip to content

Commit a9a9efe

Browse files
committed
make test more reliable
1 parent cf15c90 commit a9a9efe

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

Lib/test/test_external_inspection.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2047,6 +2047,7 @@ class TestFrameCaching(unittest.TestCase):
20472047
"""
20482048

20492049
maxDiff = None
2050+
MAX_TRIES = 10
20502051

20512052
@contextlib.contextmanager
20522053
def _target_process(self, script_body):
@@ -2112,10 +2113,15 @@ def _get_frames(self, unwinder, required_funcs):
21122113
return thread.frame_info
21132114
return None
21142115

2115-
def _sample_frames(self, client_socket, unwinder, wait_signal, send_ack, required_funcs):
2116+
def _sample_frames(self, client_socket, unwinder, wait_signal, send_ack, required_funcs, expected_frames=1):
21162117
"""Wait for signal, sample frames, send ack. Returns frame_info list."""
21172118
self._wait_for_signal(client_socket, wait_signal)
2118-
frames = self._get_frames(unwinder, required_funcs)
2119+
# Give at least MAX_TRIES tries for the process to arrive to a steady state
2120+
for _ in range(self.MAX_TRIES):
2121+
frames = self._get_frames(unwinder, required_funcs)
2122+
if frames and len(frames) >= expected_frames:
2123+
break
2124+
time.sleep(0.1)
21192125
client_socket.sendall(send_ack)
21202126
return frames
21212127

@@ -2358,8 +2364,7 @@ def test_cache_vs_no_cache_equivalence(self):
23582364
"""Test that cache_frames=True and cache_frames=False produce equivalent results."""
23592365
script_body = """\
23602366
def level3():
2361-
sock.sendall(b"ready")
2362-
sock.recv(16)
2367+
sock.sendall(b"ready"); sock.recv(16)
23632368
23642369
def level2():
23652370
level3()
@@ -2650,11 +2655,11 @@ def recurse(n):
26502655
unwinder_no_cache = make_unwinder(cache_frames=False)
26512656

26522657
frames_cached = self._sample_frames(
2653-
client_socket, unwinder_cache, b"ready", b"ack", {"recurse"}
2658+
client_socket, unwinder_cache, b"ready", b"ack", {"recurse"}, 1024
26542659
)
26552660
# Sample again with no cache for comparison
26562661
frames_no_cache = self._sample_frames(
2657-
client_socket, unwinder_no_cache, b"ready2", b"done", {"recurse"}
2662+
client_socket, unwinder_no_cache, b"ready2", b"done", {"recurse"}, 1024
26582663
)
26592664

26602665
self.assertIsNotNone(frames_cached)

0 commit comments

Comments
 (0)