test/nvme/nvme_ns_cmd: read_with_md
Change-Id: I8cc8fc38a827444f89762aa45ee536da08696be5 Signed-off-by: Lu Fan <lux.fan@intel.com> Reviewed-on: https://review.gerrithub.io/361876 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: GangCao <gang.cao@intel.com>
This commit is contained in:
parent
18bc3a5ef6
commit
7f94346a07
@ -1087,6 +1087,50 @@ test_nvme_ns_cmd_write_with_md(void)
|
|||||||
free(metadata);
|
free(metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_nvme_ns_cmd_read_with_md(void)
|
||||||
|
{
|
||||||
|
struct spdk_nvme_ns ns;
|
||||||
|
struct spdk_nvme_ctrlr ctrlr;
|
||||||
|
struct spdk_nvme_qpair qpair;
|
||||||
|
int rc = 0;
|
||||||
|
char *buffer = NULL;
|
||||||
|
char *metadata = NULL;
|
||||||
|
uint32_t block_size, md_size;
|
||||||
|
|
||||||
|
block_size = 512;
|
||||||
|
md_size = 128;
|
||||||
|
|
||||||
|
buffer = malloc(block_size * 256);
|
||||||
|
SPDK_CU_ASSERT_FATAL(buffer != NULL);
|
||||||
|
metadata = malloc(md_size * 256);
|
||||||
|
SPDK_CU_ASSERT_FATAL(metadata != NULL);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 512 byte data + 128 byte metadata
|
||||||
|
* Separate metadata buffer
|
||||||
|
* Max data transfer size 128 KB
|
||||||
|
* No stripe size
|
||||||
|
*
|
||||||
|
* 256 blocks * 512 bytes per block = single 128 KB I/O (no splitting required)
|
||||||
|
*/
|
||||||
|
prepare_for_test(&ns, &ctrlr, &qpair, 512, 128, 128 * 1024, 0, false);
|
||||||
|
|
||||||
|
rc = spdk_nvme_ns_cmd_read_with_md(&ns, &qpair, buffer, metadata, 0x1000, 256, NULL, NULL, 0, 0,
|
||||||
|
0);
|
||||||
|
|
||||||
|
SPDK_CU_ASSERT_FATAL(rc == 0);
|
||||||
|
SPDK_CU_ASSERT_FATAL(g_request != NULL);
|
||||||
|
SPDK_CU_ASSERT_FATAL(g_request->num_children == 0);
|
||||||
|
|
||||||
|
CU_ASSERT(g_request->payload.md == metadata);
|
||||||
|
CU_ASSERT(g_request->payload_size == 256 * 512);
|
||||||
|
|
||||||
|
nvme_free_request(g_request);
|
||||||
|
cleanup_after_test(&qpair);
|
||||||
|
free(buffer);
|
||||||
|
free(metadata);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -1122,6 +1166,7 @@ int main(int argc, char **argv)
|
|||||||
|| CU_add_test(suite, "nvme_ns_cmd_reservation_report", test_nvme_ns_cmd_reservation_report) == NULL
|
|| CU_add_test(suite, "nvme_ns_cmd_reservation_report", test_nvme_ns_cmd_reservation_report) == NULL
|
||||||
|| CU_add_test(suite, "test_cmd_child_request", test_cmd_child_request) == NULL
|
|| CU_add_test(suite, "test_cmd_child_request", test_cmd_child_request) == NULL
|
||||||
|| CU_add_test(suite, "nvme_ns_cmd_readv", test_nvme_ns_cmd_readv) == NULL
|
|| CU_add_test(suite, "nvme_ns_cmd_readv", test_nvme_ns_cmd_readv) == NULL
|
||||||
|
|| CU_add_test(suite, "nvme_ns_cmd_read_with_md", test_nvme_ns_cmd_read_with_md) == NULL
|
||||||
|| CU_add_test(suite, "nvme_ns_cmd_writev", test_nvme_ns_cmd_writev) == NULL
|
|| CU_add_test(suite, "nvme_ns_cmd_writev", test_nvme_ns_cmd_writev) == NULL
|
||||||
|| CU_add_test(suite, "nvme_ns_cmd_write_with_md", test_nvme_ns_cmd_write_with_md) == NULL
|
|| CU_add_test(suite, "nvme_ns_cmd_write_with_md", test_nvme_ns_cmd_write_with_md) == NULL
|
||||||
) {
|
) {
|
||||||
|
Loading…
Reference in New Issue
Block a user