]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-133454: Mark test_queue tests with many threads as bigmem (gh-134575) ...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 2 Jun 2025 20:49:32 +0000 (22:49 +0200)
committerGitHub <noreply@github.com>
Mon, 2 Jun 2025 20:49:32 +0000 (20:49 +0000)
50 producer and 50 consumer threads need more than 5GB of memory.
(cherry picked from commit 7a79f52d83c22f5a9787e590f267325c1175d389)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Lib/test/test_queue.py

index 93cbe1fe230b4fe01e31c2003737d0a74d7f4ca3..fb2be84f493995af4d60fadd65bf621f9e6e5689 100644 (file)
@@ -7,7 +7,7 @@ import threading
 import time
 import unittest
 import weakref
-from test.support import gc_collect
+from test.support import gc_collect, bigmemtest
 from test.support import import_helper
 from test.support import threading_helper
 
@@ -964,33 +964,33 @@ class BaseSimpleQueueTest:
         # One producer, one consumer => results appended in well-defined order
         self.assertEqual(results, inputs)
 
-    def test_many_threads(self):
+    @bigmemtest(size=50, memuse=100*2**20, dry_run=False)
+    def test_many_threads(self, size):
         # Test multiple concurrent put() and get()
-        N = 50
         q = self.q
         inputs = list(range(10000))
-        results = self.run_threads(N, q, inputs, self.feed, self.consume)
+        results = self.run_threads(size, q, inputs, self.feed, self.consume)
 
         # Multiple consumers without synchronization append the
         # results in random order
         self.assertEqual(sorted(results), inputs)
 
-    def test_many_threads_nonblock(self):
+    @bigmemtest(size=50, memuse=100*2**20, dry_run=False)
+    def test_many_threads_nonblock(self, size):
         # Test multiple concurrent put() and get(block=False)
-        N = 50
         q = self.q
         inputs = list(range(10000))
-        results = self.run_threads(N, q, inputs,
+        results = self.run_threads(size, q, inputs,
                                    self.feed, self.consume_nonblock)
 
         self.assertEqual(sorted(results), inputs)
 
-    def test_many_threads_timeout(self):
+    @bigmemtest(size=50, memuse=100*2**20, dry_run=False)
+    def test_many_threads_timeout(self, size):
         # Test multiple concurrent put() and get(timeout=...)
-        N = 50
         q = self.q
         inputs = list(range(1000))
-        results = self.run_threads(N, q, inputs,
+        results = self.run_threads(size, q, inputs,
                                    self.feed, self.consume_timeout)
 
         self.assertEqual(sorted(results), inputs)