Page MenuHomeFreeBSD

D60534.diff
No OneTemporary

D60534.diff

diff --git a/tests/sys/cam/ctl/nvmft/nvmft.c b/tests/sys/cam/ctl/nvmft/nvmft.c
--- a/tests/sys/cam/ctl/nvmft/nvmft.c
+++ b/tests/sys/cam/ctl/nvmft/nvmft.c
@@ -624,6 +624,60 @@
close(s);
}
+ATF_TC(invalid_connect_recfmt);
+ATF_TC_HEAD(invalid_connect_recfmt, tc)
+{
+ require(tc);
+}
+ATF_TC_BODY(invalid_connect_recfmt, tc)
+{
+ struct nvmf_fabric_connect_cmd cmd;
+ struct nvmf_fabric_connect_rsp rsp;
+ struct nvmf_qpair_params qparams;
+ struct nvmf_association *na;
+ struct nvmf_qpair *admin;
+ char hostnqn[NVMF_NQN_MAX_LEN];
+ uint8_t hostid[16];
+ int s;
+ uint16_t status;
+
+ init_hostid(hostid, hostnqn);
+
+ na = create_association(tc);
+
+ s = open_socket(tc, NULL, NULL);
+ memset(&qparams, 0, sizeof(qparams));
+ qparams.admin = true;
+ qparams.tcp.fd = s;
+
+ admin = nvmf_allocate_qpair(na, &qparams);
+ if (admin == NULL)
+ atf_tc_fail("Failed to create admin queue: %s",
+ nvmf_association_error(na));
+ nvmf_free_association(na);
+
+ memset(&cmd, 0, sizeof(cmd));
+ nvmf_init_fabrics_sqe(&cmd, NVMF_FABRIC_COMMAND_CONNECT);
+ cmd.recfmt = htole16(1);
+ cmd.qid = htole16(0);
+
+ cmd.sqsize = htole16(NVMF_MIN_ADMIN_MAX_SQ_SIZE - 1);
+ if (!atf_tc_get_config_var_as_bool_wd(tc, "flow_control", false))
+ cmd.cattr |= NVMF_CONNECT_ATTR_DISABLE_SQ_FC;
+
+ manual_connect(tc, admin, &cmd, parse_cntlid(tc), hostid, hostnqn,
+ &rsp);
+
+ status = le16toh(rsp.status);
+ ATF_REQUIRE(status != 0);
+ ATF_REQUIRE(NVME_STATUS_GET_SCT(status) == NVME_SCT_COMMAND_SPECIFIC);
+ ATF_REQUIRE(NVME_STATUS_GET_SC(status) ==
+ NVMF_FABRIC_SC_INCOMPATIBLE_FORMAT);
+
+ nvmf_free_qpair(admin);
+ close(s);
+}
+
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, invalid_qid);
@@ -636,6 +690,7 @@
ATF_TP_ADD_TC(tp, fetch_hip_offset_3);
ATF_TP_ADD_TC(tp, fetch_hip_offset_beyond_end);
ATF_TP_ADD_TC(tp, fetch_reserved_log_page);
+ ATF_TP_ADD_TC(tp, invalid_connect_recfmt);
return (atf_no_error());
}

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 11, 7:25 AM (15 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40552962
Default Alt Text
D60534.diff (1 KB)

Event Timeline