This commit is contained in:
2026-04-21 14:14:12 +08:00
72 changed files with 0 additions and 4819 deletions

View File

@@ -5,30 +5,6 @@
{
"name": "test_apache-commons-jexl-javadoc_function_install",
"desc": "Test package installation"
},
{
"name": "test_apache-commons-jexl-javadoc_function_docgen",
"desc": "Test documentation generation"
},
{
"name": "test_apache-commons-jexl-javadoc_function_apiref",
"desc": "Test API reference inclusion"
},
{
"name": "test_apache-commons-jexl-javadoc_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_apache-commons-jexl-javadoc_function_verify",
"desc": "Verify package is installed"
},
{
"name": "test_apache-commons-jexl-javadoc_function_version",
"desc": "Check installed package version"
},
{
"name": "test_apache-commons-jexl-javadoc_function_doc_access",
"desc": "Access documentation files"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_libcmocka_upgrade",
"desc": "测试libcmocka软件包的升级功能",
"machine num": 1
},
{
"name": "test_libcmocka_function_init",
"desc": "测试libcmocka库的初始化功能"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/gnome-doc-utils/gnome-doc-utils-stylesheets",
"machine num": 1,
"cases": [
{
"name": "test_gnome-doc-utils-stylesheets_function_style",
"desc": "Test stylesheet generation"
}
]
}

View File

@@ -13,18 +13,6 @@
{
"name": "test_hunspell-es-GQ_function_spell_check",
"desc": "测试hunspell-es-GQ拼写检查器能否对西班牙语赤道几内亚文本进行基本的拼写检查。"
},
{
"name": "test_hunspell-es-GQ_function_suggest",
"desc": "测试hunspell-es-GQ能否为拼写错误的单词提供正确的西班牙语赤道几内亚建议。"
},
{
"name": "test_hunspell-es-GQ_function_affix",
"desc": "测试hunspell-es-GQ能否正确处理西班牙语赤道几内亚的词形变化和词缀。"
},
{
"name": "test_hunspell-es-GQ_function_uninstall",
"desc": "测试hunspell-es-GQ软件包能否被完整、干净地卸载。"
}
]
}

View File

@@ -13,14 +13,6 @@
{
"name": "test_libgit2-devel_function_check",
"desc": "测试检查libgit2-devel软件包是否已安装的功能验证系统包管理器或rpm命令能正确报告其安装状态。"
},
{
"name": "test_libgit2-devel_function_header",
"desc": "测试libgit2-devel软件包提供的C语言头文件如git2.h是否存在于标准系统路径中供开发使用。"
},
{
"name": "test_libgit2-devel_function_lib",
"desc": "测试libgit2-devel软件包提供的共享库文件如libgit2.so是否存在于标准库路径中并可供链接。"
}
]
}

View File

@@ -2,22 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/nodejs-json-stringify-safe/nodejs-json-stringify-safe",
"machine num": 1,
"cases": [
{
"name": "test_nodejs-json-stringify-safe_function_install",
"desc": "测试 nodejs-json-stringify-safe 软件包能够被正确安装"
},
{
"name": "test_nodejs-json-stringify-safe_function_require",
"desc": "测试在 Node.js 代码中能够成功引入 stringify 模块"
},
{
"name": "test_nodejs-json-stringify-safe_function_basic",
"desc": "测试 stringify 函数对普通对象的基本序列化功能"
},
{
"name": "test_nodejs-json-stringify-safe_function_circular",
"desc": "测试 stringify 函数正确处理循环引用对象"
},
{
"name": "test_nodejs-json-stringify-safe_function_uninstall",
"desc": "测试 nodejs-json-stringify-safe 软件包能够被正确卸载"

View File

@@ -6,10 +6,6 @@
"name": "test_openpgm-devel_install",
"desc": "测试openpgm-devel软件包的安装功能",
"machine num": 1
},
{
"name": "test_openpgm-devel_function_linking",
"desc": "测试openpgm-devel库的链接功能"
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_perl-YAML-LibYAML-help_uninstall",
"desc": "测试软件包是否可以通过包管理器正确卸载"
},
{
"name": "test_perl-YAML-LibYAML-help_version",
"desc": "测试软件包版本查询功能"
},
{
"name": "test_perl-YAML-LibYAML-help_manpage",
"desc": "测试软件包手册页的可用性和内容"
},
{
"name": "test_perl-YAML-LibYAML-help_examples",
"desc": "测试软件包提供的示例文档或使用帮助"
}
]
}

View File

@@ -6,26 +6,14 @@
"name": "test_podmansh_podmansh",
"desc": "测试 podmansh 命令的基本功能"
},
{
"name": "test_podmansh_function_run",
"desc": "测试 podmansh 运行容器功能"
},
{
"name": "test_podmansh_function_stop",
"desc": "测试 podmansh 停止容器功能"
},
{
"name": "test_podmansh_function_list",
"desc": "测试 podmansh 列出容器功能"
},
{
"name": "test_podmansh_function_remove",
"desc": "测试 podmansh 删除容器功能"
},
{
"name": "test_podmansh_function_exec",
"desc": "测试 podmansh 执行命令功能"
},
{
"name": "test_podmansh_function_pull",
"desc": "测试 podmansh 拉取镜像功能"
@@ -38,65 +26,17 @@
"name": "test_podmansh_function_logs",
"desc": "测试 podmansh 查看容器日志功能"
},
{
"name": "test_podmansh_function_commit",
"desc": "测试 podmansh 提交容器为镜像功能"
},
{
"name": "test_podmansh_function_network",
"desc": "测试 podmansh 网络管理功能"
},
{
"name": "test_podmansh_podmansh_upper_v",
"desc": "测试带-V参数的podmansh命令是否能正常显示版本信息"
},
{
"name": "test_podmansh_podmansh_upper_h",
"desc": "测试带-H参数的podmansh命令是否能正常显示帮助信息"
},
{
"name": "test_podmansh_podmansh_c",
"desc": "测试带-c参数的podmansh命令是否能正常执行指定命令"
},
{
"name": "test_podmansh_podmansh_shell",
"desc": "测试带shell参数的podmansh命令是否能启动指定shell"
},
{
"name": "test_podmansh_podmansh_name",
"desc": "测试带name参数的podmansh命令是否能使用指定名称创建容器"
},
{
"name": "test_podmansh_podmansh_image",
"desc": "测试带image参数的podmansh命令是否能基于指定镜像创建容器"
},
{
"name": "test_podmansh_podmansh_c_shell",
"desc": "测试同时使用-c和shell参数的podmansh命令是否能执行指定shell的指定命令"
},
{
"name": "test_podmansh_podmansh_name_image",
"desc": "测试同时使用name和image参数的podmansh命令是否能使用指定名称和镜像创建容器"
},
{
"name": "test_podmansh_function_install",
"desc": "测试 podmansh 软件包安装功能"
},
{
"name": "test_podmansh_function_uninstall",
"desc": "测试 podmansh 软件包卸载功能"
},
{
"name": "test_podmansh_function_check_install",
"desc": "测试检查 podmansh 是否已安装"
},
{
"name": "test_podmansh_function_version",
"desc": "测试 podmansh 版本查询功能"
},
{
"name": "test_podmansh_function_help",
"desc": "测试 podmansh 帮助信息功能"
}
]
}

View File

@@ -1,34 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-authheaders/python3-authheaders",
"machine num": 1,
"cases": [
{
"name": "test_python3-authheaders_dmarc-policy-find_domain",
"desc": "测试仅使用 domain 参数查找 DMARC 策略"
},
{
"name": "test_python3-authheaders_dmarc-policy-find_s_DMARC",
"desc": "测试使用 -s DMARC 参数查找 DMARC 策略"
},
{
"name": "test_python3-authheaders_dmarc-policy-find_s_PSD",
"desc": "测试使用 -s PSD 参数查找 DMARC 策略"
},
{
"name": "test_python3-authheaders_dmarc-policy-find_s_DMARCbis",
"desc": "测试使用 -s DMARCbis 参数查找 DMARC 策略"
},
{
"name": "test_python3-authheaders_dmarc-policy-find_v",
"desc": "测试使用 -v 参数获取详细 DMARC 策略信息"
},
{
"name": "test_python3-authheaders_dmarc-policy-find_q",
"desc": "测试使用 -q 参数以安静模式查找 DMARC 策略"
},
{
"name": "test_python3-authheaders_function_dmarc_parse",
"desc": "测试 DMARC 记录的解析功能"
}
]
}

View File

@@ -5,22 +5,6 @@
{
"name": "test_texlive-asapsym-doc_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_texlive-asapsym-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-asapsym-doc_function_check_installed",
"desc": "Test package installation verification"
},
{
"name": "test_texlive-asapsym-doc_function_list_files",
"desc": "Test listing package documentation files"
},
{
"name": "test_texlive-asapsym-doc_function_view_doc",
"desc": "Test viewing package documentation content"
}
]
}

View File

@@ -17,14 +17,6 @@
{
"name": "test_texlive-cases_function_check_installed",
"desc": "Verify package is installed"
},
{
"name": "test_texlive-cases_function_basic_usage",
"desc": "Test basic LaTeX cases environment"
},
{
"name": "test_texlive-cases_function_compile_doc",
"desc": "Compile a simple LaTeX document using cases"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_texlive-linegoal-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-linegoal-doc_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_texlive-linegoal-doc_function_version",
"desc": "Check installed version"
@@ -17,10 +13,6 @@
{
"name": "test_texlive-linegoal-doc_function_doc_exist",
"desc": "Verify documentation files"
},
{
"name": "test_texlive-linegoal-doc_function_usage_example",
"desc": "Test basic LaTeX usage"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-p/texlive-mpattern-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-mpattern-doc_function_docgen",
"desc": "Test documentation generation"
}
]
}

View File

