@@ -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
7280if __name__ == '__main__' :
0 commit comments