unittest/nvme_ns: increase code coverage for nvme_ns's several func
include test_nvme_ns_set_identify_data, test_spdk_nvme_ns_get_values(Most functions that simply get values), test_spdk_nvme_ns_is_active, and spdk_nvme_ns_supports(Judge whether extended_lba and compare are supported). The above func is completed. Signed-off-by: ChengqiangMeng <chengqiangx.meng@intel.com> Change-Id: I916173a195692045ee0ee3fa408a1696e0eb5b1e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6511 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Community-CI: Mellanox Build Bot
This commit is contained in:
parent
22412af1d2
commit
001afcbdb7
@ -243,6 +243,164 @@ test_nvme_ns_data(void)
|
||||
CU_ASSERT(nsdata == spdk_nvme_ns_get_data(&ns));
|
||||
}
|
||||
|
||||
static void
|
||||
test_nvme_ns_set_identify_data(void)
|
||||
{
|
||||
struct spdk_nvme_ns ns = {};
|
||||
struct spdk_nvme_ctrlr ctrlr = {};
|
||||
|
||||
ns.id = 1;
|
||||
ns.ctrlr = &ctrlr;
|
||||
|
||||
ns.ctrlr->cdata.oncs.dsm = 1;
|
||||
ns.ctrlr->cdata.oncs.compare = 1;
|
||||
ns.ctrlr->cdata.vwc.present = 1;
|
||||
ns.ctrlr->cdata.oncs.write_zeroes = 1;
|
||||
ns.ctrlr->cdata.oncs.write_unc = 1;
|
||||
ns.ctrlr->min_page_size = 1024;
|
||||
ns.ctrlr->max_xfer_size = 65536;
|
||||
|
||||
ns.nsdata.flbas.extended = 1;
|
||||
ns.nsdata.nsrescap.raw = 1;
|
||||
ns.nsdata.dps.pit = SPDK_NVME_FMT_NVM_PROTECTION_TYPE1;
|
||||
ns.nsdata.flbas.format = 0;
|
||||
ns.nsdata.lbaf[0].lbads = 9;
|
||||
ns.nsdata.lbaf[0].ms = 512;
|
||||
|
||||
/* case1: nsdata->noiob > 0 */
|
||||
ns.nsdata.noiob = 1;
|
||||
nvme_ns_set_identify_data(&ns);
|
||||
CU_ASSERT(spdk_nvme_ns_get_optimal_io_boundary(&ns) == 1)
|
||||
|
||||
CU_ASSERT(spdk_nvme_ns_get_sector_size(&ns) == 512);
|
||||
CU_ASSERT(spdk_nvme_ns_get_extended_sector_size(&ns) == 1024);
|
||||
CU_ASSERT(spdk_nvme_ns_get_md_size(&ns) == 512);
|
||||
CU_ASSERT(spdk_nvme_ns_get_max_io_xfer_size(&ns) == 65536);
|
||||
CU_ASSERT(ns.sectors_per_max_io == 64);
|
||||
CU_ASSERT(ns.sectors_per_max_io_no_md == 128);
|
||||
CU_ASSERT(spdk_nvme_ns_get_pi_type(&ns) == SPDK_NVME_FMT_NVM_PROTECTION_TYPE1);
|
||||
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_EXTENDED_LBA_SUPPORTED);
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_RESERVATION_SUPPORTED);
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_COMPARE_SUPPORTED);
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_FLUSH_SUPPORTED);
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_WRITE_ZEROES_SUPPORTED);
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_WRITE_UNCORRECTABLE_SUPPORTED);
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_RESERVATION_SUPPORTED);
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) & SPDK_NVME_NS_DPS_PI_SUPPORTED);
|
||||
}
|
||||
|
||||
static void
|
||||
test_spdk_nvme_ns_get_values(void)
|
||||
{
|
||||
struct spdk_nvme_ns ns = {};
|
||||
struct spdk_nvme_ctrlr nsctrlr = {};
|
||||
|
||||
ns.ctrlr = &nsctrlr;
|
||||
|
||||
/* case1: spdk_nvme_ns_get_id */
|
||||
ns.id = 1;
|
||||
CU_ASSERT(spdk_nvme_ns_get_id(&ns) == 1);
|
||||
|
||||
/* case2: spdk_nvme_ns_get_ctrlr */
|
||||
CU_ASSERT(spdk_nvme_ns_get_ctrlr(&ns) == &nsctrlr);
|
||||
|
||||
/* case3: spdk_nvme_ns_get_max_io_xfer_size */
|
||||
ns.ctrlr->max_xfer_size = 65536;
|
||||
CU_ASSERT(spdk_nvme_ns_get_max_io_xfer_size(&ns) == 65536);
|
||||
|
||||
/* case4: spdk_nvme_ns_get_sector_size */
|
||||
ns.sector_size = 512;
|
||||
CU_ASSERT(spdk_nvme_ns_get_sector_size(&ns) == 512);
|
||||
|
||||
/* case5: spdk_nvme_ns_get_extended_sector_size */
|
||||
ns.extended_lba_size = 512;
|
||||
CU_ASSERT(spdk_nvme_ns_get_extended_sector_size(&ns) == 512);
|
||||
|
||||
/* case6: spdk_nvme_ns_get_num_sectors */
|
||||
ns.nsdata.nsze = 1024;
|
||||
CU_ASSERT(spdk_nvme_ns_get_num_sectors(&ns) == 1024);
|
||||
|
||||
/* case7: spdk_nvme_ns_get_size */
|
||||
CU_ASSERT(spdk_nvme_ns_get_size(&ns) == 524288);
|
||||
|
||||
/* case8: spdk_nvme_ns_get_flags */
|
||||
ns.flags = 255;
|
||||
CU_ASSERT(spdk_nvme_ns_get_flags(&ns) == 255);
|
||||
|
||||
/* case9: spdk_nvme_ns_get_pi_type */
|
||||
ns.pi_type = SPDK_NVME_FMT_NVM_PROTECTION_DISABLE;
|
||||
CU_ASSERT(spdk_nvme_ns_get_pi_type(&ns) == SPDK_NVME_FMT_NVM_PROTECTION_DISABLE);
|
||||
|
||||
/* case10: spdk_nvme_ns_get_md_size */
|
||||
ns.md_size = 512;
|
||||
CU_ASSERT(spdk_nvme_ns_get_md_size(&ns) == 512);
|
||||
|
||||
/* case11: spdk_nvme_ns_get_data */
|
||||
CU_ASSERT(spdk_nvme_ns_get_data(&ns) != NULL);
|
||||
|
||||
/* case12: spdk_nvme_ns_get_optimal_io_boundary */
|
||||
ns.sectors_per_stripe = 1;
|
||||
CU_ASSERT(spdk_nvme_ns_get_optimal_io_boundary(&ns) == 1);
|
||||
|
||||
/* case13: spdk_nvme_ns_get_dealloc_logical_block_read_value */
|
||||
ns.ctrlr->quirks = NVME_QUIRK_READ_ZERO_AFTER_DEALLOCATE | NVME_INTEL_QUIRK_WRITE_LATENCY;
|
||||
ns.nsdata.dlfeat.bits.read_value = SPDK_NVME_DEALLOC_NOT_REPORTED;
|
||||
CU_ASSERT(spdk_nvme_ns_get_dealloc_logical_block_read_value(&ns) == SPDK_NVME_DEALLOC_READ_00);
|
||||
|
||||
ns.ctrlr->quirks = NVME_INTEL_QUIRK_READ_LATENCY;
|
||||
CU_ASSERT(spdk_nvme_ns_get_dealloc_logical_block_read_value(&ns) == SPDK_NVME_DEALLOC_NOT_REPORTED);
|
||||
|
||||
/* case14: spdk_nvme_ns_get_csi */
|
||||
ns.csi = SPDK_NVME_CSI_NVM;
|
||||
CU_ASSERT(spdk_nvme_ns_get_csi(&ns) == SPDK_NVME_CSI_NVM);
|
||||
|
||||
/* case15: spdk_nvme_ns_get_ana_group_id */
|
||||
ns.ana_group_id = 15;
|
||||
CU_ASSERT(spdk_nvme_ns_get_ana_group_id(&ns) == 15);
|
||||
|
||||
/* case16: spdk_nvme_ns_get_ana_state */
|
||||
ns.ana_state = SPDK_NVME_ANA_OPTIMIZED_STATE;
|
||||
CU_ASSERT(spdk_nvme_ns_get_ana_state(&ns) == SPDK_NVME_ANA_OPTIMIZED_STATE);
|
||||
}
|
||||
|
||||
static void
|
||||
test_spdk_nvme_ns_is_active(void)
|
||||
{
|
||||
struct spdk_nvme_ns ns = {};
|
||||
|
||||
/* case1: nsdata->id == 0 return false */
|
||||
ns.id = 0;
|
||||
CU_ASSERT(spdk_nvme_ns_is_active(&ns) == false);
|
||||
|
||||
/* case2: nsdata->ncap == 0 return false */
|
||||
ns.id = 1;
|
||||
ns.nsdata.ncap = 0;
|
||||
CU_ASSERT(spdk_nvme_ns_is_active(&ns) == false);
|
||||
|
||||
/* case3: ns->ncap != 0 return true */
|
||||
ns.nsdata.ncap = 1;
|
||||
CU_ASSERT(spdk_nvme_ns_is_active(&ns) == true);
|
||||
}
|
||||
|
||||
static void
|
||||
spdk_nvme_ns_supports(void)
|
||||
{
|
||||
struct spdk_nvme_ns ns = {};
|
||||
|
||||
/* case1: spdk_nvme_ns_supports_extended_lba */
|
||||
ns.flags = SPDK_NVME_NS_DEALLOCATE_SUPPORTED;
|
||||
CU_ASSERT(spdk_nvme_ns_supports_extended_lba(&ns) == false);
|
||||
ns.flags = SPDK_NVME_NS_EXTENDED_LBA_SUPPORTED | SPDK_NVME_NS_DEALLOCATE_SUPPORTED;
|
||||
CU_ASSERT(spdk_nvme_ns_supports_extended_lba(&ns) == true);
|
||||
|
||||
/* case2: spdk_nvme_ns_supports_compare */
|
||||
ns.flags = SPDK_NVME_NS_DEALLOCATE_SUPPORTED;
|
||||
CU_ASSERT(spdk_nvme_ns_supports_compare(&ns) == false);
|
||||
ns.flags = SPDK_NVME_NS_COMPARE_SUPPORTED | SPDK_NVME_NS_DEALLOCATE_SUPPORTED;
|
||||
CU_ASSERT(spdk_nvme_ns_supports_compare(&ns) == true);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
CU_pSuite suite = NULL;
|
||||
@ -257,6 +415,10 @@ int main(int argc, char **argv)
|
||||
CU_ADD_TEST(suite, test_nvme_ns_uuid);
|
||||
CU_ADD_TEST(suite, test_nvme_ns_csi);
|
||||
CU_ADD_TEST(suite, test_nvme_ns_data);
|
||||
CU_ADD_TEST(suite, test_nvme_ns_set_identify_data);
|
||||
CU_ADD_TEST(suite, test_spdk_nvme_ns_get_values);
|
||||
CU_ADD_TEST(suite, test_spdk_nvme_ns_is_active);
|
||||
CU_ADD_TEST(suite, spdk_nvme_ns_supports);
|
||||
|
||||
CU_basic_set_mode(CU_BRM_VERBOSE);
|
||||
CU_basic_run_tests();
|
||||
|
Loading…
Reference in New Issue
Block a user