create testcase for src OpenIPMI rpm python3-openipmi
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-openipmi软件包是否能够正确安装。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量
|
||||
SCRIPT_NAME="test_python3-openipmi_function_install"
|
||||
PACKAGE_NAME="python3-openipmi"
|
||||
|
||||
# 日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1" >&2
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} 2>/dev/null | grep -q ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
LOG_INFO "检查${PACKAGE_NAME}软件包是否已安装"
|
||||
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME}软件包已安装"
|
||||
return 0
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}软件包未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
LOG_INFO "安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包卸载成功"
|
||||
}
|
||||
|
||||
# 测试软件包功能
|
||||
test_package_function() {
|
||||
LOG_INFO "测试${PACKAGE_NAME}软件包功能"
|
||||
# 检查ipmitool命令是否存在
|
||||
which ipmitool >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "ipmitool命令不存在"
|
||||
|
||||
# 测试ipmitool基本命令
|
||||
ipmitool -V >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "ipmitool命令执行失败"
|
||||
LOG_INFO "ipmitool命令测试成功"
|
||||
|
||||
# 测试python3-openipmi模块
|
||||
python3 -c "import pyipmi; print("pyipmi module imported successfully")" 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "python3-openipmi模块导入失败"
|
||||
LOG_INFO "python3-openipmi模块测试成功"
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
LOG_INFO "开始测试${PACKAGE_NAME}软件包安装功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo
|
||||
|
||||
# 检查软件包是否已安装
|
||||
local was_installed=0
|
||||
check_package_installed
|
||||
if [ $? -eq 0 ]; then
|
||||
was_installed=1
|
||||
LOG_INFO "测试前${PACKAGE_NAME}软件包已安装,测试后保持安装状态"
|
||||
else
|
||||
was_installed=0
|
||||
LOG_INFO "测试前${PACKAGE_NAME}软件包未安装,测试后需要卸载"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${was_installed} -eq 0 ]; then
|
||||
install_package
|
||||
fi
|
||||
|
||||
# 测试软件包功能
|
||||
test_package_function
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "开始环境清理"
|
||||
if [ ${was_installed} -eq 0 ]; then
|
||||
uninstall_package
|
||||
else
|
||||
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "${PACKAGE_NAME}软件包安装功能测试完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试能否列出python3-openipmi软件包提供的可用模块或功能。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="python3-openipmi"
|
||||
MODULE_LIST_COMMAND="python3 -c \"import openipmi; print(dir(openipmi))\""
|
||||
INSTALLED_FLAG=0
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
dnf list available $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "检查系统是否已安装 $PACKAGE_NAME"
|
||||
rpm -q $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,开始安装"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 测试能否列出python3-openipmi软件包提供的可用模块或功能
|
||||
LOG_INFO "测试能否列出 $PACKAGE_NAME 软件包提供的可用模块或功能"
|
||||
eval $MODULE_LIST_COMMAND > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "列出 $PACKAGE_NAME 模块失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "保持 $PACKAGE_NAME 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-openipmi软件包是否能够被正确卸载。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出
|
||||
LOG_INFO() {
|
||||
echo -e "\033[1;34m[INFO]\033[0m $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[1;31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
dnf list available "$1" &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $1 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令参数是否存在
|
||||
check_command_option() {
|
||||
if ! $1 --help 2>&1 | grep -q "$2"; then
|
||||
LOG_ERROR "命令 $1 不支持参数 $2"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_installed() {
|
||||
rpm -q "$1" &> /dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 记录初始安装状态
|
||||
initial_installed=false
|
||||
|
||||
LOG_INFO "开始测试python3-openipmi软件包的卸载功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查python3-openipmi是否在yum源中"
|
||||
check_package_in_repo python3-openipmi
|
||||
|
||||
# 检查当前是否已安装
|
||||
LOG_INFO "检查python3-openipmi是否已安装"
|
||||
if check_installed python3-openipmi; then
|
||||
LOG_INFO "python3-openipmi已安装,测试结束后保持安装状态"
|
||||
initial_installed=true
|
||||
else
|
||||
LOG_INFO "python3-openipmi未安装,将进行安装测试"
|
||||
fi
|
||||
|
||||
# 如果未安装,则先安装
|
||||
if [ "$initial_installed" = false ]; then
|
||||
LOG_INFO "安装python3-openipmi软件包"
|
||||
dnf install -y python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "安装python3-openipmi失败"
|
||||
|
||||
# 验证安装
|
||||
LOG_INFO "验证python3-openipmi是否安装成功"
|
||||
check_installed python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "验证python3-openipmi安装失败"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-openipmi失败"
|
||||
|
||||
# 验证卸载
|
||||
LOG_INFO "验证python3-openipmi是否卸载成功"
|
||||
check_installed python3-openipmi
|
||||
CHECK_RESULT $? 1 0 "python3-openipmi卸载后仍然存在"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "恢复测试环境"
|
||||
if [ "$initial_installed" = true ]; then
|
||||
LOG_INFO "重新安装python3-openipmi以恢复原始状态"
|
||||
dnf install -y python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "恢复python3-openipmi安装失败"
|
||||
|
||||
# 验证恢复
|
||||
LOG_INFO "验证环境恢复状态"
|
||||
check_installed python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "环境恢复失败,python3-openipmi未正确安装"
|
||||
else
|
||||
LOG_INFO "测试环境已恢复,python3-openipmi保持未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "python3-openipmi卸载功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,97 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-openipmi软件包的版本信息能否正确查询。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-openipmi软件包
|
||||
LOG_INFO "检查是否已安装python3-openipmi软件包"
|
||||
rpm -q python3-openipmi > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-openipmi软件包已安装,标记为保持安装状态"
|
||||
KEEP_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-openipmi软件包未安装,标记为需要清理"
|
||||
KEEP_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-openipmi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-openipmi软件包"
|
||||
dnf list available python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到python3-openipmi软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-openipmi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-openipmi软件包"
|
||||
dnf install -y python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-openipmi软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装python3-openipmi软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "python3-openipmi软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试查询python3-openipmi软件包版本信息
|
||||
LOG_INFO "测试查询python3-openipmi软件包版本信息"
|
||||
rpm -q --queryformat="%{VERSION}-%{RELEASE}\n" python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "查询python3-openipmi软件包版本信息失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "查询python3-openipmi软件包版本信息失败"
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi > /dev/null 2>&1
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERSION=$(rpm -q --queryformat="%{VERSION}-%{RELEASE}\n" python3-openipmi 2>/dev/null)
|
||||
if [ -n "${VERSION}" ]; then
|
||||
LOG_INFO "python3-openipmi软件包版本信息为:${VERSION}"
|
||||
else
|
||||
LOG_ERROR "未获取到python3-openipmi软件包版本信息"
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi > /dev/null 2>&1
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-openipmi软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载python3-openipmi软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "环境清理完成,python3-openipmi软件包已卸载"
|
||||
else
|
||||
LOG_INFO "保持python3-openipmi软件包安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:python3-openipmi软件包的版本信息能正确查询"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user