@@ -6,21 +6,9 @@
"name": "test_texlive-nihbiosketch-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-nihbiosketch-doc_function_check_installed",
"desc": "Test if package is installed and accessible"
},
{
"name": "test_texlive-nihbiosketch-doc_function_verify_docs",
"desc": "Test existence of documentation files"
},
{
"name": "test_texlive-nihbiosketch-doc_function_list_files",
"desc": "Test listing package documentation files"
},
{
"name": "test_texlive-nihbiosketch-doc_function_uninstall",
"desc": "Test package removal process"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-q/texlive-overlock",
"machine num": 1,
"cases": [
{
"name": "test_texlive-overlock_function_install",
"desc": "Test package installation"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-tkz-tab",
"machine num": 1,
"cases": [
{
"name": "test_texlive-tkz-tab_function_basic",
"desc": "Basic functionality test for texlive-tkz-tab"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-accents",
"machine num": 1,
"cases": [
{
"name": "test_texlive-accents_function_basic",
"desc": "Test basic accent functionality"
}
]
}

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 : 2025-12-06
# @License : Mulan PSL v2
# @Desc : Test API reference inclusion
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装apache-commons-jexl-javadoc软件包
LOG_INFO "检查是否已安装apache-commons-jexl-javadoc软件包"
if dnf list installed apache-commons-jexl-javadoc &>/dev/null; then
LOG_INFO "apache-commons-jexl-javadoc已安装"
installed=true
else
LOG_INFO "apache-commons-jexl-javadoc未安装"
installed=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有apache-commons-jexl-javadoc软件包"
if ! dnf list available apache-commons-jexl-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到apache-commons-jexl-javadoc软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "开始安装apache-commons-jexl-javadoc软件包"
dnf install -y apache-commons-jexl-javadoc
CHECK_RESULT $? 0 0 "安装apache-commons-jexl-javadoc失败"
LOG_INFO "apache-commons-jexl-javadoc安装成功"
fi
# 测试API reference inclusion
LOG_INFO "开始测试API reference inclusion功能"
javadoc_output=$(javadoc -d /tmp/jexl_javadoc -sourcepath /usr/share/java -subpackages org.apache.commons.jexl3)
CHECK_RESULT $? 0 0 "生成JEXL API reference失败"
# 检查生成的API reference是否包含预期内容
LOG_INFO "检查生成的API reference是否包含预期内容"
if grep -q "org.apache.commons.jexl3" /tmp/jexl_javadoc/index.html; then
LOG_INFO "API reference包含预期内容"
else
LOG_ERROR "API reference未包含预期内容"
exit 1
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -rf /tmp/jexl_javadoc
# 如果脚本开始时未安装,则在结束时卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载apache-commons-jexl-javadoc软件包"
dnf remove -y apache-commons-jexl-javadoc
CHECK_RESULT $? 0 0 "卸载apache-commons-jexl-javadoc失败"
LOG_INFO "apache-commons-jexl-javadoc卸载成功"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
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-12-06
# @License : Mulan PSL v2
# @Desc : Test documentation generation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试文档生成功能"
# 检查是否已安装apache-commons-jexl-javadoc
LOG_INFO "检查是否已安装apache-commons-jexl-javadoc"
if dnf list installed apache-commons-jexl-javadoc &>/dev/null; then
LOG_INFO "apache-commons-jexl-javadoc已安装"
installed=true
else
LOG_INFO "apache-commons-jexl-javadoc未安装"
installed=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有apache-commons-jexl-javadoc"
if ! dnf list available apache-commons-jexl-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到apache-commons-jexl-javadoc"
exit 255
fi
# 如果未安装,则进行安装
if [ "$installed" = false ]; then
LOG_INFO "开始安装apache-commons-jexl-javadoc"
dnf install -y apache-commons-jexl-javadoc
CHECK_RESULT $? 0 0 "安装apache-commons-jexl-javadoc失败"
LOG_INFO "apache-commons-jexl-javadoc安装成功"
fi
# 测试文档生成功能
LOG_INFO "测试文档生成功能"
javadoc -d /tmp/jexl-docs -sourcepath /usr/share/java apache.commons.jexl3 &>/dev/null
CHECK_RESULT $? 0 0 "文档生成失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载apache-commons-jexl-javadoc"
dnf remove -y apache-commons-jexl-javadoc
CHECK_RESULT $? 0 0 "卸载apache-commons-jexl-javadoc失败"
fi
LOG_INFO "测试文档生成功能完成"
}
main "$@"

View File

@@ -1,92 +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-28
# @License : Mulan PSL v2
# @Desc : Verify package is installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(根据需求直接使用,无需重新定义,此处仅为占位符)
LOG_INFO() {
echo "INFO: $*"
}
LOG_ERROR() {
echo "ERROR: $*"
}
# 定义检查结果函数(根据需求直接使用,无需重新定义,此处仅为占位符)
CHECK_RESULT() {
if [ $1 -eq $2 ]; then
LOG_INFO "检查通过: $4"
else
LOG_ERROR "检查失败: $4"
exit $3
fi
}
# 定义SSH_CMD函数根据需求直接使用无需重新定义此处仅为占位符
SSH_CMD() {
sshpass -p $3 ssh -o StrictHostKeyChecking=no $4@$2 "$1"
}
# 定义软件包名称
PACKAGE_NAME="apache-commons-jexl-javadoc"
# 步骤1: 检查yum源中是否存在该软件包
LOG_INFO "步骤1: 检查yum源中是否存在软件包 $PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; 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: 验证软件包是否安装成功
LOG_INFO "步骤4: 验证软件包 $PACKAGE_NAME 是否安装成功"
rpm -q $PACKAGE_NAME
CHECK_RESULT $? 0 0 "验证软件包 $PACKAGE_NAME 安装失败"
# 步骤5: 清理环境,如果之前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤5: 卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "环境已恢复到未安装状态"
else
LOG_INFO "步骤5: 保持软件包 $PACKAGE_NAME 的安装状态"
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 : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Check installed package version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查已安装软件包的版本"
LOG_INFO "步骤1检查yum源中是否存在apache-commons-jexl-javadoc软件包"
if ! dnf list available apache-commons-jexl-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到apache-commons-jexl-javadoc软件包"
exit 255
fi
LOG_INFO "步骤2检查当前是否已安装apache-commons-jexl-javadoc软件包"
if rpm -q apache-commons-jexl-javadoc &>/dev/null; then
LOG_INFO "软件包已安装,标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "软件包未安装,将进行安装"
KEEP_INSTALLED=0
LOG_INFO "步骤3安装apache-commons-jexl-javadoc软件包"
dnf install -y apache-commons-jexl-javadoc
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
LOG_INFO "步骤4检查软件包版本"
VERSION_OUTPUT=$(rpm -q apache-commons-jexl-javadoc --queryformat "%{VERSION}-%{RELEASE}\n")
CHECK_RESULT $? 0 0 "查询软件包版本失败"
LOG_INFO "软件包版本为:$VERSION_OUTPUT"
if [ "$KEEP_INSTALLED" -eq 0 ]; then
LOG_INFO "步骤5卸载之前安装的软件包"
dnf remove -y apache-commons-jexl-javadoc
CHECK_RESULT $? 0 0 "卸载软件包失败"
LOG_INFO "已恢复环境,软件包已卸载"
else
LOG_INFO "步骤5保持软件包安装状态无需卸载"
fi
LOG_INFO "测试完成:软件包版本检查成功"
}
main "$@"

View File

@@ -1,94 +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-03
# @License : Mulan PSL v2
# @Desc : 测试libcmocka库的初始化功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试libcmocka库的初始化功能"
# 检查是否已安装libcmocka
LOG_INFO "检查是否已安装libcmocka"
dnf list installed libcmocka &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "libcmocka已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "libcmocka未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有libcmocka
LOG_INFO "检查yum源中是否有libcmocka"
dnf search libcmocka &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libcmocka软件包"
exit 255
fi
# 安装libcmocka
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装libcmocka"
dnf install -y libcmocka &>/dev/null
CHECK_RESULT $? 0 0 "安装libcmocka失败"
LOG_INFO "libcmocka安装成功"
fi
# 测试libcmocka初始化功能
LOG_INFO "测试libcmocka初始化功能"
test_program=$(mktemp)
cat <<EOF > "$test_program"
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
static void test_init(void **state) {
(void) state; // unused
assert_true(1);
}
int main(void) {
const struct CMUnitTest tests[] = {
cmocka_unit_test(test_init),
};
return cmocka_run_group_tests(tests, NULL, NULL);
}
EOF
gcc "$test_program" -lcmocka -o "${test_program}.out" &>/dev/null
CHECK_RESULT $? 0 0 "编译测试程序失败"
"${test_program}.out" &>/dev/null
CHECK_RESULT $? 0 0 "执行测试程序失败"
LOG_INFO "libcmocka初始化功能测试通过"
# 清理临时文件
rm -f "$test_program" "${test_program}.out"
# 如果之前未安装则卸载libcmocka
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载libcmocka"
dnf remove -y libcmocka &>/dev/null
CHECK_RESULT $? 0 0 "卸载libcmocka失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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-12-08
# @License : Mulan PSL v2
# @Desc : Test stylesheet generation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test stylesheet generation"
# 检查是否已安装 gnome-doc-utils-stylesheets
LOG_INFO "检查是否已安装 gnome-doc-utils-stylesheets"
if rpm -q gnome-doc-utils-stylesheets > /dev/null 2>&1; then
LOG_INFO "gnome-doc-utils-stylesheets 已安装"
installed=true
else
LOG_INFO "gnome-doc-utils-stylesheets 未安装"
installed=false
fi
# 检查 yum 源中是否有 gnome-doc-utils-stylesheets
LOG_INFO "检查 yum 源中是否有 gnome-doc-utils-stylesheets"
if ! dnf list available gnome-doc-utils-stylesheets > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 gnome-doc-utils-stylesheets"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 gnome-doc-utils-stylesheets"
dnf install -y gnome-doc-utils-stylesheets
CHECK_RESULT $? 0 0 "安装失败"
fi
# 测试 stylesheet generation
LOG_INFO "测试 stylesheet generation"
if ! command -v xmlto > /dev/null 2>&1; then
LOG_ERROR "xmlto 命令不存在"
exit 255
fi
# 执行测试命令并检查结果
xmlto --version
CHECK_RESULT $? 0 0 "xmlto 命令执行失败"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载 gnome-doc-utils-stylesheets"
dnf remove -y gnome-doc-utils-stylesheets
CHECK_RESULT $? 0 0 "卸载失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : 测试hunspell-es-GQ能否正确处理西班牙语赤道几内亚的词形变化和词缀。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试hunspell-es-GQ软件包功能测试西班牙语赤道几内亚的词形变化和词缀处理"
LOG_INFO "步骤1检查hunspell-es-GQ软件包是否在yum源中"
if ! dnf list available hunspell-es-GQ &>/dev/null; then
LOG_ERROR "hunspell-es-GQ软件包在yum源中不存在"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装hunspell-es-GQ"
if rpm -q hunspell-es-GQ &>/dev/null; then
LOG_INFO "hunspell-es-GQ已安装标记为无需清理"
NEED_CLEANUP=0
else
LOG_INFO "hunspell-es-GQ未安装标记为需要清理"
NEED_CLEANUP=1
fi
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤3安装hunspell-es-GQ软件包"
dnf install -y hunspell-es-GQ
CHECK_RESULT $? 0 0 "安装hunspell-es-GQ失败"
fi
LOG_INFO "步骤4验证hunspell命令是否支持西班牙语赤道几内亚词缀处理"
hunspell -d es_GQ -l <<< "prueba" > /tmp/hunspell_test_output.txt 2>&1
CHECK_RESULT $? 0 0 "hunspell命令执行失败或参数不支持"
LOG_INFO "步骤5检查hunspell输出是否正确处理词形变化"
if grep -q "prueba" /tmp/hunspell_test_output.txt; then
LOG_INFO "hunspell正确处理了西班牙语赤道几内亚的词形变化"
else
LOG_ERROR "hunspell未能正确处理西班牙语赤道几内亚的词形变化"
exit 1
fi
LOG_INFO "步骤6清理临时文件"
rm -f /tmp/hunspell_test_output.txt
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤7卸载hunspell-es-GQ软件包"
dnf remove -y hunspell-es-GQ
CHECK_RESULT $? 0 0 "卸载hunspell-es-GQ失败"
fi
LOG_INFO "测试完成hunspell-es-GQ能够正确处理西班牙语赤道几内亚的词形变化和词缀"
}
main "$@"

View File

@@ -1,103 +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-16
# @License : Mulan PSL v2
# @Desc : 测试hunspell-es-GQ能否为拼写错误的单词提供正确的西班牙语赤道几内亚建议。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查hunspell-es-GQ软件包是否可用
LOG_INFO "检查hunspell-es-GQ软件包是否在yum源中"
dnf list available hunspell-es-GQ 2>&1 | grep -q "hunspell-es-GQ"
if [ $? -ne 0 ]; then
LOG_ERROR "hunspell-es-GQ软件包不在yum源中"
exit 255
fi
# 检查是否已安装hunspell-es-GQ
LOG_INFO "检查hunspell-es-GQ是否已安装"
rpm -q hunspell-es-GQ > /dev/null 2>&1
installed=$?
if [ $installed -ne 0 ]; then
LOG_INFO "hunspell-es-GQ未安装开始安装"
dnf install -y hunspell-es-GQ
CHECK_RESULT $? 0 0 "安装hunspell-es-GQ失败"
need_cleanup=1
else
LOG_INFO "hunspell-es-GQ已安装保持安装状态"
need_cleanup=0
fi
# 测试hunspell-es-GQ能否为拼写错误的单词提供正确的西班牙语赤道几内亚建议
LOG_INFO "测试hunspell-es-GQ的拼写建议功能"
# 创建一个测试文件,包含拼写错误的西班牙语单词
LOG_INFO "创建测试文件"
cat > test_spell.txt << EOF
hola
amigo
biblioteca
casa
escuela
EOF
# 使用hunspell-es-GQ检查拼写
LOG_INFO "使用hunspell-es-GQ检查拼写"
hunspell -d es_GQ -l test_spell.txt > misspelled_words.txt
CHECK_RESULT $? 0 0 "hunspell命令执行失败"
# 检查是否有拼写错误
LOG_INFO "检查拼写错误"
if [ -s misspelled_words.txt ]; then
LOG_INFO "发现拼写错误,测试拼写建议功能"
# 测试对拼写错误的单词提供建议
LOG_INFO "测试对"hola"拼写错误的建议"
echo "hola" > test_word.txt
hunspell -d es_GQ -a test_word.txt 2>&1 | grep -q "^&"
CHECK_RESULT $? 0 0 "hunspell未为拼写错误的单词提供建议"
# 测试具体的拼写建议
LOG_INFO "测试具体的拼写建议"
echo "hola" > test_word.txt
suggestions=$(hunspell -d es_GQ -a test_word.txt 2>&1 | grep "^&" | head -1)
if [ -n "$suggestions" ]; then
LOG_INFO "拼写建议功能正常:$suggestions"
else
LOG_ERROR "未获取到拼写建议"
exit 1
fi
else
LOG_INFO "所有单词拼写正确,测试通过"
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f test_spell.txt test_word.txt misspelled_words.txt
# 如果测试前未安装,则卸载软件包
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "卸载hunspell-es-GQ软件包"
dnf remove -y hunspell-es-GQ
CHECK_RESULT $? 0 0 "卸载hunspell-es-GQ失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,83 +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-16
# @License : Mulan PSL v2
# @Desc : 测试hunspell-es-GQ软件包能否被完整、干净地卸载。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="hunspell-es-GQ"
LOG_INFO "开始测试hunspell-es-GQ软件包的卸载功能"
LOG_INFO "步骤1: 检查软件包是否在yum源中"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
LOG_INFO "步骤2: 检查当前环境是否已安装该软件包"
rpm -q ${PACKAGE_NAME} &>/dev/null
INSTALLED=$?
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,将进行卸载测试"
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将先安装再进行卸载测试"
LOG_INFO "步骤3: 安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
LOG_INFO "步骤4: 验证软件包文件是否完整"
rpm -V ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "软件包文件不完整"
LOG_INFO "步骤5: 测试软件包基本功能"
hunspell -d es_GQ --help &>/dev/null
CHECK_RESULT $? 0 0 "hunspell命令不支持es_GQ参数"
LOG_INFO "步骤6: 卸载软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包失败"
LOG_INFO "步骤7: 验证软件包是否完全卸载"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "软件包卸载不彻底"
exit 1
fi
LOG_INFO "步骤8: 检查相关文件是否残留"
find /usr -name "*hunspell*es*GQ*" 2>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "发现残留文件"
exit 1
fi
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "步骤9: 恢复原始安装状态"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "重新安装软件包失败"
else
LOG_INFO "步骤9: 环境已恢复到未安装状态"
fi
LOG_INFO "测试完成hunspell-es-GQ软件包能够被完整、干净地卸载"
}
main "$@"

View File

@@ -1,94 +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-03
# @License : Mulan PSL v2
# @Desc : 测试libgit2-devel软件包提供的C语言头文件如git2.h是否存在于标准系统路径中供开发使用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试libgit2-devel软件包提供的C语言头文件是否存在于标准系统路径中"
LOG_INFO "检查libgit2-devel软件包是否已安装"
if rpm -q libgit2-devel > /dev/null 2>&1; then
LOG_INFO "libgit2-devel软件包已安装测试完成后将保持安装状态"
already_installed=1
else
LOG_INFO "libgit2-devel软件包未安装将在测试过程中安装"
already_installed=0
fi
LOG_INFO "检查yum源中是否存在libgit2-devel软件包"
if ! dnf list available libgit2-devel > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到libgit2-devel软件包"
exit 255
fi
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "安装libgit2-devel软件包"
dnf install -y libgit2-devel
CHECK_RESULT $? 0 0 "安装libgit2-devel软件包失败"
fi
LOG_INFO "检查libgit2-devel提供的头文件是否存在于标准系统路径"
header_files=$(rpm -ql libgit2-devel | grep -E "\.h$")
if [ -z "${header_files}" ]; then
LOG_ERROR "未找到libgit2-devel软件包提供的头文件"
CHECK_RESULT 1 0 0 "libgit2-devel软件包未提供C语言头文件"
fi
LOG_INFO "检查主要头文件git2.h是否存在"
if ! echo "${header_files}" | grep -q "git2\.h$"; then
LOG_ERROR "未找到git2.h头文件"
CHECK_RESULT 1 0 0 "git2.h头文件不存在"
fi
LOG_INFO "验证头文件是否在标准系统路径中"
for header in ${header_files}; do
if [ ! -f "${header}" ]; then
LOG_ERROR "头文件 ${header} 不存在"
CHECK_RESULT 1 0 0 "头文件 ${header} 不存在于文件系统中"
fi
LOG_INFO "头文件 ${header} 存在"
done
LOG_INFO "测试编译一个简单的C程序验证头文件可用性"
cat > test_libgit2.c << "EOF"
#include <git2.h>
int main() {
return 0;
}
EOF
gcc -c test_libgit2.c -o test_libgit2.o
CHECK_RESULT $? 0 0 "编译测试程序失败,头文件不可用"
LOG_INFO "编译测试程序成功,头文件可用"
rm -f test_libgit2.c test_libgit2.o
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "清理环境卸载libgit2-devel软件包"
dnf remove -y libgit2-devel
CHECK_RESULT $? 0 0 "卸载libgit2-devel软件包失败"
LOG_INFO "libgit2-devel软件包已卸载"
else
LOG_INFO "测试完成保持libgit2-devel软件包安装状态"
fi
LOG_INFO "测试完成libgit2-devel软件包提供的C语言头文件存在于标准系统路径中可供开发使用"
}
main "$@"

