#!/bin/bash -e
# SPDX-License-Identifier: LGPL-2.1-or-later

positional_args=()
sysfs_tar=""
config_json=""

while [[ $# -gt 0 ]]; do
    case $1 in
	--sysfs-tar)
	    sysfs_tar=$2
	    shift 1
	    ;;
	--config-json)
	    config_json=$2
	    shift 1
	    ;;
    *)
        positional_args+=("$1")
        shift
        ;;
    esac
done

set -- "${positional_args[@]}"

test_binary="$1"
build_dir="$2"
expected_output="$3"

sysfs_path=""
if [[ -n "${sysfs_tar}" ]]; then
   test_name="$(basename -s .tar.xz ${sysfs_tar})"
   sysfs_path="${build_dir}/${test_name}"

   rm -rf "${sysfs_path}"
   mkdir "${sysfs_path}"
   tar -x -f "${sysfs_tar}" -C "${sysfs_path}"
fi

output="${build_dir}"/$(basename "${expected_output}")

LIBNVME_SYSFS_PATH="${sysfs_path}" \
LIBNVME_HOSTNQN=nqn.2014-08.org.nvmexpress:uuid:ce4fee3e-c02c-11ee-8442-830d068a36c6 \
LIBNVME_HOSTID=ce4fee3e-c02c-11ee-8442-830d068a36c6 \
"${test_binary}" "${config_json}" > "${output}" || echo "test failed"

diff -u "${expected_output}" "${output}"