void Striper::StripedReadResult::assemble_result(CephContext *cct, char *buffer, size_t length)
{
-
- ceph_assert(buffer && length == total_intended_len);
+ ceph_assert(length == total_intended_len);
map<uint64_t,pair<bufferlist,uint64_t> >::reverse_iterator p = partial.rbegin();
if (p == partial.rend())
return;
+ ceph_assert(buffer);
+
uint64_t curr = length;
uint64_t end = p->first + p->second.second;
while (p != partial.rend()) {
ASSERT_EQ(0, create_image(ioctx, name.c_str(), size, &order));
ASSERT_EQ(0, rbd_open(ioctx, name.c_str(), &image, NULL));
- char read_data[1];
+ const char data[] = "blah";
+ ASSERT_EQ(0, rbd_write(image, 0, 0, data));
+ ASSERT_EQ(0, rbd_write(image, 0, 0, (char*)0x123));
ASSERT_EQ(0, rbd_write(image, 0, 0, NULL));
+
+ char read_data[1];
ASSERT_EQ(1, rbd_read(image, 0, 1, read_data));
ASSERT_EQ('\0', read_data[0]);
char read_data[1];
ASSERT_EQ(0, rbd_read(image, 0, 0, read_data));
+ ASSERT_EQ(0, rbd_read(image, 0, 0, (char*)0x123));
+ ASSERT_EQ(0, rbd_read(image, 0, 0, NULL));
ASSERT_EQ(0, rbd_close(image));