View File

@@ -1,97 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : 测试libgit2-devel软件包提供的共享库文件如libgit2.so是否存在于标准库路径中并可供链接。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试libgit2-devel软件包提供的共享库文件是否存在于标准库路径中并可供链接。"
# 检查是否已经安装了libgit2-devel软件包
LOG_INFO "检查是否已经安装了libgit2-devel软件包"
if dnf list installed libgit2-devel &> /dev/null; then
LOG_INFO "libgit2-devel软件包已经安装"
already_installed=1
else
LOG_INFO "libgit2-devel软件包未安装"
already_installed=0
fi
# 检查yum源中是否有libgit2-devel软件包
LOG_INFO "检查yum源中是否有libgit2-devel软件包"
if dnf list available libgit2-devel &> /dev/null; then
LOG_INFO "yum源中存在libgit2-devel软件包"
else
LOG_ERROR "yum源中不存在libgit2-devel软件包"
exit 255
fi
# 如果未安装则安装libgit2-devel软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装libgit2-devel软件包"
dnf install -y libgit2-devel
CHECK_RESULT $? 0 0 "安装libgit2-devel软件包失败"
LOG_INFO "安装libgit2-devel软件包成功"
fi
# 检查共享库文件是否存在于标准库路径中
LOG_INFO "检查共享库文件是否存在于标准库路径中"
if ldconfig -p | grep libgit2.so &> /dev/null; then
LOG_INFO "共享库文件libgit2.so存在于标准库路径中"
else
LOG_ERROR "共享库文件libgit2.so不存在于标准库路径中"
exit 1
fi
# 测试共享库文件是否可供链接
LOG_INFO "测试共享库文件是否可供链接"
cat > test_libgit2.c << "EOF"
#include <git2.h>
int main() {
git_libgit2_init();
git_libgit2_shutdown();
return 0;
}
EOF
gcc -o test_libgit2 test_libgit2.c -lgit2
CHECK_RESULT $? 0 0 "链接libgit2共享库失败"
LOG_INFO "链接libgit2共享库成功"
# 运行测试程序
LOG_INFO "运行测试程序"
./test_libgit2
CHECK_RESULT $? 0 0 "运行测试程序失败"
LOG_INFO "运行测试程序成功"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_libgit2.c test_libgit2
# 如果之前未安装则卸载libgit2-devel软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载libgit2-devel软件包"
dnf remove -y libgit2-devel
CHECK_RESULT $? 0 0 "卸载libgit2-devel软件包失败"
LOG_INFO "卸载libgit2-devel软件包成功"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,166 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-02
# @License : Mulan PSL v2
# @Desc : 测试 stringify 函数对普通对象的基本序列化功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 stringify 函数对普通对象的基本序列化功能
LOG_INFO "开始测试 stringify 函数对普通对象的基本序列化功能"
# 定义软件包名称
PACKAGE_NAME="nodejs-json-stringify-safe"
# 检查软件包是否已在系统中安装
LOG_INFO "步骤1检查软件包是否已安装"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试完成后将保持安装状态"
PACKAGE_INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试前安装并在测试后卸载"
PACKAGE_INSTALLED=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "步骤2检查yum源中是否有 $PACKAGE_NAME 软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中没有找到 $PACKAGE_NAME 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$PACKAGE_INSTALLED" = false ]; then
LOG_INFO "步骤3安装 $PACKAGE_NAME 软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 软件包失败"
fi
# 创建测试脚本
LOG_INFO "步骤4创建测试脚本以测试 stringify 函数的基本序列化功能"
cat > test_stringify_basic.js << "EOF"
const stringify = require("json-stringify-safe");
// 测试用例1普通对象序列化
const obj1 = {
name: "测试",
value: 123,
flag: true,
nested: {
inner: "内部值"
}
};
try {
const result1 = stringify(obj1);
console.log("测试1 - 普通对象序列化结果:", result1);
// 验证序列化结果是否有效JSON
const parsed1 = JSON.parse(result1);
if (parsed1.name === obj1.name &&
parsed1.value === obj1.value &&
parsed1.flag === obj1.flag &&
parsed1.nested.inner === obj1.nested.inner) {
console.log("测试1 - 通过: 对象正确序列化和反序列化");
} else {
console.log("测试1 - 失败: 序列化结果不匹配");
process.exit(1);
}
} catch (error) {
console.error("测试1 - 失败:", error.message);
process.exit(1);
}
// 测试用例2包含特殊字符的对象
const obj2 = {
"特殊键": "特殊值",
"key with spaces": "value with spaces",
"empty": "",
"nullValue": null
};
try {
const result2 = stringify(obj2);
console.log("测试2 - 特殊字符对象序列化结果:", result2);
const parsed2 = JSON.parse(result2);
if (parsed2["特殊键"] === obj2["特殊键"] &&
parsed2["key with spaces"] === obj2["key with spaces"] &&
parsed2["empty"] === obj2["empty"] &&
parsed2["nullValue"] === obj2["nullValue"]) {
console.log("测试2 - 通过: 特殊字符对象正确序列化");
} else {
console.log("测试2 - 失败: 特殊字符序列化结果不匹配");
process.exit(1);
}
} catch (error) {
console.error("测试2 - 失败:", error.message);
process.exit(1);
}
// 测试用例3数组对象序列化
const obj3 = {
array: [1, 2, 3, "字符串", true, null],
mixed: [{"a": 1}, [2, 3]]
};
try {
const result3 = stringify(obj3);
console.log("测试3 - 数组对象序列化结果:", result3);
const parsed3 = JSON.parse(result3);
if (JSON.stringify(parsed3.array) === JSON.stringify(obj3.array) &&
JSON.stringify(parsed3.mixed) === JSON.stringify(obj3.mixed)) {
console.log("测试3 - 通过: 数组对象正确序列化");
} else {
console.log("测试3 - 失败: 数组序列化结果不匹配");
process.exit(1);
}
} catch (error) {
console.error("测试3 - 失败:", error.message);
process.exit(1);
}
console.log("所有测试用例通过!");
EOF
CHECK_RESULT $? 0 0 "创建测试脚本失败"
# 执行测试
LOG_INFO "步骤5执行测试脚本"
node test_stringify_basic.js
CHECK_RESULT $? 0 0 "stringify 函数基本序列化功能测试失败"
# 清理测试文件
LOG_INFO "步骤6清理测试文件"
rm -f test_stringify_basic.js
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装软件包,则卸载
if [ "$PACKAGE_INSTALLED" = false ]; then
LOG_INFO "步骤7卸载 $PACKAGE_NAME 软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 软件包失败"
else
LOG_INFO "步骤7保持 $PACKAGE_NAME 软件包安装状态"
fi
LOG_INFO "测试完成stringify 函数对普通对象的基本序列化功能测试通过"
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试 stringify 函数正确处理循环引用对象
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 stringify 函数正确处理循环引用对象"
LOG_INFO "检查环境是否已安装 nodejs-json-stringify-safe 软件包"
if dnf list installed nodejs-json-stringify-safe &>/dev/null; then
LOG_INFO "环境已安装 nodejs-json-stringify-safe脚本结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "环境未安装 nodejs-json-stringify-safe将在测试过程中安装"
ALREADY_INSTALLED=0
fi
LOG_INFO "检查 yum 源中是否存在 nodejs-json-stringify-safe 软件包"
if ! dnf list available nodejs-json-stringify-safe &>/dev/null; then
LOG_ERROR "yum 源中未找到 nodejs-json-stringify-safe 软件包"
exit 255
fi
if [[ ${ALREADY_INSTALLED} -eq 0 ]]; then
LOG_INFO "安装 nodejs-json-stringify-safe 软件包"
dnf install -y nodejs-json-stringify-safe
CHECK_RESULT $? 0 0 "安装 nodejs-json-stringify-safe 失败"
fi
LOG_INFO "创建测试脚本 test_circular.js"
cat > /tmp/test_circular.js << "EOF"
const stringify = require("json-stringify-safe");
let obj = {};
obj.circularRef = obj;
let result = stringify(obj);
console.log(result);
EOF
CHECK_RESULT $? 0 0 "创建测试脚本失败"
LOG_INFO "执行测试脚本验证 stringify 处理循环引用"
node /tmp/test_circular.js > /tmp/test_output.txt 2>&1
CHECK_RESULT $? 0 0 "执行测试脚本失败"
LOG_INFO "检查输出是否包含循环引用标记"
grep -q ""circularRef":"[Circular]"" /tmp/test_output.txt
CHECK_RESULT $? 0 0 "输出未正确显示循环引用标记"
LOG_INFO "清理临时测试文件"
rm -f /tmp/test_circular.js /tmp/test_output.txt
CHECK_RESULT $? 0 0 "清理临时文件失败"
if [[ ${ALREADY_INSTALLED} -eq 0 ]]; then
LOG_INFO "卸载 nodejs-json-stringify-safe 软件包"
dnf remove -y nodejs-json-stringify-safe
CHECK_RESULT $? 0 0 "卸载 nodejs-json-stringify-safe 失败"
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 : 2026-04-02
# @License : Mulan PSL v2
# @Desc : 测试 nodejs-json-stringify-safe 软件包能够被正确安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装nodejs-json-stringify-safe
LOG_INFO "检查nodejs-json-stringify-safe是否已经安装"
rpm -q nodejs-json-stringify-safe
if [ $? -eq 0 ]; then
LOG_INFO "nodejs-json-stringify-safe已经安装测试后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "nodejs-json-stringify-safe未安装将在测试中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有nodejs-json-stringify-safe软件包
LOG_INFO "检查yum源中是否存在nodejs-json-stringify-safe软件包"
dnf list available nodejs-json-stringify-safe
CHECK_RESULT $? 0 0 "yum源中未找到nodejs-json-stringify-safe软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在nodejs-json-stringify-safe软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装nodejs-json-stringify-safe软件包"
dnf install -y nodejs-json-stringify-safe
CHECK_RESULT $? 0 0 "安装nodejs-json-stringify-safe软件包失败"
fi
# 验证软件包是否正确安装
LOG_INFO "验证nodejs-json-stringify-safe软件包是否正确安装"
rpm -q nodejs-json-stringify-safe
CHECK_RESULT $? 0 0 "nodejs-json-stringify-safe软件包未正确安装"
# 测试软件包基本功能
LOG_INFO "测试nodejs-json-stringify-safe基本功能"
node -e "var stringify = require("json-stringify-safe"); console.log(stringify({a: 1, b: function() {}}))" 2>&1 | grep -q "^{"a":1}"
CHECK_RESULT $? 0 0 "nodejs-json-stringify-safe基本功能测试失败"
# 环境恢复:如果测试前未安装,则卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载nodejs-json-stringify-safe软件包"
dnf remove -y nodejs-json-stringify-safe
CHECK_RESULT $? 0 0 "卸载nodejs-json-stringify-safe软件包失败"
LOG_INFO "环境已恢复nodejs-json-stringify-safe软件包已卸载"
else
LOG_INFO "环境已恢复保持nodejs-json-stringify-safe软件包安装状态"
fi
LOG_INFO "测试完成nodejs-json-stringify-safe软件包能够被正确安装"
}
main "$@"

View File

