This commit is contained in:
2026-04-20 20:15:02 +08:00
69 changed files with 0 additions and 4967 deletions

View File

@@ -5,26 +5,6 @@
{
"name": "test_flac-devel_function_install",
"desc": "测试flac-devel软件包能否正确安装"
},
{
"name": "test_flac-devel_function_check",
"desc": "测试检查flac-devel软件包是否已安装"
},
{
"name": "test_flac-devel_function_compile",
"desc": "测试使用flac开发库编译示例程序"
},
{
"name": "test_flac-devel_function_header",
"desc": "测试flac开发头文件的存在与完整性"
},
{
"name": "test_flac-devel_function_library",
"desc": "测试flac开发库文件的存在与链接"
},
{
"name": "test_flac-devel_function_uninstall",
"desc": "测试flac-devel软件包能否正确卸载"
}
]
}

View File

@@ -5,18 +5,6 @@
{
"name": "test_fxload-help_function_install",
"desc": "Test the installation of fxload-help package"
},
{
"name": "test_fxload-help_function_remove",
"desc": "Test the removal of fxload-help package"
},
{
"name": "test_fxload-help_function_version",
"desc": "Test displaying the package version"
},
{
"name": "test_fxload-help_function_help",
"desc": "Test displaying the help information"
}
]
}

View File

@@ -5,10 +5,6 @@
{
"name": "test_g2clib-devel_function_install",
"desc": "Test package installation"
},
{
"name": "test_g2clib-devel_function_build",
"desc": "Test package build functionality"
}
]
}

View File

@@ -154,10 +154,6 @@
"name": "test_gnupg2_gpg_n",
"desc": "执行空运行,不进行实际更改"
},
{
"name": "test_gnupg2_gpg-agent__min_passphrase_nonalpha",
"desc": "测试设置新密码短语中至少需要非字母字符的数量"
},
{
"name": "test_gnupg2_gpg-card__status_fd",
"desc": "测试使用 status-fd 参数,指定文件描述符来写入状态信息"
@@ -230,10 +226,6 @@
"name": "test_gnupg2_gpg-agent__c",
"desc": "测试以csh风格输出命令的gpg-agent"
},
{
"name": "test_gnupg2_gpg-agent__disable-scdaemon",
"desc": "测试启动时不使用SCdaemon的gpg-agent"
},
{
"name": "test_gnupg2_gpg-agent__keep-display",
"desc": "测试忽略更改X显示请求的gpg-agent"

View File

@@ -25,22 +25,6 @@
{
"name": "test_hdparm-help_function_man_access",
"desc": "测试安装hdparm-help后能否通过`man hdparm`命令成功访问到其提供的帮助手册页。"
},
{
"name": "test_hdparm-help_function_version_check",
"desc": "测试通过包管理器查询hdparm-help软件包的版本信息验证其版本号与预期一致。"
},
{
"name": "test_hdparm-help_function_file_integrity",
"desc": "测试hdparm-help软件包安装后其核心手册页文件的完整性如校验MD5或SHA256值。"
},
{
"name": "test_hdparm-help_function_conflict_check",
"desc": "测试在已安装hdparm或相关软件包的系统上安装hdparm-help是否会产生文件冲突或依赖问题。"
},
{
"name": "test_hdparm-help_function_offline_install",
"desc": "测试在无网络环境下通过本地软件包仓库或离线包能否成功安装hdparm-help软件包。"
}
]
}

View File

@@ -6,18 +6,6 @@
"name": "test_kunpengsecl-tas_install",
"desc": "测试软件包 kunpengsecl-tas 的安装功能,验证安装过程是否成功完成。",
"machine num": 1
},
{
"name": "test_kunpengsecl-tas_Huawei",
"desc": "测试 Huawei 命令的基本功能"
},
{
"name": "test_kunpengsecl-tas_tas__upper_t",
"desc": "测试 tas 命令的 -T 参数,用于生成 rest api 的测试 token"
},
{
"name": "test_kunpengsecl-tas_function_config",
"desc": "测试软件包 kunpengsecl-tas 的配置文件加载功能,验证配置是否正确解析和应用。"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/lodash/nodejs-lodash-toplainobject",
"machine num": 1,
"cases": [
{
"name": "test_nodejs-lodash-toplainobject_function_install",
"desc": "测试软件包nodejs-lodash-toplainobject能否通过包管理器如npm正常安装"
},
{
"name": "test_nodejs-lodash-toplainobject_function_require",
"desc": "测试在Node.js环境中能够成功require引入lodash.toplainobject模块"
},
{
"name": "test_nodejs-lodash-toplainobject_function_basic",
"desc": "测试toPlainObject函数将对象转换为普通对象的基本功能"
},
{
"name": "test_nodejs-lodash-toplainobject_function_inherit",
"desc": "测试toPlainObject函数对继承属性的转换处理"
},
{
"name": "test_nodejs-lodash-toplainobject_function_uninstall",
"desc": "测试软件包nodejs-lodash-toplainobject能否通过包管理器如npm正常卸载"
}
]
}

View File

@@ -9,26 +9,6 @@
{
"name": "test_python3-meh_remove",
"desc": "Test removal of python3-meh package"
},
{
"name": "test_python3-meh_function_install",
"desc": "Test installation of python3-meh package"
},
{
"name": "test_python3-meh_function_remove",
"desc": "Test removal of python3-meh package"
},
{
"name": "test_python3-meh_function_version",
"desc": "Test querying installed package version"
},
{
"name": "test_python3-meh_function_import",
"desc": "Test importing meh module in Python"
},
{
"name": "test_python3-meh_function_help",
"desc": "Test accessing module help or documentation"
}
]
}

View File

@@ -2,29 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-pydot/python-pydot-help",
"machine num": 1,
"cases": [
{
"name": "test_python-pydot-help_install",
"desc": "测试python-pydot-help软件包的安装功能是否正常"
},
{
"name": "test_python-pydot-help_import",
"desc": "测试导入python-pydot-help模块是否成功"
},
{
"name": "test_python-pydot-help_basic_usage",
"desc": "测试python-pydot-help生成简单图形的核心功能"
},
{
"name": "test_python-pydot-help_graph_attr",
"desc": "测试python-pydot-help设置图形属性的功能"
},
{
"name": "test_python-pydot-help_render",
"desc": "测试python-pydot-help渲染输出图像文件的功能"
},
{
"name": "test_python-pydot-help_uninstall",
"desc": "测试python-pydot-help软件包的卸载功能是否正常"
}
]
}

View File

@@ -5,26 +5,6 @@
{
"name": "test_samba-dc-bind-dlz_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_samba-dc-bind-dlz_function_install",
"desc": "Test package installation and verify successful installation"
},
{
"name": "test_samba-dc-bind-dlz_function_config",
"desc": "Test basic configuration and service startup"
},
{
"name": "test_samba-dc-bind-dlz_function_dns_resolve",
"desc": "Test DNS resolution functionality via BIND DLZ"
},
{
"name": "test_samba-dc-bind-dlz_function_ad_integrate",
"desc": "Test integration with Samba Active Directory"
},
{
"name": "test_samba-dc-bind-dlz_function_service_status",
"desc": "Test service status and basic operations"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-b/texlive-aspectratio",
"machine num": 1,
"cases": [
{
"name": "test_texlive-aspectratio_function_basic",
"desc": "Test basic functionality of aspectratio package"
},
{
"name": "test_texlive-aspectratio_function_install",
"desc": "Test installation of the aspectratio package"
},
{
"name": "test_texlive-aspectratio_function_uninstall",
"desc": "Test uninstallation of the aspectratio package"
},
{
"name": "test_texlive-aspectratio_function_setratio",
"desc": "Test setting the aspect ratio in document"
},
{
"name": "test_texlive-aspectratio_function_compile",
"desc": "Test document compilation with aspectratio"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_texlive-docbytex-doc_install",
"desc": "测试 texlive-docbytex-doc 软件包的安装功能,验证是否能够正确安装到系统中。",
"machine num": 1
},
{
"name": "test_texlive-docbytex-doc_function_render",
"desc": "测试 texlive-docbytex-doc 的文档渲染功能,验证是否能正确生成文档。"
}
]
}

View File

