diff options
Diffstat (limited to 'test/sysfs')
-rw-r--r-- | test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.out | 32 | ||||
-rw-r--r-- | test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.tar.xz | bin | 0 -> 19712 bytes | |||
-rw-r--r-- | test/sysfs/meson.build | 36 | ||||
-rw-r--r-- | test/sysfs/sysfs-tree-diff.sh | 22 | ||||
-rw-r--r-- | test/sysfs/sysfs.c | 24 |
5 files changed, 114 insertions, 0 deletions
diff --git a/test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.out b/test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.out new file mode 100644 index 0000000..1cb6de4 --- /dev/null +++ b/test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.out @@ -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" + } + ] + } + ] + } + ] +} diff --git a/test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.tar.xz b/test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.tar.xz Binary files differnew file mode 100644 index 0000000..ee11fde --- /dev/null +++ b/test/sysfs/data/nvme-sysfs-tw-carbon-6.8.0-rc1+.tar.xz diff --git a/test/sysfs/meson.build b/test/sysfs/meson.build new file mode 100644 index 0000000..119fa97 --- /dev/null +++ b/test/sysfs/meson.build @@ -0,0 +1,36 @@ +# 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> + +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_files= [ + 'nvme-sysfs-tw-carbon-6.8.0-rc1+' + ] + + sysfs_tree_diff = find_program('sysfs-tree-diff.sh') + + 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 diff --git a/test/sysfs/sysfs-tree-diff.sh b/test/sysfs/sysfs-tree-diff.sh new file mode 100644 index 0000000..dfe3cb3 --- /dev/null +++ b/test/sysfs/sysfs-tree-diff.sh @@ -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" diff --git a/test/sysfs/sysfs.c b/test/sysfs/sysfs.c new file mode 100644 index 0000000..06d0035 --- /dev/null +++ b/test/sysfs/sysfs.c @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: LGPL-2.1-or-later +/** + * This file is part of libnvme. + * Copyright (c) 2024 Daniel Wagner, SUSE LLC + */ + +#include <assert.h> + +#include <libnvme.h> + +int main(int argc, char *argv[]) +{ + nvme_root_t r; + + r = nvme_create_root(stdout, LOG_ERR); + assert(r); + + assert(nvme_scan_topology(r, NULL, NULL) == 0); + + assert(nvme_dump_tree(r) == 0); + printf("\n"); + + nvme_free_tree(r); +} |