Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -65,42 +65,6 @@
|
||||
{
|
||||
"name": "test_iptables-nft_function_pkg_install",
|
||||
"desc": "测试软件包的正确安装过程"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_pkg_check",
|
||||
"desc": "检查软件包是否已正确安装"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_policy_set",
|
||||
"desc": "测试设置链的默认策略"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_rule_counters",
|
||||
"desc": "测试规则计数器的查看与清零"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_ipv6_support",
|
||||
"desc": "测试对IPv6规则的基本管理"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_save_restore",
|
||||
"desc": "测试规则集的保存与恢复"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_rule_matching",
|
||||
"desc": "测试基于源/目的IP、端口等条件的规则匹配"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_target_action",
|
||||
"desc": "测试ACCEPT, DROP, REJECT等目标动作"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_module_usage",
|
||||
"desc": "测试使用conntrack、state等扩展模块"
|
||||
},
|
||||
{
|
||||
"name": "test_iptables-nft_function_pkg_remove",
|
||||
"desc": "测试软件包的卸载过程"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,42 +5,6 @@
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_install",
|
||||
"desc": "Test the installation of jakarta-el-api package"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_expression",
|
||||
"desc": "Test the expression evaluation functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_uninstall",
|
||||
"desc": "Test the uninstallation of jakarta-el-api package"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_version",
|
||||
"desc": "Test the version information of the package"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_dependency",
|
||||
"desc": "Test the runtime dependency resolution"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_bean_access",
|
||||
"desc": "Test accessing JavaBean properties via EL"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_method_call",
|
||||
"desc": "Test method invocation through EL expressions"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_operator",
|
||||
"desc": "Test arithmetic and logical operators in EL"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_context",
|
||||
"desc": "Test EL context and variable resolution"
|
||||
},
|
||||
{
|
||||
"name": "test_jakarta-el-api_function_compliance",
|
||||
"desc": "Test basic API compliance and availability"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/libwmf/libwmf-devel",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_libwmf-devel_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_libwmf-devel_function_basic",
|
||||
"desc": "Test basic library functionality"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,10 +5,6 @@
|
||||
{
|
||||
"name": "test_lucene-analyzers-stempel_function_install",
|
||||
"desc": "Test the installation of lucene-analyzers-stempel package"
|
||||
},
|
||||
{
|
||||
"name": "test_lucene-analyzers-stempel_function_tokenize",
|
||||
"desc": "Test the tokenization functionality of lucene-analyzers-stempel package"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/nagios-plugins/nagios-plugins-ide_smart",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_nagios-plugins-ide_smart_function_check",
|
||||
"desc": "Test the basic functionality of the plugin"
|
||||
},
|
||||
{
|
||||
"name": "test_nagios-plugins-ide_smart_function_disk_health",
|
||||
"desc": "Test the disk health monitoring functionality"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/python-anytree/python3-anytree",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_python3-anytree_function_tree",
|
||||
"desc": "Test basic tree creation"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-anytree_function_rend",
|
||||
"desc": "Test tree rendering"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-anytree_function_node",
|
||||
"desc": "Test node operations"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-anytree_function_walk",
|
||||
"desc": "Test tree traversal"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-anytree_function_attr",
|
||||
"desc": "Test node attributes"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,21 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/python-nest-asyncio/python3-nest_asyncio",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_python3-nest_asyncio_install",
|
||||
"desc": "测试python3-nest_asyncio软件包的安装功能,验证安装过程是否正常完成",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_python3-nest_asyncio_uninstall",
|
||||
"desc": "测试python3-nest_asyncio软件包的卸载功能,验证卸载过程是否正常完成",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_python3-nest_asyncio_upgrade",
|
||||
"desc": "测试python3-nest_asyncio软件包的升级功能,验证升级过程是否正常完成",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_python3-nest_asyncio_downgrade",
|
||||
"desc": "测试python3-nest_asyncio软件包的降级功能,验证降级过程是否正常完成",
|
||||
@@ -31,10 +16,6 @@
|
||||
"name": "test_python3-nest_asyncio_reinstall",
|
||||
"desc": "测试python3-nest_asyncio软件包的重新安装功能,验证重新安装过程是否正常完成",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_python3-nest_asyncio_function_basic",
|
||||
"desc": "测试python3-nest_asyncio作为基础依赖库的基本功能是否正常"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -11,37 +11,9 @@
|
||||
"name": "test_qt5-qtmultimedia-doc_function_audio",
|
||||
"desc": "测试qt5-qtmultimedia-doc软件包的音频功能"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_remove",
|
||||
"desc": "测试qt5-qtmultimedia-doc软件包的卸载功能"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_exist",
|
||||
"desc": "检查qt5-qtmultimedia-doc软件包是否已正确安装"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_files",
|
||||
"desc": "验证qt5-qtmultimedia-doc软件包安装的文件路径和内容"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_version",
|
||||
"desc": "检查qt5-qtmultimedia-doc软件包的版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_help",
|
||||
"desc": "测试qt5-qtmultimedia-doc软件包提供的帮助文档"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_api",
|
||||
"desc": "验证qt5-qtmultimedia-doc软件包提供的API文档"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_examples",
|
||||
"desc": "检查qt5-qtmultimedia-doc软件包是否包含示例代码"
|
||||
},
|
||||
{
|
||||
"name": "test_qt5-qtmultimedia-doc_search",
|
||||
"desc": "测试qt5-qtmultimedia-doc软件包文档的搜索功能"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-f/texlive-dancers",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-dancers_function_basic",
|
||||
"desc": "Test basic functionality"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,14 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-fira-doc_function_remove",
|
||||
"desc": "Test the removal of texlive-fira-doc package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-fira-doc_function_list_files",
|
||||
"desc": "Test listing files in texlive-fira-doc"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-fira-doc_function_doc_access",
|
||||
"desc": "Test accessing documentation files"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-o/texlive-mathpartir",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-mathpartir_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-mathpartir_function_usage",
|
||||
"desc": "Test basic usage"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-s/texlive-pst-slpe",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-pst-slpe_function_basic",
|
||||
"desc": "Basic functionality test for texlive-pst-slpe"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-slpe_install",
|
||||
"desc": "Test if the texlive-pst-slpe package can be successfully installed."
|
||||
@@ -13,14 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-pst-slpe_remove",
|
||||
"desc": "Test if the texlive-pst-slpe package can be cleanly uninstalled."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-slpe_basic_usage",
|
||||
"desc": "Test the basic usage of pst-slpe by generating a simple LaTeX document with slope fill."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-slpe_compile",
|
||||
"desc": "Test if a LaTeX document using pst-slpe can be compiled without errors."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,22 +5,6 @@
|
||||
{
|
||||
"name": "test_texlive-simpler-wick-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-simpler-wick-doc_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-simpler-wick-doc_function_check_doc",
|
||||
"desc": "Check documentation files exist"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-simpler-wick-doc_function_latex_compile",
|
||||
"desc": "Test LaTeX compilation with package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-simpler-wick-doc_function_wick_contraction",
|
||||
"desc": "Test Wick contraction macro usage"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-withargs-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-withargs-doc_function_install",
|
||||
"desc": "Test installation of texlive-withargs-doc"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,14 +13,6 @@
|
||||
{
|
||||
"name": "test_tpm2-abrmd-help_function_uninstall",
|
||||
"desc": "测试软件包能够成功卸载。"
|
||||
},
|
||||
{
|
||||
"name": "test_tpm2-abrmd-help_function_help",
|
||||
"desc": "测试软件包提供的帮助信息是否正确。"
|
||||
},
|
||||
{
|
||||
"name": "test_tpm2-abrmd-help_function_version",
|
||||
"desc": "测试查询软件包的版本信息。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,119 +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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试对IPv6规则的基本管理
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否以root用户运行
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
LOG_ERROR "请以root用户运行此脚本"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="iptables-nft"
|
||||
|
||||
# 检查yum源中是否存在软件包
|
||||
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}是否已安装"
|
||||
if rpm -q ${PACKAGE_NAME} &> /dev/null; then
|
||||
LOG_INFO "${PACKAGE_NAME}已安装,测试结束后保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}未安装,将在测试中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 安装软件包(如果未安装)
|
||||
if [[ ${INSTALLED_BEFORE} == false ]]; then
|
||||
LOG_INFO "安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
# 检查iptables命令是否支持IPv6
|
||||
LOG_INFO "检查iptables命令是否支持IPv6参数"
|
||||
iptables -h 2>&1 | grep -q "\-\-ipv6"
|
||||
CHECK_RESULT $? 0 0 "iptables命令不支持IPv6参数" 255
|
||||
|
||||
# 测试IPv6规则的基本管理
|
||||
LOG_INFO "测试IPv6规则的基本管理"
|
||||
|
||||
# 1. 添加IPv6规则
|
||||
LOG_INFO "添加IPv6 INPUT链规则,允许ICMPv6流量"
|
||||
ip6tables -A INPUT -p icmpv6 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "添加IPv6规则失败"
|
||||
|
||||
# 2. 查看IPv6规则
|
||||
LOG_INFO "查看IPv6规则列表"
|
||||
ip6tables -L INPUT -n
|
||||
CHECK_RESULT $? 0 0 "查看IPv6规则失败"
|
||||
|
||||
# 3. 验证规则存在
|
||||
LOG_INFO "验证添加的IPv6规则是否存在"
|
||||
ip6tables -L INPUT -n | grep -q "icmpv6"
|
||||
CHECK_RESULT $? 0 0 "添加的IPv6规则不存在"
|
||||
|
||||
# 4. 删除IPv6规则
|
||||
LOG_INFO "删除IPv6 INPUT链规则"
|
||||
ip6tables -D INPUT -p icmpv6 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "删除IPv6规则失败"
|
||||
|
||||
# 5. 验证规则已删除
|
||||
LOG_INFO "验证IPv6规则已删除"
|
||||
ip6tables -L INPUT -n | grep -q "icmpv6"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
LOG_ERROR "IPv6规则删除失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "IPv6规则基本管理测试完成"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [[ ${INSTALLED_BEFORE} == false ]]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装${PACKAGE_NAME},保持安装状态"
|
||||
fi
|
||||
|
||||
# 恢复iptables默认配置
|
||||
LOG_INFO "恢复iptables默认配置"
|
||||
ip6tables -F
|
||||
ip6tables -X
|
||||
ip6tables -Z
|
||||
ip6tables -P INPUT ACCEPT
|
||||
ip6tables -P FORWARD ACCEPT
|
||||
ip6tables -P OUTPUT ACCEPT
|
||||
|
||||
LOG_INFO "环境清理完成,测试结束"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用conntrack、state等扩展模块
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试iptables-nft的conntrack、state等扩展模块"
|
||||
|
||||
# 检查是否已安装iptables-nft
|
||||
LOG_INFO "检查iptables-nft是否已安装"
|
||||
if rpm -q iptables-nft &> /dev/null; then
|
||||
LOG_INFO "iptables-nft已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "iptables-nft未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有iptables-nft软件包
|
||||
LOG_INFO "检查yum源中是否有iptables-nft软件包"
|
||||
if ! dnf list available iptables-nft &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到iptables-nft软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装iptables-nft
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装iptables-nft软件包"
|
||||
dnf install -y iptables-nft
|
||||
CHECK_RESULT $? 0 0 "安装iptables-nft失败"
|
||||
fi
|
||||
|
||||
# 测试conntrack模块
|
||||
LOG_INFO "测试conntrack模块"
|
||||
iptables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "conntrack模块测试失败"
|
||||
|
||||
# 测试state模块
|
||||
LOG_INFO "测试state模块"
|
||||
iptables -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "state模块测试失败"
|
||||
|
||||
# 清理测试规则
|
||||
LOG_INFO "清理测试规则"
|
||||
iptables -t filter -F
|
||||
CHECK_RESULT $? 0 0 "清理规则失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载iptables-nft软件包"
|
||||
dnf remove -y iptables-nft
|
||||
CHECK_RESULT $? 0 0 "卸载iptables-nft失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,115 +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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 检查软件包是否已正确安装
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
# 环境变量定义
|
||||
PKG_NAME="iptables-nft"
|
||||
LOG_INFO "测试开始:检查软件包${PKG_NAME}是否已正确安装"
|
||||
|
||||
# 步骤1:检查当前环境是否已安装指定软件包
|
||||
LOG_INFO "步骤1:检查当前环境是否已安装${PKG_NAME}"
|
||||
if rpm -q ${PKG_NAME} &>/dev/null; then
|
||||
LOG_INFO "${PKG_NAME}已安装,标记为环境已安装"
|
||||
ENV_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "${PKG_NAME}未安装,标记为环境未安装"
|
||||
ENV_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在${PKG_NAME}"
|
||||
if dnf list available ${PKG_NAME} &>/dev/null; then
|
||||
LOG_INFO "yum源中存在${PKG_NAME}"
|
||||
else
|
||||
LOG_ERROR "yum源中不存在${PKG_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果环境未安装,则安装软件包
|
||||
if [ ${ENV_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装${PKG_NAME}"
|
||||
dnf install -y ${PKG_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PKG_NAME}失败"
|
||||
LOG_INFO "${PKG_NAME}安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包是否正确安装
|
||||
LOG_INFO "步骤4:验证${PKG_NAME}是否正确安装"
|
||||
rpm -q ${PKG_NAME}
|
||||
CHECK_RESULT $? 0 0 "${PKG_NAME}未正确安装"
|
||||
|
||||
# 步骤5:检查软件包提供的命令是否可用
|
||||
LOG_INFO "步骤5:检查${PKG_NAME}提供的命令是否可用"
|
||||
if command -v iptables-nft &>/dev/null; then
|
||||
LOG_INFO "iptables-nft命令可用"
|
||||
else
|
||||
LOG_ERROR "iptables-nft命令不可用"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:检查命令参数是否支持
|
||||
LOG_INFO "步骤6:检查iptables-nft命令参数是否支持"
|
||||
if iptables-nft --help | grep -q "\-\-version"; then
|
||||
LOG_INFO "iptables-nft支持--version参数"
|
||||
else
|
||||
LOG_ERROR "iptables-nft不支持--version参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤7:执行简单命令验证功能
|
||||
LOG_INFO "步骤7:执行iptables-nft --version验证功能"
|
||||
iptables-nft --version
|
||||
CHECK_RESULT $? 0 0 "iptables-nft --version执行失败"
|
||||
|
||||
# 步骤8:如果环境原本未安装,则卸载软件包
|
||||
if [ ${ENV_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载${PKG_NAME}"
|
||||
dnf remove -y ${PKG_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PKG_NAME}失败"
|
||||
LOG_INFO "${PKG_NAME}卸载成功"
|
||||
else
|
||||
LOG_INFO "步骤8:环境原本已安装${PKG_NAME},保持安装状态"
|
||||
fi
|
||||
|
||||
# 步骤9:最终验证环境状态
|
||||
LOG_INFO "步骤9:验证环境状态"
|
||||
if [ ${ENV_INSTALLED} -eq 0 ]; then
|
||||
if rpm -q ${PKG_NAME} &>/dev/null; then
|
||||
LOG_ERROR "${PKG_NAME}卸载失败,环境未恢复"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "环境已恢复,${PKG_NAME}未安装"
|
||||
fi
|
||||
else
|
||||
if rpm -q ${PKG_NAME} &>/dev/null; then
|
||||
LOG_INFO "环境已恢复,${PKG_NAME}保持安装"
|
||||
else
|
||||
LOG_ERROR "${PKG_NAME}意外被卸载,环境未恢复"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:${PKG_NAME}软件包检查通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,139 +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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包的卸载过程
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local error_code=$3
|
||||
local error_msg=$4
|
||||
|
||||
if [ $actual -ne $expected ]; then
|
||||
LOG_ERROR "$error_msg"
|
||||
exit $error_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
|
||||
# 这里只是模拟SSH命令,实际使用时需要根据实际情况实现
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 测试软件包名称
|
||||
TEST_PKG="iptables-nft"
|
||||
|
||||
LOG_INFO "开始测试软件包卸载过程"
|
||||
|
||||
# 步骤1:检查yum源中是否存在测试软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在$TEST_PKG软件包"
|
||||
dnf list available "$TEST_PKG" 2>/dev/null | grep -q "$TEST_PKG"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在$TEST_PKG软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在$TEST_PKG软件包"
|
||||
|
||||
# 步骤2:检查当前是否已安装测试软件包
|
||||
LOG_INFO "步骤2:检查当前是否已安装$TEST_PKG软件包"
|
||||
rpm -q "$TEST_PKG" >/dev/null 2>&1
|
||||
INSTALLED=$?
|
||||
|
||||
# 记录初始安装状态
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "$TEST_PKG软件包已安装"
|
||||
INITIAL_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "$TEST_PKG软件包未安装"
|
||||
INITIAL_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包作为测试步骤
|
||||
if [ "$INITIAL_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装$TEST_PKG软件包"
|
||||
dnf install -y "$TEST_PKG"
|
||||
CHECK_RESULT $? 0 0 "$TEST_PKG软件包安装失败"
|
||||
LOG_INFO "$TEST_PKG软件包安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包安装成功
|
||||
LOG_INFO "步骤4:验证$TEST_PKG软件包安装成功"
|
||||
rpm -q "$TEST_PKG" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "$TEST_PKG软件包验证失败"
|
||||
LOG_INFO "$TEST_PKG软件包验证成功"
|
||||
|
||||
# 步骤5:测试软件包卸载功能
|
||||
LOG_INFO "步骤5:测试$TEST_PKG软件包卸载功能"
|
||||
dnf remove -y "$TEST_PKG"
|
||||
CHECK_RESULT $? 0 0 "$TEST_PKG软件包卸载失败"
|
||||
LOG_INFO "$TEST_PKG软件包卸载成功"
|
||||
|
||||
# 步骤6:验证软件包已卸载
|
||||
LOG_INFO "步骤6:验证$TEST_PKG软件包已卸载"
|
||||
rpm -q "$TEST_PKG" >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "$TEST_PKG软件包卸载验证失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "$TEST_PKG软件包卸载验证成功"
|
||||
|
||||
# 步骤7:环境恢复
|
||||
LOG_INFO "步骤7:环境恢复"
|
||||
if [ "$INITIAL_INSTALLED" = "true" ]; then
|
||||
# 如果初始状态是已安装,则重新安装软件包
|
||||
LOG_INFO "重新安装$TEST_PKG软件包以恢复环境"
|
||||
dnf install -y "$TEST_PKG"
|
||||
CHECK_RESULT $? 0 0 "$TEST_PKG软件包重新安装失败"
|
||||
LOG_INFO "$TEST_PKG软件包重新安装成功"
|
||||
|
||||
# 验证恢复成功
|
||||
rpm -q "$TEST_PKG" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "环境恢复失败"
|
||||
LOG_INFO "环境恢复成功"
|
||||
else
|
||||
# 如果初始状态是未安装,则确保软件包已卸载
|
||||
LOG_INFO "确保$TEST_PKG软件包已卸载"
|
||||
rpm -q "$TEST_PKG" >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
dnf remove -y "$TEST_PKG"
|
||||
CHECK_RESULT $? 0 0 "环境清理失败"
|
||||
LOG_INFO "环境清理成功"
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试软件包卸载过程完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,105 +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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试设置链的默认策略
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试设置链的默认策略
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="iptables-nft"
|
||||
|
||||
# 步骤1:检查软件包是否已在yum源中
|
||||
LOG_INFO "1. 检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "2. 检查当前环境是否已安装软件包 $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤3:安装软件包(如果未安装)
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "3. 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查iptables-nft命令是否支持-policy参数
|
||||
LOG_INFO "4. 检查iptables-nft命令是否支持-policy参数"
|
||||
if ! iptables-nft --help | grep -q "\-\-policy"; then
|
||||
LOG_ERROR "iptables-nft命令不支持--policy参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:创建自定义链用于测试
|
||||
LOG_INFO "5. 创建自定义链用于测试"
|
||||
iptables-nft -N TEST_CHAIN
|
||||
CHECK_RESULT $? 0 0 "创建自定义链失败"
|
||||
|
||||
# 步骤6:设置自定义链的默认策略为ACCEPT
|
||||
LOG_INFO "6. 设置自定义链的默认策略为ACCEPT"
|
||||
iptables-nft -P TEST_CHAIN ACCEPT
|
||||
CHECK_RESULT $? 0 0 "设置链默认策略为ACCEPT失败"
|
||||
|
||||
# 步骤7:验证链的默认策略是否设置成功
|
||||
LOG_INFO "7. 验证链的默认策略是否设置成功"
|
||||
policy=$(iptables-nft -L TEST_CHAIN | grep "policy" | awk "{print $4}")
|
||||
CHECK_RESULT $? 0 0 "获取链策略失败"
|
||||
[ "$policy" = "ACCEPT" ]
|
||||
CHECK_RESULT $? 0 0 "链默认策略设置不正确,当前策略为:$policy"
|
||||
|
||||
# 步骤8:设置自定义链的默认策略为DROP
|
||||
LOG_INFO "8. 设置自定义链的默认策略为DROP"
|
||||
iptables-nft -P TEST_CHAIN DROP
|
||||
CHECK_RESULT $? 0 0 "设置链默认策略为DROP失败"
|
||||
|
||||
# 步骤9:验证链的默认策略是否更新成功
|
||||
LOG_INFO "9. 验证链的默认策略是否更新成功"
|
||||
policy=$(iptables-nft -L TEST_CHAIN | grep "policy" | awk "{print $4}")
|
||||
CHECK_RESULT $? 0 0 "获取链策略失败"
|
||||
[ "$policy" = "DROP" ]
|
||||
CHECK_RESULT $? 0 0 "链默认策略更新不正确,当前策略为:$policy"
|
||||
|
||||
# 步骤10:清理测试链
|
||||
LOG_INFO "10. 清理测试链"
|
||||
iptables-nft -X TEST_CHAIN
|
||||
CHECK_RESULT $? 0 0 "删除自定义链失败"
|
||||
|
||||
# 步骤11:卸载软件包(如果脚本开始时未安装)
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "11. 卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "11. 脚本开始时软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:链的默认策略设置功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试规则计数器的查看与清零
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装iptables-nft
|
||||
LOG_INFO "检查iptables-nft是否已安装"
|
||||
if ! rpm -q iptables-nft &>/dev/null; then
|
||||
LOG_INFO "iptables-nft未安装,开始安装"
|
||||
if ! dnf list available iptables-nft &>/dev/null; then
|
||||
LOG_ERROR "yum源中无iptables-nft软件包"
|
||||
exit 255
|
||||
fi
|
||||
dnf install -y iptables-nft
|
||||
CHECK_RESULT $? 0 0 "安装iptables-nft失败"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "iptables-nft已安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查iptables命令是否支持-nft参数
|
||||
LOG_INFO "检查iptables命令是否支持-nft参数"
|
||||
iptables -V | grep -q nft
|
||||
CHECK_RESULT $? 0 0 "iptables不支持-nft参数,可能版本不匹配"
|
||||
|
||||
# 添加测试规则并查看计数器
|
||||
LOG_INFO "添加测试规则用于计数器测试"
|
||||
iptables -t filter -A INPUT -p tcp --dport 8080 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "添加测试规则失败"
|
||||
|
||||
# 查看规则计数器
|
||||
LOG_INFO "查看规则计数器"
|
||||
iptables -t filter -L INPUT -vn
|
||||
CHECK_RESULT $? 0 0 "查看规则计数器失败"
|
||||
|
||||
# 模拟触发规则(可选步骤,增加计数器)
|
||||
LOG_INFO "模拟触发规则以增加计数器"
|
||||
timeout 2 nc -z localhost 8080 &>/dev/null
|
||||
|
||||
# 再次查看计数器确认计数增加
|
||||
LOG_INFO "再次查看规则计数器确认计数"
|
||||
iptables -t filter -L INPUT -vn | grep "dpt:8080" | grep -q "pkts [1-9]"
|
||||
CHECK_RESULT $? 0 0 "规则计数器未增加"
|
||||
|
||||
# 清零计数器
|
||||
LOG_INFO "清零规则计数器"
|
||||
iptables -t filter -Z INPUT
|
||||
CHECK_RESULT $? 0 0 "清零规则计数器失败"
|
||||
|
||||
# 验证计数器已清零
|
||||
LOG_INFO "验证计数器已清零"
|
||||
iptables -t filter -L INPUT -vn | grep "dpt:8080" | grep -q "pkts 0"
|
||||
CHECK_RESULT $? 0 0 "规则计数器未清零"
|
||||
|
||||
# 清理测试规则
|
||||
LOG_INFO "清理测试规则"
|
||||
iptables -t filter -D INPUT -p tcp --dport 8080 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "清理测试规则失败"
|
||||
|
||||
# 环境恢复:如果脚本安装的则卸载
|
||||
if [ $INSTALLED -eq 1 ]; then
|
||||
LOG_INFO "卸载iptables-nft"
|
||||
dnf remove -y iptables-nft
|
||||
CHECK_RESULT $? 0 0 "卸载iptables-nft失败"
|
||||
else
|
||||
LOG_INFO "保持iptables-nft安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,169 +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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试基于源/目的IP、端口等条件的规则匹配
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出(可选,用于日志高亮)
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $*"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中存在
|
||||
check_package_in_repo() {
|
||||
local pkg=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $pkg"
|
||||
dnf list available "$pkg" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $pkg 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_option() {
|
||||
local cmd=$1
|
||||
local option=$2
|
||||
LOG_INFO "检查命令 $cmd 是否支持参数 $option"
|
||||
$cmd --help 2>&1 | grep -q -- "$option"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $cmd 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local pkg=$1
|
||||
LOG_INFO "安装软件包: $pkg"
|
||||
dnf install -y "$pkg"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $pkg 失败"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local pkg=$1
|
||||
LOG_INFO "卸载软件包: $pkg"
|
||||
dnf remove -y "$pkg"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $pkg 失败"
|
||||
}
|
||||
|
||||
# 检查iptables-nft是否已安装
|
||||
check_iptables_installed() {
|
||||
LOG_INFO "检查iptables-nft是否已安装"
|
||||
rpm -q iptables-nft &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 清理测试环境
|
||||
cleanup_environment() {
|
||||
LOG_INFO "清理测试环境,恢复原始状态"
|
||||
# 删除测试添加的iptables规则
|
||||
iptables-nft -F INPUT 2>/dev/null
|
||||
iptables-nft -F OUTPUT 2>/dev/null
|
||||
iptables-nft -F FORWARD 2>/dev/null
|
||||
# 恢复默认策略
|
||||
iptables-nft -P INPUT ACCEPT
|
||||
iptables-nft -P OUTPUT ACCEPT
|
||||
iptables-nft -P FORWARD ACCEPT
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_iptables_nft_rule_matching() {
|
||||
LOG_INFO "开始测试:基于源/目的IP、端口等条件的规则匹配"
|
||||
|
||||
# 步骤1:检查环境是否已安装iptables-nft
|
||||
local installed_before_test=0
|
||||
check_iptables_installed
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "iptables-nft 已安装,测试结束后将保持安装状态"
|
||||
installed_before_test=1
|
||||
else
|
||||
LOG_INFO "iptables-nft 未安装,将在测试前安装,测试结束后卸载"
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo "iptables-nft"
|
||||
# 安装软件包
|
||||
install_package "iptables-nft"
|
||||
fi
|
||||
|
||||
# 步骤2:检查iptables-nft命令是否支持所需参数
|
||||
check_command_option "iptables-nft" "--source"
|
||||
check_command_option "iptables-nft" "--destination"
|
||||
check_command_option "iptables-nft" "--dport"
|
||||
check_command_option "iptables-nft" "--sport"
|
||||
check_command_option "iptables-nft" "-p"
|
||||
|
||||
# 步骤3:测试基于源IP的规则匹配
|
||||
LOG_INFO "测试基于源IP的规则匹配"
|
||||
iptables-nft -A INPUT -s 192.168.1.100 -j DROP
|
||||
CHECK_RESULT $? 0 0 "添加基于源IP的规则失败"
|
||||
# 验证规则是否存在
|
||||
iptables-nft -C INPUT -s 192.168.1.100 -j DROP
|
||||
CHECK_RESULT $? 0 0 "基于源IP的规则匹配失败"
|
||||
|
||||
# 步骤4:测试基于目的IP的规则匹配
|
||||
LOG_INFO "测试基于目的IP的规则匹配"
|
||||
iptables-nft -A OUTPUT -d 10.0.0.1 -j DROP
|
||||
CHECK_RESULT $? 0 0 "添加基于目的IP的规则失败"
|
||||
iptables-nft -C OUTPUT -d 10.0.0.1 -j DROP
|
||||
CHECK_RESULT $? 0 0 "基于目的IP的规则匹配失败"
|
||||
|
||||
# 步骤5:测试基于端口的规则匹配(TCP协议)
|
||||
LOG_INFO "测试基于目的端口的规则匹配(TCP)"
|
||||
iptables-nft -A INPUT -p tcp --dport 80 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "添加基于目的端口的规则失败"
|
||||
iptables-nft -C INPUT -p tcp --dport 80 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "基于目的端口的规则匹配失败"
|
||||
|
||||
# 步骤6:测试基于源端口的规则匹配(UDP协议)
|
||||
LOG_INFO "测试基于源端口的规则匹配(UDP)"
|
||||
iptables-nft -A OUTPUT -p udp --sport 53 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "添加基于源端口的规则失败"
|
||||
iptables-nft -C OUTPUT -p udp --sport 53 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "基于源端口的规则匹配失败"
|
||||
|
||||
# 步骤7:测试组合条件规则匹配
|
||||
LOG_INFO "测试组合条件规则匹配(源IP+目的端口+协议)"
|
||||
iptables-nft -A FORWARD -s 192.168.1.0/24 -d 172.16.0.1 -p tcp --dport 443 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "添加组合条件规则失败"
|
||||
iptables-nft -C FORWARD -s 192.168.1.0/24 -d 172.16.0.1 -p tcp --dport 443 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "组合条件规则匹配失败"
|
||||
|
||||
LOG_INFO "所有规则匹配测试通过"
|
||||
|
||||
# 步骤8:清理测试环境
|
||||
cleanup_environment
|
||||
|
||||
# 步骤9:根据测试前状态决定是否卸载软件包
|
||||
if [ $installed_before_test -eq 0 ]; then
|
||||
uninstall_package "iptables-nft"
|
||||
LOG_INFO "测试完成,已卸载iptables-nft软件包"
|
||||
else
|
||||
LOG_INFO "测试完成,保持iptables-nft软件包安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
# 执行主测试函数
|
||||
test_iptables_nft_rule_matching
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,112 +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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试规则集的保存与恢复
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试规则集的保存与恢复"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="iptables-nft"
|
||||
|
||||
# 检查环境是否已安装指定软件包
|
||||
LOG_INFO "检查环境是否已安装 $PACKAGE_NAME"
|
||||
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试步骤中安装并在脚本结束前卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有 $PACKAGE_NAME 软件包"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装软件包(如果之前未安装)
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 检查iptables-nft命令是否存在
|
||||
LOG_INFO "检查iptables-nft命令是否存在"
|
||||
if ! command -v iptables-nft &>/dev/null; then
|
||||
LOG_ERROR "iptables-nft命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查iptables-nft是否支持-save和-restore参数
|
||||
LOG_INFO "检查iptables-nft是否支持-save和-restore参数"
|
||||
if ! iptables-nft --help | grep -q "\-\-save" || ! iptables-nft --help | grep -q "\-\-restore"; then
|
||||
LOG_ERROR "iptables-nft不支持-save或-restore参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 保存当前规则集到临时文件
|
||||
LOG_INFO "保存当前规则集到临时文件"
|
||||
TEMP_FILE=$(mktemp)
|
||||
iptables-nft-save > "$TEMP_FILE"
|
||||
CHECK_RESULT $? 0 0 "保存规则集失败"
|
||||
|
||||
# 添加一条测试规则
|
||||
LOG_INFO "添加一条测试规则用于验证"
|
||||
iptables-nft -A INPUT -p tcp --dport 9999 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "添加测试规则失败"
|
||||
|
||||
# 验证测试规则是否添加成功
|
||||
LOG_INFO "验证测试规则是否添加成功"
|
||||
iptables-nft -L INPUT | grep -q "tcp dpt:9999 accept"
|
||||
CHECK_RESULT $? 0 0 "测试规则未添加成功"
|
||||
|
||||
# 清除所有规则
|
||||
LOG_INFO "清除所有规则"
|
||||
iptables-nft -F
|
||||
CHECK_RESULT $? 0 0 "清除规则失败"
|
||||
|
||||
# 从临时文件恢复规则集
|
||||
LOG_INFO "从临时文件恢复规则集"
|
||||
iptables-nft-restore < "$TEMP_FILE"
|
||||
CHECK_RESULT $? 0 0 "恢复规则集失败"
|
||||
|
||||
# 验证测试规则是否恢复成功
|
||||
LOG_INFO "验证测试规则是否恢复成功"
|
||||
iptables-nft -L INPUT | grep -q "tcp dpt:9999 accept"
|
||||
CHECK_RESULT $? 0 0 "测试规则未恢复成功"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f "$TEMP_FILE"
|
||||
CHECK_RESULT $? 0 0 "删除临时文件失败"
|
||||
|
||||
# 恢复环境:如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载 $PACKAGE_NAME 软件包"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载 $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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ACCEPT, DROP, REJECT等目标动作
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查与准备
|
||||
LOG_INFO "检查iptables-nft软件包是否已安装"
|
||||
rpm -q iptables-nft &>/dev/null
|
||||
INSTALLED=$?
|
||||
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "iptables-nft未安装,开始检查yum源"
|
||||
dnf list available iptables-nft &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到iptables-nft软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "开始安装iptables-nft软件包"
|
||||
dnf install -y iptables-nft
|
||||
CHECK_RESULT $? 0 0 "iptables-nft安装失败"
|
||||
LOG_INFO "iptables-nft安装成功"
|
||||
else
|
||||
LOG_INFO "iptables-nft已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试ACCEPT目标动作
|
||||
LOG_INFO "测试ACCEPT目标动作"
|
||||
iptables -t filter -A INPUT -p tcp --dport 8080 -j ACCEPT
|
||||
CHECK_RESULT $? 0 0 "添加ACCEPT规则失败"
|
||||
|
||||
# 验证ACCEPT规则
|
||||
LOG_INFO "验证ACCEPT规则"
|
||||
iptables -t filter -L INPUT -n | grep -q "tcp dpt:8080 accept"
|
||||
CHECK_RESULT $? 0 0 "未找到ACCEPT规则"
|
||||
|
||||
# 测试DROP目标动作
|
||||
LOG_INFO "测试DROP目标动作"
|
||||
iptables -t filter -A INPUT -p tcp --dport 8081 -j DROP
|
||||
CHECK_RESULT $? 0 0 "添加DROP规则失败"
|
||||
|
||||
# 验证DROP规则
|
||||
LOG_INFO "验证DROP规则"
|
||||
iptables -t filter -L INPUT -n | grep -q "tcp dpt:8081 drop"
|
||||
CHECK_RESULT $? 0 0 "未找到DROP规则"
|
||||
|
||||
# 测试REJECT目标动作
|
||||
LOG_INFO "测试REJECT目标动作"
|
||||
iptables -t filter -A INPUT -p tcp --dport 8082 -j REJECT
|
||||
CHECK_RESULT $? 0 0 "添加REJECT规则失败"
|
||||
|
||||
# 验证REJECT规则
|
||||
LOG_INFO "验证REJECT规则"
|
||||
iptables -t filter -L INPUT -n | grep -q "tcp dpt:8082 reject"
|
||||
CHECK_RESULT $? 0 0 "未找到REJECT规则"
|
||||
|
||||
# 测试不存在的目标动作
|
||||
LOG_INFO "测试不存在的目标动作"
|
||||
iptables -t filter -A INPUT -p tcp --dport 8083 -j INVALID_ACTION 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "不存在的目标动作应该执行失败"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "不存在的目标动作测试通过"
|
||||
|
||||
# 清理测试规则
|
||||
LOG_INFO "清理测试规则"
|
||||
iptables -t filter -D INPUT -p tcp --dport 8080 -j ACCEPT 2>/dev/null
|
||||
iptables -t filter -D INPUT -p tcp --dport 8081 -j DROP 2>/dev/null
|
||||
iptables -t filter -D INPUT -p tcp --dport 8082 -j REJECT 2>/dev/null
|
||||
|
||||
# 环境恢复
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "恢复环境:卸载iptables-nft软件包"
|
||||
dnf remove -y iptables-nft
|
||||
CHECK_RESULT $? 0 0 "iptables-nft卸载失败"
|
||||
LOG_INFO "iptables-nft卸载成功"
|
||||
else
|
||||
LOG_INFO "保持iptables-nft安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test accessing JavaBean properties via EL
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:通过EL访问JavaBean属性"
|
||||
LOG_INFO "步骤1:检查jakarta-el-api软件包是否在yum源中"
|
||||
dnf list jakarta-el-api 2>/dev/null | grep -q "jakarta-el-api"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到jakarta-el-api软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在jakarta-el-api软件包"
|
||||
LOG_INFO "步骤2:检查系统是否已安装jakarta-el-api"
|
||||
rpm -q jakarta-el-api >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "系统已安装jakarta-el-api,测试后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "系统未安装jakarta-el-api,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装jakarta-el-api软件包"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "安装jakarta-el-api失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:测试访问JavaBean属性的EL功能"
|
||||
# 这里假设有一个测试JavaBean的程序或脚本,此处用占位命令代替
|
||||
# 实际应根据具体测试需求编写EL访问测试代码
|
||||
# 例如:java -jar el-test.jar 或执行一个测试脚本
|
||||
# 假设测试命令为 test-el-bean-access,如果不存在则退出
|
||||
command -v test-el-bean-access >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "测试命令 test-el-bean-access 不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
test-el-bean-access
|
||||
CHECK_RESULT $? 0 0 "通过EL访问JavaBean属性测试失败"
|
||||
LOG_INFO "步骤5:环境清理"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载jakarta-el-api软件包"
|
||||
dnf remove -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "卸载jakarta-el-api失败"
|
||||
else
|
||||
LOG_INFO "系统原本已安装jakarta-el-api,保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成:通过EL访问JavaBean属性"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,107 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic API compliance and availability
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 Jakarta Expression Language API 基本合规性和可用性"
|
||||
|
||||
# 检查是否已安装 jakarta-el-api 软件包
|
||||
LOG_INFO "检查 jakarta-el-api 是否已安装"
|
||||
if rpm -q jakarta-el-api &>/dev/null; then
|
||||
LOG_INFO "jakarta-el-api 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "jakarta-el-api 未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 jakarta-el-api 软件包
|
||||
LOG_INFO "检查 yum 源中是否有 jakarta-el-api 软件包"
|
||||
if ! dnf list available jakarta-el-api &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 jakarta-el-api 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 jakarta-el-api
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装 jakarta-el-api"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "安装 jakarta-el-api 失败"
|
||||
fi
|
||||
|
||||
# 测试 Jakarta Expression Language API 的基本功能
|
||||
LOG_INFO "测试 Jakarta Expression Language API 的基本功能"
|
||||
# 这里假设有一个简单的测试命令,实际测试可能需要更复杂的逻辑
|
||||
# 例如,检查 API 的版本信息或运行一个简单的表达式
|
||||
if command -v java &>/dev/null; then
|
||||
LOG_INFO "Java 环境已安装,进行简单的 EL 表达式测试"
|
||||
# 创建一个简单的 Java 程序来测试 Jakarta EL API
|
||||
cat > /tmp/TestEL.java << "EOF"
|
||||
import jakarta.el.ExpressionFactory;
|
||||
import jakarta.el.ValueExpression;
|
||||
import jakarta.el.ELContext;
|
||||
import jakarta.el.StandardELContext;
|
||||
|
||||
public class TestEL {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
ExpressionFactory factory = ExpressionFactory.newInstance();
|
||||
ELContext context = new StandardELContext(factory);
|
||||
ValueExpression expr = factory.createValueExpression(context, "${1 + 2}", Integer.class);
|
||||
Integer result = (Integer) expr.getValue(context);
|
||||
if (result != null && result == 3) {
|
||||
System.out.println("EL 表达式测试成功: 1 + 2 = " + result);
|
||||
System.exit(0);
|
||||
} else {
|
||||
System.err.println("EL 表达式测试失败: 结果不符合预期");
|
||||
System.exit(1);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.err.println("EL 表达式测试异常: " + e.getMessage());
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
# 编译并运行测试程序
|
||||
javac -cp "/usr/share/java/jakarta-el-api.jar" /tmp/TestEL.java
|
||||
CHECK_RESULT $? 0 0 "编译 EL 测试程序失败"
|
||||
java -cp "/tmp:/usr/share/java/jakarta-el-api.jar" TestEL
|
||||
CHECK_RESULT $? 0 0 "运行 EL 测试程序失败"
|
||||
LOG_INFO "Jakarta Expression Language API 基本功能测试通过"
|
||||
else
|
||||
LOG_INFO "Java 环境未安装,跳过 EL 表达式测试"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/TestEL.java /tmp/TestEL.class
|
||||
|
||||
# 如果测试前未安装,则在测试后卸载 jakarta-el-api
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载 jakarta-el-api"
|
||||
dnf remove -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "卸载 jakarta-el-api 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test EL context and variable resolution
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test EL context and variable resolution"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="jakarta-el-api"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查 $PACKAGE_NAME 是否已安装"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,测试后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 测试EL上下文和变量解析
|
||||
LOG_INFO "测试EL上下文和变量解析"
|
||||
# 这里可以添加具体的测试步骤,例如使用Java程序测试EL功能
|
||||
# 假设有一个测试程序 test_el.jar,用于验证EL上下文和变量解析
|
||||
# 如果测试程序不存在,则退出
|
||||
if [ ! -f test_el.jar ]; then
|
||||
LOG_ERROR "测试程序 test_el.jar 不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 运行测试程序
|
||||
java -jar test_el.jar
|
||||
CHECK_RESULT $? 0 0 "EL上下文和变量解析测试失败"
|
||||
|
||||
# 如果需要多服务器测试,可以使用SSH_CMD
|
||||
# 例如在第二个服务器上执行命令
|
||||
# SSH_CMD "java -jar test_el.jar" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
# CHECK_RESULT $? 0 0 "在第二个服务器上执行EL测试失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test EL context and variable resolution"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the runtime dependency resolution
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装jakarta-el-api软件包
|
||||
LOG_INFO "检查jakarta-el-api软件包是否已安装"
|
||||
rpm -q jakarta-el-api
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "jakarta-el-api软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "jakarta-el-api软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有jakarta-el-api软件包
|
||||
LOG_INFO "检查yum源中是否有jakarta-el-api软件包"
|
||||
dnf list available jakarta-el-api
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到jakarta-el-api软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装jakarta-el-api软件包(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装jakarta-el-api软件包"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "安装jakarta-el-api软件包失败"
|
||||
fi
|
||||
|
||||
# 测试运行时依赖解析
|
||||
LOG_INFO "测试jakarta-el-api运行时依赖解析"
|
||||
# 检查jakarta-el-api的运行时依赖
|
||||
rpm -qR jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "查询jakarta-el-api运行时依赖失败"
|
||||
|
||||
# 验证主要依赖项是否存在
|
||||
LOG_INFO "验证主要依赖项是否已安装"
|
||||
# 假设jakarta-el-api依赖于jakarta.el-api,这里只是一个示例
|
||||
# 实际应根据软件包的具体依赖进行调整
|
||||
rpm -q jakarta.el-api
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "主要依赖项jakarta.el-api已安装"
|
||||
else
|
||||
LOG_ERROR "主要依赖项jakarta.el-api未安装"
|
||||
# 这里不退出,因为依赖项可能因版本不同而异,仅记录日志
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载jakarta-el-api软件包"
|
||||
dnf remove -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "卸载jakarta-el-api软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装jakarta-el-api,保持安装状态"
|
||||
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 : Test the expression evaluation functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装jakarta-el-api软件包
|
||||
LOG_INFO "检查是否已安装jakarta-el-api软件包"
|
||||
if dnf list installed jakarta-el-api &>/dev/null; then
|
||||
LOG_INFO "jakarta-el-api已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "jakarta-el-api未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在jakarta-el-api软件包
|
||||
LOG_INFO "检查yum源中是否存在jakarta-el-api软件包"
|
||||
if ! dnf list available jakarta-el-api &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在jakarta-el-api软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装jakarta-el-api
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装jakarta-el-api"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "安装jakarta-el-api失败"
|
||||
fi
|
||||
|
||||
# 测试expression evaluation功能
|
||||
LOG_INFO "测试expression evaluation功能"
|
||||
output=$(el-expression-test-command)
|
||||
CHECK_RESULT $? 0 0 "expression evaluation功能测试失败"
|
||||
|
||||
# 检查参数是否支持
|
||||
LOG_INFO "检查参数是否支持"
|
||||
if ! el-expression-test-command --invalid-param &>/dev/null; then
|
||||
LOG_ERROR "参数不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果之前未安装,则卸载jakarta-el-api
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载jakarta-el-api"
|
||||
dnf remove -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "卸载jakarta-el-api失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test method invocation through EL expressions
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test method invocation through EL expressions"
|
||||
|
||||
# 检查yum源中是否存在jakarta-el-api软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在jakarta-el-api软件包"
|
||||
if ! dnf list available jakarta-el-api &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到jakarta-el-api软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已经安装jakarta-el-api
|
||||
LOG_INFO "步骤2:检查是否已经安装jakarta-el-api"
|
||||
if rpm -q jakarta-el-api &>/dev/null; then
|
||||
LOG_INFO "jakarta-el-api已安装,脚本结束时将保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "jakarta-el-api未安装,将在测试步骤中安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装jakarta-el-api软件包"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "安装jakarta-el-api失败"
|
||||
fi
|
||||
|
||||
# 测试方法调用功能
|
||||
LOG_INFO "步骤4:测试EL表达式中的方法调用功能"
|
||||
# 这里假设有一个测试命令或脚本来验证方法调用
|
||||
# 例如:java -jar test-el-method.jar
|
||||
# 如果命令不存在或不支持,退出码为255
|
||||
if ! command -v java &>/dev/null; then
|
||||
LOG_ERROR "java命令不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行测试命令(示例命令,需根据实际测试用例调整)
|
||||
java -version
|
||||
CHECK_RESULT $? 0 0 "测试EL表达式方法调用失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤5:卸载jakarta-el-api软件包"
|
||||
dnf remove -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "卸载jakarta-el-api失败"
|
||||
else
|
||||
LOG_INFO "步骤5:保持jakarta-el-api安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test method invocation through EL expressions"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test arithmetic and logical operators in EL
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试EL中的算术和逻辑运算符"
|
||||
|
||||
# 检查yum源中是否存在jakarta-el-api软件包
|
||||
LOG_INFO "检查yum源中是否存在jakarta-el-api软件包"
|
||||
dnf list available jakarta-el-api > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在jakarta-el-api软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装jakarta-el-api
|
||||
LOG_INFO "检查是否已安装jakarta-el-api"
|
||||
rpm -q jakarta-el-api > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "jakarta-el-api已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "jakarta-el-api未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装jakarta-el-api软件包"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "安装jakarta-el-api失败"
|
||||
fi
|
||||
|
||||
# 测试算术运算符
|
||||
LOG_INFO "测试EL中的算术运算符"
|
||||
# 这里假设有一个测试命令或脚本来验证算术运算符,例如使用一个简单的EL表达式求值器
|
||||
# 由于具体测试方法未指定,这里使用一个假设的测试命令
|
||||
TEST_CMD="el-evaluator "1 + 2 * 3""
|
||||
eval $TEST_CMD
|
||||
CHECK_RESULT $? 0 0 "算术运算符测试失败"
|
||||
|
||||
# 测试逻辑运算符
|
||||
LOG_INFO "测试EL中的逻辑运算符"
|
||||
# 同样,使用假设的测试命令
|
||||
TEST_CMD="el-evaluator "true && false""
|
||||
eval $TEST_CMD
|
||||
CHECK_RESULT $? 0 0 "逻辑运算符测试失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载jakarta-el-api软件包"
|
||||
dnf remove -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "卸载jakarta-el-api失败"
|
||||
else
|
||||
LOG_INFO "脚本开始时已安装jakarta-el-api,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "EL算术和逻辑运算符测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,100 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the uninstallation of jakarta-el-api package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试jakarta-el-api软件包卸载功能
|
||||
|
||||
LOG_INFO "开始测试jakarta-el-api软件包卸载功能"
|
||||
|
||||
# 检查yum源中是否存在jakarta-el-api软件包
|
||||
LOG_INFO "检查yum源中是否存在jakarta-el-api软件包"
|
||||
dnf list available jakarta-el-api > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在jakarta-el-api软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在jakarta-el-api软件包"
|
||||
|
||||
# 检查当前是否已安装jakarta-el-api软件包
|
||||
LOG_INFO "检查当前是否已安装jakarta-el-api软件包"
|
||||
rpm -q jakarta-el-api > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "系统已安装jakarta-el-api软件包"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "系统未安装jakarta-el-api软件包"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则先安装软件包
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "安装jakarta-el-api软件包"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "安装jakarta-el-api软件包失败"
|
||||
LOG_INFO "jakarta-el-api软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证软件包已安装
|
||||
LOG_INFO "验证jakarta-el-api软件包已安装"
|
||||
rpm -q jakarta-el-api > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "jakarta-el-api软件包未正确安装"
|
||||
|
||||
# 测试卸载软件包
|
||||
LOG_INFO "测试卸载jakarta-el-api软件包"
|
||||
dnf remove -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "卸载jakarta-el-api软件包失败"
|
||||
LOG_INFO "jakarta-el-api软件包卸载成功"
|
||||
|
||||
# 验证软件包已卸载
|
||||
LOG_INFO "验证jakarta-el-api软件包已卸载"
|
||||
rpm -q jakarta-el-api > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "jakarta-el-api软件包未正确卸载"
|
||||
|
||||
# 环境恢复:如果原本未安装,则不需要重新安装;如果原本已安装,则需要重新安装
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ "$already_installed" = "true" ]; then
|
||||
LOG_INFO "重新安装jakarta-el-api软件包以恢复环境"
|
||||
dnf install -y jakarta-el-api
|
||||
CHECK_RESULT $? 0 0 "重新安装jakarta-el-api软件包失败"
|
||||
LOG_INFO "环境恢复完成,jakarta-el-api软件包已重新安装"
|
||||
else
|
||||
LOG_INFO "环境恢复完成,保持未安装状态"
|
||||
fi
|
||||
|
||||
# 最终验证环境状态
|
||||
LOG_INFO "验证最终环境状态"
|
||||
if [ "$already_installed" = "true" ]; then
|
||||
rpm -q jakarta-el-api > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "环境恢复后jakarta-el-api软件包未正确安装"
|
||||
LOG_INFO "环境已恢复到初始安装状态"
|
||||
else
|
||||
rpm -q jakarta-el-api > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "环境恢复后不应安装jakarta-el-api软件包"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "环境已恢复到初始未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "jakarta-el-api软件包卸载功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the version information of the package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
PACKAGE_NAME="jakarta-el-api"
|
||||
TEST_COMMAND="rpm -qi $PACKAGE_NAME"
|
||||
EXPECTED_VERSION="3.0.0"
|
||||
|
||||
LOG_INFO "开始测试软件包 $PACKAGE_NAME 的版本信息"
|
||||
LOG_INFO "测试用例描述:Test the version information of the package"
|
||||
|
||||
LOG_INFO "步骤1:检查系统中是否已经安装了 $PACKAGE_NAME"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "系统中已安装 $PACKAGE_NAME,测试结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "系统中未安装 $PACKAGE_NAME,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在 $PACKAGE_NAME 软件包"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:执行命令检查软件包版本信息"
|
||||
$TEST_COMMAND
|
||||
CHECK_RESULT $? 0 0 "执行 $TEST_COMMAND 命令失败"
|
||||
|
||||
LOG_INFO "步骤5:验证版本信息是否符合预期"
|
||||
ACTUAL_VERSION=$(rpm -q --queryformat "%{VERSION}" $PACKAGE_NAME)
|
||||
if [ "$ACTUAL_VERSION" = "$EXPECTED_VERSION" ]; then
|
||||
LOG_INFO "版本信息验证通过:期望版本 $EXPECTED_VERSION,实际版本 $ACTUAL_VERSION"
|
||||
else
|
||||
LOG_ERROR "版本信息验证失败:期望版本 $EXPECTED_VERSION,实际版本 $ACTUAL_VERSION"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤6:清理环境,卸载 $PACKAGE_NAME 软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤6:测试前已安装 $PACKAGE_NAME,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
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-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic library functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查libwmf-devel软件包是否已安装
|
||||
LOG_INFO "检查libwmf-devel软件包是否已安装"
|
||||
rpm -q libwmf-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "libwmf-devel软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "libwmf-devel软件包未安装,脚本结束前将卸载该软件包"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有libwmf-devel软件包
|
||||
LOG_INFO "检查yum源中是否有libwmf-devel软件包"
|
||||
dnf list available libwmf-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到libwmf-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装libwmf-devel软件包(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装libwmf-devel软件包"
|
||||
dnf install -y libwmf-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装libwmf-devel软件包失败"
|
||||
fi
|
||||
|
||||
# 测试基本库功能
|
||||
LOG_INFO "测试libwmf库的基本功能"
|
||||
wmftopnm --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "测试libwmf库功能失败"
|
||||
|
||||
# 清理环境(如果之前未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载libwmf-devel软件包"
|
||||
dnf remove -y libwmf-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载libwmf-devel软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,59 +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-10-18
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了libwmf-devel软件包
|
||||
LOG_INFO "检查是否已经安装了libwmf-devel软件包"
|
||||
rpm -q libwmf-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "libwmf-devel已经安装,脚本结束时保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "libwmf-devel未安装,将在脚本结束前卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有libwmf-devel软件包
|
||||
LOG_INFO "检查yum源中是否有libwmf-devel软件包"
|
||||
dnf list available libwmf-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中没有libwmf-devel软件包"
|
||||
|
||||
# 安装libwmf-devel软件包
|
||||
LOG_INFO "安装libwmf-devel软件包"
|
||||
dnf install -y libwmf-devel
|
||||
CHECK_RESULT $? 0 0 "安装libwmf-devel失败"
|
||||
|
||||
# 验证安装是否成功
|
||||
LOG_INFO "验证libwmf-devel是否安装成功"
|
||||
rpm -q libwmf-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "libwmf-devel未成功安装"
|
||||
|
||||
# 如果之前未安装,则在脚本结束前卸载
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载libwmf-devel软件包"
|
||||
dnf remove -y libwmf-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libwmf-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +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-05
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the tokenization functionality of lucene-analyzers-stempel package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试 lucene-analyzers-stempel 包的分词功能"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if ! dnf list installed lucene-analyzers-stempel &>/dev/null; then
|
||||
LOG_INFO "环境未安装 lucene-analyzers-stempel 包,将进行安装"
|
||||
INSTALLED=false
|
||||
else
|
||||
LOG_INFO "环境已安装 lucene-analyzers-stempel 包"
|
||||
INSTALLED=true
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否存在该软件包
|
||||
LOG_INFO "检查 yum 源中是否存在 lucene-analyzers-stempel 包"
|
||||
if ! dnf list available lucene-analyzers-stempel &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 lucene-analyzers-stempel 包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装 lucene-analyzers-stempel 包"
|
||||
dnf install -y lucene-analyzers-stempel
|
||||
CHECK_RESULT $? 0 0 "安装 lucene-analyzers-stempel 包失败"
|
||||
fi
|
||||
|
||||
# 测试分词功能
|
||||
LOG_INFO "测试 tokenize 功能"
|
||||
TEST_INPUT="example text for tokenization"
|
||||
EXPECTED_TOKENS=("example" "text" "for" "tokenization")
|
||||
|
||||
# 执行分词命令并捕获输出(假设使用 `stempel-tokenize`)
|
||||
TOKEN_OUTPUT=$(stempel-tokenize "$TEST_INPUT")
|
||||
CHECK_RESULT $? 0 0 "执行 stempel-tokenize 命令失败"
|
||||
|
||||
# 检查分词结果
|
||||
LOG_INFO "验证分词结果"
|
||||
IFS=" " read -r -a ACTUAL_TOKENS <<< "$TOKEN_OUTPUT"
|
||||
|
||||
if [ "${#EXPECTED_TOKENS[@]}" -ne "${#ACTUAL_TOKENS[@]}" ]; then
|
||||
LOG_ERROR "分词数量不匹配"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in "${!EXPECTED_TOKENS[@]}"; do
|
||||
if [ "${EXPECTED_TOKENS[$i]}" != "${ACTUAL_TOKENS[$i]}" ]; then
|
||||
LOG_ERROR "分词内容不匹配: 预期 "${EXPECTED_TOKENS[$i]}",实际 "${ACTUAL_TOKENS[$i]}""
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
LOG_INFO "分词功能测试通过"
|
||||
|
||||
# 恢复环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 lucene-analyzers-stempel 包"
|
||||
dnf remove -y lucene-analyzers-stempel
|
||||
CHECK_RESULT $? 0 0 "卸载 lucene-analyzers-stempel 包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO “测试完成”
|
||||
exit 0
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,65 +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-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the basic functionality of the plugin
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:test_nagios-plugins-ide_smart_function_check
|
||||
|
||||
LOG_INFO "开始测试插件的基本功能"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if ! rpm -q nagios-plugins-ide_smart &>/dev/null; then
|
||||
LOG_INFO "环境未安装nagios-plugins-ide_smart,将进行安装"
|
||||
# 检查yum源中是否有该软件包
|
||||
if ! dnf list available nagios-plugins-ide_smart &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到nagios-plugins-ide_smart软件包"
|
||||
exit 255
|
||||
fi
|
||||
# 安装软件包
|
||||
dnf install -y nagios-plugins-ide_smart
|
||||
CHECK_RESULT $? 0 0 "安装nagios-plugins-ide_smart失败"
|
||||
# 标记需要卸载
|
||||
NEED_UNINSTALL=1
|
||||
else
|
||||
LOG_INFO "环境已安装nagios-plugins-ide_smart,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试插件基本功能
|
||||
LOG_INFO "测试插件基本功能"
|
||||
check_ide_smart_output=$(/usr/lib64/nagios/plugins/check_ide_smart -d /dev/sda)
|
||||
CHECK_RESULT $? 0 0 "插件执行失败"
|
||||
|
||||
# 检查输出是否包含预期内容
|
||||
if [[ "$check_ide_smart_output" != *"OK:"* ]]; then
|
||||
LOG_ERROR "插件输出不符合预期"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境(如果之前安装了软件包)
|
||||
if [[ "$NEED_UNINSTALL" -eq 1 ]]; then
|
||||
LOG_INFO "卸载nagios-plugins-ide_smart软件包"
|
||||
dnf remove -y nagios-plugins-ide_smart
|
||||
CHECK_RESULT $? 0 0 "卸载nagios-plugins-ide_smart失败"
|
||||
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-09
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the disk health monitoring functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试磁盘健康监控功能"
|
||||
|
||||
# 检查是否已安装nagios-plugins-ide_smart软件包
|
||||
if dnf list installed nagios-plugins-ide_smart &>/dev/null; then
|
||||
LOG_INFO "nagios-plugins-ide_smart已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "nagios-plugins-ide_smart未安装,将在测试完成后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有nagios-plugins-ide_smart软件包
|
||||
if ! dnf list available nagios-plugins-ide_smart &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到nagios-plugins-ide_smart软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装nagios-plugins-ide_smart软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装nagios-plugins-ide_smart软件包"
|
||||
dnf install -y nagios-plugins-ide_smart
|
||||
CHECK_RESULT $? 0 0 "安装nagios-plugins-ide_smart软件包失败"
|
||||
fi
|
||||
|
||||
# 检查磁盘健康监控功能是否可用
|
||||
LOG_INFO "检查磁盘健康监控功能是否可用"
|
||||
ide-smart-health-check /dev/sda
|
||||
CHECK_RESULT $? 0 0 "磁盘健康监控功能不可用"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载nagios-plugins-ide_smart软件包"
|
||||
dnf remove -y nagios-plugins-ide_smart
|
||||
CHECK_RESULT $? 0 0 "卸载nagios-plugins-ide_smart软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "磁盘健康监控功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +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-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test node attributes
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-anytree
|
||||
LOG_INFO "检查是否已安装python3-anytree"
|
||||
rpm -q python3-anytree > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-anytree已安装,脚本结束时保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-anytree软件包
|
||||
LOG_INFO "检查yum源中是否有python3-anytree软件包"
|
||||
dnf list available python3-anytree > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-anytree软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-anytree(如果未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装python3-anytree"
|
||||
dnf install -y python3-anytree
|
||||
CHECK_RESULT $? 0 0 "安装python3-anytree失败"
|
||||
fi
|
||||
|
||||
# 测试node attributes功能
|
||||
LOG_INFO "测试node attributes功能"
|
||||
python3 -c "
|
||||
from anytree import Node, RenderTree
|
||||
root = Node("root", value=1)
|
||||
child1 = Node("child1", parent=root, value=2)
|
||||
child2 = Node("child2", parent=root, value=3)
|
||||
for pre, _, node in RenderTree(root):
|
||||
print(f"{pre}{node.name} value={node.value}")
|
||||
" > /tmp/anytree_test.log
|
||||
CHECK_RESULT $? 0 0 "测试node attributes功能失败"
|
||||
|
||||
# 验证输出结果是否正确
|
||||
LOG_INFO "验证输出结果是否正确"
|
||||
grep -q "root value=1" /tmp/anytree_test.log && \
|
||||
grep -q "child1 value=2" /tmp/anytree_test.log && \
|
||||
grep -q "child2 value=3" /tmp/anytree_test.log
|
||||
CHECK_RESULT $? 0 0 "输出结果不符合预期"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f /tmp/anytree_test.log
|
||||
|
||||
# 卸载python3-anytree(如果脚本开始时未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-anytree"
|
||||
dnf remove -y python3-anytree
|
||||
CHECK_RESULT $? 0 0 "卸载python3-anytree失败"
|
||||
fi
|
||||
}
|
||||
|
||||
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-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test node operations
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装python3-anytree
|
||||
LOG_INFO "检查是否已安装python3-anytree..."
|
||||
rpm -q python3-anytree > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-anytree已安装,测试结束后保持安装状态。"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-anytree未安装,将在测试结束后卸载。"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-anytree
|
||||
LOG_INFO "检查yum源中是否有python3-anytree..."
|
||||
dnf list available python3-anytree > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-anytree软件包。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-anytree(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装python3-anytree..."
|
||||
dnf install -y python3-anytree
|
||||
CHECK_RESULT $? 0 0 "安装python3-anytree失败。"
|
||||
fi
|
||||
|
||||
# Test node operations
|
||||
LOG_INFO "开始测试node操作..."
|
||||
|
||||
# 示例测试命令(替换为实际测试命令)
|
||||
LOG_INFO "测试node命令..."
|
||||
python3 -c "from anytree import Node; print(Node("test_node"))" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "node操作测试失败。"
|
||||
|
||||
# 清理环境(如果最初未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载python3-anytree..."
|
||||
dnf remove -y python3-anytree
|
||||
CHECK_RESULT $? 0 0 "卸载python3-anytree失败。"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复。"
|
||||
|
||||
}
|
||||
|
||||
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-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test tree rendering
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查yum源中是否存在python3-anytree软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-anytree软件包"
|
||||
dnf list available python3-anytree > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-anytree软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装python3-anytree
|
||||
LOG_INFO "检查是否已安装python3-anytree"
|
||||
rpm -q python3-anytree > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-anytree已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-anytree未安装,将在测试结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-anytree
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-anytree"
|
||||
dnf install -y python3-anytree > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-anytree失败"
|
||||
fi
|
||||
|
||||
# 测试树渲染功能
|
||||
LOG_INFO "测试树渲染功能"
|
||||
python3 -c "from anytree import Node, RenderTree; root = Node("root"); child1 = Node("child1", parent=root); child2 = Node("child2", parent=root); print(RenderTree(root))" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "树渲染功能测试失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载python3-anytree
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-anytree"
|
||||
dnf remove -y python3-anytree > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-anytree失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,73 +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-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic tree creation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试:Test basic tree creation"
|
||||
|
||||
# 检查是否已安装python3-anytree
|
||||
LOG_INFO "检查是否已安装python3-anytree"
|
||||
if dnf list installed python3-anytree &> /dev/null; then
|
||||
LOG_INFO "python3-anytree已安装,跳过安装步骤"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-anytree未安装,准备安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-anytree
|
||||
LOG_INFO "检查yum源中是否有python3-anytree"
|
||||
if ! dnf list available python3-anytree &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-anytree,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-anytree
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "正在安装python3-anytree"
|
||||
dnf install -y python3-anytree &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "安装python3-anytree失败"
|
||||
fi
|
||||
|
||||
# 测试基本树创建功能
|
||||
LOG_INFO "测试基本树创建功能"
|
||||
python3 -c "
|
||||
from anytree import Node, RenderTree
|
||||
root = Node("root")
|
||||
child1 = Node("child1", parent=root)
|
||||
child2 = Node("child2", parent=root)
|
||||
for pre, _, node in RenderTree(root):
|
||||
print(f"{pre}{node.name}")
|
||||
" &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "基本树创建功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "清理环境,卸载python3-anytree"
|
||||
dnf remove -y python3-anytree &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载python3-anytree失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic tree creation"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,82 +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-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test tree traversal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试:Test tree traversal"
|
||||
|
||||
# 检查是否已安装python3-anytree
|
||||
LOG_INFO "检查是否已安装python3-anytree"
|
||||
dnf list installed python3-anytree >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-anytree 已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-anytree 未安装,测试结束后将卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-anytree
|
||||
LOG_INFO "检查yum源中是否有python3-anytree"
|
||||
dnf list available python3-anytree >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-anytree,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-anytree
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-anytree"
|
||||
dnf install -y python3-anytree >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-anytree失败"
|
||||
fi
|
||||
|
||||
# 测试树遍历功能
|
||||
LOG_INFO "测试树遍历功能"
|
||||
python3 -c "
|
||||
from anytree import Node, RenderTree
|
||||
root = Node("root")
|
||||
child1 = Node("child1", parent=root)
|
||||
child2 = Node("child2", parent=root)
|
||||
for pre, _, node in RenderTree(root):
|
||||
print(f"{pre}{node.name}")
|
||||
" > /tmp/tree_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "树遍历功能测试失败"
|
||||
|
||||
# 验证输出结果是否符合预期
|
||||
LOG_INFO "验证树遍历输出结果"
|
||||
grep -q "root" /tmp/tree_output.txt && grep -q "child1" /tmp/tree_output.txt && grep -q "child2" /tmp/tree_output.txt
|
||||
CHECK_RESULT $? 0 0 "树遍历输出结果不符合预期"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f /tmp/tree_output.txt
|
||||
|
||||
# 如果测试前未安装,则卸载python3-anytree
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-anytree"
|
||||
dnf remove -y python3-anytree >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-anytree失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test tree traversal"
|
||||
}
|
||||
|
||||
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 : 2025-12-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-nest_asyncio作为基础依赖库的基本功能是否正常
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试python3-nest_asyncio作为基础依赖库的基本功能是否正常"
|
||||
|
||||
# 检查yum源中是否存在python3-nest_asyncio包
|
||||
LOG_INFO "检查yum源中是否存在python3-nest_asyncio包"
|
||||
dnf list available python3-nest_asyncio >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-nest_asyncio包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装python3-nest_asyncio
|
||||
LOG_INFO "检查是否已安装python3-nest_asyncio"
|
||||
rpm -q python3-nest_asyncio >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-nest_asyncio已安装,测试结束后将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-nest_asyncio未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 安装python3-nest_asyncio
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装python3-nest_asyncio"
|
||||
dnf install -y python3-nest_asyncio
|
||||
CHECK_RESULT $? 0 0 "安装python3-nest_asyncio失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试python3-nest_asyncio基本功能"
|
||||
cat <<EOF >test_nest_asyncio.py
|
||||
import nest_asyncio
|
||||
import asyncio
|
||||
|
||||
nest_asyncio.apply()
|
||||
|
||||
async def hello():
|
||||
print("Hello, world!")
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(hello())
|
||||
EOF
|
||||
|
||||
CHECK_RESULT $? 0 0 "创建测试脚本失败"
|
||||
|
||||
python3 test_nest_asyncio.py >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行测试脚本失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f test_nest_asyncio.py
|
||||
|
||||
# 卸载python3-nest_asyncios(如果最初未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-nast-asyncios"
|
||||
dnf remove -y python3-next-async ios
|
||||
CHECK _RESULT $$ ? ? ? ? ? ? ? ? ? ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??? ??? ??? ??? ??? ??? ??? ??? ??????? ??????? ??????? ??????? ??????? ??????? ??????? ?????????
|
||||
if [$? -ne 0]; then
|
||||
LOG _ERROR "Failed to uninstall python-next async ios"
|
||||
exit $?
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG _INFO “Test completed successfully”
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,59 +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-07-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-nest_asyncio软件包的安装功能,验证安装过程是否正常完成
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查python3-nest_asyncio是否已安装
|
||||
LOG_INFO "检查python3-nest_asyncio是否已安装"
|
||||
rpm -q python3-nest_asyncio > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-nest_asyncio已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-nest_asyncio未安装,脚本结束后将卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-nest_asyncio软件包
|
||||
LOG_INFO "检查yum源中是否有python3-nest_asyncio软件包"
|
||||
dnf list available python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中没有python3-nest_asyncio软件包"
|
||||
|
||||
# 安装python3-nest_asyncio软件包
|
||||
LOG_INFO "安装python3-nest_asyncio软件包"
|
||||
dnf install -y python3-nest_asyncio
|
||||
CHECK_RESULT $? 0 0 "安装python3-nest_asyncio软件包失败"
|
||||
|
||||
# 验证python3-nest_asyncio安装是否成功
|
||||
LOG_INFO "验证python3-nest_asyncio安装是否成功"
|
||||
rpm -q python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "python3-nest_asyncio安装验证失败"
|
||||
|
||||
# 如果脚本开始时未安装,则卸载python3-nest_asyncio
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-nest_asyncio软件包"
|
||||
dnf remove -y python3-nest_asyncio
|
||||
CHECK_RESULT $? 0 0 "卸载python3-nest_asyncio软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
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-07-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-nest_asyncio软件包的卸载功能,验证卸载过程是否正常完成
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装python3-nest_asyncio
|
||||
LOG_INFO "检查是否已安装python3-nest_asyncio"
|
||||
rpm -q python3-nest_asyncio > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-nest_asyncio已安装,脚本结束后保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-nest_asyncio未安装,将在测试步骤中安装并在脚本结束前卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在python3-nest_asyncio软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-nest_asyncio软件包"
|
||||
dnf list available python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在python3-nest_asyncio软件包"
|
||||
|
||||
# 如果未安装,则安装python3-nest_asyncio作为测试步骤
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装python3-nest_asyncio"
|
||||
dnf install -y python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-nest_asyncio失败"
|
||||
fi
|
||||
|
||||
# 验证卸载功能是否正常完成
|
||||
LOG_INFO "开始验证卸载python3-nest_asyncio功能"
|
||||
dnf remove -y python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-nest_asyncio失败"
|
||||
|
||||
# 如果脚本开始时未安装,则在结束时重新安装以恢复环境;否则不操作以保持安装状态
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "恢复环境:重新安装python3-nest_asyncio"
|
||||
dnf install -y python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "恢复环境时重新安装python3-nest_asyncio失败"
|
||||
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-07-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-nest_asyncio软件包的升级功能,验证升级过程是否正常完成
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试python3-nest_asyncio软件包的升级功能,验证升级过程是否正常完成"
|
||||
|
||||
# 检查是否已安装python3-nest_asyncio
|
||||
LOG_INFO "检查是否已安装python3-nest_asyncio"
|
||||
dnf list installed python3-nest_asyncio > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-nest_asyncio已安装,脚本结束时保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-nest_asyncio未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-nest_asyncio软件包
|
||||
LOG_INFO "检查yum源中是否有python3-nest_asyncio软件包"
|
||||
dnf list available python3-nest_asyncio > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-nest_asyncio软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-nest_asyncio
|
||||
LOG_INFO "安装python3-nest_asyncio"
|
||||
dnf install -y python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-nest_asyncio失败"
|
||||
|
||||
# 验证升级功能
|
||||
LOG_INFO "验证升级功能"
|
||||
dnf upgrade -y python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "升级python3-nest_asyncio失败"
|
||||
|
||||
# 清理环境:如果初始未安装则卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "清理环境:卸载python3-nest_asyncio"
|
||||
dnf remove -y python3-nest_asyncio > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-nest_asyncio失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +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-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证qt5-qtmultimedia-doc软件包提供的API文档
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:验证qt5-qtmultimedia-doc软件包提供的API文档"
|
||||
|
||||
LOG_INFO "步骤1:检查yum源中是否存在qt5-qtmultimedia-doc软件包"
|
||||
dnf list available qt5-qtmultimedia-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到qt5-qtmultimedia-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在qt5-qtmultimedia-doc软件包"
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装qt5-qtmultimedia-doc软件包"
|
||||
rpm -q qt5-qtmultimedia-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
INSTALLED="true"
|
||||
LOG_INFO "系统已安装qt5-qtmultimedia-doc软件包,测试后保持安装状态"
|
||||
else
|
||||
INSTALLED="false"
|
||||
LOG_INFO "系统未安装qt5-qtmultimedia-doc软件包,将进行安装测试"
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装qt5-qtmultimedia-doc软件包"
|
||||
dnf install -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "安装qt5-qtmultimedia-doc软件包失败"
|
||||
LOG_INFO "qt5-qtmultimedia-doc软件包安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证qt5-qtmultimedia-doc软件包提供的API文档"
|
||||
if [ ! -d "/usr/share/doc/qt5-qtmultimedia-doc" ]; then
|
||||
LOG_ERROR "未找到qt5-qtmultimedia-doc的文档目录"
|
||||
CHECK_RESULT 1 0 0 "qt5-qtmultimedia-doc文档目录不存在"
|
||||
fi
|
||||
|
||||
DOC_FILES=$(find /usr/share/doc/qt5-qtmultimedia-doc -name "*.html" -o -name "*.qch" 2>/dev/null | head -5)
|
||||
if [ -z "$DOC_FILES" ]; then
|
||||
LOG_ERROR "在qt5-qtmultimedia-doc文档目录中未找到HTML或QCH文档文件"
|
||||
CHECK_RESULT 1 0 0 "未找到API文档文件"
|
||||
fi
|
||||
|
||||
LOG_INFO "找到以下API文档文件示例:"
|
||||
echo "$DOC_FILES" | while read -r file; do
|
||||
LOG_INFO " - $file"
|
||||
done
|
||||
|
||||
LOG_INFO "步骤5:检查API文档是否可访问(示例检查)"
|
||||
SAMPLE_FILE=$(echo "$DOC_FILES" | head -1)
|
||||
if [ -n "$SAMPLE_FILE" ]; then
|
||||
file "$SAMPLE_FILE" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "API文档文件格式检查失败"
|
||||
LOG_INFO "API文档文件格式检查通过"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:清理测试环境"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "卸载qt5-qtmultimedia-doc软件包失败"
|
||||
LOG_INFO "qt5-qtmultimedia-doc软件包卸载成功,环境已恢复"
|
||||
else
|
||||
LOG_INFO "保持系统原有的qt5-qtmultimedia-doc软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:qt5-qtmultimedia-doc软件包API文档验证成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +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-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 检查qt5-qtmultimedia-doc软件包是否包含示例代码
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查qt5-qtmultimedia-doc软件包是否包含示例代码
|
||||
|
||||
LOG_INFO "1. 检查yum源中是否存在qt5-qtmultimedia-doc软件包"
|
||||
dnf list available qt5-qtmultimedia-doc
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到qt5-qtmultimedia-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查当前是否已安装qt5-qtmultimedia-doc软件包"
|
||||
rpm -q qt5-qtmultimedia-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "qt5-qtmultimedia-doc已安装,标记为已存在安装"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "qt5-qtmultimedia-doc未安装,标记为需要安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "3. 安装qt5-qtmultimedia-doc软件包"
|
||||
dnf install -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "安装qt5-qtmultimedia-doc软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 检查qt5-qtmultimedia-doc软件包是否包含示例代码"
|
||||
# 查找示例代码目录
|
||||
EXAMPLE_PATH=$(rpm -ql qt5-qtmultimedia-doc | grep -i example | head -1)
|
||||
if [ -z "$EXAMPLE_PATH" ]; then
|
||||
LOG_ERROR "未找到示例代码目录"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "卸载qt5-qtmultimedia-doc软件包失败"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 验证示例代码目录是否存在"
|
||||
if [ -d "$EXAMPLE_PATH" ]; then
|
||||
LOG_INFO "找到示例代码目录: $EXAMPLE_PATH"
|
||||
# 检查目录中是否包含文件
|
||||
FILE_COUNT=$(find "$EXAMPLE_PATH" -type f -name "*.cpp" -o -name "*.h" -o -name "*.pro" -o -name "*.qml" | wc -l)
|
||||
if [ $FILE_COUNT -gt 0 ]; then
|
||||
LOG_INFO "示例代码目录中包含 $FILE_COUNT 个源文件"
|
||||
CHECK_RESULT $? 0 0 "示例代码目录为空"
|
||||
else
|
||||
LOG_ERROR "示例代码目录中未找到源文件"
|
||||
CHECK_RESULT 1 0 0 "示例代码目录中未找到源文件"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "示例代码目录不存在: $EXAMPLE_PATH"
|
||||
CHECK_RESULT 1 0 0 "示例代码目录不存在"
|
||||
fi
|
||||
|
||||
LOG_INFO "6. 环境恢复"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "卸载qt5-qtmultimedia-doc软件包失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载qt5-qtmultimedia-doc软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "7. 测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +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-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 检查qt5-qtmultimedia-doc软件包是否已正确安装
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:检查qt5-qtmultimedia-doc软件包是否已正确安装"
|
||||
|
||||
# 步骤1:检查yum源中是否存在qt5-qtmultimedia-doc软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在qt5-qtmultimedia-doc软件包"
|
||||
dnf list available qt5-qtmultimedia-doc >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到qt5-qtmultimedia-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前是否已安装qt5-qtmultimedia-doc
|
||||
LOG_INFO "步骤2:检查当前是否已安装qt5-qtmultimedia-doc"
|
||||
rpm -q qt5-qtmultimedia-doc >/dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
if [ $installed -eq 0 ]; then
|
||||
LOG_INFO "qt5-qtmultimedia-doc已安装,测试结束后保持安装状态"
|
||||
need_cleanup=0
|
||||
else
|
||||
LOG_INFO "qt5-qtmultimedia-doc未安装,将进行安装测试"
|
||||
need_cleanup=1
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
LOG_INFO "步骤3:安装qt5-qtmultimedia-doc软件包"
|
||||
dnf install -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "安装qt5-qtmultimedia-doc失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包是否安装成功
|
||||
LOG_INFO "步骤4:验证qt5-qtmultimedia-doc软件包是否安装成功"
|
||||
rpm -q qt5-qtmultimedia-doc >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "qt5-qtmultimedia-doc软件包未正确安装"
|
||||
|
||||
LOG_INFO "qt5-qtmultimedia-doc软件包已正确安装"
|
||||
|
||||
# 步骤5:清理环境(如果测试前未安装)
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
LOG_INFO "步骤5:清理测试环境,卸载qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "卸载qt5-qtmultimedia-doc失败"
|
||||
LOG_INFO "环境已恢复,qt5-qtmultimedia-doc软件包已卸载"
|
||||
else
|
||||
LOG_INFO "测试完成,保持qt5-qtmultimedia-doc软件包的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:qt5-qtmultimedia-doc软件包安装验证成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,104 +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-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试qt5-qtmultimedia-doc软件包提供的帮助文档
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装qt5-qtmultimedia-doc软件包
|
||||
LOG_INFO "检查qt5-qtmultimedia-doc软件包是否已安装"
|
||||
rpm -q qt5-qtmultimedia-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "qt5-qtmultimedia-doc软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "qt5-qtmultimedia-doc软件包未安装,将在测试前安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有qt5-qtmultimedia-doc软件包
|
||||
LOG_INFO "检查yum源中是否有qt5-qtmultimedia-doc软件包"
|
||||
dnf list available qt5-qtmultimedia-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到qt5-qtmultimedia-doc软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到qt5-qtmultimedia-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装qt5-qtmultimedia-doc软件包"
|
||||
dnf install -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "安装qt5-qtmultimedia-doc软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装qt5-qtmultimedia-doc软件包失败"
|
||||
exit $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查软件包提供的帮助文档
|
||||
LOG_INFO "检查qt5-qtmultimedia-doc软件包提供的帮助文档"
|
||||
rpm -ql qt5-qtmultimedia-doc | grep -E "\.html$|\.qch$" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "qt5-qtmultimedia-doc软件包未提供帮助文档"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "qt5-qtmultimedia-doc软件包未提供帮助文档"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
fi
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# 验证帮助文档是否可访问
|
||||
LOG_INFO "验证帮助文档是否可访问"
|
||||
HELP_FILE=$(rpm -ql qt5-qtmultimedia-doc | grep -E "\.html$" | head -1)
|
||||
if [ -n "$HELP_FILE" ]; then
|
||||
file "$HELP_FILE" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "帮助文档文件不可访问"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "帮助文档文件不可访问"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
fi
|
||||
exit $?
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到html格式的帮助文档"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "卸载qt5-qtmultimedia-doc软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载qt5-qtmultimedia-doc软件包失败"
|
||||
exit $?
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,93 +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-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试qt5-qtmultimedia-doc软件包的卸载功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
PACKAGE_NAME="qt5-qtmultimedia-doc"
|
||||
LOG_INFO "开始测试${PACKAGE_NAME}软件包的卸载功能"
|
||||
|
||||
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 "2. 检查当前环境是否已安装${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到${PACKAGE_NAME}已安装,记录当前状态"
|
||||
ORIGINAL_STATE="installed"
|
||||
else
|
||||
LOG_INFO "检测到${PACKAGE_NAME}未安装,将在测试过程中安装"
|
||||
ORIGINAL_STATE="not_installed"
|
||||
fi
|
||||
|
||||
LOG_INFO "3. 如果未安装,先安装${PACKAGE_NAME}"
|
||||
if [ "${ORIGINAL_STATE}" = "not_installed" ]; then
|
||||
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 "5. 执行卸载操作"
|
||||
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 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "${PACKAGE_NAME}卸载后仍存在"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "${PACKAGE_NAME}已完全卸载"
|
||||
|
||||
LOG_INFO "7. 环境恢复"
|
||||
if [ "${ORIGINAL_STATE}" = "not_installed" ]; then
|
||||
LOG_INFO "原始状态为未安装,无需恢复"
|
||||
else
|
||||
LOG_INFO "重新安装${PACKAGE_NAME}恢复到原始状态"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "重新安装${PACKAGE_NAME}失败"
|
||||
LOG_INFO "成功恢复${PACKAGE_NAME}安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "8. 最终验证"
|
||||
rpm -q ${PACKAGE_NAME}
|
||||
if [ "${ORIGINAL_STATE}" = "installed" ]; then
|
||||
CHECK_RESULT $? 0 0 "环境恢复后${PACKAGE_NAME}未正确安装"
|
||||
LOG_INFO "环境已正确恢复到安装状态"
|
||||
else
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "环境恢复后${PACKAGE_NAME}仍被安装"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "环境已正确恢复到未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试${PACKAGE_NAME}软件包卸载功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +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-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试qt5-qtmultimedia-doc软件包文档的搜索功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试qt5-qtmultimedia-doc软件包文档的搜索功能"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在qt5-qtmultimedia-doc软件包"
|
||||
dnf list available qt5-qtmultimedia-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到qt5-qtmultimedia-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装软件包
|
||||
LOG_INFO "检查当前环境是否已安装qt5-qtmultimedia-doc"
|
||||
rpm -q qt5-qtmultimedia-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,标记为无需清理"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为需要清理"
|
||||
NEED_CLEANUP=1
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $NEED_CLEANUP -eq 1 ]; then
|
||||
LOG_INFO "开始安装qt5-qtmultimedia-doc软件包"
|
||||
dnf install -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "安装qt5-qtmultimedia-doc失败"
|
||||
fi
|
||||
|
||||
# 测试文档搜索功能
|
||||
LOG_INFO "测试文档搜索功能"
|
||||
# 查找文档文件
|
||||
DOC_FILE=$(rpm -ql qt5-qtmultimedia-doc | grep -E "\.html$|\.pdf$|\.txt$" | head -1)
|
||||
if [ -z "$DOC_FILE" ]; then
|
||||
LOG_ERROR "未找到qt5-qtmultimedia-doc的文档文件"
|
||||
if [ $NEED_CLEANUP -eq 1 ]; then
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "找到文档文件: $DOC_FILE"
|
||||
|
||||
# 检查文档内容是否包含关键词
|
||||
LOG_INFO "检查文档中是否包含Qt Multimedia相关关键词"
|
||||
if [ -f "$DOC_FILE" ]; then
|
||||
grep -i "multimedia\|audio\|video" "$DOC_FILE" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "文档中未找到Qt Multimedia相关关键词"
|
||||
else
|
||||
LOG_ERROR "文档文件不存在或无法访问"
|
||||
if [ $NEED_CLEANUP -eq 1 ]; then
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
if [ $NEED_CLEANUP -eq 1 ]; then
|
||||
LOG_INFO "清理测试环境,卸载qt5-qtmultimedia-doc软件包"
|
||||
dnf remove -y qt5-qtmultimedia-doc
|
||||
CHECK_RESULT $? 0 0 "卸载qt5-qtmultimedia-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "qt5-qtmultimedia-doc文档搜索功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +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-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 检查qt5-qtmultimedia-doc软件包的版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查qt5-qtmultimedia-doc软件包的版本信息测试脚本
|
||||
|
||||
LOG_INFO "开始测试:检查qt5-qtmultimedia-doc软件包的版本信息"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="qt5-qtmultimedia-doc"
|
||||
|
||||
# 步骤1:检查软件包是否已在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中"
|
||||
|
||||
# 步骤2:检查软件包是否已安装
|
||||
LOG_INFO "步骤2:检查软件包是否已安装"
|
||||
INSTALLED=false
|
||||
if rpm -q ${PACKAGE_NAME} > /dev/null 2>&1; 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} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:检查软件包版本信息
|
||||
LOG_INFO "步骤4:检查软件包版本信息"
|
||||
VERSION_INFO=$(rpm -q ${PACKAGE_NAME} 2>&1)
|
||||
CHECK_RESULT $? 0 0 "获取软件包版本信息失败"
|
||||
LOG_INFO "软件包版本信息:${VERSION_INFO}"
|
||||
|
||||
# 步骤5:验证版本信息格式
|
||||
LOG_INFO "步骤5:验证版本信息格式"
|
||||
if echo "${VERSION_INFO}" | grep -E "^${PACKAGE_NAME}-[0-9]" > /dev/null; then
|
||||
LOG_INFO "版本信息格式正确"
|
||||
CHECK_RESULT 0 0 0 "版本信息格式验证"
|
||||
else
|
||||
LOG_ERROR "版本信息格式不正确:${VERSION_INFO}"
|
||||
CHECK_RESULT 1 0 0 "版本信息格式验证失败"
|
||||
fi
|
||||
|
||||
# 步骤6:清理环境
|
||||
LOG_INFO "步骤6:清理测试环境"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已成功卸载"
|
||||
else
|
||||
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:qt5-qtmultimedia-doc软件包版本信息检查成功"
|
||||
}
|
||||
|
||||
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-09-18
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test basic functionality"
|
||||
|
||||
# 检查是否已安装texlive-dancers软件包
|
||||
LOG_INFO "检查是否已安装texlive-dancers软件包"
|
||||
dnf list installed texlive-dancers >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-dancers已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-dancers未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-dancers软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-dancers软件包"
|
||||
dnf list available texlive-dancers >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-dancers软件包"
|
||||
|
||||
# 安装texlive-dancers软件包
|
||||
LOG_INFO "安装texlive-dancers软件包"
|
||||
dnf install -y texlive-dancers
|
||||
CHECK_RESULT $? 0 0 "安装texlive-dancers软件包失败"
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试基本功能"
|
||||
command_to_test --param1 value1
|
||||
CHECK_RESULT $? 0 255 "参数不存在或不支持"
|
||||
|
||||
# 检查命令执行结果
|
||||
LOG_INFO "检查命令执行结果"
|
||||
some_command
|
||||
CHECK_RESULT $? 0 1 "命令执行失败"
|
||||
|
||||
# SSH到第二个节点执行命令
|
||||
LOG_INFO "在第二个节点上执行命令"
|
||||
SSH_CMD ls $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
|
||||
# 清理环境(如果之前未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-dancers软件包"
|
||||
dnf remove -y texlive-dancers
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-dancers软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic functionality"
|
||||
}
|
||||
|
||||
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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test accessing documentation files
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:访问文档文件"
|
||||
|
||||
LOG_INFO "步骤1:检查环境中是否已安装 texlive-fira-doc 软件包"
|
||||
if dnf list installed texlive-fira-doc &>/dev/null; then
|
||||
LOG_INFO "环境中已安装 texlive-fira-doc 软件包,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "环境中未安装 texlive-fira-doc 软件包,将在测试步骤中安装,并在测试结束后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查 yum 源中是否存在 texlive-fira-doc 软件包"
|
||||
if ! dnf list available texlive-fira-doc &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-fira-doc 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤3:安装 texlive-fira-doc 软件包"
|
||||
dnf install -y texlive-fira-doc
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-fira-doc 软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:查找 texlive-fira-doc 的文档文件安装路径"
|
||||
DOC_PATH=$(rpm -ql texlive-fira-doc | head -1 2>/dev/null || true)
|
||||
if [ -z "$DOC_PATH" ]; then
|
||||
LOG_ERROR "无法找到 texlive-fira-doc 的文档文件路径"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "清理:卸载 texlive-fira-doc 软件包"
|
||||
dnf remove -y texlive-fira-doc
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:测试访问文档文件"
|
||||
if [ -f "$DOC_PATH" ]; then
|
||||
LOG_INFO "文档文件存在:$DOC_PATH"
|
||||
file "$DOC_PATH" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "访问文档文件失败"
|
||||
elif [ -d "$DOC_PATH" ]; then
|
||||
LOG_INFO "文档目录存在:$DOC_PATH"
|
||||
ls "$DOC_PATH" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "访问文档目录失败"
|
||||
else
|
||||
LOG_ERROR "文档路径既不是文件也不是目录:$DOC_PATH"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "清理:卸载 texlive-fira-doc 软件包"
|
||||
dnf remove -y texlive-fira-doc
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:测试文档内容可读性"
|
||||
if [ -f "$DOC_PATH" ]; then
|
||||
head -c 100 "$DOC_PATH" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "读取文档文件内容失败"
|
||||
elif [ -d "$DOC_PATH" ]; then
|
||||
find "$DOC_PATH" -type f -name "*.pdf" -o -name "*.txt" -o -name "*.html" 2>/dev/null | head -1 | while read sample_file; do
|
||||
if [ -n "$sample_file" ]; then
|
||||
head -c 100 "$sample_file" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "读取文档目录中示例文件内容失败"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:环境清理"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "卸载 texlive-fira-doc 软件包"
|
||||
dnf remove -y texlive-fira-doc
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-fira-doc 软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装 texlive-fira-doc,保持安装状态"
|
||||
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 : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test listing files in texlive-fira-doc
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test listing files in texlive-fira-doc"
|
||||
LOG_INFO "步骤1:检查texlive-fira-doc软件包是否在yum源中"
|
||||
dnf list available texlive-fira-doc &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texlive-fira-doc软件包在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查当前是否已安装texlive-fira-doc软件包"
|
||||
rpm -q texlive-fira-doc &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-fira-doc已安装,标记为保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-fira-doc未安装,标记为需要安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装texlive-fira-doc软件包"
|
||||
dnf install -y texlive-fira-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-fira-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:列出texlive-fira-doc包中的文件"
|
||||
rpm -ql texlive-fira-doc
|
||||
CHECK_RESULT $? 0 0 "列出texlive-fira-doc文件失败"
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤5:卸载texlive-fira-doc软件包以恢复环境"
|
||||
dnf remove -y texlive-fira-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-fira-doc失败"
|
||||
else
|
||||
LOG_INFO "步骤5:保持texlive-fira-doc安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test listing files in texlive-fira-doc"
|
||||
}
|
||||
|
||||
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-10-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查texlive-mathpartir软件包是否已安装
|
||||
LOG_INFO "检查texlive-mathpartir软件包是否已安装"
|
||||
rpm -q texlive-mathpartir
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-mathpartir软件包已安装,脚本将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "texlive-mathpartir软件包未安装,将进行安装测试"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-mathpartir软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-mathpartir软件包"
|
||||
dnf list available texlive-mathpartir > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-mathpartir软件包"
|
||||
|
||||
# 安装texlive-mathpartir软件包
|
||||
LOG_INFO "安装texlive-mathpartir软件包"
|
||||
dnf install -y texlive-mathpartir
|
||||
CHECK_RESULT $? 0 0 "安装texlive-mathpartir软件包失败"
|
||||
|
||||
# 验证texlive-mathpartir软件包是否成功安装
|
||||
LOG_INFO "验证texlive-mathpartir软件包是否成功安装"
|
||||
rpm -q texlive-mathpartir
|
||||
CHECK_RESULT $? 0 0 "texlive-mathpartir软件包未正确安装"
|
||||
|
||||
# 如果脚本开始时未安装,则在结束时卸载
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-mathpartir软件包"
|
||||
dnf remove -y texlive-mathpartir
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-mathpartir软件包失败"
|
||||
|
||||
# 验证texlive-mathpartir软件包是否已卸载
|
||||
LOG_INFO "验证texlive-mathpartir软件包是否已卸载"
|
||||
rpm -q texlive-mathpartir > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "texlive-mathpartir软件包未正确卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
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-10-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic usage
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装texlive-mathpartir软件包
|
||||
LOG_INFO "检查是否已安装texlive-mathpartir软件包"
|
||||
rpm -q texlive-mathpartir
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-mathpartir已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-mathpartir未安装,将在测试完成后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-mathpartir软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-mathpartir软件包"
|
||||
dnf list available texlive-mathpartir > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到texlive-mathpartir软件包"
|
||||
|
||||
# 安装texlive-mathpartir软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装texlive-mathpartir软件包"
|
||||
dnf install -y texlive-mathpartir > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-mathpartir软件包失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能使用
|
||||
LOG_INFO "测试基本功能使用"
|
||||
texdoc mathpar > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "texdoc mathpar命令执行失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-mathpartir软件包"
|
||||
dnf remove -y texlive-mathpartir > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-mathpartir软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +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-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the basic usage of pst-slpe by generating a simple LaTeX document with slope fill.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装pst-slpe
|
||||
LOG_INFO "检查是否已安装pst-slpe软件包"
|
||||
rpm -q texlive-pst-slpe > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到pst-slpe已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "未检测到pst-slpe安装,将在测试过程中安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-pst-slpe软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-pst-slpe软件包"
|
||||
dnf list available texlive-pst-slpe > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-pst-slpe软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-pst-slpe软件包"
|
||||
dnf install -y texlive-pst-slpe
|
||||
CHECK_RESULT $? 0 0 "安装texlive-pst-slpe失败"
|
||||
fi
|
||||
|
||||
# 创建测试用的LaTeX文档
|
||||
LOG_INFO "创建测试用的LaTeX文档"
|
||||
cat > test_slope.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{pst-slpe}
|
||||
\begin{document}
|
||||
\begin{pspicture}(5,5)
|
||||
\psframe[fillstyle=slope,slopebegin=blue,slopeend=red,slopeangle=45](0,0)(5,5)
|
||||
\end{pspicture}
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建LaTeX文档失败"
|
||||
|
||||
# 使用pdflatex编译文档,需要pst-slpe支持
|
||||
LOG_INFO "使用pdflatex编译LaTeX文档"
|
||||
pdflatex -interaction=nonstopmode test_slope.tex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "编译LaTeX文档失败,可能pst-slpe功能异常"
|
||||
|
||||
# 检查是否生成了PDF文件
|
||||
LOG_INFO "检查是否生成了PDF文件"
|
||||
if [ -f test_slope.pdf ]; then
|
||||
LOG_INFO "成功生成PDF文件,pst-slpe基本功能正常"
|
||||
else
|
||||
LOG_ERROR "未生成PDF文件,pst-slpe功能可能异常"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理生成的临时文件
|
||||
LOG_INFO "清理生成的临时文件"
|
||||
rm -f test_slope.tex test_slope.aux test_slope.log test_slope.pdf
|
||||
|
||||
# 如果脚本开始时未安装,则在测试结束后卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-pst-slpe软件包"
|
||||
dnf remove -y texlive-pst-slpe
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-pst-slpe失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "pst-slpe基本功能测试完成"
|
||||
}
|
||||
|
||||
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-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if a LaTeX document using pst-slpe can be compiled without errors.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:检查LaTeX文档使用pst-slpe编译是否正常"
|
||||
|
||||
# 检查是否已经安装了texlive-pst-slpe软件包
|
||||
LOG_INFO "步骤1:检查texlive-pst-slpe是否已安装"
|
||||
if dnf list installed texlive-pst-slpe &>/dev/null; then
|
||||
LOG_INFO "texlive-pst-slpe已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-pst-slpe未安装,将在测试过程中安装并最终卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-pst-slpe软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-pst-slpe软件包"
|
||||
if ! dnf search texlive-pst-slpe &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-pst-slpe软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-pst-slpe软件包"
|
||||
dnf install -y texlive-pst-slpe
|
||||
CHECK_RESULT $? 0 0 "安装texlive-pst-slpe失败"
|
||||
fi
|
||||
|
||||
# 创建一个简单的LaTeX文档,使用pst-slpe宏包
|
||||
LOG_INFO "步骤4:创建测试LaTeX文档"
|
||||
cat > test_pst_slpe.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{pst-slpe}
|
||||
\begin{document}
|
||||
Test document using pst-slpe.
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 编译LaTeX文档
|
||||
LOG_INFO "步骤5:编译LaTeX文档"
|
||||
pdflatex -interaction=nonstopmode test_pst_slpe.tex
|
||||
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
|
||||
|
||||
# 检查生成的PDF文件是否存在
|
||||
LOG_INFO "步骤6:检查生成的PDF文件"
|
||||
if [ -f test_pst_slpe.pdf ]; then
|
||||
LOG_INFO "PDF文件生成成功"
|
||||
else
|
||||
LOG_ERROR "PDF文件未生成"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "步骤7:清理测试文件"
|
||||
rm -f test_pst_slpe.tex test_pst_slpe.pdf test_pst_slpe.log test_pst_slpe.aux test_pst_slpe.out
|
||||
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-pst-slpe软件包"
|
||||
dnf remove -y texlive-pst-slpe
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-pst-slpe失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:LaTeX文档使用pst-slpe编译正常"
|
||||
}
|
||||
|
||||
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-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Basic functionality test for texlive-pst-slpe
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始执行texlive-pst-slpe功能基础测试脚本"
|
||||
|
||||
# 检查yum源中是否存在texlive-pst-slpe软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-pst-slpe软件包"
|
||||
dnf list available texlive-pst-slpe > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-pst-slpe软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装texlive-pst-slpe
|
||||
LOG_INFO "检查是否已安装texlive-pst-slpe"
|
||||
rpm -q texlive-pst-slpe > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
installed=true
|
||||
LOG_INFO "texlive-pst-slpe已安装"
|
||||
else
|
||||
installed=false
|
||||
LOG_INFO "texlive-pst-slpe未安装,将进行安装"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装texlive-pst-slpe软件包"
|
||||
dnf install -y texlive-pst-slpe
|
||||
CHECK_RESULT $? 0 0 "安装texlive-pst-slpe失败"
|
||||
fi
|
||||
|
||||
# 测试texlive-pst-slpe基本功能
|
||||
LOG_INFO "测试texlive-pst-slpe基本功能"
|
||||
# 假设测试命令为slpe --version,这里仅为示例
|
||||
slpe --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "slpe命令执行失败"
|
||||
|
||||
# 如果之前未安装,则在测试完成后卸载软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-pst-slpe软件包"
|
||||
dnf remove -y texlive-pst-slpe
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-pst-slpe失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "texlive-pst-slpe功能基础测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +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-13
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check documentation files exist
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Check documentation files exist"
|
||||
|
||||
# 检查是否已安装texlive-simpler-wick-doc
|
||||
LOG_INFO "检查texlive-simpler-wick-doc是否已安装"
|
||||
if dnf list installed texlive-simpler-wick-doc &>/dev/null; then
|
||||
LOG_INFO "texlive-simpler-wick-doc已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-simpler-wick-doc未安装,将在测试中安装并在结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-simpler-wick-doc软件包"
|
||||
if ! dnf list available texlive-simpler-wick-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-simpler-wick-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-simpler-wick-doc软件包"
|
||||
dnf install -y texlive-simpler-wick-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-simpler-wick-doc失败"
|
||||
fi
|
||||
|
||||
# 检查文档文件是否存在
|
||||
LOG_INFO "检查texlive-simpler-wick-doc的文档文件是否存在"
|
||||
if [ -d /usr/share/texlive/texmf-dist/doc/latex/simpler-wick ]; then
|
||||
LOG_INFO "找到文档目录:/usr/share/texlive/texmf-dist/doc/latex/simpler-wick"
|
||||
# 检查目录下是否有文件
|
||||
if [ "$(ls -A /usr/share/texlive/texmf-dist/doc/latex/simpler-wick)" ]; then
|
||||
LOG_INFO "文档目录中有文件存在"
|
||||
else
|
||||
LOG_ERROR "文档目录为空"
|
||||
CHECK_RESULT 1 0 0 "文档目录为空"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到文档目录"
|
||||
CHECK_RESULT 1 0 0 "未找到文档目录"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-simpler-wick-doc软件包"
|
||||
dnf remove -y texlive-simpler-wick-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-simpler-wick-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Check documentation files exist"
|
||||
}
|
||||
|
||||
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 : 2026-03-13
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package removal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test package removal"
|
||||
|
||||
# 检查yum源中是否有texlive-simpler-wick-doc软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-simpler-wick-doc软件包"
|
||||
dnf list available texlive-simpler-wick-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-simpler-wick-doc软件包"
|
||||
|
||||
# 检查当前环境是否已安装texlive-simpler-wick-doc
|
||||
LOG_INFO "检查当前环境是否已安装texlive-simpler-wick-doc"
|
||||
rpm -q texlive-simpler-wick-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "当前环境已安装texlive-simpler-wick-doc,脚本结束时将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "当前环境未安装texlive-simpler-wick-doc,将在测试过程中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "开始安装texlive-simpler-wick-doc软件包"
|
||||
dnf install -y texlive-simpler-wick-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-simpler-wick-doc软件包失败"
|
||||
fi
|
||||
|
||||
# 测试卸载软件包功能
|
||||
LOG_INFO "开始卸载texlive-simpler-wick-doc软件包"
|
||||
dnf remove -y texlive-simpler-wick-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-simpler-wick-doc软件包失败"
|
||||
|
||||
# 验证软件包是否已卸载
|
||||
LOG_INFO "验证texlive-simpler-wick-doc软件包是否已卸载"
|
||||
rpm -q texlive-simpler-wick-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "软件包卸载后仍可查询到"
|
||||
|
||||
# 环境恢复:如果之前未安装,则重新安装以恢复环境
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "恢复环境:重新安装texlive-simpler-wick-doc软件包"
|
||||
dnf install -y texlive-simpler-wick-doc
|
||||
CHECK_RESULT $? 0 0 "恢复环境时安装texlive-simpler-wick-doc软件包失败"
|
||||
else
|
||||
LOG_INFO "环境恢复:原环境已安装texlive-simpler-wick-doc,无需重新安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test package removal"
|
||||
}
|
||||
|
||||
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-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test installation of texlive-withargs-doc
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装texlive-withargs-doc
|
||||
LOG_INFO "检查是否已安装texlive-withargs-doc"
|
||||
if dnf list installed texlive-withargs-doc &> /dev/null; then
|
||||
LOG_INFO "texlive-withargs-doc已安装,脚本结束后将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "texlive-withargs-doc未安装,将在测试后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-withargs-doc软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-withargs-doc软件包"
|
||||
if ! dnf list available texlive-withargs-doc &> /dev/null; then
|
||||
LOG_ERROR "yum源中不存在texlive-withargs-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-withargs-doc软件包
|
||||
LOG_INFO "开始安装texlive-withargs-doc软件包"
|
||||
dnf install -y texlive-withargs-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-withargs-doc失败"
|
||||
|
||||
# 检查命令参数是否支持
|
||||
LOG_INFO "检查命令参数是否支持"
|
||||
if ! texlive-withargs-doc --help | grep -q "expected-arg"; then
|
||||
LOG_ERROR "texlive-withargs-doc不支持指定参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行测试命令
|
||||
LOG_INFO "执行测试命令"
|
||||
texlive-withargs-doc expected-arg
|
||||
CHECK_RESULT $? 0 0 "执行测试命令失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-withargs-doc软件包"
|
||||
dnf remove -y texlive-withargs-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-withargs-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +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-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包提供的帮助信息是否正确。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试软件包提供的帮助信息是否正确"
|
||||
LOG_INFO "步骤1:检查环境是否已安装tpm2-abrmd软件包"
|
||||
rpm -q tpm2-abrmd > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "tpm2-abrmd软件包已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "tpm2-abrmd软件包未安装,将在测试前安装,测试后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在tpm2-abrmd软件包"
|
||||
dnf list available tpm2-abrmd > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到tpm2-abrmd软件包,退出测试"
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装tpm2-abrmd软件包"
|
||||
dnf install -y tpm2-abrmd > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装tpm2-abrmd软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查tpm2-abrmd命令是否存在"
|
||||
which tpm2-abrmd > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "tpm2-abrmd命令未找到,退出测试"
|
||||
|
||||
LOG_INFO "步骤5:测试tpm2-abrmd的--help参数"
|
||||
tpm2-abrmd --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "tpm2-abrmd --help命令执行失败"
|
||||
|
||||
LOG_INFO "步骤6:测试tpm2-abrmd的-h参数"
|
||||
tpm2-abrmd -h > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "tpm2-abrmd -h参数不支持,退出测试"
|
||||
|
||||
LOG_INFO "步骤7:清理测试环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载tpm2-abrmd软件包"
|
||||
dnf remove -y tpm2-abrmd > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载tpm2-abrmd软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装tpm2-abrmd软件包,测试后保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:软件包提供的帮助信息测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +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-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试查询软件包的版本信息。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:查询软件包的版本信息"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在tpm2-abrmd软件包"
|
||||
if ! dnf list available tpm2-abrmd 2>/dev/null | grep -q tpm2-abrmd; then
|
||||
LOG_ERROR "yum源中未找到tpm2-abrmd软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断当前是否已安装软件包
|
||||
LOG_INFO "检查tpm2-abrmd是否已安装"
|
||||
if rpm -q tpm2-abrmd >/dev/null 2>&1; then
|
||||
LOG_INFO "tpm2-abrmd已安装,标记为无需清理"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "tpm2-abrmd未安装,标记为需要清理"
|
||||
NEED_CLEANUP=1
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $NEED_CLEANUP -eq 1 ]; then
|
||||
LOG_INFO "安装tpm2-abrmd软件包"
|
||||
dnf install -y tpm2-abrmd
|
||||
CHECK_RESULT $? 0 0 "安装tpm2-abrmd失败"
|
||||
fi
|
||||
|
||||
# 测试查询软件包版本信息
|
||||
LOG_INFO "测试查询tpm2-abrmd的版本信息"
|
||||
tpm2-abrmd --version
|
||||
CHECK_RESULT $? 0 0 "查询tpm2-abrmd版本信息失败"
|
||||
|
||||
# 测试查询帮助信息
|
||||
LOG_INFO "测试查询tpm2-abrmd的帮助信息"
|
||||
tpm2-abrmd --help
|
||||
CHECK_RESULT $? 0 0 "查询tpm2-abrmd帮助信息失败"
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试不支持的参数"
|
||||
tpm2-abrmd --invalid-param 2>/dev/null
|
||||
if [ $? -ne 255 ] && [ $? -ne 0 ]; then
|
||||
LOG_ERROR "不支持的参数未按预期处理"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
if [ $NEED_CLEANUP -eq 1 ]; then
|
||||
LOG_INFO "卸载tpm2-abrmd软件包"
|
||||
dnf remove -y tpm2-abrmd
|
||||
CHECK_RESULT $? 0 0 "卸载tpm2-abrmd失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:查询软件包的版本信息"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user