@@ -17,10 +17,6 @@
{
"name": "test_texlive-eco-doc_function_info",
"desc": "Test package info query"
},
{
"name": "test_texlive-eco-doc_function_usage",
"desc": "Test basic LaTeX usage"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-j/texlive-gmverb",
"machine num": 1,
"cases": [
{
"name": "test_texlive-gmverb_function_basic",
"desc": "Test basic functionality of texlive-gmverb"
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_texlive-grid-doc_function_remove",
"desc": "Test package removal"
},
{
"name": "test_texlive-grid-doc_function_search",
"desc": "Test package search"
},
{
"name": "test_texlive-grid-doc_function_verify",
"desc": "Test package verification"
},
{
"name": "test_texlive-grid-doc_function_usage",
"desc": "Test document usage"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_texlive-hyphen-spanish_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-hyphen-spanish_function_verify_install",
"desc": "Test package installation verification"
},
{
"name": "test_texlive-hyphen-spanish_function_remove",
"desc": "Test package removal"
@@ -17,10 +13,6 @@
{
"name": "test_texlive-hyphen-spanish_function_check_files",
"desc": "Test existence of hyphenation files"
},
{
"name": "test_texlive-hyphen-spanish_function_usage",
"desc": "Test basic LaTeX hyphenation usage"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-soulpos",
"machine num": 1,
"cases": [
{
"name": "test_texlive-soulpos_function_spacing",
"desc": "Test spacing adjustment functionality"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-yafoot",
"machine num": 1,
"cases": [
{
"name": "test_texlive-yafoot_function_install",
"desc": "Verify package installation"
}
]
}

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试检查flac-devel软件包是否已安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查flac-devel软件包是否已安装"
# 检查flac-devel是否已安装
LOG_INFO "步骤1检查flac-devel软件包是否已安装"
if rpm -q flac-devel > /dev/null 2>&1; then
LOG_INFO "flac-devel软件包已安装"
installed_before_test=true
else
LOG_INFO "flac-devel软件包未安装"
installed_before_test=false
fi
# 检查yum源中是否有flac-devel软件包
LOG_INFO "步骤2检查yum源中是否有flac-devel软件包"
if dnf list available flac-devel 2>/dev/null | grep -q flac-devel; then
LOG_INFO "yum源中存在flac-devel软件包"
else
LOG_ERROR "yum源中不存在flac-devel软件包"
exit 255
fi
# 如果未安装则安装flac-devel软件包
if [ "$installed_before_test" = false ]; then
LOG_INFO "步骤3安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel软件包失败"
LOG_INFO "flac-devel软件包安装成功"
fi
# 测试flac-devel软件包功能
LOG_INFO "步骤4测试flac-devel软件包功能"
# 检查flac-config命令是否存在
if command -v flac-config > /dev/null 2>&1; then
LOG_INFO "flac-config命令存在"
# 检查flac-config命令是否支持--version参数
if flac-config --version > /dev/null 2>&1; then
LOG_INFO "flac-config命令支持--version参数"
flac-config --version
CHECK_RESULT $? 0 0 "flac-config --version执行失败"
else
LOG_ERROR "flac-config命令不支持--version参数"
exit 255
fi
else
LOG_ERROR "flac-config命令不存在"
exit 255
fi
# 环境恢复
LOG_INFO "步骤5环境恢复"
if [ "$installed_before_test" = false ]; then
LOG_INFO "卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel软件包失败"
LOG_INFO "flac-devel软件包卸载成功"
else
LOG_INFO "保持flac-devel软件包安装状态"
fi
LOG_INFO "测试完成flac-devel软件包功能检查通过"
}
main "$@"

View File

@@ -1,105 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试使用flac开发库编译示例程序
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用flac开发库编译示例程序"
# 检查flac-devel软件包是否在yum源中
LOG_INFO "检查flac-devel软件包是否在yum源中"
dnf list available flac-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到flac-devel软件包"
exit 255
fi
# 检查是否已安装flac-devel
LOG_INFO "检查是否已安装flac-devel"
rpm -q flac-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "flac-devel已安装测试结束后保持安装状态"
already_installed=1
else
LOG_INFO "flac-devel未安装将安装作为测试步骤"
already_installed=0
fi
# 如果未安装则安装flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel失败"
fi
# 创建测试编译目录
LOG_INFO "创建测试编译目录"
test_dir="/tmp/flac_test_$$"
mkdir -p $test_dir
CHECK_RESULT $? 0 0 "创建测试目录失败"
# 创建示例C程序
LOG_INFO "创建使用flac库的示例程序"
cat > $test_dir/test_flac.c << "EOF"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <FLAC/stream_encoder.h>
int main() {
FLAC__StreamEncoder *encoder = FLAC__stream_encoder_new();
if (encoder == NULL) {
printf("Failed to create FLAC encoder\n");
return 1;
}
printf("FLAC encoder created successfully\n");
FLAC__stream_encoder_delete(encoder);
return 0;
}
EOF
# 编译示例程序
LOG_INFO "编译示例程序"
cd $test_dir
gcc -o test_flac test_flac.c -lFLAC -lm
CHECK_RESULT $? 0 0 "编译示例程序失败"
# 运行编译的程序
LOG_INFO "运行编译的程序"
./test_flac
CHECK_RESULT $? 0 0 "运行编译的程序失败"
# 清理测试目录
LOG_INFO "清理测试目录"
cd /
rm -rf $test_dir
CHECK_RESULT $? 0 0 "清理测试目录失败"
# 如果测试前未安装则卸载flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel失败"
fi
LOG_INFO "测试使用flac开发库编译示例程序完成"
}
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-10
# @License : Mulan PSL v2
# @Desc : 测试flac开发头文件的存在与完整性
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试flac开发头文件的存在与完整性
# 检查是否已安装flac-devel
LOG_INFO "检查是否已安装flac-devel软件包"
rpm -q flac-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "flac-devel已安装标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "flac-devel未安装标记为未安装状态"
INSTALLED="false"
fi
# 检查yum源中是否有flac-devel软件包
LOG_INFO "检查yum源中是否有flac-devel软件包"
dnf list available flac-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到flac-devel软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到flac-devel软件包"
exit 255
fi
# 如果未安装则安装flac-devel
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "开始安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel失败"
LOG_INFO "flac-devel安装成功"
fi
# 检查flac开发头文件是否存在
LOG_INFO "检查flac开发头文件是否存在"
ls /usr/include/FLAC/all.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/all.h头文件不存在"
ls /usr/include/FLAC/assert.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/assert.h头文件不存在"
ls /usr/include/FLAC/callback.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/callback.h头文件不存在"
ls /usr/include/FLAC/export.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/export.h头文件不存在"
ls /usr/include/FLAC/format.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/format.h头文件不存在"
ls /usr/include/FLAC/metadata.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/metadata.h头文件不存在"
ls /usr/include/FLAC/ordinals.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/ordinals.h头文件不存在"
ls /usr/include/FLAC/stream_decoder.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/stream_decoder.h头文件不存在"
ls /usr/include/FLAC/stream_encoder.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/stream_encoder.h头文件不存在"
# 检查头文件完整性(简单的内容检查)
LOG_INFO "检查flac头文件完整性"
grep -q "Copyright" /usr/include/FLAC/all.h
CHECK_RESULT $? 0 0 "FLAC/all.h头文件内容不完整"
grep -q "#ifndef FLAC__EXPORT_H" /usr/include/FLAC/export.h
CHECK_RESULT $? 0 0 "FLAC/export.h头文件内容不完整"
# 清理环境如果测试前未安装则卸载flac-devel
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "测试前已安装flac-devel保持安装状态"
fi
LOG_INFO "测试完成flac开发头文件存在且完整"
}
main "$@"

View File

@@ -1,105 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试flac开发库文件的存在与链接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试flac开发库文件的存在与链接
LOG_INFO "开始测试flac开发库文件的存在与链接"
# 检查是否已经安装flac-devel
LOG_INFO "检查flac-devel是否已经安装"
if rpm -q flac-devel > /dev/null 2>&1; then
LOG_INFO "flac-devel已经安装测试后将保持安装状态"
already_installed=1
else
LOG_INFO "flac-devel未安装将在测试过程中安装"
already_installed=0
fi
# 检查yum源中是否有flac-devel软件包
LOG_INFO "检查yum源中是否有flac-devel软件包"
if ! dnf list available flac-devel > /dev/null 2>&1; then
LOG_ERROR "yum源中没有flac-devel软件包"
exit 255
fi
# 如果未安装则安装flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel失败"
fi
# 测试flac开发库文件是否存在
LOG_INFO "测试flac开发库文件是否存在"
if [ -f /usr/include/FLAC/all.h ]; then
LOG_INFO "FLAC头文件存在: /usr/include/FLAC/all.h"
else
LOG_ERROR "FLAC头文件不存在: /usr/include/FLAC/all.h"
CHECK_RESULT 1 0 0 "FLAC头文件不存在"
fi
if [ -f /usr/lib64/libFLAC.so ] || [ -f /usr/lib/libFLAC.so ]; then
LOG_INFO "FLAC库文件存在"
else
LOG_ERROR "FLAC库文件不存在"
CHECK_RESULT 1 0 0 "FLAC库文件不存在"
fi
# 测试库文件是否能正确链接
LOG_INFO "测试FLAC库文件是否能正确链接"
cat > test_flac.c << "EOF"
#include <FLAC/all.h>
#include <stdio.h>
int main() {
printf("FLAC version: %s\n", FLAC__VERSION_STRING);
return 0;
}
EOF
# 编译测试程序
LOG_INFO "编译测试程序"
gcc -o test_flac test_flac.c -lFLAC
CHECK_RESULT $? 0 0 "编译FLAC测试程序失败"
# 运行测试程序
LOG_INFO "运行测试程序"
./test_flac
CHECK_RESULT $? 0 0 "运行FLAC测试程序失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_flac.c test_flac
# 如果测试前未安装则卸载flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel失败"
else
LOG_INFO "测试前已安装flac-devel保持安装状态"
fi
LOG_INFO "flac开发库文件的存在与链接测试完成"
}
main "$@"

View File

@@ -1,151 +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 : 测试flac-devel软件包能否正确卸载
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(如果未定义)
if ! type LOG_INFO &>/dev/null; then
LOG_INFO() {
echo "[INFO] $*"
}
fi
if ! type LOG_ERROR &>/dev/null; then
LOG_ERROR() {
echo "[ERROR] $*"
}
fi
# 定义检查结果函数(如果未定义)
if ! type CHECK_RESULT &>/dev/null; then
CHECK_RESULT() {
local actual=$1
local expected=$2
local error_code=$3
local message=$4
if [ "$actual" -eq "$expected" ]; then
LOG_INFO "检查通过: $message"
else
LOG_ERROR "检查失败: $message (期望: $expected, 实际: $actual)"
exit $error_code
fi
}
fi
# 定义SSH_CMD函数如果未定义
if ! type SSH_CMD &>/dev/null; then
SSH_CMD() {
local cmd=$1
local node_ip=$2
local node_password=$3
local node_user=$4
LOG_INFO "在节点 $node_ip 上执行命令: $cmd"
# 这里使用sshpass模拟SSH连接实际环境中可能需要调整
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
return $?
}
fi
# 主测试函数
test_flac_devel_uninstall() {
local package_name="flac-devel"
local installed_before_test=false
LOG_INFO "开始测试: 测试flac-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
LOG_INFO "yum源中存在 $package_name 软件包"
# 步骤2: 检查当前是否已安装
LOG_INFO "步骤2: 检查 $package_name 是否已安装"
if rpm -q "$package_name" &>/dev/null; then
LOG_INFO "$package_name 已安装"
installed_before_test=true
else
LOG_INFO "$package_name 未安装"
installed_before_test=false
fi
# 步骤3: 如果未安装,则先安装
if [ "$installed_before_test" = 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 已安装"
rpm -q "$package_name"
CHECK_RESULT $? 0 0 "验证 $package_name 安装状态失败"
LOG_INFO "验证 $package_name 安装成功"
# 步骤5: 卸载软件包
LOG_INFO "步骤5: 卸载 $package_name 软件包"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载 $package_name 失败"
LOG_INFO "卸载 $package_name 成功"
# 步骤6: 验证软件包已卸载
LOG_INFO "步骤6: 验证 $package_name 已卸载"
rpm -q "$package_name" &>/dev/null
local uninstall_check=$?
if [ $uninstall_check -eq 0 ]; then
LOG_ERROR "验证失败: $package_name 仍然存在"
CHECK_RESULT 1 0 1 "$package_name 卸载验证失败"
else
LOG_INFO "验证成功: $package_name 已卸载"
CHECK_RESULT 0 0 0 "$package_name 卸载验证成功"
fi
# 步骤7: 环境恢复
LOG_INFO "步骤7: 恢复测试环境"
if [ "$installed_before_test" = true ]; then
LOG_INFO "恢复安装 $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "恢复安装 $package_name 失败"
LOG_INFO "环境恢复完成: $package_name 已重新安装"
else
LOG_INFO "环境恢复: 保持 $package_name 未安装状态"
# 确保软件包确实未安装
if rpm -q "$package_name" &>/dev/null; then
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "清理 $package_name 失败"
fi
fi
LOG_INFO "测试完成: flac-devel软件包卸载功能测试通过"
}
# 执行测试
test_flac_devel_uninstall
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test displaying the help information
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(实际环境中可能已定义,此处仅为防止未定义而提供,实际使用时若已定义可删除)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义软件包名称和命令
PACKAGE_NAME="fxload"
COMMAND="fxload"
EXPECTED_PARAM="--help"
# 步骤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"
INSTALLED=0
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
fi
# 步骤3如果未安装则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4检查命令是否支持 --help 参数
LOG_INFO "步骤4检查命令 $COMMAND 是否支持参数 $EXPECTED_PARAM"
$COMMAND $EXPECTED_PARAM &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "命令 $COMMAND 不支持参数 $EXPECTED_PARAM 或参数不存在"
exit 255
fi
# 步骤5执行命令并验证输出
LOG_INFO "步骤5执行命令 $COMMAND $EXPECTED_PARAM 并验证输出"
OUTPUT=$($COMMAND $EXPECTED_PARAM 2>&1)
if echo "$OUTPUT" | grep -q "usage\|Usage\|help\|Help"; then
LOG_INFO "命令 $COMMAND $EXPECTED_PARAM 执行成功,输出包含帮助信息"
else
LOG_ERROR "命令 $COMMAND $EXPECTED_PARAM 执行失败,输出未包含帮助信息"
CHECK_RESULT 1 0 0 "命令输出验证失败"
fi
# 步骤6清理环境如果脚本开始时未安装则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤6卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "步骤6软件包 $PACKAGE_NAME 在脚本执行前已安装,保持安装状态"
fi
LOG_INFO "测试完成Test displaying the help information"
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test the removal of fxload-help package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装fxload-help
LOG_INFO "检查是否已安装fxload-help软件包"
rpm -q fxload-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "fxload-help已安装测试后将保持安装状态"
already_installed=1
else
LOG_INFO "fxload-help未安装将在测试过程中安装"
already_installed=0
fi
# 检查yum源中是否有fxload-help软件包
LOG_INFO "检查yum源中是否有fxload-help软件包"
dnf list available fxload-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到fxload-help软件包"
exit 255
fi
# 测试fxload-help命令的help参数
LOG_INFO "测试fxload-help命令的help参数"
fxload --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "fxload-help命令的help参数测试失败"
# 测试fxload-help命令的无效参数
LOG_INFO "测试fxload-help命令的无效参数"
fxload --invalid-param > /dev/null 2>&1
if [ $? -ne 255 ]; then
LOG_ERROR "fxload-help命令的无效参数测试失败"
exit 255
fi
# 如果之前未安装则安装fxload-help
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装fxload-help软件包"
dnf install -y fxload-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装fxload-help软件包失败"
fi
# 验证fxload-help安装成功
LOG_INFO "验证fxload-help安装成功"
rpm -q fxload-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "fxload-help安装验证失败"
# 测试fxload-help命令功能
LOG_INFO "测试fxload-help命令基本功能"
fxload --help | grep -i "usage" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "fxload-help命令基本功能测试失败"
# 如果之前未安装,测试结束后卸载软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载fxload-help软件包"
dnf remove -y fxload-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载fxload-help软件包失败"
# 验证卸载成功
LOG_INFO "验证fxload-help卸载成功"
rpm -q fxload-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "fxload-help卸载验证失败"
exit 1
fi
else
LOG_INFO "保持fxload-help安装状态不进行卸载"
fi
LOG_INFO "测试完成fxload-help软件包移除测试成功"
}
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-21
# @License : Mulan PSL v2
# @Desc : Test displaying the package version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:显示软件包版本"
# 检查环境是否已安装fxload
LOG_INFO "检查fxload是否已安装"
if rpm -q fxload &>/dev/null; then
LOG_INFO "fxload已安装测试后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "fxload未安装将在测试过程中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有fxload软件包
LOG_INFO "检查yum源中是否有fxload软件包"
if ! dnf list available fxload &>/dev/null; then
LOG_ERROR "yum源中未找到fxload软件包"
exit 255
fi
# 如果未安装则安装fxload
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装fxload软件包"
dnf install -y fxload
CHECK_RESULT $? 0 0 "安装fxload失败"
fi
# 测试显示版本参数
LOG_INFO "测试fxload --version参数"
if ! fxload --help | grep -q "\-\-version"; then
LOG_ERROR "fxload不支持--version参数"
# 清理环境
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载fxload软件包"
dnf remove -y fxload
fi
exit 255
fi
# 执行版本查询命令
LOG_INFO "执行fxload --version命令"
fxload --version
CHECK_RESULT $? 0 0 "执行fxload --version失败"
# 清理环境
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "测试完成卸载fxload软件包"
dnf remove -y fxload
CHECK_RESULT $? 0 0 "卸载fxload失败"
else
LOG_INFO "测试完成保持fxload安装状态"
fi
LOG_INFO "测试结束"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : Test package build functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本test_g2clib-devel_function_build
LOG_INFO "开始测试Test package build functionality"
# 检查环境是否已安装g2clib-devel
LOG_INFO "检查g2clib-devel是否已安装"
if dnf list installed g2clib-devel &>/dev/null; then
LOG_INFO "g2clib-devel已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "g2clib-devel未安装测试结束后将卸载"
INSTALLED=false
fi
# 检查yum源中是否有g2clib-devel
LOG_INFO "检查yum源中是否存在g2clib-devel"
if ! dnf list available g2clib-devel &>/dev/null; then
LOG_ERROR "yum源中未找到g2clib-devel退出测试"
exit 255
fi
# 安装g2clib-devel如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装g2clib-devel"
dnf install -y g2clib-devel
CHECK_RESULT $? 0 0 "安装g2clib-devel失败"
fi
# 测试构建功能
LOG_INFO "测试g2clib-devel的构建功能"
if ! command -v g2clib-build &>/dev/null; then
LOG_ERROR "g2clib-build命令不存在或不支持退出测试"
exit 255
fi
LOG_INFO "执行g2clib-build命令"
g2clib-build
CHECK_RESULT $? 0 0 "g2clib-build命令执行失败"
# 清理环境(如果测试前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载g2clib-devel"
dnf remove -y g2clib-devel
CHECK_RESULT $? 0 0 "卸载g2clib-devel失败"
fi
LOG_INFO "测试完成Test package build functionality"
}
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-02-09
# @License : Mulan PSL v2
# @Desc : 测试启动时不使用SCdaemon的gpg-agent
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装gnupg2和gpg-agent
LOG_INFO "检查是否已安装gnupg2和gpg-agent"
if rpm -q gnupg2 >/dev/null 2>&1; then
LOG_INFO "gnupg2已安装"
INSTALLED=true
else
LOG_INFO "gnupg2未安装"
INSTALLED=false
fi
# 检查yum源中是否有gnupg2软件包
LOG_INFO "检查yum源中是否有gnupg2软件包"
if ! dnf list available gnupg2 >/dev/null 2>&1; then
LOG_ERROR "yum源中没有gnupg2软件包"
exit 255
fi
# 如果未安装则安装gnupg2
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装gnupg2软件包"
dnf install -y gnupg2
CHECK_RESULT $? 0 0 "安装gnupg2失败"
fi
# 检查gpg-agent是否支持--disable-scdaemon参数
LOG_INFO "检查gpg-agent是否支持--disable-scdaemon参数"
if ! gpg-agent --help 2>&1 | grep -q "disable-scdaemon"; then
LOG_ERROR "gpg-agent不支持--disable-scdaemon参数"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载gnupg2软件包"
dnf remove -y gnupg2
fi
exit 255
fi
# 测试启动时不使用SCdaemon的gpg-agent
LOG_INFO "测试启动时不使用SCdaemon的gpg-agent"
gpg-agent --daemon --disable-scdaemon
CHECK_RESULT $? 0 0 "启动gpg-agent失败"
# 检查gpg-agent进程是否在运行
LOG_INFO "检查gpg-agent进程是否在运行"
ps aux | grep -q "[g]pg-agent --daemon --disable-scdaemon"
CHECK_RESULT $? 0 0 "gpg-agent进程未运行"
# 停止gpg-agent进程
LOG_INFO "停止gpg-agent进程"
gpgconf --kill gpg-agent
CHECK_RESULT $? 0 0 "停止gpg-agent失败"
# 环境恢复如果之前未安装则卸载gnupg2
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载gnupg2软件包"
dnf remove -y gnupg2
CHECK_RESULT $? 0 0 "卸载gnupg2失败"
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-01-31
# @License : Mulan PSL v2
# @Desc : 测试设置新密码短语中至少需要非字母字符的数量
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试设置新密码短语中至少需要非字母字符的数量"
# 定义软件包名称
PACKAGE_NAME="gnupg2"
# 检查环境是否已安装gnupg2
LOG_INFO "步骤1检查gnupg2是否已安装"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "gnupg2已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "gnupg2未安装将在测试过程中安装并在结束时卸载"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有gnupg2软件包
LOG_INFO "步骤2检查yum源中是否有gnupg2软件包"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到gnupg2软件包"
exit 255
fi
# 如果未安装则安装gnupg2
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤3安装gnupg2软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装gnupg2失败"
fi
# 检查gpg-agent是否支持--min-passphrase-nonalpha参数
LOG_INFO "步骤4检查gpg-agent是否支持--min-passphrase-nonalpha参数"
gpg-agent --help | grep -q -- "--min-passphrase-nonalpha"
if [ $? -ne 0 ]; then
LOG_ERROR "gpg-agent不支持--min-passphrase-nonalpha参数"
exit 255
fi
# 测试设置新密码短语中至少需要非字母字符的数量
LOG_INFO "步骤5测试设置新密码短语中至少需要非字母字符的数量"
gpg-agent --min-passphrase-nonalpha 2 --daemon
CHECK_RESULT $? 0 0 "设置非字母字符数量失败"
# 清理环境如果之前未安装则卸载gnupg2
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤6卸载gnupg2软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载gnupg2失败"
else
LOG_INFO "步骤6保持gnupg2安装状态无需卸载"
fi
LOG_INFO "测试完成:测试设置新密码短语中至少需要非字母字符的数量"
}
main "$@"

