Commit eb33c9a6 authored by Darek Stojaczyk's avatar Darek Stojaczyk Committed by Tomasz Zawadzki
Browse files

test/lvol: rewrite construct_lvol_store_with_all_clear_methods to bash



Change-Id: Iaafa521f420d677834f01fd13f56b3aa9e9cf49d
Signed-off-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/709


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarMichal Berger <michalx.berger@intel.com>
parent a317fcca
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -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
+0 −1
Original line number Diff line number Diff line
@@ -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
+0 −38
Original line number Diff line number Diff line
@@ -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):
        """"