open-cas-linux/test/smoke_test/cas_options
Slawomir Jankowski 031a37a041 Remove unused function from smoke tests
Signed-off-by: Slawomir Jankowski <slawomir.jankowski@intel.com>
2020-12-22 16:29:06 +01:00

387 lines
15 KiB
Bash

#!/bin/bash
#
# Copyright(c) 2012-2020 Intel Corporation
# SPDX-License-Identifier: BSD-3-Clause-Clear
#
# Whenever adding new options (required or optional), add them to the variable below.
# Every option might be mentioned more than once - it doesn't really matter at this point
export ALL_OPTIONS="
CACHE_ID_OPTION CORE_ID_OPTION NEGATIVE_TEST_OPTION SILENT_COMMAND_OPTION DONT_FAIL_ON_ERROR_OPTION
CACHE_DEVICE_OPTION
CACHE_LOAD_METADATA_OPTION CACHE_FORCE_OPTION
CACHE_DONT_FLUSH_DATA_OPTION
CORE_DEVICE_OPTION
NUMBER_OF_CACHE_PARTITIONS NUMBER_OF_CORE_PARTITIONS MAKE_FILE_SYSTEM
PARTITION_ID_OPTION PRIORITY_OPTION MIN_SIZE_OPTION MAX_SIZE_OPTION CLEANING_POLICY_OPTION
CACHE_ID_OPTION CORE_ID_OPTION MOUNTPOINT_ID_OPTION
TARGET_DEVICE_OPTION PARTITION_IDS_OPTION PARTITION_SIZE_OPTION PARTITION_ID_OPTION PARTITIONS_AMOUNT_OPTION
CLEAN_POL_NS_OPTION WAKE_UP_OPTION STALE_TIME_OPTION FLUSH_BUFFERS_OPTION ACTIVITY_THRESH_OPTION
PROMO_POL_NS_OPTION PROMO_POL_VALUE THRESHOLD_OPTION TRIGGER_OPTION THRESHOLD_VALUE TRIGGER_VALUE THRESHOLD_VALUE_ERROR TRIGGER_VALUE_ERROR
TARGET_DEVICE_OPTION FILESYSTEM_TYPE
IO_CLASS_ID IO_CLASS_PRIORITY IO_CLASS_SIZE_MIN IO_CLASS_SIZE_MAX IO_CLASS_NAME IO_CLASS_CACHE_MODE
CHECK_IS_NVME_ATOMIC TURN_OFF_NVME_DEVICE TURN_ON_NVME_DEVICE
DEVICE_ID_OPTION DEMANDED_STATE_OPTION
STAT_UNIT_OPTION STAT_NAME_OPTION
STORE_CONFIG_OPTION
CLEAN_POL_OPTION
PROMO_POL_OPTION
KERNEL_VER_OPTION KERNEL_MAJOR_OPTION
FIO_MAJOR_OPTION FIO_MINOR_OPTION
"
# Specify ONLY required options here. The name of the variable should start with
# uppercase function's name + "_REQUIRED_OPTIONS".
export START_CACHE_REQUIRED_OPTIONS="CACHE_ID_OPTION CACHE_DEVICE_OPTION"
export STOP_CACHE_REQUIRED_OPTIONS="CACHE_ID_OPTION"
export ADD_CORE_REQUIRED_OPTIONS="CACHE_ID_OPTION CORE_DEVICE_OPTION"
export TRY_ADD_CORE_REQUIRED_OPTIONS="CACHE_ID_OPTION CORE_ID_OPTION CORE_DEVICE_OPTION"
export CHECK_DEVICE_STATE_REQUIRED_OPTIONS="DEVICE_ID_OPTION DEMANDED_STATE_OPTION"
export REMOVE_CORE_REQUIRED_OPTIONS="CACHE_ID_OPTION CORE_ID_OPTION"
export REMOVE_PARTITIONS_REQUIRED_OPTIONS="TARGET_DEVICE_OPTION"
export FLUSH_CACHE_REQUIRED_OPTIONS="CACHE_ID_OPTION"
export FLUSH_CORE_REQUIRED_OPTIONS="CACHE_ID_OPTION CORE_ID_OPTION"
export SET_CLEANING_POLICY_REQUIRED_OPTIONS="CACHE_ID_OPTION CLEAN_POL_OPTION"
export GET_CLEANING_POLICY_REQUIRED_OPTIONS="CACHE_ID_OPTION"
export SET_PROMOTION_POLICY_REQUIRED_OPTIONS="CACHE_ID_OPTION PROMO_POL_OPTION"
export CHECK_PROMOTION_POLICY_REQUIRED_OPTIONS="CACHE_ID_OPTION PROMO_POL_OPTION"
export SET_FLUSH_PARAMS_REQUIRED_OPTIONS="CACHE_ID_OPTION CLEAN_POL_NS_OPTION"
export GET_FLUSH_PARAMS_REQUIRED_OPTIONS="CACHE_ID_OPTION CLEAN_POL_NS_OPTION"
export SET_PROMOTION_PARAMS_REQUIRED_OPTIONS="CACHE_ID_OPTION PROMO_POL_NS_OPTION"
export CHECK_PROMOTION_PARAMS_REQUIRED_OPTIONS="CACHE_ID_OPTION PROMO_POL_NS_OPTION"
export CHECK_IS_NVME_ATOMIC_REQUIRED_OPTIONS="DEVICE_OPTION"
export CREATE_PARTITION_REQUIRED_OPTIONS="CACHE_ID_OPTION PARTITION_ID_OPTION PRIORITY_OPTION MIN_SIZE_OPTION MAX_SIZE_OPTION CLEANING_POLICY_OPTION"
export MOUNT_CACHE_REQUIRED_OPTIONS="CACHE_ID_OPTION CORE_ID_OPTION"
export MAKE_PRIMARY_PARTITIONS_REQUIRED_OPTIONS="TARGET_DEVICE_OPTION PARTITION_IDS_OPTION PARTITION_SIZE_OPTION"
export MAKE_EXTENDED_PARTIION_REQUIRED_OPTIONS="TARGET_DEVICE_OPTION PARTITION_ID_OPTION PARTITION_SIZE_OPTION"
export MAKE_LOGICAL_PARTIIONS_REQUIRED_OPTIONS="TARGET_DEVICE_OPTION PARTITIONS_AMOUNT_OPTION PARTITION_SIZE_OPTION"
export MAKE_FILESYSTEM_REQUIRED_OPTIONS="TARGET_DEVICE_OPTION FILESYSTEM_TYPE"
export TURN_OFF_DEVICE_REQUIRED_OPTIONS="CACHE_DEVICE_OPTION"
export TURN_ON_DEVICE_REQUIRED_OPTIONS="CACHE_DEVICE_OPTION"
export TURN_OFF_NVME_DEVICE_REQUIRED_OPTIONS="CACHE_DEVICE_OPTION"
export TURN_ON_NVME_DEVICE_REQUIRED_OPTIONS="CACHE_DEVICE_OPTION"
export START_DUAL_LEVEL_CACHE_REQUIRED_OPTIONS="CACHE_ID_OPTION CACHE_DEVICE_OPTION"
export START_CACHE_REQUIRED_OPTIONS="CACHE_ID_OPTION CACHE_DEVICE_OPTION"
export IO_CLASS_LIST_REQUIRED_OPTIONS="CACHE_ID_OPTION"
export IO_CLASS_LOAD_REQUIRED_OPTIONS="CACHE_ID_OPTION CSV_FILE"
export IO_CLASS_STATS_CSV_REQUIRED_OPTIONS="CACHE_ID_OPTION CSV_FILE"
export IO_CLASS_EXT_ADD_REQUIRED_OPTIONS="CACHE_ID_OPTION IO_CLASS_ID IO_CLASS_PRIORITY IO_CLASS_SIZE_MIN IO_CLASS_SIZE_MAX IO_CLASS_NAME IO_CLASS_CACHE_MODE"
export IO_CLASS_EXT_MODIFY_REQUIRED_OPTIONS="CACHE_ID_OPTION IO_CLASS_ID"
export IO_CLASS_EXT_REMOVE_REQUIRED_OPTIONS="CACHE_ID_OPTION IO_CLASS_ID"
export STATS_REQUIRED_OPTIONS="CACHE_ID_OPTION"
export GET_STATS_VALUE_REQUIRED_OPTIONS="CACHE_ID_OPTION STAT_NAME_OPTION"
export CHECK_KERNEL_VER_REQUIRED_OPTIONS="KERNEL_VER_OPTION KERNEL_MAJOR_OPTION"
export CHECK_FIO_VER_REQUIRED_OPTIONS="FIO_MAJOR_OPTION FIO_MINOR_OPTION"
# Clearing the variables below is not really needed, but it makes the whole
# thing much more clear. Unlike the REQUIRED_OPTIONS, we specify all
# possible parameters here for every function.
# Please note that some options are shared between many functions, so
# make sure the option is set to a correct value before invoking one
# function after another.
############################################################
# OPTIONS SHARED BETWEEN ALL FUNCTIONS #
############################################################
NEGATIVE_TEST_OPTION=""
SILENT_COMMAND_OPTION=""
DONT_FAIL_ON_ERROR_OPTION=""
############################################################
# CLEAR CONFIG #
############################################################
STORE_CONFIG_OPTION=""
############################################################
# START CACHE #
############################################################
CACHE_ID_OPTION=""
CACHE_DEVICE_OPTION=""
# Optional
CACHE_FORCE_OPTION=""
CACHE_LOAD_METADATA_OPTION=""
SEQ_CUTOFF_SIZE=""
############################################################
# STOP CACHE #
############################################################
CACHE_ID_OPTION=""
# Optional
CACHE_DONT_FLUSH_DATA_OPTION=""
############################################################
# ADD CORE #
############################################################
CACHE_ID_OPTION=""
CORE_DEVICE_OPTION=""
############################################################
# REMOVE CORE #
############################################################
CACHE_ID_OPTION=""
CORE_ID_OPTION=""
############################################################
# CHECK DEVICE STATE #
############################################################
DEVICE_ID_OPTION=""
DEMANDED_STATE_OPTION=""
############################################################
# FORMAT NVME #
############################################################
NVME_FORMAT_MODE_OPTION=""
DEVICE_OPTION=""
NVME_FORMAT_FORCE_OPTION=""
############################################################
# CHECK_IS_NVME_ATOMIC #
############################################################
DEVICE_OPTION=""
############################################################
# INIT #
############################################################
NUMBER_OF_CACHE_PARTITIONS=""
NUMBER_OF_CORE_PARTITIONS=""
MAKE_FILE_SYSTEM=""
CACHE_FORCE_OPTION=""
CACHE_MODE_OPTION=""
CACHE_LOAD_METADATA_OPTION=""
############################################################
# ITERATION #
############################################################
NUMBER_OF_CACHE_PARTITIONS=""
NUMBER_OF_CORE_PARTITIONS=""
MAKE_FILE_SYSTEM=""
CACHE_FORCE_OPTION=""
CACHE_MODE_OPTION=""
CACHE_LOAD_METADATA_OPTION=""
############################################################
# DEINIT #
############################################################
NUMBER_OF_CACHE_PARTITIONS=""
NUMBER_OF_CORE_PARTITIONS=""
############################################################
# FLUSH CACHE #
############################################################
CACHE_ID_OPTION=""
############################################################
# FLUSH CORE #
############################################################
CACHE_ID_OPTION=""
CORE_ID_OPTION=""
############################################################
# MOUNT CACHE #
############################################################
CACHE_ID_OPTION=""
CORE_ID_OPTION=""
############################################################
# MAKE PRIMARY PARTITIONS #
############################################################
TARGET_DEVICE_OPTION=""
PARTITION_IDS_OPTION=""
PARTITION_SIZE_OPTION=""
############################################################
# MAKE EXTENDED PARTITION #
############################################################
TARGET_DEVICE_OPTION=""
PARTITION_ID_OPTION=""
PARTITION_SIZE_OPTION=""
############################################################
# MAKE LOGICAL PARTITIONS #
############################################################
TARGET_DEVICE_OPTION=""
PARTITION_SIZE_OPTION=""
PARTITIONS_AMOUNT_OPTION=""
############################################################
# MAKE FILESYSTEM #
############################################################
TARGET_DEVICE_OPTION=""
FILESYSTEM_TYPE=""
############################################################
# IO CLASS LIST #
############################################################
CACHE_ID_OPTION=""
# Optional
CSV_FILE=""
############################################################
# IO CLASS LOAD #
############################################################
CACHE_ID_OPTION=""
CSV_FILE=""
############################################################
# IO CLASS EXT ADD #
############################################################
CACHE_ID_OPTION=""
IO_CLASS_ID=""
IO_CLASS_PRIORITY=""
IO_CLASS_SIZE_MIN=""
IO_CLASS_SIZE_MAX=""
IO_CLASS_NAME=""
IO_CLASS_CACHE_MODE=""
############################################################
# IO CLASS EXT MODIFY #
############################################################
CACHE_ID_OPTION=""
IO_CLASS_ID=""
#Optional
IO_CLASS_PRIORITY=""
IO_CLASS_SIZE_MIN=""
IO_CLASS_SIZE_MAX=""
IO_CLASS_NAME=""
IO_CLASS_CACHE_MODE=""
############################################################
# IO CLASS EXT REMOVE #
############################################################
CACHE_ID_OPTION=""
IO_CLASS_ID=""
############################################################
# IO CLASS STATS CSV #
############################################################
CACHE_ID_OPTION=""
CSV_FILE=""
############################################################
# STATS #
############################################################
CACHE_ID_OPTION=""
############################################################
# GET_STATS_VALUE #
############################################################
DEVICE_ID_OPTION=""
STAT_NAME_OPTION=""
#Optional
STAT_UNIT_OPTION=""
CORE_ID_OPTION=""
IO_CLASS_ID=""
############################################################
# SET_CLEANING_POLICY #
############################################################
DEVICE_ID_OPTION=""
CLEAN_POLICY_OPTION=""
############################################################
# GET_CLEANING_POLICY #
############################################################
DEVICE_ID_OPTION=""
############################################################
# SET_FLUSH_PARAMS #
############################################################
DEVICE_ID_OPTION=""
CLEAN_POLICY_NS_OPTION=""
#Optional
WAKE_UP_OPTION=""
STALE_TIME_OPTION=""
FLUSH_BUFFERS_OPTION=""
ACTIVITY_THRESH_OPTION=""
############################################################
# GET_FLUSH_PARAMS #
############################################################
DEVICE_ID_OPTION=""
CLEAN_POLICY_NS_OPTION=""
############################################################
# SET_PROMOTION_POLICY #
############################################################
DEVICE_ID_OPTION=""
PROMO_POL_OPTION=""
############################################################
# CHECK_PROMOTION_POLICY #
############################################################
DEVICE_ID_OPTION=""
PROMO_POL_OPTION=""
############################################################
# SET_PROMOTION_PARAMS #
############################################################
DEVICE_ID_OPTION=""
PROMO_POL_NS_OPTION=""
#Optional
THRESHOLD_OPTION=""
TRIGGER_OPTION=""
############################################################
# CHECK_PROMOTION_PARAMS #
############################################################
DEVICE_ID_OPTION=""
PROMO_POL_NS_OPTION=""
#Optional
THRESHOLD_OPTION=""
TRIGGER_OPTION=""
############################################################
# CHECK KERNEL VER #
############################################################
KERNEL_VER_OPTION=""
KERNEL_MAJOR_OPTION=""
############################################################
# CHECK FIO VER #
############################################################
FIO_MAJOR_OPTION=""
FIO_MINOR_OPTION=""
############################################################
# FUNCTIONS #
############################################################
# This function is what exports and sets all the options above.
# All options should be automatically cleared after using them in API.
clear_options() {
for OPTION in $ALL_OPTIONS ; do
export $OPTION=""
done
}
# This should be used in all API/system functions to check if all required
# options are set. It doesn't check the syntax at all - only if option is set.
check_options() {
FUNCTION_NAME=$(echo $1 | tr [:lower:] [:upper:])
OPTIONS_NAME="${FUNCTION_NAME}_REQUIRED_OPTIONS"
OPTIONS_TO_CHECK="${!OPTIONS_NAME}"
for OPTION in $OPTIONS_TO_CHECK ; do
if [ -z "${!OPTION}" ] ; then
echo -n "Required option $OPTION is not set "
echo_red "[ERROR]"
end_test 1
fi
done
}
export -f clear_options
export -f check_options
export CAS_OPTIONS_LOADED="1"
echo "--- Open CAS options library loaded ---"