Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -79,10 +79,6 @@
|
||||
"name": "test_checkstyle_checkstyle_c_x",
|
||||
"desc": "测试组合使用-c和-x参数"
|
||||
},
|
||||
{
|
||||
"name": "test_checkstyle_install",
|
||||
"desc": "测试checkstyle软件包的安装功能,验证是否能够成功安装。"
|
||||
},
|
||||
{
|
||||
"name": "test_checkstyle_uninstall",
|
||||
"desc": "测试checkstyle软件包的卸载功能,验证是否能够成功卸载。"
|
||||
|
||||
@@ -10,6 +10,26 @@
|
||||
{
|
||||
"name": "test_eclipse-m2e-workspace-javadoc_function_docgen",
|
||||
"desc": "测试软件包的文档生成功能,验证生成的文档是否符合预期格式和内容。"
|
||||
},
|
||||
{
|
||||
"name": "test_eclipse-m2e-workspace-javadoc_install",
|
||||
"desc": "测试软件包eclipse-m2e-workspace-javadoc的安装功能,验证其能否通过包管理器成功安装到系统中。"
|
||||
},
|
||||
{
|
||||
"name": "test_eclipse-m2e-workspace-javadoc_verify",
|
||||
"desc": "测试软件包eclipse-m2e-workspace-javadoc的安装状态验证,检查其是否已正确安装且版本信息符合预期。"
|
||||
},
|
||||
{
|
||||
"name": "test_eclipse-m2e-workspace-javadoc_uninstall",
|
||||
"desc": "测试软件包eclipse-m2e-workspace-javadoc的卸载功能,验证其能否被完全、干净地移除。"
|
||||
},
|
||||
{
|
||||
"name": "test_eclipse-m2e-workspace-javadoc_docgen",
|
||||
"desc": "测试软件包eclipse-m2e-workspace-javadoc的文档生成功能,验证其能否为Maven项目正确生成Javadoc文档。"
|
||||
},
|
||||
{
|
||||
"name": "test_eclipse-m2e-workspace-javadoc_integration",
|
||||
"desc": "测试软件包eclipse-m2e-workspace-javadoc与Eclipse IDE的集成功能,验证其是否能在IDE中正常启用和配置。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/hunspell-ak/hunspell-ak",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_hunspell-ak_function_install",
|
||||
"desc": "测试hunspell-ak软件包是否能成功安装"
|
||||
},
|
||||
{
|
||||
"name": "test_hunspell-ak_function_uninstall",
|
||||
"desc": "测试hunspell-ak软件包是否能成功卸载"
|
||||
},
|
||||
{
|
||||
"name": "test_hunspell-ak_function_check_installed",
|
||||
"desc": "测试检查hunspell-ak软件包是否已安装"
|
||||
},
|
||||
{
|
||||
"name": "test_hunspell-ak_function_spell_check",
|
||||
"desc": "测试hunspell-ak对阿塞拜疆语单词的基本拼写检查功能"
|
||||
},
|
||||
{
|
||||
"name": "test_hunspell-ak_function_list_dict",
|
||||
"desc": "测试hunspell-ak词典文件是否已正确部署"
|
||||
},
|
||||
{
|
||||
"name": "test_hunspell-ak_function_suggest",
|
||||
"desc": "测试hunspell-ak对拼写错误单词的纠错建议功能"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/perl-Dist-CheckConflicts/perl-Dist-CheckConflicts",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_perl-Dist-CheckConflicts_function_install",
|
||||
"desc": "测试软件包可以通过包管理器(如yum/dnf)成功安装"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-Dist-CheckConflicts_function_check_installed",
|
||||
"desc": "验证软件包已正确安装并能查询到其版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-Dist-CheckConflicts_function_basic_usage",
|
||||
"desc": "测试使用perl -MDist::CheckConflicts -e1命令检查模块无报错,验证基础功能"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-Dist-CheckConflicts_function_uninstall",
|
||||
"desc": "测试软件包可以通过包管理器成功卸载"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -14,6 +14,58 @@
|
||||
{
|
||||
"name": "test_proftpd_function_restart",
|
||||
"desc": "测试 proftpd 服务的重启功能,验证服务是否能正常重启。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_ftpdctl_h",
|
||||
"desc": "测试 ftpdctl 命令的帮助信息显示"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_ftpdctl_s",
|
||||
"desc": "测试 ftpdctl 命令指定备用本地套接字"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_ftpdctl_v",
|
||||
"desc": "测试 ftpdctl 命令显示详细输出信息"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_ftpdctl_s_v",
|
||||
"desc": "测试 ftpdctl 命令同时指定备用本地套接字和显示详细输出信息"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_install",
|
||||
"desc": "测试 proftpd 软件包的安装功能,验证安装后核心文件、配置目录及服务单元是否正确部署。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_config",
|
||||
"desc": "测试 proftpd 基本配置文件加载与语法检查,验证默认配置的有效性。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_status",
|
||||
"desc": "测试 proftpd 服务的状态查询功能,验证服务状态信息能正确显示。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_stop",
|
||||
"desc": "测试 proftpd 服务的停止功能,验证服务是否能被正常停止。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_reload",
|
||||
"desc": "测试 proftpd 服务的重载配置功能,验证服务能在不重启的情况下应用新配置。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_ftp_login",
|
||||
"desc": "测试 proftpd 的 FTP 匿名登录功能,验证基本的 FTP 访问能力。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_ftp_upload",
|
||||
"desc": "测试 proftpd 的 FTP 文件上传功能,验证文件传输能力。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_ftp_download",
|
||||
"desc": "测试 proftpd 的 FTP 文件下载功能,验证文件获取能力。"
|
||||
},
|
||||
{
|
||||
"name": "test_proftpd_function_ftp_list",
|
||||
"desc": "测试 proftpd 的 FTP 目录列表功能,验证目录内容可正常列出。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -10,6 +10,34 @@
|
||||
{
|
||||
"name": "test_python3-cfgv_function_config",
|
||||
"desc": "测试python3-cfgv软件包的配置功能,验证配置文件的正确性"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-cfgv_install",
|
||||
"desc": "验证python3-cfgv软件包能否通过包管理器正确安装"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-cfgv_uninstall",
|
||||
"desc": "验证python3-cfgv软件包能否通过包管理器正确卸载"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-cfgv_version",
|
||||
"desc": "验证python3-cfgv软件包版本查询功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-cfgv_basic_validate",
|
||||
"desc": "测试cfgv模块对配置字典的基本验证功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-cfgv_schema",
|
||||
"desc": "测试cfgv模块使用schema定义和验证配置结构"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-cfgv_optional_key",
|
||||
"desc": "测试cfgv模块对可选配置项的处理"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-cfgv_validation_error",
|
||||
"desc": "测试cfgv模块在配置无效时能抛出正确的异常"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -10,10 +10,6 @@
|
||||
"name": "test_randomizedtesting-junit4-ant_function_build",
|
||||
"desc": "Test the build functionality of randomizedtesting-junit4-ant package"
|
||||
},
|
||||
{
|
||||
"name": "test_randomizedtesting-junit4-ant_function_install",
|
||||
"desc": "Test the installation of the randomizedtesting-junit4-ant package"
|
||||
},
|
||||
{
|
||||
"name": "test_randomizedtesting-junit4-ant_function_uninstall",
|
||||
"desc": "Test the uninstallation of the randomizedtesting-junit4-ant package"
|
||||
|
||||
@@ -5,6 +5,26 @@
|
||||
{
|
||||
"name": "test_texlive-acronym-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-acronym-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-acronym-doc_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-acronym-doc_function_check_version",
|
||||
"desc": "Test version information query"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-acronym-doc_function_verify_files",
|
||||
"desc": "Verify core documentation files exist"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-acronym-doc_function_display_help",
|
||||
"desc": "Test accessing package documentation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-c/texlive-bbding",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-bbding_function_install",
|
||||
"desc": "Test installation of texlive-bbding package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-bbding_function_install",
|
||||
"desc": "Test installation of texlive-bbding package"
|
||||
|
||||
@@ -5,6 +5,22 @@
|
||||
{
|
||||
"name": "test_texlive-context-bnf_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-context-bnf_function_check_installed",
|
||||
"desc": "Test if the package is installed on the system"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-context-bnf_function_remove_package",
|
||||
"desc": "Test package uninstallation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-context-bnf_function_bnf_macro",
|
||||
"desc": "Test basic BNF macro usage"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-context-bnf_function_compile_doc",
|
||||
"desc": "Test compiling a sample document"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-j/texlive-gost-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-gost-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-gost-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
|
||||
@@ -5,6 +5,26 @@
|
||||
{
|
||||
"name": "test_texlive-greek-fontenc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-greek-fontenc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-greek-fontenc_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-greek-fontenc_function_is_installed",
|
||||
"desc": "Check if package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-greek-fontenc_function_use_encoding",
|
||||
"desc": "Test using LGR encoding in LaTeX"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-greek-fontenc_function_greek_text",
|
||||
"desc": "Test typesetting Greek text"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,22 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-l/texlive-import",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-import_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-import_function_uninstall",
|
||||
"desc": "Test package uninstallation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-import_function_basic",
|
||||
"desc": "Test basic command usage"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-import_function_service",
|
||||
"desc": "Test service start/stop"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-import_function_install",
|
||||
"desc": "Test package installation"
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-p/texlive-multibbl-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-multibbl-doc_function_install",
|
||||
"desc": "Verify package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-multibbl-doc_function_install",
|
||||
"desc": "Verify package installation"
|
||||
|
||||
@@ -13,6 +13,38 @@
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_basic",
|
||||
"desc": "Test basic commands"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_uninstall",
|
||||
"desc": "Test package uninstallation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_basic",
|
||||
"desc": "Test basic commands"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_version",
|
||||
"desc": "Check package version"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_help",
|
||||
"desc": "Display help info"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_doc",
|
||||
"desc": "Access package documentation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_fonts",
|
||||
"desc": "Verify font availability"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-ppr-prv_function_styles",
|
||||
"desc": "Check style files exist"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-circledsteps",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-circledsteps_function_install",
|
||||
"desc": "Test installation of texlive-circledsteps package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-circledsteps_function_install",
|
||||
"desc": "Test installation of texlive-circledsteps package"
|
||||
|
||||
@@ -7,10 +7,6 @@
|
||||
"desc": "测试texlive-umoline-doc软件包的安装功能,验证安装过程是否正常完成",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-umoline-doc_install",
|
||||
"desc": "测试texlive-umoline-doc软件包的安装功能,验证安装过程是否正常完成"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-umoline-doc_verify",
|
||||
"desc": "验证texlive-umoline-doc软件包是否正确安装,检查关键文档文件是否存在"
|
||||
|
||||
@@ -6,6 +6,30 @@
|
||||
"name": "test_texlive-xetex-devanagari_install",
|
||||
"desc": "测试 texlive-xetex-devanagari 软件包的安装功能,验证安装过程是否成功。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-xetex-devanagari_install",
|
||||
"desc": "测试 texlive-xetex-devanagari 软件包的安装功能,验证安装过程是否成功。"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-xetex-devanagari_remove",
|
||||
"desc": "测试 texlive-xetex-devanagari 软件包的卸载功能,验证卸载过程是否成功。"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-xetex-devanagari_version",
|
||||
"desc": "测试查询 texlive-xetex-devanagari 软件包的版本信息。"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-xetex-devanagari_check",
|
||||
"desc": "测试检查 texlive-xetex-devanagari 软件包是否已正确安装。"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-xetex-devanagari_fonts",
|
||||
"desc": "测试软件包提供的天城文字体是否可用。"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-xetex-devanagari_xetex",
|
||||
"desc": "测试使用 XeLaTeX 编译包含天城文的基本文档。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-openipmi软件包是否能够正确安装。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量
|
||||
SCRIPT_NAME="test_python3-openipmi_function_install"
|
||||
PACKAGE_NAME="python3-openipmi"
|
||||
|
||||
# 日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1" >&2
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} 2>/dev/null | grep -q ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
LOG_INFO "检查${PACKAGE_NAME}软件包是否已安装"
|
||||
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME}软件包已安装"
|
||||
return 0
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}软件包未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
LOG_INFO "安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包卸载成功"
|
||||
}
|
||||
|
||||
# 测试软件包功能
|
||||
test_package_function() {
|
||||
LOG_INFO "测试${PACKAGE_NAME}软件包功能"
|
||||
# 检查ipmitool命令是否存在
|
||||
which ipmitool >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "ipmitool命令不存在"
|
||||
|
||||
# 测试ipmitool基本命令
|
||||
ipmitool -V >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "ipmitool命令执行失败"
|
||||
LOG_INFO "ipmitool命令测试成功"
|
||||
|
||||
# 测试python3-openipmi模块
|
||||
python3 -c "import pyipmi; print("pyipmi module imported successfully")" 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "python3-openipmi模块导入失败"
|
||||
LOG_INFO "python3-openipmi模块测试成功"
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
LOG_INFO "开始测试${PACKAGE_NAME}软件包安装功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo
|
||||
|
||||
# 检查软件包是否已安装
|
||||
local was_installed=0
|
||||
check_package_installed
|
||||
if [ $? -eq 0 ]; then
|
||||
was_installed=1
|
||||
LOG_INFO "测试前${PACKAGE_NAME}软件包已安装,测试后保持安装状态"
|
||||
else
|
||||
was_installed=0
|
||||
LOG_INFO "测试前${PACKAGE_NAME}软件包未安装,测试后需要卸载"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${was_installed} -eq 0 ]; then
|
||||
install_package
|
||||
fi
|
||||
|
||||
# 测试软件包功能
|
||||
test_package_function
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "开始环境清理"
|
||||
if [ ${was_installed} -eq 0 ]; then
|
||||
uninstall_package
|
||||
else
|
||||
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "${PACKAGE_NAME}软件包安装功能测试完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试能否列出python3-openipmi软件包提供的可用模块或功能。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="python3-openipmi"
|
||||
MODULE_LIST_COMMAND="python3 -c \"import openipmi; print(dir(openipmi))\""
|
||||
INSTALLED_FLAG=0
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
dnf list available $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "检查系统是否已安装 $PACKAGE_NAME"
|
||||
rpm -q $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,开始安装"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 测试能否列出python3-openipmi软件包提供的可用模块或功能
|
||||
LOG_INFO "测试能否列出 $PACKAGE_NAME 软件包提供的可用模块或功能"
|
||||
eval $MODULE_LIST_COMMAND > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "列出 $PACKAGE_NAME 模块失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "保持 $PACKAGE_NAME 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-openipmi软件包是否能够被正确卸载。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出
|
||||
LOG_INFO() {
|
||||
echo -e "\033[1;34m[INFO]\033[0m $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[1;31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
dnf list available "$1" &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $1 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令参数是否存在
|
||||
check_command_option() {
|
||||
if ! $1 --help 2>&1 | grep -q "$2"; then
|
||||
LOG_ERROR "命令 $1 不支持参数 $2"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_installed() {
|
||||
rpm -q "$1" &> /dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 记录初始安装状态
|
||||
initial_installed=false
|
||||
|
||||
LOG_INFO "开始测试python3-openipmi软件包的卸载功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查python3-openipmi是否在yum源中"
|
||||
check_package_in_repo python3-openipmi
|
||||
|
||||
# 检查当前是否已安装
|
||||
LOG_INFO "检查python3-openipmi是否已安装"
|
||||
if check_installed python3-openipmi; then
|
||||
LOG_INFO "python3-openipmi已安装,测试结束后保持安装状态"
|
||||
initial_installed=true
|
||||
else
|
||||
LOG_INFO "python3-openipmi未安装,将进行安装测试"
|
||||
fi
|
||||
|
||||
# 如果未安装,则先安装
|
||||
if [ "$initial_installed" = false ]; then
|
||||
LOG_INFO "安装python3-openipmi软件包"
|
||||
dnf install -y python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "安装python3-openipmi失败"
|
||||
|
||||
# 验证安装
|
||||
LOG_INFO "验证python3-openipmi是否安装成功"
|
||||
check_installed python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "验证python3-openipmi安装失败"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-openipmi失败"
|
||||
|
||||
# 验证卸载
|
||||
LOG_INFO "验证python3-openipmi是否卸载成功"
|
||||
check_installed python3-openipmi
|
||||
CHECK_RESULT $? 1 0 "python3-openipmi卸载后仍然存在"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "恢复测试环境"
|
||||
if [ "$initial_installed" = true ]; then
|
||||
LOG_INFO "重新安装python3-openipmi以恢复原始状态"
|
||||
dnf install -y python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "恢复python3-openipmi安装失败"
|
||||
|
||||
# 验证恢复
|
||||
LOG_INFO "验证环境恢复状态"
|
||||
check_installed python3-openipmi
|
||||
CHECK_RESULT $? 0 0 "环境恢复失败,python3-openipmi未正确安装"
|
||||
else
|
||||
LOG_INFO "测试环境已恢复,python3-openipmi保持未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "python3-openipmi卸载功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,97 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-openipmi软件包的版本信息能否正确查询。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-openipmi软件包
|
||||
LOG_INFO "检查是否已安装python3-openipmi软件包"
|
||||
rpm -q python3-openipmi > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-openipmi软件包已安装,标记为保持安装状态"
|
||||
KEEP_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-openipmi软件包未安装,标记为需要清理"
|
||||
KEEP_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-openipmi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-openipmi软件包"
|
||||
dnf list available python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到python3-openipmi软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-openipmi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-openipmi软件包"
|
||||
dnf install -y python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-openipmi软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装python3-openipmi软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "python3-openipmi软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试查询python3-openipmi软件包版本信息
|
||||
LOG_INFO "测试查询python3-openipmi软件包版本信息"
|
||||
rpm -q --queryformat="%{VERSION}-%{RELEASE}\n" python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "查询python3-openipmi软件包版本信息失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "查询python3-openipmi软件包版本信息失败"
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi > /dev/null 2>&1
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERSION=$(rpm -q --queryformat="%{VERSION}-%{RELEASE}\n" python3-openipmi 2>/dev/null)
|
||||
if [ -n "${VERSION}" ]; then
|
||||
LOG_INFO "python3-openipmi软件包版本信息为:${VERSION}"
|
||||
else
|
||||
LOG_ERROR "未获取到python3-openipmi软件包版本信息"
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi > /dev/null 2>&1
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ ${KEEP_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载python3-openipmi软件包"
|
||||
dnf remove -y python3-openipmi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-openipmi软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载python3-openipmi软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "环境清理完成,python3-openipmi软件包已卸载"
|
||||
else
|
||||
LOG_INFO "保持python3-openipmi软件包安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:python3-openipmi软件包的版本信息能正确查询"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the installation process of the geronimo-ejb-help package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断当前环境是否已经安装了geronimo-ejb-help软件包
|
||||
LOG_INFO "检查geronimo-ejb-help软件包是否已安装"
|
||||
rpm -q geronimo-ejb-help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "geronimo-ejb-help软件包已安装,测试结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "geronimo-ejb-help软件包未安装,测试结束后将卸载"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在geronimo-ejb-help软件包
|
||||
LOG_INFO "检查yum源中是否存在geronimo-ejb-help软件包"
|
||||
dnf list available geronimo-ejb-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在geronimo-ejb-help软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在geronimo-ejb-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则执行安装步骤
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "开始安装geronimo-ejb-help软件包"
|
||||
dnf install -y geronimo-ejb-help
|
||||
CHECK_RESULT $? 0 0 "安装geronimo-ejb-help软件包失败"
|
||||
LOG_INFO "geronimo-ejb-help软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证安装是否成功
|
||||
LOG_INFO "验证geronimo-ejb-help软件包安装是否成功"
|
||||
rpm -q geronimo-ejb-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "geronimo-ejb-help软件包未正确安装"
|
||||
|
||||
# 检查geronimo-ejb-help命令是否可用
|
||||
LOG_INFO "检查geronimo-ejb-help命令是否可用"
|
||||
geronimo-ejb-help --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "geronimo-ejb-help命令不可用或参数不支持"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "geronimo-ejb-help命令参数不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试geronimo-ejb-help命令的基本功能
|
||||
LOG_INFO "测试geronimo-ejb-help命令的基本功能"
|
||||
geronimo-ejb-help --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "geronimo-ejb-help命令版本查询失败"
|
||||
|
||||
# 如果测试开始时未安装,则测试结束后卸载软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "测试结束,卸载geronimo-ejb-help软件包"
|
||||
dnf remove -y geronimo-ejb-help
|
||||
CHECK_RESULT $? 0 0 "卸载geronimo-ejb-help软件包失败"
|
||||
LOG_INFO "geronimo-ejb-help软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "测试结束,保持geronimo-ejb-help软件包安装状态"
|
||||
fi
|
||||
|
||||
# 最终环境验证
|
||||
LOG_INFO "最终环境验证"
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
rpm -q geronimo-ejb-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "环境清理失败,geronimo-ejb-help软件包仍存在"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
rpm -q geronimo-ejb-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "环境异常,geronimo-ejb-help软件包未保持安装状态"
|
||||
LOG_INFO "环境已保持测试前安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify the integrity of installed package files
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否以root用户运行
|
||||
if [[ $(id -u) -ne 0 ]]; then
|
||||
LOG_ERROR "请使用root用户执行此脚本"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="geronimo-ejb"
|
||||
LOG_INFO "开始测试:验证已安装软件包文件的完整性"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "步骤1:检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [[ $? -ne 0 ]]; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "步骤2:检查${PACKAGE_NAME}软件包是否已安装"
|
||||
if rpm -q ${PACKAGE_NAME} > /dev/null 2>&1; then
|
||||
LOG_INFO "${PACKAGE_NAME}软件包已安装,测试后将保持安装状态"
|
||||
WAS_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}软件包未安装,将在测试过程中安装"
|
||||
WAS_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [[ ${WAS_INSTALLED} == false ]]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证软件包文件完整性
|
||||
LOG_INFO "步骤4:验证${PACKAGE_NAME}软件包文件完整性"
|
||||
rpm -V ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "${PACKAGE_NAME}软件包文件完整性验证失败"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包文件完整性验证通过"
|
||||
|
||||
# 测试geronimo-ejb相关命令
|
||||
LOG_INFO "步骤5:测试geronimo-ejb相关命令"
|
||||
# 查找geronimo-ejb相关的可执行文件
|
||||
EJBCMD=$(rpm -ql ${PACKAGE_NAME} | grep -E "/bin/|/sbin/" | head -1)
|
||||
if [[ -n "${EJBCMD}" ]] && [[ -x "${EJBCMD}" ]]; then
|
||||
LOG_INFO "找到可执行文件:${EJBCMD}"
|
||||
# 测试命令是否存在
|
||||
if [[ ! -f "${EJBCMD}" ]]; then
|
||||
LOG_ERROR "命令${EJBCMD}不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试命令基本执行
|
||||
${EJBCMD} --help > /dev/null 2>&1
|
||||
if [[ $? -ne 0 ]] && [[ $? -ne 1 ]]; then
|
||||
LOG_ERROR "命令${EJBCMD}执行失败"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令${EJBCMD}基本功能测试通过"
|
||||
else
|
||||
LOG_INFO "未找到可执行文件,跳过命令测试"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [[ ${WAS_INSTALLED} == false ]]; then
|
||||
LOG_INFO "步骤6:清理测试环境,卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "步骤6:保持${PACKAGE_NAME}软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:${PACKAGE_NAME}软件包文件完整性验证通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the removal process of the geronimo-ejb-help package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
PACKAGE_NAME="geronimo-ejb-help"
|
||||
LOG_INFO "测试开始:测试geronimo-ejb-help包的卸载过程"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在${PACKAGE_NAME}包"
|
||||
dnf list available ${PACKAGE_NAME} 2>&1 | grep -q "${PACKAGE_NAME}"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}包,无法进行测试"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${PACKAGE_NAME}包,继续测试"
|
||||
LOG_INFO "步骤2:检查${PACKAGE_NAME}包是否已安装"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME}包已安装,标记为已安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}包未安装,标记为未安装状态"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "步骤3:由于包未安装,执行安装操作作为测试步骤"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}包失败"
|
||||
LOG_INFO "成功安装${PACKAGE_NAME}包"
|
||||
fi
|
||||
LOG_INFO "步骤4:执行卸载${PACKAGE_NAME}包的操作"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}包失败"
|
||||
LOG_INFO "成功卸载${PACKAGE_NAME}包"
|
||||
LOG_INFO "步骤5:验证${PACKAGE_NAME}包是否已成功卸载"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "卸载后${PACKAGE_NAME}包仍存在,卸载不彻底"
|
||||
LOG_INFO "验证通过:${PACKAGE_NAME}包已成功卸载"
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "步骤6:恢复环境,由于测试前未安装,无需重新安装"
|
||||
LOG_INFO "环境已恢复至测试前状态"
|
||||
else
|
||||
LOG_INFO "步骤6:恢复环境,重新安装${PACKAGE_NAME}包以恢复原始状态"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "重新安装${PACKAGE_NAME}包失败,环境恢复失败"
|
||||
LOG_INFO "成功重新安装${PACKAGE_NAME}包,环境已恢复"
|
||||
fi
|
||||
LOG_INFO "测试结束:geronimo-ejb-help包的卸载过程测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic command-line usage or help output
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
# 环境变量设置
|
||||
PACKAGE_NAME="geronimo-ejb"
|
||||
TEST_COMMAND="${PACKAGE_NAME} --help"
|
||||
EXPECTED_OUTPUT_PATTERN="usage\|help\|Usage\|Help"
|
||||
|
||||
LOG_INFO "1. 检查系统是否已安装${PACKAGE_NAME}软件包"
|
||||
if dnf list installed "${PACKAGE_NAME}" &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试前安装并在测试后卸载"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
if ! dnf list available "${PACKAGE_NAME}" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "${ALREADY_INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "3. 安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y "${PACKAGE_NAME}"
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 验证命令参数是否存在"
|
||||
if ! command -v "${PACKAGE_NAME}" &>/dev/null; then
|
||||
LOG_ERROR "命令${PACKAGE_NAME}不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 执行测试命令: ${TEST_COMMAND}"
|
||||
output=$(${TEST_COMMAND} 2>&1)
|
||||
cmd_exit=$?
|
||||
|
||||
LOG_INFO "6. 检查命令执行结果"
|
||||
if [ ${cmd_exit} -eq 0 ]; then
|
||||
LOG_INFO "命令执行成功,检查输出内容"
|
||||
if echo "${output}" | grep -q -E "${EXPECTED_OUTPUT_PATTERN}"; then
|
||||
LOG_INFO "输出内容包含预期的帮助信息"
|
||||
CHECK_RESULT 0 0 0 "帮助信息验证失败"
|
||||
else
|
||||
LOG_ERROR "输出内容未包含预期的帮助信息"
|
||||
CHECK_RESULT 1 0 0 "帮助信息验证失败"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "命令执行失败,退出码: ${cmd_exit}"
|
||||
exit ${cmd_exit}
|
||||
fi
|
||||
|
||||
LOG_INFO "7. 环境清理"
|
||||
if [ "${ALREADY_INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y "${PACKAGE_NAME}"
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "8. 测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test querying the installed package version
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="geronimo-ejb"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "1. 检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查软件包是否已安装
|
||||
LOG_INFO "2. 检查${PACKAGE_NAME}软件包是否已安装"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
IS_INSTALLED="true"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包已安装"
|
||||
else
|
||||
IS_INSTALLED="false"
|
||||
LOG_INFO "${PACKAGE_NAME}软件包未安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装则安装软件包
|
||||
if [ "${IS_INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "3. 安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试查询已安装软件包版本
|
||||
LOG_INFO "4. 测试查询已安装软件包版本"
|
||||
# 检查--help参数是否支持
|
||||
rpm -q ${PACKAGE_NAME} --help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "rpm命令不支持--help参数"
|
||||
# 清理环境
|
||||
if [ "${IS_INSTALLED}" = "false" ]; then
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查--version参数是否支持
|
||||
rpm -q ${PACKAGE_NAME} --version > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "rpm命令不支持--version参数"
|
||||
# 清理环境
|
||||
if [ "${IS_INSTALLED}" = "false" ]; then
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行版本查询
|
||||
VERSION_OUTPUT=$(rpm -q ${PACKAGE_NAME} --queryformat "%{VERSION}-%{RELEASE}\n")
|
||||
CHECK_RESULT $? 0 0 "查询${PACKAGE_NAME}版本失败"
|
||||
LOG_INFO "软件包版本: ${VERSION_OUTPUT}"
|
||||
|
||||
# 步骤5:清理环境
|
||||
LOG_INFO "5. 清理测试环境"
|
||||
if [ "${IS_INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试检查geronimo-validation-help软件包是否已正确安装在系统中。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试检查geronimo-validation-help软件包是否已正确安装在系统中。"
|
||||
|
||||
# 检查yum源中是否存在geronimo-validation-help软件包
|
||||
LOG_INFO "检查yum源中是否存在geronimo-validation-help软件包"
|
||||
dnf list available geronimo-validation-help >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到geronimo-validation-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查软件包是否已经安装
|
||||
LOG_INFO "检查geronimo-validation-help软件包是否已经安装"
|
||||
rpm -q geronimo-validation-help >/dev/null 2>&1
|
||||
already_installed=$?
|
||||
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "geronimo-validation-help软件包已经安装,跳过安装步骤"
|
||||
need_uninstall=false
|
||||
else
|
||||
LOG_INFO "geronimo-validation-help软件包未安装,开始安装"
|
||||
dnf install -y geronimo-validation-help
|
||||
CHECK_RESULT $? 0 0 "安装geronimo-validation-help软件包失败"
|
||||
need_uninstall=true
|
||||
fi
|
||||
|
||||
# 验证软件包是否正确安装
|
||||
LOG_INFO "验证geronimo-validation-help软件包是否正确安装"
|
||||
rpm -q geronimo-validation-help
|
||||
CHECK_RESULT $? 0 0 "geronimo-validation-help软件包未正确安装"
|
||||
|
||||
# 验证软件包文件完整性
|
||||
LOG_INFO "验证geronimo-validation-help软件包文件完整性"
|
||||
rpm -V geronimo-validation-help
|
||||
CHECK_RESULT $? 0 0 "geronimo-validation-help软件包文件不完整"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$need_uninstall" = true ]; then
|
||||
LOG_INFO "卸载geronimo-validation-help软件包"
|
||||
dnf remove -y geronimo-validation-help
|
||||
CHECK_RESULT $? 0 0 "卸载geronimo-validation-help软件包失败"
|
||||
else
|
||||
LOG_INFO "保持geronimo-validation-help软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复到初始状态"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试该软件包作为依赖被其他组件(如Web应用)引入时,其功能是否正常可用。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本开始
|
||||
|
||||
# 步骤1:检查测试环境是否已安装geronimo-validation-help软件包
|
||||
LOG_INFO "步骤1:检查测试环境是否已安装geronimo-validation-help软件包"
|
||||
rpm -q geronimo-validation-help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "geronimo-validation-help软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "geronimo-validation-help软件包未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有geronimo-validation-help软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有geronimo-validation-help软件包"
|
||||
dnf list available geronimo-validation-help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到geronimo-validation-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:安装geronimo-validation-help软件包(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装geronimo-validation-help软件包"
|
||||
dnf install -y geronimo-validation-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装geronimo-validation-help软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证geronimo-validation-help软件包的基本功能
|
||||
LOG_INFO "步骤4:验证geronimo-validation-help软件包的基本功能"
|
||||
# 假设geronimo-validation-help提供了一个命令行工具"geronimo-validation-check",用于验证其功能
|
||||
# 检查该命令是否存在
|
||||
command -v geronimo-validation-check > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "geronimo-validation-help软件包未提供预期的命令行工具"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试geronimo-validation-check命令的基本参数
|
||||
LOG_INFO "测试geronimo-validation-check命令的基本参数"
|
||||
geronimo-validation-check --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "geronimo-validation-check命令--help参数执行失败"
|
||||
|
||||
# 步骤5:模拟geronimo-validation-help作为依赖被Web应用引入时的功能测试
|
||||
LOG_INFO "步骤5:模拟geronimo-validation-help作为依赖被Web应用引入时的功能测试"
|
||||
# 创建一个简单的Java Web应用测试文件,使用geronimo-validation-help进行验证
|
||||
cat > /tmp/test_validation.java << "EOF"
|
||||
import org.apache.geronimo.validation.ValidationHelper;
|
||||
public class TestValidation {
|
||||
public static void main(String[] args) {
|
||||
ValidationHelper helper = new ValidationHelper();
|
||||
System.out.println("ValidationHelper instance created successfully.");
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# 编译测试Java文件,检查geronimo-validation-help的类是否可用
|
||||
LOG_INFO "编译测试Java文件,验证geronimo-validation-help的类是否可用"
|
||||
javac -cp /usr/share/java/geronimo-validation-help.jar /tmp/test_validation.java 2>&1
|
||||
CHECK_RESULT $? 0 0 "编译测试Java文件失败,geronimo-validation-help的类不可用"
|
||||
|
||||
# 运行编译后的Java程序,验证功能
|
||||
LOG_INFO "运行编译后的Java程序,验证geronimo-validation-help的功能"
|
||||
java -cp /tmp:/usr/share/java/geronimo-validation-help.jar TestValidation 2>&1
|
||||
CHECK_RESULT $? 0 0 "运行Java程序失败,geronimo-validation-help功能异常"
|
||||
|
||||
# 步骤6:清理测试过程中创建的临时文件
|
||||
LOG_INFO "步骤6:清理测试过程中创建的临时文件"
|
||||
rm -f /tmp/test_validation.java /tmp/TestValidation.class
|
||||
|
||||
# 步骤7:如果测试前未安装geronimo-validation-help,则在测试结束后卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤7:卸载geronimo-validation-help软件包"
|
||||
dnf remove -y geronimo-validation-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载geronimo-validation-help软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:geronimo-validation-help作为依赖被其他组件引入时功能正常可用"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试reject函数根据条件过滤数组的基本功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="nodejs-lodash"
|
||||
TEST_SCRIPT="test_reject_basic.js"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在 $PACKAGE_NAME 软件包"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装 $PACKAGE_NAME"
|
||||
rpm -q $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,标记为已存在安装"
|
||||
PACKAGE_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,标记为未安装"
|
||||
PACKAGE_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$PACKAGE_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:创建测试脚本
|
||||
LOG_INFO "步骤4:创建Node.js测试脚本"
|
||||
cat > $TEST_SCRIPT << "EOF"
|
||||
const _ = require("lodash");
|
||||
|
||||
// 测试reject函数基本功能
|
||||
const users = [
|
||||
{ "user": "barney", "age": 36, "active": false },
|
||||
{ "user": "fred", "age": 40, "active": true },
|
||||
{ "user": "pebbles", "age": 1, "active": false }
|
||||
];
|
||||
|
||||
// 使用reject过滤掉active为true的用户
|
||||
const inactiveUsers = _.reject(users, ["active", true]);
|
||||
console.log("Inactive users:", JSON.stringify(inactiveUsers));
|
||||
|
||||
// 验证结果
|
||||
if (inactiveUsers.length !== 2) {
|
||||
console.error("Error: Expected 2 inactive users, got", inactiveUsers.length);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!inactiveUsers.every(user => user.active === false)) {
|
||||
console.error("Error: Some users are active in the inactiveUsers list");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log("Test passed: reject function works correctly");
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试脚本失败"
|
||||
|
||||
# 步骤5:执行测试脚本
|
||||
LOG_INFO "步骤5:执行Node.js测试脚本"
|
||||
node $TEST_SCRIPT
|
||||
CHECK_RESULT $? 0 0 "reject函数测试失败"
|
||||
|
||||
# 步骤6:清理测试脚本
|
||||
LOG_INFO "步骤6:清理测试脚本"
|
||||
rm -f $TEST_SCRIPT
|
||||
CHECK_RESULT $? 0 0 "删除测试脚本失败"
|
||||
|
||||
# 步骤7:如果脚本开始前未安装,则卸载软件包
|
||||
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 "测试完成:reject函数根据条件过滤数组的基本功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用包管理器(如npm)成功安装nodejs-lodash-reject软件包
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装nodejs-lodash-reject软件包
|
||||
LOG_INFO "检查nodejs-lodash-reject软件包是否已安装"
|
||||
rpm -q nodejs-lodash-reject > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "nodejs-lodash-reject软件包已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "nodejs-lodash-reject软件包未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在nodejs-lodash-reject软件包
|
||||
LOG_INFO "检查yum源中是否存在nodejs-lodash-reject软件包"
|
||||
dnf list available nodejs-lodash-reject > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在nodejs-lodash-reject软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装nodejs-lodash-reject软件包"
|
||||
dnf install -y nodejs-lodash-reject > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装nodejs-lodash-reject软件包失败"
|
||||
LOG_INFO "nodejs-lodash-reject软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证软件包是否正确安装
|
||||
LOG_INFO "验证nodejs-lodash-reject软件包是否正确安装"
|
||||
rpm -q nodejs-lodash-reject > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "nodejs-lodash-reject软件包未正确安装"
|
||||
|
||||
# 如果脚本开始前未安装,则在脚本结束前卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始卸载nodejs-lodash-reject软件包"
|
||||
dnf remove -y nodejs-lodash-reject > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载nodejs-lodash-reject软件包失败"
|
||||
LOG_INFO "nodejs-lodash-reject软件包卸载成功,环境已恢复"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,99 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试reject函数使用函数、对象、属性等不同断言形式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试nodejs-lodash的reject函数的不同断言形式"
|
||||
|
||||
# 检查yum源中是否有nodejs-lodash包
|
||||
LOG_INFO "检查yum源中是否有nodejs-lodash软件包"
|
||||
if ! dnf list available nodejs-lodash &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有nodejs-lodash软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装nodejs-lodash
|
||||
LOG_INFO "检查nodejs-lodash是否已安装"
|
||||
if rpm -q nodejs-lodash &>/dev/null; then
|
||||
LOG_INFO "nodejs-lodash已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "nodejs-lodash未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装nodejs-lodash软件包"
|
||||
dnf install -y nodejs-lodash
|
||||
CHECK_RESULT $? 0 0 "安装nodejs-lodash失败"
|
||||
fi
|
||||
|
||||
# 创建测试脚本
|
||||
TEST_SCRIPT="/tmp/test_reject.js"
|
||||
cat > $TEST_SCRIPT << "EOF"
|
||||
const _ = require("lodash");
|
||||
|
||||
// 测试数据
|
||||
const users = [
|
||||
{ "user": "barney", "age": 36, "active": true },
|
||||
{ "user": "fred", "age": 40, "active": false },
|
||||
{ "user": "pebbles","age": 1, "active": true }
|
||||
];
|
||||
|
||||
console.log("1. 使用函数断言:");
|
||||
const funcResult = _.reject(users, function(o) { return !o.active; });
|
||||
console.log(JSON.stringify(funcResult));
|
||||
|
||||
console.log("\n2. 使用对象断言:");
|
||||
const objResult = _.reject(users, { "age": 36, "active": true });
|
||||
console.log(JSON.stringify(objResult));
|
||||
|
||||
console.log("\n3. 使用属性断言:");
|
||||
const propResult = _.reject(users, "active");
|
||||
console.log(JSON.stringify(propResult));
|
||||
|
||||
console.log("\n4. 使用数组断言:");
|
||||
const arrResult = _.reject(users, ["active", false]);
|
||||
console.log(JSON.stringify(arrResult));
|
||||
EOF
|
||||
|
||||
# 执行测试脚本
|
||||
LOG_INFO "执行reject函数测试"
|
||||
node $TEST_SCRIPT
|
||||
CHECK_RESULT $? 0 0 "执行reject函数测试失败"
|
||||
|
||||
# 清理测试脚本
|
||||
LOG_INFO "清理测试脚本"
|
||||
rm -f $TEST_SCRIPT
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载nodejs-lodash软件包"
|
||||
dnf remove -y nodejs-lodash
|
||||
CHECK_RESULT $? 0 0 "卸载nodejs-lodash失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用包管理器成功卸载nodejs-lodash-reject软件包
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:测试使用包管理器成功卸载nodejs-lodash-reject软件包"
|
||||
|
||||
LOG_INFO "步骤1:检查yum源中是否存在nodejs-lodash-reject软件包"
|
||||
if ! dnf list available nodejs-lodash-reject 2>/dev/null | grep -q "nodejs-lodash-reject"; then
|
||||
LOG_ERROR "yum源中未找到nodejs-lodash-reject软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在nodejs-lodash-reject软件包"
|
||||
|
||||
LOG_INFO "步骤2:检查当前环境中nodejs-lodash-reject软件包的安装状态"
|
||||
if rpm -q nodejs-lodash-reject &>/dev/null; then
|
||||
LOG_INFO "当前环境已安装nodejs-lodash-reject软件包,标记为已安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "当前环境未安装nodejs-lodash-reject软件包,标记为未安装状态"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3:如果环境未安装,则安装nodejs-lodash-reject软件包作为测试步骤"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "正在安装nodejs-lodash-reject软件包..."
|
||||
dnf install -y nodejs-lodash-reject
|
||||
CHECK_RESULT $? 0 0 "安装nodejs-lodash-reject软件包失败"
|
||||
LOG_INFO "nodejs-lodash-reject软件包安装成功"
|
||||
else
|
||||
LOG_INFO "环境已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证软件包已正确安装"
|
||||
rpm -q nodejs-lodash-reject
|
||||
CHECK_RESULT $? 0 0 "验证nodejs-lodash-reject软件包安装状态失败"
|
||||
|
||||
LOG_INFO "步骤5:使用dnf卸载nodejs-lodash-reject软件包"
|
||||
dnf remove -y nodejs-lodash-reject
|
||||
CHECK_RESULT $? 0 0 "卸载nodejs-lodash-reject软件包失败"
|
||||
LOG_INFO "nodejs-lodash-reject软件包卸载成功"
|
||||
|
||||
LOG_INFO "步骤6:验证软件包已被成功卸载"
|
||||
if rpm -q nodejs-lodash-reject &>/dev/null; then
|
||||
LOG_ERROR "卸载后验证失败,nodejs-lodash-reject软件包仍然存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "验证成功,nodejs-lodash-reject软件包已被卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:环境恢复"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = true ]; then
|
||||
LOG_INFO "测试前环境已安装该软件包,重新安装以恢复环境..."
|
||||
dnf install -y nodejs-lodash-reject
|
||||
CHECK_RESULT $? 0 0 "重新安装nodejs-lodash-reject软件包以恢复环境失败"
|
||||
LOG_INFO "环境恢复成功,nodejs-lodash-reject软件包已重新安装"
|
||||
else
|
||||
LOG_INFO "测试前环境未安装该软件包,无需重新安装,环境已恢复"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试使用包管理器成功卸载nodejs-lodash-reject软件包"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用maven-dependency-plugin分析项目依赖
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装maven
|
||||
LOG_INFO "检查是否已安装maven"
|
||||
if command -v mvn &> /dev/null; then
|
||||
LOG_INFO "maven已安装,跳过安装步骤"
|
||||
INSTALLED_MAVEN=true
|
||||
else
|
||||
LOG_INFO "maven未安装,准备安装"
|
||||
INSTALLED_MAVEN=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven软件包
|
||||
LOG_INFO "检查yum源中是否有maven软件包"
|
||||
if ! dnf list available maven &> /dev/null; then
|
||||
LOG_ERROR "yum源中没有maven软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装maven,则安装
|
||||
if [ "$INSTALLED_MAVEN" = false ]; then
|
||||
LOG_INFO "安装maven软件包"
|
||||
dnf install -y maven
|
||||
CHECK_RESULT $? 0 0 "安装maven失败"
|
||||
fi
|
||||
|
||||
# 创建测试项目目录
|
||||
LOG_INFO "创建测试项目目录"
|
||||
TEST_DIR="/tmp/maven_test_$(date +%s)"
|
||||
mkdir -p "$TEST_DIR"
|
||||
cd "$TEST_DIR" || exit 1
|
||||
|
||||
# 创建简单的pom.xml文件
|
||||
LOG_INFO "创建测试项目的pom.xml文件"
|
||||
cat > pom.xml << "EOF"
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.test</groupId>
|
||||
<artifactId>dependency-test</artifactId>
|
||||
<version>1.0</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>3.6.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
EOF
|
||||
|
||||
# 检查maven-dependency-plugin的analyze目标是否存在
|
||||
LOG_INFO "检查maven-dependency-plugin的analyze目标参数"
|
||||
mvn dependency:help -Ddetail=true -Dgoal=analyze 2>&1 | grep -q "dependency:analyze"
|
||||
CHECK_RESULT $? 0 0 "maven-dependency-plugin的analyze目标不存在或不支持"
|
||||
|
||||
# 执行maven-dependency-plugin的analyze目标
|
||||
LOG_INFO "执行maven-dependency-plugin分析项目依赖"
|
||||
mvn dependency:analyze
|
||||
CHECK_RESULT $? 0 0 "执行maven-dependency-plugin analyze失败"
|
||||
|
||||
LOG_INFO "maven-dependency-plugin analyze执行成功"
|
||||
|
||||
# 清理测试目录
|
||||
LOG_INFO "清理测试目录"
|
||||
cd /tmp || exit 1
|
||||
rm -rf "$TEST_DIR"
|
||||
|
||||
# 如果脚本开始时未安装maven,则卸载
|
||||
if [ "$INSTALLED_MAVEN" = false ]; then
|
||||
LOG_INFO "卸载maven软件包"
|
||||
dnf remove -y maven
|
||||
CHECK_RESULT $? 0 0 "卸载maven失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,128 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用maven-dependency-plugin复制依赖到指定目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用maven-dependency-plugin复制依赖到指定目录"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="maven"
|
||||
|
||||
# 检查环境是否已安装软件包
|
||||
LOG_INFO "步骤1:检查环境是否已安装$PACKAGE_NAME软件包"
|
||||
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "环境已安装$PACKAGE_NAME软件包,测试结束后将保持安装状态"
|
||||
ENV_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "环境未安装$PACKAGE_NAME软件包,将在测试步骤中安装并在测试结束后卸载"
|
||||
ENV_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 [ "$ENV_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装$PACKAGE_NAME软件包"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME软件包失败"
|
||||
fi
|
||||
|
||||
# 检查maven-dependency-plugin插件是否支持copy-dependencies参数
|
||||
LOG_INFO "步骤4:检查maven-dependency-plugin插件是否支持copy-dependencies参数"
|
||||
if ! mvn dependency:help | grep -q "copy-dependencies"; then
|
||||
LOG_ERROR "maven-dependency-plugin插件不支持copy-dependencies参数,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的Maven项目目录
|
||||
LOG_INFO "步骤5:创建测试用的Maven项目目录"
|
||||
TEST_DIR="/tmp/test_maven_project"
|
||||
rm -rf "$TEST_DIR"
|
||||
mkdir -p "$TEST_DIR"
|
||||
cd "$TEST_DIR"
|
||||
|
||||
# 生成简单的pom.xml文件
|
||||
LOG_INFO "步骤6:生成简单的pom.xml文件"
|
||||
cat > pom.xml << EOF
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.example</groupId>
|
||||
<artifactId>test-project</artifactId>
|
||||
<version>1.0</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>3.1.2</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
EOF
|
||||
|
||||
# 执行maven-dependency-plugin复制依赖到指定目录
|
||||
LOG_INFO "步骤7:执行maven-dependency-plugin复制依赖到指定目录"
|
||||
TARGET_DIR="/tmp/maven_dependencies"
|
||||
rm -rf "$TARGET_DIR"
|
||||
mvn dependency:copy-dependencies -DoutputDirectory="$TARGET_DIR"
|
||||
CHECK_RESULT $? 0 0 "执行maven-dependency-plugin复制依赖失败"
|
||||
|
||||
# 检查依赖是否成功复制到指定目录
|
||||
LOG_INFO "步骤8:检查依赖是否成功复制到指定目录"
|
||||
if [ -d "$TARGET_DIR" ] && [ "$(ls -A "$TARGET_DIR")" ]; then
|
||||
LOG_INFO "依赖成功复制到$TARGET_DIR目录"
|
||||
else
|
||||
LOG_ERROR "依赖未成功复制到$TARGET_DIR目录"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试目录
|
||||
LOG_INFO "步骤9:清理测试目录"
|
||||
rm -rf "$TEST_DIR"
|
||||
rm -rf "$TARGET_DIR"
|
||||
|
||||
# 卸载软件包(如果测试前未安装)
|
||||
if [ "$ENV_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤10:卸载$PACKAGE_NAME软件包"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用maven-dependency-plugin复制依赖到指定目录"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,150 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用maven-dependency-plugin列出项目依赖
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已安装maven
|
||||
LOG_INFO "检查maven是否已安装"
|
||||
if dnf list installed maven >/dev/null 2>&1; then
|
||||
LOG_INFO "maven已安装,测试结束后将保持安装状态"
|
||||
MAVEN_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "maven未安装,将在测试过程中安装"
|
||||
MAVEN_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven软件包
|
||||
LOG_INFO "检查yum源中是否有maven软件包"
|
||||
if ! dnf list available maven >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有maven软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装maven
|
||||
if [ "$MAVEN_INSTALLED" = false ]; then
|
||||
LOG_INFO "安装maven软件包"
|
||||
dnf install -y maven
|
||||
CHECK_RESULT $? 0 0 "安装maven失败"
|
||||
fi
|
||||
|
||||
# 创建测试用的Maven项目
|
||||
LOG_INFO "创建测试用的Maven项目"
|
||||
mkdir -p test-maven-project
|
||||
cd test-maven-project || exit 1
|
||||
|
||||
cat > pom.xml << "EOF"
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.example</groupId>
|
||||
<artifactId>test-project</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>3.6.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
EOF
|
||||
|
||||
CHECK_RESULT $? 0 0 "创建pom.xml文件失败"
|
||||
|
||||
# 测试maven-dependency-plugin的dependency:list命令
|
||||
LOG_INFO "测试maven-dependency-plugin的dependency:list命令"
|
||||
mvn dependency:list -DoutputAbsoluteArtifactFilename=true > dependency_list_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行maven-dependency-plugin dependency:list命令失败"
|
||||
|
||||
# 检查输出结果是否包含预期的依赖
|
||||
LOG_INFO "检查dependency:list命令输出结果"
|
||||
if grep -q "junit:junit:jar:4.13.2" dependency_list_output.txt && \
|
||||
grep -q "commons-lang:commons-lang:jar:2.6" dependency_list_output.txt; then
|
||||
LOG_INFO "dependency:list命令成功列出了项目依赖"
|
||||
else
|
||||
LOG_ERROR "dependency:list命令未能正确列出所有依赖"
|
||||
CHECK_RESULT 1 0 0 "dependency:list命令输出不符合预期"
|
||||
fi
|
||||
|
||||
# 测试maven-dependency-plugin的dependency:tree命令
|
||||
LOG_INFO "测试maven-dependency-plugin的dependency:tree命令"
|
||||
mvn dependency:tree > dependency_tree_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行maven-dependency-plugin dependency:tree命令失败"
|
||||
|
||||
# 检查tree命令输出
|
||||
LOG_INFO "检查dependency:tree命令输出结果"
|
||||
if grep -q "junit:junit:jar:4.13.2:test" dependency_tree_output.txt && \
|
||||
grep -q "commons-lang:commons-lang:jar:2.6:compile" dependency_tree_output.txt; then
|
||||
LOG_INFO "dependency:tree命令成功显示了依赖树"
|
||||
else
|
||||
LOG_ERROR "dependency:tree命令输出不符合预期"
|
||||
CHECK_RESULT 1 0 0 "dependency:tree命令输出不符合预期"
|
||||
fi
|
||||
|
||||
# 测试不存在的参数
|
||||
LOG_INFO "测试不支持的参数"
|
||||
mvn dependency:list --non-existent-param > /dev/null 2>&1
|
||||
if [ $? -eq 255 ] || [ $? -eq 1 ]; then
|
||||
LOG_INFO "不支持的参数被正确拒绝"
|
||||
else
|
||||
LOG_ERROR "不支持的参数未被正确识别"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理测试项目
|
||||
LOG_INFO "清理测试项目"
|
||||
cd ..
|
||||
rm -rf test-maven-project
|
||||
|
||||
# 如果测试前未安装maven,则卸载
|
||||
if [ "$MAVEN_INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试期间安装的maven软件包"
|
||||
dnf remove -y maven
|
||||
CHECK_RESULT $? 0 0 "卸载maven失败"
|
||||
LOG_INFO "环境已恢复到测试前的状态"
|
||||
else
|
||||
LOG_INFO "保持maven安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "maven-dependency-plugin依赖列表功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,149 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用maven-dependency-plugin生成依赖树
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试使用maven-dependency-plugin生成依赖树
|
||||
LOG_INFO "开始测试maven-dependency-plugin的依赖树生成功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="maven-dependency-plugin"
|
||||
|
||||
# 步骤1:检查yum源中是否存在maven-dependency-plugin软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
|
||||
|
||||
# 步骤2:检查当前是否已安装maven-dependency-plugin
|
||||
LOG_INFO "步骤2:检查当前是否已安装${PACKAGE_NAME}"
|
||||
INSTALLED=false
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "${PACKAGE_NAME}已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}未安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
LOG_INFO "${PACKAGE_NAME}安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:验证maven-dependency-plugin命令是否可用
|
||||
LOG_INFO "步骤4:验证maven-dependency-plugin命令是否可用"
|
||||
if ! command -v mvn &>/dev/null; then
|
||||
LOG_ERROR "mvn命令不存在"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5:检查maven-dependency-plugin是否支持dependency:tree参数
|
||||
LOG_INFO "步骤5:检查maven-dependency-plugin是否支持dependency:tree参数"
|
||||
if ! mvn dependency:tree --help &>/dev/null; then
|
||||
LOG_ERROR "maven-dependency-plugin不支持dependency:tree参数"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "maven-dependency-plugin支持dependency:tree参数"
|
||||
|
||||
# 步骤6:创建测试Maven项目
|
||||
LOG_INFO "步骤6:创建测试Maven项目"
|
||||
TEST_DIR="/tmp/test_maven_project"
|
||||
rm -rf ${TEST_DIR}
|
||||
mkdir -p ${TEST_DIR}
|
||||
cd ${TEST_DIR}
|
||||
|
||||
# 创建pom.xml文件
|
||||
cat > pom.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.example</groupId>
|
||||
<artifactId>test-project</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建pom.xml文件失败"
|
||||
|
||||
# 步骤7:执行dependency:tree命令生成依赖树
|
||||
LOG_INFO "步骤7:执行dependency:tree命令生成依赖树"
|
||||
mvn dependency:tree > dependency_tree_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行dependency:tree命令失败"
|
||||
|
||||
# 步骤8:验证依赖树输出
|
||||
LOG_INFO "步骤8:验证依赖树输出"
|
||||
if [ -s dependency_tree_output.txt ]; then
|
||||
LOG_INFO "依赖树生成成功"
|
||||
# 检查输出中是否包含预期的依赖信息
|
||||
if grep -q "junit:junit:jar:4.12" dependency_tree_output.txt; then
|
||||
LOG_INFO "依赖树中包含预期的junit依赖"
|
||||
else
|
||||
LOG_ERROR "依赖树中未找到预期的junit依赖"
|
||||
CHECK_RESULT 1 0 0 "依赖树验证失败"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "依赖树输出文件为空"
|
||||
CHECK_RESULT 1 0 0 "依赖树输出验证失败"
|
||||
fi
|
||||
|
||||
# 步骤9:清理测试目录
|
||||
LOG_INFO "步骤9:清理测试目录"
|
||||
cd /
|
||||
rm -rf ${TEST_DIR}
|
||||
LOG_INFO "测试目录清理完成"
|
||||
|
||||
# 步骤10:环境恢复
|
||||
LOG_INFO "步骤10:环境恢复"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
LOG_INFO "${PACKAGE_NAME}卸载成功"
|
||||
else
|
||||
LOG_INFO "保持${PACKAGE_NAME}安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:maven-dependency-plugin依赖树生成功能测试成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包maven-dependency-plugin的安装功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试maven-dependency-plugin安装功能"
|
||||
|
||||
# 检查yum源中是否存在maven-dependency-plugin软件包
|
||||
LOG_INFO "检查yum源中是否存在maven-dependency-plugin软件包"
|
||||
dnf list available maven-dependency-plugin > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在maven-dependency-plugin软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在maven-dependency-plugin软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查系统是否已安装maven-dependency-plugin
|
||||
LOG_INFO "检查系统是否已安装maven-dependency-plugin"
|
||||
rpm -q maven-dependency-plugin > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "系统已安装maven-dependency-plugin,脚本结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "系统未安装maven-dependency-plugin,开始安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则进行安装
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "执行安装命令:dnf install -y maven-dependency-plugin"
|
||||
dnf install -y maven-dependency-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-dependency-plugin失败"
|
||||
fi
|
||||
|
||||
# 验证安装结果
|
||||
LOG_INFO "验证maven-dependency-plugin是否安装成功"
|
||||
rpm -q maven-dependency-plugin > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "maven-dependency-plugin安装验证失败"
|
||||
|
||||
# 测试maven-dependency-plugin基本功能
|
||||
LOG_INFO "测试maven-dependency-plugin基本功能"
|
||||
mvn dependency:help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "maven-dependency-plugin基本功能测试失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则在结束时卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "清理环境:卸载maven-dependency-plugin"
|
||||
dnf remove -y maven-dependency-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-dependency-plugin失败"
|
||||
|
||||
# 验证卸载结果
|
||||
LOG_INFO "验证maven-dependency-plugin是否已卸载"
|
||||
rpm -q maven-dependency-plugin > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "maven-dependency-plugin卸载失败"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "maven-dependency-plugin已成功卸载"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "环境已安装maven-dependency-plugin,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "maven-dependency-plugin安装功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包maven-dependency-plugin的卸载功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试软件包maven-dependency-plugin的卸载功能"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在maven-dependency-plugin软件包"
|
||||
dnf list available maven-dependency-plugin &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到maven-dependency-plugin软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在maven-dependency-plugin软件包"
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装maven-dependency-plugin"
|
||||
rpm -q maven-dependency-plugin &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "当前环境已安装maven-dependency-plugin,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "当前环境未安装maven-dependency-plugin,将进行安装作为测试步骤"
|
||||
INSTALLED=false
|
||||
LOG_INFO "步骤3:安装maven-dependency-plugin软件包"
|
||||
dnf install -y maven-dependency-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-dependency-plugin失败"
|
||||
LOG_INFO "安装maven-dependency-plugin成功"
|
||||
fi
|
||||
LOG_INFO "步骤4:验证软件包安装成功"
|
||||
rpm -q maven-dependency-plugin &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "验证maven-dependency-plugin安装状态失败"
|
||||
LOG_INFO "验证maven-dependency-plugin安装状态成功"
|
||||
LOG_INFO "步骤5:执行卸载功能测试(卸载软件包)"
|
||||
LOG_INFO "注意:如果测试前已安装,此卸载仅作为测试步骤,后续会恢复"
|
||||
dnf remove -y maven-dependency-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-dependency-plugin失败"
|
||||
LOG_INFO "卸载maven-dependency-plugin成功"
|
||||
LOG_INFO "步骤6:验证软件包已卸载"
|
||||
rpm -q maven-dependency-plugin &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "验证卸载失败,maven-dependency-plugin仍然存在"
|
||||
CHECK_RESULT 1 0 0 "卸载后验证失败"
|
||||
else
|
||||
LOG_INFO "验证卸载成功,maven-dependency-plugin已不存在"
|
||||
CHECK_RESULT $? 1 0 "卸载后验证逻辑异常"
|
||||
fi
|
||||
LOG_INFO "步骤7:环境恢复"
|
||||
if [ "$INSTALLED" = true ]; then
|
||||
LOG_INFO "测试前环境已安装maven-dependency-plugin,重新安装以恢复环境"
|
||||
dnf install -y maven-dependency-plugin
|
||||
CHECK_RESULT $? 0 0 "恢复安装maven-dependency-plugin失败"
|
||||
LOG_INFO "恢复安装maven-dependency-plugin成功"
|
||||
else
|
||||
LOG_INFO "测试前环境未安装maven-dependency-plugin,环境已处于未安装状态,无需额外恢复"
|
||||
fi
|
||||
LOG_INFO "步骤8:最终环境验证"
|
||||
if [ "$INSTALLED" = true ]; then
|
||||
rpm -q maven-dependency-plugin &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "最终环境验证失败,maven-dependency-plugin未正确恢复"
|
||||
LOG_INFO "最终环境验证成功,maven-dependency-plugin已恢复安装状态"
|
||||
else
|
||||
rpm -q maven-dependency-plugin &>/dev/null
|
||||
CHECK_RESULT $? 1 0 "最终环境验证失败,maven-dependency-plugin不应存在"
|
||||
LOG_INFO "最终环境验证成功,maven-dependency-plugin未安装,符合初始状态"
|
||||
fi
|
||||
LOG_INFO "测试软件包maven-dependency-plugin的卸载功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check the default configuration files and directories
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:检查默认配置文件及目录
|
||||
LOG_INFO "开始测试:检查MySQL默认配置文件及目录"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="mysql-common"
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "步骤1:检查系统是否已安装${PACKAGE_NAME}软件包"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "${PACKAGE_NAME}已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 检查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 [ "${INSTALLED_BEFORE_TEST}" = false ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
fi
|
||||
|
||||
# 检查默认配置文件是否存在
|
||||
LOG_INFO "步骤4:检查默认配置文件是否存在"
|
||||
DEFAULT_CONFIG_FILES=(
|
||||
"/etc/my.cnf"
|
||||
"/etc/mysql/my.cnf"
|
||||
)
|
||||
for config_file in "${DEFAULT_CONFIG_FILES[@]}"; do
|
||||
if [ -f "${config_file}" ]; then
|
||||
LOG_INFO "配置文件${config_file}存在"
|
||||
else
|
||||
LOG_INFO "配置文件${config_file}不存在(可能为正常情况)"
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查默认目录是否存在
|
||||
LOG_INFO "步骤5:检查默认目录是否存在"
|
||||
DEFAULT_DIRECTORIES=(
|
||||
"/var/lib/mysql"
|
||||
"/var/log/mysql"
|
||||
"/usr/lib/mysql"
|
||||
"/usr/share/mysql"
|
||||
)
|
||||
for directory in "${DEFAULT_DIRECTORIES[@]}"; do
|
||||
if [ -d "${directory}" ]; then
|
||||
LOG_INFO "目录${directory}存在"
|
||||
else
|
||||
LOG_INFO "目录${directory}不存在(可能为正常情况)"
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查特定命令参数(示例:检查mysqld是否支持--version参数)
|
||||
LOG_INFO "步骤6:检查mysqld命令是否支持--version参数"
|
||||
if command -v mysqld &>/dev/null; then
|
||||
if mysqld --version &>/dev/null; then
|
||||
LOG_INFO "mysqld命令支持--version参数"
|
||||
else
|
||||
LOG_ERROR "mysqld命令不支持--version参数"
|
||||
exit 255
|
||||
fi
|
||||
else
|
||||
LOG_INFO "mysqld命令未找到(可能未安装MySQL服务器,仅测试mysql-common包)"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = false ]; then
|
||||
LOG_INFO "步骤7:卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:MySQL默认配置文件及目录检查完毕"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Validate key dependencies and conflicts of the package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证软件包的关键依赖关系和冲突"
|
||||
|
||||
# 检查是否已安装mysql-common软件包
|
||||
LOG_INFO "步骤1:检查是否已安装mysql-common软件包"
|
||||
if dnf list installed mysql-common &>/dev/null; then
|
||||
LOG_INFO "mysql-common已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "mysql-common未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在mysql-common软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在mysql-common软件包"
|
||||
if ! dnf list available mysql-common &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到mysql-common软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装mysql-common软件包(如果未安装)
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装mysql-common软件包"
|
||||
dnf install -y mysql-common
|
||||
CHECK_RESULT $? 0 0 "安装mysql-common软件包失败"
|
||||
fi
|
||||
|
||||
# 验证关键依赖关系
|
||||
LOG_INFO "步骤4:验证mysql-common的关键依赖关系"
|
||||
rpm -qR mysql-common
|
||||
CHECK_RESULT $? 0 0 "查询mysql-common依赖关系失败"
|
||||
|
||||
# 验证软件包冲突
|
||||
LOG_INFO "步骤5:验证mysql-common的软件包冲突"
|
||||
rpm -q --conflicts mysql-common
|
||||
CHECK_RESULT $? 0 0 "查询mysql-common冲突关系失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤6:卸载mysql-common软件包"
|
||||
dnf remove -y mysql-common
|
||||
CHECK_RESULT $? 0 0 "卸载mysql-common软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装mysql-common,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:mysql-common的关键依赖关系和冲突验证成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify the execution of maintainer scripts (pre/post-install/remove)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证维护脚本(pre/post-install/remove)的执行"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在mysql-common软件包"
|
||||
dnf list available mysql-common > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到mysql-common软件包,退出测试"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到mysql-common软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装mysql-common"
|
||||
if rpm -q mysql-common > /dev/null 2>&1; then
|
||||
LOG_INFO "mysql-common已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "mysql-common未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3:安装mysql-common软件包"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf install -y mysql-common
|
||||
CHECK_RESULT $? 0 0 "安装mysql-common失败"
|
||||
LOG_INFO "mysql-common安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证pre-install脚本执行"
|
||||
LOG_INFO "步骤5:验证post-install脚本执行"
|
||||
LOG_INFO "步骤6:验证pre-remove脚本执行"
|
||||
|
||||
LOG_INFO "步骤7:卸载mysql-common软件包(如果测试前未安装)"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf remove -y mysql-common
|
||||
CHECK_RESULT $? 0 0 "卸载mysql-common失败"
|
||||
LOG_INFO "mysql-common卸载成功"
|
||||
else
|
||||
LOG_INFO "测试前已安装mysql-common,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8:清理测试环境"
|
||||
LOG_INFO "测试完成:维护脚本执行验证结束"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test uninstallation of openwebbeans-tomcat7 package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
dnf list available "$1" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $1 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令参数是否存在
|
||||
check_command_param() {
|
||||
if [ -z "$1" ]; then
|
||||
LOG_ERROR "命令参数不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
rpm -q "$1" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
LOG_INFO "开始安装软件包 $1"
|
||||
dnf install -y "$1"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $1 失败"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
LOG_INFO "开始卸载软件包 $1"
|
||||
dnf remove -y "$1"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $1 失败"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_uninstallation() {
|
||||
PACKAGE_NAME="openwebbeans-tomcat7"
|
||||
|
||||
LOG_INFO "测试卸载 openwebbeans-tomcat7 软件包"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包是否在yum源中"
|
||||
check_package_in_repo "$PACKAGE_NAME"
|
||||
|
||||
# 检查当前环境是否已安装
|
||||
LOG_INFO "检查当前环境是否已安装 $PACKAGE_NAME"
|
||||
if check_package_installed "$PACKAGE_NAME"; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,测试结束后保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将进行安装测试"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 如果未安装,先安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
install_package "$PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
# 验证软件包已安装
|
||||
LOG_INFO "验证软件包已安装"
|
||||
check_package_installed "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 未正确安装"
|
||||
|
||||
# 执行卸载测试
|
||||
LOG_INFO "执行卸载测试"
|
||||
uninstall_package "$PACKAGE_NAME"
|
||||
|
||||
# 验证软件包已卸载
|
||||
LOG_INFO "验证软件包已卸载"
|
||||
check_package_installed "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 1 0 "软件包 $PACKAGE_NAME 未正确卸载"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "恢复测试环境"
|
||||
if [ "$INSTALLED_BEFORE" = "true" ]; then
|
||||
# 如果测试前已安装,重新安装
|
||||
install_package "$PACKAGE_NAME"
|
||||
LOG_INFO "环境已恢复到测试前的安装状态"
|
||||
else
|
||||
# 如果测试前未安装,确保已卸载
|
||||
if check_package_installed "$PACKAGE_NAME"; then
|
||||
uninstall_package "$PACKAGE_NAME"
|
||||
fi
|
||||
LOG_INFO "环境已恢复到测试前的未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "openwebbeans-tomcat7 卸载测试完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_uninstallation
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic usage or help command
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装openwebbeans-tomcat7
|
||||
LOG_INFO "检查是否已安装openwebbeans-tomcat7"
|
||||
if rpm -q openwebbeans-tomcat7 > /dev/null 2>&1; then
|
||||
LOG_INFO "openwebbeans-tomcat7已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "openwebbeans-tomcat7未安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有openwebbeans-tomcat7软件包
|
||||
LOG_INFO "检查yum源中是否有openwebbeans-tomcat7软件包"
|
||||
if ! dnf list available openwebbeans-tomcat7 > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到openwebbeans-tomcat7软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装openwebbeans-tomcat7
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装openwebbeans-tomcat7"
|
||||
dnf install -y openwebbeans-tomcat7
|
||||
CHECK_RESULT $? 0 0 "安装openwebbeans-tomcat7失败"
|
||||
LOG_INFO "openwebbeans-tomcat7安装成功"
|
||||
fi
|
||||
|
||||
# 测试基本用法或帮助命令
|
||||
LOG_INFO "测试openwebbeans-tomcat7的基本用法或帮助命令"
|
||||
# 假设openwebbeans-tomcat7有一个帮助命令或基本用法命令,这里以假设命令"openwebbeans-tomcat7 --help"为例
|
||||
# 如果实际命令不同,请替换为实际命令
|
||||
if command -v openwebbeans-tomcat7 > /dev/null 2>&1; then
|
||||
openwebbeans-tomcat7 --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行openwebbeans-tomcat7帮助命令失败"
|
||||
LOG_INFO "openwebbeans-tomcat7帮助命令执行成功"
|
||||
else
|
||||
LOG_ERROR "openwebbeans-tomcat7命令不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载openwebbeans-tomcat7
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载openwebbeans-tomcat7"
|
||||
dnf remove -y openwebbeans-tomcat7
|
||||
CHECK_RESULT $? 0 0 "卸载openwebbeans-tomcat7失败"
|
||||
LOG_INFO "openwebbeans-tomcat7卸载成功"
|
||||
else
|
||||
LOG_INFO "测试前已安装openwebbeans-tomcat7,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test verification of installed files
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:验证已安装的文件"
|
||||
|
||||
# 检查是否已安装openwebbeans-tomcat7
|
||||
LOG_INFO "检查openwebbeans-tomcat7是否已安装"
|
||||
if dnf list installed openwebbeans-tomcat7 &>/dev/null; then
|
||||
LOG_INFO "openwebbeans-tomcat7已安装"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "openwebbeans-tomcat7未安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在openwebbeans-tomcat7软件包"
|
||||
if ! dnf list available openwebbeans-tomcat7 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到openwebbeans-tomcat7软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装openwebbeans-tomcat7"
|
||||
dnf install -y openwebbeans-tomcat7
|
||||
CHECK_RESULT $? 0 0 "安装openwebbeans-tomcat7失败"
|
||||
LOG_INFO "openwebbeans-tomcat7安装成功"
|
||||
fi
|
||||
|
||||
# 验证已安装的文件
|
||||
LOG_INFO "验证openwebbeans-tomcat7安装的文件"
|
||||
rpm -ql openwebbeans-tomcat7 > /dev/null
|
||||
CHECK_RESULT $? 0 0 "验证已安装文件失败"
|
||||
|
||||
# 检查特定文件是否存在
|
||||
LOG_INFO "检查特定文件是否存在"
|
||||
rpm -ql openwebbeans-tomcat7 | grep -q "/usr/share/openwebbeans-tomcat7"
|
||||
CHECK_RESULT $? 0 0 "未找到/usr/share/openwebbeans-tomcat7目录"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载openwebbeans-tomcat7"
|
||||
dnf remove -y openwebbeans-tomcat7
|
||||
CHECK_RESULT $? 0 0 "卸载openwebbeans-tomcat7失败"
|
||||
LOG_INFO "openwebbeans-tomcat7卸载成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:验证已安装的文件"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test checking the package version
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装openwebbeans-tomcat7
|
||||
LOG_INFO "检查是否已安装openwebbeans-tomcat7软件包"
|
||||
if rpm -q openwebbeans-tomcat7 > /dev/null 2>&1; then
|
||||
LOG_INFO "openwebbeans-tomcat7已安装,测试结束后保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "openwebbeans-tomcat7未安装,将在测试前安装并在测试后卸载"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有openwebbeans-tomcat7软件包"
|
||||
if ! dnf list available openwebbeans-tomcat7 > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有openwebbeans-tomcat7软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装openwebbeans-tomcat7软件包"
|
||||
dnf install -y openwebbeans-tomcat7
|
||||
CHECK_RESULT $? 0 0 "安装openwebbeans-tomcat7失败"
|
||||
fi
|
||||
|
||||
# 测试检查软件包版本
|
||||
LOG_INFO "测试检查openwebbeans-tomcat7软件包版本"
|
||||
rpm -q openwebbeans-tomcat7 --queryformat "%{VERSION}-%{RELEASE}\n"
|
||||
CHECK_RESULT $? 0 0 "获取openwebbeans-tomcat7版本失败"
|
||||
|
||||
# 获取版本号并验证格式
|
||||
LOG_INFO "验证版本号格式"
|
||||
version=$(rpm -q openwebbeans-tomcat7 --queryformat "%{VERSION}-%{RELEASE}\n" 2>/dev/null)
|
||||
if [ -z "$version" ]; then
|
||||
LOG_ERROR "获取的版本号为空"
|
||||
CHECK_RESULT 1 0 0 "版本号为空"
|
||||
fi
|
||||
|
||||
# 验证版本号格式(简单检查是否包含数字和点)
|
||||
if echo "$version" | grep -qE "^[0-9]+\.[0-9]+(\.[0-9]+)?-[0-9]+\."; then
|
||||
LOG_INFO "版本号格式正确: $version"
|
||||
else
|
||||
LOG_INFO "版本号: $version (格式可能不符合标准,但继续测试)"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载openwebbeans-tomcat7软件包"
|
||||
dnf remove -y openwebbeans-tomcat7
|
||||
CHECK_RESULT $? 0 0 "卸载openwebbeans-tomcat7失败"
|
||||
|
||||
# 验证是否已卸载
|
||||
if rpm -q openwebbeans-tomcat7 > /dev/null 2>&1; then
|
||||
LOG_ERROR "卸载后openwebbeans-tomcat7仍然存在"
|
||||
CHECK_RESULT 1 0 0 "卸载不彻底"
|
||||
else
|
||||
LOG_INFO "openwebbeans-tomcat7已成功卸载"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "测试前已安装openwebbeans-tomcat7,保持安装状态不变"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:成功检查openwebbeans-tomcat7软件包版本"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,58 +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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test integration with Ant build system
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试Ant构建系统集成功能"
|
||||
LOG_INFO "检查环境是否已安装randomizedtesting-junit4-ant软件包"
|
||||
rpm -q randomizedtesting-junit4-ant
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
LOG_INFO "检查yum源中是否存在randomizedtesting-junit4-ant软件包"
|
||||
dnf list available randomizedtesting-junit4-ant
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到randomizedtesting-junit4-ant软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装randomizedtesting-junit4-ant软件包"
|
||||
dnf install -y randomizedtesting-junit4-ant
|
||||
CHECK_RESULT $? 0 0 "安装randomizedtesting-junit4-ant软件包失败"
|
||||
fi
|
||||
LOG_INFO "检查Ant命令是否可用"
|
||||
ant -version
|
||||
CHECK_RESULT $? 0 0 "Ant命令执行失败"
|
||||
LOG_INFO "执行Ant构建测试"
|
||||
ant test
|
||||
CHECK_RESULT $? 0 0 "Ant构建测试执行失败"
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载randomizedtesting-junit4-ant软件包"
|
||||
dnf remove -y randomizedtesting-junit4-ant
|
||||
CHECK_RESULT $? 0 0 "卸载randomizedtesting-junit4-ant软件包失败"
|
||||
fi
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test execution of randomized JUnit tests
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:执行随机化的JUnit测试"
|
||||
LOG_INFO "检查测试环境是否已安装randomizedtesting-junit4-ant软件包"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if dnf list installed randomizedtesting-junit4-ant > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在randomizedtesting-junit4-ant软件包"
|
||||
if ! dnf list available randomizedtesting-junit4-ant > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到randomizedtesting-junit4-ant软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装randomizedtesting-junit4-ant软件包"
|
||||
dnf install -y randomizedtesting-junit4-ant
|
||||
CHECK_RESULT $? 0 0 "安装randomizedtesting-junit4-ant软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "验证randomizedtesting-junit4-ant命令是否存在"
|
||||
if ! command -v randomizedtesting-junit4-ant > /dev/null 2>&1; then
|
||||
LOG_ERROR "randomizedtesting-junit4-ant命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查randomizedtesting-junit4-ant命令是否支持--help参数"
|
||||
if ! randomizedtesting-junit4-ant --help > /dev/null 2>&1; then
|
||||
LOG_ERROR "randomizedtesting-junit4-ant命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "执行随机化的JUnit测试"
|
||||
randomizedtesting-junit4-ant --random-seed 12345 --test-class com.example.RandomTest
|
||||
CHECK_RESULT $? 0 0 "执行随机化的JUnit测试失败"
|
||||
|
||||
# 如果测试前未安装,则在测试结束后卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载randomizedtesting-junit4-ant软件包"
|
||||
dnf remove -y randomizedtesting-junit4-ant
|
||||
CHECK_RESULT $? 0 0 "卸载randomizedtesting-junit4-ant软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the uninstallation of the randomizedtesting-junit4-ant package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试randomizedtesting-junit4-ant软件包的卸载功能"
|
||||
|
||||
# 检查软件包是否存在于yum源中
|
||||
LOG_INFO "检查yum源中是否存在randomizedtesting-junit4-ant软件包"
|
||||
if ! dnf list available randomizedtesting-junit4-ant &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在randomizedtesting-junit4-ant软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装
|
||||
LOG_INFO "检查randomizedtesting-junit4-ant软件包是否已安装"
|
||||
if rpm -q randomizedtesting-junit4-ant &>/dev/null; then
|
||||
already_installed=true
|
||||
LOG_INFO "检测到软件包已安装,测试结束后将保持安装状态"
|
||||
else
|
||||
already_installed=false
|
||||
LOG_INFO "检测到软件包未安装,将在测试前安装"
|
||||
fi
|
||||
|
||||
# 如果未安装,则先安装
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "安装randomizedtesting-junit4-ant软件包"
|
||||
dnf install -y randomizedtesting-junit4-ant
|
||||
CHECK_RESULT $? 0 0 "安装randomizedtesting-junit4-ant软件包失败"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载randomizedtesting-junit4-ant软件包"
|
||||
dnf remove -y randomizedtesting-junit4-ant
|
||||
CHECK_RESULT $? 0 0 "卸载randomizedtesting-junit4-ant软件包失败"
|
||||
|
||||
# 验证卸载是否成功
|
||||
LOG_INFO "验证randomizedtesting-junit4-ant软件包是否已卸载"
|
||||
if rpm -q randomizedtesting-junit4-ant &>/dev/null; then
|
||||
LOG_ERROR "卸载后randomizedtesting-junit4-ant软件包仍然存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "randomizedtesting-junit4-ant软件包已成功卸载"
|
||||
fi
|
||||
|
||||
# 环境恢复:如果测试前未安装,则重新安装以恢复环境
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "恢复环境:重新安装randomizedtesting-junit4-ant软件包"
|
||||
dnf install -y randomizedtesting-junit4-ant
|
||||
CHECK_RESULT $? 0 0 "恢复环境时安装randomizedtesting-junit4-ant软件包失败"
|
||||
LOG_INFO "环境已恢复:randomizedtesting-junit4-ant软件包已安装"
|
||||
else
|
||||
LOG_INFO "环境已恢复:randomizedtesting-junit4-ant软件包保持原安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "randomizedtesting-junit4-ant软件包卸载功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,109 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test accessing package documentation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本开始
|
||||
|
||||
# 检查是否已安装texlive-cmdtrack
|
||||
LOG_INFO "步骤1:检查是否已安装texlive-cmdtrack软件包"
|
||||
rpm -q texlive-cmdtrack > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-cmdtrack已安装,标记为已安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "texlive-cmdtrack未安装,标记为未安装状态"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-cmdtrack软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-cmdtrack软件包"
|
||||
dnf list available texlive-cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到texlive-cmdtrack软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-cmdtrack软件包,退出"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-cmdtrack
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装texlive-cmdtrack软件包"
|
||||
dnf install -y texlive-cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-cmdtrack失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装texlive-cmdtrack失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "texlive-cmdtrack安装成功"
|
||||
else
|
||||
LOG_INFO "步骤3:texlive-cmdtrack已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试访问软件包文档功能
|
||||
LOG_INFO "步骤4:测试访问texlive-cmdtrack软件包文档"
|
||||
# 假设texlive-cmdtrack提供了--help参数来访问文档
|
||||
texlive-cmdtrack --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-cmdtrack的--help参数不存在或不支持"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texlive-cmdtrack的--help参数不存在或不支持,退出"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-cmdtrack软件包"
|
||||
dnf remove -y texlive-cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-cmdtrack失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 验证--help输出是否包含预期内容
|
||||
LOG_INFO "步骤5:验证--help输出是否包含预期内容"
|
||||
texlive-cmdtrack --help 2>&1 | grep -q "usage\|help"
|
||||
CHECK_RESULT $? 0 0 "--help输出不符合预期"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "--help输出不符合预期"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-cmdtrack软件包"
|
||||
dnf remove -y texlive-cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-cmdtrack失败"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "--help输出符合预期,文档访问功能正常"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "步骤6:环境恢复"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-cmdtrack软件包"
|
||||
dnf remove -y texlive-cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-cmdtrack失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载texlive-cmdtrack失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "环境已恢复到未安装texlive-cmdtrack的状态"
|
||||
else
|
||||
LOG_INFO "环境保持已安装texlive-cmdtrack的状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test accessing package documentation 通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test removal of texlive-cmdtrack package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local error_code=$3
|
||||
local error_msg=$4
|
||||
|
||||
if [ $actual -ne $expected ]; then
|
||||
LOG_ERROR "$error_msg"
|
||||
exit $error_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(示例,实际使用时需根据环境调整)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=$4
|
||||
|
||||
# 这里只是示例,实际应根据具体环境实现
|
||||
echo "SSH command to $ip: $cmd"
|
||||
}
|
||||
|
||||
# 测试开始
|
||||
LOG_INFO "开始测试:移除texlive-cmdtrack软件包"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查texlive-cmdtrack是否在yum源中"
|
||||
dnf list available texlive-cmdtrack &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-cmdtrack软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前是否已安装
|
||||
LOG_INFO "步骤2:检查texlive-cmdtrack是否已安装"
|
||||
rpm -q texlive-cmdtrack &> /dev/null
|
||||
is_installed=$?
|
||||
|
||||
# 记录初始状态
|
||||
initial_state=$is_installed
|
||||
|
||||
# 步骤3:如果未安装,则先安装
|
||||
if [ $is_installed -ne 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-cmdtrack软件包"
|
||||
dnf install -y texlive-cmdtrack
|
||||
CHECK_RESULT $? 0 1 "安装texlive-cmdtrack失败"
|
||||
|
||||
# 验证安装
|
||||
rpm -q texlive-cmdtrack &> /dev/null
|
||||
CHECK_RESULT $? 0 1 "验证texlive-cmdtrack安装失败"
|
||||
LOG_INFO "texlive-cmdtrack安装成功"
|
||||
else
|
||||
LOG_INFO "步骤3:texlive-cmdtrack已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4:测试卸载功能
|
||||
LOG_INFO "步骤4:测试卸载texlive-cmdtrack软件包"
|
||||
dnf remove -y texlive-cmdtrack
|
||||
CHECK_RESULT $? 0 1 "卸载texlive-cmdtrack失败"
|
||||
|
||||
# 步骤5:验证卸载
|
||||
LOG_INFO "步骤5:验证texlive-cmdtrack已卸载"
|
||||
rpm -q texlive-cmdtrack &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "卸载后仍检测到texlive-cmdtrack"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "texlive-cmdtrack卸载成功"
|
||||
|
||||
# 步骤6:环境恢复
|
||||
LOG_INFO "步骤6:恢复环境到初始状态"
|
||||
if [ $initial_state -eq 0 ]; then
|
||||
LOG_INFO "初始状态已安装,重新安装texlive-cmdtrack"
|
||||
dnf install -y texlive-cmdtrack
|
||||
CHECK_RESULT $? 0 1 "重新安装texlive-cmdtrack失败"
|
||||
|
||||
# 验证恢复
|
||||
rpm -q texlive-cmdtrack &> /dev/null
|
||||
CHECK_RESULT $? 0 1 "验证环境恢复失败"
|
||||
LOG_INFO "环境已恢复到初始安装状态"
|
||||
else
|
||||
LOG_INFO "初始状态未安装,保持卸载状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:texlive-cmdtrack软件包移除测试成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic usage in LaTeX document
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试LaTeX文档中的基本使用
|
||||
|
||||
LOG_INFO "1. 检查系统中是否已安装texlive-cmdtrack软件包"
|
||||
rpm -q texlive-cmdtrack > /dev/null 2>&1
|
||||
pkg_installed=$?
|
||||
|
||||
if [ $pkg_installed -eq 0 ]; then
|
||||
LOG_INFO "texlive-cmdtrack已安装,测试结束后将保持安装状态"
|
||||
need_cleanup=0
|
||||
else
|
||||
LOG_INFO "texlive-cmdtrack未安装,将在测试前安装,测试后卸载"
|
||||
need_cleanup=1
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查yum源中是否有texlive-cmdtrack软件包"
|
||||
dnf list available texlive-cmdtrack > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-cmdtrack软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $pkg_installed -ne 0 ]; then
|
||||
LOG_INFO "3. 安装texlive-cmdtrack软件包"
|
||||
dnf install -y texlive-cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-cmdtrack失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 检查cmdtrack命令是否存在"
|
||||
which cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "cmdtrack命令未找到"
|
||||
|
||||
LOG_INFO "5. 测试cmdtrack命令的基本参数--help"
|
||||
cmdtrack --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "cmdtrack --help执行失败"
|
||||
|
||||
LOG_INFO "6. 测试cmdtrack命令的基本参数--version"
|
||||
cmdtrack --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "cmdtrack --version执行失败"
|
||||
|
||||
LOG_INFO "7. 测试不支持的参数,预期应该失败"
|
||||
cmdtrack --invalid-param > /dev/null 2>&1
|
||||
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
|
||||
LOG_ERROR "不支持的参数未按预期失败"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "8. 创建测试LaTeX文档"
|
||||
TEST_TEX_FILE="test_cmdtrack.tex"
|
||||
cat > $TEST_TEX_FILE << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{cmdtrack}
|
||||
\begin{document}
|
||||
Test document for cmdtrack package.
|
||||
\cmdtrack{This is a tracked command.}
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
|
||||
|
||||
LOG_INFO "9. 使用pdflatex编译测试文档(首次编译)"
|
||||
pdflatex -interaction=nonstopmode $TEST_TEX_FILE > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "首次编译LaTeX文档失败"
|
||||
|
||||
LOG_INFO "10. 使用pdflatex编译测试文档(第二次编译)"
|
||||
pdflatex -interaction=nonstopmode $TEST_TEX_FILE > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "第二次编译LaTeX文档失败"
|
||||
|
||||
LOG_INFO "11. 检查生成的PDF文件"
|
||||
if [ -f "test_cmdtrack.pdf" ]; then
|
||||
LOG_INFO "PDF文件生成成功"
|
||||
else
|
||||
LOG_ERROR "PDF文件未生成"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "12. 清理测试文件"
|
||||
rm -f test_cmdtrack.*
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
LOG_INFO "13. 卸载texlive-cmdtrack软件包"
|
||||
dnf remove -y texlive-cmdtrack > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-cmdtrack失败"
|
||||
else
|
||||
LOG_INFO "13. 保持texlive-cmdtrack安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "14. 测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test checking version of cmdtrack.sty
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:检查cmdtrack.sty的版本信息"
|
||||
|
||||
# 检查是否已安装texlive-cmdtrack包
|
||||
LOG_INFO "步骤1:检查texlive-cmdtrack是否已安装"
|
||||
if dnf list installed texlive-cmdtrack &>/dev/null; then
|
||||
LOG_INFO "texlive-cmdtrack已安装,跳过安装步骤"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-cmdtrack未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-cmdtrack包
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-cmdtrack包"
|
||||
if ! dnf list available texlive-cmdtrack &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-cmdtrack包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-cmdtrack包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-cmdtrack包"
|
||||
dnf install -y texlive-cmdtrack
|
||||
CHECK_RESULT $? 0 0 "安装texlive-cmdtrack包失败"
|
||||
fi
|
||||
|
||||
# 检查cmdtrack.sty版本信息
|
||||
LOG_INFO "步骤4:检查cmdtrack.sty版本信息"
|
||||
if ! kpsewhich cmdtrack.sty &>/dev/null; then
|
||||
LOG_ERROR "未找到cmdtrack.sty文件"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
VERSION_OUTPUT=$(kpsewhich cmdtrack.sty | xargs grep -h "ProvidesPackage" | head -1)
|
||||
if [ -z "$VERSION_OUTPUT" ]; then
|
||||
LOG_ERROR "无法获取cmdtrack.sty的版本信息"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "cmdtrack.sty版本信息:$VERSION_OUTPUT"
|
||||
CHECK_RESULT $? 0 0 "获取cmdtrack.sty版本信息失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载texlive-cmdtrack包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤5:卸载texlive-cmdtrack包"
|
||||
dnf remove -y texlive-cmdtrack
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-cmdtrack包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:成功检查cmdtrack.sty的版本信息"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 texlive-fifinddo-info-doc 软件包的卸载功能,确保能够完全移除且不残留关键文件。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装texlive-fifinddo-info-doc软件包
|
||||
LOG_INFO "检查texlive-fifinddo-info-doc是否已安装"
|
||||
rpm -q texlive-fifinddo-info-doc
|
||||
is_installed=$?
|
||||
|
||||
# 记录初始安装状态
|
||||
initial_installed=false
|
||||
if [ $is_installed -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装"
|
||||
initial_installed=true
|
||||
else
|
||||
LOG_INFO "软件包未安装"
|
||||
initial_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-fifinddo-info-doc软件包"
|
||||
dnf list available texlive-fifinddo-info-doc
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有texlive-fifinddo-info-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $is_installed -ne 0 ]; then
|
||||
LOG_INFO "安装texlive-fifinddo-info-doc软件包"
|
||||
dnf install -y texlive-fifinddo-info-doc
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 验证软件包已安装
|
||||
LOG_INFO "验证软件包已安装"
|
||||
rpm -q texlive-fifinddo-info-doc
|
||||
CHECK_RESULT $? 0 0 "软件包未正确安装"
|
||||
|
||||
# 记录关键文件信息
|
||||
LOG_INFO "记录软件包的关键文件信息"
|
||||
rpm -ql texlive-fifinddo-info-doc > /tmp/texlive_files_before_uninstall.txt
|
||||
CHECK_RESULT $? 0 0 "获取软件包文件列表失败"
|
||||
|
||||
# 卸载软件包
|
||||
LOG_INFO "卸载texlive-fifinddo-info-doc软件包"
|
||||
dnf remove -y texlive-fifinddo-info-doc
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
|
||||
# 验证软件包已卸载
|
||||
LOG_INFO "验证软件包已卸载"
|
||||
rpm -q texlive-fifinddo-info-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "软件包卸载失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "软件包卸载成功"
|
||||
|
||||
# 检查关键文件是否残留
|
||||
LOG_INFO "检查关键文件是否残留"
|
||||
if [ -f /tmp/texlive_files_before_uninstall.txt ]; then
|
||||
while IFS= read -r file; do
|
||||
if [ -e "$file" ]; then
|
||||
LOG_ERROR "发现残留文件: $file"
|
||||
exit 1
|
||||
fi
|
||||
done < /tmp/texlive_files_before_uninstall.txt
|
||||
fi
|
||||
LOG_INFO "未发现关键文件残留"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/texlive_files_before_uninstall.txt
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 环境恢复:如果初始状态是未安装,则保持未安装状态;如果初始状态是已安装,则重新安装
|
||||
if [ "$initial_installed" = false ]; then
|
||||
LOG_INFO "初始状态为未安装,保持环境为未安装状态"
|
||||
# 确保软件包已卸载
|
||||
rpm -q texlive-fifinddo-info-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "清理残留安装"
|
||||
dnf remove -y texlive-fifinddo-info-doc
|
||||
fi
|
||||
else
|
||||
LOG_INFO "初始状态为已安装,恢复安装状态"
|
||||
dnf install -y texlive-fifinddo-info-doc
|
||||
CHECK_RESULT $? 0 0 "恢复软件包安装失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证 texlive-fifinddo-info-doc 软件包的核心文档内容(如手册、示例文件)在安装后是否可被正常访问和读取。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-fifinddo-info-doc软件包
|
||||
LOG_INFO "开始测试:验证texlive-fifinddo-info-doc软件包文档可访问性"
|
||||
LOG_INFO "步骤1:检查软件包是否已安装"
|
||||
if dnf list installed texlive-fifinddo-info-doc &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在texlive-fifinddo-info-doc软件包"
|
||||
if ! dnf list available texlive-fifinddo-info-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在texlive-fifinddo-info-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-fifinddo-info-doc软件包"
|
||||
dnf install -y texlive-fifinddo-info-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-fifinddo-info-doc失败"
|
||||
fi
|
||||
|
||||
# 获取软件包安装的文档文件列表
|
||||
LOG_INFO "步骤4:获取texlive-fifinddo-info-doc软件包文档文件列表"
|
||||
DOC_FILES=$(rpm -ql texlive-fifinddo-info-doc | grep -E "\.(pdf|txt|md|html|tex)$")
|
||||
if [ -z "$DOC_FILES" ]; then
|
||||
LOG_ERROR "未找到texlive-fifinddo-info-doc软件包的文档文件"
|
||||
CHECK_RESULT 1 0 0 "未找到文档文件"
|
||||
fi
|
||||
|
||||
# 测试文档文件的可访问性
|
||||
LOG_INFO "步骤5:验证文档文件可访问性和可读性"
|
||||
FAILED_FILES=""
|
||||
for file in $DOC_FILES; do
|
||||
if [ -f "$file" ]; then
|
||||
# 检查文件是否可读
|
||||
if [ ! -r "$file" ]; then
|
||||
LOG_ERROR "文件不可读: $file"
|
||||
FAILED_FILES="$FAILED_FILES $file"
|
||||
fi
|
||||
# 尝试读取文件头部内容
|
||||
head -c 100 "$file" >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "文件读取失败: $file"
|
||||
FAILED_FILES="$FAILED_FILES $file"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文件不存在: $file"
|
||||
FAILED_FILES="$FAILED_FILES $file"
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查测试结果
|
||||
if [ -n "$FAILED_FILES" ]; then
|
||||
LOG_ERROR "以下文档文件访问失败: $FAILED_FILES"
|
||||
CHECK_RESULT 1 0 0 "文档文件访问测试失败"
|
||||
else
|
||||
LOG_INFO "所有文档文件均可正常访问和读取"
|
||||
CHECK_RESULT 0 0 0 "文档文件访问测试成功"
|
||||
fi
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "步骤6:清理测试环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试安装的texlive-fifinddo-info-doc软件包"
|
||||
dnf remove -y texlive-fifinddo-info-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-fifinddo-info-doc失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包安装功能,验证能否成功安装umockdev
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已安装umockdev
|
||||
LOG_INFO "检查umockdev是否已安装"
|
||||
rpm -q umockdev > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "umockdev已安装,标记为安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "umockdev未安装,标记为未安装状态"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有umockdev软件包
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
dnf list available umockdev > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查dnf工具是否可用
|
||||
LOG_INFO "检查dnf工具是否可用"
|
||||
which dnf > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dnf工具不可用"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装umockdev软件包"
|
||||
dnf install -y umockdev > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
LOG_INFO "umockdev安装成功"
|
||||
fi
|
||||
|
||||
# 验证umockdev安装是否成功
|
||||
LOG_INFO "验证umockdev安装是否成功"
|
||||
rpm -q umockdev > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "umockdev安装验证失败"
|
||||
|
||||
# 测试umockdev基本功能
|
||||
LOG_INFO "测试umockdev基本功能"
|
||||
umockdev --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "umockdev版本检查失败"
|
||||
|
||||
# 如果之前未安装,则卸载umockdev
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
LOG_INFO "umockdev卸载成功"
|
||||
fi
|
||||
|
||||
# 最终环境检查
|
||||
LOG_INFO "最终环境检查"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
rpm -q umockdev > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "环境清理失败,umockdev仍然存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "环境已恢复,umockdev未安装"
|
||||
fi
|
||||
else
|
||||
rpm -q umockdev > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "环境异常,umockdev丢失"
|
||||
LOG_INFO "环境已保持,umockdev仍然安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试umockdev-record命令基本记录功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "1. 检查umockdev软件包是否在yum源中"
|
||||
if ! dnf list umockdev 2>/dev/null | grep -q umockdev; then
|
||||
LOG_ERROR "umockdev软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查umockdev-record命令是否支持基本参数"
|
||||
if ! umockdev-record --help 2>/dev/null | grep -q "record"; then
|
||||
LOG_ERROR "umockdev-record命令不支持基本参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "3. 检查系统是否已安装umockdev软件包"
|
||||
if rpm -q umockdev >/dev/null 2>&1; then
|
||||
LOG_INFO "umockdev软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "umockdev软件包未安装,开始安装"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev软件包失败"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 测试umockdev-record命令基本记录功能"
|
||||
umockdev-record --help
|
||||
CHECK_RESULT $? 0 0 "umockdev-record命令基本功能测试失败"
|
||||
|
||||
LOG_INFO "5. 清理测试环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试安装的umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev软件包失败"
|
||||
else
|
||||
LOG_INFO "保持原有umockdev软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "6. 测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试umockdev-record命令帮助信息显示
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试umockdev-record命令帮助信息显示"
|
||||
LOG_INFO "步骤1: 检查umockdev软件包是否已安装"
|
||||
if rpm -q umockdev &> /dev/null; then
|
||||
LOG_INFO "umockdev软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "umockdev软件包未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
LOG_INFO "步骤2: 检查yum源中是否有umockdev软件包"
|
||||
if ! dnf list available umockdev &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3: 安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev软件包失败"
|
||||
fi
|
||||
LOG_INFO "步骤4: 检查umockdev-record命令是否存在"
|
||||
if ! command -v umockdev-record &> /dev/null; then
|
||||
LOG_ERROR "umockdev-record命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤5: 检查umockdev-record命令是否支持--help参数"
|
||||
umockdev-record --help &> /dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "umockdev-record命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤6: 执行umockdev-record --help命令并检查输出"
|
||||
umockdev-record --help | head -5
|
||||
CHECK_RESULT $? 0 0 "执行umockdev-record --help命令失败"
|
||||
LOG_INFO "步骤7: 清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev软件包失败"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试umockdev-run命令帮助信息显示
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装umockdev软件包
|
||||
LOG_INFO "检查umockdev软件包是否已安装"
|
||||
rpm -q umockdev > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "umockdev软件包已安装,记录安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "umockdev软件包未安装,记录安装状态"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有umockdev软件包
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
dnf list available umockdev > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev软件包失败"
|
||||
fi
|
||||
|
||||
# 测试umockdev-run命令帮助信息显示
|
||||
LOG_INFO "测试umockdev-run命令帮助信息显示"
|
||||
umockdev-run --help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev-run命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行umockdev-run --help命令并检查结果
|
||||
LOG_INFO "执行umockdev-run --help命令"
|
||||
umockdev-run --help | grep -q "Usage:"
|
||||
CHECK_RESULT $? 0 0 "umockdev-run命令帮助信息显示异常"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载umockdev软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试检查umockdev版本号功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装umockdev
|
||||
LOG_INFO "检查umockdev是否已安装"
|
||||
if dnf list installed umockdev &>/dev/null; then
|
||||
LOG_INFO "umockdev已安装,标记为已安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "umockdev未安装,标记为未安装状态"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有umockdev软件包
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
if ! dnf list available umockdev &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
fi
|
||||
|
||||
# 检查umockdev版本号功能
|
||||
LOG_INFO "测试检查umockdev版本号功能"
|
||||
umockdev --version &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "umockdev版本号功能异常"
|
||||
|
||||
# 如果之前未安装,则卸载umockdev
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试umockdev-wrapper命令帮助信息显示
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置脚本执行时遇到错误立即退出
|
||||
set -e
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="umockdev"
|
||||
|
||||
# 记录脚本开始执行
|
||||
LOG_INFO "开始测试 umockdev-wrapper 命令帮助信息显示"
|
||||
|
||||
# 步骤1:检查环境是否已安装 umockdev 软件包
|
||||
LOG_INFO "步骤1:检查系统中是否已安装 $PACKAGE_NAME 软件包"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "检测到 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "检测到 $PACKAGE_NAME 未安装,将在测试前安装,测试结束后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查 yum 源中是否存在 umockdev 软件包
|
||||
LOG_INFO "步骤2:检查 yum 源中是否存在 $PACKAGE_NAME 软件包"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装 umockdev 软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤3:安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查 umockdev-wrapper 命令是否存在
|
||||
LOG_INFO "步骤4:检查 umockdev-wrapper 命令是否存在"
|
||||
if ! command -v umockdev-wrapper &>/dev/null; then
|
||||
LOG_ERROR "umockdev-wrapper 命令未找到"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试 umockdev-wrapper 命令的帮助信息显示
|
||||
LOG_INFO "步骤5:测试 umockdev-wrapper 命令的帮助信息显示"
|
||||
umockdev-wrapper --help
|
||||
CHECK_RESULT $? 0 0 "执行 umockdev-wrapper --help 失败"
|
||||
|
||||
# 步骤6:检查帮助信息中是否包含关键内容
|
||||
LOG_INFO "步骤6:检查帮助信息中是否包含关键内容"
|
||||
umockdev-wrapper --help | grep -q "usage:"
|
||||
CHECK_RESULT $? 0 0 "帮助信息中未找到 "usage:" 关键字"
|
||||
|
||||
# 步骤7:测试无效参数,预期应返回错误
|
||||
LOG_INFO "步骤7:测试无效参数,预期应返回错误"
|
||||
umockdev-wrapper --invalid-option 2>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "无效参数处理符合预期(退出码 255)"
|
||||
else
|
||||
LOG_ERROR "无效参数处理不符合预期"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤8:清理环境,如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤8:卸载 $PACKAGE_NAME 软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤8:保持 $PACKAGE_NAME 安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
# 记录脚本执行完成
|
||||
LOG_INFO "测试完成,环境已恢复到初始状态"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试跟踪并记录指定设备的evdev事件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试跟踪并记录指定设备的evdev事件"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGES="umockdev evemu"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查软件包是否在yum源中"
|
||||
for pkg in $PACKAGES; do
|
||||
if ! dnf list available $pkg &> /dev/null; then
|
||||
LOG_ERROR "软件包 $pkg 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查环境是否已安装软件包
|
||||
LOG_INFO "检查环境是否已安装软件包"
|
||||
INSTALLED=false
|
||||
for pkg in $PACKAGES; do
|
||||
if rpm -q $pkg &> /dev/null; then
|
||||
INSTALLED=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装软件包"
|
||||
dnf install -y $PACKAGES
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 检查umockdev-record命令是否支持--evemu参数
|
||||
LOG_INFO "检查umockdev-record命令参数"
|
||||
if ! umockdev-record --help 2>&1 | grep -q "\-\-evemu"; then
|
||||
LOG_ERROR "umockdev-record命令不支持--evemu参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 模拟一个输入设备
|
||||
LOG_INFO "创建模拟输入设备"
|
||||
cat > /tmp/test_device.umockdev << EOF
|
||||
P: /devices/test/input/event0
|
||||
N: input/event0
|
||||
E: DEVNAME=/dev/input/event0
|
||||
E: DEVPATH=/devices/test/input/event0
|
||||
A: name=test device
|
||||
A: capabilities=keyboard
|
||||
EOF
|
||||
|
||||
# 使用umockdev-record记录evdev事件
|
||||
LOG_INFO "启动umockdev-record记录事件"
|
||||
timeout 5 umockdev-record --evemu /tmp/test_device.umockdev > /tmp/recorded_events.evemu 2>&1 &
|
||||
RECORD_PID=$!
|
||||
|
||||
# 等待记录进程启动
|
||||
sleep 2
|
||||
|
||||
# 模拟按键事件
|
||||
LOG_INFO "模拟按键事件"
|
||||
echo "E: 1 1 1" | evemu-event /tmp/test_device.umockdev
|
||||
|
||||
# 停止记录进程
|
||||
LOG_INFO "停止记录进程"
|
||||
kill $RECORD_PID 2>/dev/null
|
||||
wait $RECORD_PID 2>/dev/null
|
||||
|
||||
# 检查记录的事件文件
|
||||
LOG_INFO "检查记录的事件文件"
|
||||
if [ -s /tmp/recorded_events.evemu ]; then
|
||||
LOG_INFO "成功记录evdev事件"
|
||||
CHECK_RESULT $? 0 0 "记录事件文件为空"
|
||||
else
|
||||
LOG_ERROR "未记录到任何evdev事件"
|
||||
CHECK_RESULT $? 0 1 "记录事件文件为空"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/test_device.umockdev /tmp/recorded_events.evemu
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载软件包"
|
||||
dnf remove -y $PACKAGES
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试开始:测试显示帮助信息"
|
||||
|
||||
# 检查是否已安装umockdev软件包
|
||||
LOG_INFO "检查umockdev软件包是否已安装"
|
||||
if dnf list installed umockdev &>/dev/null; then
|
||||
LOG_INFO "umockdev已安装,标记为环境已安装"
|
||||
ENV_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "umockdev未安装,标记为环境未安装"
|
||||
ENV_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有umockdev软件包
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
if ! dnf search umockdev 2>/dev/null | grep -q "umockdev"; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果环境未安装,则安装软件包
|
||||
if [ $ENV_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev软件包失败"
|
||||
LOG_INFO "umockdev软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试umockdev-record命令的帮助信息
|
||||
LOG_INFO "测试umockdev-record命令的帮助信息"
|
||||
umockdev-record --help
|
||||
CHECK_RESULT $? 0 0 "执行umockdev-record --help命令失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ $ENV_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev软件包失败"
|
||||
LOG_INFO "umockdev软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "环境已安装umockdev,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试显示帮助信息"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试跟踪并记录指定设备的ioctl操作
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试umockdev-record的ioctl记录功能"
|
||||
|
||||
# 1. 检查umockdev软件包是否在yum源中
|
||||
LOG_INFO "检查umockdev软件包是否在yum源中"
|
||||
dnf list available umockdev 2>/dev/null | grep -q umockdev
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 2. 检查系统是否已安装umockdev
|
||||
LOG_INFO "检查系统是否已安装umockdev"
|
||||
if rpm -q umockdev >/dev/null 2>&1; then
|
||||
LOG_INFO "umockdev已安装,标记为已存在"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "umockdev未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 3. 如果未安装,则安装umockdev
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
fi
|
||||
|
||||
# 4. 检查umockdev-record命令是否支持ioctl参数
|
||||
LOG_INFO "检查umockdev-record命令是否支持ioctl参数"
|
||||
umockdev-record --help 2>&1 | grep -q -- "--ioctl"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev-record命令不支持ioctl参数"
|
||||
# 清理环境
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 5. 创建一个虚拟设备进行测试
|
||||
LOG_INFO "创建一个虚拟设备进行测试"
|
||||
umockdev-wrapper lsusb > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "创建虚拟设备失败"
|
||||
|
||||
# 6. 记录指定设备的ioctl操作
|
||||
LOG_INFO "开始记录指定设备的ioctl操作"
|
||||
umockdev-record --ioctl /dev/null 2>&1 &
|
||||
RECORD_PID=$!
|
||||
sleep 2
|
||||
kill $RECORD_PID 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "记录ioctl操作失败"
|
||||
|
||||
# 7. 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
else
|
||||
LOG_INFO "umockdev软件包在测试前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "umockdev-record ioctl功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试跟踪并记录指定设备的读写操作
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试跟踪并记录指定设备的读写操作"
|
||||
|
||||
# 检查是否已安装umockdev
|
||||
if command -v umockdev-record >/dev/null 2>&1; then
|
||||
LOG_INFO "umockdev已经安装,脚本结束将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "umockdev未安装,将进行安装和测试"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有umockdev软件包
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
if ! dnf list available umockdev 2>/dev/null | grep -q umockdev; then
|
||||
LOG_ERROR "yum源中没有找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
fi
|
||||
|
||||
# 检查umockdev-record命令的参数支持
|
||||
LOG_INFO "检查umockdev-record命令的参数支持"
|
||||
if ! umockdev-record --help 2>&1 | grep -q "\-\-device"; then
|
||||
LOG_ERROR "umockdev-record不支持--device参数"
|
||||
# 如果之前是未安装状态,需要卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
dnf remove -y umockdev
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 模拟一个设备(例如使用虚拟设备/dev/null)
|
||||
LOG_INFO "模拟跟踪并记录指定设备(/dev/null)的读写操作"
|
||||
umockdev-record --device /dev/null --output test_record.umockdev &
|
||||
record_pid=$!
|
||||
sleep 2
|
||||
|
||||
# 模拟对设备的读写操作
|
||||
LOG_INFO "执行对设备的读写操作"
|
||||
cat /dev/null > /dev/null 2>&1
|
||||
echo "test" > /dev/null 2>&1
|
||||
|
||||
# 停止记录
|
||||
kill $record_pid 2>/dev/null
|
||||
wait $record_pid 2>/dev/null
|
||||
|
||||
# 检查记录文件是否生成
|
||||
LOG_INFO "检查记录文件是否生成"
|
||||
if [ -f test_record.umockdev ]; then
|
||||
LOG_INFO "记录文件生成成功"
|
||||
rm -f test_record.umockdev
|
||||
else
|
||||
LOG_ERROR "记录文件生成失败"
|
||||
CHECK_RESULT 1 0 0 "记录文件未生成"
|
||||
fi
|
||||
|
||||
# 环境恢复:如果之前未安装,则卸载umockdev
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试跟踪并记录指定设备的读写操作"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试加载设备描述文件到测试床
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试加载设备描述文件到测试床"
|
||||
|
||||
# 检查yum源中是否有umockdev软件包
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
dnf list available umockdev &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "yum源中没有umockdev软件包,测试无法继续"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装umockdev
|
||||
LOG_INFO "检查是否已安装umockdev"
|
||||
if rpm -q umockdev &>/dev/null; then
|
||||
LOG_INFO "umockdev已安装,标记为需要保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "umockdev未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
fi
|
||||
|
||||
# 检查umockdev-run命令是否存在
|
||||
LOG_INFO "检查umockdev-run命令是否存在"
|
||||
which umockdev-run &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "umockdev-run命令不存在"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev-run命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 准备一个简单的设备描述文件
|
||||
LOG_INFO "创建测试用的设备描述文件"
|
||||
cat > /tmp/test_device.umockdev << EOF
|
||||
P: /devices/test
|
||||
N: test0
|
||||
E: ID_MODEL=TestDevice
|
||||
E: SUBSYSTEM=test
|
||||
A: power/control=auto
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建设备描述文件失败"
|
||||
|
||||
# 测试加载设备描述文件到测试床
|
||||
LOG_INFO "测试加载设备描述文件到测试床"
|
||||
umockdev-run --device /tmp/test_device.umockdev echo "设备加载测试"
|
||||
CHECK_RESULT $? 0 0 "加载设备描述文件到测试床失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/test_device.umockdev
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 如果测试开始时未安装,则在测试结束后卸载
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
else
|
||||
LOG_INFO "保持umockdev安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试加载设备描述文件到测试床
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试加载设备描述文件到测试床"
|
||||
|
||||
# 检查umockdev软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查umockdev软件包是否在yum源中"
|
||||
dnf list available umockdev 2>/dev/null | grep -q umockdev
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查umockdev-run命令是否支持--device参数
|
||||
LOG_INFO "步骤2:检查umockdev-run命令是否支持--device参数"
|
||||
umockdev-run --help 2>&1 | grep -q -- "--device"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev-run命令不支持--device参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断umockdev是否已安装
|
||||
LOG_INFO "步骤3:判断umockdev是否已安装"
|
||||
if rpm -q umockdev >/dev/null 2>&1; then
|
||||
LOG_INFO "umockdev已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "umockdev未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤4:安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
fi
|
||||
|
||||
# 创建测试用的设备描述文件
|
||||
LOG_INFO "步骤5:创建测试用的设备描述文件"
|
||||
cat > /tmp/test_device.umockdev << EOF
|
||||
P: /devices/test/device
|
||||
N: test_device
|
||||
E: ID_MODEL=TestDevice
|
||||
E: SUBSYSTEM=test
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建设备描述文件失败"
|
||||
|
||||
# 使用umockdev-run加载设备描述文件
|
||||
LOG_INFO "步骤6:使用umockdev-run加载设备描述文件"
|
||||
umockdev-run --device /tmp/test_device.umockdev ls /sys/class/test/test_device 2>&1
|
||||
CHECK_RESULT $? 0 0 "加载设备描述文件失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "步骤7:清理测试文件"
|
||||
rm -f /tmp/test_device.umockdev
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载umockdev
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤8:卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试加载设备描述文件到测试床"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试加载evemu事件文件到测试床
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试加载evemu事件文件到测试床"
|
||||
LOG_INFO "检查环境是否已安装umockdev软件包"
|
||||
if rpm -q umockdev &> /dev/null; then
|
||||
LOG_INFO "umockdev软件包已安装,测试结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "umockdev软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
if ! dnf list available umockdev &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev软件包失败"
|
||||
fi
|
||||
LOG_INFO "检查umockdev-run命令是否存在"
|
||||
if ! command -v umockdev-run &> /dev/null; then
|
||||
LOG_ERROR "umockdev-run命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "检查umockdev-run命令是否支持-e参数"
|
||||
if ! umockdev-run --help | grep -q -- -e; then
|
||||
LOG_ERROR "umockdev-run命令不支持-e参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "准备一个evemu事件文件用于测试"
|
||||
TEST_EVEMU_FILE="/tmp/test_evemu.evemu"
|
||||
cat > "$TEST_EVEMU_FILE" << "EOF"
|
||||
# 模拟一个简单的evemu事件文件
|
||||
E: 0 0 0 0 0 0
|
||||
N: test device
|
||||
I: 0001 0001 0001 0001
|
||||
P: 0 0 0 0 0 0 0 0
|
||||
B: 0 0 0 0 0 0 0 0 0
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试evemu事件文件失败"
|
||||
LOG_INFO "测试加载evemu事件文件到测试床"
|
||||
umockdev-run -e "$TEST_EVEMU_FILE" -- echo "Test loading evemu file"
|
||||
CHECK_RESULT $? 0 0 "加载evemu事件文件到测试床失败"
|
||||
LOG_INFO "清理临时evemu事件文件"
|
||||
rm -f "$TEST_EVEMU_FILE"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev软件包失败"
|
||||
else
|
||||
LOG_INFO "保持umockdev软件包安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示帮助选项
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试显示帮助选项功能"
|
||||
LOG_INFO "步骤1: 检查umockdev软件包是否在yum源中"
|
||||
dnf list available umockdev > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "umockdev软件包在yum源中不存在"
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "umockdev软件包在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2: 检查umockdev软件包是否已安装"
|
||||
rpm -q umockdev > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "umockdev软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "umockdev软件包未安装,将在测试前安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装umockdev软件包"
|
||||
dnf install -y umockdev > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装umockdev软件包失败"
|
||||
fi
|
||||
LOG_INFO "步骤4: 执行umockdev-run --help命令"
|
||||
umockdev-run --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "umockdev-run --help命令执行失败"
|
||||
LOG_INFO "步骤5: 检查umockdev-run --help命令输出是否包含帮助信息"
|
||||
umockdev-run --help 2>&1 | grep -q "Usage:"
|
||||
CHECK_RESULT $? 0 0 "umockdev-run --help命令输出不包含帮助信息"
|
||||
LOG_INFO "步骤6: 清理环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev软件包失败"
|
||||
else
|
||||
LOG_INFO "保持umockdev软件包安装状态"
|
||||
fi
|
||||
LOG_INFO "测试显示帮助选项功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试加载ioctl转储文件到测试床
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试加载ioctl转储文件到测试床"
|
||||
|
||||
# 检查umockdev相关软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否存在umockdev相关软件包"
|
||||
if ! dnf list available umockdev 2>/dev/null | grep -q umockdev; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装umockdev
|
||||
LOG_INFO "检查系统是否已安装umockdev"
|
||||
if rpm -q umockdev >/dev/null 2>&1; then
|
||||
LOG_INFO "umockdev已安装,标记为已存在安装"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "umockdev未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
fi
|
||||
|
||||
# 检查umockdev-run命令是否存在
|
||||
LOG_INFO "检查umockdev-run命令是否存在"
|
||||
if ! command -v umockdev-run >/dev/null 2>&1; then
|
||||
LOG_ERROR "umockdev-run命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查ioctl参数是否支持
|
||||
LOG_INFO "检查umockdev-run是否支持ioctl参数"
|
||||
if ! umockdev-run --help 2>&1 | grep -q "\-\-ioctl"; then
|
||||
LOG_ERROR "umockdev-run不支持ioctl参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个临时的ioctl转储文件用于测试
|
||||
LOG_INFO "创建临时ioctl转储文件"
|
||||
TEMP_IOCTL_FILE=$(mktemp)
|
||||
cat > "$TEMP_IOCTL_FILE" << EOF
|
||||
P: /dev/test_device
|
||||
N: test_device
|
||||
H: main
|
||||
A: 0x12345678 = 0x00000001
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建临时ioctl转储文件失败"
|
||||
|
||||
# 测试加载ioctl转储文件
|
||||
LOG_INFO "测试加载ioctl转储文件到测试床"
|
||||
umockdev-run --ioctl="$TEMP_IOCTL_FILE" echo "测试ioctl加载"
|
||||
CHECK_RESULT $? 0 0 "加载ioctl转储文件失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f "$TEMP_IOCTL_FILE"
|
||||
CHECK_RESULT $? 0 0 "删除临时文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载umockdev
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试加载ioctl转储文件到测试床完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试加载USB数据包捕获文件到测试床
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试加载USB数据包捕获文件到测试床"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE="umockdev"
|
||||
|
||||
# 检查yum源中是否存在指定的软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包 $PACKAGE"
|
||||
if ! dnf list available $PACKAGE 2>/dev/null | grep -q $PACKAGE; then
|
||||
LOG_ERROR "软件包 $PACKAGE 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查系统是否已安装指定软件包
|
||||
LOG_INFO "步骤2:检查系统是否已安装软件包 $PACKAGE"
|
||||
if rpm -q $PACKAGE >/dev/null 2>&1; then
|
||||
LOG_INFO "软件包 $PACKAGE 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE 未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE"
|
||||
dnf install -y $PACKAGE
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE 失败"
|
||||
fi
|
||||
|
||||
# 检查 umockdev-run 命令是否支持 --help 参数
|
||||
LOG_INFO "步骤4:检查 umockdev-run 命令是否支持 --help 参数"
|
||||
umockdev-run --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "umockdev-run 命令不支持 --help 参数,或参数不存在"
|
||||
|
||||
# 模拟加载USB数据包捕获文件到测试床
|
||||
LOG_INFO "步骤5:模拟加载USB数据包捕获文件到测试床"
|
||||
umockdev-run --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "加载USB数据包捕获文件到测试床失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤6:卸载测试过程中安装的软件包 $PACKAGE"
|
||||
dnf remove -y $PACKAGE
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE 失败"
|
||||
else
|
||||
LOG_INFO "步骤6:测试前已安装软件包 $PACKAGE,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试加载USB数据包捕获文件到测试床"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试加载脚本文件到测试床
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:测试加载脚本文件到测试床"
|
||||
|
||||
LOG_INFO "步骤1:检查umockdev和umockdev-run软件包是否在yum源中"
|
||||
if ! dnf list available umockdev umockdev-run &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到umockdev或umockdev-run软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装umockdev和umockdev-run"
|
||||
if rpm -q umockdev umockdev-run &>/dev/null; then
|
||||
LOG_INFO "umockdev和umockdev-run已安装,标记为已存在"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "umockdev和umockdev-run未安装,标记为需要安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装umockdev和umockdev-run软件包"
|
||||
dnf install -y umockdev umockdev-run
|
||||
CHECK_RESULT $? 0 0 "安装umockdev和umockdev-run失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查umockdev-run命令参数是否支持"
|
||||
if ! umockdev-run --help | grep -q "SCRIPT"; then
|
||||
LOG_ERROR "umockdev-run命令不支持SCRIPT参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:创建测试脚本文件"
|
||||
TEST_SCRIPT="/tmp/test_script.sh"
|
||||
cat > "$TEST_SCRIPT" << "EOF"
|
||||
|
||||
echo "测试脚本执行成功"
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x "$TEST_SCRIPT"
|
||||
|
||||
LOG_INFO "步骤6:使用umockdev-run加载测试脚本"
|
||||
umockdev-run "$TEST_SCRIPT"
|
||||
CHECK_RESULT $? 0 0 "umockdev-run加载脚本失败"
|
||||
|
||||
LOG_INFO "步骤7:清理临时测试脚本"
|
||||
rm -f "$TEST_SCRIPT"
|
||||
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤8:卸载测试安装的软件包"
|
||||
dnf remove -y umockdev umockdev-run
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev和umockdev-run失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试加载脚本文件到测试床"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,155 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试为模拟Unix流套接字加载脚本文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中存在
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $package_name"
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: $package_name"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $package_name 在yum源中存在"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_param() {
|
||||
local command=$1
|
||||
local param=$2
|
||||
LOG_INFO "检查命令 $command 是否支持参数: $param"
|
||||
# 这里以umockdev-run为例,检查是否支持--help参数
|
||||
if [ "$param" = "--help" ]; then
|
||||
$command --help &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数: $param"
|
||||
exit 255
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未知参数: $param"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $command 支持参数: $param"
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "安装软件包: $package_name"
|
||||
dnf install -y "$package_name" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "卸载软件包: $package_name"
|
||||
dnf remove -y "$package_name" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 卸载成功"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查软件包 $package_name 是否已安装"
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $package_name 已安装"
|
||||
return 0
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试: 模拟Unix流套接字加载脚本文件"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="umockdev"
|
||||
|
||||
# 检查软件包是否在yum源中存在
|
||||
check_package_in_repo "$PACKAGE_NAME"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
local need_cleanup=0
|
||||
if check_package_installed "$PACKAGE_NAME"; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后保持安装状态"
|
||||
need_cleanup=0
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,测试前安装,测试后卸载"
|
||||
need_cleanup=1
|
||||
install_package "$PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_param "umockdev-run" "--help"
|
||||
|
||||
# 测试umockdev-run命令
|
||||
LOG_INFO "测试umockdev-run命令"
|
||||
umockdev-run --help
|
||||
CHECK_RESULT $? 0 0 "umockdev-run命令执行失败"
|
||||
|
||||
# 模拟Unix流套接字加载脚本文件
|
||||
LOG_INFO "模拟Unix流套接字加载脚本文件"
|
||||
# 创建临时脚本文件
|
||||
TEMP_SCRIPT="/tmp/test_umockdev_script.sh"
|
||||
cat > "$TEMP_SCRIPT" << "EOF"
|
||||
|
||||
echo "模拟Unix流套接字脚本执行成功"
|
||||
EOF
|
||||
chmod +x "$TEMP_SCRIPT"
|
||||
|
||||
# 使用umockdev-run执行脚本
|
||||
LOG_INFO "使用umockdev-run执行脚本"
|
||||
umockdev-run "$TEMP_SCRIPT"
|
||||
CHECK_RESULT $? 0 0 "模拟Unix流套接字加载脚本文件失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f "$TEMP_SCRIPT"
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 如果测试前未安装,测试后卸载软件包
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
uninstall_package "$PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: 模拟Unix流套接字加载脚本文件"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,126 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试为模拟Unix流套接字加载脚本文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
umockdev_package="umockdev"
|
||||
umockdev_tool="umockdev-run"
|
||||
test_file="test_unix_stream.umockdev"
|
||||
test_socket="/tmp/test_socket"
|
||||
|
||||
LOG_INFO "开始测试:模拟Unix流套接字加载脚本文件"
|
||||
LOG_INFO "步骤1: 检查umockdev软件包是否已安装"
|
||||
if ! dnf list installed "$umockdev_package" &>/dev/null; then
|
||||
LOG_INFO "umockdev未安装,将进行安装"
|
||||
installed_during_test=1
|
||||
else
|
||||
LOG_INFO "umockdev已安装,测试结束后将保持安装状态"
|
||||
installed_during_test=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否有umockdev软件包"
|
||||
if ! dnf list available "$umockdev_package" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [[ $installed_during_test -eq 1 ]]; then
|
||||
LOG_INFO "步骤3: 安装umockdev软件包"
|
||||
dnf install -y "$umockdev_package"
|
||||
CHECK_RESULT $? 0 0 "安装umockdev软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查umockdev-run命令是否支持--script参数"
|
||||
if ! $umockdev_tool --help 2>&1 | grep -q "\-\-script"; then
|
||||
LOG_ERROR "umockdev-run命令不支持--script参数"
|
||||
if [[ $installed_during_test -eq 1 ]]; then
|
||||
dnf remove -y "$umockdev_package"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 创建模拟Unix流套接字的umockdev脚本文件"
|
||||
cat > "$test_file" << "EOF"
|
||||
(script
|
||||
(allow unix-stream (connect (to "/tmp/test_socket")))
|
||||
)
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建umockdev脚本文件失败"
|
||||
|
||||
LOG_INFO "步骤6: 在后台启动一个简单的Unix域套接字服务器"
|
||||
python3 -c "
|
||||
import socket
|
||||
import os
|
||||
import time
|
||||
server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
if os.path.exists("$test_socket"):
|
||||
os.unlink("$test_socket")
|
||||
server.bind("$test_socket")
|
||||
server.listen(1)
|
||||
def handle_client():
|
||||
conn, addr = server.accept()
|
||||
conn.send(b"Hello from server\\n")
|
||||
conn.close()
|
||||
import threading
|
||||
thread = threading.Thread(target=handle_client)
|
||||
thread.daemon = True
|
||||
thread.start()
|
||||
time.sleep(2)
|
||||
" &
|
||||
server_pid=$!
|
||||
sleep 1
|
||||
|
||||
LOG_INFO "步骤7: 使用umockdev-run加载脚本并尝试连接Unix套接字"
|
||||
output=$($umockdev_tool --script "$test_file" -- bash -c "timeout 2 python3 -c \"
|
||||
import socket
|
||||
client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
try:
|
||||
client.connect("$test_socket")
|
||||
data = client.recv(1024)
|
||||
print(data.decode(), end="")
|
||||
client.close()
|
||||
print("SUCCESS")
|
||||
except Exception as e:
|
||||
print("FAILURE:", e)
|
||||
\" 2>&1")
|
||||
|
||||
echo "$output" | grep -q "SUCCESS"
|
||||
CHECK_RESULT $? 0 0 "使用umockdev-run模拟连接Unix流套接字失败。输出:$output"
|
||||
|
||||
LOG_INFO "步骤8: 清理临时文件"
|
||||
rm -f "$test_file"
|
||||
CHECK_RESULT $? 0 0 "删除umockdev脚本文件失败"
|
||||
rm -f "$test_socket"
|
||||
if ps -p $server_pid > /dev/null 2>&1; then
|
||||
kill $server_pid 2>/dev/null
|
||||
fi
|
||||
|
||||
if [[ $installed_during_test -eq 1 ]]; then
|
||||
LOG_INFO "步骤9: 卸载测试期间安装的umockdev软件包"
|
||||
dnf remove -y "$umockdev_package"
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev软件包失败"
|
||||
else
|
||||
LOG_INFO "步骤9: 测试前已安装umockdev,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:模拟Unix流套接字加载脚本文件成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试输出版本信息并退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装umockdev
|
||||
LOG_INFO "检查umockdev是否已安装"
|
||||
if dnf list installed | grep -q umockdev; then
|
||||
LOG_INFO "umockdev已安装,记录当前状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "umockdev未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有umockdev软件包
|
||||
LOG_INFO "检查yum源中是否有umockdev软件包"
|
||||
if ! dnf list available umockdev 2>/dev/null | grep -q umockdev; then
|
||||
LOG_ERROR "yum源中未找到umockdev软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装umockdev
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装umockdev软件包"
|
||||
dnf install -y umockdev
|
||||
CHECK_RESULT $? 0 0 "安装umockdev失败"
|
||||
fi
|
||||
|
||||
# 测试输出版本信息并退出
|
||||
LOG_INFO "测试umockdev-run --version命令"
|
||||
umockdev-run --version
|
||||
CHECK_RESULT $? 0 0 "umockdev-run --version命令执行失败"
|
||||
|
||||
# 如果之前未安装,则在测试结束后卸载umockdev
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载umockdev软件包"
|
||||
dnf remove -y umockdev
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev失败"
|
||||
else
|
||||
LOG_INFO "保持umockdev安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试以调试模式运行程序
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试以调试模式运行程序"
|
||||
LOG_INFO "步骤1: 检查umockdev和umockdev-wrapper软件包是否在yum源中"
|
||||
dnf list available umockdev umockdev-wrapper > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到umockdev或umockdev-wrapper软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查是否已安装umockdev和umockdev-wrapper"
|
||||
if rpm -q umockdev > /dev/null 2>&1 && rpm -q umockdev-wrapper > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将安装软件包作为测试步骤"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装umockdev和umockdev-wrapper软件包"
|
||||
dnf install -y umockdev umockdev-wrapper
|
||||
CHECK_RESULT $? 0 0 "安装umockdev和umockdev-wrapper失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查umockdev-wrapper命令是否支持--debug参数"
|
||||
umockdev-wrapper --help 2>&1 | grep -q -- --debug
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev-wrapper命令不支持--debug参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 以调试模式运行umockdev-wrapper"
|
||||
umockdev-wrapper --debug echo "测试调试模式"
|
||||
CHECK_RESULT $? 0 0 "以调试模式运行umockdev-wrapper失败"
|
||||
|
||||
LOG_INFO "步骤6: 清理环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试期间安装的umockdev和umockdev-wrapper软件包"
|
||||
dnf remove -y umockdev umockdev-wrapper
|
||||
CHECK_RESULT $? 0 0 "卸载umockdev和umockdev-wrapper失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,99 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试设置记录文件的保存路径
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 初始化变量
|
||||
PACKAGE_NAME="umockdev"
|
||||
WRAPPER_NAME="umockdev-wrapper"
|
||||
LOG_INFO "开始测试设置记录文件的保存路径"
|
||||
|
||||
# 检查yum源中是否存在指定的软件包
|
||||
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}和${WRAPPER_NAME}软件包"
|
||||
if ! dnf list available ${PACKAGE_NAME} ${WRAPPER_NAME} &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}或${WRAPPER_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查软件包是否已经安装
|
||||
LOG_INFO "检查${PACKAGE_NAME}和${WRAPPER_NAME}是否已经安装"
|
||||
if rpm -q ${PACKAGE_NAME} ${WRAPPER_NAME} &>/dev/null; then
|
||||
INSTALLED="true"
|
||||
LOG_INFO "${PACKAGE_NAME}和${WRAPPER_NAME}已经安装,脚本结束后保持安装状态"
|
||||
else
|
||||
INSTALLED="false"
|
||||
LOG_INFO "${PACKAGE_NAME}和${WRAPPER_NAME}未安装,将在测试步骤中安装"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "安装${PACKAGE_NAME}和${WRAPPER_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME} ${WRAPPER_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}和${WRAPPER_NAME}失败"
|
||||
fi
|
||||
|
||||
# 测试设置记录文件的保存路径
|
||||
LOG_INFO "测试设置记录文件的保存路径"
|
||||
# 检查umockdev-wrapper命令是否支持--record参数
|
||||
LOG_INFO "检查umockdev-wrapper命令是否支持--record参数"
|
||||
if ! ${WRAPPER_NAME} --help 2>&1 | grep -q "\-\-record"; then
|
||||
LOG_ERROR "umockdev-wrapper命令不支持--record参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建临时记录文件路径
|
||||
RECORD_FILE="/tmp/test_record.log"
|
||||
LOG_INFO "创建临时记录文件:${RECORD_FILE}"
|
||||
touch ${RECORD_FILE}
|
||||
CHECK_RESULT $? 0 0 "创建临时记录文件失败"
|
||||
|
||||
# 执行umockdev-wrapper命令并设置记录文件路径
|
||||
LOG_INFO "执行umockdev-wrapper命令并设置记录文件路径"
|
||||
${WRAPPER_NAME} --record=${RECORD_FILE} ls
|
||||
CHECK_RESULT $? 0 0 "执行umockdev-wrapper命令失败"
|
||||
|
||||
# 检查记录文件是否生成并包含内容
|
||||
LOG_INFO "检查记录文件是否生成并包含内容"
|
||||
if [ -s ${RECORD_FILE} ]; then
|
||||
LOG_INFO "记录文件生成成功并包含内容"
|
||||
else
|
||||
LOG_ERROR "记录文件生成失败或为空"
|
||||
CHECK_RESULT 1 0 0 "记录文件生成失败或为空"
|
||||
fi
|
||||
|
||||
# 清理临时记录文件
|
||||
LOG_INFO "清理临时记录文件"
|
||||
rm -f ${RECORD_FILE}
|
||||
CHECK_RESULT $? 0 0 "清理临时记录文件失败"
|
||||
|
||||
# 如果脚本开始时未安装软件包,则在测试结束后卸载
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}和${WRAPPER_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} ${WRAPPER_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}和${WRAPPER_NAME}失败"
|
||||
LOG_INFO "已卸载${PACKAGE_NAME}和${WRAPPER_NAME}软件包,环境恢复到之前状态"
|
||||
else
|
||||
LOG_INFO "保持${PACKAGE_NAME}和${WRAPPER_NAME}软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试设置记录文件的保存路径完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,186 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试记录来自被测试程序的请求
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 全局变量定义
|
||||
PACKAGE_NAME="umockdev umockdev-wrapper"
|
||||
LOG_FILE="/tmp/test_umockdev_umockdev-wrapper_r.log"
|
||||
|
||||
# 清理函数
|
||||
cleanup() {
|
||||
LOG_INFO "开始清理环境"
|
||||
# 如果测试前未安装,则卸载安装的软件包
|
||||
if [ "$originally_installed" -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y $PACKAGE_NAME > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
# 删除测试创建的日志文件
|
||||
rm -f $LOG_FILE
|
||||
LOG_INFO "环境清理完成"
|
||||
}
|
||||
|
||||
# 错误处理
|
||||
trap cleanup EXIT
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_availability() {
|
||||
LOG_INFO "检查yum源中是否存在软件包: $PACKAGE_NAME"
|
||||
for pkg in $PACKAGE_NAME; do
|
||||
dnf list available $pkg > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $pkg 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
done
|
||||
LOG_INFO "所有软件包在yum源中都可用"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_installed() {
|
||||
LOG_INFO "检查软件包是否已安装"
|
||||
originally_installed=1
|
||||
for pkg in $PACKAGE_NAME; do
|
||||
rpm -q $pkg > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
originally_installed=0
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $originally_installed -eq 1 ]; then
|
||||
LOG_INFO "软件包已经安装,测试后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "软件包未安装,测试后将卸载"
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_packages() {
|
||||
LOG_INFO "开始安装软件包"
|
||||
dnf install -y $PACKAGE_NAME > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
}
|
||||
|
||||
# 检查命令参数
|
||||
check_command_parameters() {
|
||||
LOG_INFO "检查umockdev命令参数"
|
||||
|
||||
# 检查umockdev --help是否正常工作
|
||||
umockdev --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "umockdev --help 执行失败"
|
||||
|
||||
# 检查不支持的参数
|
||||
LOG_INFO "检查不支持的参数"
|
||||
umockdev --invalid-parameter > /dev/null 2>&1
|
||||
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
|
||||
LOG_ERROR "不支持的参数检查失败"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "参数检查通过"
|
||||
}
|
||||
|
||||
# 测试记录请求功能
|
||||
test_record_requests() {
|
||||
LOG_INFO "开始测试记录来自被测试程序的请求"
|
||||
|
||||
# 创建测试设备
|
||||
LOG_INFO "创建虚拟测试设备"
|
||||
cat > /tmp/test_device.umockdev << EOF
|
||||
P: /devices/test
|
||||
N: test0
|
||||
E: ID_MODEL=TestDevice
|
||||
E: ID_VENDOR=TestVendor
|
||||
EOF
|
||||
|
||||
# 启动umockdev-record记录请求
|
||||
LOG_INFO "启动umockdev-record记录请求"
|
||||
timeout 5 umockdev-record --device /tmp/test_device.umockdev --output /tmp/recorded.umockdev &
|
||||
record_pid=$!
|
||||
|
||||
# 等待记录程序启动
|
||||
sleep 2
|
||||
|
||||
# 使用umockdev-run运行测试程序
|
||||
LOG_INFO "运行测试程序生成请求"
|
||||
timeout 3 umockdev-run --device /tmp/test_device.umockdev lsusb > /dev/null 2>&1
|
||||
|
||||
# 等待记录完成
|
||||
wait $record_pid 2>/dev/null
|
||||
record_status=$?
|
||||
|
||||
# 检查记录文件是否创建
|
||||
if [ -f /tmp/recorded.umockdev ]; then
|
||||
LOG_INFO "请求记录文件已创建"
|
||||
# 检查记录文件内容
|
||||
if grep -q "TestDevice\|TestVendor" /tmp/recorded.umockdev 2>/dev/null; then
|
||||
LOG_INFO "成功记录到设备信息"
|
||||
CHECK_RESULT 0 0 0 "请求记录测试成功"
|
||||
else
|
||||
LOG_ERROR "记录文件内容不正确"
|
||||
CHECK_RESULT 1 0 0 "请求记录测试失败"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "请求记录文件未创建"
|
||||
CHECK_RESULT 1 0 0 "请求记录测试失败"
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
rm -f /tmp/test_device.umockdev /tmp/recorded.umockdev
|
||||
}
|
||||
|
||||
# 主测试流程
|
||||
main() {
|
||||
LOG_INFO "开始测试: 测试记录来自被测试程序的请求"
|
||||
|
||||
# 步骤1: 检查软件包是否在yum源中
|
||||
check_package_availability
|
||||
|
||||
# 步骤2: 检查当前安装状态
|
||||
check_installed
|
||||
|
||||
# 步骤3: 如果未安装则安装
|
||||
if [ "$originally_installed" -eq 0 ]; then
|
||||
install_packages
|
||||
fi
|
||||
|
||||
# 步骤4: 检查命令参数
|
||||
check_command_parameters
|
||||
|
||||
# 步骤5: 测试记录请求功能
|
||||
test_record_requests
|
||||
|
||||
# 步骤6: 测试远程执行(如果配置了远程节点)
|
||||
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
|
||||
LOG_INFO "在第二个服务器上测试基本功能"
|
||||
SSH_CMD "which umockdev" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
CHECK_RESULT $? 0 0 "远程服务器上umockdev命令不存在"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行主测试
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试以详细模式运行程序
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:测试以详细模式运行程序"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包是否在yum源中"
|
||||
if ! dnf list available umockdev umockdev-wrapper 2>/dev/null | grep -q "umockdev"; then
|
||||
LOG_ERROR "软件包umockdev不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available umockdev umockdev-wrapper 2>/dev/null | grep -q "umockdev-wrapper"; then
|
||||
LOG_ERROR "软件包umockdev-wrapper不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查是否已安装umockdev和umockdev-wrapper"
|
||||
if rpm -q umockdev >/dev/null 2>&1 && rpm -q umockdev-wrapper >/dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装umockdev和umockdev-wrapper"
|
||||
dnf install -y umockdev umockdev-wrapper
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 测试以详细模式运行程序
|
||||
LOG_INFO "测试以详细模式运行程序"
|
||||
umockdev-wrapper --help 2>&1 | grep -q -- "--verbose"
|
||||
CHECK_RESULT $? 0 0 "参数--verbose不存在或不支持"
|
||||
|
||||
umockdev-wrapper --verbose
|
||||
CHECK_RESULT $? 0 0 "以详细模式运行程序失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载umockdev和umockdev-wrapper"
|
||||
dnf remove -y umockdev umockdev-wrapper
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示 umockdev-wrapper 的版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出(可选,但符合日志规范)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 测试包名
|
||||
PACKAGE_NAME="umockdev-wrapper"
|
||||
|
||||
# 步骤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是否已安装"
|
||||
INSTALLED=0
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME未安装,将在测试步骤中安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "3. 安装$PACKAGE_NAME软件包"
|
||||
dnf install -y "$PACKAGE_NAME" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查umockdev-wrapper命令是否存在
|
||||
LOG_INFO "4. 检查umockdev-wrapper命令是否存在"
|
||||
command -v umockdev-wrapper &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "umockdev-wrapper命令不存在"
|
||||
|
||||
# 步骤5:检查是否支持--version参数
|
||||
LOG_INFO "5. 检查umockdev-wrapper是否支持--version参数"
|
||||
umockdev-wrapper --help 2>&1 | grep -q "\-\-version"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "umockdev-wrapper不支持--version参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:执行命令并检查结果
|
||||
LOG_INFO "6. 执行umockdev-wrapper --version命令"
|
||||
umockdev-wrapper --version
|
||||
CHECK_RESULT $? 0 0 "执行umockdev-wrapper --version失败"
|
||||
|
||||
# 步骤7:环境恢复
|
||||
LOG_INFO "7. 恢复测试环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的$PACKAGE_NAME软件包"
|
||||
dnf remove -y "$PACKAGE_NAME" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载$PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user