blob: d7a8751ec75211894f503cd36b84e5195250154d [file] [log] [blame]
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0+
# Copyright (c) 2017-2018 Western Digital Corporation or its affiliates.
#
# Test mkfs with data verification for block device backed ns.
. tests/nvme/rc
DESCRIPTION="run mkfs and data verification fio job on NVMeOF block device-backed ns"
TIMED=1
requires() {
_have_program nvme && _have_program mkfs.xfs && _have_program fio && \
_have_modules loop nvme-loop nvmet && _have_configfs
}
test() {
echo "Running ${TEST_NAME}"
modprobe nvmet
modprobe nvme-loop
local port
local nvmedev
local loop_dev
local mount_dir="/mnt/blktests"
local file_path="${TMPDIR}/img"
local subsys_name="blktests-subsystem-1"
mkdir -p "${mount_dir}" > /dev/null 2>&1
truncate -s 1G "${file_path}"
loop_dev="$(losetup -f --show "${file_path}")"
_create_nvmet_subsystem "${subsys_name}" "${loop_dev}" \
"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
port="$(_create_nvmet_port "loop")"
_add_nvmet_subsys_to_port "${port}" "${subsys_name}"
nvme connect -t loop -n "${subsys_name}"
nvmedev="$(_find_nvme_loop_dev)"
cat "/sys/block/${nvmedev}n1/uuid"
cat "/sys/block/${nvmedev}n1/wwid"
umount ${mount_dir} > /dev/null 2>&1
mkfs.xfs -l size=32m -f /dev/"${nvmedev}n1" > /dev/null 2>&1
mount /dev/"${nvmedev}n1" "${mount_dir}"
_run_fio_verify_io --size=950m --directory="${mount_dir}/"
umount "${mount_dir}" > /dev/null 2>&1
nvme disconnect -n "${subsys_name}"
_remove_nvmet_subsystem_from_port "${port}" "${subsys_name}"
_remove_nvmet_subsystem "${subsys_name}"
_remove_nvmet_port "${port}"
losetup -d "${loop_dev}"
rm -f local*verify*state
rm "${file_path}"
rm -fr "${mount_dir}"
modprobe -r nvme_loop
modprobe -r nvmet
echo "Test complete"
}