Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -9,18 +9,6 @@
|
||||
{
|
||||
"name": "test_google-noto-serif-vf-fonts_function_remove",
|
||||
"desc": "测试软件包可以正常卸载"
|
||||
},
|
||||
{
|
||||
"name": "test_google-noto-serif-vf-fonts_function_check_installed",
|
||||
"desc": "测试软件包已正确安装到系统"
|
||||
},
|
||||
{
|
||||
"name": "test_google-noto-serif-vf-fonts_function_font_list",
|
||||
"desc": "测试软件包提供的字体文件存在于字体目录"
|
||||
},
|
||||
{
|
||||
"name": "test_google-noto-serif-vf-fonts_function_font_usage",
|
||||
"desc": "测试系统可以识别并使用该字体进行简单渲染"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/gtkspell3/gtkspell3-help",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_gtkspell3-help_function_spellcheck",
|
||||
"desc": "Test spellcheck functionality"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/jss/jss-help",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_jss-help_function_basic",
|
||||
"desc": "Test basic functionality of jss-help"
|
||||
},
|
||||
{
|
||||
"name": "test_jss-help_function_help_cmd",
|
||||
"desc": "Test help command functionality"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,18 +5,6 @@
|
||||
{
|
||||
"name": "test_libnozzle1-devel_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_libnozzle1-devel_function_config",
|
||||
"desc": "Test package configuration"
|
||||
},
|
||||
{
|
||||
"name": "test_libnozzle1-devel_function_api",
|
||||
"desc": "Test API functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_libnozzle1-devel_function_perf",
|
||||
"desc": "Test performance metrics"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,22 +6,6 @@
|
||||
"name": "test_nodejs-lodash-inrange_function_install",
|
||||
"desc": "测试软件包nodejs-lodash-inrange的安装功能是否正常"
|
||||
},
|
||||
{
|
||||
"name": "test_nodejs-lodash-inrange_function_require",
|
||||
"desc": "测试在Node.js环境中能否正确引入lodash.inrange模块"
|
||||
},
|
||||
{
|
||||
"name": "test_nodejs-lodash-inrange_function_inrange_basic",
|
||||
"desc": "测试inrange函数的基本功能,判断数值是否在指定范围内"
|
||||
},
|
||||
{
|
||||
"name": "test_nodejs-lodash-inrange_function_inrange_exclusive",
|
||||
"desc": "测试inrange函数在排除边界值时的行为"
|
||||
},
|
||||
{
|
||||
"name": "test_nodejs-lodash-inrange_function_inrange_negative",
|
||||
"desc": "测试inrange函数处理负数范围的功能"
|
||||
},
|
||||
{
|
||||
"name": "test_nodejs-lodash-inrange_function_uninstall",
|
||||
"desc": "测试软件包nodejs-lodash-inrange的卸载功能是否正常"
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/perl-Encode-Locale/perl-Encode-Locale-help",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_perl-Encode-Locale-help_function_package_install",
|
||||
"desc": "测试 perl-Encode-Locale-help 软件包是否能成功安装。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-Encode-Locale-help_function_package_remove",
|
||||
"desc": "测试 perl-Encode-Locale-help 软件包是否能被正确卸载。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-Encode-Locale-help_function_help_content",
|
||||
"desc": "测试软件包提供的帮助文档内容是否可访问且非空。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-Encode-Locale-help_function_version_check",
|
||||
"desc": "测试能够查询并验证软件包的版本信息。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,10 +6,6 @@
|
||||
"name": "test_spice-webdavd_upgrade_package",
|
||||
"desc": "测试升级spice-webdavd软件包",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_spice-webdavd_function_install",
|
||||
"desc": "测试安装spice-webdavd软件包"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/python-pynacl/python3-pynacl",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_python3-pynacl_function_install",
|
||||
"desc": "测试python3-pynacl软件包是否能够成功安装"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-pynacl_function_import",
|
||||
"desc": "测试能否成功导入nacl库的公共模块"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-pynacl_function_secretbox",
|
||||
"desc": "测试使用SecretBox进行对称加密和解密"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-pynacl_function_sign",
|
||||
"desc": "测试使用SigningKey进行签名和验签"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-pynacl_function_box",
|
||||
"desc": "测试使用Box进行公钥加密和解密"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-pynacl_function_uninstall",
|
||||
"desc": "测试python3-pynacl软件包是否能够成功卸载"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,22 +5,6 @@
|
||||
{
|
||||
"name": "test_rsyslog-mmnormalize_function_install",
|
||||
"desc": "测试rsyslog-mmnormalize软件包能够被正确安装。"
|
||||
},
|
||||
{
|
||||
"name": "test_rsyslog-mmnormalize_function_uninstall",
|
||||
"desc": "测试rsyslog-mmnormalize软件包能够被正确卸载。"
|
||||
},
|
||||
{
|
||||
"name": "test_rsyslog-mmnormalize_function_check_installed",
|
||||
"desc": "测试rsyslog-mmnormalize软件包是否已成功安装并检查其版本信息。"
|
||||
},
|
||||
{
|
||||
"name": "test_rsyslog-mmnormalize_function_basic_usage",
|
||||
"desc": "测试rsyslog-mmnormalize模块的基本功能,验证其能否通过配置文件正确解析日志。"
|
||||
},
|
||||
{
|
||||
"name": "test_rsyslog-mmnormalize_function_config_load",
|
||||
"desc": "测试rsyslog-mmnormalize模块能够正确加载自定义的规则文件。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-a/texlive-archaeologie",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-archaeologie_function_install",
|
||||
"desc": "Test package installation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,10 +7,6 @@
|
||||
"desc": "测试 texlive-flacards-doc 软件包的安装功能",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-flacards-doc_function_install",
|
||||
"desc": "测试 texlive-flacards-doc 软件包的安装功能"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-flacards-doc_function_uninstall",
|
||||
"desc": "测试 texlive-flacards-doc 软件包的卸载功能"
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-n/texlive-latex-notes-zh-cn-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-latex-notes-zh-cn-doc_function_basic",
|
||||
"desc": "Basic functionality test"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,18 +5,6 @@
|
||||
{
|
||||
"name": "test_texlive-pst-diffraction_function_install",
|
||||
"desc": "Test installation of texlive-pst-diffraction package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-diffraction_function_remove",
|
||||
"desc": "Test removal of texlive-pst-diffraction package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-diffraction_function_usage",
|
||||
"desc": "Test basic LaTeX compilation with package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-diffraction_function_help",
|
||||
"desc": "Test package documentation availability"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/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-03-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包提供的字体文件存在于字体目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证google-noto-serif-vf-fonts软件包的字体文件是否存在于字体目录"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在google-noto-serif-vf-fonts软件包"
|
||||
if ! dnf list available google-noto-serif-vf-fonts &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到google-noto-serif-vf-fonts软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2:检查系统是否已安装google-noto-serif-vf-fonts"
|
||||
if rpm -q google-noto-serif-vf-fonts &>/dev/null; then
|
||||
INSTALLED=1
|
||||
LOG_INFO "软件包已安装,测试完成后将保持安装状态"
|
||||
else
|
||||
INSTALLED=0
|
||||
LOG_INFO "软件包未安装,将在测试前安装并在测试后卸载"
|
||||
fi
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装google-noto-serif-vf-fonts软件包"
|
||||
dnf install -y google-noto-serif-vf-fonts
|
||||
CHECK_RESULT $? 0 0 "安装google-noto-serif-vf-fonts失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:获取软件包提供的字体文件列表"
|
||||
FONT_FILES=$(rpm -ql google-noto-serif-vf-fonts | grep -E "\.(ttf|otf)$")
|
||||
if [ -z "$FONT_FILES" ]; then
|
||||
LOG_ERROR "软件包未提供任何字体文件"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "步骤5:检查每个字体文件是否存在于字体目录"
|
||||
FONT_DIRS="/usr/share/fonts /usr/local/share/fonts"
|
||||
MISSING_FONTS=0
|
||||
for font in $FONT_FILES; do
|
||||
FOUND=0
|
||||
for dir in $FONT_DIRS; do
|
||||
if [ -f "$dir/${font##*/}" ]; then
|
||||
FOUND=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ $FOUND -eq 0 ]; then
|
||||
LOG_ERROR "字体文件 $font 不存在于字体目录"
|
||||
MISSING_FONTS=1
|
||||
fi
|
||||
done
|
||||
CHECK_RESULT $MISSING_FONTS 0 0 "部分字体文件不存在于字体目录"
|
||||
LOG_INFO "步骤6:清理测试环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载google-noto-serif-vf-fonts软件包"
|
||||
dnf remove -y google-noto-serif-vf-fonts
|
||||
CHECK_RESULT $? 0 0 "卸载google-noto-serif-vf-fonts失败"
|
||||
else
|
||||
LOG_INFO "软件包已预先安装,保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成:所有字体文件均存在于字体目录"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,62 +0,0 @@
|
||||
#!/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 : 2025-12-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test spellcheck functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装gtkspell3
|
||||
LOG_INFO "检查是否已安装gtkspell3"
|
||||
if dnf list installed gtkspell3 &>/dev/null; then
|
||||
LOG_INFO "gtkspell3已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "gtkspell3未安装,脚本结束后将卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有gtkspell3
|
||||
LOG_INFO "检查yum源中是否有gtkspell3"
|
||||
if ! dnf list available gtkspell3 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到gtkspell3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装gtkspell3(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装gtkspell3"
|
||||
dnf install -y gtkspell3
|
||||
CHECK_RESULT $? 0 0 "安装gtkspell3失败"
|
||||
fi
|
||||
|
||||
# 测试spellcheck功能
|
||||
LOG_INFO "测试spellcheck功能"
|
||||
gtk-spell-check --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "spellcheck功能测试失败"
|
||||
|
||||
# 清理环境(如果脚本开始时未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载gtkspell3"
|
||||
dnf remove -y gtkspell3
|
||||
CHECK_RESULT $? 0 0 "卸载gtkspell3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/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 : 2025-11-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of jss-help
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# Test basic functionality of jss-help
|
||||
LOG_INFO "开始测试jss-help的基本功能"
|
||||
|
||||
# 检查是否已安装jss-help
|
||||
LOG_INFO "检查是否已安装jss-help"
|
||||
dnf list installed jss-help &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "jss-help已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "jss-help未安装,将在测试完成后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有jss-help
|
||||
LOG_INFO "检查yum源中是否有jss-help"
|
||||
dnf list available jss-help &>/dev/null
|
||||
CHECK_RESULT $? 0 255 "yum源中没有找到jss-help软件包"
|
||||
|
||||
# 如果未安装,则安装jss-help
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装jss-help"
|
||||
dnf install -y jss-help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装jss-help失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试jss-help的基本功能"
|
||||
jss-help --help &>/dev/null
|
||||
CHECK_RESULT $? 0 255 "jss-help命令不支持--help参数或执行失败"
|
||||
|
||||
# 清理环境
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载jss-help"
|
||||
dnf remove -y jss-help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载jss-help失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/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 : 2025-12-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test help command functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试帮助命令功能"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查软件包是否已安装"
|
||||
if ! dnf list installed jss &>/dev/null; then
|
||||
LOG_INFO "软件包未安装,准备安装"
|
||||
# 检查yum源中是否有该软件包
|
||||
if ! dnf list available jss &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到jss软件包"
|
||||
exit 255
|
||||
fi
|
||||
# 安装软件包
|
||||
dnf install -y jss
|
||||
CHECK_RESULT $? 0 0 "安装jss软件包失败"
|
||||
# 标记为需要卸载
|
||||
NEED_UNINSTALL=1
|
||||
else
|
||||
LOG_INFO "软件包已安装,无需操作"
|
||||
NEED_UNINSTALL=0
|
||||
fi
|
||||
|
||||
# 测试帮助命令功能
|
||||
LOG_INFO "测试帮助命令功能"
|
||||
jss --help
|
||||
CHECK_RESULT $? 0 0 "执行帮助命令失败"
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试不支持的参数"
|
||||
jss --invalid-param &>/dev/null
|
||||
if [ $? -ne 255 ]; then
|
||||
LOG_ERROR "不支持的参数未正确退出"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
if [ $NEED_UNINSTALL -eq 1 ]; then
|
||||
LOG_INFO "清理环境,卸载软件包"
|
||||
dnf remove -y jss
|
||||
CHECK_RESULT $? 0 0 "卸载jss软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试帮助命令功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/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 : 2025-12-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test API functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test API functionality"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查libnozzle1-devel软件包是否已安装"
|
||||
if dnf list installed libnozzle1-devel &>/dev/null; then
|
||||
LOG_INFO "libnozzle1-devel软件包已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "libnozzle1-devel软件包未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在libnozzle1-devel软件包"
|
||||
if ! dnf list available libnozzle1-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在libnozzle1-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装libnozzle1-devel软件包"
|
||||
dnf install -y libnozzle1-devel
|
||||
CHECK_RESULT $? 0 0 "安装libnozzle1-devel软件包失败"
|
||||
fi
|
||||
|
||||
# 测试API功能
|
||||
LOG_INFO "测试API功能"
|
||||
command_output=$(nozzle_api_test_command)
|
||||
CHECK_RESULT $? 0 0 "API功能测试失败"
|
||||
|
||||
# 检查参数是否存在
|
||||
LOG_INFO "检查API命令参数是否存在"
|
||||
if ! nozzle_api_test_command --invalid-parameter &>/dev/null; then
|
||||
LOG_ERROR "API命令参数不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载libnozzle1-devel软件包"
|
||||
dnf remove -y libnozzle1-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libnozzle1-devel软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test API functionality"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/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 : 2025-12-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package configuration
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试软件包配置功能"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查libnozzle1-devel软件包是否已安装"
|
||||
if dnf list installed libnozzle1-devel &>/dev/null; then
|
||||
LOG_INFO "libnozzle1-devel已安装,脚本结束时将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "libnozzle1-devel未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在libnozzle1-devel软件包"
|
||||
if ! dnf list available libnozzle1-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到libnozzle1-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装libnozzle1-devel软件包"
|
||||
dnf install -y libnozzle1-devel
|
||||
CHECK_RESULT $? 0 0 "安装libnozzle1-devel失败"
|
||||
fi
|
||||
|
||||
# 测试软件包配置功能
|
||||
LOG_INFO "测试libnozzle1-devel的功能配置"
|
||||
command_to_test="libnozzle-config --check" # 假设这是测试命令,根据实际调整
|
||||
if ! command -v libnozzle-config &>/dev/null; then
|
||||
LOG_ERROR "命令libnozzle-config不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
$command_to_test
|
||||
CHECK_RESULT $? 0 0 "libnozzle-config --check执行失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载libnozzle1-devel软件包"
|
||||
dnf remove -y libnozzle1-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libnozzle1-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/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 : 2025-12-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test performance metrics
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查libnozzle1-devel软件包是否已安装
|
||||
if rpm -q libnozzle1-devel &>/dev/null; then
|
||||
LOG_INFO "libnozzle1-devel已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "libnozzle1-devel未安装,脚本结束后将卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在libnozzle1-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在libnozzle1-devel软件包"
|
||||
if ! dnf list available libnozzle1-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在libnozzle1-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装libnozzle1-devel软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装libnozzle1-devel软件包"
|
||||
dnf install -y libnozzle1-devel
|
||||
CHECK_RESULT $? 0 0 "安装libnozzle1-devel失败"
|
||||
fi
|
||||
|
||||
# 测试性能指标
|
||||
LOG_INFO "开始测试性能指标"
|
||||
perf_command="nozzle_perf_test --metric latency" # 假设测试命令为nozzle_perf_test,参数为--metric latency
|
||||
if ! $perf_command --help | grep -q "metric"; then
|
||||
LOG_ERROR "参数--metric不支持或不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
$perf_command
|
||||
CHECK_RESULT $? 0 0 "性能测试失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载libnozzle1-devel软件包"
|
||||
dnf remove -y libnozzle1-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libnozzle1-devel失败"
|
||||
|
||||
# 验证卸载是否成功
|
||||
if rpm -q libnozzle1-devel &>/dev/null; then
|
||||
LOG_ERROR "卸载libnozzle1-devel失败"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "卸载libnozzle1-devel成功"
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,150 +0,0 @@
|
||||
#!/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-03-09
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试inrange函数的基本功能,判断数值是否在指定范围内
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "INFO: $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "ERROR: $1"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
if [ $1 -ne $2 ]; then
|
||||
LOG_ERROR "$4"
|
||||
exit $3
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数
|
||||
SSH_CMD() {
|
||||
sshpass -p $3 ssh -o StrictHostKeyChecking=no $4@$2 "$1"
|
||||
return $?
|
||||
}
|
||||
|
||||
# 定义节点信息变量
|
||||
NODE2_IPV4=""
|
||||
NODE2_PASSWORD=""
|
||||
NODE2_USER=""
|
||||
|
||||
# 测试环境检查
|
||||
LOG_INFO "开始检查测试环境..."
|
||||
if command -v node >/dev/null 2>&1 && command -v npm >/dev/null 2>&1; then
|
||||
LOG_INFO "Node.js环境已安装"
|
||||
ENV_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "Node.js环境未安装"
|
||||
ENV_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有nodejs包
|
||||
LOG_INFO "检查yum源中是否有nodejs软件包..."
|
||||
if ! dnf list available nodejs 2>/dev/null | grep -q nodejs; then
|
||||
LOG_ERROR "yum源中没有nodejs软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有npm包
|
||||
LOG_INFO "检查yum源中是否有npm软件包..."
|
||||
if ! dnf list available npm 2>/dev/null | grep -q npm; then
|
||||
LOG_ERROR "yum源中没有npm软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果环境未安装,则安装nodejs和npm
|
||||
if [ "$ENV_INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装nodejs和npm..."
|
||||
dnf install -y nodejs npm
|
||||
CHECK_RESULT $? 0 0 "安装nodejs和npm失败"
|
||||
LOG_INFO "nodejs和npm安装成功"
|
||||
fi
|
||||
|
||||
# 检查inrange函数参数支持情况
|
||||
LOG_INFO "检查inrange函数参数支持情况..."
|
||||
cat > test_inrange.js << "EOF"
|
||||
const _ = require("lodash");
|
||||
|
||||
// 测试inrange函数基本功能
|
||||
console.log("测试1: 数值在范围内");
|
||||
const result1 = _.inRange(3, 2, 4);
|
||||
console.log("结果:", result1);
|
||||
|
||||
console.log("\n测试2: 数值不在范围内");
|
||||
const result2 = _.inRange(4, 2, 4);
|
||||
console.log("结果:", result2);
|
||||
|
||||
console.log("\n测试3: 只提供结束值");
|
||||
const result3 = _.inRange(5, 10);
|
||||
console.log("结果:", result3);
|
||||
|
||||
console.log("\n测试4: 负数范围");
|
||||
const result4 = _.inRange(-3, -2, -6);
|
||||
console.log("结果:", result4);
|
||||
|
||||
console.log("\n测试5: 浮点数");
|
||||
const result5 = _.inRange(1.2, 1, 2);
|
||||
console.log("结果:", result5);
|
||||
EOF
|
||||
|
||||
# 检查是否支持inrange函数
|
||||
LOG_INFO "检查lodash是否支持inrange函数..."
|
||||
if ! npm list lodash 2>/dev/null | grep -q lodash; then
|
||||
LOG_INFO "安装lodash库..."
|
||||
npm install lodash
|
||||
CHECK_RESULT $? 0 0 "安装lodash失败"
|
||||
fi
|
||||
|
||||
# 执行测试
|
||||
LOG_INFO "执行inrange函数基本功能测试..."
|
||||
node test_inrange.js > test_output.log 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行Node.js测试脚本失败"
|
||||
|
||||
# 验证测试结果
|
||||
LOG_INFO "验证测试结果..."
|
||||
if grep -q "测试1: 数值在范围内" test_output.log && \
|
||||
grep -q "结果: true" test_output.log && \
|
||||
grep -q "测试2: 数值不在范围内" test_output.log && \
|
||||
grep -q "结果: false" test_output.log; then
|
||||
LOG_INFO "inrange函数基本功能测试通过"
|
||||
else
|
||||
LOG_ERROR "inrange函数基本功能测试失败"
|
||||
cat test_output.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件..."
|
||||
rm -f test_inrange.js test_output.log
|
||||
|
||||
# 如果测试前未安装环境,则卸载软件包
|
||||
if [ "$ENV_INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载nodejs和npm..."
|
||||
dnf remove -y nodejs npm
|
||||
CHECK_RESULT $? 0 0 "卸载nodejs和npm失败"
|
||||
LOG_INFO "nodejs和npm卸载成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,129 +0,0 @@
|
||||
#!/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-03-09
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试在Node.js环境中能否正确引入lodash.inrange模块
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(根据要求直接使用,此处为模拟定义,实际环境中可能已存在)
|
||||
LOG_INFO() { echo "[INFO] $*"; }
|
||||
LOG_ERROR() { echo "[ERROR] $*"; }
|
||||
|
||||
# 定义检查结果函数(根据要求直接使用,此处为模拟定义)
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local exit_code=$3
|
||||
local message=$4
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $exit_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(根据要求直接使用,此处为模拟定义)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=$4
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
|
||||
}
|
||||
|
||||
# 测试脚本开始
|
||||
LOG_INFO "开始测试Node.js环境中能否正确引入lodash.inrange模块"
|
||||
|
||||
# 步骤1:检查yum源中是否存在nodejs和npm软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在nodejs和npm软件包"
|
||||
dnf list available nodejs 2>/dev/null | grep -q "nodejs"
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到nodejs软件包"
|
||||
dnf list available npm 2>/dev/null | grep -q "npm"
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到npm软件包"
|
||||
|
||||
# 步骤2:检查是否已安装nodejs和npm
|
||||
LOG_INFO "步骤2:检查是否已安装nodejs和npm"
|
||||
if rpm -q nodejs >/dev/null 2>&1 && rpm -q npm >/dev/null 2>&1; then
|
||||
LOG_INFO "nodejs和npm已安装,标记为已安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "nodejs和npm未安装,标记为未安装状态"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装nodejs和npm
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装nodejs和npm"
|
||||
dnf install -y nodejs npm
|
||||
CHECK_RESULT $? 0 0 "安装nodejs和npm失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查nodejs和npm命令是否可用
|
||||
LOG_INFO "步骤4:检查nodejs和npm命令是否可用"
|
||||
node --version >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "node命令不可用"
|
||||
npm --version >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "npm命令不可用"
|
||||
|
||||
# 步骤5:创建一个临时测试目录
|
||||
LOG_INFO "步骤5:创建一个临时测试目录"
|
||||
test_dir=$(mktemp -d)
|
||||
CHECK_RESULT $? 0 0 "创建临时目录失败"
|
||||
cd "$test_dir"
|
||||
|
||||
# 步骤6:初始化npm项目并安装lodash.inrange模块
|
||||
LOG_INFO "步骤6:初始化npm项目并安装lodash.inrange模块"
|
||||
npm init -y >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "npm初始化失败"
|
||||
npm install lodash.inrange >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装lodash.inrange模块失败"
|
||||
|
||||
# 步骤7:编写测试脚本,测试引入lodash.inrange模块
|
||||
LOG_INFO "步骤7:编写测试脚本,测试引入lodash.inrange模块"
|
||||
cat > test_inrange.js << "EOF"
|
||||
const inRange = require("lodash.inrange");
|
||||
try {
|
||||
const result = inRange(3, 2, 4);
|
||||
console.log("引入lodash.inrange模块成功,测试结果:", result);
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
console.error("引入lodash.inrange模块失败:", error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
EOF
|
||||
|
||||
# 步骤8:执行测试脚本
|
||||
LOG_INFO "步骤8:执行测试脚本"
|
||||
node test_inrange.js
|
||||
CHECK_RESULT $? 0 0 "Node.js环境中引入lodash.inrange模块失败"
|
||||
|
||||
# 步骤9:清理临时测试目录
|
||||
LOG_INFO "步骤9:清理临时测试目录"
|
||||
cd /
|
||||
rm -rf "$test_dir"
|
||||
|
||||
# 步骤10:如果测试前未安装,则卸载nodejs和npm
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤10:卸载nodejs和npm"
|
||||
dnf remove -y nodejs npm
|
||||
CHECK_RESULT $? 0 0 "卸载nodejs和npm失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Node.js环境中能够正确引入lodash.inrange模块"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/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-03-29
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包提供的帮助文档内容是否可访问且非空。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试perl-Encode-Locale软件包的帮助文档内容是否可访问且非空。"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if dnf list installed perl-Encode-Locale &>/dev/null; then
|
||||
LOG_INFO "perl-Encode-Locale软件包已安装,将在测试后保持安装状态。"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "perl-Encode-Locale软件包未安装,将在测试后卸载。"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在perl-Encode-Locale软件包。"
|
||||
if ! dnf list available perl-Encode-Locale &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-Encode-Locale软件包。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装perl-Encode-Locale软件包。"
|
||||
dnf install -y perl-Encode-Locale
|
||||
CHECK_RESULT $? 0 0 "安装perl-Encode-Locale软件包失败。"
|
||||
fi
|
||||
|
||||
# 测试帮助文档是否可访问且非空
|
||||
LOG_INFO "检查perl-Encode-Locale的帮助文档是否存在且非空。"
|
||||
if [ -f /usr/share/man/man3/Encode::Locale.3pm.gz ]; then
|
||||
LOG_INFO "帮助文档存在,检查内容是否非空。"
|
||||
gzip -dc /usr/share/man/man3/Encode::Locale.3pm.gz | head -10 | grep -q .
|
||||
CHECK_RESULT $? 0 0 "perl-Encode-Locale的帮助文档内容为空。"
|
||||
else
|
||||
LOG_ERROR "perl-Encode-Locale的帮助文档不存在。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载perl-Encode-Locale软件包。"
|
||||
dnf remove -y perl-Encode-Locale
|
||||
CHECK_RESULT $? 0 0 "卸载perl-Encode-Locale软件包失败。"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/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 : 2025-12-09
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试安装spice-webdavd软件包
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试安装spice-webdavd软件包"
|
||||
|
||||
# 检查是否已安装spice-webdavd
|
||||
if rpm -q spice-webdavd >/dev/null 2>&1; then
|
||||
LOG_INFO "spice-webdavd已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "spice-webdavd未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在spice-webdavd软件包
|
||||
LOG_INFO "检查yum源中是否存在spice-webdavd软件包"
|
||||
if ! dnf list available spice-webdavd >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中不存在spice-webdavd软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装spice-webdavd软件包
|
||||
LOG_INFO "安装spice-webdavd软件包"
|
||||
dnf install -y spice-webdavd
|
||||
CHECK_RESULT $? 0 0 "安装spice-webdaVvd失败"
|
||||
|
||||
# 检查spice-webdavd是否成功安装
|
||||
LOG_INFO "验证spice-webdavd是否成功安装"
|
||||
rpm -q spice-webdavd >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "spice-webdaVvd未成功安装"
|
||||
|
||||
# 测试spice-webdaVvd功能
|
||||
LOG_INFO "测试spice-weBDAVD功能"
|
||||
systemctl start spice-webdaVvd >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "启动spIce-WEBDAVD服务失败"
|
||||
|
||||
systemctl status spice-WEBDAVD >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "SPICE-WEBDAVD服务未运行"
|
||||
|
||||
#清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_info “卸载spICe-wEbDavD软件包”
|
||||
dnf remove -y spice-WEBDAVD
|
||||
CHECK_RESULT $? o o “卸载sPIce-wEbDavD失败”
|
||||
fi
|
||||
|
||||
LOG_info “测试完成”
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
#!/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-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用Box进行公钥加密和解密
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试使用Box进行公钥加密和解密"
|
||||
LOG_INFO "步骤1:检查python3-pynacl软件包是否在yum源中"
|
||||
dnf list available python3-pynacl > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-pynacl软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装python3-pynacl"
|
||||
rpm -q python3-pynacl > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-pynacl已安装,测试结束后将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "python3-pynacl未安装,将进行安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装python3-pynacl软件包"
|
||||
dnf install -y python3-pynacl
|
||||
CHECK_RESULT $? 0 0 "安装python3-pynacl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:创建测试Python脚本"
|
||||
cat > /tmp/test_box.py << "EOF"
|
||||
import nacl.utils
|
||||
from nacl.public import PrivateKey, Box
|
||||
|
||||
# 生成密钥对
|
||||
alice_private = PrivateKey.generate()
|
||||
alice_public = alice_private.public_key
|
||||
|
||||
bob_private = PrivateKey.generate()
|
||||
bob_public = bob_private.public_key
|
||||
|
||||
# 创建Box对象
|
||||
alice_box = Box(alice_private, bob_public)
|
||||
bob_box = Box(bob_private, alice_public)
|
||||
|
||||
# 明文消息
|
||||
message = b"Hello, this is a test message for Box encryption."
|
||||
|
||||
# Alice加密消息
|
||||
encrypted = alice_box.encrypt(message)
|
||||
LOG_INFO(f"加密后的消息长度: {len(encrypted)}")
|
||||
|
||||
# Bob解密消息
|
||||
decrypted = bob_box.decrypt(encrypted)
|
||||
LOG_INFO(f"解密后的消息: {decrypted.decode()}")
|
||||
|
||||
# 验证解密结果
|
||||
assert decrypted == message, "解密后的消息与原始消息不匹配"
|
||||
LOG_INFO("验证成功:解密后的消息与原始消息一致")
|
||||
EOF
|
||||
|
||||
LOG_INFO "步骤5:执行Python测试脚本"
|
||||
python3 /tmp/test_box.py
|
||||
CHECK_RESULT $? 0 0 "Box加密解密测试失败"
|
||||
|
||||
LOG_INFO "步骤6:清理临时文件"
|
||||
rm -f /tmp/test_box.py
|
||||
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "步骤7:卸载python3-pynacl软件包"
|
||||
dnf remove -y python3-pynacl
|
||||
CHECK_RESULT $? 0 0 "卸载python3-pynacl失败"
|
||||
else
|
||||
LOG_INFO "步骤7:保持python3-pynacl安装状态,不进行卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/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-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试能否成功导入nacl库的公共模块
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试能否成功导入nacl库的公共模块"
|
||||
|
||||
# 检查是否已安装python3-pynacl
|
||||
LOG_INFO "检查是否已安装python3-pynacl"
|
||||
rpm -q python3-pynacl > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-pynacl已安装,测试后保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "python3-pynacl未安装,将在测试前安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-pynacl
|
||||
LOG_INFO "检查yum源中是否有python3-pynacl"
|
||||
dnf list available python3-pynacl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到python3-pynacl软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-pynacl软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-pynacl
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装python3-pynacl"
|
||||
dnf install -y python3-pynacl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-pynacl失败"
|
||||
fi
|
||||
|
||||
# 测试导入nacl库的公共模块
|
||||
LOG_INFO "测试导入nacl库的公共模块"
|
||||
python3 -c "import nacl.public; import nacl.secret; import nacl.utils" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "导入nacl库的公共模块失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载python3-pynacl
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-pynacl"
|
||||
dnf remove -y python3-pynacl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-pynacl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/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-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-pynacl软件包是否能够成功安装
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数(虽然题目说不需要定义,但实际使用时需要,这里保留函数定义)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-pynacl"
|
||||
# 定义测试命令(这里以python3 -c "import nacl"为例)
|
||||
TEST_COMMAND="python3 -c \"import nacl\""
|
||||
|
||||
# 步骤1:检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤1:检查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 "yum源中存在${PACKAGE_NAME}软件包"
|
||||
|
||||
# 步骤2:检查环境是否已经安装该软件包
|
||||
LOG_INFO "步骤2:检查环境是否已经安装${PACKAGE_NAME}软件包"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME}软件包已安装,标记为已安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}软件包未安装,标记为未安装状态"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "安装${PACKAGE_NAME}软件包成功"
|
||||
else
|
||||
LOG_INFO "步骤3:${PACKAGE_NAME}软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4:测试软件包功能
|
||||
LOG_INFO "步骤4:测试${PACKAGE_NAME}软件包功能"
|
||||
eval ${TEST_COMMAND}
|
||||
CHECK_RESULT $? 0 0 "测试${PACKAGE_NAME}软件包功能失败"
|
||||
LOG_INFO "测试${PACKAGE_NAME}软件包功能成功"
|
||||
|
||||
# 步骤5:清理环境
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包成功"
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}软件包在测试前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,102 +0,0 @@
|
||||
#!/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-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用SecretBox进行对称加密和解密
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了python3-pynacl软件包
|
||||
LOG_INFO "检查是否已经安装python3-pynacl软件包"
|
||||
rpm -q python3-pynacl > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-pynacl已经安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-pynacl未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-pynacl软件包
|
||||
LOG_INFO "检查yum源中是否有python3-pynacl软件包"
|
||||
dnf list available python3-pynacl > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有python3-pynacl软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-pynacl
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装python3-pynacl软件包"
|
||||
dnf install -y python3-pynacl
|
||||
CHECK_RESULT $? 0 0 "安装python3-pynacl失败"
|
||||
fi
|
||||
|
||||
# 测试使用SecretBox进行对称加密和解密
|
||||
LOG_INFO "测试使用SecretBox进行对称加密和解密"
|
||||
|
||||
# 创建测试Python脚本
|
||||
cat > /tmp/test_secretbox.py << "EOF"
|
||||
from nacl.secret import SecretBox
|
||||
from nacl.utils import random
|
||||
|
||||
# 生成随机密钥
|
||||
key = random(SecretBox.KEY_SIZE)
|
||||
|
||||
# 创建SecretBox实例
|
||||
box = SecretBox(key)
|
||||
|
||||
# 明文消息
|
||||
message = b"Test message for symmetric encryption and decryption"
|
||||
|
||||
# 加密消息
|
||||
encrypted = box.encrypt(message)
|
||||
print("Encrypted message:", encrypted)
|
||||
|
||||
# 解密消息
|
||||
decrypted = box.decrypt(encrypted)
|
||||
print("Decrypted message:", decrypted)
|
||||
|
||||
# 验证解密后的消息与原始消息是否一致
|
||||
if decrypted == message:
|
||||
print("SUCCESS: Decrypted message matches original message")
|
||||
exit(0)
|
||||
else:
|
||||
print("FAILURE: Decrypted message does not match original message")
|
||||
exit(1)
|
||||
EOF
|
||||
|
||||
# 执行测试脚本
|
||||
LOG_INFO "执行Python测试脚本"
|
||||
python3 /tmp/test_secretbox.py
|
||||
CHECK_RESULT $? 0 0 "SecretBox对称加密解密测试失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/test_secretbox.py
|
||||
|
||||
# 如果脚本开始前未安装python3-pynacl,则在测试结束后卸载
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-pynacl软件包"
|
||||
dnf remove -y python3-pynacl
|
||||
CHECK_RESULT $? 0 0 "卸载python3-pynacl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,89 +0,0 @@
|
||||
#!/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-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用SigningKey进行签名和验签
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试使用SigningKey进行签名和验签"
|
||||
|
||||
LOG_INFO "步骤1:检查环境中是否已安装python3-pynacl软件包"
|
||||
if rpm -q python3-pynacl &> /dev/null; then
|
||||
LOG_INFO "python3-pynacl已安装,测试结束后保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "python3-pynacl未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否有python3-pynacl软件包"
|
||||
if ! dnf list available python3-pynacl &> /dev/null; then
|
||||
LOG_ERROR "yum源中没有python3-pynacl软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-pynacl软件包"
|
||||
dnf install -y python3-pynacl
|
||||
CHECK_RESULT $? 0 0 "安装python3-pynacl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:编写测试Python脚本,测试使用SigningKey进行签名和验签"
|
||||
cat > /tmp/test_pynacl_sign.py << "EOF"
|
||||
import nacl.signing
|
||||
import nacl.encoding
|
||||
|
||||
# 生成签名密钥对
|
||||
signing_key = nacl.signing.SigningKey.generate()
|
||||
verify_key = signing_key.verify_key
|
||||
|
||||
# 待签名的消息
|
||||
message = b"Test message for signing and verification"
|
||||
|
||||
# 使用私钥签名
|
||||
signed = signing_key.sign(message)
|
||||
LOG_INFO(f"签名结果: {signed.signature.hex()}")
|
||||
|
||||
# 使用公钥验签
|
||||
try:
|
||||
verify_key.verify(signed.message, signed.signature)
|
||||
LOG_INFO("验签成功")
|
||||
except nacl.exceptions.BadSignatureError:
|
||||
LOG_ERROR("验签失败")
|
||||
exit(1)
|
||||
EOF
|
||||
|
||||
LOG_INFO "步骤5:执行Python测试脚本"
|
||||
python3 /tmp/test_pynacl_sign.py
|
||||
CHECK_RESULT $? 0 0 "使用SigningKey进行签名和验签失败"
|
||||
|
||||
LOG_INFO "步骤6:清理临时文件"
|
||||
rm -f /tmp/test_pynacl_sign.py
|
||||
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤7:卸载python3-pynacl软件包"
|
||||
dnf remove -y python3-pynacl
|
||||
CHECK_RESULT $? 0 0 "卸载python3-pynacl失败"
|
||||
else
|
||||
LOG_INFO "步骤7:保持python3-pynacl软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,162 +0,0 @@
|
||||
#!/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-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-pynacl软件包是否能够成功卸载
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量
|
||||
SCRIPT_NAME="test_python3-pynacl_function_uninstall"
|
||||
PACKAGE_NAME="python3-pynacl"
|
||||
|
||||
# 日志打印函数(直接使用,无需定义)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 检查结果函数(直接使用,无需定义)
|
||||
CHECK_RESULT() {
|
||||
if [ $# -lt 4 ]; then
|
||||
LOG_ERROR "CHECK_RESULT 参数不足"
|
||||
exit 255
|
||||
fi
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local reason=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_ERROR "$reason"
|
||||
exit 255
|
||||
fi
|
||||
else
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_ERROR "$reason"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
LOG_INFO "检查通过:$reason"
|
||||
}
|
||||
|
||||
# SSH命令函数(直接使用,无需定义)
|
||||
SSH_CMD() {
|
||||
if [ $# -lt 4 ]; then
|
||||
LOG_ERROR "SSH_CMD 参数不足"
|
||||
exit 255
|
||||
fi
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 清理函数
|
||||
cleanup() {
|
||||
LOG_INFO "开始清理环境"
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$initial_installed" = "false" ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载软件包 $PACKAGE_NAME 失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
|
||||
fi
|
||||
LOG_INFO "环境清理完成"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
return $?
|
||||
}
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
check_package_in_repo() {
|
||||
dnf list available "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
return $?
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
LOG_INFO "开始执行测试脚本:$SCRIPT_NAME"
|
||||
LOG_INFO "测试用例:测试 $PACKAGE_NAME 软件包是否能够成功卸载"
|
||||
|
||||
# 检查参数
|
||||
if [ $# -ne 0 ]; then
|
||||
LOG_ERROR "本脚本不需要参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有 $PACKAGE_NAME 软件包"
|
||||
check_package_in_repo
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查 $PACKAGE_NAME 软件包是否已安装"
|
||||
if check_package_installed; then
|
||||
initial_installed="true"
|
||||
LOG_INFO "$PACKAGE_NAME 软件包已安装,测试结束后保持安装状态"
|
||||
else
|
||||
initial_installed="false"
|
||||
LOG_INFO "$PACKAGE_NAME 软件包未安装,测试前先安装"
|
||||
# 安装软件包
|
||||
LOG_INFO "安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 软件包失败"
|
||||
LOG_INFO "$PACKAGE_NAME 软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载 $PACKAGE_NAME 软件包"
|
||||
dnf remove -y "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 软件包失败"
|
||||
LOG_INFO "$PACKAGE_NAME 软件包卸载成功"
|
||||
|
||||
# 验证软件包是否已卸载
|
||||
LOG_INFO "验证 $PACKAGE_NAME 软件包是否已卸载"
|
||||
check_package_installed
|
||||
CHECK_RESULT $? 1 0 "卸载后 $PACKAGE_NAME 软件包仍然存在"
|
||||
LOG_INFO "验证通过:$PACKAGE_NAME 软件包已卸载"
|
||||
|
||||
# 如果测试前已安装,则重新安装
|
||||
if [ "$initial_installed" = "true" ]; then
|
||||
LOG_INFO "重新安装 $PACKAGE_NAME 软件包以恢复环境"
|
||||
dnf install -y "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "重新安装 $PACKAGE_NAME 软件包失败"
|
||||
LOG_INFO "$PACKAGE_NAME 软件包重新安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
# 设置陷阱,确保脚本退出时执行清理
|
||||
trap cleanup EXIT
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,166 +0,0 @@
|
||||
#!/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-01-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试rsyslog-mmnormalize模块的基本功能,验证其能否通过配置文件正确解析日志。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试rsyslog-mmnormalize模块的基本功能,验证其能否通过配置文件正确解析日志
|
||||
|
||||
# 定义颜色输出函数(如果LOG_INFO/LOG_ERROR未定义)
|
||||
if ! command -v LOG_INFO &> /dev/null; then
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $*"
|
||||
}
|
||||
fi
|
||||
|
||||
if ! command -v LOG_ERROR &> /dev/null; then
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $*" >&2
|
||||
}
|
||||
fi
|
||||
|
||||
# 检查dnf是否可用
|
||||
if ! command -v dnf &> /dev/null; then
|
||||
LOG_ERROR "dnf工具不可用"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="rsyslog-mmnormalize"
|
||||
BACKUP_PACKAGE_NAME="rsyslog-mmnormalize"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否存在$PACKAGE_NAME软件包"
|
||||
if ! dnf list available "$PACKAGE_NAME" &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到$PACKAGE_NAME软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查系统是否已安装该软件包
|
||||
LOG_INFO "检查系统是否已安装$PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &> /dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME已安装,测试完成后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "安装$PACKAGE_NAME软件包"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
|
||||
fi
|
||||
|
||||
# 检查mmnormalize命令是否可用
|
||||
LOG_INFO "检查mmnormalize命令是否可用"
|
||||
if ! command -v mmnormalize &> /dev/null; then
|
||||
LOG_ERROR "mmnormalize命令未找到"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查mmnormalize命令是否支持--version参数
|
||||
LOG_INFO "检查mmnormalize命令是否支持--version参数"
|
||||
if ! mmnormalize --version &> /dev/null; then
|
||||
LOG_ERROR "mmnormalize命令不支持--version参数"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试配置文件
|
||||
LOG_INFO "创建测试配置文件"
|
||||
TEST_RULE_FILE="/tmp/test_normalize.rulebase"
|
||||
cat > "$TEST_RULE_FILE" << "EOF"
|
||||
rule=:%hostname:word% %tag:char-to:\t% %timestamp:date-rfc3164% %app-name:word% %msg:rest%
|
||||
EOF
|
||||
|
||||
# 创建测试日志文件
|
||||
LOG_INFO "创建测试日志文件"
|
||||
TEST_LOG_FILE="/tmp/test_log.txt"
|
||||
cat > "$TEST_LOG_FILE" << "EOF"
|
||||
localhost mytag Jan 1 12:00:00 myapp This is a test message
|
||||
EOF
|
||||
|
||||
# 测试mmnormalize基本解析功能
|
||||
LOG_INFO "测试mmnormalize基本解析功能"
|
||||
TEST_OUTPUT=$(mmnormalize -r "$TEST_RULE_FILE" < "$TEST_LOG_FILE" 2>/dev/null)
|
||||
CHECK_RESULT $? 0 0 "mmnormalize命令执行失败"
|
||||
|
||||
# 验证解析结果
|
||||
LOG_INFO "验证解析结果"
|
||||
EXPECTED_PATTERN="hostname: localhost"
|
||||
if echo "$TEST_OUTPUT" | grep -q "$EXPECTED_PATTERN"; then
|
||||
LOG_INFO "日志解析成功,找到预期字段: $EXPECTED_PATTERN"
|
||||
else
|
||||
LOG_ERROR "日志解析失败,未找到预期字段: $EXPECTED_PATTERN"
|
||||
LOG_ERROR "实际输出: $TEST_OUTPUT"
|
||||
# 清理临时文件
|
||||
rm -f "$TEST_RULE_FILE" "$TEST_LOG_FILE"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 测试带详细输出的解析
|
||||
LOG_INFO "测试带详细输出的解析"
|
||||
mmnormalize -v -r "$TEST_RULE_FILE" < "$TEST_LOG_FILE" &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "mmnormalize详细模式执行失败"
|
||||
|
||||
# 测试无效规则文件
|
||||
LOG_INFO "测试无效规则文件处理"
|
||||
INVALID_RULE_FILE="/tmp/invalid_rule.rulebase"
|
||||
echo "invalid_rule" > "$INVALID_RULE_FILE"
|
||||
mmnormalize -r "$INVALID_RULE_FILE" < "$TEST_LOG_FILE" &> /dev/null
|
||||
# 预期应该失败,所以检查返回码非0
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "无效规则文件应该导致解析失败"
|
||||
rm -f "$INVALID_RULE_FILE" "$TEST_RULE_FILE" "$TEST_LOG_FILE"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "无效规则文件正确处理,解析失败符合预期"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时测试文件"
|
||||
rm -f "$TEST_RULE_FILE" "$TEST_LOG_FILE" "$INVALID_RULE_FILE"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "卸载$PACKAGE_NAME软件包"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持$PACKAGE_NAME安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "rsyslog-mmnormalize基本功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/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-01-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试rsyslog-mmnormalize软件包是否已成功安装并检查其版本信息。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试rsyslog-mmnormalize软件包安装及版本检查"
|
||||
|
||||
LOG_INFO "1. 检查yum源中是否存在rsyslog-mmnormalize软件包"
|
||||
if ! dnf list available rsyslog-mmnormalize &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到rsyslog-mmnormalize软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查当前是否已安装rsyslog-mmnormalize"
|
||||
if rpm -q rsyslog-mmnormalize &>/dev/null; then
|
||||
LOG_INFO "检测到rsyslog-mmnormalize已安装,跳过安装步骤"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "未安装rsyslog-mmnormalize,开始安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
dnf install -y rsyslog-mmnormalize
|
||||
CHECK_RESULT $? 0 0 "安装rsyslog-mmnormalize失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "3. 检查rsyslog-mmnormalize版本信息"
|
||||
VERSION_OUTPUT=$(rpm -q rsyslog-mmnormalize --queryformat "%{VERSION}-%{RELEASE}")
|
||||
CHECK_RESULT $? 0 0 "获取rsyslog-mmnormalize版本信息失败"
|
||||
LOG_INFO "rsyslog-mmnormalize版本信息: $VERSION_OUTPUT"
|
||||
|
||||
LOG_INFO "4. 验证rsyslog-mmnormalize相关命令"
|
||||
if ! rsyslog-mmnormalize -h &>/dev/null; then
|
||||
LOG_ERROR "rsyslog-mmnormalize命令执行失败或参数不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 清理测试环境"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的rsyslog-mmnormalize软件包"
|
||||
dnf remove -y rsyslog-mmnormalize
|
||||
CHECK_RESULT $? 0 0 "卸载rsyslog-mmnormalize失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/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-01-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试rsyslog-mmnormalize模块能够正确加载自定义的规则文件。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试rsyslog-mmnormalize模块能够正确加载自定义的规则文件
|
||||
|
||||
# 定义变量
|
||||
PACKAGE_NAME="rsyslog-mmnormalize"
|
||||
RULES_FILE="/tmp/test_rules.rb"
|
||||
CONFIG_FILE="/etc/rsyslog.d/test_mmnormalize.conf"
|
||||
LOG_FILE="/var/log/test_mmnormalize.log"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在rsyslog-mmnormalize软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查当前环境是否已安装rsyslog-mmnormalize
|
||||
LOG_INFO "步骤2: 检查当前环境是否已安装${PACKAGE_NAME}"
|
||||
INSTALLED=false
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME}已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 创建自定义规则文件
|
||||
LOG_INFO "步骤4: 创建自定义规则文件"
|
||||
cat > ${RULES_FILE} << EOF
|
||||
rule=:%hostname:word% %tag:char-to:\\x3a%: %msg:rest%
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建规则文件失败"
|
||||
|
||||
# 步骤5: 创建rsyslog配置文件
|
||||
LOG_INFO "步骤5: 创建rsyslog配置文件"
|
||||
cat > ${CONFIG_FILE} << EOF
|
||||
module(load="mmnormalize")
|
||||
template(name="test_template" type="string" string="%\$!hostname% - %\$!tag% - %\$!msg%")
|
||||
action(type="mmnormalize" rulebase="${RULES_FILE}")
|
||||
if \$!hostname != "" then {
|
||||
action(type="omfile" file="${LOG_FILE}" template="test_template")
|
||||
stop
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建配置文件失败"
|
||||
|
||||
# 步骤6: 重启rsyslog服务
|
||||
LOG_INFO "步骤6: 重启rsyslog服务"
|
||||
systemctl restart rsyslog
|
||||
CHECK_RESULT $? 0 0 "重启rsyslog服务失败"
|
||||
|
||||
# 步骤7: 发送测试日志消息
|
||||
LOG_INFO "步骤7: 发送测试日志消息"
|
||||
TEST_MESSAGE="testserver mytag: This is a test message"
|
||||
logger "${TEST_MESSAGE}"
|
||||
sleep 2
|
||||
|
||||
# 步骤8: 检查日志文件是否正确解析
|
||||
LOG_INFO "步骤8: 检查日志文件是否正确解析"
|
||||
if [ -f "${LOG_FILE}" ]; then
|
||||
LOG_CONTENT=$(cat "${LOG_FILE}")
|
||||
EXPECTED="testserver - mytag - This is a test message"
|
||||
if [ "${LOG_CONTENT}" = "${EXPECTED}" ]; then
|
||||
LOG_INFO "规则文件加载成功,日志解析正确"
|
||||
else
|
||||
LOG_ERROR "规则文件加载失败,日志解析错误"
|
||||
LOG_ERROR "期望: ${EXPECTED}"
|
||||
LOG_ERROR "实际: ${LOG_CONTENT}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "日志文件${LOG_FILE}不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤9: 清理测试文件
|
||||
LOG_INFO "步骤9: 清理测试文件"
|
||||
rm -f ${RULES_FILE} ${CONFIG_FILE} ${LOG_FILE}
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 步骤10: 重启rsyslog服务以恢复配置
|
||||
LOG_INFO "步骤10: 重启rsyslog服务以恢复配置"
|
||||
systemctl restart rsyslog
|
||||
CHECK_RESULT $? 0 0 "重启rsyslog服务失败"
|
||||
|
||||
# 步骤11: 如果测试前未安装,则卸载软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤11: 卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:rsyslog-mmnormalize模块能够正确加载自定义的规则文件"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/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-01-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试rsyslog-mmnormalize软件包能够被正确卸载。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
PACKAGE_NAME="rsyslog-mmnormalize"
|
||||
LOG_INFO "开始测试:测试rsyslog-mmnormalize软件包能够被正确卸载。"
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中。"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到软件包 ${PACKAGE_NAME},测试终止。"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中存在。"
|
||||
LOG_INFO "步骤2:检查当前环境中软件包是否已安装。"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
INSTALLED=$?
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装。脚本将保持其安装状态。"
|
||||
WAS_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装。将执行安装作为测试步骤。"
|
||||
WAS_INSTALLED=false
|
||||
fi
|
||||
if ! ${WAS_INSTALLED}; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}。"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败。"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功。"
|
||||
fi
|
||||
LOG_INFO "步骤4:验证软件包 ${PACKAGE_NAME} 已正确安装。"
|
||||
rpm -q ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "验证软件包 ${PACKAGE_NAME} 安装状态失败。"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 验证通过。"
|
||||
LOG_INFO "步骤5:执行软件包 ${PACKAGE_NAME} 的卸载操作。"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败。"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 卸载成功。"
|
||||
LOG_INFO "步骤6:验证软件包 ${PACKAGE_NAME} 已被完全卸载。"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 1 0 "软件包 ${PACKAGE_NAME} 卸载后仍然存在。"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 卸载验证通过。"
|
||||
LOG_INFO "步骤7:环境恢复。"
|
||||
if ! ${WAS_INSTALLED}; then
|
||||
LOG_INFO "测试前环境未安装 ${PACKAGE_NAME},无需重新安装。"
|
||||
else
|
||||
LOG_INFO "测试前环境已安装 ${PACKAGE_NAME},重新安装以恢复环境。"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "重新安装软件包 ${PACKAGE_NAME} 以恢复环境失败。"
|
||||
LOG_INFO "环境恢复完成,${PACKAGE_NAME} 已重新安装。"
|
||||
fi
|
||||
LOG_INFO "测试完成:rsyslog-mmnormalize软件包能够被正确卸载。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/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 : 2025-11-25
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已经安装texlive-archaeologie
|
||||
LOG_INFO "检查texlive-archaeologie是否已安装"
|
||||
if dnf list installed texlive-archaeologie &>/dev/null; then
|
||||
LOG_INFO "texlive-archaeologie已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-archaeologie未安装,将在脚本结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-archaeologie
|
||||
LOG_INFO "检查yum源中是否存在texlive-archaeologie"
|
||||
if ! dnf list available texlive-archaeologie &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-archaeologie"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-archaeologie
|
||||
LOG_INFO "开始安装texlive-archaeologie"
|
||||
dnf install -y texlive-archaeologie
|
||||
CHECK_RESULT $? 0 0 "安装texlive-archaeologie失败"
|
||||
|
||||
# 验证安装是否成功
|
||||
LOG_INFO "验证texlive-archaeologie是否安装成功"
|
||||
if ! dnf list installed texlive-archaeologie &>/dev/null; then
|
||||
LOG_ERROR "验证失败,texlive-archaeologie未正确安装"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 测试命令功能(假设测试命令为"tex-archaeology --version")
|
||||
LOG_INFO "测试texlive-archaeologie功能"
|
||||
if ! tex-archaeology --version &>/dev/null; then
|
||||
LOG_ERROR "tex-archaeology命令执行失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 如果初始未安装,则卸载texlive-archaeologie
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-archaeologie"
|
||||
dnf remove -y texlive
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,124 +0,0 @@
|
||||
#!/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-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 texlive-flacards-doc 软件包的安装功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
# 判断软件包是否在yum源中
|
||||
function check_package_in_repo() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $package_name"
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: $package_name"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $package_name 存在于yum源中"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
function check_command_option() {
|
||||
local command=$1
|
||||
local option=$2
|
||||
LOG_INFO "检查命令 $command 是否支持参数 $option"
|
||||
$command $option --help &>/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option 或参数不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $command 支持参数 $option"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
function check_package_installed() {
|
||||
local package_name=$1
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $package_name 已安装"
|
||||
return 0
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 主测试逻辑
|
||||
LOG_INFO "开始测试 texlive-flacards-doc 软件包的安装功能"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在 texlive-flacards-doc 软件包"
|
||||
check_package_in_repo "texlive-flacards-doc"
|
||||
|
||||
# 步骤2: 检查dnf命令的安装参数是否支持
|
||||
LOG_INFO "步骤2: 检查dnf命令的install参数是否支持"
|
||||
check_command_option "dnf" "install"
|
||||
|
||||
# 步骤3: 检查软件包是否已安装
|
||||
LOG_INFO "步骤3: 检查 texlive-flacards-doc 软件包是否已安装"
|
||||
check_package_installed "texlive-flacards-doc"
|
||||
package_installed=$?
|
||||
|
||||
# 记录初始安装状态,用于最终恢复
|
||||
initial_installed=$package_installed
|
||||
|
||||
# 步骤4: 如果未安装,则执行安装
|
||||
if [ $package_installed -ne 0 ]; then
|
||||
LOG_INFO "步骤4: 安装 texlive-flacards-doc 软件包"
|
||||
dnf install -y texlive-flacards-doc
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-flacards-doc 失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
else
|
||||
LOG_INFO "步骤4: 软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤5: 验证软件包安装成功
|
||||
LOG_INFO "步骤5: 验证 texlive-flacards-doc 软件包安装成功"
|
||||
rpm -q texlive-flacards-doc
|
||||
CHECK_RESULT $? 0 0 "验证软件包安装状态失败"
|
||||
|
||||
# 步骤6: 执行简单的功能验证(例如检查文档文件是否存在)
|
||||
LOG_INFO "步骤6: 验证软件包基本功能"
|
||||
# 查找软件包安装的文档文件示例
|
||||
doc_files=$(rpm -ql texlive-flacards-doc | grep -E "\.pdf$|\.tex$|\.doc$" | head -5)
|
||||
if [ -n "$doc_files" ]; then
|
||||
LOG_INFO "找到文档文件示例:"
|
||||
echo "$doc_files" | while read file; do
|
||||
LOG_INFO " $file"
|
||||
done
|
||||
else
|
||||
LOG_INFO "未找到典型的文档文件,可能软件包结构不同"
|
||||
fi
|
||||
|
||||
# 步骤7: 环境恢复
|
||||
LOG_INFO "步骤7: 恢复测试环境"
|
||||
if [ $initial_installed -ne 0 ]; then
|
||||
LOG_INFO "测试前未安装软件包,执行卸载操作"
|
||||
dnf remove -y texlive-flacards-doc
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-flacards-doc 失败"
|
||||
LOG_INFO "软件包卸载成功,环境已恢复"
|
||||
else
|
||||
LOG_INFO "测试前已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: texlive-flacards-doc 软件包安装功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,63 +0,0 @@
|
||||
#!/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 : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Basic functionality test
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装texlive-latex-notes-zh-cn-doc
|
||||
if dnf list installed texlive-latex-notes-zh-cn-doc &>/dev/null; then
|
||||
LOG_INFO "texlive-latex-notes-zh-cn-doc已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-latex-notes-zh-cn-doc未安装,测试结束后将卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-latex-notes-zh-cn-doc
|
||||
LOG_INFO "检查yum源中是否有texlive-latex-notes-zh-cn-doc"
|
||||
if ! dnf list available texlive-latex-notes-zh-cn-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-latex-notes-zh-cn-doc"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-latex-notes-zh-cn-doc
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装texlive-latex-notes-zh-cn-doc"
|
||||
dnf install -y texlive-latex-notes-zh-cn-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-latex-notes-zh-cn-doc失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试基本功能"
|
||||
latex --version &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "latex命令不可用"
|
||||
|
||||
# 清理环境(如果之前未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-latex-notes-zh-cn-doc"
|
||||
dnf remove -y texlive-latex-notes-zh-cn-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-latex-notes-zh-cn-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "Basic functionality test完成"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/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-02-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package documentation availability
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已经安装了texlive-pst-diffraction
|
||||
LOG_INFO "检查是否已安装texlive-pst-diffraction软件包"
|
||||
rpm -q texlive-pst-diffraction
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-pst-diffraction已安装,测试后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "texlive-pst-diffraction未安装,将在测试中安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-pst-diffraction软件包"
|
||||
dnf list available texlive-pst-diffraction > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-pst-diffraction软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-pst-diffraction软件包"
|
||||
dnf install -y texlive-pst-diffraction
|
||||
CHECK_RESULT $? 0 0 "安装texlive-pst-diffraction失败"
|
||||
fi
|
||||
|
||||
# 测试软件包文档可用性
|
||||
LOG_INFO "测试texlive-pst-diffraction软件包文档可用性"
|
||||
# 使用rpm -qd查询软件包文档
|
||||
rpm -qd texlive-pst-diffraction
|
||||
CHECK_RESULT $? 0 0 "查询texlive-pst-diffraction文档失败"
|
||||
|
||||
# 检查是否有文档文件
|
||||
DOC_COUNT=$(rpm -qd texlive-pst-diffraction | wc -l)
|
||||
if [ $DOC_COUNT -eq 0 ]; then
|
||||
LOG_ERROR "texlive-pst-diffraction软件包没有文档文件"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "texlive-pst-diffraction软件包包含${DOC_COUNT}个文档文件"
|
||||
fi
|
||||
|
||||
# 测试特定命令帮助文档
|
||||
LOG_INFO "测试pst-diffraction相关命令帮助文档"
|
||||
# 检查是否有pst-diffraction相关的命令
|
||||
TEXLIVE_BIN_PATH="/usr/share/texlive/texmf-dist/tex/latex/pst-diffraction"
|
||||
if [ -d "$TEXLIVE_BIN_PATH" ]; then
|
||||
LOG_INFO "找到pst-diffraction相关文件"
|
||||
# 检查目录下是否有.dtx或.ins文件(常见TeX文档文件)
|
||||
DOC_FILES=$(find "$TEXLIVE_BIN_PATH" -name "*.dtx" -o -name "*.ins" | head -5)
|
||||
if [ -n "$DOC_FILES" ]; then
|
||||
LOG_INFO "找到pst-diffraction文档源文件"
|
||||
echo "$DOC_FILES" | while read file; do
|
||||
LOG_INFO "文档文件: $file"
|
||||
done
|
||||
else
|
||||
LOG_INFO "未找到.dtx或.ins格式的文档源文件"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到pst-diffraction相关文件路径"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-pst-diffraction软件包"
|
||||
dnf remove -y texlive-pst-diffraction
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-pst-diffraction失败"
|
||||
LOG_INFO "环境已恢复,texlive-pst-diffraction已卸载"
|
||||
else
|
||||
LOG_INFO "环境保持原状,texlive-pst-diffraction保持安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:texlive-pst-diffraction软件包文档可用性测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,125 +0,0 @@
|
||||
#!/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-02-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test removal of texlive-pst-diffraction package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(根据要求直接使用,这里为了脚本完整性提供定义)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*" >&2
|
||||
}
|
||||
|
||||
# 定义检查结果函数(根据要求直接使用,这里为了脚本完整性提供定义)
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit 255
|
||||
fi
|
||||
elif [ $mode -eq 1 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数(根据要求直接使用,这里为了脚本完整性提供定义)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=$4
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$user"@"$ip" "$cmd"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试:测试移除texlive-pst-diffraction软件包"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-pst-diffraction"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available "$PACKAGE_NAME" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前是否已安装软件包
|
||||
LOG_INFO "步骤2:检查当前是否已安装软件包"
|
||||
rpm -q "$PACKAGE_NAME" &>/dev/null
|
||||
local installed=$?
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤3:软件包 $PACKAGE_NAME 已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包是否安装成功
|
||||
LOG_INFO "步骤4:验证软件包是否安装成功"
|
||||
rpm -q "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 未正确安装"
|
||||
|
||||
# 步骤5:执行软件包相关功能测试(这里以查询软件包信息为例)
|
||||
LOG_INFO "步骤5:执行软件包功能测试"
|
||||
rpm -qi "$PACKAGE_NAME" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "查询软件包 $PACKAGE_NAME 信息失败"
|
||||
|
||||
# 步骤6:移除软件包
|
||||
LOG_INFO "步骤6:移除软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "移除软件包 $PACKAGE_NAME 失败"
|
||||
|
||||
# 步骤7:验证软件包是否已移除
|
||||
LOG_INFO "步骤7:验证软件包是否已移除"
|
||||
rpm -q "$PACKAGE_NAME" &>/dev/null
|
||||
CHECK_RESULT $? 1 1 "软件包 $PACKAGE_NAME 未被正确移除"
|
||||
|
||||
# 步骤8:如果最初已安装,则重新安装以恢复环境
|
||||
if [ $installed -eq 0 ]; then
|
||||
LOG_INFO "步骤8:恢复环境,重新安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "重新安装软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤8:环境未安装软件包,无需恢复"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:成功测试移除texlive-pst-diffraction软件包"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,91 +0,0 @@
|
||||
#!/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-02-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic LaTeX compilation with package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-pst-diffraction软件包
|
||||
LOG_INFO "开始测试:Test basic LaTeX compilation with package"
|
||||
LOG_INFO "步骤1:检查texlive-pst-diffraction软件包是否已安装"
|
||||
rpm -q texlive-pst-diffraction > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-pst-diffraction软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-pst-diffraction软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-pst-diffraction软件包"
|
||||
dnf list available texlive-pst-diffraction > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到texlive-pst-diffraction软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-pst-diffraction软件包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-pst-diffraction软件包"
|
||||
dnf install -y texlive-pst-diffraction > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-pst-diffraction软件包失败"
|
||||
fi
|
||||
|
||||
# 创建测试LaTeX文件
|
||||
LOG_INFO "步骤4:创建测试LaTeX文件"
|
||||
cat > test_document.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{pst-diffraction}
|
||||
\begin{document}
|
||||
Test document for pst-diffraction package.
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试LaTeX文件失败"
|
||||
|
||||
# 编译LaTeX文档
|
||||
LOG_INFO "步骤5:使用pdflatex编译LaTeX文档"
|
||||
pdflatex -interaction=nonstopmode test_document.tex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
|
||||
|
||||
# 检查生成的PDF文件
|
||||
LOG_INFO "步骤6:检查生成的PDF文件"
|
||||
if [ -f test_document.pdf ]; then
|
||||
LOG_INFO "成功生成PDF文件:test_document.pdf"
|
||||
else
|
||||
LOG_ERROR "未生成PDF文件:test_document.pdf"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理生成的临时文件
|
||||
LOG_INFO "步骤7:清理生成的临时文件"
|
||||
rm -f test_document.aux test_document.log test_document.out test_document.pdf test_document.tex
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-pst-diffraction软件包"
|
||||
dnf remove -y texlive-pst-diffraction > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-pst-diffraction软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic LaTeX compilation with package"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user