test/lvol: Rewrite delete_lvol_store_persistent_positive to Bash
This test covers lvol store removal from the underlying aio device ( test case no. 255). Change-Id: I1e514abc0d0cc601996c6744dd65279d0865cf93 Signed-off-by: Michal Berger <michalx.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/866 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
parent
12ded5af6d
commit
100339aaf6
@ -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:
|
||||
255: 'delete_lvol_store_persistent_positive',
|
||||
350: 'nested_destroy_logical_volume_negative',
|
||||
400: 'nested_construct_logical_volume_positive',
|
||||
551: 'delete_lvol_bdev',
|
||||
|
@ -121,6 +121,42 @@ function test_tasting() {
|
||||
check_leftover_devices
|
||||
}
|
||||
|
||||
# Positive test for removing lvol store persistently
|
||||
function test_delete_lvol_store_persistent_positive() {
|
||||
local aio0=$testdir/aio_bdev_0
|
||||
local bdev_aio_name=${aio0##*/} bdev_block_size=4096
|
||||
local lvstore_name=lvstore_test lvstore_uuid
|
||||
|
||||
rpc_cmd bdev_aio_create "$aio0" "$bdev_aio_name" "$bdev_block_size"
|
||||
|
||||
get_bdev_jq bdev_get_bdevs -b "$bdev_aio_name"
|
||||
[[ ${jq_out["name"]} == "$bdev_aio_name" ]]
|
||||
[[ ${jq_out["product_name"]} == "AIO disk" ]]
|
||||
(( jq_out["block_size"] == bdev_block_size ))
|
||||
|
||||
lvstore_uuid=$(rpc_cmd bdev_lvol_create_lvstore "$bdev_aio_name" "$lvstore_name")
|
||||
|
||||
get_lvs_jq bdev_lvol_get_lvstores -u "$lvstore_uuid"
|
||||
[[ ${jq_out["uuid"]} == "$lvstore_uuid" ]]
|
||||
[[ ${jq_out["name"]} == "$lvstore_name" ]]
|
||||
[[ ${jq_out["base_bdev"]} == "$bdev_aio_name" ]]
|
||||
|
||||
rpc_cmd bdev_lvol_delete_lvstore -u "$lvstore_uuid"
|
||||
rpc_cmd bdev_aio_delete "$bdev_aio_name"
|
||||
# Create aio bdev on the same file
|
||||
rpc_cmd bdev_aio_create "$aio0" "$bdev_aio_name" "$bdev_block_size"
|
||||
# Wait 1 second to allow time for lvolstore tasting
|
||||
sleep 1
|
||||
# bdev_lvol_get_lvstores should not report any existsing lvol stores in configuration
|
||||
# after deleting and adding NVMe bdev, thus check if destroyed lvol store does not exist
|
||||
# on aio bdev anymore.
|
||||
rpc_cmd bdev_lvol_get_lvstores -u "$lvstore_uuid" && false
|
||||
|
||||
# cleanup
|
||||
rpc_cmd bdev_aio_delete "$bdev_aio_name"
|
||||
check_leftover_devices
|
||||
}
|
||||
|
||||
$rootdir/app/spdk_tgt/spdk_tgt &
|
||||
spdk_pid=$!
|
||||
trap 'killprocess "$spdk_pid"; rm -f $testdir/aio_bdev_0 $testdir/aio_bdev_1; exit 1' SIGINT SIGTERM EXIT
|
||||
@ -128,6 +164,7 @@ waitforlisten $spdk_pid
|
||||
truncate -s "${AIO_SIZE_MB}M" $testdir/aio_bdev_0 $testdir/aio_bdev_1
|
||||
|
||||
run_test "test_tasting" test_tasting
|
||||
run_test "test_delete_lvol_store_persistent_positive" test_delete_lvol_store_persistent_positive
|
||||
|
||||
trap - SIGINT SIGTERM EXIT
|
||||
killprocess $spdk_pid
|
||||
|
@ -112,7 +112,6 @@ def case_message(func):
|
||||
def inner(*args, **kwargs):
|
||||
test_name = {
|
||||
# bdev_lvol_delete_lvstore - positive tests
|
||||
255: 'delete_lvol_store_persistent_positive',
|
||||
551: 'delete_lvol_bdev',
|
||||
552: 'bdev_lvol_delete_lvstore_with_clones',
|
||||
553: 'unregister_lvol_bdev',
|
||||
@ -251,47 +250,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_case255(self):
|
||||
"""
|
||||
delete_lvol_store_persistent_positive
|
||||
|
||||
Positive test for removing lvol store persistently
|
||||
"""
|
||||
base_path = path.dirname(sys.argv[0])
|
||||
base_name = "aio_bdev0"
|
||||
aio_bdev0 = path.join(base_path, "aio_bdev_0")
|
||||
# Construct aio bdev
|
||||
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
|
||||
# Create lvol store on created aio bdev
|
||||
uuid_store = self.c.bdev_lvol_create_lvstore(base_name,
|
||||
self.lvs_name)
|
||||
fail_count = self.c.check_bdev_lvol_get_lvstores(base_name, uuid_store,
|
||||
self.cluster_size)
|
||||
# Destroy lvol store
|
||||
if self.c.bdev_lvol_delete_lvstore(self.lvs_name) != 0:
|
||||
fail_count += 1
|
||||
|
||||
# Delete aio bdev
|
||||
self.c.bdev_aio_delete(base_name)
|
||||
# Create aio bdev on the same file
|
||||
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
|
||||
# Wait 1 second to allow time for lvolstore tasting
|
||||
sleep(1)
|
||||
|
||||
# check if destroyed lvol store does not exist on aio bdev
|
||||
ret_value = self.c.check_bdev_lvol_get_lvstores(base_name, uuid_store,
|
||||
self.cluster_size)
|
||||
if ret_value == 0:
|
||||
fail_count += 1
|
||||
self.c.bdev_aio_delete(base_name)
|
||||
|
||||
# Expected result:
|
||||
# - bdev_lvol_get_lvstores should not report any existsing lvol stores in configuration
|
||||
# after deleting and adding NVMe bdev
|
||||
# - no other operation fails
|
||||
return fail_count
|
||||
|
||||
@case_message
|
||||
def test_case551(self):
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user