]> granicus.if.org Git - python/commitdiff
Issue #19886: Use better estimated memory requirements for bigmem tests.
authorSerhiy Storchaka <storchaka@gmail.com>
Fri, 10 Jan 2014 11:36:56 +0000 (13:36 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Fri, 10 Jan 2014 11:36:56 +0000 (13:36 +0200)
Incorrect requirements can cause memory swapping.

Lib/test/test_hashlib.py
Lib/test/test_marshal.py
Misc/NEWS

index e6365c5c5f3635791cc2f7ab482faafe68592568..dac945c97a9d504bcc5547a0fa3e2b28066a42c8 100644 (file)
@@ -207,30 +207,20 @@ class HashLibTestCase(unittest.TestCase):
         self.check('md5', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
                    'd174ab98d277d9f5a5611c2c9f419d9f')
 
-    @precisionbigmemtest(size=_4G + 5, memuse=1)
+    @unittest.skipIf(sys.maxsize < _4G + 5, 'test cannot run on 32-bit systems')
+    @precisionbigmemtest(size=_4G + 5, memuse=1, dry_run=False)
     def test_case_md5_huge(self, size):
-        if size == _4G + 5:
-            try:
-                self.check('md5', 'A'*size, 'c9af2dff37468ce5dfee8f2cfc0a9c6d')
-            except OverflowError:
-                pass # 32-bit arch
+        self.check('md5', 'A'*size, 'c9af2dff37468ce5dfee8f2cfc0a9c6d')
 
-    @precisionbigmemtest(size=_4G + 5, memuse=1)
+    @unittest.skipIf(sys.maxsize < _4G + 5, 'test cannot run on 32-bit systems')
+    @precisionbigmemtest(size=_4G + 5, memuse=1, dry_run=False)
     def test_case_md5_huge_update(self, size):
-        if size == _4G + 5:
-            try:
-                self.check_update('md5', 'A'*size,
-                        'c9af2dff37468ce5dfee8f2cfc0a9c6d')
-            except OverflowError:
-                pass # 32-bit arch
+        self.check_update('md5', 'A'*size, 'c9af2dff37468ce5dfee8f2cfc0a9c6d')
 
-    @precisionbigmemtest(size=_4G - 1, memuse=1)
+    @unittest.skipIf(sys.maxsize < _4G - 1, 'test cannot run on 32-bit systems')
+    @precisionbigmemtest(size=_4G - 1, memuse=1, dry_run=False)
     def test_case_md5_uintmax(self, size):
-        if size == _4G - 1:
-            try:
-                self.check('md5', 'A'*size, '28138d306ff1b8281f1a9067e1a1a2b3')
-            except OverflowError:
-                pass # 32-bit arch
+        self.check('md5', 'A'*size, '28138d306ff1b8281f1a9067e1a1a2b3')
 
     # use the three examples from Federal Information Processing Standards
     # Publication 180-1, Secure Hash Standard,  1995 April 17
index bbe8eac3e68904d9f7d48b3c3ec80bb0d837acbc..f7cd195006572a42fe569267cde9413a7a621303 100644 (file)
@@ -286,7 +286,7 @@ class LargeValuesTestCase(unittest.TestCase):
         self.check_unmarshallable('x' * size)
 
     @test_support.precisionbigmemtest(size=LARGE_SIZE,
-            memuse=character_size, dry_run=False)
+            memuse=character_size + 2, dry_run=False)
     def test_unicode(self, size):
         self.check_unmarshallable(u'x' * size)
 
index 481e901708649c0cea647fec7a1e107c7a0f4e11..5999b111f7b6f9455b5494790040a0a464f2599a 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -161,6 +161,8 @@ IDLE
 Tests
 -----
 
+- Issue #19886: Use better estimated memory requirements for bigmem tests.
+
 - Backported tests for Tkinter variables.
 
 - Issue #19320: test_tcl no longer fails when wantobjects is false.