]> granicus.if.org Git - python/commitdiff
bpo-33735: Fix test_multiprocessing random failure (GH-8059)
authorVictor Stinner <vstinner@redhat.com>
Tue, 3 Jul 2018 11:20:35 +0000 (13:20 +0200)
committerGitHub <noreply@github.com>
Tue, 3 Jul 2018 11:20:35 +0000 (13:20 +0200)
When hunting memory leaks using -R 3:3, test_imap_unordered() of
test_multiprocessing leaks randomly a few memory blocks. It is a
false alarm: when testing using -R 3:20 for example, no leak is
detected.

Modify test_imap_unordered() to be closer to test_imap():

* Only test 10 numbers instead of 1000: it's a pool of 4 processes, so
  10 is enough to test at least one number per process
* Use chunksize=100 instead of chunksize=53 to mimick test_imap()

Lib/test/_test_multiprocessing.py

index 2be40c1fbeab5716276c45b45c0a1ced4e4dd682..4c5da2fccda852ef39dfec6a059531c2d742d757 100644 (file)
@@ -2351,10 +2351,10 @@ class _TestPool(BaseTestCase):
         self.assertRaises(SayWhenError, it.__next__)
 
     def test_imap_unordered(self):
-        it = self.pool.imap_unordered(sqr, list(range(1000)))
-        self.assertEqual(sorted(it), list(map(sqr, list(range(1000)))))
+        it = self.pool.imap_unordered(sqr, list(range(10)))
+        self.assertEqual(sorted(it), list(map(sqr, list(range(10)))))
 
-        it = self.pool.imap_unordered(sqr, list(range(1000)), chunksize=53)
+        it = self.pool.imap_unordered(sqr, list(range(1000)), chunksize=100)
         self.assertEqual(sorted(it), list(map(sqr, list(range(1000)))))
 
     def test_imap_unordered_handle_iterable_exception(self):