1
0
Fork 0

Merging upstream version 2.3.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-16 12:20:48 +01:00
parent 0f232ef15b
commit bf586630f8
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
444 changed files with 5289 additions and 1980 deletions

View file

@ -1,13 +1,20 @@
nvmetests
=========
This contains NVMe unit tests framework. The purpose of this framework
This contains a NVMe tests framework. The purpose of this framework
to use nvme cli and test various supported commands and scenarios for
NVMe device.
In current implementation this framework uses nvme cli to
In current implementation this framework uses nvme-cli to
interact with underlying controller/namespace.
Note these tests expect to run against real hardware and will
read and write data to /dev/nvme0!
DO NOT RUN THEM IF YOU DO NOT KNOW WHAT YOU ARE DOING!
You have been warned.
1. Common Package Dependencies
------------------------------

View file

@ -55,15 +55,6 @@ if runtests.found()
endforeach
endif
test_uint128 = executable(
'test-uint128',
['test-uint128.c', '../util/types.c'],
include_directories: [incdir, '..'],
dependencies: [libnvme_dep],
)
test('uint128', test_uint128)
python_module = import('python')
python = python_module.find_installation('python3')

View file

@ -1,62 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "../util/types.h"
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
/* create a uint128_t from four uint32_ts. w0 is the most significant value,
* w2 the least */
#define U128(w0, w1, w2, w3) { .words = { w0, w1, w2, w3 } }
static int test_rc;
static void check_str(nvme_uint128_t val, const char *exp, const char *res)
{
if (!strcmp(res, exp))
return;
printf("ERROR: printing {%08x.%08x.%08x.%08x}, got '%s', expected '%s'\n",
val.words[3], val.words[2], val.words[1], val.words[0],
res, exp);
test_rc = 1;
}
struct tostr_test {
nvme_uint128_t val;
const char *exp;
};
static struct tostr_test tostr_tests[] = {
{ U128(0, 0, 0, 0), "0" },
{ U128(0, 0, 0, 1), "1" },
{ U128(0, 0, 0, 10), "10" },
{ U128(4, 3, 2, 1), "316912650112397582603894390785" },
{
U128(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff),
"340282366920938463463374607431768211455"
},
};
void tostr_test(struct tostr_test *test)
{
char *str;
str = uint128_t_to_string(test->val);
check_str(test->val, test->exp, str);
}
int main(void)
{
unsigned int i;
test_rc = 0;
for (i = 0; i < ARRAY_SIZE(tostr_tests); i++)
tostr_test(&tostr_tests[i]);
return test_rc ? EXIT_FAILURE : EXIT_SUCCESS;
}