diff --git a/test/lvol/basic.sh b/test/lvol/basic.sh index b38cb8bfc..3fe59c736 100755 --- a/test/lvol/basic.sh +++ b/test/lvol/basic.sh @@ -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 diff --git a/test/lvol/lvol.sh b/test/lvol/lvol.sh index 9a2f4dc42..da726cd20 100755 --- a/test/lvol/lvol.sh +++ b/test/lvol/lvol.sh @@ -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 diff --git a/test/lvol/test_cases.py b/test/lvol/test_cases.py index b9aba7fcb..a79dc9975 100644 --- a/test/lvol/test_cases.py +++ b/test/lvol/test_cases.py @@ -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): """"