Skip to content

Commit 5dd48d6

Browse files
Add guards also for other stress tests.
1 parent fd7cf3c commit 5dd48d6

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

Lib/test/test_interpreters/test_stress.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@ class StressTests(TestBase):
1616
# but not so many that any test takes too long.
1717

1818
@support.requires_resource('cpu')
19-
def test_create_many_sequential(self):
19+
@support.bigmemtest(size=100, memuse=6.2*2**20, dry_run=False)
20+
def test_create_many_sequential(self, size):
2021
alive = []
21-
for _ in range(100):
22+
for _ in range(size):
2223
interp = interpreters.create()
2324
alive.append(interp)
25+
del alive
26+
support.gc_collect()
2427

2528
@support.requires_resource('cpu')
26-
@support.bigmemtest(size=6.39*2**30, memuse=1, dry_run=False)
29+
@support.bigmemtest(size=200, memuse=32*2**20, dry_run=False)
2730
def test_create_many_threaded(self, size):
2831
alive = []
2932
start = threading.Event()
@@ -33,15 +36,17 @@ def task():
3336
raise TimeoutError
3437
interp = interpreters.create()
3538
alive.append(interp)
36-
threads = [threading.Thread(target=task) for _ in range(200)]
39+
threads = [threading.Thread(target=task) for _ in range(size)]
3740
with threading_helper.start_threads(threads):
3841
start.set()
3942
del alive
4043
support.gc_collect()
4144

4245
@support.requires_resource('cpu')
4346
@threading_helper.requires_working_threading()
44-
def test_many_threads_running_interp_in_other_interp(self):
47+
@support.bigmemtest(size=200, memuse=32*2**20, dry_run=False)
48+
def test_many_threads_running_interp_in_other_interp(self, size):
49+
start = threading.Event()
4550
interp = interpreters.create()
4651

4752
script = f"""if True:
@@ -50,6 +55,9 @@ def test_many_threads_running_interp_in_other_interp(self):
5055
"""
5156

5257
def run():
58+
# try to create all interpreters simultaneously
59+
if not start.wait(10):
60+
raise TimeoutError
5361
interp = interpreters.create()
5462
alreadyrunning = (f'{interpreters.InterpreterError}: '
5563
'interpreter already running')
@@ -64,9 +72,9 @@ def run():
6472
else:
6573
success = True
6674

67-
threads = (threading.Thread(target=run) for _ in range(200))
75+
threads = [threading.Thread(target=run) for _ in range(size)]
6876
with threading_helper.start_threads(threads):
69-
pass
77+
start.set()
7078

7179

7280
if __name__ == '__main__':

0 commit comments

Comments
 (0)