Supports CRC checksum verification for object storage

This commit is contained in:
obdev
2023-12-27 02:43:18 +00:00
committed by ob-robot
parent 8686ee348a
commit 0afc9b886e
9 changed files with 244 additions and 120 deletions

View File

@ -1240,6 +1240,66 @@ TEST_F(TestObjectStorage, test_cross_testing)
}
}
TEST_F(TestObjectStorage, test_read_single_file)
{
int ret = OB_SUCCESS;
if (enable_test) {
ObStorageUtil util;
ASSERT_EQ(OB_SUCCESS, util.open(&info_base));
const char *tmp_dir = "test_read_single_file";
const int64_t ts = ObTimeUtility::current_time();
ASSERT_EQ(OB_SUCCESS, databuff_printf(dir_uri, sizeof(dir_uri), "%s/%s/%s_%ld",
bucket, dir_name, tmp_dir, ts));
{
// normal
ObStorageWriter writer;
ObStorageReader reader;
ASSERT_EQ(OB_SUCCESS, databuff_printf(uri, sizeof(uri), "%s/test_normal", dir_uri));
ASSERT_EQ(OB_SUCCESS, writer.open(uri, &info_base));
ASSERT_EQ(OB_SUCCESS, writer.write("123456", 6));
ASSERT_EQ(OB_SUCCESS, writer.close());
int64_t read_size = -1;
char read_buf[100];
memset(read_buf, 0, sizeof(read_buf));
ASSERT_EQ(OB_SUCCESS, reader.open(uri, &info_base));
ASSERT_EQ(OB_SUCCESS, reader.pread(read_buf, 100, 0, read_size));
ASSERT_EQ(6, read_size);
ASSERT_EQ(0, strncmp(read_buf, "123456", 6));
ASSERT_EQ(OB_SUCCESS, reader.close());
ASSERT_EQ(OB_SUCCESS, util.del_file(uri));
}
{
// appendable
ObStorageAppender appender;
ObStorageAdaptiveReader reader;
const char *write_content = "0123456789";
const int64_t first_content_len = 6;
ASSERT_EQ(OB_SUCCESS, databuff_printf(uri, sizeof(uri), "%s/test_appendable", dir_uri));
ASSERT_EQ(OB_SUCCESS, appender.open(uri, &info_base));
ASSERT_EQ(OB_SUCCESS, appender.pwrite(write_content, first_content_len, 0));
int64_t read_size = -1;
char read_buf[100];
memset(read_buf, 0, sizeof(read_buf));
ASSERT_EQ(OB_SUCCESS, reader.open(uri, &info_base));
ASSERT_EQ(OB_SUCCESS, appender.pwrite(write_content, 1, first_content_len));
ASSERT_EQ(OB_SUCCESS, reader.pread(read_buf, 100, 0, read_size));
ASSERT_EQ(first_content_len, read_size);
ASSERT_EQ(0, strncmp(read_buf, write_content, first_content_len));
ASSERT_EQ(OB_SUCCESS, reader.close());
ASSERT_EQ(OB_SUCCESS, util.del_file(uri));
}
}
}
TEST_F(TestObjectStorage, test_multipart_write)
{
int ret = OB_SUCCESS;
@ -1265,6 +1325,7 @@ TEST_F(TestObjectStorage, test_multipart_write)
ASSERT_EQ(OB_SUCCESS, databuff_printf(uri, sizeof(uri), "%s/test_multipart", dir_uri));
ObStorageMultiPartWriter writer;
// ObStorageWriter writer;
ASSERT_EQ(OB_SUCCESS, writer.open(uri, &info_base));
ASSERT_EQ(OB_SUCCESS, writer.write(write_buf, content_size));
ASSERT_EQ(content_size, writer.get_length());