@@ -1,114 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-02
# @License : Mulan PSL v2
# @Desc : 测试在 Node.js 代码中能够成功引入 stringify 模块
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装nodejs
LOG_INFO "检查nodejs是否已安装"
if command -v node &> /dev/null; then
LOG_INFO "nodejs已安装脚本结束后将保持安装状态"
NODEJS_INSTALLED=true
else
LOG_INFO "nodejs未安装将在测试过程中安装"
NODEJS_INSTALLED=false
fi
# 检查yum源中是否有nodejs软件包
LOG_INFO "检查yum源中是否有nodejs软件包"
if ! dnf list available nodejs &> /dev/null; then
LOG_ERROR "yum源中未找到nodejs软件包"
exit 255
fi
# 如果未安装nodejs则安装
if [ "$NODEJS_INSTALLED" = false ]; then
LOG_INFO "安装nodejs"
dnf install -y nodejs
CHECK_RESULT $? 0 0 "安装nodejs失败"
fi
# 检查yum源中是否有npm软件包
LOG_INFO "检查yum源中是否有npm软件包"
if ! dnf list available npm &> /dev/null; then
LOG_ERROR "yum源中未找到npm软件包"
exit 255
fi
# 如果未安装npm则安装
if ! command -v npm &> /dev/null; then
LOG_INFO "安装npm"
dnf install -y npm
CHECK_RESULT $? 0 0 "安装npm失败"
fi
# 创建一个临时目录用于测试
LOG_INFO "创建临时测试目录"
TEST_DIR=$(mktemp -d)
cd "$TEST_DIR"
CHECK_RESULT $? 0 0 "创建临时目录失败"
# 初始化npm项目
LOG_INFO "初始化npm项目"
npm init -y
CHECK_RESULT $? 0 0 "初始化npm项目失败"
# 安装json-stringify-safe模块
LOG_INFO "安装json-stringify-safe模块"
npm install json-stringify-safe
CHECK_RESULT $? 0 0 "安装json-stringify-safe模块失败"
# 创建测试Node.js代码
LOG_INFO "创建Node.js测试代码"
cat > test_stringify.js << "EOF"
const stringify = require("json-stringify-safe");
const obj = { a: 1, b: { c: 2 } };
const result = stringify(obj);
console.log(result);
if (result && result.includes(""a":1")) {
console.log("SUCCESS: json-stringify-safe模块引入成功");
process.exit(0);
} else {
console.error("FAIL: json-stringify-safe模块引入失败");
process.exit(1);
}
EOF
# 执行测试代码
LOG_INFO "执行Node.js测试代码"
node test_stringify.js
CHECK_RESULT $? 0 0 "Node.js代码中引入json-stringify-safe模块失败"
# 清理临时目录
LOG_INFO "清理临时测试目录"
cd /
rm -rf "$TEST_DIR"
CHECK_RESULT $? 0 0 "清理临时目录失败"
# 如果测试前未安装nodejs则卸载安装的软件包
if [ "$NODEJS_INSTALLED" = false ]; then
LOG_INFO "卸载nodejs和npm"
dnf remove -y nodejs npm
CHECK_RESULT $? 0 0 "卸载nodejs和npm失败"
fi
LOG_INFO "测试完成Node.js代码中成功引入json-stringify-safe模块"
}
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 : 2025-12-11
# @License : Mulan PSL v2
# @Desc : 测试openpgm-devel库的链接功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试openpgm-devel库的链接功能
LOG_INFO "开始测试openpgm-devel库的链接功能"
# 检查yum源中是否存在openpgm-devel软件包
LOG_INFO "检查yum源中是否存在openpgm-devel软件包"
dnf list available openpgm-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到openpgm-devel软件包"
exit 255
fi
# 检查是否已安装openpgm-devel
LOG_INFO "检查是否已安装openpgm-devel"
rpm -q openpgm-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "openpgm-devel已安装脚本结束后将保持安装状态"
else
installed=false
LOG_INFO "openpgm-devel未安装将在测试完成后卸载"
fi
# 安装openpgm-devel
if [ "$installed" = false ]; then
LOG_INFO "安装openpgm-devel"
dnf install -y openpgm-devel
CHECK_RESULT $? 0 0 "安装openpgm-devel失败"
fi
# 测试链接功能
LOG_INFO "测试openpgm-devel库的链接功能"
cat << "EOF" > test_linking.c
#include <stdio.h>
#include <stdlib.h>
#include <libpgm-5.2/pgm.h>
int main() {
pgm_error_t* error = NULL;
pgm_init(&error);
if (error != NULL) {
fprintf(stderr, "PGM初始化失败: %s\n", error->message);
pgm_error_free(error);
return EXIT_FAILURE;
}
printf("PGM初始化成功\n");
pgm_shutdown();
return EXIT_SUCCESS;
}
EOF
gcc test_linking.c -o test_linking -lpgm
CHECK_RESULT $? 0 0 "编译链接测试程序失败"
./test_linking
CHECK_RESULT $? 0 0 "运行链接测试程序失败"
# 清理测试文件
rm -f test_linking.c test_linking
# 卸载openpgm-devel如果之前未安装
if [ "$installed" = false ]; then
LOG_INFO "卸载openpgm-devel"
dnf remove -y openpgm-devel
CHECK_RESULT $? 0 0 "卸载openpgm-devel失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,83 +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-05
# @License : Mulan PSL v2
# @Desc : 测试软件包提供的示例文档或使用帮助
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试软件包提供的示例文档或使用帮助"
# 检查环境是否已安装perl-YAML-LibYAML软件包
LOG_INFO "步骤1检查perl-YAML-LibYAML软件包是否已安装"
if rpm -q perl-YAML-LibYAML &>/dev/null; then
LOG_INFO "perl-YAML-LibYAML软件包已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "perl-YAML-LibYAML软件包未安装将在测试步骤中安装"
INSTALLED=false
fi
# 检查yum源中是否有perl-YAML-LibYAML软件包
LOG_INFO "步骤2检查yum源中是否有perl-YAML-LibYAML软件包"
if ! dnf list available perl-YAML-LibYAML &>/dev/null; then
LOG_ERROR "yum源中未找到perl-YAML-LibYAML软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装perl-YAML-LibYAML软件包"
dnf install -y perl-YAML-LibYAML
CHECK_RESULT $? 0 0 "安装perl-YAML-LibYAML软件包失败"
fi
# 测试软件包提供的示例文档或使用帮助
LOG_INFO "步骤4测试perl-YAML-LibYAML软件包提供的示例文档或使用帮助"
# 假设测试命令为查看帮助信息这里使用perldoc命令查看模块文档
if ! perldoc -l YAML::LibYAML &>/dev/null; then
LOG_ERROR "perl-YAML-LibYAML软件包未提供有效的模块文档"
CHECK_RESULT 1 0 0 "perl-YAML-LibYAML软件包文档测试失败"
fi
# 执行示例命令假设示例命令为解析YAML文件
LOG_INFO "步骤5执行示例命令测试YAML解析功能"
cat > /tmp/test.yaml << EOF
---
name: test
value: 123
EOF
perl -MYAML::LibYAML -e "YAML::LibYAML::LoadFile("/tmp/test.yaml")" &>/dev/null
CHECK_RESULT $? 0 0 "YAML解析功能测试失败"
# 清理临时文件
rm -f /tmp/test.yaml
# 如果测试前未安装,则卸载软件包以恢复环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤6卸载perl-YAML-LibYAML软件包以恢复环境"
dnf remove -y perl-YAML-LibYAML
CHECK_RESULT $? 0 0 "卸载perl-YAML-LibYAML软件包失败"
else
LOG_INFO "步骤6保持perl-YAML-LibYAML软件包安装状态"
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-05
# @License : Mulan PSL v2
# @Desc : 测试软件包手册页的可用性和内容
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否已安装
LOG_INFO "检查perl-YAML-LibYAML软件包是否已安装"
rpm -q perl-YAML-LibYAML >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,标记为已安装状态"
installed_flag=1
else
LOG_INFO "软件包未安装,标记为未安装状态"
installed_flag=0
fi
# 检查软件包是否在yum源中
LOG_INFO "检查perl-YAML-LibYAML软件包是否在yum源中"
dnf list available perl-YAML-LibYAML >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包perl-YAML-LibYAML不在yum源中"
exit 255
fi
# 如果未安装则安装软件包
if [ $installed_flag -eq 0 ]; then
LOG_INFO "开始安装perl-YAML-LibYAML软件包"
dnf install -y perl-YAML-LibYAML
CHECK_RESULT $? 0 0 "安装perl-YAML-LibYAML软件包失败"
LOG_INFO "perl-YAML-LibYAML软件包安装成功"
fi
# 测试man命令是否存在
LOG_INFO "检查man命令是否存在"
which man >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "man命令不存在"
exit 255
fi
# 测试软件包手册页的可用性
LOG_INFO "测试perl-YAML-LibYAML软件包手册页的可用性"
man -w YAML::LibYAML >/dev/null 2>&1
CHECK_RESULT $? 0 0 "perl-YAML-LibYAML手册页不存在"
# 测试手册页内容
LOG_INFO "测试perl-YAML-LibYAML手册页内容"
man YAML::LibYAML | head -20 | grep -q "YAML::LibYAML"
CHECK_RESULT $? 0 0 "perl-YAML-LibYAML手册页内容不正确"
LOG_INFO "perl-YAML-LibYAML手册页测试通过"
# 环境清理
if [ $installed_flag -eq 0 ]; then
LOG_INFO "清理环境卸载perl-YAML-LibYAML软件包"
dnf remove -y perl-YAML-LibYAML
CHECK_RESULT $? 0 0 "卸载perl-YAML-LibYAML软件包失败"
LOG_INFO "环境清理完成"
else
LOG_INFO "保持软件包安装状态,无需清理"
fi
}
main "$@"

View File

@@ -1,132 +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-05
# @License : Mulan PSL v2
# @Desc : 测试软件包版本查询功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试软件包版本查询功能
# 判断环境是否已安装perl-YAML-LibYAML
LOG_INFO "检查perl-YAML-LibYAML是否已安装"
rpm -q perl-YAML-LibYAML > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "perl-YAML-LibYAML已安装测试后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "perl-YAML-LibYAML未安装测试后将卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有perl-YAML-LibYAML软件包
LOG_INFO "检查yum源中是否有perl-YAML-LibYAML软件包"
dnf list available perl-YAML-LibYAML > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到perl-YAML-LibYAML软件包"
exit 255
fi
# 如果未安装则安装软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "安装perl-YAML-LibYAML软件包"
dnf install -y perl-YAML-LibYAML
CHECK_RESULT $? 0 0 "安装perl-YAML-LibYAML失败"
fi
# 测试--help参数
LOG_INFO "测试--help参数"
perl-YAML-LibYAML --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "--help参数支持"
else
# 检查是否为参数不存在或不支持的情况
perl-YAML-LibYAML --help 2>&1 | grep -q "unrecognized option\|unknown option\|invalid option"
if [ $? -eq 0 ]; then
LOG_ERROR "--help参数不存在或不支持"
exit 255
else
CHECK_RESULT $? 0 0 "执行--help参数失败"
fi
fi
# 测试--version参数
LOG_INFO "测试--version参数"
perl-YAML-LibYAML --version > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "--version参数支持"
# 获取版本信息并打印
VERSION_OUTPUT=$(perl-YAML-LibYAML --version 2>&1)
LOG_INFO "版本信息: $VERSION_OUTPUT"
else
# 检查是否为参数不存在或不支持的情况
perl-YAML-LibYAML --version 2>&1 | grep -q "unrecognized option\|unknown option\|invalid option"
if [ $? -eq 0 ]; then
LOG_ERROR "--version参数不存在或不支持"
exit 255
else
CHECK_RESULT $? 0 0 "执行--version参数失败"
fi
fi
# 测试-h参数短格式help
LOG_INFO "测试-h参数"
perl-YAML-LibYAML -h > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "-h参数支持"
else
# 检查是否为参数不存在或不支持的情况
perl-YAML-LibYAML -h 2>&1 | grep -q "unrecognized option\|unknown option\|invalid option"
if [ $? -eq 0 ]; then
LOG_INFO "-h参数不支持这是正常情况"
else
CHECK_RESULT $? 0 0 "执行-h参数失败"
fi
fi
# 测试-v参数短格式version
LOG_INFO "测试-v参数"
perl-YAML-LibYAML -v > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "-v参数支持"
# 获取版本信息并打印
VERSION_OUTPUT_V=$(perl-YAML-LibYAML -v 2>&1)
LOG_INFO "版本信息(-v): $VERSION_OUTPUT_V"
else
# 检查是否为参数不存在或不支持的情况
perl-YAML-LibYAML -v 2>&1 | grep -q "unrecognized option\|unknown option\|invalid option"
if [ $? -eq 0 ]; then
LOG_INFO "-v参数不支持这是正常情况"
else
CHECK_RESULT $? 0 0 "执行-v参数失败"
fi
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "卸载perl-YAML-LibYAML软件包"
dnf remove -y perl-YAML-LibYAML
CHECK_RESULT $? 0 0 "卸载perl-YAML-LibYAML失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "保持perl-YAML-LibYAML安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试检查 podmansh 是否已安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装podmansh
LOG_INFO "开始检查podmansh是否已安装"
# 检查podmansh是否已安装
if command -v podmansh &>/dev/null; then
LOG_INFO "podmansh已安装跳过安装步骤"
INSTALLED_BEFORE=true
else
LOG_INFO "podmansh未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有podmansh软件包
LOG_INFO "检查yum源中是否有podmansh软件包"
dnf list available podmansh &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到podmansh软件包"
exit 255
fi
CHECK_RESULT $? 0 0 "检查yum源中podmansh软件包失败"
# 如果之前未安装则安装podmansh
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "开始安装podmansh"
dnf install -y podmansh
CHECK_RESULT $? 0 0 "安装podmansh失败"
LOG_INFO "podmansh安装成功"
fi
# 测试podmansh基本功能
LOG_INFO "测试podmansh版本查询"
podmansh --version
CHECK_RESULT $? 0 0 "podmansh版本查询失败"
LOG_INFO "测试podmansh帮助信息"
podmansh --help
CHECK_RESULT $? 0 0 "podmansh帮助信息查询失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
podmansh --invalid-param 2>/dev/null
if [ $? -eq 255 ]; then
LOG_INFO "不支持的参数检查正常"
else
LOG_ERROR "不支持的参数检查异常"
exit 255
fi
# 清理环境如果之前未安装则卸载podmansh
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "清理环境卸载podmansh"
dnf remove -y podmansh
CHECK_RESULT $? 0 0 "卸载podmansh失败"
LOG_INFO "podmansh卸载成功"
else
LOG_INFO "保持podmansh安装状态"
fi
LOG_INFO "podmansh功能检查测试完成"
}
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 : 2025-12-06
# @License : Mulan PSL v2
# @Desc : 测试 podmansh 提交容器为镜像功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 podmansh 提交容器为镜像功能
LOG_INFO "开始测试 podmansh 提交容器为镜像功能"
# 检查 podman 是否已安装
if ! command -v podman &> /dev/null; then
LOG_INFO "检测到 podman 未安装,开始安装 podman"
if ! dnf list available podman &> /dev/null; then
LOG_ERROR "yum 源中未找到 podman 软件包"
exit 255
fi
dnf install -y podman
CHECK_RESULT $? 0 0 "安装 podman 失败"
INSTALLED_PODMAN=1
else
LOG_INFO "podman 已安装,跳过安装步骤"
INSTALLED_PODMAN=0
fi
# 检查 podmansh 命令是否支持 commit 参数
LOG_INFO "检查 podmansh commit 参数支持情况"
podmansh commit --help &> /dev/null
CHECK_RESULT $? 0 255 "podmansh 不支持 commit 参数"
# 创建一个临时容器用于测试
LOG_INFO "创建临时容器"
container_id=$(podman run -d --name test_commit_container busybox sleep 3600)
CHECK_RESULT $? 0 0 "创建临时容器失败"
# 提交容器为镜像
LOG_INFO "提交容器为镜像"
podmansh commit test_commit_container test_commit_image
CHECK_RESULT $? 0 0 "提交容器为镜像失败"
#验证镜像是否创建成功
LOG_INFO "验证镜像是否创建成功"
podman image inspect test_commit_image &> /dev/null
CHECK_RESULT $? 0 0 "镜像创建失败"
# 清理临时容器和镜像
LOG_INFO "清理临时容器和镜像"
podman rm -f test_commit_container
CHECK_RESULT $? 0 0 "删除临时容器失败"
podman rmi -f test_commit_image
CHECK_RESULT $? 0 0 "删除临时镜像失败"
#如果脚本安装了podman则卸载
if [ $INSTALLED_PODMAN -eq 1 ]; then
LOG_INFO "卸载 podman"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载 podman 失败"
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-11-30
# @License : Mulan PSL v2
# @Desc : 测试 podmansh 执行命令功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 podmansh 执行命令功能
LOG_INFO "开始测试 podmansh 执行命令功能"
# 检查是否已安装 podman
if ! command -v podman &> /dev/null; then
LOG_INFO "环境未安装 podman开始安装"
# 检查 yum 源中是否有 podman 包
if ! dnf list available podman &> /dev/null; then
LOG_ERROR "yum 源中未找到 podman 包"
exit 255
fi
dnf install -y podman
CHECK_RESULT $? 0 0 "安装 podman 失败"
INSTALLED=1
else
LOG_INFO "环境已安装 podman"
INSTALLED=0
fi
# 测试 podman run hello-world
LOG_INFO "测试 podman run hello-world"
podman run --rm hello-world
CHECK_RESULT $? 0 0 "执行 podman run hello-world 失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
podman --invalid-option &> /dev/null
CHECK_RESULT $? $? 255 "不支持的参数未正确退出"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载 podman"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载 podman 失败"
fi
LOG_INFO "测试 podmansh 执行命令功能完成"
}
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-02-27
# @License : Mulan PSL v2
# @Desc : 测试 podmansh 帮助信息功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 podmansh 帮助信息功能"
LOG_INFO "步骤1检查环境中是否已安装 podmansh"
if command -v podmansh &>/dev/null; then
LOG_INFO "podmansh 已安装,无需安装"
INSTALLED=1
else
LOG_INFO "podmansh 未安装,将进行安装"
INSTALLED=0
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤2检查 yum 源中是否有 podmansh 软件包"
dnf list available podmansh &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 podmansh 软件包"
exit 255
fi
LOG_INFO "步骤3安装 podmansh"
dnf install -y podmansh
CHECK_RESULT $? 0 0 "安装 podmansh 失败"
fi
LOG_INFO "步骤4测试 podmansh 帮助信息功能"
podmansh --help
CHECK_RESULT $? 0 0 "执行 podmansh --help 失败"
LOG_INFO "步骤5测试 podmansh 不支持的参数"
podmansh --invalid-param 2>/dev/null
if [ $? -ne 255 ]; then
LOG_ERROR "podmansh 不支持 --invalid-param 参数,但未返回正确退出码"
exit 255
fi
LOG_INFO "podmansh 正确处理了不支持参数"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤6卸载 podmansh"
dnf remove -y podmansh
CHECK_RESULT $? 0 0 "卸载 podmansh 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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 : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试 podmansh 软件包安装功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 podmansh 软件包安装功能"
# 检查当前环境是否已安装podmansh
LOG_INFO "步骤1检查podmansh是否已安装"
if dnf list installed podmansh &>/dev/null; then
LOG_INFO "podmansh已安装跳过安装步骤"
INSTALLED_BEFORE=true
else
LOG_INFO "podmansh未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有podmansh软件包
LOG_INFO "步骤2检查yum源中是否存在podmansh软件包"
if ! dnf list available podmansh &>/dev/null; then
LOG_ERROR "yum源中未找到podmansh软件包"
exit 255
fi
# 如果未安装,则执行安装
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装podmansh软件包"
dnf install -y podmansh
CHECK_RESULT $? 0 0 "安装podmansh失败"
fi
# 验证podmansh命令是否可用
LOG_INFO "步骤4验证podmansh命令是否可用"
podmansh --version
CHECK_RESULT $? 0 0 "podmansh命令不可用"
# 测试podmansh命令的特定参数示例--help
LOG_INFO "步骤5测试podmansh --help参数"
podmansh --help
CHECK_RESULT $? 0 0 "podmansh --help参数测试失败"
# 测试不支持的参数(示例:--invalid-param
LOG_INFO "步骤6测试不支持的参数"
podmansh --invalid-param 2>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "不支持的参数测试通过(命令执行失败为预期结果)"
else
LOG_ERROR "不支持的参数测试失败(命令执行成功为异常)"
exit 255
fi
# 清理环境如果之前未安装则卸载podmansh
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤7卸载podmansh软件包"
dnf remove -y podmansh
CHECK_RESULT $? 0 0 "卸载podmansh失败"
LOG_INFO "环境已恢复podmansh已卸载"
else
LOG_INFO "环境保持原状podmansh保持安装状态"
fi
LOG_INFO "podmansh软件包安装功能测试完成"
}
main "$@"