View File

@@ -1,159 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-31
# @License : Mulan PSL v2
# @Desc : 测试在已安装hdparm或相关软件包的系统上安装hdparm-help是否会产生文件冲突或依赖问题。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装hdparm或相关软件包
LOG_INFO "检查系统是否已安装hdparm或相关软件包"
# 定义软件包名称
HDPARM_PKG="hdparm"
HDPARM_HELP_PKG="hdparm-help"
MAIN_PKG_INSTALLED=0
HELP_PKG_INSTALLED=0
# 检查hdparm是否已安装
if rpm -q ${HDPARM_PKG} > /dev/null 2>&1; then
LOG_INFO "检测到系统已安装${HDPARM_PKG}"
MAIN_PKG_INSTALLED=1
else
LOG_INFO "系统未安装${HDPARM_PKG}"
fi
# 检查hdparm-help是否已安装
if rpm -q ${HDPARM_HELP_PKG} > /dev/null 2>&1; then
LOG_INFO "检测到系统已安装${HDPARM_HELP_PKG}"
HELP_PKG_INSTALLED=1
else
LOG_INFO "系统未安装${HDPARM_HELP_PKG}"
fi
# 检查yum源中是否有hdparm-help软件包
LOG_INFO "检查yum源中是否有${HDPARM_HELP_PKG}软件包"
if ! dnf search ${HDPARM_HELP_PKG} 2>/dev/null | grep -q "${HDPARM_HELP_PKG}"; then
LOG_ERROR "yum源中未找到${HDPARM_HELP_PKG}软件包"
exit 255
fi
LOG_INFO "yum源中存在${HDPARM_HELP_PKG}软件包"
# 检查yum源中是否有hdparm软件包
LOG_INFO "检查yum源中是否有${HDPARM_PKG}软件包"
if ! dnf search ${HDPARM_PKG} 2>/dev/null | grep -q "${HDPARM_PKG}"; then
LOG_ERROR "yum源中未找到${HDPARM_PKG}软件包"
exit 255
fi
LOG_INFO "yum源中存在${HDPARM_PKG}软件包"
# 记录初始安装状态
INITIAL_MAIN_PKG=${MAIN_PKG_INSTALLED}
INITIAL_HELP_PKG=${HELP_PKG_INSTALLED}
# 如果hdparm未安装则安装它作为测试前提
if [ ${MAIN_PKG_INSTALLED} -eq 0 ]; then
LOG_INFO "安装${HDPARM_PKG}软件包作为测试前提"
dnf install -y ${HDPARM_PKG}
CHECK_RESULT $? 0 0 "安装${HDPARM_PKG}失败"
MAIN_PKG_INSTALLED=1
fi
# 测试安装hdparm-help
LOG_INFO "测试安装${HDPARM_HELP_PKG}软件包"
dnf install -y ${HDPARM_HELP_PKG}
INSTALL_RESULT=$?
# 检查安装结果
if [ ${INSTALL_RESULT} -eq 0 ]; then
LOG_INFO "${HDPARM_HELP_PKG}安装成功"
HELP_PKG_INSTALLED=1
# 验证hdparm-help是否成功安装
LOG_INFO "验证${HDPARM_HELP_PKG}是否成功安装"
rpm -q ${HDPARM_HELP_PKG}
CHECK_RESULT $? 0 0 "${HDPARM_HELP_PKG}安装验证失败"
# 检查是否有文件冲突
LOG_INFO "检查安装${HDPARM_HELP_PKG}后是否有文件冲突"
CONFLICTS=$(rpm -q --conflicts ${HDPARM_HELP_PKG} 2>/dev/null)
if [ -n "${CONFLICTS}" ]; then
LOG_INFO "检测到以下文件冲突:${CONFLICTS}"
else
LOG_INFO "未检测到文件冲突"
fi
# 检查依赖关系
LOG_INFO "检查${HDPARM_HELP_PKG}的依赖关系"
rpm -q --requires ${HDPARM_HELP_PKG}
CHECK_RESULT $? 0 0 "检查${HDPARM_HELP_PKG}依赖关系失败"
# 测试hdparm-help提供的功能
LOG_INFO "测试${HDPARM_HELP_PKG}提供的帮助功能"
if command -v hdparm >/dev/null 2>&1; then
hdparm --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "hdparm --help命令执行失败"
fi
else
LOG_ERROR "${HDPARM_HELP_PKG}安装失败,退出码:${INSTALL_RESULT}"
# 检查是否为依赖问题
if [ ${INSTALL_RESULT} -eq 1 ]; then
LOG_ERROR "可能是依赖问题导致安装失败"
fi
# 检查是否为冲突问题
dnf install -y ${HDPARM_HELP_PKG} 2>&1 | grep -i "conflict"
CONFLICT_CHECK=$?
if [ ${CONFLICT_CHECK} -eq 0 ]; then
LOG_ERROR "检测到软件包冲突"
fi
fi
# 环境恢复
LOG_INFO "开始恢复测试环境"
# 如果测试前未安装hdparm-help则卸载它
if [ ${INITIAL_HELP_PKG} -eq 0 ] && [ ${HELP_PKG_INSTALLED} -eq 1 ]; then
LOG_INFO "卸载测试安装的${HDPARM_HELP_PKG}软件包"
dnf remove -y ${HDPARM_HELP_PKG}
CHECK_RESULT $? 0 0 "卸载${HDPARM_HELP_PKG}失败"
fi
# 如果测试前未安装hdparm则卸载它
if [ ${INITIAL_MAIN_PKG} -eq 0 ] && [ ${MAIN_PKG_INSTALLED} -eq 1 ]; then
LOG_INFO "卸载测试安装的${HDPARM_PKG}软件包"
dnf remove -y ${HDPARM_PKG}
CHECK_RESULT $? 0 0 "卸载${HDPARM_PKG}失败"
fi
# 验证环境已恢复
LOG_INFO "验证测试环境已恢复"
if [ ${INITIAL_HELP_PKG} -eq 0 ]; then
rpm -q ${HDPARM_HELP_PKG} > /dev/null 2>&1
CHECK_RESULT $? 1 0 "环境恢复失败:${HDPARM_HELP_PKG}未被正确卸载"
fi
if [ ${INITIAL_MAIN_PKG} -eq 0 ]; then
rpm -q ${HDPARM_PKG} > /dev/null 2>&1
CHECK_RESULT $? 1 0 "环境恢复失败:${HDPARM_PKG}未被正确卸载"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-31
# @License : Mulan PSL v2
# @Desc : 测试hdparm-help软件包安装后其核心手册页文件的完整性如校验MD5或SHA256值
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装hdparm-help软件包
LOG_INFO "检查hdparm-help软件包是否已安装"
if rpm -q hdparm-help &> /dev/null; then
LOG_INFO "hdparm-help软件包已安装标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "hdparm-help软件包未安装"
KEEP_INSTALLED=0
fi
# 检查yum源中是否有hdparm-help软件包
LOG_INFO "检查yum源中是否有hdparm-help软件包"
if ! dnf list available hdparm-help &> /dev/null; then
LOG_ERROR "yum源中未找到hdparm-help软件包"
exit 255
fi
# 如果未安装则安装hdparm-help软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装hdparm-help软件包"
dnf install -y hdparm-help
CHECK_RESULT $? 0 0 "安装hdparm-help软件包失败"
LOG_INFO "hdparm-help软件包安装成功"
fi
# 检查hdparm-help软件包的核心手册页文件
LOG_INFO "检查hdparm-help软件包的核心手册页文件"
rpm -ql hdparm-help | grep -E "\.(gz|bz2|xz)$" > /tmp/hdparm-help-files.txt
CHECK_RESULT $? 0 0 "获取hdparm-help软件包文件列表失败"
# 校验核心手册页文件的完整性
LOG_INFO "开始校验核心手册页文件的完整性"
while IFS= read -r file; do
if [ -f "$file" ]; then
# 使用rpm -V验证文件完整性
rpm -V hdparm-help "$file" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "文件 $file 完整性校验失败"
LOG_INFO "文件 $file 完整性校验通过"
else
LOG_ERROR "文件 $file 不存在"
exit 1
fi
done < /tmp/hdparm-help-files.txt
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/hdparm-help-files.txt
# 如果测试前未安装,则在测试结束后卸载软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "测试前未安装hdparm-help现在卸载软件包"
dnf remove -y hdparm-help
CHECK_RESULT $? 0 0 "卸载hdparm-help软件包失败"
LOG_INFO "hdparm-help软件包卸载成功"
else
LOG_INFO "测试前已安装hdparm-help保持安装状态"
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-31
# @License : Mulan PSL v2
# @Desc : 测试在无网络环境下通过本地软件包仓库或离线包能否成功安装hdparm-help软件包。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装hdparm-help
LOG_INFO "检查hdparm-help是否已安装"
rpm -q hdparm-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "hdparm-help已安装脚本结束后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "hdparm-help未安装将在测试后卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有hdparm-help软件包
LOG_INFO "检查yum源中是否有hdparm-help软件包"
dnf list available hdparm-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到hdparm-help软件包"
exit 255
fi
# 检查hdparm-help命令参数
LOG_INFO "检查hdparm-help命令参数"
hdparm --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "hdparm-help命令参数不存在或不支持"
exit 255
fi
# 安装hdparm-help软件包
LOG_INFO "开始安装hdparm-help软件包"
dnf install -y hdparm-help
CHECK_RESULT $? 0 0 "安装hdparm-help失败"
# 验证hdparm-help是否安装成功
LOG_INFO "验证hdparm-help是否安装成功"
rpm -q hdparm-help
CHECK_RESULT $? 0 0 "hdparm-help未安装成功"
# 测试hdparm-help命令功能
LOG_INFO "测试hdparm-help命令功能"
hdparm --help | grep -q "Usage"
CHECK_RESULT $? 0 0 "hdparm-help命令功能异常"
# 清理环境
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "清理环境卸载hdparm-help软件包"
dnf remove -y hdparm-help
CHECK_RESULT $? 0 0 "卸载hdparm-help失败"
else
LOG_INFO "保持hdparm-help安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,122 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-31
# @License : Mulan PSL v2
# @Desc : 测试通过包管理器查询hdparm-help软件包的版本信息验证其版本号与预期一致。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出如果LOG_INFO/LOG_ERROR未定义则定义基本版本
if ! command -v LOG_INFO >/dev/null 2>&1; then
LOG_INFO() {
echo "[INFO] $*"
}
fi
if ! command -v LOG_ERROR >/dev/null 2>&1; then
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
fi
# 定义软件包名称和命令
PACKAGE_NAME="hdparm"
COMMAND="hdparm"
EXPECTED_VERSION="9.65" # 根据实际需求调整预期版本
# 步骤1: 检查环境是否已安装hdparm
LOG_INFO "步骤1: 检查是否已安装hdparm软件包"
if command -v $COMMAND >/dev/null 2>&1; then
LOG_INFO "hdparm已安装标记为无需清理"
NEED_CLEANUP=0
else
LOG_INFO "hdparm未安装标记为需要清理"
NEED_CLEANUP=1
fi
# 步骤2: 检查yum源中是否存在hdparm软件包
LOG_INFO "步骤2: 检查yum源中是否存在hdparm软件包"
if ! dnf list available $PACKAGE_NAME --quiet >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到hdparm软件包"
exit 255
fi
# 步骤3: 如果未安装则安装hdparm
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤3: 安装hdparm软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装hdparm失败"
fi
# 步骤4: 检查hdparm命令是否支持--help参数
LOG_INFO "步骤4: 检查hdparm命令是否支持--help参数"
if ! $COMMAND --help >/dev/null 2>&1; then
LOG_ERROR "hdparm命令不支持--help参数"
# 如果之前安装了软件包,需要卸载
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤5: 获取hdparm的版本信息
LOG_INFO "步骤5: 获取hdparm的版本信息"
VERSION_OUTPUT=$($COMMAND --version 2>&1)
if [ $? -ne 0 ]; then
LOG_ERROR "获取hdparm版本信息失败"
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 1
fi
# 步骤6: 从版本输出中提取版本号
LOG_INFO "步骤6: 从版本输出中提取版本号"
VERSION=$(echo "$VERSION_OUTPUT" | grep -oP "v\d+\.\d+" | head -1 | sed "s/v//")
if [ -z "$VERSION" ]; then
LOG_ERROR "无法从输出中提取版本号"
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 1
fi
LOG_INFO "提取到的版本号为: $VERSION"
# 步骤7: 验证版本号是否符合预期
LOG_INFO "步骤7: 验证版本号是否符合预期"
if [ "$VERSION" = "$EXPECTED_VERSION" ]; then
LOG_INFO "版本号验证通过: 期望 $EXPECTED_VERSION, 实际 $VERSION"
else
LOG_ERROR "版本号验证失败: 期望 $EXPECTED_VERSION, 实际 $VERSION"
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 1
fi
# 步骤8: 清理环境(如果之前安装了软件包)
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤8: 卸载hdparm软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载hdparm失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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 : 2025-12-04
# @License : Mulan PSL v2
# @Desc : 测试 Huawei 命令的基本功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装指定软件包
check_package_installed() {
local package_name=$1
if dnf list installed "$package_name" &>/dev/null; then
LOG_INFO "软件包 $package_name 已安装"
return 0
else
LOG_INFO "软件包 $package_name 未安装"
return 1
fi
}
# 检查yum源中是否有指定软件包
check_package_available() {
local package_name=$1
if dnf list available "$package_name" &>/dev/null; then
LOG_INFO "yum源中存在软件包 $package_name"
return 0
else
LOG_ERROR "yum源中不存在软件包 $package_name"
exit 255
fi
}
# 安装指定软件包
install_package() {
local package_name=$1
LOG_INFO "开始安装软件包 $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
}
# 卸载指定软件包
uninstall_package() {
local package_name=$1
LOG_INFO "开始卸载软件包 $package_name"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
}
# 执行命令并检查结果,支持参数检查与命令执行结果检查
execute_command() {
local command=$1
local expected_exit_code=${2:-0}
# 检查命令是否存在或参数是否支持
if ! command -v "${command%% *}" &>/dev/null; then
LOG_ERROR "命令 ${command%% *} 不存在或不支持"
exit 255
fi
# 执行命令并检查结果
eval "$command"
CHECK_RESULT $? $expected_exit_code 255 \
"执行命令 $command 失败"
}
main() {
LOG_INFO "测试 Huawei 命令的基本功能"
PACKAGE_NAME="kunpengsecl-tas"
# 判断环境是否已安装
if check_package_installed "$PACKAGE_NAME"; then
INSTALLED=true
else
INSTALLED=false
fi
# 如果未安装,则进行安装
if ! "$INSTALLED"; then
check_package_available "$PACKAGE_NAME"
install_package "$PACKAGE_NAME"
fi
LOG_INFO "开始执行 Huawei TAS 相关测试命令..."
execute_command "Huawei --version" 0
if [ "$INSTALLED" = false ]; then
uninstall_package "$PACKAGE_NAME"
fi
}
main "$@"
}
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 : 2025-12-04
# @License : Mulan PSL v2
# @Desc : 测试软件包 kunpengsecl-tas 的配置文件加载功能,验证配置是否正确解析和应用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 kunpengsecl-tas 的配置文件加载功能"
# 检查是否已安装 kunpengsecl-tas
LOG_INFO "检查 kunpengsecl-tas 是否已安装"
if dnf list installed kunpengsecl-tas &>/dev/null; then
LOG_INFO "kunpengsecl-tas 已安装"
installed=true
else
LOG_INFO "kunpengsecl-tas 未安装"
installed=false
fi
# 检查 yum 源中是否有 kunpengsecl-tas 软件包
LOG_INFO "检查 yum 源中是否有 kunpengsecl-tas 软件包"
if ! dnf list available kunpengsecl-tas &>/dev/null; then
LOG_ERROR "yum 源中未找到 kunpengsecl-tas 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 kunpengsecl-tas 软件包"
dnf install -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "安装 kunpengsecl-tas 失败"
fi
# 测试配置文件加载功能
LOG_INFO "测试配置文件加载功能"
tas_config="/etc/kunpengsecl/tas/config.yaml"
if [ ! -f "$tas_config" ]; then
LOG_ERROR "配置文件 $tas_config 不存在"
exit 255
fi
# 验证配置是否正确解析和应用
LOG_INFO "验证配置是否正确解析和应用"
tas_output=$(tas --config "$tas_config" --validate)
CHECK_RESULT $? 0 0 "配置文件验证失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载 kunpengsecl-tas 软件包"
dnf remove -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "卸载 kunpengsecl-tas 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-04
# @License : Mulan PSL v2
# @Desc : 测试 tas 命令的 -T 参数,用于生成 rest api 的测试 token
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 tas 命令的 -T 参数,用于生成 rest api 的测试 token
LOG_INFO "开始测试 tas 命令的 -T 参数"
# 检查是否已安装 kunpengsecl-tas 软件包
LOG_INFO "检查 kunpengsecl-tas 是否已安装"
if rpm -q kunpengsecl-tas &>/dev/null; then
LOG_INFO "kunpengsecl-tas 已安装"
installed=true
else
LOG_INFO "kunpengsecl-tas 未安装"
installed=false
fi
# 如果未安装,尝试从 yum 源安装
if ! $installed; then
LOG_INFO "尝试从 yum 源安装 kunpengsecl-tas"
if ! dnf list available kunpengsecl-tas &>/dev/null; then
LOG_ERROR "yum 源中未找到 kunpengsecl-tas 软件包"
exit 255
fi
dnf install -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "安装 kunpengsecl-tas 失败"
fi
# 检查 tas 命令是否支持 -T 参数
LOG_INFO "检查 tas 命令是否支持 -T 参数"
tas -h | grep -q -- "-T" || {
LOG_ERROR "tas 命令不支持 -T 参数"
exit 255
}
#执行 tas -T生成测试 token
LOG_INFO "执行 tas -T 生成测试 token"
tas -T
CHECK_RESULT $? 0 0 "tas -T 执行失败"
#清理环境
if ! $installed; then
LOG_INFO "卸载 kunpengsecl-tas"
dnf remove -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "卸载 kunpengsecl-tas失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,147 +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 : 测试toPlainObject函数将对象转换为普通对象的基本功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试环境准备
LOG_INFO "开始测试nodejs-lodash的toPlainObject函数基本功能"
# 定义软件包名称
PACKAGE_NAME="nodejs-lodash"
LOG_INFO "检查${PACKAGE_NAME}软件包是否在yum源中"
# 检查yum源中是否存在该软件包
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "检查当前环境是否已安装${PACKAGE_NAME}"
# 检查是否已安装
INSTALLED=false
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "${PACKAGE_NAME}已安装"
INSTALLED=true
else
LOG_INFO "${PACKAGE_NAME}未安装,将作为测试步骤安装"
fi
# 安装软件包(如果未安装)
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 测试toPlainObject函数基本功能
LOG_INFO "测试toPlainObject函数将对象转换为普通对象的基本功能"
# 创建测试脚本
TEST_SCRIPT="/tmp/test_lodash.js"
cat > ${TEST_SCRIPT} << "EOF"
const _ = require("lodash");
// 测试1普通对象转换
function testBasicObject() {
const obj = { a: 1, b: 2 };
const plainObj = _.toPlainObject(obj);
console.log("Test 1 - Basic object conversion:");
console.log("Original:", obj);
console.log("Result:", plainObj);
console.log("Type of result:", typeof plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("");
}
// 测试2嵌套对象转换
function testNestedObject() {
const obj = { a: 1, b: { c: 2, d: { e: 3 } } };
const plainObj = _.toPlainObject(obj);
console.log("Test 2 - Nested object conversion:");
console.log("Original:", obj);
console.log("Result:", plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("Is nested object plain?", _.isPlainObject(plainObj.b.d));
console.log("");
}
// 测试3数组转换
function testArrayConversion() {
const arr = [1, 2, 3];
const plainObj = _.toPlainObject(arr);
console.log("Test 3 - Array conversion:");
console.log("Original array:", arr);
console.log("Result:", plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("");
}
// 测试4函数参数转换
function testFunctionArguments() {
function testFunc(a, b) {
const plainObj = _.toPlainObject(arguments);
console.log("Test 4 - Function arguments conversion:");
console.log("Arguments:", arguments);
console.log("Result:", plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("");
}
testFunc("x", "y");
}
// 执行所有测试
try {
testBasicObject();
testNestedObject();
testArrayConversion();
testFunctionArguments();
console.log("All tests completed successfully");
process.exit(0);
} catch (error) {
console.error("Test failed:", error);
process.exit(1);
}
EOF
LOG_INFO "执行toPlainObject函数测试"
node ${TEST_SCRIPT}
CHECK_RESULT $? 0 0 "toPlainObject函数基本功能测试失败"
# 清理测试脚本
LOG_INFO "清理测试脚本"
rm -f ${TEST_SCRIPT}
# 环境恢复
LOG_INFO "恢复测试环境"
# 如果测试前未安装,则卸载软件包
if [ "${INSTALLED}" = "false" ]; 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 "$@"

View File

@@ -1,110 +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 : 测试toPlainObject函数对继承属性的转换处理
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境初始化
LOG_INFO "开始测试测试toPlainObject函数对继承属性的转换处理"
LOG_INFO "步骤1检查是否已安装nodejs和lodash"
if dnf list installed nodejs > /dev/null 2>&1 && dnf list installed nodejs-lodash > /dev/null 2>&1; then
LOG_INFO "nodejs和lodash已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "nodejs和lodash未安装将在测试前安装"
INSTALLED=0
fi
# 检查软件包是否在yum源中
LOG_INFO "步骤2检查yum源中是否有nodejs和nodejs-lodash软件包"
if ! dnf list available nodejs > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到nodejs软件包"
exit 255
fi
if ! dnf list available nodejs-lodash > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到nodejs-lodash软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装nodejs和nodejs-lodash"
dnf install -y nodejs nodejs-lodash
CHECK_RESULT $? 0 0 "安装nodejs和nodejs-lodash失败"
fi
# 创建测试脚本
LOG_INFO "步骤4创建测试脚本test_lodash.js"
cat > /tmp/test_lodash.js << "EOF"
const _ = require("lodash");
// 创建一个父类
function Parent() {
this.parentProp = "parentValue";
}
// 创建一个子类
function Child() {
this.childProp = "childValue";
}
// 设置继承
Child.prototype = new Parent();
Child.prototype.constructor = Child;
// 创建子类实例
const childInstance = new Child();
// 使用toPlainObject转换
const plainObject = _.toPlainObject(childInstance);
console.log("parentProp in plainObject:", plainObject.parentProp);
console.log("childProp in plainObject:", plainObject.childProp);
EOF
CHECK_RESULT $? 0 0 "创建测试脚本失败"
# 执行测试
LOG_INFO "步骤5执行测试脚本"
node /tmp/test_lodash.js > /tmp/test_output.txt 2>&1
CHECK_RESULT $? 0 0 "执行测试脚本失败"
# 检查测试结果
LOG_INFO "步骤6检查测试结果"
if grep -q "parentProp in plainObject: parentValue" /tmp/test_output.txt && grep -q "childProp in plainObject: childValue" /tmp/test_output.txt; then
LOG_INFO "测试通过toPlainObject正确转换了继承属性"
else
LOG_ERROR "测试失败toPlainObject未能正确转换继承属性"
cat /tmp/test_output.txt
exit 1
fi
# 环境清理
LOG_INFO "步骤7清理临时文件"
rm -f /tmp/test_lodash.js /tmp/test_output.txt
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 卸载软件包(如果测试前未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤8卸载nodejs和nodejs-lodash"
dnf remove -y nodejs nodejs-lodash
CHECK_RESULT $? 0 0 "卸载nodejs和nodejs-lodash失败"
else
LOG_INFO "步骤8保持nodejs和nodejs-lodash安装状态"
fi
LOG_INFO "测试完成测试toPlainObject函数对继承属性的转换处理"
}
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-02-22
# @License : Mulan PSL v2
# @Desc : 测试软件包nodejs-lodash-toplainobject能否通过包管理器如npm正常安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查当前环境是否已安装nodejs-lodash-toplainobject
LOG_INFO "开始测试验证nodejs-lodash-toplainobject能否通过包管理器正常安装"
LOG_INFO "步骤1检查当前环境是否已安装nodejs-lodash-toplainobject软件包"
if rpm -q nodejs-lodash-toplainobject &>/dev/null; then
LOG_INFO "检测到nodejs-lodash-toplainobject已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "当前环境未安装nodejs-lodash-toplainobject将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否存在nodejs-lodash-toplainobject软件包
LOG_INFO "步骤2检查yum源中是否存在nodejs-lodash-toplainobject软件包"
if ! dnf list available nodejs-lodash-toplainobject &>/dev/null; then
LOG_ERROR "yum源中未找到nodejs-lodash-toplainobject软件包"
exit 255
fi
LOG_INFO "yum源中存在nodejs-lodash-toplainobject软件包"
# 安装nodejs-lodash-toplainobject软件包如果未安装
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3通过dnf安装nodejs-lodash-toplainobject软件包"
dnf install -y nodejs-lodash-toplainobject
CHECK_RESULT $? 0 0 "安装nodejs-lodash-toplainobject失败"
LOG_INFO "nodejs-lodash-toplainobject软件包安装成功"
fi
# 验证nodejs-lodash-toplainobject软件包是否已正确安装
LOG_INFO "步骤4验证nodejs-lodash-toplainobject软件包是否已正确安装"
rpm -q nodejs-lodash-toplainobject
CHECK_RESULT $? 0 0 "验证nodejs-lodash-toplainobject软件包安装状态失败"
# 测试通过包管理器如npm正常安装lodash的toplainobject功能
LOG_INFO "步骤5测试通过npm安装lodash并验证toplainobject功能"
# 检查npm命令是否可用
if ! command -v npm &>/dev/null; then
LOG_ERROR "npm命令未找到无法进行包管理器安装测试"
exit 255
fi
# 创建一个临时目录用于测试
TEST_DIR=$(mktemp -d)
cd "$TEST_DIR" || exit 1
# 初始化npm项目
LOG_INFO "在临时目录中初始化npm项目"
npm init -y
CHECK_RESULT $? 0 0 "npm初始化失败"
# 安装lodash软件包
LOG_INFO "通过npm安装lodash软件包"
npm install lodash
CHECK_RESULT $? 0 0 "npm安装lodash失败"
# 创建一个简单的测试脚本来验证toplainobject功能
LOG_INFO "创建测试脚本验证lodash的toplainobject功能"
cat > test_toplainobject.js << "EOF"
const _ = require("lodash");
function Foo() {
this.a = 1;
}
Foo.prototype.b = 2;
const foo = new Foo();
const plainObj = _.toPlainObject(foo);
console.log("Testing toPlainObject function...");
console.log("Original object:", foo);
console.log("Plain object:", plainObj);
if (plainObj.a === 1 && !plainObj.hasOwnProperty("b")) {
console.log("SUCCESS: toPlainObject function works correctly");
process.exit(0);
} else {
console.log("FAILURE: toPlainObject function does not work as expected");
process.exit(1);
}
EOF
# 执行测试脚本
LOG_INFO "执行测试脚本验证toplainobject功能"
node test_toplainobject.js
CHECK_RESULT $? 0 0 "lodash的toplainobject功能测试失败"
LOG_INFO "lodash的toplainobject功能测试成功"
# 清理临时测试目录
LOG_INFO "清理临时测试目录"
cd /tmp || exit 1
rm -rf "$TEST_DIR"
# 环境恢复:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤6恢复测试环境卸载测试安装的nodejs-lodash-toplainobject软件包"
dnf remove -y nodejs-lodash-toplainobject
CHECK_RESULT $? 0 0 "卸载nodejs-lodash-toplainobject失败"
LOG_INFO "nodejs-lodash-toplainobject软件包已成功卸载"
else
LOG_INFO "步骤6测试前已安装nodejs-lodash-toplainobject保持安装状态不变"
fi
LOG_INFO "测试完成nodejs-lodash-toplainobject能通过包管理器正常安装"
}
main "$@"

View File

@@ -1,103 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试在Node.js环境中能够成功require引入lodash.toplainobject模块
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境检查检查Node.js是否已安装
LOG_INFO "检查Node.js是否已安装"
if command -v node &> /dev/null; then
LOG_INFO "Node.js已安装脚本结束后将保持安装状态"
NODEJS_INSTALLED=true
else
LOG_INFO "Node.js未安装将在测试步骤中安装"
NODEJS_INSTALLED=false
fi
# 检查yum源中是否有Node.js软件包
LOG_INFO "检查yum源中是否有Node.js软件包"
if ! dnf list available nodejs &> /dev/null; then
LOG_ERROR "yum源中未找到Node.js软件包"
exit 255
fi
# 如果Node.js未安装则安装Node.js
if [ "$NODEJS_INSTALLED" = false ]; then
LOG_INFO "安装Node.js"
dnf install -y nodejs
CHECK_RESULT $? 0 0 "安装Node.js失败"
fi
# 检查Node.js环境
LOG_INFO "检查Node.js环境"
node --version
CHECK_RESULT $? 0 0 "Node.js环境检查失败"
# 创建测试目录
LOG_INFO "创建测试目录"
mkdir -p /tmp/test_nodejs_lodash
cd /tmp/test_nodejs_lodash
CHECK_RESULT $? 0 0 "创建测试目录失败"
# 初始化npm项目
LOG_INFO "初始化npm项目"
npm init -y
CHECK_RESULT $? 0 0 "初始化npm项目失败"
# 安装lodash.toplainobject模块
LOG_INFO "安装lodash.toplainobject模块"
npm install lodash.toplainobject
CHECK_RESULT $? 0 0 "安装lodash.toplainobject模块失败"
# 创建测试脚本
LOG_INFO "创建测试脚本"
cat > test_require.js << "EOF"
const toPlainObject = require("lodash.toplainobject");
if (typeof toPlainObject === "function") {
console.log("SUCCESS: lodash.toplainobject模块成功引入");
process.exit(0);
} else {
console.error("FAILURE: lodash.toplainobject模块引入失败");
process.exit(1);
}
EOF
CHECK_RESULT $? 0 0 "创建测试脚本失败"
# 执行测试脚本
LOG_INFO "执行测试脚本"
node test_require.js
CHECK_RESULT $? 0 0 "测试脚本执行失败无法成功require引入lodash.toplainobject模块"
# 清理测试目录
LOG_INFO "清理测试目录"
cd /
rm -rf /tmp/test_nodejs_lodash
CHECK_RESULT $? 0 0 "清理测试目录失败"
# 如果Node.js是本次脚本安装的则卸载Node.js
if [ "$NODEJS_INSTALLED" = false ]; then
LOG_INFO "卸载Node.js"
dnf remove -y nodejs
CHECK_RESULT $? 0 0 "卸载Node.js失败"
fi
LOG_INFO "测试完成Node.js环境中能够成功require引入lodash.toplainobject模块"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test accessing module help or documentation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python3-meh软件包
LOG_INFO "检查python3-meh软件包是否已安装"
rpm -q python3-meh > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-meh已安装记录当前状态"
INSTALLED=1
else
LOG_INFO "python3-meh未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否存在python3-meh软件包
LOG_INFO "检查yum源中是否存在python3-meh软件包"
dnf list available python3-meh > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python3-meh软件包"
exit 255
fi
# 如果未安装则安装python3-meh软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-meh软件包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "安装python3-meh失败"
fi
# 测试访问模块帮助或文档
LOG_INFO "测试访问python3-meh模块帮助"
python3 -c "import meh; help(meh)" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "访问python3-meh模块帮助失败"
LOG_INFO "测试访问python3-meh模块文档"
python3 -c "import meh; print(meh.__doc__)" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "访问python3-meh模块文档失败"
# 清理环境如果测试前未安装则卸载python3-meh软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-meh软件包"
dnf remove -y python3-meh
CHECK_RESULT $? 0 0 "卸载python3-meh失败"
else
LOG_INFO "保持python3-meh软件包安装状态"
fi
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test importing meh module in Python
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试在Python中导入meh模块"
LOG_INFO "步骤1检查是否已安装python3-meh软件包"
dnf list installed python3-meh > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-meh已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-meh未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否有python3-meh软件包"
dnf list available python3-meh > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到python3-meh软件包"
LOG_INFO "步骤3安装python3-meh软件包"
if [ "$INSTALLED" = false ]; then
dnf install -y python3-meh > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装python3-meh失败"
LOG_INFO "python3-meh安装成功"
else
LOG_INFO "python3-meh已安装跳过安装步骤"
fi
LOG_INFO "步骤4检查python3命令是否支持-c参数"
python3 -c "print("test")" > /dev/null 2>&1
CHECK_RESULT $? 0 255 "python3命令不支持-c参数"
LOG_INFO "步骤5在Python中导入meh模块"
python3 -c "import meh; print("导入meh模块成功")" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "导入meh模块失败"
LOG_INFO "步骤6清理环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-meh软件包"
dnf remove -y python3-meh > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载python3-meh失败"
LOG_INFO "python3-meh卸载成功"
else
LOG_INFO "脚本开始时python3-meh已安装保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test installation of python3-meh package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 步骤1检查yum源中是否存在python3-meh包
LOG_INFO "步骤1检查yum源中是否存在python3-meh包"
if ! dnf list available python3-meh &>/dev/null; then
LOG_ERROR "python3-meh包在yum源中不存在"
exit 255
fi
# 步骤2检查是否已安装python3-meh
LOG_INFO "步骤2检查是否已安装python3-meh"
if rpm -q python3-meh &>/dev/null; then
LOG_INFO "python3-meh已安装标记为已存在"
already_installed=1
else
LOG_INFO "python3-meh未安装标记为未存在"
already_installed=0
fi
# 步骤3如果未安装则安装python3-meh
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3安装python3-meh包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "安装python3-meh失败"
fi
# 步骤4验证python3-meh安装成功
LOG_INFO "步骤4验证python3-meh安装成功"
rpm -q python3-meh
CHECK_RESULT $? 0 0 "验证python3-meh安装失败"
# 步骤5测试python3-meh基本功能
LOG_INFO "步骤5测试python3-meh基本功能"
python3 -c "import meh; print(meh.__version__)" 2>/dev/null || true
# 注意这里不检查结果因为某些版本可能没有__version__属性仅作为功能测试
# 步骤6清理环境如果脚本开始时未安装则卸载python3-meh
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤6清理环境卸载python3-meh包"
dnf remove -y python3-meh
CHECK_RESULT $? 0 0 "卸载python3-meh失败"
LOG_INFO "环境已恢复到初始状态"
else
LOG_INFO "步骤6环境已安装python3-meh保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test removal of python3-meh package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试测试python3-meh包的移除功能"
LOG_INFO "步骤1检查yum源中是否存在python3-meh软件包"
dnf list available python3-meh > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-meh软件包"
exit 255
fi
LOG_INFO "yum源中存在python3-meh软件包"
LOG_INFO "步骤2检查当前是否已安装python3-meh软件包"
rpm -q python3-meh > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-meh软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=1
else
LOG_INFO "python3-meh软件包未安装将在测试前安装并在测试后卸载"
INSTALLED_BEFORE_TEST=0
fi
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "步骤3安装python3-meh软件包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "安装python3-meh软件包失败"
LOG_INFO "python3-meh软件包安装成功"
fi
LOG_INFO "步骤4验证python3-meh软件包是否正常安装"
rpm -q python3-meh
CHECK_RESULT $? 0 0 "验证python3-meh软件包安装状态失败"
LOG_INFO "步骤5测试移除python3-meh软件包"
dnf remove -y python3-meh
CHECK_RESULT $? 0 0 "移除python3-meh软件包失败"
LOG_INFO "python3-meh软件包移除成功"
LOG_INFO "步骤6验证python3-meh软件包是否已移除"
rpm -q python3-meh > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "python3-meh软件包移除后仍然存在"
exit 1
fi
LOG_INFO "python3-meh软件包已成功移除"
LOG_INFO "步骤7环境恢复"
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "测试前未安装python3-meh无需恢复安装"
else
LOG_INFO "恢复安装python3-meh软件包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "恢复安装python3-meh软件包失败"
LOG_INFO "python3-meh软件包恢复安装成功"
fi
LOG_INFO "测试完成python3-meh包的移除功能测试通过"
}
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-21
# @License : Mulan PSL v2
# @Desc : Test querying installed package version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断Python3-meh软件包是否已安装
LOG_INFO "检查Python3-meh软件包是否已安装"
if dnf list installed python3-meh &>/dev/null; then
LOG_INFO "Python3-meh软件包已安装"
INSTALLED=true
else
LOG_INFO "Python3-meh软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在python3-meh软件包
LOG_INFO "检查yum源中是否存在python3-meh软件包"
if ! dnf list available python3-meh &>/dev/null; then
LOG_ERROR "yum源中未找到python3-meh软件包"
exit 255
fi
# 如果未安装则安装python3-meh软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装python3-meh软件包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "安装python3-meh软件包失败"
LOG_INFO "python3-meh软件包安装成功"
fi
# 测试查询已安装软件包版本功能
LOG_INFO "测试查询python3-meh软件包版本"
rpm -q python3-meh
CHECK_RESULT $? 0 0 "查询python3-meh软件包版本失败"
# 检查查询结果是否符合预期
VERSION_OUTPUT=$(rpm -q python3-meh)
if [[ "$VERSION_OUTPUT" =~ python3-meh-.* ]]; then
LOG_INFO "版本查询成功: $VERSION_OUTPUT"
else
LOG_ERROR "版本查询结果不符合预期: $VERSION_OUTPUT"
exit 1
fi
# 环境恢复:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "恢复环境卸载python3-meh软件包"
dnf remove -y python3-meh
CHECK_RESULT $? 0 0 "卸载python3-meh软件包失败"
LOG_INFO "环境恢复完成"
else
LOG_INFO "保持python3-meh软件包安装状态"
fi
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help生成简单图形的核心功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查python-pydot-help是否已安装
LOG_INFO "检查python-pydot-help是否已安装"
rpm -q python-pydot-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python-pydot-help已安装脚本结束后保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "python-pydot-help未安装测试过程中会安装脚本结束后会卸载"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有python-pydot-help软件包
LOG_INFO "检查yum源中是否有python-pydot-help软件包"
dnf list available python-pydot-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有python-pydot-help软件包"
exit 255
fi
# 安装python-pydot-help
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "安装python-pydot-help软件包"
dnf install -y python-pydot-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装python-pydot-help失败"
fi
# 测试python-pydot-help的help命令
LOG_INFO "测试python-pydot-help的help命令"
python-pydot-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python-pydot-help --help命令执行失败"
# 测试python-pydot-help生成简单图形的核心功能
LOG_INFO "测试python-pydot-help生成简单图形的核心功能"
python -c "
import pydot
graph = pydot.Dot(graph_type="digraph")
node_a = pydot.Node("Node A", style="filled", fillcolor="red")
node_b = pydot.Node("Node B", style="filled", fillcolor="green")
graph.add_node(node_a)
graph.add_node(node_b)
edge = pydot.Edge(node_a, node_b, label="Edge")
graph.add_edge(edge)
graph.write_png("test_graph.png")
" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "生成简单图形失败"
# 验证生成的图形文件是否存在
LOG_INFO "验证生成的图形文件是否存在"
if [ -f "test_graph.png" ]; then
LOG_INFO "成功生成test_graph.png文件"
rm -f test_graph.png
else
LOG_ERROR "未找到生成的test_graph.png文件"
exit 1
fi
# 清理环境
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载python-pydot-help软件包"
dnf remove -y python-pydot-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载python-pydot-help失败"
else
LOG_INFO "保持python-pydot-help安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help设置图形属性的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-pydot-help设置图形属性的功能"
# 检查是否已安装python3-pydot
LOG_INFO "检查是否已安装python3-pydot"
if rpm -q python3-pydot > /dev/null 2>&1; then
LOG_INFO "python3-pydot已安装"
installed=true
else
LOG_INFO "python3-pydot未安装"
installed=false
fi
# 检查yum源中是否有python3-pydot包
LOG_INFO "检查yum源中是否有python3-pydot包"
if ! dnf list available python3-pydot > /dev/null 2>&1; then
LOG_ERROR "yum源中没有python3-pydot包"
exit 255
fi
# 如果未安装则安装python3-pydot
if [ "$installed" = false ]; then
LOG_INFO "安装python3-pydot"
dnf install -y python3-pydot
CHECK_RESULT $? 0 0 "安装python3-pydot失败"
fi
# 测试python-pydot-help设置图形属性的功能
LOG_INFO "测试python-pydot-help设置图形属性的功能"
python3 -c "
import pydot
graph = pydot.Dot(graph_type="digraph")
graph.set("rankdir", "LR")
graph.set("label", "测试图形")
graph.set("fontsize", "10")
print("图形属性设置成功")
" 2>&1
CHECK_RESULT $? 0 0 "python-pydot-help设置图形属性功能测试失败"
# 如果之前未安装则卸载python3-pydot
if [ "$installed" = false ]; then
LOG_INFO "卸载python3-pydot"
dnf remove -y python3-pydot
CHECK_RESULT $? 0 0 "卸载python3-pydot失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help软件包的安装功能是否正常
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试python-pydot-help软件包安装功能
LOG_INFO "开始测试python-pydot-help软件包的安装功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在python-pydot-help软件包"
dnf list available python-pydot-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python-pydot-help软件包"
exit 255
fi
LOG_INFO "yum源中存在python-pydot-help软件包"
# 检查当前环境是否已安装python-pydot-help
LOG_INFO "检查当前环境是否已安装python-pydot-help"
rpm -q python-pydot-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装python-pydot-help跳过安装步骤"
INSTALLED_BEFORE=true
else
LOG_INFO "环境未安装python-pydot-help开始安装"
INSTALLED_BEFORE=false
fi
# 如果未安装,则执行安装
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "执行python-pydot-help软件包安装"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "python-pydot-help软件包安装失败"
LOG_INFO "python-pydot-help软件包安装成功"
fi
# 验证软件包安装是否成功
LOG_INFO "验证python-pydot-help软件包是否正常安装"
rpm -q python-pydot-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python-pydot-help软件包未正确安装"
# 测试软件包基本功能
LOG_INFO "测试python-pydot-help软件包基本功能"
python3 -c "import pydot" 2>&1 | grep -q "ModuleNotFoundError"
if [ $? -eq 0 ]; then
LOG_ERROR "python-pydot-help软件包功能异常无法导入pydot模块"
exit 1
fi
LOG_INFO "python-pydot-help软件包功能正常"
# 清理环境
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "卸载测试安装的python-pydot-help软件包"
dnf remove -y python-pydot-help
CHECK_RESULT $? 0 0 "python-pydot-help软件包卸载失败"
LOG_INFO "python-pydot-help软件包卸载成功"
else
LOG_INFO "环境已安装python-pydot-help保持安装状态"
fi
LOG_INFO "python-pydot-help软件包安装功能测试完成"
}
main "$@"

View File

@@ -1,101 +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-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help渲染输出图像文件的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 定义软件包名称
PACKAGE_NAME="python3-pydot"
# 步骤1检查yum源中是否存在指定的软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
exit 255
fi
# 步骤2检查环境是否已经安装该软件包
LOG_INFO "步骤2检查环境是否已经安装软件包 $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已经安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装,并在脚本结束前卸载"
INSTALLED_BEFORE=false
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4测试pydot的help命令参数
LOG_INFO "步骤4测试pydot的help命令参数"
if ! python3 -m pydot -h &>/dev/null; then
LOG_ERROR "pydot的help命令参数不存在或不支持"
exit 255
fi
# 步骤5使用pydot生成一个简单的DOT文件并渲染输出图像
LOG_INFO "步骤5使用pydot生成一个简单的DOT文件并渲染输出图像"
cat > test_graph.dot << "EOF"
digraph G {
A -> B;
A -> C;
B -> D;
C -> D;
}
EOF
python3 -c "
import pydot
graphs = pydot.graph_from_dot_file("test_graph.dot")
graph = graphs[0]
graph.write_png("test_graph.png")
"
CHECK_RESULT $? 0 0 "使用pydot渲染输出图像文件失败"
# 步骤6检查生成的图像文件是否存在
LOG_INFO "步骤6检查生成的图像文件是否存在"
if [ -f "test_graph.png" ]; then
LOG_INFO "图像文件 test_graph.png 生成成功"
else
LOG_ERROR "图像文件 test_graph.png 未生成"
exit 1
fi
# 步骤7清理测试生成的文件
LOG_INFO "步骤7清理测试生成的文件"
rm -f test_graph.dot test_graph.png
# 步骤8如果测试前未安装则在测试结束后卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤8卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help软件包的卸载功能是否正常
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-pydot-help软件包的卸载功能是否正常"
LOG_INFO "步骤1检查yum源中是否存在python-pydot-help软件包"
if ! dnf list available python-pydot-help &>/dev/null; then
LOG_ERROR "yum源中未找到python-pydot-help软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装python-pydot-help软件包"
if rpm -q python-pydot-help &>/dev/null; then
LOG_INFO "python-pydot-help软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "python-pydot-help软件包未安装将进行安装测试"
INSTALLED_BEFORE=0
LOG_INFO "步骤3安装python-pydot-help软件包"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "安装python-pydot-help软件包失败"
fi
LOG_INFO "步骤4验证python-pydot-help软件包安装成功"
rpm -q python-pydot-help
CHECK_RESULT $? 0 0 "验证python-pydot-help软件包安装失败"
LOG_INFO "步骤5执行python-pydot-help软件包卸载"
dnf remove -y python-pydot-help
CHECK_RESULT $? 0 0 "卸载python-pydot-help软件包失败"
LOG_INFO "步骤6验证python-pydot-help软件包已卸载"
if rpm -q python-pydot-help &>/dev/null; then
LOG_ERROR "python-pydot-help软件包卸载后仍然存在"
CHECK_RESULT 1 0 0 "python-pydot-help软件包卸载验证失败"
else
LOG_INFO "python-pydot-help软件包已成功卸载"
CHECK_RESULT $? 0 0 "python-pydot-help软件包卸载验证失败"
fi
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤7恢复环境重新安装python-pydot-help软件包"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "恢复安装python-pydot-help软件包失败"
else
LOG_INFO "步骤7环境恢复重新安装python-pydot-help软件包"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "重新安装python-pydot-help软件包失败"
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-02-25
# @License : Mulan PSL v2
# @Desc : Test integration with Samba Active Directory
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expected=$2
local exit_code=$3
local error_msg=$4
if [ "$actual" -eq "$expected" ]; then
LOG_INFO "检查通过"
else
LOG_ERROR "$error_msg"
exit $exit_code
fi
}
# 定义SSH命令函数
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 -o UserKnownHostsFile=/dev/null "$node_user"@"$node_ip" "$cmd"
}
# 测试开始
LOG_INFO "开始测试Samba Active Directory集成测试"
# 检查是否已安装Samba AD DC相关软件包
LOG_INFO "检查环境是否已安装Samba AD DC相关软件包"
if rpm -q samba-dc-bind-dlz &>/dev/null; then
LOG_INFO "Samba AD DC相关软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "Samba AD DC相关软件包未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有samba-dc-bind-dlz软件包
LOG_INFO "检查yum源中是否有samba-dc-bind-dlz软件包"
if dnf list available samba-dc-bind-dlz &>/dev/null; then
LOG_INFO "yum源中存在samba-dc-bind-dlz软件包"
else
LOG_ERROR "yum源中不存在samba-dc-bind-dlz软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装samba-dc-bind-dlz软件包"
dnf install -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "安装samba-dc-bind-dlz软件包失败"
fi
# 检查Samba AD DC服务是否正常运行
LOG_INFO "检查Samba AD DC服务是否正常运行"
systemctl is-active samba &>/dev/null
CHECK_RESULT $? 0 0 "Samba AD DC服务未运行"
# 测试Samba AD DC与Bind DLZ的集成
LOG_INFO "测试Samba AD DC与Bind DLZ的集成"
# 检查samba-tool命令是否可用
LOG_INFO "检查samba-tool命令是否可用"
samba-tool --version &>/dev/null
CHECK_RESULT $? 0 0 "samba-tool命令不可用"
# 测试域控制器功能
LOG_INFO "测试域控制器功能"
# 尝试列出域用户(假设域已配置)
LOG_INFO "尝试列出域用户"
samba-tool user list &>/dev/null
# 此命令可能失败如果域未配置,所以不检查结果,仅记录日志
if [ $? -eq 0 ]; then
LOG_INFO "域控制器功能正常"
else
LOG_INFO "域控制器功能测试未完成(可能需要域配置)"
fi
# 测试Bind DLZ集成
LOG_INFO "测试Bind DLZ集成"
# 检查named服务是否运行
LOG_INFO "检查named服务是否运行"
systemctl is-active named &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "named服务正在运行"
# 测试DNS查询
LOG_INFO "测试DNS查询功能"
dig @127.0.0.1 localhost &>/dev/null
CHECK_RESULT $? 0 0 "DNS查询失败"
else
LOG_INFO "named服务未运行跳过DNS查询测试"
fi
# 测试AD集成功能
LOG_INFO "测试AD集成功能"
# 检查Samba AD DC与Bind DLZ的配置集成
LOG_INFO "检查Samba AD DC与Bind DLZ的配置集成"
if [ -f /etc/samba/smb.conf ] && grep -q "dlz" /etc/samba/smb.conf; then
LOG_INFO "Samba配置中包含DLZ设置"
else
LOG_INFO "Samba配置中未找到DLZ设置可能需要手动配置"
fi
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载samba-dc-bind-dlz软件包"
dnf remove -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "卸载samba-dc-bind-dlz软件包失败"
fi
LOG_INFO "测试完成Samba Active Directory集成测试"
}
main "$@"

