]> arthur.barton.de Git - bup.git/commitdiff
Skip the large bloom filter test if mmap fails on 32-bit archtectures.
authorRob Browning <rlb@defaultvalue.org>
Sat, 25 May 2013 20:25:11 +0000 (15:25 -0500)
committerRob Browning <rlb@defaultvalue.org>
Mon, 27 May 2013 17:28:51 +0000 (12:28 -0500)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
lib/bup/t/tbloom.py

index de89e6641e0f0d9aac8debd2ad18cad356d122d5..2f1cce561cff22f151132f65013b9aff45498410 100644 (file)
@@ -1,4 +1,4 @@
-import tempfile
+import errno, platform, tempfile
 from bup import bloom
 from bup.helpers import *
 from wvtest import *
@@ -32,6 +32,21 @@ def test_bloom():
     b = bloom.create('bup.bloom', f=tf, expected=100)
     WVPASSEQ(b.rwfile, tf)
     WVPASSEQ(b.k, 5)
+
+    # Test large (~1GiB) filter.  This may fail on s390 (31-bit
+    # architecture), and anywhere else where the address space is
+    # sufficiently limited.
     tf = tempfile.TemporaryFile()
-    b = bloom.create('bup.bloom', f=tf, expected=2**28, delaywrite=False)
-    WVPASSEQ(b.k, 4)
+    skip_test = False
+    try:
+        b = bloom.create('bup.bloom', f=tf, expected=2**28, delaywrite=False)
+    except EnvironmentError, ex:
+        (ptr_width, linkage) = platform.architecture()
+        if ptr_width == '32bit' and ex.errno == errno.ENOMEM:
+            WVMSG('skipping large bloom filter test (mmap probably failed) '
+                  + str(ex))
+            skip_test = True
+        else:
+            raise
+    if not skip_test:
+        WVPASSEQ(b.k, 4)