test/lvol: rewrite test_lvol_resize_basic to bash
Added resize.sh. There won't be too many test cases in there just yet, but eventually we'd like to lift some restrictions on lvol resizes and there will be a fair amount of extra cases to cover. Change-Id: I3d9db16003ac806241678cfd8441281d557c214c Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Signed-off-by: Pawel Kaminski <pawelx.kaminski@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/462185 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com> Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
This commit is contained in:
parent
67ab15d6e7
commit
5ff75ec292
@ -21,7 +21,6 @@ function usage() {
|
||||
echo " --block-size Block size for this bdev"
|
||||
echo "-x set -x for script debug"
|
||||
echo " --test-cases= List test cases which will be run:
|
||||
150: 'bdev_lvol_resize_positive',
|
||||
200: 'resize_logical_volume_nonexistent_logical_volume',
|
||||
201: 'resize_logical_volume_with_size_out_of_range',
|
||||
250: 'bdev_lvol_delete_lvstore_positive',
|
||||
|
@ -8,6 +8,7 @@ timing_enter lvol
|
||||
|
||||
timing_enter basic
|
||||
run_test "lvol_basic" test/lvol/basic.sh
|
||||
run_test "lvol_resize" test/lvol/resize.sh
|
||||
timing_exit basic
|
||||
|
||||
timing_exit lvol
|
||||
|
64
test/lvol/resize.sh
Executable file
64
test/lvol/resize.sh
Executable file
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
testdir=$(readlink -f $(dirname $0))
|
||||
rootdir=$(readlink -f $testdir/../..)
|
||||
source $rootdir/test/common/autotest_common.sh
|
||||
source $rootdir/test/lvol/common.sh
|
||||
|
||||
# resize an lvol a few times
|
||||
function test_resize_lvol() {
|
||||
# create an lvol store
|
||||
malloc_name=$(rpc_cmd bdev_malloc_create $MALLOC_SIZE_MB $MALLOC_BS)
|
||||
lvs_uuid=$(rpc_cmd bdev_lvol_create_lvstore "$malloc_name" lvs_test)
|
||||
|
||||
# calculate lvol size
|
||||
lvol_size_mb=$( round_down $(( LVS_DEFAULT_CAPACITY_MB / 4 )) )
|
||||
lvol_size=$(( lvol_size_mb * 1024 * 1024 ))
|
||||
|
||||
# create an lvol on top
|
||||
lvol_uuid=$(rpc_cmd bdev_lvol_create -u "$lvs_uuid" lvol_test "$lvol_size_mb")
|
||||
lvol=$(rpc_cmd bdev_get_bdevs -b "$lvol_uuid")
|
||||
[ "$(jq -r '.[0].name' <<< "$lvol")" = "$lvol_uuid" ]
|
||||
[ "$(jq -r '.[0].uuid' <<< "$lvol")" = "$lvol_uuid" ]
|
||||
[ "$(jq -r '.[0].aliases[0]' <<< "$lvol")" = "lvs_test/lvol_test" ]
|
||||
[ "$(jq -r '.[0].block_size' <<< "$lvol")" = "$MALLOC_BS" ]
|
||||
[ "$(jq -r '.[0].num_blocks' <<< "$lvol")" = "$(( lvol_size / MALLOC_BS ))" ]
|
||||
|
||||
# resize the lvol to twice its original size
|
||||
lvol_size_mb=$(( lvol_size_mb * 2 ))
|
||||
lvol_size=$(( lvol_size_mb * 1024 * 1024 ))
|
||||
rpc_cmd bdev_lvol_resize "$lvol_uuid" "$lvol_size_mb"
|
||||
lvol=$(rpc_cmd bdev_get_bdevs -b "$lvol_uuid")
|
||||
[ "$(jq -r '.[0].num_blocks' <<< "$lvol")" = "$(( lvol_size / MALLOC_BS ))" ]
|
||||
|
||||
# resize the lvol to four times its original size
|
||||
lvol_size_mb=$(( lvol_size_mb * 2 ))
|
||||
lvol_size=$(( lvol_size_mb * 1024 * 1024 ))
|
||||
rpc_cmd bdev_lvol_resize "$lvol_uuid" "$lvol_size_mb"
|
||||
lvol=$(rpc_cmd bdev_get_bdevs -b "$lvol_uuid")
|
||||
[ "$(jq -r '.[0].num_blocks' <<< "$lvol")" = "$(( lvol_size / MALLOC_BS ))" ]
|
||||
|
||||
# resize the lvol to 0 using lvol bdev alias
|
||||
lvol_size_mb=0
|
||||
lvol_size=0
|
||||
rpc_cmd bdev_lvol_resize "lvs_test/lvol_test" "$lvol_size_mb"
|
||||
lvol=$(rpc_cmd bdev_get_bdevs -b "$lvol_uuid")
|
||||
[ "$(jq -r '.[0].num_blocks' <<< "$lvol")" = "$(( lvol_size / MALLOC_BS ))" ]
|
||||
|
||||
# clean up
|
||||
rpc_cmd bdev_lvol_delete "$lvol_uuid"
|
||||
rpc_cmd bdev_get_bdevs -b "$lvol_uuid" && false
|
||||
rpc_cmd bdev_lvol_delete_lvstore -u "$lvs_uuid"
|
||||
rpc_cmd bdev_lvol_get_lvstores -u "$lvs_uuid" && false
|
||||
rpc_cmd bdev_malloc_delete "$malloc_name"
|
||||
}
|
||||
|
||||
$rootdir/app/spdk_tgt/spdk_tgt &
|
||||
spdk_pid=$!
|
||||
trap 'killprocess "$spdk_pid"; exit 1' SIGINT SIGTERM EXIT
|
||||
waitforlisten $spdk_pid
|
||||
|
||||
run_test "test_resize_lvol" test_resize_lvol
|
||||
|
||||
trap - SIGINT SIGTERM EXIT
|
||||
killprocess $spdk_pid
|
@ -111,8 +111,6 @@ def test_counter():
|
||||
def case_message(func):
|
||||
def inner(*args, **kwargs):
|
||||
test_name = {
|
||||
# resize_lvol_store - positive tests
|
||||
150: 'bdev_lvol_resize_positive',
|
||||
# resize lvol store - negative tests
|
||||
200: 'resize_logical_volume_nonexistent_logical_volume',
|
||||
201: 'resize_logical_volume_with_size_out_of_range',
|
||||
@ -299,61 +297,6 @@ class TestCases(object):
|
||||
lvs = self.c.bdev_lvol_get_lvstores(lvs_name)[0]
|
||||
return int(int(lvs['cluster_size']) / MEGABYTE)
|
||||
|
||||
@case_message
|
||||
def test_case150(self):
|
||||
"""
|
||||
resize_logical_volume_positive
|
||||
|
||||
|
||||
Positive test for resizing a logical_volume.
|
||||
Call bdev_lvol_resize with correct logical_volumes name and new size.
|
||||
"""
|
||||
# Construct malloc bdev
|
||||
base_name = self.c.bdev_malloc_create(self.total_size,
|
||||
self.block_size)
|
||||
# Create lvol store
|
||||
uuid_store = self.c.bdev_lvol_create_lvstore(base_name,
|
||||
self.lvs_name)
|
||||
# Check correct uuid values in response bdev_lvol_get_lvstores command
|
||||
fail_count = self.c.check_bdev_lvol_get_lvstores(base_name, uuid_store,
|
||||
self.cluster_size)
|
||||
# Construct lvol bdev on correct lvs_uuid and
|
||||
# size is equal to one quarter of size malloc bdev
|
||||
size = self.get_lvs_divided_size(4)
|
||||
uuid_bdev = self.c.bdev_lvol_create(uuid_store, self.lbd_name, size)
|
||||
# Check size of the lvol bdev by rpc command bdev_get_bdevs
|
||||
fail_count += self.c.check_bdev_get_bdevs_methods(uuid_bdev, size)
|
||||
|
||||
# Resize lvol bdev on correct lvs_uuid and
|
||||
# size is equal to half of size malloc bdev
|
||||
size = self.get_lvs_divided_size(2)
|
||||
self.c.bdev_lvol_resize(uuid_bdev, size)
|
||||
# Check size of the lvol bdev by rpc command bdev_get_bdevs
|
||||
fail_count += self.c.check_bdev_get_bdevs_methods(uuid_bdev, size)
|
||||
|
||||
# Resize lvol bdev on the correct lvs_uuid and
|
||||
# size is smaller by 1 cluster
|
||||
size = (self.get_lvs_size() - self.get_lvs_cluster_size())
|
||||
self.c.bdev_lvol_resize(uuid_bdev, size)
|
||||
# Check size of the lvol bdev by rpc command bdev_get_bdevs
|
||||
fail_count += self.c.check_bdev_get_bdevs_methods(uuid_bdev, size)
|
||||
|
||||
# Resize lvol bdev on the correct lvs_uuid and
|
||||
# size is equal 0 MiB
|
||||
size = 0
|
||||
self.c.bdev_lvol_resize(uuid_bdev, size)
|
||||
# Check size of the lvol bdev by rpc command bdev_get_bdevs
|
||||
fail_count += self.c.check_bdev_get_bdevs_methods(uuid_bdev, size)
|
||||
|
||||
self.c.bdev_lvol_delete(uuid_bdev)
|
||||
self.c.bdev_lvol_delete_lvstore(uuid_store)
|
||||
self.c.bdev_malloc_delete(base_name)
|
||||
# Expected result:
|
||||
# - lvol bdev should change size after resize operations
|
||||
# - calls successful, return code = 0
|
||||
# - no other operation fails
|
||||
return fail_count
|
||||
|
||||
@case_message
|
||||
def test_case200(self):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user