Merging upstream version 1.7.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
41144a7301
commit
476f38f2bb
878 changed files with 2965 additions and 1746 deletions
|
@ -13,6 +13,7 @@
|
|||
#include "util.h"
|
||||
|
||||
#define TEST_FD 0xFD
|
||||
#define HEADER_LEN 20
|
||||
|
||||
static void arbitrary_ascii_string(size_t max_len, char *str, char *log_str)
|
||||
{
|
||||
|
@ -61,9 +62,8 @@ static void test_no_entries(nvme_ctrl_t c)
|
|||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header,
|
||||
},
|
||||
|
@ -90,9 +90,8 @@ static void test_four_entries(nvme_ctrl_t c)
|
|||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header,
|
||||
},
|
||||
|
@ -100,15 +99,14 @@ static void test_four_entries(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(entries),
|
||||
.cdw10 = (sizeof(entries) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.cdw12 = sizeof(header), /* LPOL */
|
||||
.out_data = log_entries,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header,
|
||||
},
|
||||
|
@ -142,9 +140,8 @@ static void test_five_entries(nvme_ctrl_t c)
|
|||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header,
|
||||
},
|
||||
|
@ -161,15 +158,14 @@ static void test_five_entries(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = second_data_len,
|
||||
.cdw10 = (second_data_len / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.cdw12 = sizeof(header) + first_data_len, /* LPOL */
|
||||
.out_data = log_entries + first_entries,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header,
|
||||
},
|
||||
|
@ -200,14 +196,13 @@ static void test_genctr_change(nvme_ctrl_t c)
|
|||
};
|
||||
/*
|
||||
* genctr changes after the entries are fetched the first time,
|
||||
* so the log page fetch is retried
|
||||
* so the log page entries are refetched
|
||||
*/
|
||||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header1),
|
||||
.cdw10 = (sizeof(header1) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header1,
|
||||
},
|
||||
|
@ -215,23 +210,14 @@ static void test_genctr_change(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(entries1),
|
||||
.cdw10 = (sizeof(entries1) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* NUMDL */
|
||||
.cdw12 = sizeof(header1), /* LPOL */
|
||||
.out_data = entries1,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header2),
|
||||
.cdw10 = (sizeof(header2) / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header2,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header2),
|
||||
.cdw10 = (sizeof(header2) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header2,
|
||||
},
|
||||
|
@ -239,15 +225,14 @@ static void test_genctr_change(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(entries2),
|
||||
.cdw10 = (sizeof(entries2) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.cdw12 = sizeof(header2), /* LPOL */
|
||||
.out_data = log_entries2,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header2),
|
||||
.cdw10 = (sizeof(header2) / 4 - 1) << 16 /* NUMDL */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header2,
|
||||
},
|
||||
|
@ -280,9 +265,8 @@ static void test_max_retries(nvme_ctrl_t c)
|
|||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header1),
|
||||
.cdw10 = (sizeof(header1) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header1,
|
||||
},
|
||||
|
@ -290,23 +274,14 @@ static void test_max_retries(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(entry),
|
||||
.cdw10 = (sizeof(entry) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.cdw12 = sizeof(header1), /* LPOL */
|
||||
.out_data = &entry,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header2),
|
||||
.cdw10 = (sizeof(header2) / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header2,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header2),
|
||||
.cdw10 = (sizeof(header2) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header2,
|
||||
},
|
||||
|
@ -314,15 +289,14 @@ static void test_max_retries(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(entry),
|
||||
.cdw10 = (sizeof(entry) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.cdw12 = sizeof(header2), /* LPOL */
|
||||
.out_data = &entry,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header3),
|
||||
.cdw10 = (sizeof(header3) / 4 - 1) << 16 /* NUMDL */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header3,
|
||||
},
|
||||
|
@ -339,14 +313,12 @@ static void test_max_retries(nvme_ctrl_t c)
|
|||
|
||||
static void test_header_error(nvme_ctrl_t c)
|
||||
{
|
||||
size_t header_size = sizeof(struct nvmf_discovery_log);
|
||||
/* Stop after an error in fetching the header the first time */
|
||||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = header_size,
|
||||
.cdw10 = (header_size / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.err = NVME_SC_INVALID_OPCODE,
|
||||
},
|
||||
|
@ -367,9 +339,8 @@ static void test_entries_error(nvme_ctrl_t c)
|
|||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header,
|
||||
},
|
||||
|
@ -377,7 +348,6 @@ static void test_entries_error(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = entry_size,
|
||||
.cdw10 = (entry_size / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.cdw12 = sizeof(header), /* LPOL */
|
||||
.err = -EIO,
|
||||
|
@ -400,9 +370,8 @@ static void test_genctr_error(nvme_ctrl_t c)
|
|||
struct mock_cmd mock_admin_cmds[] = {
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.out_data = &header,
|
||||
},
|
||||
|
@ -410,15 +379,14 @@ static void test_genctr_error(nvme_ctrl_t c)
|
|||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(entry),
|
||||
.cdw10 = (sizeof(entry) / 4 - 1) << 16 /* NUMDL */
|
||||
| 1 << 15 /* RAE */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.cdw12 = sizeof(header), /* LPOL */
|
||||
.out_data = &entry,
|
||||
},
|
||||
{
|
||||
.opcode = nvme_admin_get_log_page,
|
||||
.data_len = sizeof(header),
|
||||
.cdw10 = (sizeof(header) / 4 - 1) << 16 /* NUMDL */
|
||||
.data_len = HEADER_LEN,
|
||||
.cdw10 = (HEADER_LEN / 4 - 1) << 16 /* NUMDL */
|
||||
| NVME_LOG_LID_DISCOVER, /* LID */
|
||||
.err = NVME_SC_INTERNAL,
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue