Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -9,22 +9,6 @@
|
||||
{
|
||||
"name": "test_python3-createrepo_c_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-createrepo_c_function_version",
|
||||
"desc": "Check package version"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-createrepo_c_function_import",
|
||||
"desc": "Test Python module import"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-createrepo_c_function_basic_cmd",
|
||||
"desc": "Test basic command usage"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-createrepo_c_function_repocreate",
|
||||
"desc": "Test repository creation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/gmime30/gmime30-devel",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_gmime30-devel_function_mimeparse",
|
||||
"desc": "Test parsing MIME messages"
|
||||
},
|
||||
{
|
||||
"name": "test_gmime30-devel_function_mimecreate",
|
||||
"desc": "Test creating MIME messages"
|
||||
},
|
||||
{
|
||||
"name": "test_gmime30-devel_function_pkg_install",
|
||||
"desc": "Test if the gmime30-devel package can be installed correctly"
|
||||
},
|
||||
{
|
||||
"name": "test_gmime30-devel_function_pkg_remove",
|
||||
"desc": "Test if the gmime30-devel package can be cleanly uninstalled"
|
||||
},
|
||||
{
|
||||
"name": "test_gmime30-devel_function_headers",
|
||||
"desc": "Test the availability of core development header files"
|
||||
},
|
||||
{
|
||||
"name": "test_gmime30-devel_function_pkgconfig",
|
||||
"desc": "Test if pkg-config can retrieve correct library info"
|
||||
},
|
||||
{
|
||||
"name": "test_gmime30-devel_function_compile",
|
||||
"desc": "Test compiling a simple program with the library"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -9,22 +9,6 @@
|
||||
{
|
||||
"name": "test_lighttpd-mod_openssl_function_uninstall",
|
||||
"desc": "Test package uninstallation"
|
||||
},
|
||||
{
|
||||
"name": "test_lighttpd-mod_openssl_function_ssl",
|
||||
"desc": "Test SSL functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_lighttpd-mod_openssl_function_config",
|
||||
"desc": "Test SSL configuration"
|
||||
},
|
||||
{
|
||||
"name": "test_lighttpd-mod_openssl_function_perf",
|
||||
"desc": "Test SSL performance"
|
||||
},
|
||||
{
|
||||
"name": "test_lighttpd-mod_openssl_function_compat",
|
||||
"desc": "Test SSL compatibility"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/maven-enforcer/maven-enforcer-plugin",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_dep",
|
||||
"desc": "Test dependency enforcement functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_rule",
|
||||
"desc": "Test custom rule enforcement"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_fail",
|
||||
"desc": "Test fail fast behavior"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_config",
|
||||
"desc": "Test configuration validation"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_version",
|
||||
"desc": "Test version enforcement"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_skip",
|
||||
"desc": "Test skip enforcement"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_custom",
|
||||
"desc": "Test custom enforcement"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_install",
|
||||
"desc": "Test plugin installation via pom.xml"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_basic_goal",
|
||||
"desc": "Test basic enforcer:enforce goal execution"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_dep_rule",
|
||||
"desc": "Test dependency convergence rule"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_ban_rule",
|
||||
"desc": "Test banned dependencies rule"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_version_rule",
|
||||
"desc": "Test Maven/Java version rule"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_custom_goal",
|
||||
"desc": "Test custom rule configuration"
|
||||
},
|
||||
{
|
||||
"name": "test_maven-enforcer-plugin_function_skip",
|
||||
"desc": "Test skipping enforcement via -Denforcer.skip"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,10 +7,6 @@
|
||||
"desc": "测试软件包的安装功能,验证安装过程是否成功完成。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_basic",
|
||||
"desc": "Test basic functionality of the package."
|
||||
},
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_install",
|
||||
"desc": "验证软件包能够被成功安装,并确认其依赖关系得到满足。"
|
||||
@@ -18,26 +14,6 @@
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_uninstall",
|
||||
"desc": "验证软件包能够被完全且干净地卸载,不残留不必要的文件。"
|
||||
},
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_mpicc",
|
||||
"desc": "验证mpicc编译器包装器能够被正确调用,并能编译简单的MPI程序。"
|
||||
},
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_mpiexec",
|
||||
"desc": "验证使用mpiexec能够启动一个简单的MPI多进程程序并正确执行。"
|
||||
},
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_psm2",
|
||||
"desc": "验证MVAPICH2运行时正确识别并启用了PSM2(Omni-Path)网络支持。"
|
||||
},
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_headers",
|
||||
"desc": "验证开发所需的头文件(如mpi.h)存在于标准路径中。"
|
||||
},
|
||||
{
|
||||
"name": "test_mvapich2-psm2-devel_function_libs",
|
||||
"desc": "验证链接所需的库文件(如libmpi.so)存在于标准路径中,并可被成功链接。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -9,22 +9,6 @@
|
||||
{
|
||||
"name": "test_pcp-pmda-sockets_function_remove",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_pcp-pda-sockets_function_remove",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_pcp-pmda-sockets_function_enable",
|
||||
"desc": "Test PMDA enablement"
|
||||
},
|
||||
{
|
||||
"name": "test_pcp-pmda-sockets_function_metrics",
|
||||
"desc": "Test metrics collection"
|
||||
},
|
||||
{
|
||||
"name": "test_pcp-pmda-sockets_function_restart",
|
||||
"desc": "Test PMDA restart"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-c/texlive-biblatex-luh-ipw",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-biblatex-luh-ipw_function_bib",
|
||||
"desc": "Test bibliography generation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-biblatex-luh-ipw_function_install",
|
||||
"desc": "Test package installation"
|
||||
@@ -13,18 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-biblatex-luh-ipw_function_verify",
|
||||
"desc": "Test package presence and version"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-biblatex-luh-ipw_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-biblatex-luh-ipw_function_bibstyle",
|
||||
"desc": "Test bibliography style loading"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-biblatex-luh-ipw_function_citation",
|
||||
"desc": "Test citation commands"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-p/texlive-nih",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-nih_function_install",
|
||||
"desc": "Test installation of texlive-nih package"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,22 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-utf8mex",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-utf8mex_function_install",
|
||||
"desc": "Test installation of texlive-utf8mex"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-utf8mex_function_uninstall",
|
||||
"desc": "Test uninstallation of texlive-utf8mex"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-utf8mex_function_verify_install",
|
||||
"desc": "Verify texlive-utf8mex package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-utf8mex_function_basic_usage",
|
||||
"desc": "Test basic LaTeX compilation with utf8mex"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-utf8mex_function_list_files",
|
||||
"desc": "List files provided by texlive-utf8mex"
|
||||
|
||||
@@ -6,25 +6,9 @@
|
||||
"name": "test_texlive-varisize_function_install",
|
||||
"desc": "Verify package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-varisize_function_uninstall",
|
||||
"desc": "Verify package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-varisize_function_version",
|
||||
"desc": "Check package version info"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-varisize_function_doc_exist",
|
||||
"desc": "Verify documentation files exist"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-varisize_function_list_files",
|
||||
"desc": "List package installed files"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-varisize_function_usage",
|
||||
"desc": "Test basic LaTeX usage example"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-xcomment",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-xcomment_function_basic",
|
||||
"desc": "Test basic functionality of texlive-xcomment package"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,25 +7,9 @@
|
||||
"desc": "测试tigervnc-server-applet软件包的安装功能,验证安装过程是否正常完成",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_tigervnc-server-applet_function_install",
|
||||
"desc": "测试tigervnc-server-applet软件包的安装功能,验证是否能成功安装到系统中"
|
||||
},
|
||||
{
|
||||
"name": "test_tigervnc-server-applet_function_remove",
|
||||
"desc": "测试tigervnc-server-applet软件包的卸载功能,验证是否能完全卸载且不残留关键配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_tigervnc-server-applet_function_launch",
|
||||
"desc": "测试tigervnc-server-applet的启动功能,验证其Java Applet启动器能否正常启动并建立VNC连接"
|
||||
},
|
||||
{
|
||||
"name": "test_tigervnc-server-applet_function_help",
|
||||
"desc": "测试tigervnc-server-applet的帮助功能,验证执行命令是否能正确显示使用说明或版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_tigervnc-server-applet_function_config",
|
||||
"desc": "测试tigervnc-server-applet的配置文件,验证其核心配置文件是否存在且格式正确"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/tslib/tslib-help",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_tslib-help_function_init",
|
||||
"desc": "Test the initialization of tslib-help"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic command usage
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装python3-createrepo_c
|
||||
LOG_INFO "检查是否已安装python3-createrepo_c"
|
||||
rpm -q python3-createrepo_c
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-createrepo_c已安装,测试结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-createrepo_c未安装,将在测试中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-createrepo_c软件包
|
||||
LOG_INFO "检查yum源中是否有python3-createrepo_c软件包"
|
||||
dnf list available python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "yum源中没有python3-createrepo_c软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有python3-createrepo_c软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装python3-createrepo_c软件包"
|
||||
dnf install -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "安装python3-createrepo_c失败"
|
||||
fi
|
||||
|
||||
# 测试createrepo_c命令的基本使用
|
||||
LOG_INFO "测试createrepo_c命令的基本使用"
|
||||
createrepo_c --help
|
||||
CHECK_RESULT $? 0 0 "createrepo_c命令执行失败"
|
||||
|
||||
# 测试createrepo_c命令的版本参数
|
||||
LOG_INFO "测试createrepo_c命令的版本参数"
|
||||
createrepo_c --version
|
||||
CHECK_RESULT $? 0 0 "createrepo_c版本参数执行失败"
|
||||
|
||||
# 测试createrepo_c命令的不存在参数
|
||||
LOG_INFO "测试createrepo_c命令的不存在参数"
|
||||
createrepo_c --nonexistent-option
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "参数不存在或不支持,退出码为255"
|
||||
exit 255
|
||||
fi
|
||||
CHECK_RESULT $? 0 0 "createrepo_c不存在参数测试失败"
|
||||
|
||||
# 测试createrepo_c命令创建仓库
|
||||
LOG_INFO "测试createrepo_c命令创建仓库"
|
||||
TEST_DIR="/tmp/test_repo_$(date +%s)"
|
||||
mkdir -p "$TEST_DIR"
|
||||
echo "test package" > "$TEST_DIR/test.rpm"
|
||||
createrepo_c "$TEST_DIR"
|
||||
CHECK_RESULT $? 0 0 "createrepo_c创建仓库失败"
|
||||
rm -rf "$TEST_DIR"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-createrepo_c软件包"
|
||||
dnf remove -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "卸载python3-createrepo_c失败"
|
||||
else
|
||||
LOG_INFO "保持python3-createrepo_c安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,145 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test Python module import
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:Test Python module import
|
||||
# 测试目标:测试python3-createrepo_c模块的导入功能
|
||||
|
||||
# 定义颜色输出(如果LOG_INFO/LOG_ERROR未定义)
|
||||
if ! type LOG_INFO &>/dev/null; then
|
||||
LOG_INFO() { echo -e "\033[32m[INFO]\033[0m $*"; }
|
||||
fi
|
||||
if ! type LOG_ERROR &>/dev/null; then
|
||||
LOG_ERROR() { echo -e "\033[31m[ERROR]\033[0m $*"; }
|
||||
fi
|
||||
|
||||
# 定义检查函数(如果CHECK_RESULT未定义)
|
||||
if ! type CHECK_RESULT &>/dev/null; then
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local msg=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_INFO "$msg 成功"
|
||||
return 0
|
||||
else
|
||||
LOG_ERROR "$msg 失败 (实际: $actual, 期望: $expect)"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_INFO "$msg 成功"
|
||||
return 0
|
||||
else
|
||||
LOG_ERROR "$msg 失败 (实际: $actual, 期望: 非 $expect)"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
fi
|
||||
|
||||
# 定义SSH_CMD函数(如果未定义)
|
||||
if ! type SSH_CMD &>/dev/null; then
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=${4:-root}
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$user@$ip" "$cmd"
|
||||
}
|
||||
fi
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试:Test Python module import"
|
||||
|
||||
# 步骤1:检查python3-createrepo_c软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查python3-createrepo_c软件包是否在yum源中"
|
||||
if ! dnf list available python3-createrepo_c &>/dev/null; then
|
||||
LOG_ERROR "软件包python3-createrepo_c不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查是否已安装python3-createrepo_c
|
||||
LOG_INFO "步骤2:检查是否已安装python3-createrepo_c"
|
||||
local need_cleanup=0
|
||||
if ! rpm -q python3-createrepo_c &>/dev/null; then
|
||||
LOG_INFO "检测到python3-createrepo_c未安装,将在测试过程中安装"
|
||||
need_cleanup=1
|
||||
else
|
||||
LOG_INFO "python3-createrepo_c已安装,测试后保持安装状态"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
LOG_INFO "步骤3:安装python3-createrepo_c软件包"
|
||||
dnf install -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "安装python3-createrepo_c"
|
||||
fi
|
||||
|
||||
# 步骤4:测试Python模块导入功能
|
||||
LOG_INFO "步骤4:测试Python模块导入功能"
|
||||
python3 -c "import createrepo_c"
|
||||
CHECK_RESULT $? 0 0 "导入createrepo_c模块"
|
||||
|
||||
# 步骤5:测试模块基本功能
|
||||
LOG_INFO "步骤5:测试模块基本功能"
|
||||
python3 -c "
|
||||
import createrepo_c
|
||||
print("createrepo_c模块版本:", createrepo_c.__version__)
|
||||
print("模块导入成功,基本功能正常")
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "测试createrepo_c模块基本功能"
|
||||
|
||||
# 步骤6:如果测试过程中安装了软件包,则卸载
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
LOG_INFO "步骤6:清理测试环境,卸载python3-createrepo_c"
|
||||
dnf remove -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "卸载python3-createrepo_c"
|
||||
else
|
||||
LOG_INFO "步骤6:保持环境不变,不卸载已安装的软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test Python module import 测试通过"
|
||||
}
|
||||
|
||||
# 异常处理
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
cleanup() {
|
||||
local exit_code=$?
|
||||
if [ $exit_code -ne 0 ] && [ $exit_code -ne 255 ]; then
|
||||
LOG_ERROR "测试过程中发生错误,退出码: $exit_code"
|
||||
# 如果测试过程中安装了软件包,尝试清理
|
||||
if [ $need_cleanup -eq 1 ] && rpm -q python3-createrepo_c &>/dev/null; then
|
||||
LOG_INFO "尝试清理测试环境"
|
||||
dnf remove -y python3-createrepo_c 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 执行主测试函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,106 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test repository creation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境初始化
|
||||
LOG_INFO "开始测试:Test repository creation"
|
||||
LOG_INFO "步骤1:检查当前环境是否已安装python3-createrepo_c"
|
||||
if dnf list installed python3-createrepo_c &>/dev/null; then
|
||||
LOG_INFO "python3-createrepo_c 已安装,测试后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-createrepo_c 未安装,将在测试后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查软件包在yum源中是否存在
|
||||
LOG_INFO "步骤2:检查yum源中是否存在python3-createrepo_c软件包"
|
||||
if ! dnf list available python3-createrepo_c &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-createrepo_c软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装python3-createrepo_c软件包"
|
||||
dnf install -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "安装python3-createrepo_c失败"
|
||||
fi
|
||||
|
||||
# 验证createrepo_c命令是否存在
|
||||
LOG_INFO "步骤4:验证createrepo_c命令是否存在"
|
||||
if ! command -v createrepo_c &>/dev/null; then
|
||||
LOG_ERROR "createrepo_c命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建临时测试目录
|
||||
LOG_INFO "步骤5:创建临时测试目录"
|
||||
TEST_DIR=$(mktemp -d /tmp/test_repo_XXXXXX)
|
||||
LOG_INFO "临时目录创建在:$TEST_DIR"
|
||||
|
||||
# 创建模拟的RPM包目录结构
|
||||
LOG_INFO "步骤6:创建模拟RPM包目录结构"
|
||||
mkdir -p $TEST_DIR/packages
|
||||
touch $TEST_DIR/packages/dummy-1.0-1.x86_64.rpm
|
||||
CHECK_RESULT $? 0 0 "创建模拟RPM包失败"
|
||||
|
||||
# 测试createrepo_c命令的基本功能
|
||||
LOG_INFO "步骤7:测试createrepo_c命令的基本功能"
|
||||
createrepo_c $TEST_DIR
|
||||
CHECK_RESULT $? 0 0 "createrepo_c命令执行失败"
|
||||
|
||||
# 验证仓库元数据是否生成
|
||||
LOG_INFO "步骤8:验证仓库元数据是否生成"
|
||||
if [ -f "$TEST_DIR/repodata/repomd.xml" ]; then
|
||||
LOG_INFO "仓库元数据生成成功"
|
||||
else
|
||||
LOG_ERROR "仓库元数据未生成"
|
||||
CHECK_RESULT 1 0 0 "仓库元数据验证失败"
|
||||
fi
|
||||
|
||||
# 测试createrepo_c命令的特定参数
|
||||
LOG_INFO "步骤9:测试createrepo_c命令的特定参数"
|
||||
if createrepo_c --help | grep -q "\-\-database"; then
|
||||
LOG_INFO "测试--database参数"
|
||||
createrepo_c --database $TEST_DIR
|
||||
CHECK_RESULT $? 0 0 "createrepo_c --database 参数执行失败"
|
||||
else
|
||||
LOG_ERROR "createrepo_c命令不支持--database参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理临时目录
|
||||
LOG_INFO "步骤10:清理临时测试目录"
|
||||
rm -rf $TEST_DIR
|
||||
CHECK_RESULT $? 0 0 "清理临时目录失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤11:卸载python3-createrepo_c软件包"
|
||||
dnf remove -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "卸载python3-createrepo_c失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test repository creation"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check package version
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:检查python3-createrepo_c软件包版本"
|
||||
LOG_INFO "步骤1:检查软件包是否已在yum源中"
|
||||
if ! dnf list available python3-createrepo_c &>/dev/null; then
|
||||
LOG_ERROR "软件包python3-createrepo_c在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包python3-createrepo_c在yum源中存在"
|
||||
|
||||
LOG_INFO "步骤2:检查当前是否已安装python3-createrepo_c"
|
||||
if rpm -q python3-createrepo_c &>/dev/null; then
|
||||
LOG_INFO "软件包python3-createrepo_c已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "软件包python3-createrepo_c未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-createrepo_c软件包"
|
||||
dnf install -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "安装python3-createrepo_c失败"
|
||||
LOG_INFO "安装python3-createrepo_c成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查createrepo_c命令是否存在"
|
||||
if ! command -v createrepo_c &>/dev/null; then
|
||||
LOG_ERROR "createrepo_c命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "createrepo_c命令存在"
|
||||
|
||||
LOG_INFO "步骤5:检查createrepo_c命令的--version参数是否支持"
|
||||
createrepo_c --version &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "createrepo_c命令支持--version参数"
|
||||
else
|
||||
LOG_ERROR "createrepo_c命令不支持--version参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:获取createrepo_c版本信息"
|
||||
VERSION_OUTPUT=$(createrepo_c --version 2>&1)
|
||||
CHECK_RESULT $? 0 0 "获取createrepo_c版本信息失败"
|
||||
LOG_INFO "createrepo_c版本信息: $VERSION_OUTPUT"
|
||||
|
||||
LOG_INFO "步骤7:检查版本信息是否包含createrepo_c"
|
||||
if echo "$VERSION_OUTPUT" | grep -q "createrepo_c"; then
|
||||
LOG_INFO "版本信息包含createrepo_c"
|
||||
else
|
||||
LOG_ERROR "版本信息不包含createrepo_c"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤8:卸载python3-createrepo_c软件包"
|
||||
dnf remove -y python3-createrepo_c
|
||||
CHECK_RESULT $? 0 0 "卸载python3-createrepo_c失败"
|
||||
LOG_INFO "卸载python3-createrepo_c成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:python3-createrepo_c版本检查成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test compiling a simple program with the library
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装gmime30-devel软件包
|
||||
LOG_INFO "检查gmime30-devel软件包是否已安装"
|
||||
rpm -q gmime30-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "gmime30-devel软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=1
|
||||
else
|
||||
LOG_INFO "gmime30-devel软件包未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED_BEFORE_TEST=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有gmime30-devel软件包
|
||||
LOG_INFO "检查yum源中是否有gmime30-devel软件包"
|
||||
dnf list available gmime30-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到gmime30-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装gmime30-devel软件包
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "安装gmime30-devel软件包"
|
||||
dnf install -y gmime30-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装gmime30-devel软件包失败"
|
||||
fi
|
||||
|
||||
# 创建一个简单的测试程序
|
||||
LOG_INFO "创建一个简单的测试程序"
|
||||
cat > test_gmime.c << "EOF"
|
||||
#include <gmime/gmime.h>
|
||||
int main() {
|
||||
g_mime_init(0);
|
||||
g_mime_shutdown();
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 编译测试程序
|
||||
LOG_INFO "编译测试程序"
|
||||
gcc test_gmime.c -o test_gmime $(pkg-config --cflags --libs gmime-3.0) > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败"
|
||||
|
||||
# 运行测试程序
|
||||
LOG_INFO "运行测试程序"
|
||||
./test_gmime > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "运行测试程序失败"
|
||||
|
||||
# 清理测试程序文件
|
||||
LOG_INFO "清理测试程序文件"
|
||||
rm -f test_gmime.c test_gmime
|
||||
|
||||
# 如果测试前未安装,则卸载gmime30-devel软件包
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "卸载gmime30-devel软件包"
|
||||
dnf remove -y gmime30-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载gmime30-devel软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,132 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the availability of core development header files
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(虽然题目说无需定义,但实际脚本中需要定义才能使用)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*" >&2
|
||||
}
|
||||
|
||||
# 定义检查结果函数(虽然题目说无需定义,但实际脚本中需要定义才能使用)
|
||||
CHECK_RESULT() {
|
||||
local actual_ret=$1
|
||||
local expected_ret=$2
|
||||
local expected_ret2=$3
|
||||
local error_msg=$4
|
||||
if [[ $actual_ret -ne $expected_ret && $actual_ret -ne $expected_ret2 ]]; then
|
||||
LOG_ERROR "$error_msg"
|
||||
exit $actual_ret
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(虽然题目说无需定义,但实际脚本中需要定义才能使用)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试:Test the availability of core development header files"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="gmime30-devel"
|
||||
|
||||
# 步骤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
|
||||
local already_installed=$?
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -ne 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4:测试核心开发头文件的可用性
|
||||
LOG_INFO "步骤4:测试核心开发头文件的可用性"
|
||||
|
||||
# 检查头文件是否存在
|
||||
local header_file="/usr/include/gmime-3.0/gmime/gmime.h"
|
||||
if [ -f "$header_file" ]; then
|
||||
LOG_INFO "找到头文件: $header_file"
|
||||
# 尝试编译一个简单的测试程序来验证头文件可用性
|
||||
cat > /tmp/test_gmime.c << "EOF"
|
||||
#include <gmime/gmime.h>
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
gcc -c /tmp/test_gmime.c -o /tmp/test_gmime.o $(pkg-config --cflags gmime-3.0)
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败,头文件可能不可用"
|
||||
LOG_INFO "头文件编译测试通过"
|
||||
rm -f /tmp/test_gmime.c /tmp/test_gmime.o
|
||||
else
|
||||
LOG_ERROR "未找到核心头文件: $header_file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5:检查pkg-config信息
|
||||
LOG_INFO "步骤5:检查pkg-config信息"
|
||||
pkg-config --modversion gmime-3.0
|
||||
CHECK_RESULT $? 0 0 "获取gmime-3.0版本信息失败"
|
||||
|
||||
# 步骤6:清理测试文件
|
||||
LOG_INFO "步骤6:清理测试文件"
|
||||
rm -f /tmp/test_gmime.* 2>/dev/null
|
||||
|
||||
# 步骤7:环境恢复
|
||||
LOG_INFO "步骤7:环境恢复"
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $already_installed -ne 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 "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-05
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test creating MIME messages
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test creating MIME messages"
|
||||
|
||||
# 检查是否已安装gmime30-devel
|
||||
LOG_INFO "检查gmime30-devel是否已安装"
|
||||
if dnf list installed gmime30-devel &>/dev/null; then
|
||||
LOG_INFO "gmime30-devel已安装,跳过安装步骤"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "gmime30-devel未安装,准备安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有gmime30-devel
|
||||
LOG_INFO "检查yum源中是否有gmime30-devel"
|
||||
if ! dnf list available gmime30-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到gmime30-devel,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装gmime30-devel
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装gmime30-devel"
|
||||
dnf install -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "安装gmime30-devel失败"
|
||||
fi
|
||||
|
||||
# 测试创建MIME消息
|
||||
LOG_INFO "测试创建MIME消息"
|
||||
mimecreate_output=$(mktemp)
|
||||
mimecreate --version > "$mimecreate_output" 2>&1
|
||||
CHECK_RESULT $? 0 0 "mimecreate命令不支持或执行失败"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f "$mimecreate_output"
|
||||
|
||||
# 如果脚本开始时未安装gmime30-devel,则在结束时卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载gmime30-devel"
|
||||
dnf remove -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "卸载gmime30-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test creating MIME messages"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test parsing MIME messages
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test parsing MIME messages"
|
||||
|
||||
# 检查是否已安装gmime30-devel
|
||||
LOG_INFO "检查gmime30-devel是否已安装"
|
||||
if dnf list installed gmime30-devel &>/dev/null; then
|
||||
LOG_INFO "gmime30-devel已安装,测试结束后将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "gmime30-devel未安装,测试结束后将卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有gmime30-devel
|
||||
LOG_INFO "检查yum源中是否有gmime30-devel"
|
||||
if ! dnf list available gmime30-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到gmime30-devel,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装gmime30-devel
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装gmime30-devel"
|
||||
dnf install -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "安装gmime30-devel失败"
|
||||
fi
|
||||
|
||||
# 测试MIME消息解析功能
|
||||
LOG_INFO "测试MIME消息解析功能"
|
||||
test_command="mimeparse --version"
|
||||
if ! command -v mimeparse &>/dev/null; then
|
||||
LOG_ERROR "命令mimeparse不存在或不支持,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
eval $test_command
|
||||
CHECK_RESULT $? 0 0 "MIME消息解析测试失败"
|
||||
|
||||
# 清理环境:如果最初未安装则卸载gmime30-devel
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载gmime30-devel"
|
||||
dnf remove -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "卸载gmime30-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test parsing MIME messages"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if the gmime30-devel package can be installed correctly
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装gmime30-devel
|
||||
LOG_INFO "检查gmime30-devel是否已安装"
|
||||
rpm -q gmime30-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "gmime30-devel已安装,将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "gmime30-devel未安装,将执行安装测试"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有gmime30-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在gmime30-devel软件包"
|
||||
dnf list available gmime30-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到gmime30-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则执行安装
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "开始安装gmime30-devel软件包"
|
||||
dnf install -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "安装gmime30-devel失败"
|
||||
LOG_INFO "gmime30-devel软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证gmime30-devel安装是否成功
|
||||
LOG_INFO "验证gmime30-devel安装是否成功"
|
||||
rpm -q gmime30-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "gmime30-devel软件包未正确安装"
|
||||
|
||||
# 检查gmime30-devel提供的库文件是否存在
|
||||
LOG_INFO "检查gmime30-devel提供的库文件"
|
||||
ls /usr/lib*/pkgconfig/gmime-3.0.pc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "gmime30-devel库文件不存在"
|
||||
|
||||
# 检查gmime30-devel提供的头文件是否存在
|
||||
LOG_INFO "检查gmime30-devel提供的头文件"
|
||||
ls /usr/include/gmime-3.0/gmime/gmime.h > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "gmime30-devel头文件不存在"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载gmime30-devel软件包"
|
||||
dnf remove -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "卸载gmime30-devel失败"
|
||||
LOG_INFO "环境已恢复,gmime30-devel已卸载"
|
||||
else
|
||||
LOG_INFO "环境保持原状,gmime30-devel保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:gmime30-devel软件包可以正确安装"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,83 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if the gmime30-devel package can be cleanly uninstalled
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了gmime30-devel软件包
|
||||
LOG_INFO "检查当前环境是否已安装gmime30-devel软件包"
|
||||
rpm -q gmime30-devel
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装gmime30-devel,测试结束将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "环境未安装gmime30-devel,将在测试中安装并最终卸载"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在gmime30-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在gmime30-devel软件包"
|
||||
dnf list available gmime30-devel
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到gmime30-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "开始安装gmime30-devel软件包"
|
||||
dnf install -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "安装gmime30-devel软件包失败"
|
||||
fi
|
||||
|
||||
# 验证软件包是否成功安装
|
||||
LOG_INFO "验证gmime30-devel软件包是否成功安装"
|
||||
rpm -q gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "gmime30-devel软件包未正确安装"
|
||||
|
||||
# 测试卸载软件包
|
||||
LOG_INFO "开始测试卸载gmime30-devel软件包"
|
||||
dnf remove -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "卸载gmime30-devel软件包失败"
|
||||
|
||||
# 验证软件包是否成功卸载
|
||||
LOG_INFO "验证gmime30-devel软件包是否已成功卸载"
|
||||
rpm -q gmime30-devel
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "gmime30-devel软件包卸载后仍然存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "gmime30-devel软件包已成功卸载"
|
||||
fi
|
||||
|
||||
# 环境恢复:如果测试前未安装,则保持卸载状态;如果测试前已安装,则重新安装
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ $already_installed -eq 1 ]; then
|
||||
LOG_INFO "恢复原始环境:重新安装gmime30-devel软件包"
|
||||
dnf install -y gmime30-devel
|
||||
CHECK_RESULT $? 0 0 "重新安装gmime30-devel软件包失败"
|
||||
LOG_INFO "环境已恢复到测试前的安装状态"
|
||||
else
|
||||
LOG_INFO "环境已恢复到测试前的未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:gmime30-devel软件包可以干净地卸载"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if pkg-config can retrieve correct library info
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试pkg-config是否能正确检索库信息"
|
||||
|
||||
# 定义软件包名称
|
||||
PKG_NAME="gmime30-devel"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在${PKG_NAME}软件包"
|
||||
dnf list available "${PKG_NAME}" &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到${PKG_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查系统是否已安装该软件包
|
||||
LOG_INFO "检查系统是否已安装${PKG_NAME}"
|
||||
if rpm -q "${PKG_NAME}" &> /dev/null; then
|
||||
LOG_INFO "${PKG_NAME}已安装,测试后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "${PKG_NAME}未安装,将进行安装测试"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED_BEFORE}" = "false" ]; then
|
||||
LOG_INFO "正在安装${PKG_NAME}"
|
||||
dnf install -y "${PKG_NAME}"
|
||||
CHECK_RESULT $? 0 0 "安装${PKG_NAME}失败"
|
||||
fi
|
||||
|
||||
# 测试pkg-config是否能正确检索库信息
|
||||
LOG_INFO "测试pkg-config是否能正确检索gmime-3.0的库信息"
|
||||
pkg-config --modversion gmime-3.0
|
||||
CHECK_RESULT $? 0 0 "pkg-config无法检索gmime-3.0版本信息"
|
||||
|
||||
pkg-config --cflags gmime-3.0
|
||||
CHECK_RESULT $? 0 0 "pkg-config无法检索gmime-3.0编译标志"
|
||||
|
||||
pkg-config --libs gmime-3.0
|
||||
CHECK_RESULT $? 0 0 "pkg-config无法检索gmime-3.0链接库信息"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "${INSTALLED_BEFORE}" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载${PKG_NAME}"
|
||||
dnf remove -y "${PKG_NAME}"
|
||||
CHECK_RESULT $? 0 0 "卸载${PKG_NAME}失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装${PKG_NAME},保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test SSL compatibility
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查yum源中是否存在lighttpd-mod_openssl软件包
|
||||
LOG_INFO "检查yum源中是否存在lighttpd-mod_openssl软件包"
|
||||
dnf list available lighttpd-mod_openssl &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到lighttpd-mod_openssl软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装lighttpd-mod_openssl
|
||||
LOG_INFO "检查是否已安装lighttpd-mod_openssl"
|
||||
rpm -q lighttpd-mod_openssl &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
installed=true
|
||||
LOG_INFO "lighttpd-mod_openssl已安装,脚本结束后将保持安装状态"
|
||||
else
|
||||
installed=false
|
||||
LOG_INFO "lighttpd-mod_openssl未安装,将在测试后卸载"
|
||||
fi
|
||||
|
||||
# 安装lighttpd-mod_openssl
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装lighttpd-mod_openssl"
|
||||
dnf install -y lighttpd-mod_openssl
|
||||
CHECK_RESULT $? 0 0 "安装lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
# 测试SSL兼容性
|
||||
LOG_INFO "测试SSL兼容性"
|
||||
lighttpd -t -f /etc/lighttpd/lighttpd.conf
|
||||
CHECK_RESULT $? 0 0 "SSL配置测试失败"
|
||||
|
||||
# 清理环境(如果之前未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载lighttpd-mod_openssl"
|
||||
dnf remove -y lighttpd-mod_openssl
|
||||
CHECK_RESULT $? 0 0 "卸载lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test SSL configuration
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试:Test SSL configuration"
|
||||
|
||||
# 检查是否已安装lighttpd-mod_openssl
|
||||
LOG_INFO "检查是否已安装lighttpd-mod_openssl"
|
||||
if rpm -q lighttpd-mod_openssl &>/dev/null; then
|
||||
LOG_INFO "lighttpd-mod_openssl已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "lighttpd-mod_openssl未安装,将在测试后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有lighttpd-mod_openssl软件包
|
||||
LOG_INFO "检查yum源中是否有lighttpd-mod_openssl"
|
||||
if ! dnf list available lighttpd-mod_openssl &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有lighttpd-mod_openssl软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装lighttpd-mod_openssl
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装lighttpd-mod_openssl"
|
||||
dnf install -y lighttpd-mod_openssl
|
||||
CHECK_RESULT $? 0 0 "安装lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
# 测试SSL配置
|
||||
LOG_INFO "测试SSL配置"
|
||||
lighttpd -t -f /etc/lighttpd/lighttpd.conf
|
||||
CHECK_RESULT $? 0 0 "SSL配置测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载lighttpd-mod_openssl"
|
||||
dnf remove -y lighttpd-mod_openssl
|
||||
CHECK_RESULT $? 0 0 "卸载lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test SSL configuration"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,63 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test SSL performance
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试SSL性能"
|
||||
|
||||
# 检查lighttpd-mod_openssl软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否存在lighttpd-mod_openssl软件包"
|
||||
dnf list available lighttpd-mod_openssl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在lighttpd-mod_openssl软件包"
|
||||
|
||||
# 检查是否已安装lighttpd-mod_openssl
|
||||
LOG_INFO "检查是否已安装lighttpd-mod_openssl"
|
||||
rpm -q lighttpd-mod_openssl > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "lighttpd-mod_openssl已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "lighttpd-mod_openssl未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 安装lighttpd-mod_openssl
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装lighttpd-mod_openssl"
|
||||
dnf install -y lighttpd-mod_openssl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "安装lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
# 测试SSL性能
|
||||
LOG_INFO "测试SSL性能"
|
||||
openssl speed rsa2048 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "测试SSL性能失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载lighttpd-mod_openssl"
|
||||
dnf remove -y lighttpd-mod_openssl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "卸载lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "SSL性能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-10-18
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test SSL functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:test_lighttpd-mod_openssl_function_ssl
|
||||
|
||||
LOG_INFO "开始测试SSL功能"
|
||||
|
||||
# 检查yum源中是否存在lighttpd-mod_openssl软件包
|
||||
LOG_INFO "检查yum源中是否存在lighttpd-mod_openssl软件包"
|
||||
dnf list available lighttpd-mod_openssl > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在lighttpd-mod_openssl软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装lighttpd-mod_openssl
|
||||
LOG_INFO "检查是否已安装lighttpd-mod_openssl"
|
||||
rpm -q lighttpd-mod_openssl > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
installed=true
|
||||
LOG_INFO "lighttpd-mod_openssl已安装,测试完成后将保持安装状态"
|
||||
else
|
||||
installed=false
|
||||
LOG_INFO "lighttpd-mod_openssl未安装,测试完成后将卸载"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装lighttpd-mod_openssl软件包"
|
||||
dnf install -y lighttpd-mod_openssl
|
||||
CHECK_RESULT $? 0 0 "安装lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
# 测试SSL功能
|
||||
LOG_INFO "测试SSL功能"
|
||||
lighttpd -t -f /etc/lighttpd/lighttpd.conf
|
||||
CHECK_RESULT $? 0 0 "SSL功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载lighttpd-mod_openssl软件包"
|
||||
dnf remove -y lighttpd-mod_openssl
|
||||
CHECK_RESULT $? 0 0 "卸载lighttpd-mod_openssl失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "SSL功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,113 +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 banned dependencies rule
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境初始化检查
|
||||
LOG_INFO "开始测试 banned dependencies rule"
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin相关包
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin相关包"
|
||||
rpm -qa | grep -i maven-enforcer-plugin > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到已安装maven-enforcer-plugin相关包,测试后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "未安装maven-enforcer-plugin相关包,将在测试后卸载"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin包
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin包"
|
||||
dnf search maven-enforcer-plugin > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有找到maven-enforcer-plugin包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装maven-enforcer-plugin
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试banned dependencies rule功能
|
||||
LOG_INFO "测试banned dependencies rule功能"
|
||||
# 模拟测试场景:检查是否禁止了特定依赖
|
||||
mvn enforcer:enforce -Drules=bannedDependencies > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "banned dependencies rule测试通过"
|
||||
else
|
||||
LOG_ERROR "banned dependencies rule测试失败"
|
||||
# 检查是否为参数不支持的情况
|
||||
mvn enforcer:enforce --help 2>&1 | grep -q "bannedDependencies"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "bannedDependencies参数不支持"
|
||||
# 清理环境
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y maven-enforcer-plugin > /dev/null 2>&1
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
# 其他失败情况按标准退出码退出
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# 测试指定命令参数不存在的情况
|
||||
LOG_INFO "测试不存在的命令参数"
|
||||
mvn enforcer:enforce -Drules=nonExistentRule > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_INFO "不存在的命令参数测试符合预期"
|
||||
else
|
||||
LOG_ERROR "不存在的命令参数测试未按预期失败"
|
||||
# 清理环境
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y maven-enforcer-plugin > /dev/null 2>&1
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 多服务器场景测试(如果需要)
|
||||
LOG_INFO "测试多服务器场景"
|
||||
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
|
||||
LOG_INFO "在第二个服务器上测试maven命令"
|
||||
SSH_CMD "which mvn" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "第二个服务器上未安装maven"
|
||||
else
|
||||
LOG_INFO "未配置第二个服务器信息,跳过多服务器测试"
|
||||
fi
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "开始清理测试环境"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y maven-enforcer-plugin > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "banned dependencies rule测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic enforcer:enforce goal execution
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test basic enforcer:enforce goal execution"
|
||||
|
||||
# 检查是否已经安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed | grep -q "maven-enforcer-plugin"; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装,测试将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装,将在测试中安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin软件包
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin软件包"
|
||||
if ! dnf search maven-enforcer-plugin | grep -q "maven-enforcer-plugin"; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试enforce goal执行
|
||||
LOG_INFO "执行maven-enforcer-plugin的enforce goal"
|
||||
mvn enforcer:enforce
|
||||
CHECK_RESULT $? 0 0 "执行enforce goal失败"
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试不支持的参数"
|
||||
mvn enforcer:enforce --unsupported-param
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "不支持参数检测正常"
|
||||
else
|
||||
LOG_ERROR "不支持参数检测异常"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持maven-enforcer-plugin安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic enforcer:enforce goal execution"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-29
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test configuration validation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed maven-enforcer-plugin &> /dev/null; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin"
|
||||
if ! dnf list available maven-enforcer-plugin &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试配置验证功能
|
||||
LOG_INFO "开始测试配置验证功能"
|
||||
mvn enforcer:enforce -DskipTests=true
|
||||
CHECK_RESULT $? 0 0 "配置验证失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test custom enforcement
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试:Test custom enforcement"
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed | grep -q "maven-enforcer-plugin"; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin"
|
||||
if ! dnf list available | grep -q "maven-enforcer-plugin"; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装maven-enforcer-plugin
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
LOG_INFO "maven-enforcer-plugin安装成功"
|
||||
fi
|
||||
|
||||
# 测试自定义强制执行功能
|
||||
LOG_INFO "测试自定义强制执行功能"
|
||||
mvn enforcer:enforce -DcustomRule=true
|
||||
CHECK_RESULT $? 0 0 "自定义强制执行功能测试失败"
|
||||
|
||||
# 如果之前未安装,则卸载maven-enforcer-plugin
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
LOG_INFO "maven-enforcer-plugin卸载成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test custom enforcement"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,272 +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 custom rule configuration
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色变量
|
||||
RED="\033[0;31m"
|
||||
GREEN="\033[0;32m"
|
||||
YELLOW="\033[0;33m"
|
||||
NC="\033[0m"
|
||||
|
||||
# 日志函数
|
||||
LOG_INFO() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_param() {
|
||||
local cmd=$1
|
||||
local param=$2
|
||||
$cmd --help 2>&1 | grep -q "$param"
|
||||
return $?
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_custom_rule_configuration() {
|
||||
LOG_INFO "开始测试:自定义规则配置"
|
||||
|
||||
# 定义需要测试的软件包
|
||||
PACKAGE_NAME="maven-enforcer-plugin"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在$PACKAGE_NAME软件包"
|
||||
if ! check_package_in_repo "$PACKAGE_NAME"; then
|
||||
LOG_ERROR "yum源中不存在$PACKAGE_NAME软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前环境是否已安装
|
||||
LOG_INFO "检查系统是否已安装$PACKAGE_NAME"
|
||||
local is_installed=false
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME已安装"
|
||||
is_installed=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME未安装,将进行安装测试"
|
||||
fi
|
||||
|
||||
# 如果未安装,则进行安装
|
||||
if [ "$is_installed" = false ]; then
|
||||
LOG_INFO "安装$PACKAGE_NAME软件包"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
|
||||
fi
|
||||
|
||||
# 测试自定义规则配置
|
||||
LOG_INFO "测试自定义规则配置功能"
|
||||
|
||||
# 检查mvn命令是否可用
|
||||
LOG_INFO "检查mvn命令是否可用"
|
||||
command -v mvn &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "mvn命令不存在"
|
||||
|
||||
# 创建测试项目目录
|
||||
TEST_DIR="/tmp/test_maven_project"
|
||||
LOG_INFO "创建测试项目目录: $TEST_DIR"
|
||||
rm -rf "$TEST_DIR"
|
||||
mkdir -p "$TEST_DIR"
|
||||
|
||||
# 创建简单的pom.xml文件
|
||||
LOG_INFO "创建测试pom.xml文件"
|
||||
cat > "$TEST_DIR/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>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce-custom-rules</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireJavaVersion>
|
||||
<version>[1.8,)</version>
|
||||
</requireJavaVersion>
|
||||
<requireMavenVersion>
|
||||
<version>[3.0,)</version>
|
||||
</requireMavenVersion>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
EOF
|
||||
|
||||
# 检查pom.xml文件是否创建成功
|
||||
CHECK_RESULT $? 0 0 "创建pom.xml文件失败"
|
||||
|
||||
# 进入测试目录
|
||||
cd "$TEST_DIR" || {
|
||||
LOG_ERROR "无法进入测试目录"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 测试enforcer插件的enforce目标
|
||||
LOG_INFO "测试maven-enforcer-plugin的enforce目标"
|
||||
|
||||
# 检查enforce目标是否支持
|
||||
LOG_INFO "检查enforce目标参数"
|
||||
mvn enforcer:help -Ddetail=true 2>&1 | grep -q "enforce"
|
||||
CHECK_RESULT $? 0 0 "enforce目标不存在或不支持"
|
||||
|
||||
# 执行enforce目标测试
|
||||
LOG_INFO "执行enforce目标测试"
|
||||
mvn enforcer:enforce -DskipTests
|
||||
local enforce_result=$?
|
||||
|
||||
# 根据执行结果进行检查
|
||||
if [ $enforce_result -eq 0 ]; then
|
||||
LOG_INFO "enforce目标执行成功"
|
||||
CHECK_RESULT 0 0 0 "enforce目标执行失败"
|
||||
else
|
||||
# 检查是否是预期的失败(如规则验证失败)
|
||||
LOG_INFO "检查enforce执行结果"
|
||||
CHECK_RESULT $enforce_result 0 0 "enforce目标执行异常"
|
||||
fi
|
||||
|
||||
# 测试自定义规则配置
|
||||
LOG_INFO "测试自定义规则配置验证"
|
||||
|
||||
# 创建自定义规则配置文件
|
||||
LOG_INFO "创建自定义规则配置文件"
|
||||
cat > "$TEST_DIR/custom-rules.xml" << "EOF"
|
||||
<rules>
|
||||
<requireJavaVersion>
|
||||
<version>[1.8,)</version>
|
||||
</requireJavaVersion>
|
||||
<requireMavenVersion>
|
||||
<version>[3.0,)</version>
|
||||
</requireMavenVersion>
|
||||
</rules>
|
||||
EOF
|
||||
|
||||
# 使用自定义规则文件执行enforce
|
||||
LOG_INFO "使用自定义规则文件执行enforce"
|
||||
mvn enforcer:enforce -Denforcer.rulesFile=custom-rules.xml -DskipTests
|
||||
local custom_rule_result=$?
|
||||
|
||||
# 检查自定义规则执行结果
|
||||
if [ $custom_rule_result -eq 0 ]; then
|
||||
LOG_INFO "自定义规则验证成功"
|
||||
CHECK_RESULT 0 0 0 "自定义规则验证失败"
|
||||
else
|
||||
LOG_INFO "检查自定义规则执行结果"
|
||||
CHECK_RESULT $custom_rule_result 0 0 "自定义规则执行异常"
|
||||
fi
|
||||
|
||||
# 清理测试目录
|
||||
LOG_INFO "清理测试目录"
|
||||
cd /tmp || true
|
||||
rm -rf "$TEST_DIR"
|
||||
|
||||
# 如果测试开始时未安装,则卸载软件包
|
||||
if [ "$is_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 "自定义规则配置测试完成"
|
||||
}
|
||||
|
||||
# 环境清理函数
|
||||
cleanup_environment() {
|
||||
LOG_INFO "开始环境清理"
|
||||
|
||||
# 清理可能残留的测试目录
|
||||
TEST_DIR="/tmp/test_maven_project"
|
||||
if [ -d "$TEST_DIR" ]; then
|
||||
LOG_INFO "清理残留的测试目录"
|
||||
rm -rf "$TEST_DIR"
|
||||
fi
|
||||
|
||||
# 检查并清理临时文件
|
||||
LOG_INFO "检查并清理临时文件"
|
||||
find /tmp -name "*maven*test*" -type d -exec rm -rf {} + 2>/dev/null || true
|
||||
|
||||
LOG_INFO "环境清理完成"
|
||||
}
|
||||
|
||||
# 异常处理
|
||||
handle_error() {
|
||||
LOG_ERROR "测试执行过程中发生错误"
|
||||
cleanup_environment
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 设置异常捕获
|
||||
trap handle_error ERR
|
||||
|
||||
# 主执行流程
|
||||
main() {
|
||||
LOG_INFO "开始执行maven-enforcer-plugin自定义规则配置测试"
|
||||
|
||||
# 执行测试
|
||||
test_custom_rule_configuration
|
||||
|
||||
# 环境清理
|
||||
cleanup_environment
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-29
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test dependency enforcement functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试依赖执行功能"
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed maven-enforcer-plugin &>/dev/null; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin"
|
||||
if ! dnf list available maven-enforcer-plugin &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装maven-enforcer-plugin
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试依赖执行功能
|
||||
LOG_INFO "测试依赖执行功能"
|
||||
mvn enforcer:enforce -DskipTests
|
||||
CHECK_RESULT $? 0 0 "依赖执行功能测试失败"
|
||||
|
||||
# 如果最初未安装,则在测试完成后卸载maven-enforcer-plugin
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "依赖执行功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test dependency convergence rule
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试依赖收敛规则
|
||||
LOG_INFO "开始测试dependency convergence rule"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="maven-enforcer-plugin"
|
||||
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查 ${PACKAGE_NAME} 是否已安装"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "${PACKAGE_NAME} 已安装,标记为已存在安装"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME} 未安装,标记为需要清理"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "开始安装 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "${PACKAGE_NAME} 安装成功"
|
||||
fi
|
||||
|
||||
# 测试dependency convergence rule功能
|
||||
LOG_INFO "测试dependency convergence rule功能"
|
||||
# 模拟执行maven-enforcer-plugin的dependency convergence rule检查
|
||||
# 这里使用一个简单的命令来测试插件是否正常工作
|
||||
mvn enforcer:enforce -Denforcer.skip=false 2>&1 | grep -i "dependency" > /dev/null
|
||||
CHECK_RESULT $? 0 0 "dependency convergence rule功能测试失败"
|
||||
|
||||
LOG_INFO "dependency convergence rule功能测试成功"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "环境清理完成"
|
||||
else
|
||||
LOG_INFO "保持 ${PACKAGE_NAME} 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试dependency convergence rule完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-29
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test fail fast behavior
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test fail fast behavior"
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed maven-enforcer-plugin &>/dev/null; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin"
|
||||
if ! dnf list available maven-enforcer-plugin &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装maven-enforcer-plugin
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试fail fast行为
|
||||
LOG_INFO "测试fail fast行为"
|
||||
mvn enforcer:enforce -DfailFast=true
|
||||
CHECK_RESULT $? 1 0 "fail fast行为测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test fail fast behavior"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,116 +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 plugin installation via pom.xml
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量和常量
|
||||
LOG_INFO "开始测试:通过pom.xml测试插件安装功能"
|
||||
LOG_INFO "========================================"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="maven-enforcer-plugin"
|
||||
REPO_NAME="maven-enforcer-plugin-repo"
|
||||
|
||||
# 检查是否已经安装
|
||||
LOG_INFO "步骤1:检查系统中是否已安装${PACKAGE_NAME}"
|
||||
if dnf list installed | grep -q "${PACKAGE_NAME}"; then
|
||||
LOG_INFO "${PACKAGE_NAME} 已经安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME} 未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有${PACKAGE_NAME}软件包"
|
||||
if ! dnf search ${PACKAGE_NAME} 2>/dev/null | grep -q "${PACKAGE_NAME}"; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
|
||||
|
||||
# 安装软件包(如果未安装)
|
||||
if [ "${INSTALLED_BEFORE}" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
LOG_INFO "${PACKAGE_NAME}安装成功"
|
||||
fi
|
||||
|
||||
# 验证插件基本功能
|
||||
LOG_INFO "步骤4:验证maven-enforcer-plugin基本功能"
|
||||
mvn enforcer:enforce 2>&1 | grep -q "BUILD SUCCESS"
|
||||
CHECK_RESULT $? 0 0 "maven-enforcer-plugin基本功能验证失败"
|
||||
|
||||
# 测试通过pom.xml安装插件
|
||||
LOG_INFO "步骤5:创建测试pom.xml文件"
|
||||
cat > test-pom.xml << "EOF"
|
||||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>test.group</groupId>
|
||||
<artifactId>test-artifact</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建pom.xml文件失败"
|
||||
|
||||
LOG_INFO "步骤6:通过pom.xml执行插件"
|
||||
mvn -f test-pom.xml enforcer:enforce 2>&1 | grep -q "BUILD SUCCESS"
|
||||
CHECK_RESULT $? 0 0 "通过pom.xml执行插件失败"
|
||||
LOG_INFO "通过pom.xml成功执行maven-enforcer-plugin"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "步骤7:清理临时文件"
|
||||
rm -f test-pom.xml
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "步骤8:恢复测试环境"
|
||||
if [ "${INSTALLED_BEFORE}" = "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 "========================================"
|
||||
LOG_INFO "测试完成:通过pom.xml测试插件安装功能成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-29
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test custom rule enforcement
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed | grep -q "maven-enforcer-plugin"; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin"
|
||||
if ! dnf list available | grep -q "maven-enforcer-plugin"; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装maven-enforcer-plugin
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试自定义规则执行功能
|
||||
LOG_INFO "测试自定义规则执行功能"
|
||||
mvn enforcer:enforce -Drules=test_rule
|
||||
CHECK_RESULT $? 0 0 "自定义规则执行失败"
|
||||
|
||||
# 如果脚本开始时未安装,则在结束时卸载maven-enforcer-plugin
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test skip enforcement
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test skip enforcement"
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed maven-enforcer-plugin &> /dev/null; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin"
|
||||
if ! dnf list available maven-enforcer-plugin &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装maven-enforcer-plugin
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试skip enforcement功能
|
||||
LOG_INFO "测试skip enforcement功能"
|
||||
mvn enforcer:enforce -Dskip
|
||||
CHECK_RESULT $? 0 0 "skip enforcement功能测试失败"
|
||||
|
||||
# 如果脚本开始时未安装,则在结束时卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test skip enforcement"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test version enforcement
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试:Test version enforcement"
|
||||
|
||||
# 检查是否已安装maven-enforcer-plugin
|
||||
LOG_INFO "检查是否已安装maven-enforcer-plugin"
|
||||
if dnf list installed maven-enforcer-plugin &> /dev/null; then
|
||||
LOG_INFO "maven-enforcer-plugin已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有maven-enforcer-plugin
|
||||
LOG_INFO "检查yum源中是否有maven-enforcer-plugin"
|
||||
if ! dnf list available maven-enforcer-plugin &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到maven-enforcer-plugin,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装maven-enforcer-plugin
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
# 测试version enforcement功能
|
||||
LOG_INFO "测试version enforcement功能"
|
||||
mvn enforcer:enforce -Denforcer.skip=false -Denforcer.fail=true -Denforcer.rules=version
|
||||
CHECK_RESULT $? 0 0 "version enforcement功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载maven-enforcer-plugin失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test version enforcement"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,131 +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 Maven/Java version rule
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试 Maven/Java version rule 功能"
|
||||
|
||||
LOG_INFO "步骤1: 检查 maven-enforcer-plugin 是否已安装"
|
||||
if dnf list installed maven-enforcer-plugin &>/dev/null; then
|
||||
LOG_INFO "maven-enforcer-plugin 已安装,测试后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "maven-enforcer-plugin 未安装,将在测试前安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查 yum 源中是否存在 maven-enforcer-plugin 软件包"
|
||||
if ! dnf list available maven-enforcer-plugin &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 maven-enforcer-plugin 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装 maven-enforcer-plugin"
|
||||
dnf install -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "安装 maven-enforcer-plugin 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查 mvn 命令是否支持 enforcer:enforce 目标"
|
||||
if ! mvn help:describe -Dcmd=enforcer:enforce -Ddetail &>/dev/null; then
|
||||
LOG_ERROR "mvn 命令不支持 enforcer:enforce 目标或参数不存在"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载 maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 创建一个简单的 Maven 项目用于测试版本规则"
|
||||
TEST_DIR=$(mktemp -d)
|
||||
cd "$TEST_DIR"
|
||||
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>version-test</artifactId>
|
||||
<version>1.0</version>
|
||||
<packaging>jar</packaging>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce-versions</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireJavaVersion>
|
||||
<version>1.8</version>
|
||||
</requireJavaVersion>
|
||||
<requireMavenVersion>
|
||||
<version>3.5.0</version>
|
||||
</requireMavenVersion>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试 Maven 项目失败"
|
||||
|
||||
LOG_INFO "步骤6: 在测试项目中执行 Maven Enforcer 插件检查版本规则"
|
||||
mvn enforcer:enforce
|
||||
CHECK_RESULT $? 0 0 "Maven Enforcer 插件执行失败"
|
||||
|
||||
LOG_INFO "步骤7: 修改 pom.xml 中的 Java 版本要求为不满足的版本,测试失败情况"
|
||||
sed -i "s/<version>1.8<\/version>/<version>99.0<\/version>/" pom.xml
|
||||
mvn enforcer:enforce
|
||||
# 预期此命令会失败,退出码非0
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "Maven Enforcer 插件未正确拒绝不满足的 Java 版本"
|
||||
CHECK_RESULT 1 0 1 "版本规则检查逻辑异常"
|
||||
else
|
||||
LOG_INFO "Maven Enforcer 插件正确拒绝了不满足的 Java 版本"
|
||||
CHECK_RESULT $? 1 0 "版本规则检查失败状态码异常"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8: 清理测试项目"
|
||||
cd /
|
||||
rm -rf "$TEST_DIR"
|
||||
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "步骤9: 卸载测试安装的 maven-enforcer-plugin"
|
||||
dnf remove -y maven-enforcer-plugin
|
||||
CHECK_RESULT $? 0 0 "卸载 maven-enforcer-plugin 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Maven/Java version rule 功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-05
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of the package.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查yum源中是否存在指定软件包
|
||||
check_package_exist() {
|
||||
local package_name=$1
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 不存在于yum源中"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令是否支持指定参数
|
||||
check_command_option() {
|
||||
local command=$1
|
||||
local option=$2
|
||||
$command --help | grep -q "$option"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_mvapich2_psm2_devel_function_basic() {
|
||||
local package_name="mvapich2-psm2-devel"
|
||||
|
||||
LOG_INFO "开始测试包的基本功能: $package_name"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
local is_installed=$?
|
||||
|
||||
if [ $is_installed -eq 0 ]; then
|
||||
LOG_INFO "环境已安装 $package_name,测试完成后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "环境未安装 $package_name,将进行安装测试"
|
||||
check_package_exist "$package_name"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装 $package_name 失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试 $package_name 的基本功能"
|
||||
|
||||
# 示例:检查mpicc命令是否可用
|
||||
which mpicc &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "mpicc命令不可用"
|
||||
|
||||
# 示例:检查mpirun命令是否支持--version参数(假设这是需要测试的功能)
|
||||
check_command_option "mpirun" "--version"
|
||||
|
||||
# 如果环境未安装,则在测试完成后卸载
|
||||
if [ $is_installed -ne 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 "测试完成: Test basic functionality of the package."
|
||||
}
|
||||
|
||||
test_mvapich2_psm2_devel_function_basic
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证开发所需的头文件(如mpi.h)存在于标准路径中。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证开发所需的头文件(如mpi.h)存在于标准路径中"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="mvapich2-psm2-devel"
|
||||
LOG_INFO "检查软件包 $PACKAGE_NAME 是否在yum源中"
|
||||
dnf list available $PACKAGE_NAME >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查软件包 $PACKAGE_NAME 是否已安装"
|
||||
rpm -q $PACKAGE_NAME >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 验证头文件是否存在
|
||||
LOG_INFO "检查头文件 mpi.h 是否存在于标准路径"
|
||||
if [ -f /usr/include/mpi.h ]; then
|
||||
LOG_INFO "头文件 mpi.h 存在于 /usr/include/"
|
||||
else
|
||||
LOG_ERROR "头文件 mpi.h 不存在于标准路径"
|
||||
CHECK_RESULT 1 0 0 "头文件 mpi.h 不存在"
|
||||
fi
|
||||
|
||||
# 恢复环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:验证开发所需的头文件(如mpi.h)存在于标准路径中"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,100 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证链接所需的库文件(如libmpi.so)存在于标准路径中,并可被成功链接。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="mvapich2-psm2-devel"
|
||||
LIBRARY_NAME="libmpi.so"
|
||||
LOG_INFO "开始测试:验证链接所需的库文件(如libmpi.so)存在于标准路径中,并可被成功链接。"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
dnf list available "$PACKAGE_NAME" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装软件包 $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查库文件是否存在于标准路径中
|
||||
LOG_INFO "步骤4:检查库文件 $LIBRARY_NAME 是否存在于标准路径中"
|
||||
if ldconfig -p | grep -q "$LIBRARY_NAME"; then
|
||||
LOG_INFO "库文件 $LIBRARY_NAME 存在于标准路径中"
|
||||
else
|
||||
LOG_ERROR "库文件 $LIBRARY_NAME 不存在于标准路径中"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5:验证库文件可被成功链接
|
||||
LOG_INFO "步骤5:验证库文件 $LIBRARY_NAME 可被成功链接"
|
||||
cat > test_link.c <<EOF
|
||||
#include <mpi.h>
|
||||
int main() {
|
||||
MPI_Init(NULL, NULL);
|
||||
MPI_Finalize();
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
mpicc test_link.c -o test_link
|
||||
CHECK_RESULT $? 0 0 "编译链接测试程序失败"
|
||||
|
||||
# 步骤6:运行测试程序验证链接
|
||||
LOG_INFO "步骤6:运行测试程序验证链接"
|
||||
./test_link
|
||||
CHECK_RESULT $? 0 0 "运行测试程序失败"
|
||||
|
||||
# 步骤7:清理测试文件
|
||||
LOG_INFO "步骤7:清理测试文件"
|
||||
rm -f test_link.c test_link
|
||||
|
||||
# 步骤8:如果测试过程中安装了软件包,则卸载
|
||||
if [ "$INSTALLED" = 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 "测试完成:库文件 $LIBRARY_NAME 存在于标准路径中并可被成功链接"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证mpicc编译器包装器能够被正确调用,并能编译简单的MPI程序。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证mpicc编译器包装器能够被正确调用,并能编译简单的MPI程序。"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="mvapich2-psm2-devel"
|
||||
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 "步骤2:检查系统是否已经安装了${PACKAGE_NAME}。"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包${PACKAGE_NAME}已经安装,测试结束后将保持安装状态。"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包${PACKAGE_NAME}未安装,将在测试过程中安装,并在测试结束后卸载。"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包${PACKAGE_NAME}。"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包${PACKAGE_NAME}失败。"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查mpicc命令是否可用。"
|
||||
if ! command -v mpicc &>/dev/null; then
|
||||
LOG_ERROR "mpicc命令未找到,可能软件包安装不完整。"
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载软件包${PACKAGE_NAME}。"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:编写一个简单的MPI测试程序。"
|
||||
cat > mpi_test.c << "EOF"
|
||||
#include <mpi.h>
|
||||
#include <stdio.h>
|
||||
int main(int argc, char** argv) {
|
||||
MPI_Init(&argc, &argv);
|
||||
int world_rank;
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
|
||||
int world_size;
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
|
||||
printf("Hello from process %d of %d\n", world_rank, world_size);
|
||||
MPI_Finalize();
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建MPI测试程序文件失败。"
|
||||
|
||||
LOG_INFO "步骤6:使用mpicc编译MPI测试程序。"
|
||||
mpicc -o mpi_test mpi_test.c
|
||||
CHECK_RESULT $? 0 0 "使用mpicc编译MPI程序失败。"
|
||||
|
||||
LOG_INFO "步骤7:清理生成的测试文件。"
|
||||
rm -f mpi_test mpi_test.c
|
||||
CHECK_RESULT $? 0 0 "删除测试文件失败。"
|
||||
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; 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 "测试完成:mpicc编译器包装器能够被正确调用,并能成功编译简单的MPI程序。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,134 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证使用mpiexec能够启动一个简单的MPI多进程程序并正确执行。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="mvapich2-psm2-devel"
|
||||
|
||||
# 步骤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
|
||||
INSTALLED=$?
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "系统已安装${PACKAGE_NAME}软件包,测试结束后将保持安装状态"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "系统未安装${PACKAGE_NAME}软件包,将在测试结束后卸载"
|
||||
NEED_CLEANUP=1
|
||||
fi
|
||||
|
||||
# 步骤3:安装软件包(如果未安装)
|
||||
if [ ${INSTALLED} -ne 0 ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查mpiexec命令是否可用
|
||||
LOG_INFO "步骤4:检查mpiexec命令是否可用"
|
||||
which mpiexec &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "mpiexec命令不存在"
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:检查mpiexec命令是否支持-n参数
|
||||
LOG_INFO "步骤5:检查mpiexec命令是否支持-n参数"
|
||||
mpiexec --help 2>&1 | grep -q "\-n"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "mpiexec命令不支持-n参数"
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:创建简单的MPI测试程序
|
||||
LOG_INFO "步骤6:创建简单的MPI测试程序"
|
||||
cat > test_mpi.c << "EOF"
|
||||
#include <mpi.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
MPI_Init(&argc, &argv);
|
||||
|
||||
int world_size;
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
|
||||
|
||||
int world_rank;
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
|
||||
|
||||
char processor_name[MPI_MAX_PROCESSOR_NAME];
|
||||
int name_len;
|
||||
MPI_Get_processor_name(processor_name, &name_len);
|
||||
|
||||
printf("Hello from processor %s, rank %d out of %d processors\n",
|
||||
processor_name, world_rank, world_size);
|
||||
|
||||
MPI_Finalize();
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 步骤7:编译MPI测试程序
|
||||
LOG_INFO "步骤7:编译MPI测试程序"
|
||||
mpicc -o test_mpi test_mpi.c
|
||||
CHECK_RESULT $? 0 0 "编译MPI测试程序失败"
|
||||
|
||||
# 步骤8:使用mpiexec启动MPI多进程程序
|
||||
LOG_INFO "步骤8:使用mpiexec启动MPI多进程程序并验证执行结果"
|
||||
mpiexec -n 4 ./test_mpi > mpi_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "mpiexec执行MPI程序失败"
|
||||
|
||||
# 步骤9:验证MPI程序输出
|
||||
LOG_INFO "步骤9:验证MPI程序输出结果"
|
||||
EXPECTED_LINES=4
|
||||
ACTUAL_LINES=$(grep -c "Hello from processor" mpi_output.txt)
|
||||
CHECK_RESULT ${ACTUAL_LINES} ${EXPECTED_LINES} 0 "MPI程序输出行数不符合预期"
|
||||
|
||||
# 步骤10:清理测试文件
|
||||
LOG_INFO "步骤10:清理测试文件"
|
||||
rm -f test_mpi.c test_mpi mpi_output.txt
|
||||
|
||||
# 步骤11:恢复环境(如果测试前未安装则卸载软件包)
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "步骤11:卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
else
|
||||
LOG_INFO "步骤11:保持${PACKAGE_NAME}软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:验证使用mpiexec能够启动一个简单的MPI多进程程序并正确执行"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,109 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证MVAPICH2运行时正确识别并启用了PSM2(Omni-Path)网络支持。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 定义检查函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -ne $expected ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -eq $expected ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(示例,实际使用时可能已定义)
|
||||
SSH_CMD() {
|
||||
sshpass -p $3 ssh -o StrictHostKeyChecking=no $4@$2 "$1"
|
||||
}
|
||||
|
||||
# 主测试脚本开始
|
||||
LOG_INFO "开始测试:验证MVAPICH2运行时正确识别并启用了PSM2(Omni-Path)网络支持。"
|
||||
|
||||
# 检查软件包是否存在
|
||||
LOG_INFO "检查yum源中是否存在mvapich2-psm2-devel软件包。"
|
||||
dnf list available mvapich2-psm2-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到mvapich2-psm2-devel软件包。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查系统中是否已安装mvapich2-psm2-devel软件包。"
|
||||
rpm -q mvapich2-psm2-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到mvapich2-psm2-devel已安装,脚本结束后将保持安装状态。"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "未检测到mvapich2-psm2-devel安装,将进行安装测试。"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装mvapich2-psm2-devel软件包。"
|
||||
dnf install -y mvapich2-psm2-devel
|
||||
CHECK_RESULT $? 0 0 "安装mvapich2-psm2-devel失败。"
|
||||
fi
|
||||
|
||||
# 验证MVAPICH2是否正确识别并启用PSM2
|
||||
LOG_INFO "验证MVAPICH2是否正确识别并启用了PSM2网络支持。"
|
||||
# 假设通过检查mvapich2的配置或运行一个简单的测试程序来验证
|
||||
# 这里使用一个示例命令,实际应根据MVAPICH2的文档进行调整
|
||||
mpirun --version 2>&1 | grep -i psm2 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "MVAPICH2未正确识别或启用PSM2支持。"
|
||||
|
||||
# 如果需要多个服务器,则在第二个服务器上执行命令
|
||||
# 假设NODE2_IPV4、NODE2_PASSWORD、NODE2_USER已定义
|
||||
LOG_INFO "在第二个节点上验证MVAPICH2的PSM2支持。"
|
||||
SSH_CMD "mpirun --version 2>&1 | grep -i psm2 > /dev/null 2>&1" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
CHECK_RESULT $? 0 0 "第二个节点上的MVAPICH2未正确识别或启用PSM2支持。"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载mvapich2-psm2-devel软件包。"
|
||||
dnf remove -y mvapich2-psm2-devel
|
||||
CHECK_RESULT $? 0 0 "卸载mvapich2-psm2-devel失败。"
|
||||
else
|
||||
LOG_INFO "保持mvapich2-psm2-devel软件包安装状态。"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:MVAPICH2运行时正确识别并启用了PSM2(Omni-Path)网络支持。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-13
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package removal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试开始:测试软件包移除功能"
|
||||
LOG_INFO "步骤1:检查环境中是否已安装pcp-pda-sockets软件包"
|
||||
if dnf list installed pcp-pda-sockets &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,测试过程中将安装并卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在pcp-pda-sockets软件包"
|
||||
if ! dnf list available pcp-pda-sockets &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到pcp-pda-sockets软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装pcp-pda-sockets软件包"
|
||||
dnf install -y pcp-pda-sockets
|
||||
CHECK_RESULT $? 0 0 "安装pcp-pda-sockets软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:测试软件包移除功能"
|
||||
dnf remove -y pcp-pda-sockets
|
||||
CHECK_RESULT $? 0 0 "移除pcp-pda-sockets软件包失败"
|
||||
|
||||
LOG_INFO "步骤5:验证软件包是否成功移除"
|
||||
if dnf list installed pcp-pda-sockets &>/dev/null; then
|
||||
LOG_ERROR "软件包移除后仍显示已安装"
|
||||
CHECK_RESULT 1 0 0 "软件包移除验证失败"
|
||||
else
|
||||
LOG_INFO "软件包已成功移除"
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤6:清理环境,重新安装软件包以恢复初始状态"
|
||||
dnf install -y pcp-pda-sockets
|
||||
CHECK_RESULT $? 0 0 "重新安装pcp-pda-sockets软件包失败"
|
||||
LOG_INFO "环境已恢复,软件包已重新安装"
|
||||
else
|
||||
LOG_INFO "步骤6:环境恢复,重新安装软件包"
|
||||
dnf install -y pcp-pda-sockets
|
||||
CHECK_RESULT $? 0 0 "重新安装pcp-pda-sockets软件包失败"
|
||||
LOG_INFO "环境已恢复,软件包已重新安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试结束:软件包移除功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-13
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test PMDA enablement
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test PMDA enablement"
|
||||
|
||||
# 步骤1:检查是否已安装pcp-pmda-sockets包
|
||||
LOG_INFO "步骤1:检查是否已安装pcp-pmda-sockets包"
|
||||
if dnf list installed pcp-pmda-sockets &> /dev/null; then
|
||||
LOG_INFO "pcp-pmda-sockets已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "pcp-pmda-sockets未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有pcp-pmda-sockets包
|
||||
LOG_INFO "步骤2:检查yum源中是否有pcp-pmda-sockets包"
|
||||
if ! dnf list available pcp-pmda-sockets &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到pcp-pmda-sockets包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装pcp-pmda-sockets包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装pcp-pmda-sockets包"
|
||||
dnf install -y pcp-pmda-sockets
|
||||
CHECK_RESULT $? 0 0 "安装pcp-pmda-sockets包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查pmdasockets命令是否存在
|
||||
LOG_INFO "步骤4:检查pmdasockets命令是否存在"
|
||||
if ! command -v pmdasockets &> /dev/null; then
|
||||
LOG_ERROR "pmdasockets命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:检查pmdasockets命令是否支持enable参数
|
||||
LOG_INFO "步骤5:检查pmdasockets命令是否支持enable参数"
|
||||
if ! pmdasockets --help 2>&1 | grep -q "enable"; then
|
||||
LOG_ERROR "pmdasockets命令不支持enable参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:执行pmdasockets enable命令
|
||||
LOG_INFO "步骤6:执行pmdasockets enable命令"
|
||||
pmdasockets enable
|
||||
CHECK_RESULT $? 0 0 "执行pmdasockets enable命令失败"
|
||||
|
||||
# 步骤7:验证pmdasockets是否已启用
|
||||
LOG_INFO "步骤7:验证pmdasockets是否已启用"
|
||||
if pminfo sockets &> /dev/null; then
|
||||
LOG_INFO "pmdasockets已成功启用"
|
||||
else
|
||||
LOG_ERROR "pmdasockets启用失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8:如果之前未安装,则卸载pcp-pmda-sockets包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤8:卸载pcp-pmda-sockets包"
|
||||
dnf remove -y pcp-pmda-sockets
|
||||
CHECK_RESULT $? 0 0 "卸载pcp-pmda-sockets包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test PMDA enablement"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,109 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-13
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test metrics collection
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试socket功能指标收集
|
||||
LOG_INFO "开始测试socket功能指标收集"
|
||||
|
||||
# 检查是否已安装pcp-pmda-sockets软件包
|
||||
LOG_INFO "检查pcp-pmda-sockets是否已安装"
|
||||
if rpm -q pcp-pmda-sockets > /dev/null 2>&1; then
|
||||
LOG_INFO "pcp-pmda-sockets已安装,标记为已存在"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "pcp-pmda-sockets未安装,标记为需要安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有pcp-pmda-sockets软件包
|
||||
LOG_INFO "检查yum源中是否有pcp-pmda-sockets软件包"
|
||||
if ! dnf list available pcp-pmda-sockets > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有pcp-pmda-sockets软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "安装pcp-pmda-sockets软件包"
|
||||
dnf install -y pcp-pmda-sockets
|
||||
CHECK_RESULT $? 0 0 "安装pcp-pmda-sockets失败"
|
||||
fi
|
||||
|
||||
# 检查pmdasockets命令是否存在
|
||||
LOG_INFO "检查pmdasockets命令是否存在"
|
||||
if ! command -v pmdasockets > /dev/null 2>&1; then
|
||||
LOG_ERROR "pmdasockets命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查pmdasockets命令是否支持--help参数
|
||||
LOG_INFO "检查pmdasockets命令是否支持--help参数"
|
||||
if ! pmdasockets --help > /dev/null 2>&1; then
|
||||
LOG_ERROR "pmdasockets命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试指标收集功能
|
||||
LOG_INFO "测试socket功能指标收集"
|
||||
# 启动pmdasockets进行指标收集测试
|
||||
pmdasockets --help
|
||||
CHECK_RESULT $? 0 0 "pmdasockets命令执行失败"
|
||||
|
||||
# 检查是否能够获取socket相关指标
|
||||
LOG_INFO "检查socket相关指标"
|
||||
if ! pminfo sockets > /dev/null 2>&1; then
|
||||
LOG_ERROR "无法获取socket相关指标"
|
||||
# 如果之前未安装,需要清理环境
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "清理环境:卸载pcp-pmda-sockets软件包"
|
||||
dnf remove -y pcp-pmda-sockets
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 验证指标数据是否正常
|
||||
LOG_INFO "验证socket指标数据"
|
||||
SOCKET_METRICS=$(pminfo sockets | head -5)
|
||||
if [ -z "$SOCKET_METRICS" ]; then
|
||||
LOG_ERROR "socket指标数据为空"
|
||||
# 如果之前未安装,需要清理环境
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "清理环境:卸载pcp-pmda-sockets软件包"
|
||||
dnf remove -y pcp-pmda-sockets
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "socket指标数据正常:$SOCKET_METRICS"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "测试完成,清理环境:卸载pcp-pmda-sockets软件包"
|
||||
dnf remove -y pcp-pmda-sockets
|
||||
CHECK_RESULT $? 0 0 "卸载pcp-pmda-sockets失败"
|
||||
else
|
||||
LOG_INFO "测试完成,保持原有安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "socket功能指标收集测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,89 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-13
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test PMDA restart
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:判断是否已安装pcp-pmda-sockets软件包
|
||||
LOG_INFO "检查是否已安装pcp-pmda-sockets软件包"
|
||||
if dnf list installed pcp-pmda-sockets &>/dev/null; then
|
||||
LOG_INFO "pcp-pmda-sockets已安装,测试结束后保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "pcp-pmda-sockets未安装,将在测试中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在pcp-pmda-sockets软件包
|
||||
LOG_INFO "检查yum源中是否存在pcp-pmda-sockets软件包"
|
||||
if ! dnf list available pcp-pmda-sockets &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到pcp-pmda-sockets软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装pcp-pmda-sockets软件包"
|
||||
dnf install -y pcp-pmda-sockets
|
||||
CHECK_RESULT $? 0 0 "安装pcp-pmda-sockets软件包失败"
|
||||
fi
|
||||
|
||||
# 启动pcp-pmda-sockets服务
|
||||
LOG_INFO "启动pcp-pmda-sockets服务"
|
||||
systemctl start pmda.sockets
|
||||
CHECK_RESULT $? 0 0 "启动pcp-pmda-sockets服务失败"
|
||||
|
||||
# 检查pcp-pmda-sockets服务状态
|
||||
LOG_INFO "检查pcp-pmda-sockets服务状态"
|
||||
systemctl status pmda.sockets | grep -q "active (running)"
|
||||
CHECK_RESULT $? 0 0 "pcp-pmda-sockets服务未正常运行"
|
||||
|
||||
# 重启pcp-pmda-sockets服务
|
||||
LOG_INFO "重启pcp-pmda-sockets服务"
|
||||
systemctl restart pmda.sockets
|
||||
CHECK_RESULT $? 0 0 "重启pcp-pmda-sockets服务失败"
|
||||
|
||||
# 再次检查pcp-pmda-sockets服务状态
|
||||
LOG_INFO "再次检查pcp-pmda-sockets服务状态"
|
||||
systemctl status pmda.sockets | grep -q "active (running)"
|
||||
CHECK_RESULT $? 0 0 "pcp-pmda-sockets服务重启后未正常运行"
|
||||
|
||||
# 停止pcp-pmda-sockets服务
|
||||
LOG_INFO "停止pcp-pmda-sockets服务"
|
||||
systemctl stop pmda.sockets
|
||||
CHECK_RESULT $? 0 0 "停止pcp-pmda-sockets服务失败"
|
||||
|
||||
# 检查pcp-pmda-sockets服务是否已停止
|
||||
LOG_INFO "检查pcp-pmda-sockets服务是否已停止"
|
||||
systemctl status pmda.sockets | grep -q "inactive (dead)"
|
||||
CHECK_RESULT $? 0 0 "pcp-pmda-sockets服务停止失败"
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载pcp-pmda-sockets软件包"
|
||||
dnf remove -y pcp-pmda-sockets
|
||||
CHECK_RESULT $? 0 0 "卸载pcp-pmda-sockets软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装pcp-pmda-sockets,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-25
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test bibliography generation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-biblatex-luh-ipw
|
||||
LOG_INFO "检查是否已安装texlive-biblatex-luh-ipw"
|
||||
rpm -q texlive-biblatex-luh-ipw > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-biblatex-luh-ipw已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-biblatex-luh-ipw未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-biblatex-luh-ipw软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-biblatex-luh-ipw软件包"
|
||||
dnf list available texlive-biblatex-luh-ipw > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-biblatex-luh-ipw软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-biblatex-luh-ipw软件包(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-biblatex-luh-ipw软件包"
|
||||
dnf install -y texlive-biblatex-luh-ipw
|
||||
CHECK_RESULT $? 0 0 "安装texlive-biblatex-luh-ipw失败"
|
||||
fi
|
||||
|
||||
# Test bibliography generation
|
||||
LOG_INFO "测试参考文献生成"
|
||||
cat <<EOF > test.bib
|
||||
@book{test,
|
||||
author = {Author, Test},
|
||||
title = {Test Title},
|
||||
year = {2023},
|
||||
publisher = {Test Publisher}
|
||||
}
|
||||
EOF
|
||||
|
||||
pdflatex -interaction=nonstopmode "\documentclass{article}\usepackage{biblatex}\addbibresource{test.bib}\begin{document}\cite{test}\printbibliography\end{document}"
|
||||
CHECK_RESULT $? 0 0 "参考文献生成失败"
|
||||
|
||||
# Clean up test files
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test.bib test.aux test.log test.pdf
|
||||
|
||||
# Uninstall texlive-biblatex-luh-ipw if it was not installed before the test
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-biblatex-luh-ipw软件包"
|
||||
dnf remove -y texlive-biblatex-luh-ipw
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-biblatex-luh-ipw失败"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,129 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test bibliography style loading
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:Test bibliography style loading"
|
||||
|
||||
LOG_INFO "步骤1: 检查是否已安装 texlive-biblatex-luh-ipw 软件包"
|
||||
if dnf list installed texlive-biblatex-luh-ipw &>/dev/null; then
|
||||
LOG_INFO "检测到 texlive-biblatex-luh-ipw 已安装,脚本结束时将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "未安装 texlive-biblatex-luh-ipw,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查 yum 源中是否存在 texlive-biblatex-luh-ipw 软件包"
|
||||
if ! dnf list available texlive-biblatex-luh-ipw &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-biblatex-luh-ipw 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装 texlive-biblatex-luh-ipw 软件包"
|
||||
dnf install -y texlive-biblatex-luh-ipw
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-biblatex-luh-ipw 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查 bibstyle 文件是否存在"
|
||||
BIBSTYLE_PATH=$(kpsewhich luh-ipw.bbx 2>/dev/null || kpsewhich luh-ipw.cbx 2>/dev/null)
|
||||
if [ -z "$BIBSTYLE_PATH" ]; then
|
||||
LOG_ERROR "未找到 luh-ipw bibstyle 文件"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "找到 bibstyle 文件: $BIBSTYLE_PATH"
|
||||
|
||||
LOG_INFO "步骤5: 创建一个简单的测试 .bib 文件"
|
||||
TEST_BIB=$(mktemp /tmp/test_biblatex_XXXXXX.bib)
|
||||
cat > "$TEST_BIB" << "EOF"
|
||||
@article{test2024,
|
||||
author = {Test Author},
|
||||
title = {Test Title},
|
||||
journal = {Test Journal},
|
||||
year = {2024},
|
||||
volume = {1},
|
||||
pages = {1-10}
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试 .bib 文件失败"
|
||||
|
||||
LOG_INFO "步骤6: 创建一个简单的测试 .tex 文件,使用 luh-ipw 参考文献样式"
|
||||
TEST_TEX=$(mktemp /tmp/test_biblatex_XXXXXX.tex)
|
||||
cat > "$TEST_TEX" << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage[backend=biber, style=luh-ipw]{biblatex}
|
||||
\addbibresource{test.bib}
|
||||
\begin{document}
|
||||
测试文档 \cite{test2024}.
|
||||
\printbibliography
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试 .tex 文件失败"
|
||||
|
||||
LOG_INFO "步骤7: 尝试使用 pdflatex 和 biber 处理测试文档"
|
||||
WORKDIR=$(dirname "$TEST_TEX")
|
||||
cd "$WORKDIR" || exit 1
|
||||
ln -sf "$TEST_BIB" test.bib
|
||||
|
||||
LOG_INFO "运行 pdflatex (第一次)"
|
||||
pdflatex -halt-on-error -interaction=nonstopmode "$TEST_TEX" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "pdflatex 第一次运行失败"
|
||||
|
||||
LOG_INFO "运行 biber"
|
||||
biber "$(basename "$TEST_TEX" .tex)" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "biber 运行失败"
|
||||
|
||||
LOG_INFO "运行 pdflatex (第二次)"
|
||||
pdflatex -halt-on-error -interaction=nonstopmode "$TEST_TEX" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "pdflatex 第二次运行失败"
|
||||
|
||||
LOG_INFO "步骤8: 检查是否成功生成 .bbl 文件(包含格式化参考文献)"
|
||||
BBL_FILE="$WORKDIR/$(basename "$TEST_TEX" .tex).bbl"
|
||||
if [ -s "$BBL_FILE" ]; then
|
||||
LOG_INFO "成功生成 .bbl 文件,bibstyle 加载正常"
|
||||
grep -q "Test Author" "$BBL_FILE"
|
||||
CHECK_RESULT $? 0 0 ".bbl 文件中未找到预期的参考文献内容"
|
||||
else
|
||||
LOG_ERROR "未生成 .bbl 文件或文件为空"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤9: 清理测试临时文件"
|
||||
rm -f "$TEST_BIB" "$TEST_TEX" "$BBL_FILE" \
|
||||
"$WORKDIR"/$(basename "$TEST_TEX" .tex).{aux,log,bcf,blg,run.xml,bbl,out} \
|
||||
"$WORKDIR"/test.bib
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤10: 卸载 texlive-biblatex-luh-ipw 软件包"
|
||||
dnf remove -y texlive-biblatex-luh-ipw
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-biblatex-luh-ipw 失败"
|
||||
LOG_INFO "已恢复环境,卸载了测试安装的软件包"
|
||||
else
|
||||
LOG_INFO "环境已安装 texlive-biblatex-luh-ipw,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test bibliography style loading 通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test citation commands
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(实际环境中可能已定义,此处确保可用)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 测试主函数
|
||||
test_main() {
|
||||
local package_name="texlive-biblatex-luh-ipw"
|
||||
local test_cmd="citation"
|
||||
local install_flag=0
|
||||
|
||||
# 步骤1:检查环境是否已安装目标软件包
|
||||
LOG_INFO "步骤1:检查环境是否已安装目标软件包"
|
||||
if rpm -q "${package_name}" &>/dev/null; then
|
||||
LOG_INFO "软件包 ${package_name} 已安装,脚本结束后将保持安装状态"
|
||||
install_flag=1
|
||||
else
|
||||
LOG_INFO "软件包 ${package_name} 未安装,将在测试步骤中安装"
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在软件包 ${package_name}"
|
||||
if ! dnf list available "${package_name}" &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在软件包 ${package_name}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${install_flag} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${package_name}"
|
||||
dnf install -y "${package_name}"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${package_name} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试citation命令
|
||||
LOG_INFO "步骤4:测试citation命令"
|
||||
# 假设citation命令是软件包提供的可执行文件
|
||||
# 检查命令是否存在
|
||||
if ! command -v "${test_cmd}" &>/dev/null; then
|
||||
LOG_ERROR "命令 ${test_cmd} 不存在或不支持"
|
||||
# 清理环境:如果之前安装了软件包,则卸载
|
||||
if [ ${install_flag} -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载软件包 ${package_name}"
|
||||
dnf remove -y "${package_name}" &>/dev/null
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行citation命令(示例:假设--help参数可用)
|
||||
LOG_INFO "执行citation命令测试"
|
||||
"${test_cmd}" --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "citation命令执行失败"
|
||||
|
||||
# 步骤5:清理环境
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ ${install_flag} -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包 ${package_name}"
|
||||
dnf remove -y "${package_name}"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${package_name} 失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package removal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
# 初始化变量
|
||||
PACKAGE_NAME="texlive-biblatex-luh-ipw"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查yum源中是否存在软件包: $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在软件包: $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在软件包: $PACKAGE_NAME"
|
||||
|
||||
# 步骤2: 检查当前环境是否已安装该软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包: $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试前安装并在测试后卸载"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包作为测试步骤
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装软件包: $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 验证软件包已正确安装
|
||||
LOG_INFO "验证软件包 $PACKAGE_NAME 已正确安装"
|
||||
rpm -q "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 未正确安装"
|
||||
|
||||
# 步骤5: 执行卸载测试
|
||||
LOG_INFO "执行软件包卸载测试"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
|
||||
# 步骤6: 验证软件包已卸载
|
||||
LOG_INFO "验证软件包 $PACKAGE_NAME 已卸载"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 卸载失败"
|
||||
exit 1
|
||||
fi
|
||||
CHECK_RESULT $? 1 0 "软件包 $PACKAGE_NAME 卸载验证失败"
|
||||
|
||||
# 步骤7: 环境恢复
|
||||
LOG_INFO "恢复测试环境"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "测试前未安装 $PACKAGE_NAME,无需重新安装"
|
||||
else
|
||||
LOG_INFO "重新安装 $PACKAGE_NAME 以恢复原始状态"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "重新安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: Test package removal"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test installation of texlive-nih package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查texlive-nih软件包是否已安装
|
||||
LOG_INFO "检查texlive-nih软件包是否已安装"
|
||||
rpm -q texlive-nih > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-nih软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-nih软件包未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-nih软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-nih软件包"
|
||||
dnf list available texlive-nih > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-nih软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-nih软件包
|
||||
LOG_INFO "开始安装texlive-nih软件包"
|
||||
dnf install -y texlive-nih
|
||||
CHECK_RESULT $? 0 0 "安装texlive-nih软件包失败"
|
||||
|
||||
# 验证texlive-nih软件包是否安装成功
|
||||
LOG_INFO "验证texlive-nih软件包是否安装成功"
|
||||
rpm -q texlive-nih > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-nih软件包未正确安装"
|
||||
|
||||
# 测试texlive-nih功能(示例命令,需根据实际功能调整)
|
||||
LOG_INFO "测试texlive-nih功能"
|
||||
some_texlive_command --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "测试texlive-nih功能失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载texlive-nih软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-nih软件包"
|
||||
dnf remove -y texlive-nih
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-nih软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic LaTeX compilation with utf8mex
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-utf8mex
|
||||
LOG_INFO "检查texlive-utf8mex是否已安装"
|
||||
rpm -q texlive-utf8mex > /dev/null 2>&1
|
||||
INSTALLED=$?
|
||||
|
||||
# 如果未安装,则标记为需要安装
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
NEED_INSTALL=1
|
||||
else
|
||||
NEED_INSTALL=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-utf8mex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-utf8mex软件包"
|
||||
dnf list available texlive-utf8mex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-utf8mex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-utf8mex
|
||||
if [ $NEED_INSTALL -eq 1 ]; then
|
||||
LOG_INFO "安装texlive-utf8mex软件包"
|
||||
dnf install -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-utf8mex失败"
|
||||
fi
|
||||
|
||||
# 创建一个简单的LaTeX文件用于测试
|
||||
LOG_INFO "创建测试LaTeX文件"
|
||||
cat > test_utf8mex.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{utf8mex}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用pdflatex编译LaTeX文件
|
||||
LOG_INFO "使用pdflatex编译LaTeX文件"
|
||||
pdflatex test_utf8mex.tex
|
||||
CHECK_RESULT $? 0 0 "pdflatex编译失败"
|
||||
|
||||
# 检查生成的PDF文件是否存在
|
||||
LOG_INFO "检查生成的PDF文件是否存在"
|
||||
if [ -f test_utf8mex.pdf ]; then
|
||||
LOG_INFO "PDF文件生成成功"
|
||||
else
|
||||
LOG_ERROR "PDF文件未生成"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理生成的中间文件
|
||||
LOG_INFO "清理生成的中间文件"
|
||||
rm -f test_utf8mex.aux test_utf8mex.log test_utf8mex.out test_utf8mex.pdf test_utf8mex.tex
|
||||
|
||||
# 如果之前未安装,则卸载texlive-utf8mex
|
||||
if [ $NEED_INSTALL -eq 1 ]; then
|
||||
LOG_INFO "卸载texlive-utf8mex软件包"
|
||||
dnf remove -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-utf8mex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test installation of texlive-utf8mex
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查texlive-utf8mex是否已安装
|
||||
LOG_INFO "检查texlive-utf8mex是否已安装"
|
||||
rpm -q texlive-utf8mex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-utf8mex已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-utf8mex未安装,将在测试后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-utf8mex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-utf8mex软件包"
|
||||
dnf list available texlive-utf8mex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-utf8mex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-utf8mex软件包
|
||||
LOG_INFO "开始安装texlive-utf8mex软件包"
|
||||
dnf install -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-utf8mex失败"
|
||||
|
||||
# 验证texlive-utf8mex命令是否可用
|
||||
LOG_INFO "验证texlive-utf8mex命令是否可用"
|
||||
which utf8mex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "utf8mex命令不可用"
|
||||
|
||||
# 测试texlive-utf8mex功能
|
||||
LOG_INFO "测试texlive-utf8mex功能"
|
||||
utf8mex --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "测试texlive-utf8mex功能失败"
|
||||
|
||||
# 如果最初未安装,则在测试后卸载
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-utf8mex软件包"
|
||||
dnf remove -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-utf8mex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test uninstallation of texlive-utf8mex
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:卸载 texlive-utf8mex 软件包"
|
||||
|
||||
# 步骤1:检查yum源中是否存在texlive-utf8mex软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-utf8mex软件包"
|
||||
dnf list available texlive-utf8mex &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-utf8mex软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在texlive-utf8mex软件包"
|
||||
|
||||
# 步骤2:检查当前环境是否已安装texlive-utf8mex
|
||||
LOG_INFO "检查当前环境是否已安装texlive-utf8mex"
|
||||
INSTALLED=false
|
||||
rpm -q texlive-utf8mex &>/dev/null && INSTALLED=true
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "环境未安装texlive-utf8mex,执行安装作为测试步骤"
|
||||
# 步骤3:安装texlive-utf8mex
|
||||
LOG_INFO "安装texlive-utf8mex软件包"
|
||||
dnf install -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-utf8mex失败"
|
||||
LOG_INFO "texlive-utf8mex安装成功"
|
||||
else
|
||||
LOG_INFO "环境已安装texlive-utf8mex,保持安装状态"
|
||||
fi
|
||||
|
||||
# 步骤4:卸载texlive-utf8mex
|
||||
LOG_INFO "执行卸载texlive-utf8mex操作"
|
||||
dnf remove -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-utf8mex失败"
|
||||
LOG_INFO "texlive-utf8mex卸载成功"
|
||||
|
||||
# 步骤5:验证卸载
|
||||
LOG_INFO "验证texlive-utf8mex是否已卸载"
|
||||
rpm -q texlive-utf8mex &>/dev/null
|
||||
CHECK_RESULT $? 1 0 "卸载后仍能查询到texlive-utf8mex包,卸载可能不彻底"
|
||||
|
||||
# 步骤6:环境恢复
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "测试前环境未安装,无需重新安装,清理完成"
|
||||
else
|
||||
LOG_INFO "重新安装texlive-utf8mex以恢复原始状态"
|
||||
dnf install -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "重新安装texlive-utf8mex失败"
|
||||
LOG_INFO "环境恢复完成,texlive-utf8mex已重新安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:卸载 texlive-utf8mex 软件包功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify texlive-utf8mex package is installed
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证texlive-utf8mex包是否安装"
|
||||
LOG_INFO "步骤1:检查环境是否已安装texlive-utf8mex包"
|
||||
rpm -q texlive-utf8mex
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装texlive-utf8mex包,测试将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-utf8mex包,将进行安装测试"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-utf8mex包"
|
||||
dnf list available texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到texlive-utf8mex包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-utf8mex包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-utf8mex包"
|
||||
dnf install -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-utf8mex包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装texlive-utf8mex包失败"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证texlive-utf8mex包功能"
|
||||
# 假设texlive-utf8mex包包含命令utf8mex,这里检查该命令是否存在
|
||||
command -v utf8mex
|
||||
CHECK_RESULT $? 0 0 "texlive-utf8mex包未提供utf8mex命令"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texlive-utf8mex包功能验证失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载之前安装的texlive-utf8mex包"
|
||||
dnf remove -y texlive-utf8mex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-utf8mex包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载texlive-utf8mex包失败"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_INFO "环境已安装texlive-utf8mex包,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:texlive-utf8mex包安装验证通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,119 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify documentation files exist
|
||||
# ############################################
|
||||
|
||||
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="texlive-varisize"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在$PACKAGE_NAME软件包"
|
||||
dnf list available $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "$PACKAGE_NAME软件包在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "步骤2: 检查$PACKAGE_NAME是否已安装"
|
||||
IS_INSTALLED=0
|
||||
rpm -q $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "$PACKAGE_NAME已安装"
|
||||
IS_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME未安装"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $IS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装$PACKAGE_NAME软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
|
||||
fi
|
||||
|
||||
# 验证文档文件是否存在
|
||||
LOG_INFO "步骤4: 验证文档文件是否存在"
|
||||
# 获取软件包安装的文件列表
|
||||
PACKAGE_FILES=$(rpm -ql $PACKAGE_NAME)
|
||||
|
||||
# 检查是否存在文档文件
|
||||
DOC_FILES=$(echo "$PACKAGE_FILES" | grep -E "\.(pdf|txt|md|html|info|tex)$" | grep -i "doc" || true)
|
||||
|
||||
if [ -z "$DOC_FILES" ]; then
|
||||
# 如果没有找到文档文件,检查是否有其他文档相关文件
|
||||
DOC_FILES=$(echo "$PACKAGE_FILES" | grep -E "/usr/share/doc/|/usr/share/man/" || true)
|
||||
fi
|
||||
|
||||
if [ -z "$DOC_FILES" ]; then
|
||||
LOG_ERROR "未找到$PACKAGE_NAME的文档文件"
|
||||
# 如果之前未安装,需要卸载软件包
|
||||
if [ $IS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境: 卸载$PACKAGE_NAME软件包"
|
||||
dnf remove -y $PACKAGE_NAME > /dev/null 2>&1
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "找到以下文档文件:"
|
||||
echo "$DOC_FILES" | while read file; do
|
||||
if [ -f "$file" ]; then
|
||||
LOG_INFO " ✓ $file"
|
||||
else
|
||||
LOG_ERROR " ✗ $file (文件不存在)"
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查文档文件是否可读
|
||||
LOG_INFO "步骤5: 检查文档文件是否可读"
|
||||
ALL_FILES_READABLE=1
|
||||
for file in $DOC_FILES; do
|
||||
if [ -f "$file" ]; then
|
||||
if [ -r "$file" ]; then
|
||||
LOG_INFO " $file 可读"
|
||||
else
|
||||
LOG_ERROR " $file 不可读"
|
||||
ALL_FILES_READABLE=0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
CHECK_RESULT $ALL_FILES_READABLE 1 0 "部分文档文件不可读"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $IS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤6: 清理环境 - 卸载$PACKAGE_NAME软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "步骤6: 保持$PACKAGE_NAME安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: 文档文件验证成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,116 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify package removal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(虽然题目说直接使用,但实际环境中可能不存在,这里定义以确保脚本可运行)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*" >&2
|
||||
}
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
# 定义SSH_CMD函数(虽然题目说直接使用,但这里定义以确保脚本可运行)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local pass=$3
|
||||
local user=$4
|
||||
sshpass -p "$pass" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
|
||||
}
|
||||
|
||||
# 测试脚本开始
|
||||
LOG_INFO "开始测试:验证软件包卸载功能"
|
||||
|
||||
# 步骤1:检查是否已经安装texlive-varisize-function
|
||||
LOG_INFO "步骤1:检查当前环境是否已安装texlive-varisize-function软件包"
|
||||
if dnf list installed texlive-varisize-function &>/dev/null; then
|
||||
LOG_INFO "texlive-varisize-function已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-varisize-function未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有texlive-varisize-function软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在texlive-varisize-function软件包"
|
||||
if ! dnf list available texlive-varisize-function &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-varisize-function软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包作为测试步骤
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装texlive-varisize-function软件包"
|
||||
dnf install -y texlive-varisize-function
|
||||
CHECK_RESULT $? 0 0 "安装texlive-varisize-function失败"
|
||||
LOG_INFO "安装成功"
|
||||
else
|
||||
LOG_INFO "步骤3:软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包卸载功能
|
||||
LOG_INFO "步骤4:执行软件包卸载操作"
|
||||
dnf remove -y texlive-varisize-function
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-varisize-function失败"
|
||||
LOG_INFO "卸载成功"
|
||||
|
||||
# 步骤5:验证软件包是否已卸载
|
||||
LOG_INFO "步骤5:验证软件包是否已成功卸载"
|
||||
if dnf list installed texlive-varisize-function &>/dev/null; then
|
||||
LOG_ERROR "软件包卸载后仍显示已安装"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "软件包已成功卸载"
|
||||
fi
|
||||
|
||||
# 步骤6:环境恢复
|
||||
LOG_INFO "步骤6:恢复环境到初始状态"
|
||||
if [ "$INSTALLED" = "true" ]; then
|
||||
LOG_INFO "重新安装texlive-varisize-function软件包以恢复环境"
|
||||
dnf install -y texlive-varisize-function
|
||||
CHECK_RESULT $? 0 0 "重新安装texlive-varisize-function失败"
|
||||
LOG_INFO "环境恢复成功,软件包已重新安装"
|
||||
else
|
||||
LOG_INFO "初始状态未安装,无需重新安装,环境恢复完成"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:软件包卸载功能验证成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,89 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic LaTeX usage example
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试开始:Test basic LaTeX usage example"
|
||||
|
||||
# 检查是否已安装 texlive-varisize 软件包
|
||||
LOG_INFO "检查 texlive-varisize 是否已安装"
|
||||
if dnf list installed texlive-varisize &>/dev/null; then
|
||||
LOG_INFO "texlive-varisize 已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-varisize 未安装,将在测试步骤中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 texlive-varisize 软件包
|
||||
LOG_INFO "检查 yum 源中是否有 texlive-varisize 软件包"
|
||||
if ! dnf list available texlive-varisize &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-varisize 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 texlive-varisize
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装 texlive-varisize"
|
||||
dnf install -y texlive-varisize
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-varisize 失败"
|
||||
fi
|
||||
|
||||
# 测试 texlive-varisize 的基本用法
|
||||
LOG_INFO "测试 texlive-varisize 的基本用法:创建一个简单的 LaTeX 文档"
|
||||
cat > test_document.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{varisize}
|
||||
\begin{document}
|
||||
Hello, LaTeX with varisize!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建 LaTeX 文档失败"
|
||||
|
||||
# 编译 LaTeX 文档
|
||||
LOG_INFO "编译 LaTeX 文档"
|
||||
pdflatex test_document.tex
|
||||
CHECK_RESULT $? 0 0 "编译 LaTeX 文档失败"
|
||||
|
||||
# 检查生成的 PDF 文件
|
||||
LOG_INFO "检查生成的 PDF 文件"
|
||||
if [ -f test_document.pdf ]; then
|
||||
LOG_INFO "PDF 文件生成成功"
|
||||
else
|
||||
LOG_ERROR "PDF 文件生成失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_document.tex test_document.pdf test_document.log test_document.aux test_document.out
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果脚本开始时未安装 texlive-varisize,则在测试结束后卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 texlive-varisize"
|
||||
dnf remove -y texlive-varisize
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-varisize 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic LaTeX usage example"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,100 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check package version info
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(根据要求直接使用,但实际环境中可能已定义)
|
||||
# 这里仅为脚本完整性的占位符,实际环境中应已定义
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 测试用例描述:Check package version info
|
||||
# 软件包名称
|
||||
PACKAGE_NAME="texlive-varisize-function"
|
||||
LOG_INFO "开始测试:检查软件包版本信息"
|
||||
|
||||
# 步骤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
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中存在"
|
||||
|
||||
# 步骤2:检查软件包是否已安装
|
||||
LOG_INFO "步骤2:检查软件包 $PACKAGE_NAME 是否已安装"
|
||||
rpm -q $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包作为测试步骤
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
|
||||
else
|
||||
LOG_INFO "步骤3:软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4:检查软件包版本信息
|
||||
LOG_INFO "步骤4:检查软件包 $PACKAGE_NAME 的版本信息"
|
||||
VERSION_INFO=$(rpm -qi $PACKAGE_NAME 2>/dev/null | grep -E "Version|Release")
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "无法获取软件包 $PACKAGE_NAME 的版本信息"
|
||||
# 如果是因为软件包未安装导致,则退出码为1;否则为其他错误
|
||||
rpm -q $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
LOG_INFO "软件包版本信息:$VERSION_INFO"
|
||||
|
||||
# 步骤5:验证版本信息是否包含预期内容(这里假设版本信息应包含数字和点号)
|
||||
LOG_INFO "步骤5:验证版本信息格式"
|
||||
echo "$VERSION_INFO" | grep -qE "[0-9]+\.[0-9]+"
|
||||
CHECK_RESULT $? 0 0 "版本信息格式不正确"
|
||||
|
||||
# 步骤6:清理环境(如果测试前未安装,则卸载软件包)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤6:卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
|
||||
else
|
||||
LOG_INFO "步骤6:测试前软件包已安装,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:软件包版本信息检查通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,63 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of texlive-xcomment package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 texlive-xcomment 软件包的基本功能"
|
||||
|
||||
# 检查 yum 源中是否存在 texlive-xcomment 软件包
|
||||
LOG_INFO "检查 yum 源中是否存在 texlive-xcomment 软件包"
|
||||
dnf list available texlive-xcomment >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-xcomment 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装 texlive-xcomment
|
||||
LOG_INFO "检查是否已安装 texlive-xcomment"
|
||||
rpm -q texlive-xcomment >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-xcomment 已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-xcomment 未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 texlive-xcomment
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装 texlive-xcomment 软件包"
|
||||
dnf install -y texlive-xcomment
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-xcomment 失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试 texlive-xcomment 的基本功能"
|
||||
texlive-xcomment --version >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-xcomment 基本功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 texlive-xcomment 软件包"
|
||||
dnf remove -y texlive-xcomment
|
||||
CHECK_RESULT $? .
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试tigervnc-server-applet的配置文件,验证其核心配置文件是否存在且格式正确
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装tigervnc-server-applet
|
||||
LOG_INFO "检查是否已安装tigervnc-server-applet"
|
||||
rpm -q tigervnc-server-applet > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "tigervnc-server-applet已安装,测试后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "tigervnc-server-applet未安装,将在测试后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有tigervnc-server-applet软件包
|
||||
LOG_INFO "检查yum源中是否有tigervnc-server-applet软件包"
|
||||
dnf list available tigervnc-server-applet > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到tigervnc-server-applet软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装tigervnc-server-applet软件包"
|
||||
dnf install -y tigervnc-server-applet > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装tigervnc-server-applet失败"
|
||||
fi
|
||||
|
||||
# 检查核心配置文件是否存在
|
||||
LOG_INFO "检查tigervnc-server-applet的核心配置文件是否存在"
|
||||
CONFIG_FILE="/etc/tigervnc/vncserver-config-defaults"
|
||||
if [ -f "$CONFIG_FILE" ]; then
|
||||
LOG_INFO "核心配置文件 $CONFIG_FILE 存在"
|
||||
else
|
||||
LOG_ERROR "核心配置文件 $CONFIG_FILE 不存在"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf remove -y tigervnc-server-applet > /dev/null 2>&1
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 验证配置文件格式是否正确(示例:检查文件是否为有效的文本文件)
|
||||
LOG_INFO "验证配置文件格式是否正确"
|
||||
file "$CONFIG_FILE" | grep -q "text"
|
||||
CHECK_RESULT $? 0 0 "配置文件格式不正确或不是文本文件"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载tigervnc-server-applet软件包"
|
||||
dnf remove -y tigervnc-server-applet > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载tigervnc-server-applet失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装tigervnc-server-applet,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,128 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试tigervnc-server-applet的帮助功能,验证执行命令是否能正确显示使用说明或版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
if [ $# -lt 4 ]; then
|
||||
LOG_ERROR "CHECK_RESULT 参数不足"
|
||||
exit 1
|
||||
fi
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local msg=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_INFO "$msg 成功"
|
||||
else
|
||||
LOG_ERROR "$msg 失败"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_INFO "$msg 成功"
|
||||
else
|
||||
LOG_ERROR "$msg 失败"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=$4
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$user@$ip" "$cmd"
|
||||
}
|
||||
|
||||
# 主要测试逻辑
|
||||
LOG_INFO "开始测试 tigervnc-server-applet 的帮助功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查 tigervnc-server-applet 是否在yum源中"
|
||||
dnf list available tigervnc-server-applet &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到 tigervnc-server-applet 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查 tigervnc-server-applet 是否已安装"
|
||||
if rpm -q tigervnc-server-applet &>/dev/null; then
|
||||
LOG_INFO "tigervnc-server-applet 已安装,测试后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "tigervnc-server-applet 未安装,将进行安装测试"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装 tigervnc-server-applet"
|
||||
dnf install -y tigervnc-server-applet
|
||||
CHECK_RESULT $? 0 0 "安装 tigervnc-server-applet"
|
||||
fi
|
||||
|
||||
# 测试帮助命令
|
||||
LOG_INFO "测试 tigervnc-server-applet 帮助命令"
|
||||
tigervnc-server-applet --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "执行 tigervnc-server-applet --help"
|
||||
|
||||
# 测试版本信息
|
||||
LOG_INFO "测试 tigervnc-server-applet 版本信息"
|
||||
tigervnc-server-applet --version &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "执行 tigervnc-server-applet --version"
|
||||
|
||||
# 测试无效参数
|
||||
LOG_INFO "测试 tigervnc-server-applet 无效参数"
|
||||
tigervnc-server-applet --invalid-param &>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "无效参数处理正确"
|
||||
else
|
||||
LOG_ERROR "无效参数处理不正确"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载 tigervnc-server-applet"
|
||||
dnf remove -y tigervnc-server-applet
|
||||
CHECK_RESULT $? 0 0 "卸载 tigervnc-server-applet"
|
||||
else
|
||||
LOG_INFO "保持 tigervnc-server-applet 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试tigervnc-server-applet软件包的安装功能,验证是否能成功安装到系统中
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装tigervnc-server-applet软件包
|
||||
LOG_INFO "检查tigervnc-server-applet软件包是否已安装"
|
||||
rpm -q tigervnc-server-applet
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "tigervnc-server-applet已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "tigervnc-server-applet未安装,将在测试中安装并在结束时卸载"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在tigervnc-server-applet软件包
|
||||
LOG_INFO "检查yum源中是否存在tigervnc-server-applet软件包"
|
||||
dnf list available tigervnc-server-applet
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到tigervnc-server-applet软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到tigervnc-server-applet软件包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装tigervnc-server-applet软件包
|
||||
LOG_INFO "安装tigervnc-server-applet软件包"
|
||||
dnf install -y tigervnc-server-applet
|
||||
CHECK_RESULT $? 0 0 "安装tigervnc-server-applet软件包失败"
|
||||
|
||||
# 验证tigervnc-server-applet软件包是否成功安装
|
||||
LOG_INFO "验证tigervnc-server-applet软件包是否成功安装"
|
||||
rpm -q tigervnc-server-applet
|
||||
CHECK_RESULT $? 0 0 "tigervnc-server-applet软件包未成功安装"
|
||||
|
||||
# 检查tigervnc-server-applet命令是否可用
|
||||
LOG_INFO "检查tigervnc-server-applet命令是否可用"
|
||||
which vncserver
|
||||
CHECK_RESULT $? 0 0 "vncserver命令不存在"
|
||||
|
||||
# 测试tigervnc-server-applet基本功能
|
||||
LOG_INFO "测试tigervnc-server-applet基本功能"
|
||||
vncserver --help
|
||||
CHECK_RESULT $? 0 0 "vncserver命令不支持--help参数"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载tigervnc-server-applet软件包"
|
||||
dnf remove -y tigervnc-server-applet
|
||||
CHECK_RESULT $? 0 0 "卸载tigervnc-server-applet软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试tigervnc-server-applet的启动功能,验证其Java Applet启动器能否正常启动并建立VNC连接
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数(假设已存在,这里只是声明)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否存在于yum源中
|
||||
check_package_in_repo() {
|
||||
local 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_option() {
|
||||
local command=$1
|
||||
local option=$2
|
||||
LOG_INFO "检查命令 $command 是否支持参数 $option"
|
||||
$command --help 2>&1 | grep -q "$option"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $command 支持参数 $option"
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "开始安装软件包:$package_name"
|
||||
dnf install -y "$package_name"
|
||||
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"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 卸载成功"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
is_package_installed() {
|
||||
local package_name=$1
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 测试tigervnc-server-applet的启动功能
|
||||
test_tigervnc_server_applet_launch() {
|
||||
local package_name="tigervnc-server-applet"
|
||||
local installed_before_test=false
|
||||
|
||||
LOG_INFO "开始测试tigervnc-server-applet的启动功能"
|
||||
|
||||
# 检查yum源中是否存在软件包
|
||||
check_package_in_repo "$package_name"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if is_package_installed "$package_name"; then
|
||||
LOG_INFO "软件包 $package_name 已安装,测试结束后将保持安装状态"
|
||||
installed_before_test=true
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装,将在测试过程中安装"
|
||||
installed_before_test=false
|
||||
install_package "$package_name"
|
||||
fi
|
||||
|
||||
# 检查vncserver命令是否支持-help参数(示例参数,根据实际情况调整)
|
||||
check_command_option "vncserver" "-help"
|
||||
|
||||
# 尝试启动tigervnc-server-applet(示例命令,根据实际情况调整)
|
||||
LOG_INFO "尝试启动tigervnc-server-applet"
|
||||
vncserver -help
|
||||
CHECK_RESULT $? 0 0 "启动tigervnc-server-applet失败"
|
||||
|
||||
LOG_INFO "tigervnc-server-applet启动功能测试成功"
|
||||
|
||||
# 环境恢复
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "开始清理环境,卸载测试过程中安装的软件包"
|
||||
uninstall_package "$package_name"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_tigervnc_server_applet_launch
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,62 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the initialization of tslib-help
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查tslib-help是否已安装
|
||||
LOG_INFO "检查tslib-help是否已安装"
|
||||
if dnf list installed tslib-help &> /dev/null; then
|
||||
LOG_INFO "tslib-help已安装,脚本结束后保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "tslib-help未安装,将在脚本结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在tslib-help软件包
|
||||
LOG_INFO "检查yum源中是否存在tslib-help软件包"
|
||||
if ! dnf list available tslib-help &> /dev/null; then
|
||||
LOG_ERROR "yum源中不存在tslib-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装tslib-help软件包
|
||||
LOG_INFO "开始安装tslib-help软件包"
|
||||
dnf install -y tslib-help
|
||||
CHECK_RESULT $? 0 0 "安装tslib-help失败"
|
||||
|
||||
# 测试初始化功能
|
||||
LOG_INFO "测试tslib-help的初始化功能"
|
||||
tslib-help init --test-param
|
||||
CHECK_RESULT $? 0 0 "初始化功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载tslib-help软件包"
|
||||
dnf remove -y tslib-help
|
||||
CHECK_RESULT $? 0 0 "卸载tslib-help失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user