This commit is contained in:
2026-04-22 22:27:18 +08:00
67 changed files with 0 additions and 4591 deletions

View File

@@ -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": "测试软件包的卸载过程"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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作为基础依赖库的基本功能是否正常"
}
]
}

View File

@@ -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软件包文档的搜索功能"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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."
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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": "测试查询软件包的版本信息。"
}
]
}

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"