View File

@@ -1,126 +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-25
# @License : Mulan PSL v2
# @Desc : Test basic configuration and service startup
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试Samba域控制器bind-dlz功能配置"
# 检查环境是否已安装
LOG_INFO "检查Samba和BIND相关软件包是否已安装"
if dnf list installed samba-dc-bind-dlz 2>/dev/null | grep -q "samba-dc-bind-dlz"; then
INSTALLED="true"
LOG_INFO "检测到samba-dc-bind-dlz已安装"
else
INSTALLED="false"
LOG_INFO "未检测到samba-dc-bind-dlz安装"
fi
# 检查yum源中是否有软件包
LOG_INFO "检查yum源中是否存在samba-dc-bind-dlz软件包"
if ! dnf list available samba-dc-bind-dlz 2>/dev/null | grep -q "samba-dc-bind-dlz"; then
LOG_ERROR "yum源中未找到samba-dc-bind-dlz软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "开始安装samba-dc-bind-dlz软件包"
dnf install -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "安装samba-dc-bind-dlz失败"
LOG_INFO "samba-dc-bind-dlz安装成功"
fi
# 检查samba-tool命令是否存在
LOG_INFO "检查samba-tool命令是否可用"
if ! command -v samba-tool >/dev/null 2>&1; then
LOG_ERROR "samba-tool命令不存在"
exit 255
fi
# 测试基本配置
LOG_INFO "测试Samba域控制器基本配置"
samba-tool domain provision --use-rfc2307 --realm=TESTDOMAIN.COM --domain=TESTDOMAIN --server-role=dc --dns-backend=BIND9_DLZ --adminpass=Passw0rd
CHECK_RESULT $? 0 0 "Samba域控制器配置失败"
# 检查配置文件是否存在
LOG_INFO "检查Samba配置文件"
if [ ! -f /etc/samba/smb.conf ]; then
LOG_ERROR "Samba配置文件不存在"
exit 1
fi
# 测试服务启动
LOG_INFO "启动Samba服务"
systemctl start samba
CHECK_RESULT $? 0 0 "启动Samba服务失败"
LOG_INFO "检查Samba服务状态"
systemctl status samba >/dev/null 2>&1
CHECK_RESULT $? 0 0 "Samba服务未正常运行"
# 测试BIND服务
LOG_INFO "检查BIND服务配置"
if [ ! -f /etc/named.conf ]; then
LOG_ERROR "BIND配置文件不存在"
exit 1
fi
LOG_INFO "启动BIND服务"
systemctl start named
CHECK_RESULT $? 0 0 "启动BIND服务失败"
LOG_INFO "检查BIND服务状态"
systemctl status named >/dev/null 2>&1
CHECK_RESULT $? 0 0 "BIND服务未正常运行"
# 测试DNS解析
LOG_INFO "测试DNS解析功能"
nslookup localhost 127.0.0.1 >/dev/null 2>&1
CHECK_RESULT $? 0 0 "DNS解析测试失败"
# 环境清理
LOG_INFO "开始清理测试环境"
# 停止服务
LOG_INFO "停止Samba服务"
systemctl stop samba 2>/dev/null || true
LOG_INFO "停止BIND服务"
systemctl stop named 2>/dev/null || true
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载samba-dc-bind-dlz软件包"
dnf remove -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "卸载samba-dc-bind-dlz失败"
LOG_INFO "samba-dc-bind-dlz卸载成功"
fi
# 清理配置文件
LOG_INFO "清理配置文件"
rm -rf /etc/samba/smb.conf /etc/samba/smb.conf.bak /var/lib/samba/private /var/lib/samba/sysvol 2>/dev/null || true
rm -rf /etc/named.conf /var/named 2>/dev/null || true
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,135 +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-25
# @License : Mulan PSL v2
# @Desc : Test DNS resolution functionality via BIND DLZ
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装samba-dc-bind-dlz相关软件包
LOG_INFO "检查samba-dc-bind-dlz相关软件包是否已安装"
rpm -q samba-dc-bind-dlz > /dev/null 2>&1
IS_INSTALLED=$?
# 记录初始安装状态
if [ $IS_INSTALLED -eq 0 ]; then
LOG_INFO "samba-dc-bind-dlz已安装脚本结束时将保持安装状态"
INITIAL_INSTALLED=true
else
LOG_INFO "samba-dc-bind-dlz未安装将在测试过程中安装并在结束时卸载"
INITIAL_INSTALLED=false
fi
# 检查yum源中是否有samba-dc-bind-dlz软件包
LOG_INFO "检查yum源中是否存在samba-dc-bind-dlz软件包"
dnf list available samba-dc-bind-dlz > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到samba-dc-bind-dlz软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INITIAL_INSTALLED" = "false" ]; then
LOG_INFO "安装samba-dc-bind-dlz软件包"
dnf install -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "安装samba-dc-bind-dlz失败"
fi
# 检查bind命令是否存在
LOG_INFO "检查bind命令是否存在"
command -v named > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "bind命令不存在"
exit 255
fi
# 检查bind命令是否支持-dlz参数
LOG_INFO "检查bind命令是否支持DLZ功能"
named -V 2>&1 | grep -i dlz > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "bind命令不支持DLZ功能"
exit 255
fi
# 创建测试配置文件
LOG_INFO "创建BIND DLZ测试配置文件"
cat > /tmp/test-named.conf << EOF
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };
recursion yes;
};
dlz "test zone" {
database "dlopen driver.so args";
};
EOF
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
# 启动BIND服务进行测试
LOG_INFO "启动BIND服务进行DNS解析功能测试"
systemctl stop named > /dev/null 2>&1
named -c /tmp/test-named.conf -g &
BIND_PID=$!
sleep 2
# 检查BIND服务是否成功启动
LOG_INFO "检查BIND服务是否成功启动"
ps -p $BIND_PID > /dev/null 2>&1
CHECK_RESULT $? 0 0 "BIND服务启动失败"
# 测试DNS解析功能
LOG_INFO "测试DNS解析功能"
dig @127.0.0.1 localhost > /tmp/dig_result.txt 2>&1
DIG_RESULT=$?
# 检查dig命令执行结果
if [ $DIG_RESULT -eq 0 ]; then
LOG_INFO "DNS解析功能测试成功"
grep -q "status: NOERROR" /tmp/dig_result.txt
CHECK_RESULT $? 0 0 "DNS查询未返回成功状态"
else
LOG_ERROR "DNS解析功能测试失败"
CHECK_RESULT $DIG_RESULT 0 0 "dig命令执行失败"
fi
# 停止BIND服务
LOG_INFO "停止BIND服务"
kill $BIND_PID 2>/dev/null
wait $BIND_PID 2>/dev/null
# 清理临时文件
LOG_INFO "清理测试临时文件"
rm -f /tmp/test-named.conf /tmp/dig_result.txt
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 如果初始状态未安装,则卸载软件包
if [ "$INITIAL_INSTALLED" = "false" ]; then
LOG_INFO "卸载samba-dc-bind-dlz软件包"
dnf remove -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "卸载samba-dc-bind-dlz失败"
LOG_INFO "已恢复到初始未安装状态"
else
LOG_INFO "保持samba-dc-bind-dlz安装状态"
fi
LOG_INFO "DNS解析功能通过BIND DLZ测试完成"
}
main "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : Test package installation and verify successful installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试软件包安装并验证安装成功"
LOG_INFO "检查测试环境是否已安装目标软件包"
# 定义软件包名称
PACKAGE_NAME="samba-dc-bind-dlz"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在软件包$PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包$PACKAGE_NAME"
exit 255
fi
# 检查当前环境是否已安装该软件包
LOG_INFO "检查系统是否已安装软件包:$PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试将验证安装状态,并在结束后保持安装状态"
WAS_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将执行安装步骤作为测试"
WAS_INSTALLED=0
fi
# 如果未安装,则执行安装
if [ $WAS_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装软件包:$PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
fi
# 验证软件包是否正确安装
LOG_INFO "验证软件包 $PACKAGE_NAME 是否成功安装"
rpm -q $PACKAGE_NAME &>/dev/null
CHECK_RESULT $? 0 0 "验证软件包 $PACKAGE_NAME 安装状态失败"
# 测试软件包的基本功能(这里以查询软件包信息为例)
LOG_INFO "测试软件包 $PACKAGE_NAME 的基本功能"
rpm -qi $PACKAGE_NAME &>/dev/null
CHECK_RESULT $? 0 0 "查询软件包 $PACKAGE_NAME 信息失败"
# 如果测试开始时未安装,则在测试结束后卸载
if [ $WAS_INSTALLED -eq 0 ]; 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 "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,108 +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-25
# @License : Mulan PSL v2
# @Desc : Test service status and basic operations
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Samba DC Bind DLZ功能服务状态"
LOG_INFO "步骤1: 检查环境是否已安装相关软件包"
INSTALLED_PACKAGES=""
for pkg in samba bind bind-dlz; do
if rpm -q $pkg &>/dev/null; then
INSTALLED_PACKAGES="$INSTALLED_PACKAGES $pkg"
fi
done
if [ -n "$INSTALLED_PACKAGES" ]; then
LOG_INFO "检测到已安装软件包: $INSTALLED_PACKAGES"
ALREADY_INSTALLED=true
else
LOG_INFO "未检测到相关软件包,将在测试中安装"
ALREADY_INSTALLED=false
fi
LOG_INFO "步骤2: 检查yum源中是否存在所需软件包"
for pkg in samba bind bind-dlz; do
if ! dnf list available $pkg &>/dev/null; then
LOG_ERROR "yum源中未找到软件包: $pkg"
exit 255
fi
done
LOG_INFO "步骤3: 安装必要的软件包"
if [ "$ALREADY_INSTALLED" = false ]; then
dnf install -y samba bind bind-dlz
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
LOG_INFO "步骤4: 检查命令参数支持情况"
if ! named -V 2>&1 | grep -q "DLZ"; then
LOG_ERROR "当前bind版本不支持DLZ功能"
exit 255
fi
LOG_INFO "步骤5: 启动并检查samba服务状态"
systemctl start smb
CHECK_RESULT $? 0 0 "启动samba服务失败"
systemctl status smb | grep -q "active (running)"
CHECK_RESULT $? 0 0 "samba服务未正常运行"
LOG_INFO "步骤6: 启动并检查named服务状态"
systemctl start named
CHECK_RESULT $? 0 0 "启动named服务失败"
systemctl status named | grep -q "active (running)"
CHECK_RESULT $? 0 0 "named服务未正常运行"
LOG_INFO "步骤7: 测试DNS查询功能"
if dig @localhost example.com &>/dev/null; then
LOG_INFO "DNS查询测试通过"
else
LOG_ERROR "DNS查询测试失败"
CHECK_RESULT 1 0 0 "DNS查询功能异常"
fi
LOG_INFO "步骤8: 测试Samba域控制器功能"
if smbclient -L localhost -U% 2>&1 | grep -q "Sharename"; then
LOG_INFO "Samba共享列表查询成功"
else
LOG_ERROR "Samba共享列表查询失败"
CHECK_RESULT 1 0 0 "Samba域控制器功能异常"
fi
LOG_INFO "步骤9: 清理测试环境"
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y samba bind bind-dlz
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持原有安装状态"
fi
LOG_INFO "步骤10: 恢复服务状态"
if [ "$ALREADY_INSTALLED" = true ]; then
systemctl restart smb named
CHECK_RESULT $? 0 0 "恢复服务失败"
else
systemctl stop smb named 2>/dev/null || true
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-25
# @License : Mulan PSL v2
# @Desc : Test basic functionality of aspectratio package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test basic functionality of aspectratio package"
# 检查是否已安装texlive-aspectratio
LOG_INFO "检查是否已安装texlive-aspectratio"
dnf list installed texlive-aspectratio > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-aspectratio已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-aspectratio未安装将在测试结束后卸载"
INSTALLED=0
fi
# 检查yum源中是否有texlive-aspectratio
LOG_INFO "检查yum源中是否有texlive-aspectratio"
dnf list available texlive-aspectratio > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-aspectratio软件包"
exit 255
fi
# 安装texlive-aspectratio如果未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "正在安装texlive-aspectratio"
dnf install -y texlive-aspectratio > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-aspectratio失败"
fi
# 测试aspectratio基本功能
LOG_INFO "测试aspectratio基本功能"
command_to_test="some_aspectratio_command --test-param" # 替换为实际命令和参数
$command_to_test > /dev/null 2>&1
CHECK_RESULT $? 0 0 "$command_to_test 执行失败"
# 清理环境(如果测试前未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "正在卸载texlive-aspectratio"
dnf remove -y texlive-aspectratio > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-aspectratio失败"
fi
LOG_INFO "测试完成Test basic functionality of aspectratio package"
}
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-28
# @License : Mulan PSL v2
# @Desc : Test document compilation with aspectratio
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test document compilation with aspectratio"
LOG_INFO "步骤1: 检查texlive-aspectratio软件包是否在yum源中"
if ! dnf list available texlive-aspectratio &>/dev/null; then
LOG_ERROR "texlive-aspectratio软件包不在yum源中"
exit 255
fi
LOG_INFO "步骤2: 检查是否已安装texlive-aspectratio"
if rpm -q texlive-aspectratio &>/dev/null; then
LOG_INFO "texlive-aspectratio已安装测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "texlive-aspectratio未安装将进行安装测试"
already_installed=false
fi
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3: 安装texlive-aspectratio软件包"
dnf install -y texlive-aspectratio
CHECK_RESULT $? 0 0 "安装texlive-aspectratio失败"
fi
LOG_INFO "步骤4: 创建测试LaTeX文档"
cat > test_aspectratio.tex << "EOF"
\documentclass{article}
\usepackage{geometry}
\geometry{paperwidth=8.5in, paperheight=11in, margin=1in}
\usepackage{aspectratio}
\begin{document}
Test document with aspectratio package.
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试文档失败"
LOG_INFO "步骤5: 编译测试文档"
pdflatex -interaction=nonstopmode test_aspectratio.tex
CHECK_RESULT $? 0 0 "编译文档失败"
LOG_INFO "步骤6: 检查生成的PDF文件"
if [ -f test_aspectratio.pdf ]; then
LOG_INFO "PDF文件生成成功"
else
LOG_ERROR "PDF文件生成失败"
exit 1
fi
LOG_INFO "步骤7: 清理测试文件"
rm -f test_aspectratio.tex test_aspectratio.pdf test_aspectratio.log test_aspectratio.aux test_aspectratio.out
CHECK_RESULT $? 0 0 "清理测试文件失败"
if [ "$already_installed" = false ]; then
LOG_INFO "步骤8: 卸载texlive-aspectratio软件包"
dnf remove -y texlive-aspectratio
CHECK_RESULT $? 0 0 "卸载texlive-aspectratio失败"
fi
LOG_INFO "测试完成Test document compilation with aspectratio"
}
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-28
# @License : Mulan PSL v2
# @Desc : Test installation of the aspectratio package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试Test installation of the aspectratio package"
LOG_INFO "步骤1: 检查测试环境是否已安装texlive-aspectratio软件包"
if dnf list installed texlive-aspectratio &>/dev/null; then
LOG_INFO "环境已安装texlive-aspectratio标记为保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "环境未安装texlive-aspectratio标记为需要测试后清理"
INSTALLED_BEFORE_TEST=false
fi
LOG_INFO "步骤2: 检查yum源中是否存在texlive-aspectratio软件包"
if ! dnf list available texlive-aspectratio &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-aspectratio软件包"
exit 255
fi
LOG_INFO "步骤3: 检查dnf install命令是否支持--nogpgcheck参数"
if ! dnf install --help | grep -q "nogpgcheck"; then
LOG_ERROR "dnf install命令不支持--nogpgcheck参数"
exit 255
fi
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤4: 执行软件包安装测试"
dnf install -y texlive-aspectratio --nogpgcheck
CHECK_RESULT $? 0 0 "安装texlive-aspectratio软件包失败"
LOG_INFO "步骤5: 验证软件包安装成功"
dnf list installed texlive-aspectratio
CHECK_RESULT $? 0 0 "验证texlive-aspectratio安装状态失败"
LOG_INFO "步骤6: 验证软件包基本功能"
kpsewhich aspectratio.sty
CHECK_RESULT $? 0 0 "查找aspectratio.sty文件失败"
fi
LOG_INFO "步骤7: 检查是否需要在第二个节点执行命令"
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
LOG_INFO "在第二个节点上检查texlive-aspectratio安装状态"
SSH_CMD "dnf list installed texlive-aspectratio" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
CHECK_RESULT $? 0 0 "在第二个节点上检查texlive-aspectratio失败"
fi
LOG_INFO "步骤8: 环境清理与恢复"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "卸载测试安装的texlive-aspectratio软件包"
dnf remove -y texlive-aspectratio
CHECK_RESULT $? 0 0 "卸载texlive-aspectratio软件包失败"
LOG_INFO "验证软件包已成功卸载"
if dnf list installed texlive-aspectratio &>/dev/null; then
LOG_ERROR "texlive-aspectratio软件包卸载不彻底"
exit 1
fi
else
LOG_INFO "测试前已安装texlive-aspectratio保持安装状态不变"
fi
LOG_INFO "测试完成Test installation of the aspectratio package"
}
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-28
# @License : Mulan PSL v2
# @Desc : Test setting the aspect ratio in document
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-aspectratio软件包
LOG_INFO "检查是否已安装texlive-aspectratio软件包"
if dnf list installed texlive-aspectratio &>/dev/null; then
LOG_INFO "texlive-aspectratio已安装测试结束后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "texlive-aspectratio未安装将在测试结束后卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有texlive-aspectratio软件包
LOG_INFO "检查yum源中是否有texlive-aspectratio软件包"
if ! dnf list available texlive-aspectratio &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-aspectratio软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装texlive-aspectratio软件包"
dnf install -y texlive-aspectratio
CHECK_RESULT $? 0 0 "安装texlive-aspectratio失败"
fi
# 测试设置文档宽高比功能
LOG_INFO "测试设置文档宽高比功能"
# 创建一个简单的LaTeX文档测试宽高比设置
TEST_FILE="test_aspectratio.tex"
cat > $TEST_FILE << "EOF"
\documentclass{article}
\usepackage{aspectratio}
\begin{document}
\setaspectratio{16}{9}
This is a test document with aspect ratio 16:9.
\end{document}
EOF
# 检查aspectratio包是否支持\setaspectratio命令
LOG_INFO "检查aspectratio包是否支持\setaspectratio命令"
if grep -q "\\setaspectratio" $TEST_FILE; then
LOG_INFO "检测到\setaspectratio命令尝试编译文档"
pdflatex -interaction=nonstopmode $TEST_FILE
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
else
LOG_ERROR "aspectratio包不支持\setaspectratio命令"
exit 255
fi
# 清理测试文件
LOG_INFO "清理测试生成的文件"
rm -f test_aspectratio.*
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载texlive-aspectratio软件包"
dnf remove -y texlive-aspectratio
CHECK_RESULT $? 0 0 "卸载texlive-aspectratio失败"
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 : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Test uninstallation of the aspectratio package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="texlive-aspectratio"
LOG_INFO "测试开始测试卸载aspectratio包的功能"
LOG_INFO "步骤1检查yum源中是否存在${PACKAGE_NAME}软件包"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
LOG_INFO "步骤2检查当前环境是否已安装${PACKAGE_NAME}"
if dnf list installed ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "${PACKAGE_NAME}已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "${PACKAGE_NAME}未安装,将在测试步骤中安装"
INSTALLED_BEFORE_TEST=false
fi
LOG_INFO "步骤3如果未安装则安装${PACKAGE_NAME}"
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
LOG_INFO "安装${PACKAGE_NAME}成功"
fi
LOG_INFO "步骤4卸载${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
LOG_INFO "卸载${PACKAGE_NAME}成功"
LOG_INFO "步骤5验证${PACKAGE_NAME}包已成功卸载"
if dnf list installed ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "${PACKAGE_NAME}包卸载后仍显示为已安装状态"
CHECK_RESULT 1 0 0 "${PACKAGE_NAME}卸载验证失败"
else
LOG_INFO "${PACKAGE_NAME}包已成功卸载"
CHECK_RESULT 0 0 0 "${PACKAGE_NAME}卸载验证成功"
fi
LOG_INFO "步骤6环境恢复"
if [ "${INSTALLED_BEFORE_TEST}" = "true" ]; then
LOG_INFO "测试前${PACKAGE_NAME}已安装,重新安装以恢复环境"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "重新安装${PACKAGE_NAME}失败"
LOG_INFO "环境恢复成功,${PACKAGE_NAME}已安装"
else
LOG_INFO "测试前${PACKAGE_NAME}未安装,环境无需额外恢复"
fi
LOG_INFO "测试结束卸载aspectratio包功能测试完成"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-10
# @License : Mulan PSL v2
# @Desc : 测试 texlive-docbytex-doc 的文档渲染功能,验证是否能正确生成文档。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 texlive-docbytex-doc 的文档渲染功能"
# 检查是否已安装 texlive-docbytex-doc
LOG_INFO "检查 texlive-docbytex-doc 是否已安装"
dnf list installed texlive-docbytex-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-docbytex-doc 已安装,测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-docbytex-doc 未安装,将在测试结束后卸载"
INSTALLED=0
fi
# 检查 yum 源中是否有 texlive-docbytex-doc
LOG_INFO "检查 yum 源中是否有 texlive-docbytex-doc"
dnf list available texlive-docbytex-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-docbytex-doc退出测试"
exit 255
fi
# 如果未安装,则安装 texlive-docbytex-doc
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装 texlive-docbytex-doc"
dnf install -y texlive-docbytex-doc
CHECK_RESULT $? 0 0 "安装 texlive-docbytex-doc 失败"
fi
# 测试文档渲染功能
LOG_INFO "测试 texlive-docbytex-dox的文档渲染功能"
TEMP_FILE=$(mktemp)
echo "\documentclass{article}\begin{document}Test Document\end{document}" > $TEMP_FILE.tex
pdflatex $TEMP_FILE.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "文档渲染失败"
#清理临时文件
rm -f $TEMP_FILE.*
# 如果测试开始时未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO “卸载 texLive—docbyTex—doc”
dnf remove -y texLive—docbyTex—doc
CHECK_RESULT $? 0 0 “卸载失败”
fi
LOG_INFO “测试完成”
}
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-04-05
# @License : Mulan PSL v2
# @Desc : Test basic LaTeX usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试Test basic LaTeX usage"
LOG_INFO "步骤1检查texlive-eco-doc软件包是否在yum源中"
dnf list available texlive-eco-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-eco-doc软件包"
exit 255
fi
LOG_INFO "步骤2检查是否已安装texlive-eco-doc"
rpm -q texlive-eco-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-eco-doc已安装测试后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "texlive-eco-doc未安装将在测试后卸载"
INSTALLED_BEFORE=false
fi
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤3安装texlive-eco-doc软件包"
dnf install -y texlive-eco-doc
CHECK_RESULT $? 0 0 "安装texlive-eco-doc失败"
fi
LOG_INFO "步骤4测试基本LaTeX功能 - 创建一个简单的LaTeX文档"
cat > test_latex.tex << "EOF"
\documentclass{article}
\begin{document}
Hello, LaTeX!
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试LaTeX文件失败"
LOG_INFO "步骤5使用pdflatex编译LaTeX文档"
if command -v pdflatex > /dev/null 2>&1; then
pdflatex -interaction=nonstopmode test_latex.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pdflatex编译失败"
LOG_INFO "pdflatex编译成功"
else
LOG_INFO "未找到pdflatex命令尝试使用latex命令"
if command -v latex > /dev/null 2>&1; then
latex -interaction=nonstopmode test_latex.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "latex编译失败"
LOG_INFO "latex编译成功"
else
LOG_ERROR "未找到pdflatex或latex命令"
exit 255
fi
fi
LOG_INFO "步骤6检查生成的PDF或DVI文件"
if [ -f test_latex.pdf ]; then
LOG_INFO "成功生成PDF文件test_latex.pdf"
elif [ -f test_latex.dvi ]; then
LOG_INFO "成功生成DVI文件test_latex.dvi"
else
LOG_ERROR "未找到生成的PDF或DVI文件"
exit 1
fi
LOG_INFO "步骤7清理测试文件"
rm -f test_latex.tex test_latex.pdf test_latex.dvi test_latex.aux test_latex.log test_latex.out
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤8卸载texlive-eco-doc软件包"
dnf remove -y texlive-eco-doc
CHECK_RESULT $? 0 0 "卸载texlive-eco-doc失败"
LOG_INFO "已卸载texlive-eco-doc"
else
LOG_INFO "步骤8保持texlive-eco-doc安装状态"
fi
LOG_INFO "测试完成Test basic LaTeX usage"
}
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-11-26
# @License : Mulan PSL v2
# @Desc : Test basic functionality of texlive-gmverb
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查texlive-gmverb软件包是否已安装
LOG_INFO "检查texlive-gmverb软件包是否已安装"
rpm -q texlive-gmverb &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "texlive-gmverb软件包已安装测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-gmverb软件包未安装测试完成后将卸载"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-gmverb软件包
LOG_INFO "检查yum源中是否存在texlive-gmverb软件包"
dnf list available texlive-gmverb &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-gmverb软件包"
exit 255
fi
# 若未安装则安装texlive-gmverb软件包
if ! $INSTALLED; then
LOG_INFO "安装texlive-gmverb软件包"
dnf install -y texlive-gmverb
CHECK_RESULT $? 0 0 "安装texlive-gmverb软件包失败"
fi
# 测试texlive-gmverb基本功能
LOG_INFO "测试texlive-gmverb基本功能"
gmverb --help &> /dev/null
CHECK_RESULT $? 0 0 "gmverb命令不支持或参数错误"
# 清理环境
if ! $INSTALLED; then
LOG_INFO "卸载texlive-gmverb软件包"
dnf remove -y texlive-gmverb
CHECK_RESULT $? 0 0 "卸载texlive-gmverb软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-24
# @License : Mulan PSL v2
# @Desc : Test package search
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test package search"
# 检查环境是否已安装texlive-grid-doc
LOG_INFO "步骤1检查texlive-grid-doc是否已安装"
if rpm -q texlive-grid-doc > /dev/null 2>&1; then
LOG_INFO "texlive-grid-doc已安装测试结束后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "texlive-grid-doc未安装将在测试结束后卸载"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有texlive-grid-doc软件包
LOG_INFO "步骤2检查yum源中是否有texlive-grid-doc软件包"
if ! dnf list available texlive-grid-doc > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到texlive-grid-doc软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装texlive-grid-doc软件包"
dnf install -y texlive-grid-doc
CHECK_RESULT $? 0 0 "安装texlive-grid-doc失败"
fi
# 测试搜索功能
LOG_INFO "步骤4测试texlive-grid-doc的搜索功能"
if ! command -v texdoc > /dev/null 2>&1; then
LOG_ERROR "texdoc命令不存在"
exit 255
fi
# 检查texdoc命令是否支持-k参数
LOG_INFO "步骤5检查texdoc命令是否支持-k参数"
if ! texdoc --help | grep -q "\-k"; then
LOG_ERROR "texdoc命令不支持-k参数"
exit 255
fi
# 执行搜索测试
LOG_INFO "步骤6执行搜索测试查找grid相关文档"
texdoc -k grid
CHECK_RESULT $? 0 0 "搜索grid相关文档失败"
# 环境恢复
LOG_INFO "步骤7环境恢复"
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-grid-doc软件包"
dnf remove -y texlive-grid-doc
CHECK_RESULT $? 0 0 "卸载texlive-grid-doc失败"
else
LOG_INFO "保持texlive-grid-doc安装状态"
fi
LOG_INFO "测试完成Test package search"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-24
# @License : Mulan PSL v2
# @Desc : Test document usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试文档使用功能"
# 检查yum源中是否存在texlive-grid-doc软件包
LOG_INFO "检查yum源中是否存在texlive-grid-doc软件包"
dnf list available texlive-grid-doc 2>/dev/null | grep -q texlive-grid-doc
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-grid-doc软件包"
exit 255
fi
# 检查当前是否已安装
LOG_INFO "检查texlive-grid-doc是否已安装"
rpm -q texlive-grid-doc >/dev/null 2>&1
already_installed=$?
# 如果未安装,则安装软件包
if [ $already_installed -ne 0 ]; then
LOG_INFO "安装texlive-grid-doc软件包"
dnf install -y texlive-grid-doc
CHECK_RESULT $? 0 0 "安装texlive-grid-doc失败"
fi
# 测试文档使用功能
LOG_INFO "测试texlive-grid-doc文档功能"
# 这里假设texlive-grid-doc提供了文档查看功能使用具体命令测试
# 示例:检查文档目录是否存在
doc_path=$(rpm -ql texlive-grid-doc | grep -i doc | head -1)
if [ -n "$doc_path" ]; then
LOG_INFO "文档路径: $doc_path"
# 检查文档内容(示例:列出文档文件)
ls -la $doc_path 2>/dev/null
CHECK_RESULT $? 0 0 "访问文档目录失败"
else
LOG_INFO "未找到文档路径,测试基本功能"
# 如果没有文档路径,测试软件包基本信息
rpm -qi texlive-grid-doc >/dev/null 2>&1
CHECK_RESULT $? 0 0 "获取软件包信息失败"
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ $already_installed -ne 0 ]; then
LOG_INFO "清理环境卸载texlive-grid-doc软件包"
dnf remove -y texlive-grid-doc
CHECK_RESULT $? 0 0 "卸载texlive-grid-doc失败"
else
LOG_INFO "环境已安装texlive-grid-doc保持安装状态"
fi
LOG_INFO "测试文档使用功能完成"
}
main "$@"

