]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
adding a proof for the realistic bugs
authorAlfredo Deza <alfredo@deza.pe>
Wed, 10 Dec 2014 21:55:54 +0000 (16:55 -0500)
committerAlfredo Deza <alfredo@deza.pe>
Wed, 10 Dec 2014 21:55:54 +0000 (16:55 -0500)
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
s3tests/tests/test_realistic.py [new file with mode: 0644]

diff --git a/s3tests/tests/test_realistic.py b/s3tests/tests/test_realistic.py
new file mode 100644 (file)
index 0000000..52f2529
--- /dev/null
@@ -0,0 +1,47 @@
+import realistic
+import shutil
+import tempfile
+
+
+# XXX not used for now
+def create_files(mean=2000):
+    return realistic.files2(
+        mean=1024 * mean,
+        stddev=1024 * 500,
+        seed=1256193726,
+        numfiles=4,
+    )
+
+
+class TestFiles(object):
+    # the size and seed is what we can get when generating a bunch of files
+    # with pseudo random numbers based on sttdev, seed, and mean.
+
+    # this fails, demonstrating the problem
+    def test_random_file_invalid(self):
+        size = 2506764
+        seed = 3391518755
+        source = realistic.RandomContentFile(size=size, seed=seed)
+        t = tempfile.SpooledTemporaryFile()
+        shutil.copyfileobj(source, t)
+        precomputed = realistic.PrecomputedContentFile(t)
+
+        verifier = realistic.FileVerifier()
+        shutil.copyfileobj(precomputed, verifier)
+
+        assert verifier.valid()
+
+    # this passes
+    def test_random_file_valid(self):
+        size = 2506001
+        seed = 3391518755
+        source = realistic.RandomContentFile(size=size, seed=seed)
+        t = tempfile.SpooledTemporaryFile()
+        shutil.copyfileobj(source, t)
+        precomputed = realistic.PrecomputedContentFile(t)
+
+        verifier = realistic.FileVerifier()
+        shutil.copyfileobj(precomputed, verifier)
+
+        assert verifier.valid()
+