ASSERT_EQ((int)sizeof(buf2), rados_read(ioctx, "foo", buf2, sizeof(buf2), 0));
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
- uint64_t off = 19;
- ASSERT_EQ(-EOPNOTSUPP, rados_write(ioctx, "bar", buf, sizeof(buf), off));
+ if (!is_crimson_cluster()) {
+ uint64_t off = 19;
+ ASSERT_EQ(-EOPNOTSUPP, rados_write(ioctx, "bar", buf, sizeof(buf), off));
+ }
}
TEST_F(LibRadosIoEC, OverlappingWriteRoundTrip) {
scope_guard<decltype(cleanup)> sg(std::move(cleanup));
memset(buf, 0xcc, dbsize);
ASSERT_EQ(0, rados_write(ioctx, "foo", buf, dbsize, 0));
- memset(buf2, 0xdd, bsize);
- ASSERT_EQ(-EOPNOTSUPP, rados_write(ioctx, "foo", buf2, bsize, 0));
- memset(buf3, 0xdd, dbsize);
- ASSERT_EQ(dbsize, rados_read(ioctx, "foo", buf3, dbsize, 0));
- // Read the same as first write
- ASSERT_EQ(0, memcmp(buf3, buf, dbsize));
+ if (!is_crimson_cluster()) {
+ memset(buf2, 0xdd, bsize);
+ ASSERT_EQ(-EOPNOTSUPP, rados_write(ioctx, "foo", buf2, bsize, 0));
+ memset(buf3, 0xdd, dbsize);
+ ASSERT_EQ(dbsize, rados_read(ioctx, "foo", buf3, dbsize, 0));
+ // Read the same as first write
+ ASSERT_EQ(0, memcmp(buf3, buf, dbsize));
+ }
}
TEST_F(LibRadosIoEC, WriteFullRoundTrip) {
ASSERT_EQ(0, memcmp(buf3 + alignment, buf2, alignment));
memset(unalignedbuf, 0, uasize);
ASSERT_EQ(0, rados_append(ioctx, "foo", unalignedbuf, uasize));
- ASSERT_EQ(-EOPNOTSUPP, rados_append(ioctx, "foo", unalignedbuf, uasize));
+ if (!is_crimson_cluster()) {
+ ASSERT_EQ(-EOPNOTSUPP, rados_append(ioctx, "foo", unalignedbuf, uasize));
+ }
}
TEST_F(LibRadosIoEC, TruncTest) {
char buf2[sizeof(buf)];
memset(buf, 0xaa, sizeof(buf));
ASSERT_EQ(0, rados_append(ioctx, "foo", buf, sizeof(buf)));
- ASSERT_EQ(-EOPNOTSUPP, rados_trunc(ioctx, "foo", sizeof(buf) / 2));
- memset(buf2, 0, sizeof(buf2));
- // Same size
- ASSERT_EQ((int)sizeof(buf), rados_read(ioctx, "foo", buf2, sizeof(buf2), 0));
- // No change
- ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
+ if (!is_crimson_cluster()) {
+ ASSERT_EQ(-EOPNOTSUPP, rados_trunc(ioctx, "foo", sizeof(buf) / 2));
+ memset(buf2, 0, sizeof(buf2));
+ // Same size
+ ASSERT_EQ((int)sizeof(buf), rados_read(ioctx, "foo", buf2, sizeof(buf2), 0));
+ // No change
+ ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
+ }
}
TEST_F(LibRadosIoEC, RemoveTest) {