Spdk/test/vhost/readonly/enabled_readonly_vm.sh
Ben Walker 73bb5a717f vhost: Use standard path names throughout tests
Follow the pattern that most of the other tests follow by
defining testdir and rootdir at the top, then sourcing
the common files.

Change-Id: I8f4374e91f20edc244e8e8bcf8f9df198b4509c6
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/454380
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-05-16 11:16:30 +00:00

81 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -x
testdir=$(readlink -f $(dirname $0))
rootdir=$(readlink -f $testdir/../../..)
source $rootdir/test/common/autotest_common.sh
source $rootdir/test/vhost/common.sh
disk_name="vda"
test_folder_name="readonly_test"
test_file_name="some_test_file"
function error()
{
echo "==========="
echo -e "ERROR: $@"
echo "==========="
umount "$test_folder_name"
rm -rf "$testdir/$test_folder_name"
exit 1
}
if [[ ! -d "/sys/block/$disk_name" ]]; then
error "No vhost-blk disk found!"
fi
if (( $(lsblk -r -n -o RO -d "/dev/$disk_name") == 0 )); then
error "Vhost-blk disk is not set as readonly!"
fi
echo "INFO: Found vhost-blk disk with readonly flag"
if [[ ! -b "/dev/$disk_name"1"" ]]; then
error "Partition not found!"
fi
mkdir $testdir/$test_folder_name
if [[ $? != 0 ]]; then
error "Failed to create test folder $test_folder_name"
fi
echo "INFO: Mounting partition"
mount /dev/$disk_name"1" $testdir/$test_folder_name
if [[ $? != 0 ]]; then
error "Failed to mount partition $disk_name""1"
fi
echo "INFO: Trying to create file on readonly disk"
truncate -s "200M" $test_folder_name/$test_file_name"_on_readonly"
if [[ $? == 0 ]]; then
error "Created a file on a readonly disk!"
fi
if [[ -f $test_folder_name/$test_file_name ]]; then
echo "INFO: Trying to delete previously created file"
rm $test_folder_name/$test_file_name
if [[ $? == 0 ]]; then
error "Deleted a file from a readonly disk!"
fi
else
error "Previously created file not found!"
fi
echo "INFO: Copying file from readonly disk"
cp $test_folder_name/$test_file_name $testdir
if ! rm $testdir/$test_file_name; then
error "Copied file from a readonly disk was not found!"
fi
umount "$test_folder_name"
rm -rf "$testdir/$test_folder_name"
echo "INFO: Trying to create file system on a readonly disk"
if mkfs.ext4 -F /dev/$disk_name"1"; then
error "Created file system on a readonly disk!"
fi
echo "INFO: Trying to delete partition from readonly disk"
if echo -e "d\n1\nw" | fdisk /dev/$disk_name; then
error "Deleted partition from readonly disk!"
fi