Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit61b50a9

Browse files
gh-109700: Improve stress tests for interpreter creation (GH-109946)
* Ensure that destructors are called in the test that created interpreters, not after finishing it.* Try to create/run interpreters in threads simultaneously.* Mark tests that requires over 6GB of memory with bigmemtest.
1 parent95d2a81 commit61b50a9

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

‎Lib/test/test_interpreters/test_stress.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,29 @@ def test_create_many_sequential(self):
2121
for_inrange(100):
2222
interp=interpreters.create()
2323
alive.append(interp)
24+
delalive
25+
support.gc_collect()
2426

25-
@support.requires_resource('cpu')
26-
@threading_helper.requires_working_threading()
27-
deftest_create_many_threaded(self):
27+
@support.bigmemtest(size=200,memuse=32*2**20,dry_run=False)
28+
deftest_create_many_threaded(self,size):
2829
alive= []
30+
start=threading.Event()
2931
deftask():
32+
# try to create all interpreters simultaneously
33+
ifnotstart.wait(support.SHORT_TIMEOUT):
34+
raiseTimeoutError
3035
interp=interpreters.create()
3136
alive.append(interp)
32-
threads=(threading.Thread(target=task)for_inrange(200))
37+
threads=[threading.Thread(target=task)for_inrange(size)]
3338
withthreading_helper.start_threads(threads):
34-
pass
39+
start.set()
40+
delalive
41+
support.gc_collect()
3542

36-
@support.requires_resource('cpu')
3743
@threading_helper.requires_working_threading()
38-
deftest_many_threads_running_interp_in_other_interp(self):
44+
@support.bigmemtest(size=200,memuse=34*2**20,dry_run=False)
45+
deftest_many_threads_running_interp_in_other_interp(self,size):
46+
start=threading.Event()
3947
interp=interpreters.create()
4048

4149
script=f"""if True:
@@ -47,6 +55,9 @@ def run():
4755
interp=interpreters.create()
4856
alreadyrunning= (f'{interpreters.InterpreterError}: '
4957
'interpreter already running')
58+
# try to run all interpreters simultaneously
59+
ifnotstart.wait(support.SHORT_TIMEOUT):
60+
raiseTimeoutError
5061
success=False
5162
whilenotsuccess:
5263
try:
@@ -58,9 +69,10 @@ def run():
5869
else:
5970
success=True
6071

61-
threads=(threading.Thread(target=run)for_inrange(200))
72+
threads=[threading.Thread(target=run)for_inrange(size)]
6273
withthreading_helper.start_threads(threads):
63-
pass
74+
start.set()
75+
support.gc_collect()
6476

6577

6678
if__name__=='__main__':

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp