numam-spdk/test/nvmf/filesystem/filesystem.sh
Ben Walker f0ab59a325 nvmf: Include the JSON RPC server
This allows live configuration of the target, much like
the iSCSI target. More function calls will be added
over time.

Also, make the tests wait until the target is listening
on the RPC port to determine that the target is ready.

Change-Id: I8f762e49511d482ef820f6b25a7d3ad9a8bb41f9
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-08-19 09:47:04 -07:00

73 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
testdir=$(readlink -f $(dirname $0))
rootdir=$(readlink -f $testdir/../../..)
source $rootdir/scripts/autotest_common.sh
source $rootdir/test/nvmf/common.sh
set -e
if ! rdma_nic_available; then
echo "no NIC for nvmf test"
exit 0
fi
timing_enter fs_test
# Start up the NVMf target in another process
$rootdir/app/nvmf_tgt/nvmf_tgt -c $testdir/../nvmf.conf &
nvmfpid=$!
trap "killprocess $nvmfpid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $nvmfpid ${RPC_PORT}
modprobe -v nvme-rdma
if [ -e "/dev/nvme-fabrics" ]; then
chmod a+rw /dev/nvme-fabrics
fi
echo 'traddr='$NVMF_FIRST_TARGET_IP',transport=rdma,nr_io_queues=1,trsvcid='$NVMF_PORT',nqn=nqn.2016-06.io.spdk:cnode1' > /dev/nvme-fabrics
mkdir -p /mnt/device
devs=`lsblk -l -o NAME | grep nvme`
for dev in $devs; do
timing_enter parted
parted -s /dev/$dev mklabel msdos mkpart primary '0%' '100%'
timing_exit parted
sleep 1
for fstype in "ext4" "btrfs" "xfs"; do
timing_enter $fstype
if [ $fstype = ext4 ]; then
force=-F
else
force=-f
fi
mkfs.${fstype} $force /dev/${dev}p1
mount /dev/${dev}p1 /mnt/device
touch /mnt/device/aaa
sync
rm /mnt/device/aaa
sync
umount /mnt/device
timing_exit $fstype
done
parted -s /dev/$dev rm 1
done
sync
nvme disconnect -n "nqn.2016-06.io.spdk:cnode1"
trap - SIGINT SIGTERM EXIT
nvmfcleanup
killprocess $nvmfpid
timing_exit fs_test