Merge pull request #475 from mmichal10/fix-ioclass-config

Return error when modifying default ioclass rule
This commit is contained in:
Robert Baldyga 2021-03-19 18:15:21 +01:00 committed by GitHub
commit e321497ecc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 7 deletions

View File

@ -135,9 +135,17 @@ static int _ocf_mngt_io_class_configure(ocf_cache_t cache,
if (part_id == PARTITION_DEFAULT) {
/* Special behavior for default partition */
if (env_strncmp(name, OCF_IO_CLASS_NAME_MAX,
dest_part->config->name, OCF_IO_CLASS_NAME_MAX)) {
ocf_cache_log(cache, log_err,
"Can't change classification rule of the default IO class"
" [ ERROR ]\n");
return -OCF_ERR_INVAL;
}
/* Try set partition size */
if (_ocf_mngt_set_partition_size(cache, part_id, min, max)) {
ocf_cache_log(cache, log_info,
ocf_cache_log(cache, log_err,
"Setting IO class size, id: %u, name: '%s', max size: %u%%"
" [ ERROR ]\n", part_id, dest_part->config->name, max);
return -OCF_ERR_INVAL;
@ -161,7 +169,7 @@ static int _ocf_mngt_io_class_configure(ocf_cache_t cache,
/* Try set partition size */
if (_ocf_mngt_set_partition_size(cache, part_id, min, max)) {
ocf_cache_log(cache, log_info,
ocf_cache_log(cache, log_err,
"Setting IO class size, id: %u, name: '%s', max size %u%%"
"[ ERROR ]\n", part_id, dest_part->config->name, max);
return -OCF_ERR_INVAL;

View File

@ -146,6 +146,11 @@ class UnitTestsSourcesGenerator(object):
wrap_file_path = wrap_file_path + "_generated_wraps.c"
return wrap_file_path
def is_env_function(self, name):
prefixes = ["env", "bug", "memcpy", "memset", "memcmp", "strnlen", "strncmp", "strncpy"]
return list(filter(name.startswith, prefixes)) != []
def prepare_autowraps(self, test_file_path, preprocessed_file_path):
functions_to_wrap = self.get_functions_calls(
self.get_sources_to_test_repo() + test_file_path)
@ -160,10 +165,7 @@ class UnitTestsSourcesGenerator(object):
with open(preprocessed_file_path) as f:
code = f.readlines()
for function in functions_to_wrap:
if function.startswith("env_") or function.startswith("bug") \
or function.startswith("memcpy"):
# added memcpy function to list of ignored functions
# because this is macro
if self.is_env_function(function):
continue
for tag in tags_list:
if function in tag:

View File

@ -95,7 +95,7 @@ static inline void setup_valid_config(struct ocf_mngt_io_class_config *cfg,
int i;
for (i = 0; i < OCF_IO_CLASS_MAX; i++) {
cfg[i].class_id = i;
cfg[i].name = remove ? NULL : "test_io_class_name" ;
cfg[i].name = remove ? NULL : i == 0 ? "unclassified" :"test_io_class_name" ;
cfg[i].prio = i;
cfg[i].cache_mode = ocf_cache_mode_pt;
cfg[i].max_size = 20*i;
@ -161,6 +161,8 @@ static void ocf_mngt_io_classes_configure_test02(void **state)
cache->user_parts[i].config =
test_malloc(sizeof(struct ocf_user_part_config));
}
strcpy(cache->user_parts[0].config->name, "unclassified");
cache->device = 1;
setup_valid_config(cfg.config, false);