UT/blobfs: add asynchronous Writev/Readv unit tests
Change-Id: I8c0961e78afff367f6fc8b1a97d5ec5c635e3224 Signed-off-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457455 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
1966f1eef3
commit
485a2dcfa9
@ -437,6 +437,70 @@ fs_rw_async(void)
|
||||
CU_ASSERT(g_fserrno == 0);
|
||||
}
|
||||
|
||||
static void
|
||||
fs_writev_readv_async(void)
|
||||
{
|
||||
struct spdk_filesystem *fs;
|
||||
struct spdk_bs_dev *dev;
|
||||
struct iovec w_iov[2];
|
||||
struct iovec r_iov[2];
|
||||
uint8_t w_buf[4096];
|
||||
uint8_t r_buf[4096];
|
||||
|
||||
dev = init_dev();
|
||||
|
||||
spdk_fs_init(dev, NULL, NULL, fs_op_with_handle_complete, NULL);
|
||||
poll_threads();
|
||||
SPDK_CU_ASSERT_FATAL(g_fs != NULL);
|
||||
CU_ASSERT(g_fserrno == 0);
|
||||
fs = g_fs;
|
||||
SPDK_CU_ASSERT_FATAL(fs->bs->dev == dev);
|
||||
|
||||
g_file = NULL;
|
||||
g_fserrno = 1;
|
||||
spdk_fs_open_file_async(fs, "file1", SPDK_BLOBFS_OPEN_CREATE, open_cb, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_fserrno == 0);
|
||||
SPDK_CU_ASSERT_FATAL(g_file != NULL);
|
||||
|
||||
/* Write file */
|
||||
CU_ASSERT(g_file->length == 0);
|
||||
g_fserrno = 1;
|
||||
memset(w_buf, 0x5a, sizeof(w_buf));
|
||||
w_iov[0].iov_base = w_buf;
|
||||
w_iov[0].iov_len = 2048;
|
||||
w_iov[1].iov_base = w_buf + 2048;
|
||||
w_iov[1].iov_len = 2048;
|
||||
spdk_file_writev_async(g_file, fs->sync_target.sync_io_channel,
|
||||
w_iov, 2, 0, 4096, fs_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_fserrno == 0);
|
||||
CU_ASSERT(g_file->length == 4096);
|
||||
|
||||
/* Read file */
|
||||
g_fserrno = 1;
|
||||
memset(r_buf, 0x0, sizeof(r_buf));
|
||||
r_iov[0].iov_base = r_buf;
|
||||
r_iov[0].iov_len = 2048;
|
||||
r_iov[1].iov_base = r_buf + 2048;
|
||||
r_iov[1].iov_len = 2048;
|
||||
spdk_file_readv_async(g_file, fs->sync_target.sync_io_channel,
|
||||
r_iov, 2, 0, 4096, fs_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_fserrno == 0);
|
||||
CU_ASSERT(memcmp(r_buf, w_buf, sizeof(r_buf)) == 0);
|
||||
|
||||
g_fserrno = 1;
|
||||
spdk_file_close_async(g_file, fs_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_fserrno == 0);
|
||||
|
||||
g_fserrno = 1;
|
||||
spdk_fs_unload(fs, fs_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_fserrno == 0);
|
||||
}
|
||||
|
||||
static void
|
||||
tree_find_buffer_ut(void)
|
||||
{
|
||||
@ -592,6 +656,7 @@ int main(int argc, char **argv)
|
||||
CU_add_test(suite, "fs_truncate", fs_truncate) == NULL ||
|
||||
CU_add_test(suite, "fs_rename", fs_rename) == NULL ||
|
||||
CU_add_test(suite, "fs_rw_async", fs_rw_async) == NULL ||
|
||||
CU_add_test(suite, "fs_writev_readv_async", fs_writev_readv_async) == NULL ||
|
||||
CU_add_test(suite, "tree_find_buffer", tree_find_buffer_ut) == NULL ||
|
||||
CU_add_test(suite, "channel_ops", channel_ops) == NULL ||
|
||||
CU_add_test(suite, "channel_ops_sync", channel_ops_sync) == NULL
|
||||
|
Loading…
Reference in New Issue
Block a user