Adding upstream version 1.9.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
2e3cdb015d
commit
e82d603de0
928 changed files with 6732 additions and 1442 deletions
|
@ -5,25 +5,32 @@
|
|||
#
|
||||
# Authors: Daniel Wagner <dwagner@suse.de>
|
||||
|
||||
diff = find_program('diff', required : false)
|
||||
if diff.found()
|
||||
sysfs_tree_print = executable(
|
||||
'sysfs-tree-print',
|
||||
['sysfs.c'],
|
||||
dependencies: libnvme_dep,
|
||||
include_directories: [incdir],
|
||||
)
|
||||
|
||||
sysfs = executable(
|
||||
'test-sysfs',
|
||||
['sysfs.c'],
|
||||
dependencies: libnvme_dep,
|
||||
include_directories: [incdir, internal_incdir]
|
||||
)
|
||||
sysfs_files= [
|
||||
'nvme-sysfs-tw-carbon-6.8.0-rc1+'
|
||||
]
|
||||
|
||||
sysfs_files= [
|
||||
'nvme-sysfs-tw-carbon-6.8.0-rc1+'
|
||||
]
|
||||
sysfs_tree_diff = find_program('sysfs-tree-diff.sh')
|
||||
|
||||
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
|
||||
foreach t_file : sysfs_files
|
||||
test(
|
||||
'sysfs',
|
||||
sysfs_tree_diff,
|
||||
args : [
|
||||
meson.current_build_dir(),
|
||||
sysfs_tree_print.full_path(),
|
||||
files('data'/t_file + '.tar.xz'),
|
||||
files('data'/t_file + '.out'),
|
||||
],
|
||||
depends : sysfs_tree_print,
|
||||
)
|
||||
endforeach
|
||||
endif
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
#!/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}"
|
22
test/sysfs/sysfs-tree-diff.sh
Normal file
22
test/sysfs/sysfs-tree-diff.sh
Normal file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash -e
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
BUILD_DIR=$1
|
||||
SYSFS_TREE_PRINT=$2
|
||||
INPUT=$3
|
||||
EXPECTED_OUTPUT=$4
|
||||
|
||||
TEST_NAME="$(basename -s .tar.xz $INPUT)"
|
||||
TEST_DIR="$BUILD_DIR/$TEST_NAME"
|
||||
ACTUAL_OUTPUT="$TEST_DIR.out"
|
||||
|
||||
rm -rf "$TEST_DIR"
|
||||
mkdir "$TEST_DIR"
|
||||
tar -x -f "$INPUT" -C "$TEST_DIR"
|
||||
|
||||
LIBNVME_SYSFS_PATH="$TEST_DIR" \
|
||||
LIBNVME_HOSTNQN=nqn.2014-08.org.nvmexpress:uuid:ce4fee3e-c02c-11ee-8442-830d068a36c6 \
|
||||
LIBNVME_HOSTID=ce4fee3e-c02c-11ee-8442-830d068a36c6 \
|
||||
"$SYSFS_TREE_PRINT" > "$ACTUAL_OUTPUT"
|
||||
|
||||
diff -u "$EXPECTED_OUTPUT" "$ACTUAL_OUTPUT"
|
|
@ -4,86 +4,21 @@
|
|||
* 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;
|
||||
nvme_root_t r;
|
||||
|
||||
if (argc < 4) {
|
||||
fprintf(stderr, "usage: test-sysfs SYSFS_DIR OUTPUT_FILE COMPARE_FILE\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
r = nvme_create_root(stdout, LOG_ERR);
|
||||
assert(r);
|
||||
|
||||
pass &= test_sysfs(argv[1], argv[2]);
|
||||
pass &= compare_content(argv[2], argv[3]);
|
||||
assert(nvme_scan_topology(r, NULL, NULL) == 0);
|
||||
|
||||
exit(pass ? EXIT_SUCCESS : EXIT_FAILURE);
|
||||
assert(nvme_dump_tree(r) == 0);
|
||||
printf("\n");
|
||||
|
||||
nvme_free_tree(r);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue