This commit is contained in:
2026-04-20 03:36:01 +08:00
70 changed files with 0 additions and 5463 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -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运行时正确识别并启用了PSM2Omni-Path网络支持。"
},
{
"name": "test_mvapich2-psm2-devel_function_headers",
"desc": "验证开发所需的头文件如mpi.h存在于标准路径中。"
},
{
"name": "test_mvapich2-psm2-devel_function_libs",
"desc": "验证链接所需的库文件如libmpi.so存在于标准路径中并可被成功链接。"
}
]
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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的配置文件验证其核心配置文件是否存在且格式正确"
}
]
}

View File

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

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

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

View File

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

View File

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

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,132 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : 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 "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : Test 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 "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : Test 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 "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

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

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

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

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

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

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-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 "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : Test 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 "$@"

View File

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

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

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

View File

@@ -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运行时正确识别并启用了PSM2Omni-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运行时正确识别并启用了PSM2Omni-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运行时正确识别并启用了PSM2Omni-Path网络支持。"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

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

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

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

View File

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

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-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 "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,119 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

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

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-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 "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-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 "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

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

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-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 "$@"