diff --git a/test/lvol/lvol.sh b/test/lvol/lvol.sh index d1db2d21a..644d4bb86 100755 --- a/test/lvol/lvol.sh +++ b/test/lvol/lvol.sh @@ -21,8 +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: - 200: 'resize_logical_volume_nonexistent_logical_volume', - 201: 'resize_logical_volume_with_size_out_of_range', 250: 'bdev_lvol_delete_lvstore_positive', 251: 'bdev_lvol_delete_lvstore_use_name_positive', 252: 'bdev_lvol_delete_lvstore_with_lvol_bdev_positive', diff --git a/test/lvol/resize.sh b/test/lvol/resize.sh index 677880ef6..916cf2d10 100755 --- a/test/lvol/resize.sh +++ b/test/lvol/resize.sh @@ -53,12 +53,45 @@ function test_resize_lvol() { rpc_cmd bdev_malloc_delete "$malloc_name" } +# negative test for resizing a logical volume +# call bdev_lvol_resize with logical volume which does not exist in configuration +# call bdev_lvol_resize with size argument bigger than size of base bdev +function test_resize_lvol_negative() { + # 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) + + # create an lvol on top + lvol_uuid=$(rpc_cmd bdev_lvol_create -u "$lvs_uuid" lvol_test "$LVS_DEFAULT_CAPACITY_MB") + + # try to resize another, inexistent lvol + dummy_uuid="00000000-0000-0000-0000-000000000000" + rpc_cmd bdev_lvol_resize "$dummy_uuid" 0 && false + # just make sure the size of the real lvol did not change + lvol=$(rpc_cmd bdev_get_bdevs -b "$lvol_uuid") + [ "$(jq -r '.[0].num_blocks' <<< "$lvol")" = "$(( LVS_DEFAULT_CAPACITY / MALLOC_BS ))" ] + + # try to resize an lvol to a size bigger than lvs + rpc_cmd bdev_lvol_resize "$lvol_uuid" "$MALLOC_SIZE_MB" && false + # just make sure the size of the real lvol did not change + lvol=$(rpc_cmd bdev_get_bdevs -b "$lvol_uuid") + [ "$(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 + 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 +run_test "test_resize_lvol_negative" test_resize_lvol_negative trap - SIGINT SIGTERM EXIT killprocess $spdk_pid diff --git a/test/lvol/test_cases.py b/test/lvol/test_cases.py index fbcf259e2..d9e7697d3 100644 --- a/test/lvol/test_cases.py +++ b/test/lvol/test_cases.py @@ -111,9 +111,6 @@ def test_counter(): def case_message(func): def inner(*args, **kwargs): test_name = { - # resize lvol store - negative tests - 200: 'resize_logical_volume_nonexistent_logical_volume', - 201: 'resize_logical_volume_with_size_out_of_range', # bdev_lvol_delete_lvstore - positive tests 250: 'bdev_lvol_delete_lvstore_positive', 251: 'bdev_lvol_delete_lvstore_use_name_positive', @@ -297,66 +294,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_case200(self): - """ - resize_logical_volume_nonexistent_logical_volume - - Negative test for resizing a logical_volume. - Call bdev_lvol_resize with logical volume which does not - exist in configuration. - """ - fail_count = 0 - # Try resize lvol bdev on logical volume which does not exist - if self.c.bdev_lvol_resize(self._gen_lvb_uuid(), 16) == 0: - fail_count += 1 - - # Expected result: - # - return code != 0 - # - Error code: ENODEV ("No such device") response printed to stdout - return fail_count - - @case_message - def test_case201(self): - """ - resize_logical_volume_with_size_out_of_range - - Negative test for resizing a logical volume. - Call resize_lvol_store with size argument bigger than size of base bdev. - """ - # Create malloc bdev - base_name = self.c.bdev_malloc_create(self.total_size, - self.block_size) - # Construct lvol store on created malloc bdev - 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 one quarter of size malloc bdev - lvs_size = self.get_lvs_size() - uuid_bdev = self.c.bdev_lvol_create(uuid_store, - self.lbd_name, - lvs_size) - fail_count += self.c.check_bdev_get_bdevs_methods(uuid_bdev, - lvs_size) - # Try bdev_lvol_resize on correct lvs_uuid and size is - # equal to size malloc bdev + 1MiB; this call should fail - if self.c.bdev_lvol_resize(uuid_bdev, self.total_size + 1) == 0: - fail_count += 1 - - self.c.bdev_lvol_delete(uuid_bdev) - self.c.bdev_lvol_delete_lvstore(uuid_store) - self.c.bdev_malloc_delete(base_name) - - # Expected result: - # - bdev_lvol_resize call return code != 0 - # - Error code: ENODEV ("Not enough free clusters left on lvol store") - # response printed to stdout - # - no other operation fails - return fail_count - @case_message def test_case250(self): """