test/lvol: rewrite construct_lvol_store_with_all_clear_methods to bash

Change-Id: Iaafa521f420d677834f01fd13f56b3aa9e9cf49d
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/709
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Michal Berger <michalx.berger@intel.com>
This commit is contained in:
Darek Stojaczyk 2019-07-15 13:43:28 +02:00 committed by Tomasz Zawadzki
parent a317fccab7
commit eb33c9a659
3 changed files with 35 additions and 39 deletions

View File

@ -131,6 +131,40 @@ function test_construct_lvs_different_cluster_size() {
check_leftover_devices
}
# test different methods of clearing the disk on lvolstore creation
function test_construct_lvs_clear_methods() {
malloc_name=$(rpc_cmd bdev_malloc_create $MALLOC_SIZE_MB $MALLOC_BS)
# first try to provide invalid clear method
rpc_cmd bdev_lvol_create_lvstore "$malloc2_name" lvs2_test --clear-method invalid123 && false
# no lvs should be created
lvol_stores=$(rpc_cmd bdev_lvol_get_lvstores)
[ "$(jq length <<< "$lvol_stores")" == "0" ]
methods="none unmap write_zeroes"
for clear_method in $methods; do
lvs_uuid=$(rpc_cmd bdev_lvol_create_lvstore "$malloc_name" lvs_test --clear-method $clear_method)
# create an lvol on top
lvol_uuid=$(rpc_cmd bdev_lvol_create -u "$lvs_uuid" lvol_test "$LVS_DEFAULT_CAPACITY_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")" = "$(( LVS_DEFAULT_CAPACITY / 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
done
rpc_cmd bdev_malloc_delete "$malloc_name"
check_leftover_devices
}
# create lvs + lvol on top, verify lvol's parameters
function test_construct_lvol() {
# create an lvol store
@ -401,6 +435,7 @@ run_test "test_construct_lvs_nonexistent_bdev" test_construct_lvs_nonexistent_bd
run_test "test_construct_two_lvs_on_the_same_bdev" test_construct_two_lvs_on_the_same_bdev
run_test "test_construct_lvs_conflict_alias" test_construct_lvs_conflict_alias
run_test "test_construct_lvs_different_cluster_size" test_construct_lvs_different_cluster_size
run_test "test_construct_lvs_clear_methods" test_construct_lvs_clear_methods
run_test "test_construct_lvol" test_construct_lvol
run_test "test_construct_multi_lvols" test_construct_multi_lvols
run_test "test_construct_lvols_conflict_alias" test_construct_lvols_conflict_alias

View File

@ -28,7 +28,6 @@ function usage() {
551: 'delete_lvol_bdev',
552: 'bdev_lvol_delete_lvstore_with_clones',
553: 'unregister_lvol_bdev',
602: 'bdev_lvol_create_lvstore_with_all_clear_methods',
850: 'clear_method_none',
851: 'clear_method_unmap',
or

View File

@ -117,7 +117,6 @@ def case_message(func):
551: 'delete_lvol_bdev',
552: 'bdev_lvol_delete_lvstore_with_clones',
553: 'unregister_lvol_bdev',
602: 'bdev_lvol_create_lvstore_with_all_clear_methods',
# logical volume clear_method test
850: 'clear_method_none',
851: 'clear_method_unmap',
@ -539,43 +538,6 @@ class TestCases(object):
# - no other operation fails
return fail_count
@case_message
def test_case602(self):
"""
bdev_lvol_create_lvstore_with_all_clear_methods
Call bdev_lvol_create_lvstore with all options for clear methods.
"""
fail_count = 0
# Create malloc bdev
base_name = self.c.bdev_malloc_create(self.total_size,
self.block_size)
# Construct lvol store with clear method 'none'
lvol_uuid = self.c.bdev_lvol_create_lvstore(base_name, self.lvs_name, clear_method="none")
fail_count += self.c.check_bdev_lvol_get_lvstores(base_name, lvol_uuid)
fail_count += self.c.bdev_malloc_delete(base_name)
# Create malloc bdev
base_name = self.c.bdev_malloc_create(self.total_size,
self.block_size)
# Construct lvol store with clear method 'unmap'
lvol_uuid = self.c.bdev_lvol_create_lvstore(base_name, self.lvs_name, clear_method="unmap")
fail_count += self.c.check_bdev_lvol_get_lvstores(base_name, lvol_uuid)
fail_count += self.c.bdev_malloc_delete(base_name)
# Create malloc bdev
base_name = self.c.bdev_malloc_create(self.total_size,
self.block_size)
# Construct lvol store with clear method 'write_zeroes'
lvol_uuid = self.c.bdev_lvol_create_lvstore(base_name, self.lvs_name, clear_method="write_zeroes")
fail_count += self.c.check_bdev_lvol_get_lvstores(base_name, lvol_uuid)
fail_count += self.c.bdev_malloc_delete(base_name)
# Expected result:
# - construct lvol store return code != 0
# - Error code response printed to stdout
return fail_count
@case_message
def test_case850(self):
""""