Merge pull request #1177 from pdebski21/test_start_neg_cli_flags
Test start standby cache with mutually exclusive parameters
This commit is contained in:
commit
41e12975f4
@ -135,6 +135,16 @@ operation_forbiden_in_standby = [
|
|||||||
r"The operation is not permited while the cache is in the standby mode"
|
r"The operation is not permited while the cache is in the standby mode"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
mutually_exclusive_params_init = [
|
||||||
|
r"Can\'t use \'load\' and \'init\' options simultaneously\n"
|
||||||
|
r"Error during options handling"
|
||||||
|
]
|
||||||
|
|
||||||
|
mutually_exclusive_params_load = [
|
||||||
|
r"Use of \'load\' with \'force\', \'cache-id\' or \'cache-line-size\' simultaneously is "
|
||||||
|
r"forbidden."
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def check_stderr_msg(output: Output, expected_messages):
|
def check_stderr_msg(output: Output, expected_messages):
|
||||||
return __check_string_msg(output.stderr, expected_messages)
|
return __check_string_msg(output.stderr, expected_messages)
|
||||||
|
@ -15,6 +15,8 @@ from api.cas.cli_messages import (
|
|||||||
missing_param,
|
missing_param,
|
||||||
disallowed_param,
|
disallowed_param,
|
||||||
operation_forbiden_in_standby,
|
operation_forbiden_in_standby,
|
||||||
|
mutually_exclusive_params_init,
|
||||||
|
mutually_exclusive_params_load,
|
||||||
)
|
)
|
||||||
from api.cas.cache_config import CacheLineSize
|
from api.cas.cache_config import CacheLineSize
|
||||||
from api.cas import cli
|
from api.cas import cli
|
||||||
@ -242,3 +244,56 @@ def test_standby_neg_cli_management():
|
|||||||
with TestRun.step("Stop the standby instance"):
|
with TestRun.step("Stop the standby instance"):
|
||||||
TestRun.executor.run(f"rm -rf {ioclass_config_path}")
|
TestRun.executor.run(f"rm -rf {ioclass_config_path}")
|
||||||
cache.stop()
|
cache.stop()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.nand, DiskType.optane]))
|
||||||
|
def test_start_neg_cli_flags():
|
||||||
|
"""
|
||||||
|
title: Blocking standby start command with mutually exclusive flags
|
||||||
|
description: |
|
||||||
|
Try executing the standby start command with different combinations of mutually
|
||||||
|
exclusive flags.
|
||||||
|
pass_criteria:
|
||||||
|
- The command execution is unsuccessful for commands with mutually exclusive flags
|
||||||
|
- A proper error message is displayed
|
||||||
|
"""
|
||||||
|
|
||||||
|
with TestRun.step("Prepare the device for the cache."):
|
||||||
|
cache_device = TestRun.disks["cache"]
|
||||||
|
cache_device.create_partitions([Size(500, Unit.MebiByte)])
|
||||||
|
cache_device = cache_device.partitions[0]
|
||||||
|
cache_id = 1
|
||||||
|
cache_line_size = 32
|
||||||
|
|
||||||
|
with TestRun.step("Try to start standby cache with mutually exclusive parameters"):
|
||||||
|
init_required_params = f' --cache-device {cache_device.path}' \
|
||||||
|
f' --cache-id {cache_id}' \
|
||||||
|
f' --cache-line-size {cache_line_size}'
|
||||||
|
|
||||||
|
mutually_exclusive_cmd_init = f"{casadm_bin} --standby --init --load" \
|
||||||
|
f" {init_required_params}"
|
||||||
|
output = TestRun.executor.run_expect_fail(mutually_exclusive_cmd_init)
|
||||||
|
if not check_stderr_msg(output, mutually_exclusive_params_init):
|
||||||
|
TestRun.LOGGER.error(
|
||||||
|
f'Expected error message in format '
|
||||||
|
f'"{mutually_exclusive_params_init[0]}"'
|
||||||
|
f'Got "{output.stderr}" instead.'
|
||||||
|
)
|
||||||
|
|
||||||
|
mutually_exclusive_cmd_load = [
|
||||||
|
f"{casadm_bin} --standby --load --cache-device {cache_device.path}"
|
||||||
|
f" --cache-id {cache_id}",
|
||||||
|
f"{casadm_bin} --standby --load --cache-device {cache_device.path}"
|
||||||
|
f" --cache-line-size {cache_line_size}",
|
||||||
|
f"{casadm_bin} --standby --load --cache-device {cache_device.path}"
|
||||||
|
f" --force"
|
||||||
|
]
|
||||||
|
|
||||||
|
for cmd in mutually_exclusive_cmd_load:
|
||||||
|
output = TestRun.executor.run_expect_fail(cmd)
|
||||||
|
if not check_stderr_msg(output, mutually_exclusive_params_load):
|
||||||
|
TestRun.LOGGER.error(
|
||||||
|
f'Expected error message in format '
|
||||||
|
f'"{mutually_exclusive_params_load[0]}"'
|
||||||
|
f'Got "{output.stderr}" instead.'
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user