reqs.remove(req)
self.assertTrue(req.put())
+ def test_flush(self):
+ datalen = 1024
+ data = get_random_string(datalen, 16)
+ volume = "myvolume"
+ volsize = 10*1024*1024
+
+ #This may seems weird, but actually vlmcd flush, only guarantees that
+ #there are no pending operation the volume. On a volume that does not
+ #exists, this is always true, so this should succeed.
+ self.send_and_evaluate_write(self.vlmcdport, volume, data="",
+ flags=XF_FLUSH, expected=True)
+ self.send_and_evaluate_clone(self.mapperdport, "", clone=volume,
+ clone_size=volsize)
+ self.send_and_evaluate_write(self.vlmcdport, volume, data="",
+ flags=XF_FLUSH)
+ self.send_and_evaluate_write(self.vlmcdport, volume, data=data,
+ serviced=datalen)
+ self.send_and_evaluate_write(self.vlmcdport, volume, data="",
+ flags=XF_FLUSH)
+
+ def test_flush2(self):
+ volume = "myvolume"
+ volsize = 10*1024*1024
+ datalen = 1024
+ data = get_random_string(datalen, 16)
+
+ self.send_and_evaluate_clone(self.mapperdport, "", clone=volume,
+ clone_size=volsize)
+ xinfo = self.get_reply_info(volsize)
+ reqs = Set([])
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data="", flags=XF_FLUSH))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ reqs.add(self.send_write(self.vlmcdport, volume, data=data))
+ while len(reqs) > 0:
+ req = self.xseg.wait_requests(reqs)
+ self.evaluate_req(req)
+ reqs.remove(req)
+ self.assertTrue(req.put())
+
def test_hash(self):
blocksize = self.blocksize
volume = "myvolume"