]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/store_test: fix synthetic test cases to handle zero-writes properly, i.e. do not...
authorIgor Fedotov <ifedotov@mirantis.com>
Mon, 20 Jun 2016 14:21:27 +0000 (17:21 +0300)
committerIgor Fedotov <ifedotov@mirantis.com>
Mon, 20 Jun 2016 14:21:27 +0000 (17:21 +0300)
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
src/test/objectstore/store_test.cc

index af02b96729bf511a3e851ff0e584ed8073b0695e..cf3e0f5fa9602c662ab02a79a1044c0bf21f75a7 100644 (file)
@@ -1997,6 +1997,10 @@ TEST_P(StoreTest, ZeroLengthWrite) {
   r = store->stat(cid, hoid, &stat);
   ASSERT_EQ(0, r);
   ASSERT_EQ(0, stat.st_size);
+
+  bufferlist newdata;
+  r = store->read(cid, hoid, 0, 1048576, newdata);
+  ASSERT_EQ(0, r);
 }
 
 TEST_P(StoreTest, SimpleAttrTest) {
@@ -3465,8 +3469,10 @@ public:
 
     bufferlist& data = contents[new_obj].data;
     if (data.length() <= offset) {
-      data.append_zero(offset-data.length());
-      data.append(bl);
+      if (len > 0) {
+        data.append_zero(offset-data.length());
+        data.append(bl);
+      }
     } else {
       bufferlist value;
       assert(data.length() > offset);