1
0
Fork 0

Adding upstream version 1.8.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-16 10:20:15 +01:00
parent 86acbfc29e
commit 2e3cdb015d
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
874 changed files with 1460 additions and 897 deletions

View file

@ -0,0 +1,32 @@
{
"hosts":[
{
"hostnqn":"nqn.2014-08.org.nvmexpress:uuid:ce4fee3e-c02c-11ee-8442-830d068a36c6",
"hostid":"ce4fee3e-c02c-11ee-8442-830d068a36c6",
"subsystems":[
{
"name":"nvme-subsys1",
"nqn":"nqn.2019-08.org.qemu:nvme-0",
"controllers":[
{
"name":"nvme1",
"transport":"pcie",
"traddr":"0000:00:05.0"
}
]
},
{
"name":"nvme-subsys0",
"nqn":"nqn.2019-08.org.qemu:subsys1",
"controllers":[
{
"name":"nvme0",
"transport":"pcie",
"traddr":"0000:0f:00.0"
}
]
}
]
}
]
}

Binary file not shown.

29
test/sysfs/meson.build Normal file
View file

@ -0,0 +1,29 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of libnvme.
# Copyright (c) 2024 SUSE LLC.
#
# Authors: Daniel Wagner <dwagner@suse.de>
sysfs = executable(
'test-sysfs',
['sysfs.c'],
dependencies: libnvme_dep,
include_directories: [incdir, internal_incdir]
)
sysfs_files= [
'nvme-sysfs-tw-carbon-6.8.0-rc1+'
]
setup = find_program('setup.sh')
foreach t_file : sysfs_files
r = run_command(setup, files('data'/t_file + '.tar.xz'), meson.current_build_dir(), check: true)
i = r.stdout().strip()
e0 = 'LIBNVME_SYSFS_PATH=' + i
e1 = 'LIBNVME_HOSTNQN=nqn.2014-08.org.nvmexpress:uuid:ce4fee3e-c02c-11ee-8442-830d068a36c6'
e2 = 'LIBNVME_HOSTID=ce4fee3e-c02c-11ee-8442-830d068a36c6'
test('sysfs', sysfs, args : [ i, t_file + '.out', files('data'/t_file + '.out') ], env : [ e0, e1, e2 ])
endforeach

11
test/sysfs/setup.sh Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
TARFILE=$1
BASEDIR=$2
TESTDIR="$BASEDIR/$(basename -s .tar.xz ${TARFILE})"
mkdir -p "${TESTDIR}"
tar -x -f "${TARFILE}" -C "${TESTDIR}" || exit 1
echo "${TESTDIR}"

89
test/sysfs/sysfs.c Normal file
View file

@ -0,0 +1,89 @@
// SPDX-License-Identifier: LGPL-2.1-or-later
/**
* This file is part of libnvme.
* Copyright (c) 2024 Daniel Wagner, SUSE LLC
*/
#include "nvme/tree.h"
#include <assert.h>
#include <errno.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <ccan/array_size/array_size.h>
#include <libnvme.h>
#include <nvme/private.h>
static bool test_sysfs(const char *path, const char *filename)
{
FILE *f;
nvme_root_t r;
int err;
f = fopen(filename, "w");
if (!f)
return false;
r = nvme_create_root(f, LOG_ERR);
assert(r);
err = nvme_scan_topology(r, NULL, NULL);
if (!err)
nvme_dump_tree(r);
fprintf(f, "\n");
nvme_free_tree(r);
fclose(f);
return err == 0;
}
static bool compare_content(const char *filename1, const char *filename2)
{
FILE *f1, *f2;
char c1, c2;
bool pass = false;
f1 = fopen(filename1, "r");
if (!f1)
return false;
f2 = fopen(filename2, "r");
if (!f2) {
fclose(f1);
return false;
}
do {
c1 = getc(f1);
c2 = getc(f2);
if (c1 != c2)
goto out;
} while (c1 != EOF || c2 != EOF);
if (c1 == c2)
pass = true;
out:
fclose(f1);
fclose(f2);
return pass;
}
int main(int argc, char *argv[])
{
bool pass = true;
if (argc < 4) {
fprintf(stderr, "usage: test-sysfs SYSFS_DIR OUTPUT_FILE COMPARE_FILE\n");
return EXIT_FAILURE;
}
pass &= test_sysfs(argv[1], argv[2]);
pass &= compare_content(argv[2], argv[3]);
exit(pass ? EXIT_SUCCESS : EXIT_FAILURE);
}