From: Rob Kinninmont Date: Fri, 1 Dec 2006 09:21:11 +0000 (-0700) Subject: added read and cross check to storage unit test, minor cleanups X-Git-Tag: tahoe_v0.1.0-0-UNSTABLE~507 X-Git-Url: https://git.rkrishnan.org/%5B/%5D%20/file/reliability?a=commitdiff_plain;h=eb79a405a9a5604f43563d3cabf31e3c76e7628c;p=tahoe-lafs%2Ftahoe-lafs.git added read and cross check to storage unit test, minor cleanups --- diff --git a/allmydata/test/test_storage.py b/allmydata/test/test_storage.py index 33b19c20..fa9eafe0 100644 --- a/allmydata/test/test_storage.py +++ b/allmydata/test/test_storage.py @@ -21,6 +21,9 @@ class StorageTest(unittest.TestCase): return self.svc.startService() def test_create_bucket(self): + """ + checks that the storage server can return bucket data accurately. + """ vid = os.urandom(20) bnum = random.randint(0,100) data = os.urandom(random.randint(1024, 16384)) @@ -40,23 +43,50 @@ class StorageTest(unittest.TestCase): rssd.addCallback(create_bucket) def write_to_bucket(bucket): - def write_some(junk, bucket, bytes): + def write_some(junk, bytes): return bucket.callRemote('write', data=bytes) - def finalise(junk, bucket): + def finalise(junk): return bucket.callRemote('finalise') off1 = len(data) / 2 off2 = 3 * len(data) / 4 d = defer.succeed(None) - d.addCallback(write_some, bucket, data[:off1]) - d.addCallback(write_some, bucket, data[off1:off2]) - d.addCallback(write_some, bucket, data[off2:]) - d.addCallback(finalise, bucket) + d.addCallback(write_some, data[:off1]) + d.addCallback(write_some, data[off1:off2]) + d.addCallback(write_some, data[off2:]) + d.addCallback(finalise) return d rssd.addCallback(write_to_bucket) + def get_node_again(junk): + return self.tub.getReference(self.node.my_pburl) + rssd.addCallback(get_node_again) + rssd.addCallback(get_storageserver) + + def get_bucket(storageserver): + return storageserver.callRemote('get_bucket', verifierid=vid) + rssd.addCallback(get_bucket) + + def read_bucket(bucket): + def check_data(bytes_read): + self.failUnlessEqual(bytes_read, data) + d = bucket.callRemote('read') + d.addCallback(check_data) + + def get_bucket_num(junk): + return bucket.callRemote('get_bucket_num') + d.addCallback(get_bucket_num) + def check_bucket_num(bucket_num): + self.failUnlessEqual(bucket_num, bnum) + d.addCallback(check_bucket_num) + return d + rssd.addCallback(read_bucket) + return rssd def test_overwrite(self): + """ + checks that the storage server rejects an attempt to write to much data + """ vid = os.urandom(20) bnum = random.randint(0,100) data = os.urandom(random.randint(1024, 16384)) @@ -76,19 +106,19 @@ class StorageTest(unittest.TestCase): rssd.addCallback(create_bucket) def write_to_bucket(bucket): - def write_some(junk, bucket, bytes): + def write_some(junk, bytes): return bucket.callRemote('write', data=bytes) - def finalise(junk, bucket): + def finalise(junk): return bucket.callRemote('finalise') off1 = len(data) / 2 off2 = 3 * len(data) / 4 d = defer.succeed(None) - d.addCallback(write_some, bucket, data[:off1]) - d.addCallback(write_some, bucket, data[off1:off2]) - d.addCallback(write_some, bucket, data[off2:]) + d.addCallback(write_some, data[:off1]) + d.addCallback(write_some, data[off1:off2]) + d.addCallback(write_some, data[off2:]) # and then overwrite - d.addCallback(write_some, bucket, data[off1:off2]) - d.addCallback(finalise, bucket) + d.addCallback(write_some, data[off1:off2]) + d.addCallback(finalise) return d rssd.addCallback(write_to_bucket)