View File

@@ -1,57 +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 : 测试 podmansh 列出容器功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 podmansh 列出容器功能"
# 检查是否已安装 podman
if ! command -v podman &> /dev/null; then
LOG_INFO "未检测到 podman尝试安装 podman"
# 检查 yum 源中是否有 podman
if ! dnf list podman &> /dev/null; then
LOG_ERROR "yum 源中未找到 podman 软件包"
exit 255
fi
# 安装 podman
dnf install -y podman
CHECK_RESULT $? 0 0 "安装 podman 失败"
INSTALLED_PODMAN=1
else
LOG_INFO "podman 已安装"
INSTALLED_PODMAN=0
fi
# 测试 podmansh 列出容器功能
LOG_INFO "测试列出容器功能"
podmansh list_containers &> /dev/null
CHECK_RESULT $? 0 0 "列出容器功能失败"
# 清理环境:如果脚本安装了 podman则卸载
if [ $INSTALLED_PODMAN -eq 1 ]; then
LOG_INFO "清理环境:卸载 podman"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载 podman 失败"
fi
LOG_INFO "测试 podmansh 列出容器功能完成"
}
main "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 podmansh 运行容器功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 podmansh 运行容器功能
LOG_INFO "开始测试 podmansh 运行容器功能"
# 检查是否已安装 podman
if ! command -v podman &> /dev/null; then
LOG_INFO "检测到未安装 podman准备安装"
# 检查 yum 源中是否有 podman 包
if ! dnf list available podman &> /dev/null; then
LOG_ERROR "yum 源中未找到 podman 包"
exit 255
fi
# 安装 podman
dnf install -y podman
CHECK_RESULT $? 0 0 "安装 podman 失败"
INSTALLED_PODMAN=true
else
LOG_INFO "podman 已安装,跳过安装步骤"
INSTALLED_PODMAN=false
fi
# 测试运行容器
LOG_INFO "测试运行一个 alpine 容器"
podman run --rm alpine echo "Hello, OpenEuler" &> /dev/null
CHECK_RESULT $? 0 0 "运行 alpine 容器失败"
# 测试带参数的运行命令
LOG_INFO "测试带参数的运行命令(--name"
podman run --name test_container --rm alpine echo "Hello, OpenEuler" &> /dev/null
CHECK_RESULT $? 0 0 "带参数运行容器失败"
# 测试不支持的参数(模拟)
LOG_INFO "测试不支持的参数(模拟)"
podman run --invalid-param alpine echo "Hello, OpenEuler" &> /dev/null
if [ $? -eq 125 ]; then
LOG_ERROR "检测到不支持的参数退出码应为255但实际为125"
exit 255
fi
# SSH_CMD示例如果需要
LOG_INFO "在第二个节点上测试运行容器(模拟)"
SSH_CMD "podman run --rm alpine echo "Hello from Node2"" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER &> /dev/null
CHECK_RESULT $? 0 0 "在第二个节点上运行容器失败"
#清理环境
if [ "$INSTALLED_PODMAN" = true ]; then
LOG_INFO "清理环境:卸载 podman"
dnf remove -y podman
CHECK_RESULT $? 0 0 “卸载 pod man失败”
fi
LOG_INFO “测试完成”
}
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-02-27
# @License : Mulan PSL v2
# @Desc : 测试 podmansh 版本查询功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出(可选,但建议保留以便日志清晰)
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local pkg=$1
LOG_INFO "检查yum源中是否存在软件包: $pkg"
dnf list available "$pkg" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包: $pkg"
exit 255
fi
LOG_INFO "软件包 $pkg 存在于yum源中"
}
# 检查命令参数是否支持
check_command_option() {
local cmd=$1
local opt=$2
LOG_INFO "检查命令 $cmd 是否支持参数 $opt"
# 使用 --help 或 man 页面检查参数是否存在这里以podmansh为例
if $cmd --help 2>&1 | grep -q -- "$opt"; then
LOG_INFO "命令 $cmd 支持参数 $opt"
else
LOG_ERROR "命令 $cmd 不支持参数 $opt 或参数不存在"
exit 255
fi
}
# 主测试函数
test_podmansh_version() {
local pkg_name="podmansh"
local installed=false
# 步骤1检查环境是否已安装podmansh
LOG_INFO "步骤1检查环境是否已安装podmansh"
if command -v podmansh &>/dev/null; then
LOG_INFO "podmansh 已安装"
installed=true
else
LOG_INFO "podmansh 未安装,将作为测试步骤安装"
fi
# 步骤2如果未安装检查yum源中是否存在podmansh
if [ "$installed" = false ]; then
check_package_in_repo "$pkg_name"
fi
# 步骤3如果未安装使用dnf安装podmansh
if [ "$installed" = false ]; then
LOG_INFO "步骤3使用dnf安装podmansh"
dnf install -y "$pkg_name"
CHECK_RESULT $? 0 0 "安装podmansh失败"
LOG_INFO "podmansh 安装成功"
fi
# 步骤4检查podmansh版本查询参数是否支持
LOG_INFO "步骤4检查podmansh版本查询参数是否支持"
check_command_option "podmansh" "--version"
# 步骤5执行podmansh版本查询
LOG_INFO "步骤5执行podmansh版本查询"
podmansh --version
CHECK_RESULT $? 0 0 "执行podmansh版本查询失败"
# 步骤6清理环境如果测试前未安装则卸载
LOG_INFO "步骤6清理环境"
if [ "$installed" = false ]; then
LOG_INFO "卸载podmansh"
dnf remove -y "$pkg_name"
CHECK_RESULT $? 0 0 "卸载podmansh失败"
LOG_INFO "podmansh 卸载成功,环境已恢复"
else
LOG_INFO "测试前podmansh已安装保持安装状态"
fi
LOG_INFO "测试完成"
}
# 执行测试
test_podmansh_version
}
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 : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试带-c参数的podmansh命令是否能正常执行指定命令
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试:测试带-c参数的podmansh命令是否能正常执行指定命令"
# 检查环境是否已安装podman
LOG_INFO "检查podman是否已安装"
if dnf list installed podman &>/dev/null; then
LOG_INFO "podman已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "podman未安装将在测试过程中安装"
INSTALLED_BEFORE_TEST=false
fi
# 检查yum源中是否有podman包
LOG_INFO "检查yum源中是否有podman软件包"
if ! dnf list available podman &>/dev/null; then
LOG_ERROR "yum源中没有找到podman软件包"
exit 255
fi
# 如果未安装则安装podman
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装podman软件包"
dnf install -y podman
CHECK_RESULT $? 0 0 "安装podman失败"
fi
# 测试podmansh -c命令
LOG_INFO "测试podmansh -c "echo hello"命令"
podmansh -c "echo hello"
CHECK_RESULT $? 0 0 "podmansh -c命令执行失败"
# 测试podmansh -c命令执行不存在的命令
LOG_INFO "测试podmansh -c执行不存在的命令"
podmansh -c "nonexistentcommand" &>/dev/null
if [ $? -eq 127 ]; then
LOG_INFO "podmansh -c执行不存在的命令返回127符合预期"
else
LOG_ERROR "podmansh -c执行不存在的命令未返回预期结果"
exit 255
fi
# 测试不支持的参数
LOG_INFO "测试podmansh不支持的参数"
podmansh --invalid-param &>/dev/null
if [ $? -eq 255 ]; then
LOG_INFO "podmansh不支持参数返回255符合预期"
else
LOG_ERROR "podmansh不支持参数未返回预期结果"
exit 255
fi
# 清理环境
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载测试过程中安装的podman软件包"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载podman失败"
else
LOG_INFO "保持podman安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试同时使用-c和shell参数的podmansh命令是否能执行指定shell的指定命令
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试同时使用-c和shell参数的podmansh命令是否能执行指定shell的指定命令"
# 检查是否已安装podman
LOG_INFO "检查podman是否已安装"
if dnf list installed podman &>/dev/null; then
LOG_INFO "podman已安装"
INSTALLED=true
else
LOG_INFO "podman未安装"
INSTALLED=false
fi
# 检查yum源中是否有podman软件包
LOG_INFO "检查yum源中是否有podman软件包"
if ! dnf list available podman &>/dev/null; then
LOG_ERROR "yum源中未找到podman软件包"
exit 255
fi
# 如果未安装则安装podman
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装podman"
dnf install -y podman
CHECK_RESULT $? 0 0 "安装podman失败"
fi
# 测试podmansh命令的-c参数是否存在
LOG_INFO "测试podmansh命令的-c参数是否存在"
podmansh --help 2>&1 | grep -q "\-c"
CHECK_RESULT $? 0 0 "podmansh命令不支持-c参数"
# 测试podmansh命令的shell参数是否存在
LOG_INFO "测试podmansh命令的shell参数是否存在"
podmansh --help 2>&1 | grep -q "shell"
CHECK_RESULT $? 0 0 "podmansh命令不支持shell参数"
# 测试同时使用-c和shell参数执行指定shell的指定命令
LOG_INFO "测试同时使用-c和shell参数执行指定shell的指定命令"
podmansh -c "echo "Hello from bash"" --shell bash
CHECK_RESULT $? 0 0 "使用-c和shell参数执行命令失败"
# 清理环境如果之前未安装则卸载podman
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载podman"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载podman失败"
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 : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试带image参数的podmansh命令是否能基于指定镜像创建容器
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试带image参数的podmansh命令是否能基于指定镜像创建容器"
LOG_INFO "检查是否已安装podman软件包"
if rpm -q podman >/dev/null 2>&1; then
LOG_INFO "podman已安装测试结束后将保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "podman未安装将在测试步骤中安装"
INSTALLED_FLAG=0
fi
LOG_INFO "检查yum源中是否存在podman软件包"
dnf list --available podman >/dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中不存在podman软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在podman软件包退出测试"
exit 255
fi
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "安装podman软件包"
dnf install -y podman
CHECK_RESULT $? 0 0 "安装podman失败"
fi
LOG_INFO "检查是否存在busybox镜像"
if ! podman image exists busybox:latest; then
LOG_INFO "拉取busybox:latest镜像"
podman pull busybox:latest
CHECK_RESULT $? 0 0 "拉取busybox镜像失败"
IMAGE_PULLED=1
else
LOG_INFO "busybox:latest镜像已存在"
IMAGE_PULLED=0
fi
LOG_INFO "测试podmansh命令的image参数是否存在"
podmansh --help | grep -q "\-\-image"
CHECK_RESULT $? 0 0 "podmansh命令不支持--image参数"
if [ $? -ne 0 ]; then
LOG_ERROR "podmansh命令不支持--image参数退出测试"
exit 255
fi
LOG_INFO "使用podmansh --image busybox:latest创建容器"
podmansh --image busybox:latest echo "hello from container"
CHECK_RESULT $? 0 0 "基于指定镜像创建容器失败"
LOG_INFO "清理测试创建的容器"
podman ps -a --filter "ancestor=busybox:latest" --format "{{.ID}}" | xargs -r podman rm -f
if [ $IMAGE_PULLED -eq 1 ]; then
LOG_INFO "删除测试拉取的busybox镜像"
podman rmi busybox:latest
fi
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载测试安装的podman软件包"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载podman失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,175 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试同时使用name和image参数的podmansh命令是否能使用指定名称和镜像创建容器
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色和日志函数
LOG_INFO() {
echo -e "\033[32m[INFO]\033[0m $1"
}
LOG_ERROR() {
echo -e "\033[31m[ERROR]\033[0m $1"
}
# 检查软件包是否存在于yum源
check_package_in_repo() {
local package_name=$1
dnf list available "$package_name" &>/dev/null
return $?
}
# 检查参数是否支持
check_command_option() {
local command=$1
local option=$2
if ! $command --help 2>/dev/null | grep -q -- "$option"; then
LOG_ERROR "命令 $command 不支持参数 $option"
exit 255
fi
}
# 检查环境是否已安装podman
check_podman_installed() {
if command -v podman &>/dev/null; then
LOG_INFO "podman 已安装"
return 0
else
LOG_INFO "podman 未安装"
return 1
fi
}
# 安装podman
install_podman() {
LOG_INFO "开始安装podman"
dnf install -y podman
CHECK_RESULT $? 0 0 "安装podman失败"
LOG_INFO "podman 安装成功"
}
# 卸载podman
uninstall_podman() {
LOG_INFO "开始卸载podman"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载podman失败"
LOG_INFO "podman 卸载成功"
}
# 清理podman容器和镜像
clean_podman() {
LOG_INFO "清理podman环境"
podman stop test_container 2>/dev/null
podman rm test_container 2>/dev/null
podman rmi busybox:latest 2>/dev/null 2>&1
LOG_INFO "podman环境清理完成"
}
# 主测试函数
test_podmansh_name_image() {
LOG_INFO "开始测试podmansh命令同时使用name和image参数"
# 检查podman是否已安装
local need_cleanup=0
if ! check_podman_installed; then
need_cleanup=1
LOG_INFO "检测到podman未安装将在测试后卸载"
# 检查podman包是否在yum源中
LOG_INFO "检查podman包是否在yum源中"
if ! check_package_in_repo "podman"; then
LOG_ERROR "yum源中未找到podman包"
exit 255
fi
install_podman
fi
# 检查podmansh命令是否存在
LOG_INFO "检查podmansh命令是否存在"
if ! command -v podmansh &>/dev/null; then
LOG_ERROR "podmansh命令不存在"
if [ $need_cleanup -eq 1 ]; then
uninstall_podman
fi
exit 255
fi
# 检查podmansh命令是否支持--name和--image参数
LOG_INFO "检查podmansh命令是否支持--name参数"
check_command_option "podmansh" "--name"
LOG_INFO "检查podmansh命令是否支持--image参数"
check_command_option "podmansh" "--image"
# 清理可能存在的旧容器
clean_podman
# 拉取测试镜像
LOG_INFO "拉取busybox测试镜像"
podman pull busybox:latest
CHECK_RESULT $? 0 0 "拉取busybox镜像失败"
# 测试使用name和image参数创建容器
LOG_INFO "测试使用--name和--image参数创建容器"
podmansh --name test_container --image busybox:latest -- sh -c "echo "容器创建成功""
CHECK_RESULT $? 0 0 "使用name和image参数创建容器失败"
# 验证容器是否创建成功
LOG_INFO "验证容器是否创建成功"
if podman ps -a --format "{{.Names}}" | grep -q "test_container"; then
LOG_INFO "容器test_container创建成功"
# 验证容器使用的镜像是否正确
local container_image=$(podman inspect test_container --format "{{.ImageName}}")
if [[ "$container_image" == *"busybox:latest"* ]]; then
LOG_INFO "容器使用的镜像正确: $container_image"
else
LOG_ERROR "容器使用的镜像不正确: $container_image"
clean_podman
if [ $need_cleanup -eq 1 ]; then
uninstall_podman
fi
exit 1
fi
else
LOG_ERROR "容器test_container创建失败"
clean_podman
if [ $need_cleanup -eq 1 ]; then
uninstall_podman
fi
exit 1
fi
# 清理测试容器和镜像
clean_podman
# 如果测试前未安装podman则卸载
if [ $need_cleanup -eq 1 ]; then
uninstall_podman
fi
LOG_INFO "测试完成podmansh命令同时使用name和image参数能够成功创建容器"
}
# 执行测试
test_podmansh_name_image
}
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-02-27
# @License : Mulan PSL v2
# @Desc : 测试带shell参数的podmansh命令是否能启动指定shell
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试带shell参数的podmansh命令是否能启动指定shell"
LOG_INFO "步骤1检查测试环境是否已安装podman相关软件包"
if command -v podman &> /dev/null; then
LOG_INFO "podman已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "podman未安装将在测试过程中安装并在测试结束后卸载"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否存在podman软件包"
if ! dnf list available podman &> /dev/null; then
LOG_ERROR "yum源中未找到podman软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装podman软件包"
dnf install -y podman
CHECK_RESULT $? 0 0 "安装podman失败"
fi
LOG_INFO "步骤4检查podmansh命令是否支持--shell参数"
podman run --help 2>&1 | grep -q -- "--shell"
CHECK_RESULT $? 0 0 "podman命令不支持--shell参数"
if [ $? -ne 0 ]; then
LOG_ERROR "podman命令不支持--shell参数"
exit 255
fi
LOG_INFO "步骤5测试带shell参数的podmansh命令启动指定shell"
podman run --rm alpine:latest /bin/sh -c "echo "测试shell启动成功""
CHECK_RESULT $? 0 0 "启动指定shell失败"
LOG_INFO "步骤6清理测试环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载podman软件包"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载podman失败"
else
LOG_INFO "保持podman安装状态"
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-02-27
# @License : Mulan PSL v2
# @Desc : 测试带-H参数的podmansh命令是否能正常显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试带-H参数的podmansh命令是否能正常显示帮助信息"
# 检查是否已经安装了podman软件包
if dnf list installed podman >/dev/null 2>&1; then
LOG_INFO "podman已经安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "podman未安装将在测试过程中安装"
already_installed=false
fi
# 检查yum源中是否有podman软件包
LOG_INFO "检查yum源中是否有podman软件包"
if ! dnf list available podman >/dev/null 2>&1; then
LOG_ERROR "yum源中没有找到podman软件包"
exit 255
fi
# 如果未安装则安装podman
if [ "$already_installed" = false ]; then
LOG_INFO "安装podman软件包"
dnf install -y podman
CHECK_RESULT $? 0 0 "安装podman失败"
fi
# 测试podmansh -H命令是否能正常显示帮助信息
LOG_INFO "执行podmansh -H命令"
podmansh -H > /tmp/podmansh_help_output.txt 2>&1
result=$?
# 检查命令执行结果
if [ $result -eq 0 ]; then
LOG_INFO "podmansh -H命令执行成功"
# 检查输出是否包含帮助信息
if grep -q "Usage:" /tmp/podmansh_help_output.txt || grep -q "帮助" /tmp/podmansh_help_output.txt; then
LOG_INFO "podmansh -H命令正确显示了帮助信息"
else
LOG_ERROR "podmansh -H命令未显示预期的帮助信息"
# 清理临时文件
rm -f /tmp/podmansh_help_output.txt
# 如果之前未安装则卸载podman
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境卸载podman"
dnf remove -y podman
fi
exit 1
fi
elif [ $result -eq 255 ]; then
LOG_ERROR "podmansh命令不支持-H参数"
# 清理临时文件
rm -f /tmp/podmansh_help_output.txt
# 如果之前未安装则卸载podman
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境卸载podman"
dnf remove -y podman
fi
exit 255
else
LOG_ERROR "podmansh -H命令执行失败退出码$result"
# 清理临时文件
rm -f /tmp/podmansh_help_output.txt
# 如果之前未安装则卸载podman
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境卸载podman"
dnf remove -y podman
fi
exit $result
fi
# 清理临时文件
rm -f /tmp/podmansh_help_output.txt
# 如果测试开始时未安装podman则在测试结束后卸载
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境卸载podman"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载podman失败"
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 : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试带-V参数的podmansh命令是否能正常显示版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman包
LOG_INFO "检查是否已安装podman包"
rpm -q podman > /dev/null 2>&1
podman_installed=$?
# 如果未安装则尝试从yum源查找
if [ $podman_installed -ne 0 ]; then
LOG_INFO "podman未安装检查yum源中是否存在podman包"
dnf list available podman > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中不存在podman包"
LOG_INFO "安装podman包"
dnf install -y podman
CHECK_RESULT $? 0 0 "安装podman失败"
# 标记为测试过程中安装
installed_by_test=1
else
LOG_INFO "podman已安装"
installed_by_test=0
fi
# 测试带-V参数的podmansh命令
LOG_INFO "测试带-V参数的podmansh命令是否能正常显示版本信息"
podmansh -V > /dev/null 2>&1
CHECK_RESULT $? 0 0 "podmansh -V命令执行失败"
LOG_INFO "验证版本信息输出"
podmansh -V 2>&1 | grep -q "podman version"
CHECK_RESULT $? 0 0 "podmansh -V未显示版本信息"
# 清理环境
LOG_INFO "清理测试环境"
if [ $installed_by_test -eq 1 ]; then
LOG_INFO "卸载测试安装的podman包"
dnf remove -y podman
CHECK_RESULT $? 0 0 "卸载podman失败"
fi
}
main "$@"