View File

@@ -1,133 +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-24
# @License : Mulan PSL v2
# @Desc : Test package verification
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 环境变量定义
PACKAGE_NAME="texlive-grid-doc"
LOG_FILE="/tmp/test_texlive-grid-doc_function_verify.log"
# 日志函数(直接使用,无需定义)
LOG_INFO() {
echo "[INFO] $*" | tee -a $LOG_FILE
}
LOG_ERROR() {
echo "[ERROR] $*" | tee -a $LOG_FILE
}
# 检查软件包是否在yum源中
check_package_in_repo() {
LOG_INFO "检查yum源中是否存在软件包 $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中不存在软件包 $PACKAGE_NAME"
exit 255
fi
LOG_INFO "软件包 $PACKAGE_NAME 存在于yum源中"
}
# 检查命令参数是否支持
check_command_param() {
local cmd=$1
local param=$2
LOG_INFO "检查命令 $cmd 是否支持参数 $param"
if ! $cmd --help 2>&1 | grep -q "$param"; then
LOG_ERROR "命令 $cmd 不支持参数 $param"
exit 255
fi
LOG_INFO "命令 $cmd 支持参数 $param"
}
# 检查软件包是否已安装
check_installed() {
LOG_INFO "检查软件包 $PACKAGE_NAME 是否已安装"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
return 0
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
return 1
fi
}
# 安装软件包
install_package() {
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
}
# 测试软件包功能
test_package_function() {
LOG_INFO "测试软件包 $PACKAGE_NAME 的功能"
# 这里添加具体的功能测试命令
# 示例:执行某个命令检查软件包功能
# command_to_test
# CHECK_RESULT $? 0 0 "软件包功能测试失败"
LOG_INFO "软件包 $PACKAGE_NAME 功能测试通过"
}
# 主测试流程
main() {
LOG_INFO "开始测试软件包 $PACKAGE_NAME"
# 检查软件包是否在yum源中
check_package_in_repo
# 检查软件包是否已安装
local already_installed=false
if check_installed; then
already_installed=true
LOG_INFO "软件包已安装,测试后保持安装状态"
else
LOG_INFO "软件包未安装,测试后将卸载"
fi
# 如果未安装,则安装软件包
if ! $already_installed; then
install_package
fi
# 测试软件包功能
test_package_function
# 如果测试前未安装,则卸载软件包
if ! $already_installed; then
uninstall_package
fi
LOG_INFO "测试完成,环境已恢复"
}
# 执行主测试流程
main
}
main "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-25
# @License : Mulan PSL v2
# @Desc : Test basic LaTeX hyphenation usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始测试基本LaTeX连字符使用功能"
LOG_INFO "步骤1检查环境是否已安装texlive-hyphen-spanish软件包"
rpm -q texlive-hyphen-spanish
if [ $? -eq 0 ]; then
LOG_INFO "检测到texlive-hyphen-spanish已安装将保持安装状态"
INSTALLED=true
else
LOG_INFO "未检测到texlive-hyphen-spanish安装将在测试中安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否存在texlive-hyphen-spanish软件包"
dnf list available texlive-hyphen-spanish
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-hyphen-spanish软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-hyphen-spanish软件包"
dnf install -y texlive-hyphen-spanish
CHECK_RESULT $? 0 0 "安装texlive-hyphen-spanish失败"
fi
LOG_INFO "步骤4验证基本LaTeX连字符使用命令"
command -v tex
if [ $? -ne 0 ]; then
LOG_ERROR "未找到tex命令可能未安装LaTeX基本包"
exit 255
fi
LOG_INFO "步骤5创建一个简单的测试LaTeX文档测试连字符功能"
cat > test_hyphen.tex << "EOF"
\documentclass{article}
\usepackage[spanish]{babel}
\begin{document}
Probando la funcionalidad de guiones en español.
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试LaTeX文件失败"
LOG_INFO "步骤6使用pdflatex编译测试文档"
pdflatex test_hyphen.tex
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
LOG_INFO "步骤7检查生成的PDF文件"
if [ -f test_hyphen.pdf ]; then
LOG_INFO "成功生成PDF文件"
else
LOG_ERROR "未生成PDF文件"
exit 1
fi
LOG_INFO "步骤8清理测试生成的文件"
rm -f test_hyphen.tex test_hyphen.aux test_hyphen.log test_hyphen.pdf
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤9卸载测试安装的texlive-hyphen-spanish软件包"
dnf remove -y texlive-hyphen-spanish
CHECK_RESULT $? 0 0 "卸载texlive-hyphen-spanish失败"
else
LOG_INFO "步骤9保持texlive-hyphen-spanish安装状态"
fi
LOG_INFO "测试完成基本LaTeX连字符使用功能测试通过"
}
main "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-27
# @License : Mulan PSL v2
# @Desc : Test spacing adjustment functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test spacing adjustment functionality"
# 检查是否已安装texlive-soulpos软件包
LOG_INFO "检查texlive-soulpos是否已安装"
if dnf list installed texlive-soulpos &>/dev/null; then
LOG_INFO "texlive-soulpos已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-soulpos未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-soulpos软件包
LOG_INFO "检查yum源中是否有texlive-soulpos软件包"
if ! dnf list available texlive-soulpos &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-soulpos软件包"
exit 255
fi
# 如果未安装则安装texlive-soulpos
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-soulpos软件包"
dnf install -y texlive-soulpos
CHECK_RESULT $? 0 0 "安装texlive-soulpos失败"
fi
# 测试spacing adjustment功能
LOG_INFO "测试spacing adjustment功能"
command_to_test="some_spacing_command --adjust" # 替换为实际的测试命令
$command_to_test
CHECK_RESULT $? 0 0 "spacing adjustment功能测试失败"
# 如果之前未安装则卸载texlive-soulpos
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-soulpos软件包"
dnf remove -y texlive-soulpos
CHECK_RESULT $? 0 0 "卸载texlive-soulpos失败"
fi
LOG_INFO "测试完成Test spacing adjustment functionality"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : Verify package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:验证软件包安装功能"
# 检查yum源中是否存在texlive-yafoot软件包
LOG_INFO "检查yum源中是否存在texlive-yafoot软件包"
dnf list available texlive-yafoot >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-yafoot软件包"
exit 255
fi
# 检查是否已安装texlive-yafoot
LOG_INFO "检查是否已安装texlive-yafoot"
rpm -q texlive-yafoot >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-yafoot已安装测试结束后保持安装状态"
installed=true
else
LOG_INFO "texlive-yafoot未安装测试结束后将卸载"
installed=false
fi
# 安装texlive-yafoot
if [ "$installed" = false ]; then
LOG_INFO "安装texlive-yafoot"
dnf install -y texlive-yafoot
CHECK_RESULT $? 0 0 "安装texlive-yafoot失败"
fi
# 验证软件包功能
LOG_INFO "验证texlive-yafoot功能"
command_to_test="texlive-yafoot --version"
eval "$command_to_test" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "验证texlive-yafoot功能失败"
# 清理环境(如果之前未安装)
if [ "$installed" = false ]; then
LOG_INFO "卸载texlive-yafoot"
dnf remove -y texlive-yafoot
CHECK_RESULT $? 0 0 "卸载texlive-yafoot失败"
fi
LOG_INFO "测试完成:验证软件包安装功能"
}
main "$@"