From: Jeremy Kerr Date: Thu, 26 Jan 2023 02:28:49 +0000 (+0800) Subject: test: mi: Provide a full request buffer for invalid admin req tests X-Git-Tag: v1.3~5^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=bd3bfd47601442763423a18feb904a46438714e8;p=users%2Fsagi%2Flibnvme.git test: mi: Provide a full request buffer for invalid admin req tests We're issuing an admin command with up to four bytes of data in the request. Although these will all fail due to invalid args, we still want to provide enough data to simulate the full request. Signed-off-by: Jeremy Kerr --- diff --git a/test/mi.c b/test/mi.c index f700b7a4..5bbb2f06 100644 --- a/test/mi.c +++ b/test/mi.c @@ -575,8 +575,11 @@ static int test_admin_invalid_formats_cb(struct nvme_mi_ep *ep, static void test_admin_invalid_formats(nvme_mi_ep_t ep) { + struct { + struct nvme_mi_admin_req_hdr hdr; + uint8_t data[4]; + } req = { 0 }; struct nvme_mi_admin_resp_hdr resp = { 0 }; - struct nvme_mi_admin_req_hdr req = { 0 }; nvme_mi_ctrl_t ctrl; size_t len; int rc; @@ -588,37 +591,37 @@ static void test_admin_invalid_formats(nvme_mi_ep_t ep) /* unaligned req size */ len = 0; - rc = nvme_mi_admin_xfer(ctrl, &req, 1, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 1, &resp, 0, &len); assert(rc != 0); /* unaligned resp size */ len = 1; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 0, &len); assert(rc != 0); /* unaligned resp offset */ len = 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 1, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 1, &len); assert(rc != 0); /* resp too large */ len = 4096 + 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 0, &len); assert(rc != 0); /* resp offset too large */ len = 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, (off_t)1 << 32, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, (off_t)1 << 32, &len); assert(rc != 0); /* resp offset with no len */ len = 0; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 4, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 4, &len); assert(rc != 0); /* req and resp payloads */ len = 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 4, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 4, &resp, 0, &len); assert(rc != 0); }