View File

@@ -1,56 +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-07
# @License : Mulan PSL v2
# @Desc : 测试仅使用 domain 参数查找 DMARC 策略
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试仅使用 domain 参数查找 DMARC 策略"
# 检查是否已安装所需软件包
LOG_INFO "检查是否已安装 python3-authheaders"
if ! dnf list installed python3-authheaders &> /dev/null; then
LOG_INFO "python3-authheaders 未安装,将进行安装"
if ! dnf list available python3-authheaders &> /dev/null; then
LOG_ERROR "yum源中未找到 python3-authheaders 软件包"
exit 255
fi
dnf install -y python3-authheaders
CHECK_RESULT $? 0 0 "安装 python3-authheaders 失败"
INSTALLED=1
else
LOG_INFO "python3-authheaders 已安装"
INSTALLED=0
fi
# 测试仅使用 domain 参数查找 DMARC 策略
LOG_INFO "执行命令authheaders --dmarc-policy --domain example.com"
authheaders --dmarc-policy --domain example.com
CHECK_RESULT $? 0 0 "查找 DMARC 策略失败"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载 python3-authheaders"
dnf remove -y python3-authheaders
CHECK_RESULT $? 0 0 "卸载 python3-authheaders 失败"
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-07
# @License : Mulan PSL v2
# @Desc : 测试使用 -q 参数以安静模式查找 DMARC 策略
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用 -q 参数以安静模式查找 DMARC 策略"
# 检查软件包是否已安装
LOG_INFO "检查软件包 python3-authheaders 是否已安装"
if rpm -q python3-authheaders &>/dev/null; then
LOG_INFO "软件包 python3-authheaders 已安装,脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包 python3-authheaders 未安装,将在测试步骤中安装"
INSTALLED=false
fi
# 检查 yum 源中是否有该软件包
LOG_INFO "检查 yum 源中是否有 python3-authheaders 软件包"
if ! dnf list available python3-authheaders &>/dev/null; then
LOG_ERROR "yum 源中未找到 python3-authheaders 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 python3-authheaders 软件包"
dnf install -y python3-authheaders &>/dev/null
CHECK_RESULT $? 0 0 "安装 python3-authheaders 失败"
fi
# 测试使用 -q 参数以安静模式查找 DMARC 策略
LOG_INFO "执行命令authheaders --dmarc-policy -q example.com"
authheaders --dmarc-policy -q example.com &>/dev/null
CHECK_RESULT $? 0 0 "使用 -q 参数以安静模式查找 DMARC 策略失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 python3-authheaders 软件包"
dnf remove -y python3-authheaders &>/dev/null
CHECK_RESULT $? 0 0 "卸载 python3-authheaders 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,60 +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-07
# @License : Mulan PSL v2
# @Desc : 测试使用 -s DMARC 参数查找 DMARC 策略
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用 -s DMARC 参数查找 DMARC 策略"
# 检查是否已安装python3-authheaders
LOG_INFO "检查是否已安装python3-authheaders"
if ! dnf list installed python3-authheaders &>/dev/null; then
LOG_INFO "python3-authheaders未安装将进行安装"
# 检查yum源中是否有该软件包
if ! dnf list available python3-authheaders &>/dev/null; then
LOG_ERROR "yum源中未找到python3-authheaders软件包"
exit 255
fi
# 安装软件包
dnf install -y python3-authheaders
CHECK_RESULT $? 0 0 "安装python3-authheaders失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "python3-authheaders已安装"
NEED_UNINSTALL=0
fi
# 测试使用 -s DMARC 参数查找 DMARC 策略
LOG_INFO "测试使用 -s DMARC 参数查找 DMARC 策略"
result=$(authheaders -s DMARC example.com 2>&1)
CHECK_RESULT $? 0 0 "执行authheaders -s DMARC失败"
LOG_INFO "测试结果: $result"
# 清理环境
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "卸载python3-authheaders"
dnf remove -y python3-authheaders
CHECK_RESULT $? 0 0 "卸载python3-authheaders失败"
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-07
# @License : Mulan PSL v2
# @Desc : 测试使用 -s PSD 参数查找 DMARC 策略
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python3-authheaders
if ! dnf list installed python3-authheaders &>/dev/null; then
LOG_INFO "环境未安装python3-authheaders将进行安装并测试后卸载"
INSTALLED=false
else
LOG_INFO "环境已安装python3-authheaders测试后将保持安装状态"
INSTALLED=true
fi
# 检查yum源中是否有python3-authheaders软件包
LOG_INFO "检查yum源中是否存在python3-authheaders软件包"
if ! dnf list available python3-authheaders &>/dev/null; then
LOG_ERROR "yum源中未找到python3-authheaders软件包"
exit 255
fi
# 安装python3-authheaders
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装python3-authheaders"
dnf install -y python3-authheaders
CHECK_RESULT $? 0 0 "安装python3-authheaders失败"
fi
# 测试使用-s PSD参数查找DMARC策略
LOG_INFO "测试使用-s PSD参数查找DMARC策略"
result=$(python3 -m authheaders.dmarc.policy_find -s PSD 2>&1)
CHECK_RESULT $? 0 0 "执行policy_find命令失败"
# 检查参数是否支持
if [[ "$result" == *"unrecognized arguments"* ]]; then
LOG_ERROR "参数-s PSD不被支持"
exit 255
fi
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-authheaders"
dnf remove -y python3-authheaders
CHECK_RESULT $? 0 0 "卸载python3-authheaders失败"
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-12-07
# @License : Mulan PSL v2
# @Desc : 测试使用 -v 参数获取详细 DMARC 策略信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python3-authheaders-dmarc-policy-find工具
LOG_INFO "检查是否已安装python3-authheaders-dmarc-policy-find工具"
if ! dnf list installed python3-authheaders-dmarc-policy-find &>/dev/null; then
LOG_INFO "工具未安装,开始安装"
# 检查yum源中是否有该软件包
if ! dnf list available python3-authheaders-dmarc-policy-find &>/dev/null; then
LOG_ERROR "yum源中未找到python3-authheaders-dmarc-policy-find软件包"
exit 255
fi
# 安装软件包
dnf install -y python3-authheaders-dmarc-policy-find
CHECK_RESULT $? 0 0 "安装python3-authheaders-dmarc-policy-find失败"
else
LOG_INFO "工具已安装,跳过安装步骤"
fi
# 测试使用-v参数获取详细DMARC策略信息
LOG_INFO "测试使用-v参数获取详细DMARC策略信息"
output=$(python3-authheaders-dmarc-policy-find -v example.com 2>&1)
CHECK_RESULT $? 0 0 "执行python3-authheaders-dmarc-policy-find -v失败"
# 检查输出是否包含预期的详细信息(示例检查,根据实际需求调整)
if [[ "$output" != *"DMARC policy details"* ]]; then
LOG_ERROR "未找到预期的DMARC策略详细信息"
exit 1
fi
# 清理环境:如果脚本开始时未安装工具,则卸载
if ! dnf list installed python3-authheaders-dmarc-policy-find &>/dev/null; then
LOG_INFO "清理环境卸载python3-authheaders-dmarc-policy-find工具"
dnf remove -y python3-authheaders-dmarc-policy-find
CHECK_RESULT $? 0 0 "卸载python3-authheaders-dmarc-policy-find失败"
else
LOG_INFO "工具已安装,无需卸载"
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-07
# @License : Mulan PSL v2
# @Desc : 测试 DMARC 记录的解析功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 DMARC 记录的解析功能"
# 检查是否已安装所需软件包
LOG_INFO "检查是否已安装 python3-authheaders 软件包"
if ! dnf list installed python3-authheaders &> /dev/null; then
LOG_INFO "python3-authheaders 未安装,开始安装"
if ! dnf list python3-authheaders &> /dev/null; then
LOG_ERROR "yum 源中未找到 python3-authheaders 软件包"
exit 255
fi
dnf install -y python3-authheaders
CHECK_RESULT $? 0 0 "安装 python3-authheaders 失败"
INSTALLED=true
else
LOG_INFO "python3-authheaders 已安装"
INSTALLED=false
fi
# 测试 DMARC 记录的解析功能
LOG_INFO "测试 DMARC 记录的解析功能"
TEST_DMARC="v=DMARC1; p=none; rua=mailto:dmarc@example.com"
EXPECTED_RESULT="{\"v\": \"DMARC1\", \"p\": \"none\", \"rua\": \"mailto:dmarc@example.com\"}"
RESULT=$(python3 -c "
import authheaders
print(authheaders.parse_dmarc("$TEST_DMARC"))
")
CHECK_RESULT $? 0 0 "DMARC 记录解析失败"
CHECK_RESULT "$RESULT" "$EXPECTED_RESULT" 0 "DMARC 记录解析结果不符合预期"
# 清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载 python3-authheaders"
dnf remove -y python3-authheaders
CHECK_RESULT $? 0 0 "卸载 python3-authheaders 失败"
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 : 2026-04-06
# @License : Mulan PSL v2
# @Desc : Test package installation verification
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="texlive-asapsym-doc"
# 步骤1: 检查yum源中是否存在指定软件包
LOG_INFO "步骤1: 检查yum源中是否存在软件包 $PACKAGE_NAME"
dnf list available $PACKAGE_NAME &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 步骤2: 检查系统是否已安装该软件包
LOG_INFO "步骤2: 检查系统是否已安装软件包 $PACKAGE_NAME"
dnf list installed $PACKAGE_NAME &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为已安装状态"
INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为未安装状态"
INSTALLED=false
fi
# 步骤3: 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4: 验证软件包安装成功
LOG_INFO "步骤4: 验证软件包 $PACKAGE_NAME 安装成功"
dnf list installed $PACKAGE_NAME &> /dev/null
CHECK_RESULT $? 0 0 "验证软件包 $PACKAGE_NAME 安装失败"
# 步骤5: 执行软件包功能测试(示例:检查是否有文档文件)
LOG_INFO "步骤5: 检查软件包 $PACKAGE_NAME 的文档文件"
rpm -ql $PACKAGE_NAME | grep -E "\.pdf$|\.html$|\.txt$" &> /dev/null
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 未找到文档文件"
# 步骤6: 清理环境,如果之前未安装则卸载软件包
if [ "$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
# 步骤7: 验证环境已恢复
LOG_INFO "步骤7: 验证环境已恢复"
if [ "$INSTALLED" = false ]; then
dnf list installed $PACKAGE_NAME &> /dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 未正确卸载"
exit 1
else
LOG_INFO "软件包 $PACKAGE_NAME 已正确卸载,环境恢复成功"
fi
else
dnf list installed $PACKAGE_NAME &> /dev/null
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 安装状态异常"
LOG_INFO "软件包 $PACKAGE_NAME 保持安装状态,环境恢复成功"
fi
}
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 : 2026-04-06
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试texlive-asapsym-doc软件包安装功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在texlive-asapsym-doc软件包"
dnf list available texlive-asapsym-doc &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-asapsym-doc软件包"
exit 255
fi
# 检查当前是否已安装
LOG_INFO "检查texlive-asapsym-doc是否已安装"
if rpm -q texlive-asapsym-doc &>/dev/null; then
LOG_INFO "texlive-asapsym-doc已安装测试结束后将保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "texlive-asapsym-doc未安装将执行安装测试"
ALREADY_INSTALLED=false
fi
# 如果未安装,则执行安装
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "开始安装texlive-asapsym-doc"
dnf install -y texlive-asapsym-doc
CHECK_RESULT $? 0 0 "安装texlive-asapsym-doc失败"
# 验证安装
LOG_INFO "验证texlive-asapsym-doc是否安装成功"
rpm -q texlive-asapsym-doc
CHECK_RESULT $? 0 0 "验证texlive-asapsym-doc安装失败"
fi
# 测试软件包功能
LOG_INFO "测试texlive-asapsym-doc相关功能"
# 这里可以添加具体的功能测试命令
# 例如:检查文档文件是否存在
if [ -d /usr/share/texlive/texmf-dist/doc/asymptote/asapsym ]; then
LOG_INFO "找到texlive-asapsym-doc文档目录"
else
LOG_ERROR "未找到texlive-asapsym-doc文档目录"
exit 1
fi
# 环境恢复
LOG_INFO "开始环境恢复"
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "卸载测试安装的texlive-asapsym-doc"
dnf remove -y texlive-asapsym-doc
CHECK_RESULT $? 0 0 "卸载texlive-asapsym-doc失败"
# 验证卸载
LOG_INFO "验证texlive-asapsym-doc是否已卸载"
rpm -q texlive-asapsym-doc &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "texlive-asapsym-doc卸载验证失败"
exit 1
else
LOG_INFO "texlive-asapsym-doc已成功卸载"
fi
else
LOG_INFO "保持原安装状态,无需卸载"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +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-06
# @License : Mulan PSL v2
# @Desc : Test listing package documentation files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境检查判断是否已安装texlive-asapsym-doc软件包
LOG_INFO "检查是否已安装texlive-asapsym-doc软件包"
rpm -q texlive-asapsym-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-asapsym-doc已安装测试后保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-asapsym-doc未安装将在测试后卸载"
INSTALLED=0
fi
# 检查yum源中是否存在texlive-asapsym-doc软件包
LOG_INFO "检查yum源中是否存在texlive-asapsym-doc软件包"
dnf list available texlive-asapsym-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-asapsym-doc软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装texlive-asapsym-doc软件包"
dnf install -y texlive-asapsym-doc
CHECK_RESULT $? 0 0 "安装texlive-asapsym-doc失败"
fi
# 测试列出软件包文档文件功能
LOG_INFO "测试列出texlive-asapsym-doc软件包文档文件"
rpm -ql texlive-asapsym-doc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "列出texlive-asapsym-doc文档文件失败"
# 验证列出的文件是否包含文档文件
LOG_INFO "验证列出的文件中是否包含文档文件"
DOC_FILES=$(rpm -ql texlive-asapsym-doc | grep -E "\.pdf$|\.html$|\.txt$" | head -5)
if [ -n "$DOC_FILES" ]; then
LOG_INFO "找到文档文件示例:$DOC_FILES"
else
LOG_ERROR "未找到任何文档文件"
exit 1
fi
# 环境恢复:如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-asapsym-doc软件包"
dnf remove -y texlive-asapsym-doc
CHECK_RESULT $? 0 0 "卸载texlive-asapsym-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-06
# @License : Mulan PSL v2
# @Desc : Test viewing package documentation content
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-asapsym-doc
LOG_INFO "检查是否已安装texlive-asapsym-doc软件包"
rpm -q texlive-asapsym-doc
if [ $? -eq 0 ]; then
LOG_INFO "texlive-asapsym-doc已安装标记为已安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "texlive-asapsym-doc未安装标记为未安装状态"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有texlive-asapsym-doc软件包"
dnf list available texlive-asapsym-doc
CHECK_RESULT $? 0 255 "yum源中无texlive-asapsym-doc软件包"
# 如果未安装,则安装软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "安装texlive-asapsym-doc软件包"
dnf install -y texlive-asapsym-doc
CHECK_RESULT $? 0 0 "安装texlive-asapsym-doc软件包失败"
fi
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
man texdoc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "texdoc命令不存在或不支持"
# 查看包文档内容
LOG_INFO "测试查看texlive-asapsym-doc包文档内容"
texdoc asapsym
CHECK_RESULT $? 0 0 "查看texlive-asapsym-doc包文档内容失败"
# 清理环境,恢复到之前的状态
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载texlive-asapsym-doc软件包"
dnf remove -y texlive-asapsym-doc
CHECK_RESULT $? 0 0 "卸载texlive-asapsym-doc软件包失败"
else
LOG_INFO "保持texlive-asapsym-doc软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,121 +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-15
# @License : Mulan PSL v2
# @Desc : Test basic LaTeX cases environment
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试LaTeX基础环境
LOG_INFO "开始测试LaTeX基础环境功能"
# 检查系统是否已安装texlive
LOG_INFO "检查系统是否已安装texlive"
if dnf list installed | grep -q texlive; then
LOG_INFO "系统已安装texlive测试完成后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "系统未安装texlive将在测试中安装"
INSTALLED_BEFORE_TEST=false
fi
# 检查yum源中是否有texlive软件包
LOG_INFO "检查yum源中是否有texlive软件包"
if ! dnf search texlive 2>/dev/null | grep -q texlive; then
LOG_ERROR "yum源中未找到texlive软件包"
exit 255
fi
# 如果未安装则安装texlive
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "开始安装texlive软件包"
dnf install -y texlive
CHECK_RESULT $? 0 0 "安装texlive失败"
LOG_INFO "texlive安装成功"
fi
# 测试tex命令基本功能
LOG_INFO "测试tex命令基本功能"
tex --version
CHECK_RESULT $? 0 0 "tex命令执行失败"
# 测试latex命令基本功能
LOG_INFO "测试latex命令基本功能"
latex --version
CHECK_RESULT $? 0 0 "latex命令执行失败"
# 测试pdflatex命令基本功能
LOG_INFO "测试pdflatex命令基本功能"
pdflatex --version
CHECK_RESULT $? 0 0 "pdflatex命令执行失败"
# 测试bibtex命令基本功能
LOG_INFO "测试bibtex命令基本功能"
bibtex --version
CHECK_RESULT $? 0 0 "bibtex命令执行失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
tex --invalid-param 2>/dev/null
if [ $? -ne 255 ] && [ $? -ne 0 ]; then
LOG_ERROR "tex命令应不支持--invalid-param参数"
exit 255
fi
# 创建简单的LaTeX测试文件
LOG_INFO "创建简单的LaTeX测试文件进行功能测试"
cat > test.tex << "EOF"
\documentclass{article}
\begin{document}
Hello, LaTeX World!
\end{document}
EOF
# 编译LaTeX文件
LOG_INFO "编译LaTeX测试文件"
pdflatex -interaction=nonstopmode test.tex
CHECK_RESULT $? 0 0 "LaTeX文件编译失败"
# 检查生成的PDF文件
LOG_INFO "检查生成的PDF文件"
if [ -f test.pdf ]; then
LOG_INFO "PDF文件生成成功"
file test.pdf | grep -q "PDF document"
CHECK_RESULT $? 0 0 "生成的PDF文件格式不正确"
else
LOG_ERROR "PDF文件未生成"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test.tex test.pdf test.aux test.log test.out
# 如果测试前未安装,则在测试后卸载
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载texlive软件包"
dnf remove -y texlive
CHECK_RESULT $? 0 0 "卸载texlive失败"
LOG_INFO "texlive卸载成功"
else
LOG_INFO "保持texlive安装状态"
fi
LOG_INFO "LaTeX基础环境功能测试完成"
}
main "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-15
# @License : Mulan PSL v2
# @Desc : Compile a simple LaTeX document using cases
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "检查系统是否已安装 texlive 相关软件包"
if rpm -q texlive &> /dev/null; then
LOG_INFO "texlive 已安装,测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive 未安装,将在测试过程中安装,并在测试结束后卸载"
INSTALLED=false
fi
LOG_INFO "检查 yum 源中是否存在 texlive 软件包"
if ! dnf list available texlive &> /dev/null; then
LOG_ERROR "yum 源中未找到 texlate 软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 texlive 软件包"
dnf install -y texlive
CHECK_RESULT $? 0 0 "安装 texlive 失败"
fi
LOG_INFO "创建一个简单的 LaTeX 测试文档"
cat > test_document.tex << "EOF"
\documentclass{article}
\begin{document}
Hello, OpenEuler!
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建 LaTeX 测试文档失败"
LOG_INFO "使用 pdflatex 编译 LaTeX 文档"
pdflatex test_document.tex
CHECK_RESULT $? 0 0 "编译 LaTeX 文档失败"
LOG_INFO "检查是否生成了 PDF 文件"
if [ -f "test_document.pdf" ]; then
LOG_INFO "成功生成 PDF 文件: test_document.pdf"
else
LOG_ERROR "未找到生成的 PDF 文件"
exit 1
fi
LOG_INFO "清理测试生成的中间文件"
rm -f test_document.aux test_document.log test_document.out test_document.tex
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 texlive 软件包"
dnf remove -y texlive
CHECK_RESULT $? 0 0 "卸载 texlive 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,85 +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-16
# @License : Mulan PSL v2
# @Desc : Test package removal
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-linegoal-doc软件包
LOG_INFO "检查texlive-linegoal-doc软件包是否已安装"
rpm -q texlive-linegoal-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-linegoal-doc软件包已安装"
INSTALLED="yes"
else
LOG_INFO "texlive-linegoal-doc软件包未安装"
INSTALLED="no"
fi
# 检查yum源中是否有texlive-linegoal-doc软件包
LOG_INFO "检查yum源中是否有texlive-linegoal-doc软件包"
dnf list available texlive-linegoal-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-linegoal-doc软件包"
exit 255
fi
LOG_INFO "yum源中存在texlive-linegoal-doc软件包"
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "安装texlive-linegoal-doc软件包"
dnf install -y texlive-linegoal-doc
CHECK_RESULT $? 0 0 "安装texlive-linegoal-doc软件包失败"
LOG_INFO "texlive-linegoal-doc软件包安装成功"
fi
# 执行测试用例Test package removal
LOG_INFO "执行测试用例Test package removal"
# 卸载texlive-linegoal-doc软件包
LOG_INFO "卸载texlive-linegoal-doc软件包"
dnf remove -y texlive-linegoal-doc
CHECK_RESULT $? 0 0 "卸载texlive-linegoal-doc软件包失败"
LOG_INFO "texlive-linegoal-doc软件包卸载成功"
# 验证软件包是否已卸载
LOG_INFO "验证texlive-linegoal-doc软件包是否已卸载"
rpm -q texlive-linegoal-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "texlive-linegoal-doc软件包卸载后仍然存在"
CHECK_RESULT 1 0 0 "软件包卸载验证失败"
else
LOG_INFO "texlive-linegoal-doc软件包已成功卸载"
CHECK_RESULT $? 1 0 "软件包卸载验证成功"
fi
# 环境恢复:如果最初未安装,则保持未安装状态;如果最初已安装,则重新安装
LOG_INFO "开始环境恢复"
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "初始状态未安装,无需重新安装"
else
LOG_INFO "重新安装texlive-linegoal-doc软件包以恢复到初始状态"
dnf install -y texlive-linegoal-doc
CHECK_RESULT $? 0 0 "重新安装texlive-linegoal-doc软件包失败"
LOG_INFO "texlive-linegoal-doc软件包重新安装成功"
fi
LOG_INFO "测试脚本执行完成,环境已恢复"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : Test basic LaTeX usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 检查软件包是否存在
LOG_INFO "检查texlive-linegoal-doc软件包是否在yum源中"
if ! dnf list available texlive-linegoal-doc &>/dev/null; then
LOG_ERROR "texlive-linegoal-doc软件包不在yum源中"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查texlive-linegoal-doc是否已安装"
if rpm -q texlive-linegoal-doc &>/dev/null; then
LOG_INFO "texlive-linegoal-doc已安装将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-linegoal-doc未安装将在测试过程中安装"
INSTALLED=false
fi
# 安装软件包(如果未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-linegoal-doc软件包"
dnf install -y texlive-linegoal-doc
CHECK_RESULT $? 0 0 "安装texlive-linegoal-doc失败"
fi
# 测试基本LaTeX使用
LOG_INFO "测试基本LaTeX使用"
LOG_INFO "创建一个简单的LaTeX文档"
cat > test_document.tex << "EOF"
\documentclass{article}
\usepackage{linegoal}
\begin{document}
Hello, LaTeX!
\end{document}
EOF
LOG_INFO "使用pdflatex编译LaTeX文档"
if command -v pdflatex &>/dev/null; then
pdflatex test_document.tex
CHECK_RESULT $? 0 0 "pdflatex编译失败"
else
LOG_ERROR "pdflatex命令不存在"
exit 255
fi
LOG_INFO "检查生成的PDF文件"
if [ -f test_document.pdf ]; then
LOG_INFO "PDF文件生成成功"
else
LOG_ERROR "PDF文件生成失败"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_document.tex test_document.log test_document.aux test_document.pdf
# 卸载软件包(如果测试前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-linegoal-doc软件包"
dnf remove -y texlive-linegoal-doc
CHECK_RESULT $? 0 0 "卸载texlive-linegoal-doc失败"
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-11-26
# @License : Mulan PSL v2
# @Desc : Test documentation generation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试文档生成功能..."
# 检查是否已安装texlive-mpattern-doc
if dnf list installed texlive-mpattern-doc &>/dev/null; then
LOG_INFO "texlive-mpattern-doc已安装测试结束后将保持安装状态"
installed=true
else
LOG_INFO "texlive-mpattern-doc未安装测试结束后将卸载"
installed=false
fi
# 检查yum源中是否有texlive-mpattern-doc
LOG_INFO "检查yum源中是否有texlive-mpattern-doc..."
if ! dnf list available texlive-mpattern-doc &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-mpattern-doc退出测试"
exit 255
fi
# 安装texlive-mpattern-doc
if [ "$installed" = false ]; then
LOG_INFO "正在安装texlive-mpattern-doc..."
dnf install -y texlive-mpattern-doc
CHECK_RESULT $? 0 0 "安装texlive-mpattern-doc失败"
fi
# 测试文档生成功能
LOG_INFO "测试文档生成功能..."
command_to_test="some_documentation_generation_command"
if ! command -v "$command_to_test" &>/dev/null; then
LOG_ERROR "命令$command_to_test不存在或不支持,退出测试"
exit 255
fi
$command_to_test
CHECK_RESULT $? 0 0 "文档生成失败"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载texlive-mpattern-doc..."
dnf remove -y texlive-mpattern-doc
CHECK_RESULT $? 0 0 "卸载texlive-mpattern-doc失败"
fi
LOG_INFO "测试文档生成功能完成"
}
main "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-03
# @License : Mulan PSL v2
# @Desc : Test listing package documentation files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:列出软件包文档文件"
# 检查是否已安装texlive-nihbiosketch-doc软件包
LOG_INFO "检查texlive-nihbiosketch-doc是否已安装"
rpm -q texlive-nihbiosketch-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-nihbiosketch-doc已安装测试结束后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "texlive-nihbiosketch-doc未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有texlive-nihbiosketch-doc软件包"
dnf list available texlive-nihbiosketch-doc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到texlive-nihbiosketch-doc软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-nihbiosketch-doc软件包退出测试"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装texlive-nihbiosketch-doc软件包"
dnf install -y texlive-nihbiosketch-doc
CHECK_RESULT $? 0 0 "安装texlive-nihbiosketch-doc失败"
fi
# 测试列出软件包文档文件功能
LOG_INFO "测试列出texlive-nihbiosketch-doc软件包的文档文件"
rpm -qd texlive-nihbiosketch-doc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "列出texlive-nihbiosketch-doc文档文件失败"
# 验证列出的文档文件列表不为空
LOG_INFO "验证列出的文档文件列表不为空"
DOC_FILES=$(rpm -qd texlive-nihbiosketch-doc)
if [ -z "$DOC_FILES" ]; then
LOG_ERROR "未找到texlive-nihbiosketch-doc的文档文件"
exit 1
else
LOG_INFO "成功列出texlive-nihbiosketch-doc的文档文件"
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载texlive-nihbiosketch-doc软件包"
dnf remove -y texlive-nihbiosketch-doc
CHECK_RESULT $? 0 0 "卸载texlive-nihbiosketch-doc失败"
fi
LOG_INFO "测试完成成功列出texlive-nihbiosketch-doc软件包的文档文件"
}
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 : 2026-04-03
# @License : Mulan PSL v2
# @Desc : Test package removal process
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试软件包卸载流程"
LOG_INFO "检查yum源中是否存在texlive-nihbiosketch-doc软件包"
dnf list available texlive-nihbiosketch-doc &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-nihbiosketch-doc软件包"
exit 255
fi
LOG_INFO "检查系统是否已安装texlive-nihbiosketch-doc软件包"
rpm -q texlive-nihbiosketch-doc &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,标记为保持安装状态"
already_installed=true
else
LOG_INFO "软件包未安装,标记为需要清理"
already_installed=false
fi
if [ "$already_installed" = false ]; then
LOG_INFO "开始安装texlive-nihbiosketch-doc软件包"
dnf install -y texlive-nihbiosketch-doc
CHECK_RESULT $? 0 0 "软件包安装失败"
fi
LOG_INFO "执行软件包卸载测试"
dnf remove -y texlive-nihbiosketch-doc
CHECK_RESULT $? 0 0 "软件包卸载失败"
LOG_INFO "验证软件包是否成功卸载"
rpm -q texlive-nihbiosketch-doc &>/dev/null
CHECK_RESULT $? 1 0 "软件包卸载后仍存在于系统中"
if [ "$already_installed" = true ]; then
LOG_INFO "恢复原始安装状态"
dnf install -y texlive-nihbiosketch-doc
CHECK_RESULT $? 0 0 "软件包重新安装失败"
LOG_INFO "环境已恢复至初始安装状态"
else
LOG_INFO "环境已清理,未安装软件包"
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-07
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-overlock-function包
LOG_INFO "检查是否已安装texlive-overlock-function包"
rpm -q texlive-overlock-function > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-overlock-function已安装脚本结束时保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-overlock-function未安装将在测试结束后卸载"
INSTALLED=0
fi
# 检查yum源中是否有texlive-overlock-function包
LOG_INFO "检查yum源中是否有texlive-overlock-function包"
dnf list available texlive-overlock-function > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-overlock-function包"
exit 255
fi
# 安装texlive-overlock-function包
LOG_INFO "安装texlive-overlock-function包"
dnf install -y texlive-overlock-function > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-overlock-function包失败"
# 验证安装是否成功
LOG_INFO "验证texlive-overlock-function是否安装成功"
rpm -q texlive-overlock-function > /dev/null 2>&1
CHECK_RESULT $? 0 0 "验证texlive-overlock-function安装失败"
# 测试命令参数是否存在或不支持
LOG_INFO "测试命令参数是否存在或不支持" #假设测试命令为testcmd --param
testcmd --param > /dev/null 2>&1
if [ $? -eq 255 ]; then #假设255表示参数不存在或不支持的情况根据实际情况调整判断条件
LOG_ERROR "命令参数不存在或不支持"
exit 255 #退出码为255
fi
# 执行其他测试步骤(根据实际需求补充)
LOG_INFO "执行其他测试步骤"
# 示例:执行某个命令并检查结果
ls /tmp > /dev/null #示例命令
CHECK_RESULT $? 0 0 "执行命令失败"
# 清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-overlock-function包"
dnf remove -y texlive-overlock-function > /dev/null 2>&1
CHECK_RESULT $? 0 ""卸载texlive-overlock-function包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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-26
# @License : Mulan PSL v2
# @Desc : Basic functionality test for texlive-tkz-tab
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查texlive-tkz-tab是否已安装
LOG_INFO "检查texlive-tkz-tab是否已安装"
if dnf list installed texlive-tkz-tab &>/dev/null; then
LOG_INFO "texlive-tkz-tab已安装脚本结束时保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-tkz-tab未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-tkz-tab软件包
LOG_INFO "检查yum源中是否有texlive-tkz-tab软件包"
if ! dnf list available texlive-tkz-tab &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-tkz-tab软件包"
exit 255
fi
# 安装texlive-tkz-tab软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-tkz-tab软件包"
dnf install -y texlive-tkz-tab
CHECK_RESULT $? 0 0 "安装texlive-tkz-tab失败"
fi
# 测试基本功能
LOG_INFO "测试texlive-kzt-ab基本功能"
command_to_test="tkzexample --help"
eval "$command_to_test" &>/dev/null
CHECK_RESULT $? 0 0 "texlive-tkz-ab基本功能测试失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlie-kzt-ab软件包"
dnf remove -y texlie-kzt-ab
CHECK_RESULT $? 0 0 "卸载texlie-kzt-ab失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : Test basic accent functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在指定的软件包
check_package_existence() {
local package_name=$1
dnf list available "$package_name" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $package_name 在yum源中不存在"
exit 255
fi
}
# 检查命令参数是否有效
check_command_arguments() {
local command=$1
shift
local args=("$@")
# 模拟检查参数是否有效
if [[ "${args[*]}" == *"invalid"* ]]; then
LOG_ERROR "命令 $command 的参数无效或不支持"
exit 255
fi
}
# 检查环境是否已安装指定软件包
check_installed() {
local package_name=$1
rpm -q "$package_name" &>/dev/null
return $?
}
# 安装软件包
install_package() {
local package_name=$1
LOG_INFO "正在安装软件包 $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
}
# 卸载软件包
uninstall_package() {
local package_name=$1
LOG_INFO "正在卸载软件包 $package_name"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
}
# 测试基本重音功能的主函数
test_basic_accent_functionality() {
local package_name="texlive-accents"
local was_installed=false
# 步骤1检查环境是否已安装指定软件包
LOG_INFO "步骤1检查环境是否已安装 $package_name"
if check_installed "$package_name"; then
was_installed=true
LOG_INFO "环境已安装 $package_name,脚本结束后将保持安装状态"
else
LOG_INFO "环境未安装 $package_name,将在测试完成后卸载"
check_package_existence "$package_name"
install_package "$package_name"
# Ensure the package is installed successfully before proceeding with tests
if ! check_installed "$packagename"; then
LOG_ERROR "未能成功安装$packagename"
exit255
fi
fi
# 步骤2测试基本重音功能
LOG_INFO "步骤2测试基本重音功能"
command="some_accent_command --test"
check_command_arguments "$command" "--test"
# Simulate running the command and checking its result
eval "$command"
CHECK_RESULT $? 0 0 "测试基本重音功能失败"
# 步骤3清理环境如果最初未安装
if [ "$was_installed" = false ]; then
LOG_INFO "步骤3清理环境卸载 $packagename"
uninstall_packagename "$packagename"
# Ensure the package is uninstalled successfully
if check_installed “$packagename; then
LOG_ERROR “未能成功卸载$packagename
exit255
fi
else
LOG_INFO “步骤3环境已安装$packagename,无需清理”
fi
LOG_INFO “测试脚本执行完毕”
}
# Main execution starts here.
main() {
test_basic_accent_functionality
}
main “$@
}
main "$@"