This commit is contained in:
2026-04-25 01:46:00 +08:00
111 changed files with 0 additions and 8011 deletions

View File

@@ -7,25 +7,9 @@
"desc": "测试 brltty-xw 软件包的安装功能,验证安装过程是否成功",
"machine num": 1
},
{
"name": "test_brltty-xw_function_install",
"desc": "测试 brltty-xw 软件包的安装功能,验证安装过程是否成功且软件包文件正确部署"
},
{
"name": "test_brltty-xw_function_uninstall",
"desc": "测试 brltty-xw 软件包的卸载功能,验证卸载过程是否成功且相关文件被清理"
},
{
"name": "test_brltty-xw_function_version",
"desc": "测试 brltty-xw 软件包的版本查询功能,验证能正确显示软件包版本信息"
},
{
"name": "test_brltty-xw_function_config",
"desc": "测试 brltty-xw 软件包的基本配置功能,验证配置文件存在且可访问"
},
{
"name": "test_brltty-xw_function_service",
"desc": "测试 brltty-xw 相关服务的状态管理功能,验证服务能正常启动、停止和查询状态"
}
]
}

View File

@@ -5,26 +5,6 @@
{
"name": "test_lucene-queryparser_function_install",
"desc": "Test package installation"
},
{
"name": "test_lucene-queryparser_function_queryparse",
"desc": "Test query parsing functionality"
},
{
"name": "test_lucene-queryparser_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_lucene-queryparser_function_basicparse",
"desc": "Test basic query parsing"
},
{
"name": "test_lucene-queryparser_function_advparse",
"desc": "Test advanced query syntax"
},
{
"name": "test_lucene-queryparser_function_errorhandle",
"desc": "Test error query handling"
}
]
}

View File

@@ -6,18 +6,6 @@
"name": "test_maven-doxia-module-rtf_install",
"desc": "测试软件包的安装功能,验证安装过程是否正常完成。",
"machine num": 1
},
{
"name": "test_maven-doxia-module-rtf_function_generate",
"desc": "测试RTF文档生成功能验证生成的文档是否符合预期格式。"
},
{
"name": "test_maven-doxia-module-rtf_function_parse",
"desc": "测试RTF文档解析功能验证解析结果是否正确。"
},
{
"name": "test_maven-doxia-module-rtf_function_config",
"desc": "测试配置加载功能,验证配置是否正确应用。"
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_minicom-help_function_remove",
"desc": "测试软件包minicom-help能否被正确卸载"
},
{
"name": "test_minicom-help_function_installed",
"desc": "测试软件包minicom-help是否已安装在系统中"
},
{
"name": "test_minicom-help_function_version",
"desc": "测试软件包minicom-help的版本信息能否正确查询"
},
{
"name": "test_minicom-help_function_display",
"desc": "测试minicom-help帮助文档能否被正确显示"
}
]
}

View File

@@ -9,22 +9,6 @@
{
"name": "test_pcp-pmda-libvirt_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_pcp-pmda-libvirt_function_enable",
"desc": "Test enabling PMDA"
},
{
"name": "test_pcp-pmda-libvirt_function_start",
"desc": "Test PMDA service start"
},
{
"name": "test_pcp-pmda-libvirt_function_collect",
"desc": "Test metrics collection"
},
{
"name": "test_pcp-pmda-libvirt_function_query",
"desc": "Test query specific metric"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/pnm2ppa/pnm2ppa",
"machine num": 1,
"cases": [
{
"name": "test_pnm2ppa_pbmtpg__upper_v",
"desc": "测试pbmtpg命令的详细模式输出"
}
]
}

View File

@@ -2,325 +2,33 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/proftpd/proftpd-utils",
"machine num": 1,
"cases": [
{
"name": "test_proftpd-utils_ftpasswd_passwd",
"desc": "测试使用--passwd参数创建passwd格式文件"
},
{
"name": "test_proftpd-utils_ftpasswd_group",
"desc": "测试使用--group参数创建group格式文件"
},
{
"name": "test_proftpd-utils_ftpasswd_hash",
"desc": "测试使用--hash参数生成密码哈希"
},
{
"name": "test_proftpd-utils_ftpasswd_file",
"desc": "测试使用--file参数指定输出文件路径"
},
{
"name": "test_proftpd-utils_ftpasswd_upper_f",
"desc": "测试使用-F参数强制覆盖现有文件"
},
{
"name": "test_proftpd-utils_ftpasswd_gecos",
"desc": "测试使用--gecos参数设置用户描述信息"
},
{
"name": "test_proftpd-utils_ftpasswd_gid",
"desc": "测试使用--gid参数设置用户组ID"
},
{
"name": "test_proftpd-utils_ftpasswd_home",
"desc": "测试使用--home参数设置用户主目录"
},
{
"name": "test_proftpd-utils_ftpasswd_des",
"desc": "测试使用--des参数选择DES加密算法"
},
{
"name": "test_proftpd-utils_ftpasswd_md5",
"desc": "测试使用--md5参数选择MD5加密算法"
},
{
"name": "test_proftpd-utils_ftpmail__fifo_path",
"desc": "测试 ftpmail 命令的 --fifo 参数,指定 FIFO 路径"
},
{
"name": "test_proftpd-utils_ftpmail__from_addr",
"desc": "测试 ftpmail 命令的 --from 参数,指定发件人地址"
},
{
"name": "test_proftpd-utils_ftpmail__recipient_addr",
"desc": "测试 ftpmail 命令的 --recipient 参数,指定收件人地址"
},
{
"name": "test_proftpd-utils_ftpmail__smtp-server_addr",
"desc": "测试 ftpmail 命令的 --smtp-server 参数,指定 SMTP 服务器地址"
},
{
"name": "test_proftpd-utils_ftpmail__attach-file",
"desc": "测试 ftpmail 命令的 --attach-file 参数,包含上传文件作为附件"
},
{
"name": "test_proftpd-utils_ftpmail__ignore-users_regex",
"desc": "测试 ftpmail 命令的 --ignore-users 参数,指定忽略用户的正则表达式"
},
{
"name": "test_proftpd-utils_ftpmail__watch-users_regex",
"desc": "测试 ftpmail 命令的 --watch-users 参数,指定监控用户的正则表达式"
},
{
"name": "test_proftpd-utils_ftpmail__subject_string",
"desc": "测试 ftpmail 命令的 --subject 参数,指定自定义邮件主题"
},
{
"name": "test_proftpd-utils_ftpmail__log_path",
"desc": "测试 ftpmail 命令的 --log 参数,指定日志文件路径"
},
{
"name": "test_proftpd-utils_ftpquota__add_record",
"desc": "测试添加一个新的配额记录"
},
{
"name": "test_proftpd-utils_ftpquota__create_table",
"desc": "测试创建配额表"
},
{
"name": "test_proftpd-utils_ftpquota__delete_record",
"desc": "测试删除配额记录"
},
{
"name": "test_proftpd-utils_ftpquota__show_records",
"desc": "测试显示所有配额记录"
},
{
"name": "test_proftpd-utils_ftpquota__update_record",
"desc": "测试更新配额记录"
},
{
"name": "test_proftpd-utils_ftpquota__type_limit",
"desc": "测试指定表类型为limit"
},
{
"name": "test_proftpd-utils_ftpquota__type_tally",
"desc": "测试指定表类型为tally"
},
{
"name": "test_proftpd-utils_ftpquota__bytes_upload",
"desc": "测试设置上传字节数限制"
},
{
"name": "test_proftpd-utils_ftpquota__bytes_download",
"desc": "测试设置下载字节数限制"
},
{
"name": "test_proftpd-utils_ftpquota__bytes_xfer",
"desc": "测试设置传输字节数限制"
},
{
"name": "test_proftpd-utils_ftpquota__files_upload",
"desc": "测试设置上传文件数限制"
},
{
"name": "test_proftpd-utils_ftpquota__files_download",
"desc": "测试设置下载文件数限制"
},
{
"name": "test_proftpd-utils_ftpquota__files_xfer",
"desc": "测试设置传输文件数限制"
},
{
"name": "test_proftpd-utils_ftpquota__limit_type_hard",
"desc": "测试设置字节限制类型为hard模式超出自动删除"
},
{
"name": "test_proftpd-utils_ftptop__upper_a",
"desc": "测试 ftptop 命令的 -A 参数,仅显示认证会话"
},
{
"name": "test_proftpd-utils_ftptop_a",
"desc": "测试 ftptop 命令的 -a 参数,忽略认证连接"
},
{
"name": "test_proftpd-utils_ftptop_b",
"desc": "测试 ftptop 命令的 -b 参数,批处理模式"
},
{
"name": "test_proftpd-utils_ftptop__upper_d",
"desc": "测试 ftptop 命令的 -D 参数,仅显示下载会话"
},
{
"name": "test_proftpd-utils_ftptop_d_num_5",
"desc": "测试 ftptop 命令的 -d 5 参数设置刷新延迟为5秒"
},
{
"name": "test_proftpd-utils_ftptop_f",
"desc": "测试 ftptop 命令的 -f 参数配置使用的ScoreboardFile"
},
{
"name": "test_proftpd-utils_ftptop_h",
"desc": "测试 ftptop 命令的 -h 参数,显示帮助信息"
},
{
"name": "test_proftpd-utils_ftptop__upper_i",
"desc": "测试 ftptop 命令的 -I 参数,仅显示空闲连接"
},
{
"name": "test_proftpd-utils_ftptop_i",
"desc": "测试 ftptop 命令的 -i 参数,忽略空闲连接"
},
{
"name": "test_proftpd-utils_ftptop_n_num_10",
"desc": "测试 ftptop 命令的 -n 10 参数设置迭代次数为10次"
},
{
"name": "test_proftpd-utils_fttop__upper_s",
"desc": "测试 ftptop 命令的-S参数,仅显示指定ServerName的连接"
},
{
"name": "test_proftpd-utils_function_ftpasswd_shell",
"desc": "测试使用--shell参数设置用户默认shell"
},
{
"name": "test_proftpd-utils_function_ftpasswd_uid",
"desc": "测试使用--uid参数设置用户ID"
},
{
"name": "test_proftpd-utils_function_ftpmail_verbose",
"desc": "测试ftpmail命令的--verbose参数启用详细输出"
},
{
"name": "test_proftpd-utils_function_ftpquota_type_all",
"desc": "测试指定表类型为all"
},
{
"name": "test_proftpd-utils_function_ftptop_upper_u",
"desc": "测试ftptop命令的-U参数仅显示指定用户的连接"
},
{
"name": "test_proftpd-utils_ftpmail__fifo",
"desc": "测试 ftpmail 命令的 --fifo 参数"
},
{
"name": "test_proftpd-utils_ftpmail__from",
"desc": "测试 ftpmail 命令的 --from 参数"
},
{
"name": "test_proftpd-utils_ftpmail__recipient",
"desc": "测试 ftpmail 命令的 --recipient 参数"
},
{
"name": "test_proftpd-utils_ftpmail__smtp-server",
"desc": "测试 ftpmail 命令的 --smtp-server 参数"
},
{
"name": "test_proftpd-utils_ftpmail__ignore-users",
"desc": "测试 ftpmail 命令的 --ignore-users 参数"
},
{
"name": "test_proftpd-utils_ftpmail__watch-users",
"desc": "测试 ftpmail 命令的 --watch-users 参数"
},
{
"name": "test_proftpd-utils_ftpmail__log",
"desc": "测试 ftpmail 命令的 --log 参数"
},
{
"name": "test_proftpd-utils_ftpmail__subject",
"desc": "测试 ftpmail 命令的 --subject 参数"
},
{
"name": "test_proftpd-utils_ftpquota__add_record__name__quota_type",
"desc": "测试添加一个新的配额记录,指定名称和配额类型"
},
{
"name": "test_proftpd-utils_ftpquota__delete_record__name__quota_type",
"desc": "测试删除一个配额记录,指定名称和配额类型"
},
{
"name": "test_proftpd-utils_ftpquota__update_record__name__quota_type",
"desc": "测试更新一个配额记录,指定名称和配额类型"
},
{
"name": "test_proftpd-utils_ftpquota__type",
"desc": "测试指定表类型进行操作"
},
{
"name": "test_proftpd-utils_ftpquota_Bu",
"desc": "测试指定上传字节数限制"
},
{
"name": "test_proftpd-utils_ftpquota_Bd",
"desc": "测试指定下载字节数限制"
},
{
"name": "test_proftpd-utils_ftpquota_Bx",
"desc": "测试指定传输字节数限制"
},
{
"name": "test_proftpd-utils_ftpquota_Fu",
"desc": "测试指定上传文件数限制"
},
{
"name": "test_proftpd-utils_ftpquota_Fd",
"desc": "测试指定下载文件数限制"
},
{
"name": "test_proftpd-utils_ftpquota_Fx",
"desc": "测试指定传输文件数限制"
},
{
"name": "test_proftpd-utils_ftptop_upper_a",
"desc": "测试 ftptop 命令的 -A 参数,仅显示认证会话"
},
{
"name": "test_proftpd-utils_ftptop_upper_d",
"desc": "测试 ftptop 命令的 -D 参数,仅显示下载会话"
},
{
"name": "test_proftpd-utils_ftptop_upper_i",
"desc": "测试 ftptop 命令的 -I 参数,仅显示空闲连接"
},
{
"name": "test_proftpd-utils_ftptop_upper_s",
"desc": "测试 ftptop 命令的 -S 参数仅显示指定ServerName的会话"
},
{
"name": "test_proftpd-utils_ftptop_upper_u",
"desc": "测试 ftptop 命令的 -U 参数,仅显示上传会话"
},
{
"name": "test_proftpd-utils_ftptop_upper_v",
"desc": "测试 ftptop 命令的 -V 参数,显示版本信息"
},
{
"name": "test_proftpd-utils_ftpwho__c",
"desc": "测试使用 -c 参数指定 proftpd 配置文件路径"
},
{
"name": "test_proftpd-utils_ftpwho__f",
"desc": "测试使用 -f 参数指定 scoreboard 文件路径"
},
{
"name": "test_proftpd-utils_ftpwho__h",
"desc": "测试使用 -h 参数显示 ftpwho 帮助信息"
},
{
"name": "test_proftpd-utils_ftpwho__o",
"desc": "测试使用 -o 参数指定输出格式"
},
{
"name": "test_proftpd-utils_ftpwho__v",
"desc": "测试使用 -v 参数显示每个连接的额外信息"
},
{
"name": "test_proftpd-utils_ftpwho__upper_s",
"desc": "测试使用 -S 参数显示指定 ServerName 的用户"
},
{
"name": "test_proftpd-utils_function_config",
"desc": "测试配置文件解析功能"
}
]
}

View File

@@ -10,10 +10,6 @@
"name": "test_proguard-gui_function_load",
"desc": "测试加载配置文件功能"
},
{
"name": "test_proguard-gui_function_save",
"desc": "测试保存配置文件功能"
},
{
"name": "test_proguard-gui_function_optimize",
"desc": "测试代码优化功能"

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-g/texlive-dlfltxb",
"machine num": 1,
"cases": [
{
"name": "test_texlive-dlfltxb_function_install",
"desc": "Test installation of texlive-dlfltxb"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-q/texlive-odsfile",
"machine num": 1,
"cases": [
{
"name": "test_texlive-odsfile_function_install",
"desc": "测试软件包 texlive-odsfile 的安装功能"
},
{
"name": "test_texlive-odsfile_function_check_installed",
"desc": "测试检查 texlive-odsfile 软件包是否已正确安装"
},
{
"name": "test_texlive-odsfile_function_odsfile_macro",
"desc": "测试使用 \\usepackage{odsfile} 宏包"
},
{
"name": "test_texlive-odsfile_function_odsimport",
"desc": "测试 \\odsimport 命令导入ODS文件"
},
{
"name": "test_texlive-odsfile_function_uninstall",
"desc": "测试软件包 texlive-odsfile 的卸载功能"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-u/texlive-scrjrnl",
"machine num": 1,
"cases": [
{
"name": "test_texlive-scrjrnl_function_basic",
"desc": "Test basic functionality of texlive-scrjrnl"
},
{
"name": "test_texlive-scrjrnl_function_install",
"desc": "Test if texlive-scrjrnl package can be installed correctly"
@@ -17,14 +13,6 @@
{
"name": "test_texlive-scrjrnl_function_version",
"desc": "Test querying the installed version of texlive-scrjrnl"
},
{
"name": "test_texlive-scrjrnl_function_basic_usage",
"desc": "Test basic document compilation with scrjrnl class"
},
{
"name": "test_texlive-scrjrnl_function_options",
"desc": "Test common class options of scrjrnl (e.g., a4paper)"
}
]
}

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-13
# @License : Mulan PSL v2
# @Desc : 测试 brltty-xw 软件包的基本配置功能,验证配置文件存在且可访问
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装brltty-xw软件包
LOG_INFO "检查是否已安装brltty-xw软件包"
if dnf list installed brltty-xw >/dev/null 2>&1; then
LOG_INFO "brltty-xw软件包已安装测试后保持安装状态"
INSTALLED=1
else
LOG_INFO "brltty-xw软件包未安装将在测试后卸载"
INSTALLED=0
fi
# 检查yum源中是否存在brltty-xw软件包
LOG_INFO "检查yum源中是否存在brltty-xw软件包"
if ! dnf list available brltty-xw >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到brltty-xw软件包"
exit 255
fi
# 如果未安装则安装brltty-xw软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装brltty-xw软件包"
dnf install -y brltty-xw
CHECK_RESULT $? 0 0 "安装brltty-xw软件包失败"
fi
# 验证配置文件存在且可访问
LOG_INFO "验证brltty-xw配置文件存在且可访问"
CONFIG_FILE="/etc/brltty.conf"
if [ -f "$CONFIG_FILE" ]; then
LOG_INFO "配置文件 $CONFIG_FILE 存在"
if [ -r "$CONFIG_FILE" ]; then
LOG_INFO "配置文件 $CONFIG_FILE 可读"
else
LOG_ERROR "配置文件 $CONFIG_FILE 不可读"
exit 1
fi
else
LOG_ERROR "配置文件 $CONFIG_FILE 不存在"
exit 1
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载brltty-xw软件包"
dnf remove -y brltty-xw
CHECK_RESULT $? 0 0 "卸载brltty-xw软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试 brltty-xw 软件包的安装功能,验证安装过程是否成功且软件包文件正确部署
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 brltty-xw 软件包的安装功能"
LOG_INFO "检查 brltty-xw 软件包是否在 yum 源中"
dnf list available brltty-xw > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 brltty-xw 软件包"
exit 255
fi
LOG_INFO "检查当前环境是否已安装 brltty-xw"
rpm -q brltty-xw > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "brltty-xw 软件包已安装,脚本结束时将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "brltty-xw 软件包未安装,将在测试步骤中安装"
INSTALLED_BEFORE=0
fi
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "开始安装 brltty-xw 软件包"
dnf install -y brltty-xw
CHECK_RESULT $? 0 0 "安装 brltty-xw 软件包失败"
fi
LOG_INFO "验证 brltty-xw 软件包文件是否正确部署"
rpm -ql brltty-xw > /dev/null 2>&1
CHECK_RESULT $? 0 0 "brltty-xw 软件包文件部署异常"
LOG_INFO "检查 brltty-xw 相关命令是否可用"
which brltty-xw > /dev/null 2>&1
CHECK_RESULT $? 0 0 "未找到 brltty-xw 命令"
LOG_INFO "执行 brltty-xw 命令的简单测试"
brltty-xw --help > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "brltty-xw 命令不支持 --help 参数"
exit 255
fi
CHECK_RESULT $? 0 0 "brltty-xw 命令执行失败"
LOG_INFO "清理测试环境"
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载测试安装的 brltty-xw 软件包"
dnf remove -y brltty-xw
CHECK_RESULT $? 0 0 "卸载 brltty-xw 软件包失败"
else
LOG_INFO "测试前已安装 brltty-xw保持安装状态"
fi
LOG_INFO "brltty-xw 软件包安装功能测试完成"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试 brltty-xw 相关服务的状态管理功能,验证服务能正常启动、停止和查询状态
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 brltty-xw 相关服务的状态管理功能"
LOG_INFO "步骤1检查 yum 源中是否存在 brltty-xw 软件包"
dnf list brltty-xw >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 brltty-xw 软件包"
exit 255
fi
LOG_INFO "步骤2检查当前环境中是否已安装 brltty-xw"
rpm -q brltty-xw >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "brltty-xw 已安装,标记为保持安装状态"
INSTALLED=1
else
LOG_INFO "brltty-xw 未安装,将进行安装"
INSTALLED=0
LOG_INFO "步骤3安装 brltty-xw 软件包"
dnf install -y brltty-xw
CHECK_RESULT $? 0 0 "安装 brltty-xw 失败"
fi
LOG_INFO "步骤4验证服务能正常启动"
systemctl start brltty-xw.service
CHECK_RESULT $? 0 0 "启动 brltty-xw 服务失败"
LOG_INFO "步骤5验证服务能正常查询状态"
systemctl status brltty-xw.service >/dev/null 2>&1
CHECK_RESULT $? 0 0 "查询 brltty-xw 服务状态失败"
LOG_INFO "步骤6验证服务能正常停止"
systemctl stop brltty-xw.service
CHECK_RESULT $? 0 0 "停止 brltty-xw 服务失败"
LOG_INFO "步骤7清理环境恢复到之前的状态"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载 brltty-xw 软件包"
dnf remove -y brltty-xw
CHECK_RESULT $? 0 0 "卸载 brltty-xw 失败"
else
LOG_INFO "保持 brltty-xw 的安装状态"
fi
LOG_INFO "brltty-xw 服务状态管理功能测试完成"
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试 brltty-xw 软件包的版本查询功能,验证能正确显示软件包版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断软件包是否已安装
LOG_INFO "检查 brltty-xw 软件包是否已安装"
if dnf list installed brltty-xw &>/dev/null; then
LOG_INFO "brltty-xw 软件包已安装,脚本结束后将保持安装状态"
already_installed=1
else
LOG_INFO "brltty-xw 软件包未安装,将在测试步骤中安装"
already_installed=0
fi
# 检查 yum 源中是否存在 brltty-xw 软件包
LOG_INFO "检查 yum 源中是否存在 brltty-xw 软件包"
if ! dnf list available brltty-xw &>/dev/null; then
LOG_ERROR "yum 源中不存在 brltty-xw 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "安装 brltty-xw 软件包"
dnf install -y brltty-xw
CHECK_RESULT $? 0 0 "安装 brltty-xw 软件包失败"
fi
# 测试版本查询功能
LOG_INFO "测试 brltty-xw 软件包的版本查询功能"
# 检查命令是否支持 --version 参数
if ! brltty-xw --help 2>&1 | grep -q -- "--version"; then
LOG_ERROR "brltty-xw 命令不支持 --version 参数"
# 如果之前未安装,需要卸载
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "清理环境,卸载 brltty-xw 软件包"
dnf remove -y brltty-xw
fi
exit 255
fi
# 执行版本查询命令
version_output=$(brltty-xw --version 2>&1)
CHECK_RESULT $? 0 0 "执行 brltty-xw --version 命令失败"
# 验证版本信息是否正确显示
LOG_INFO "验证版本信息是否正确显示"
if [ -z "${version_output}" ]; then
LOG_ERROR "版本查询输出为空"
# 如果之前未安装,需要卸载
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "清理环境,卸载 brltty-xw 软件包"
dnf remove -y brltty-xw
fi
exit 1
fi
LOG_INFO "版本查询输出: ${version_output}"
# 清理环境
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "清理环境,卸载 brltty-xw 软件包"
dnf remove -y brltty-xw
CHECK_RESULT $? 0 0 "卸载 brltty-xw 软件包失败"
else
LOG_INFO "保持 brltty-xw 软件包安装状态"
fi
LOG_INFO "测试完成"
}
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-22
# @License : Mulan PSL v2
# @Desc : Test advanced query syntax
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试高级查询语法
LOG_INFO "开始测试高级查询语法功能"
# 定义软件包名称
PACKAGE_NAME="lucene-queryparser"
# 检查软件包是否已在yum源中
LOG_INFO "检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME 2>/dev/null | grep -q $PACKAGE_NAME
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
# 检查当前是否已安装
LOG_INFO "检查软件包是否已安装"
rpm -q $PACKAGE_NAME >/dev/null 2>&1
PACKAGE_INSTALLED=$?
# 记录初始安装状态
if [ $PACKAGE_INSTALLED -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试后保持安装状态"
NEED_CLEANUP=0
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,测试后需要卸载"
NEED_CLEANUP=1
fi
# 如果未安装,则安装软件包
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 测试基本查询功能
LOG_INFO "测试基本查询功能"
lucene-queryparser --help >/dev/null 2>&1
CHECK_RESULT $? 0 0 "lucene-queryparser命令不可用"
# 测试高级查询语法 - 通配符查询
LOG_INFO "测试通配符查询语法"
echo "test*query" | lucene-queryparser --test 2>&1 | grep -q "wildcard"
CHECK_RESULT $? 0 0 "通配符查询语法不支持"
# 测试高级查询语法 - 范围查询
LOG_INFO "测试范围查询语法"
echo "[value1 TO value2]" | lucene-queryparser --test 2>&1 | grep -q "range"
CHECK_RESULT $? 0 0 "范围查询语法不支持"
# 测试高级查询语法 - 模糊查询
LOG_INFO "测试模糊查询语法"
echo "term~0.8" | lucene-queryparser --test 2>&1 | grep -q "fuzzy"
CHECK_RESULT $? 0 0 "模糊查询语法不支持"
# 测试高级查询语法 - 布尔查询
LOG_INFO "测试布尔查询语法"
echo "term1 AND term2" | lucene-queryparser --test 2>&1 | grep -q "boolean"
CHECK_RESULT $? 0 0 "布尔查询语法不支持"
# 测试高级查询语法 - 分组查询
LOG_INFO "测试分组查询语法"
echo "(term1 OR term2) AND term3" | lucene-queryparser --test 2>&1 | grep -q "group"
CHECK_RESULT $? 0 0 "分组查询语法不支持"
# 测试高级查询语法 - 字段查询
LOG_INFO "测试字段查询语法"
echo "title:term" | lucene-queryparser --test 2>&1 | grep -q "field"
CHECK_RESULT $? 0 0 "字段查询语法不支持"
# 测试高级查询语法 - 短语查询
LOG_INFO "测试短语查询语法"
echo "\"phrase query\"" | lucene-queryparser --test 2>&1 | grep -q "phrase"
CHECK_RESULT $? 0 0 "短语查询语法不支持"
# 测试高级查询语法 - 提升查询
LOG_INFO "测试提升查询语法"
echo "term^2.0" | lucene-queryparser --test 2>&1 | grep -q "boost"
CHECK_RESULT $? 0 0 "提升查询语法不支持"
# 测试高级查询语法 - 必需/禁止查询
LOG_INFO "测试必需/禁止查询语法"
echo "+required -prohibited" | lucene-queryparser --test 2>&1 | grep -q "required"
CHECK_RESULT $? 0 0 "必需/禁止查询语法不支持"
# 测试高级查询语法 - 转义字符
LOG_INFO "测试转义字符处理"
echo "special\\:characters" | lucene-queryparser --test 2>&1 | grep -q "escaped"
CHECK_RESULT $? 0 0 "转义字符处理不支持"
# 清理环境
LOG_INFO "清理测试环境"
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "高级查询语法测试完成"
}
main "$@"

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test basic query parsing
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试基础查询解析功能
LOG_INFO "开始测试基础查询解析功能"
# 定义软件包名称
PACKAGE_NAME="lucene-queryparser"
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
# 检查软件包是否在yum源中
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中可用"
# 检查是否已安装
IS_INSTALLED=0
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
IS_INSTALLED=1
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将进行安装"
fi
# 如果未安装,则安装软件包
if [ ${IS_INSTALLED} -eq 0 ]; then
LOG_INFO "开始安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功"
fi
# 测试基础查询解析功能
LOG_INFO "测试基础查询解析功能"
# 这里假设有一个测试命令,实际使用时需要替换为实际的测试命令
TEST_COMMAND="lucene-queryparser-test"
LOG_INFO "执行测试命令: ${TEST_COMMAND}"
# 检查命令是否存在
which ${TEST_COMMAND} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${TEST_COMMAND} 不存在或不支持"
exit 255
fi
# 执行测试命令
${TEST_COMMAND} --basic-parse
CHECK_RESULT $? 0 0 "基础查询解析测试失败"
LOG_INFO "基础查询解析测试成功"
# 清理环境
LOG_INFO "开始清理测试环境"
if [ ${IS_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,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-02-22
# @License : Mulan PSL v2
# @Desc : Test error query handling
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test error query handling"
# 步骤1检查yum源中是否存在lucene-queryparser软件包
LOG_INFO "步骤1检查yum源中是否存在lucene-queryparser软件包"
dnf list available lucene-queryparser 2>/dev/null | grep -q "lucene-queryparser"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到lucene-queryparser软件包"
exit 255
fi
# 步骤2检查系统是否已安装lucene-queryparser
LOG_INFO "步骤2检查系统是否已安装lucene-queryparser"
rpm -q lucene-queryparser >/dev/null 2>&1
already_installed=$?
if [ $already_installed -eq 0 ]; then
LOG_INFO "lucene-queryparser已安装测试结束后将保持安装状态"
need_cleanup=0
else
LOG_INFO "lucene-queryparser未安装将进行安装测试"
need_cleanup=1
fi
# 步骤3如果未安装则安装软件包
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "步骤3安装lucene-queryparser软件包"
dnf install -y lucene-queryparser
CHECK_RESULT $? 0 0 "安装lucene-queryparser失败"
fi
# 步骤4测试错误查询处理功能
LOG_INFO "步骤4测试错误查询处理功能"
# 步骤4.1:测试不支持的参数
LOG_INFO "步骤4.1:测试不支持的参数"
lucene-queryparser --invalid-param 2>/dev/null
if [ $? -eq 255 ]; then
LOG_INFO "不支持参数测试通过"
else
LOG_ERROR "不支持参数测试失败"
exit 255
fi
# 步骤4.2:测试无效查询语法
LOG_INFO "步骤4.2:测试无效查询语法"
lucene-queryparser "invalid:[" 2>&1 | grep -q "ParseException"
CHECK_RESULT $? 0 0 "无效查询语法处理失败"
# 步骤4.3:测试空查询
LOG_INFO "步骤4.3:测试空查询"
lucene-queryparser "" 2>&1 | grep -q "Empty query"
CHECK_RESULT $? 0 0 "空查询处理失败"
# 步骤4.4:测试特殊字符处理
LOG_INFO "步骤4.4:测试特殊字符处理"
lucene-queryparser "test&|!(){}[]^\"~*?:\" 2>&1 | grep -q "parsed successfully"
CHECK_RESULT $? 0 0 "特殊字符处理失败"
# 步骤5清理测试环境
LOG_INFO "步骤5清理测试环境"
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "卸载测试安装的lucene-queryparser软件包"
dnf remove -y lucene-queryparser
CHECK_RESULT $? 0 0 "卸载lucene-queryparser失败"
else
LOG_INFO "保持原有的lucene-queryparser安装状态"
fi
LOG_INFO "测试完成Test error query handling"
}
main "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-05
# @License : Mulan PSL v2
# @Desc : Test query parsing functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test query parsing functionality"
# 检查是否已安装lucene-queryparser
if dnf list installed lucene-queryparser &>/dev/null; then
LOG_INFO "lucene-queryparser已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "lucene-queryparser未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在lucene-queryparser
LOG_INFO "检查yum源中是否存在lucene-queryparser"
if ! dnf list available lucene-queryparser &>/dev/null; then
LOG_ERROR "yum源中未找到lucene-queryparser软件包"
exit 255
fi
# 安装lucene-queryparser如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装lucene-queryparser"
dnf install -y lucene-queryparser
CHECK_RESULT $? 0 0 "安装lucene-queryparser失败"
fi
# 测试query parsing功能
LOG_INFO "测试query parsing功能"
queryparse_output=$(command_to_test_queryparse_functionality)
CHECK_RESULT $? 0 0 "执行查询解析功能失败"
# 验证输出是否符合预期(假设预期输出包含"success"
if [[ "$queryparse_output" != *"success"* ]]; then
LOG_ERROR "查询解析功能输出不符合预期"
exit 1
fi
# 清理环境(如果测试前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载lucene-queryparser"
dnf remove -y lucene-queryparser
CHECK_RESULT $? 0 0 "卸载lucene-queryparser失败"
fi
LOG_INFO "测试完成Test query parsing functionality"
}
main "$@"

View File

@@ -1,105 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test package uninstallation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数假设LOG_INFO和LOG_ERROR已定义这里仅作示例
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 定义CHECK_RESULT函数假设已定义这里仅作示例
CHECK_RESULT() {
if [ $1 -ne $2 ]; then
LOG_ERROR "$4"
exit $3
fi
}
# 定义SSH_CMD函数假设已定义这里仅作示例
SSH_CMD() {
# 模拟SSH执行命令
echo "Executing on remote node: $1"
}
# 定义软件包名称
PACKAGE_NAME="lucene-queryparser"
# 步骤1: 检查环境是否已安装软件包
LOG_INFO "步骤1: 检查环境是否已安装软件包"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束时将保持安装状态。"
INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装。"
INSTALLED=false
fi
# 步骤2: 检查yum源中是否有该软件包
LOG_INFO "步骤2: 检查yum源中是否有软件包 $PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
exit 255
fi
# 步骤3: 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4: 执行测试命令(这里以查询软件包信息为例)
LOG_INFO "步骤4: 执行测试命令(查询软件包信息)"
rpm -qi $PACKAGE_NAME
CHECK_RESULT $? 0 $? "查询软件包信息失败"
# 步骤5: 测试卸载软件包(如果之前未安装)
LOG_INFO "步骤5: 测试卸载软件包 $PACKAGE_NAME"
if [ "$INSTALLED" = false ]; then
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 $? "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功。"
else
LOG_INFO "软件包 $PACKAGE_NAME 在测试前已安装,跳过卸载步骤。"
fi
# 步骤6: 验证卸载结果(如果执行了卸载)
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤6: 验证软件包 $PACKAGE_NAME 是否已卸载"
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 卸载失败"
exit 1
else
LOG_INFO "软件包 $PACKAGE_NAME 已成功卸载。"
fi
fi
# 步骤7: 环境恢复(如果之前未安装,则已卸载;如果已安装,则保持安装状态)
LOG_INFO "步骤7: 环境恢复完成,脚本结束。"
}
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 : 2025-12-10
# @License : Mulan PSL v2
# @Desc : 测试配置加载功能,验证配置是否正确应用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试配置加载功能,验证配置是否正确应用
# 步骤1检查是否已安装maven-doxia-module-rtf
LOG_INFO "检查是否已安装maven-doxia-module-rtf"
if dnf list installed maven-doxia-module-rtf &>/dev/null; then
LOG_INFO "maven-doxia-module-rtf已安装脚本结束时保持安装状态"
INSTALLED=true
else
LOG_INFO "maven-doxia-module-rtf未安装将在测试后卸载"
INSTALLED=false
fi
# 步骤2检查yum源中是否存在maven-doxia-module-rtf
LOG_INFO "检查yum源中是否存在maven-doxia-module-rtf"
if ! dnf list available maven-doxia-module-rtf &>/dev/null; then
LOG_ERROR "yum源中未找到maven-doxia-module-rtf软件包"
exit 255
fi
# 步骤3安装maven-doxia-module-rtf
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装maven-doxia-module-rtf"
dnf install -y maven-doxia-module-rtf
CHECK_RESULT $? 0 0 "安装maven-doxia-module-rtf失败"
fi
# 步骤4验证配置加载功能
LOG_INFO "验证配置加载功能"
# 假设使用某个命令验证配置加载,这里用示例命令代替实际命令
CONFIG_CHECK_CMD="some-config-check-command --validate"
if ! command -v some-config-check-command &>/dev/null; then
LOG_ERROR "命令some-config-check-command不存在或不支持"
exit 255
fi
$CONFIG_CHECK_CMD
CHECK_RESULT $? 0 0 "配置加载功能验证失败"
# 步骤5清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载maven-doxia-module-rtf"
dnf remove -y maven-doxia-module-rtf
CHECK_RESULT $? 0 0 "卸载maven-doxia-module-rtf失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-10
# @License : Mulan PSL v2
# @Desc : 测试RTF文档生成功能验证生成的文档是否符合预期格式。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装maven-doxia-module-rtf
LOG_INFO "检查是否已安装maven-doxia-module-rtf"
dnf list installed maven-doxia-module-rtf > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "maven-doxia-module-rtf已安装脚本结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "maven-doxia-module-rtf未安装将在测试后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在maven-doxia-module-rtf
LOG_INFO "检查yum源中是否存在maven-doxia-module-rtf"
dnf list available maven-doxia-module-rtf > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到maven-doxia-module-rtf软件包"
exit 255
fi
# 安装maven-doxia-module-rtf如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装maven-doxia-module-rtf"
dnf install -y maven-doxia-module-rtf > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装maven-doxia-module-rtf失败"
fi
# 验证RTF文档生成功能
LOG_INFO "验证RTF文档生成功能是否符合预期格式"
mvn doxia:generate -Dformat=rtf > /dev/null 2>&1
CHECK_RESULT $? 0 0 "RTF文档生成失败"
# 清理环境(如果脚本开始时未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载maven-doxia-module-rtf"
dnf remove -y maven-doxia-module-rtf > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载maven-doxia-module-rtf失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-10
# @License : Mulan PSL v2
# @Desc : 测试RTF文档解析功能验证解析结果是否正确。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装maven-doxia-module-rtf
LOG_INFO "检查是否已安装maven-doxia-module-rtf"
if dnf list installed maven-doxia-module-rtf &> /dev/null; then
LOG_INFO "maven-doxia-module-rtf已安装脚本结束时将保持安装状态"
installed=true
else
LOG_INFO "maven-doxia-module-rtf未安装将在测试结束后卸载"
installed=false
fi
# 检查yum源中是否有maven-doxia-module-rtf软件包
LOG_INFO "检查yum源中是否有maven-doxia-module-rtf软件包"
if ! dnf list available maven-doxia-module-rtf &> /dev/null; then
LOG_ERROR "yum源中未找到maven-doxia-module-rtf软件包"
exit 255
fi
# 安装maven-doxia-module-rtf软件包
if [ "$installed" = false ]; then
LOG_INFO "开始安装maven-doxia-module-rtf软件包"
dnf install -y maven-doxia-module-rtf
CHECK_RESULT $? 0 0 "安装maven-doxia-module-rtf失败"
fi
# 测试RTF文档解析功能
LOG_INFO "测试RTF文档解析功能验证解析结果是否正确"
# 假设测试命令为doxia-rtf-parse参数为test.rtf
if ! command -v doxia-rtf-parse &> /dev/null; then
LOG_ERROR "命令doxia-rtf-parse不存在或不支持"
exit 255
fi
doxia-rtf-parse test.rtf > /tmp/rtf_parse_result.txt
CHECK_RESULT $? 0 0 "RTF文档解析失败"
# 验证解析结果
LOG_INFO "验证RTF文档解析结果"
grep -q "expected_content" /tmp/rtf_parse_result.txt
CHECK_RESULT $? 0 0 "解析结果不符合预期"
# 清理临时文件
rm -f /tmp/rtf_parse_result.txt
# 卸载软件包(如果脚本开始时未安装)
if [ "$installed" = false ]; then
LOG_INFO "卸载maven-doxia-module-rtf软件包"
dnf remove -y maven-doxia-module-rtf
CHECK_RESULT $? 0 0 "卸载maven-doxia-module
}
main "$@"

View File

@@ -1,98 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-19
# @License : Mulan PSL v2
# @Desc : 测试minicom-help帮助文档能否被正确显示
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装minicom
LOG_INFO "检查minicom是否已经安装"
rpm -q minicom > /dev/null 2>&1
minicom_installed=$?
# 如果未安装,则进行安装
if [ $minicom_installed -ne 0 ]; then
LOG_INFO "minicom未安装开始安装"
# 检查yum源中是否有minicom包
LOG_INFO "检查yum源中是否有minicom软件包"
dnf list available minicom > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有minicom软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有minicom软件包"
exit 255
fi
# 安装minicom
LOG_INFO "开始安装minicom"
dnf install -y minicom
CHECK_RESULT $? 0 0 "minicom安装失败"
LOG_INFO "minicom安装成功"
# 设置安装标记,用于脚本结束时卸载
need_uninstall=1
else
LOG_INFO "minicom已经安装"
need_uninstall=0
fi
# 测试minicom的help参数
LOG_INFO "测试minicom的help参数"
minicom --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "minicom --help命令执行失败"
LOG_INFO "测试minicom的-h参数"
minicom -h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "minicom -h命令执行失败"
# 测试不支持的参数
LOG_INFO "测试minicom不支持的参数"
minicom --invalid-param > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "minicom不支持--invalid-param参数"
exit 255
fi
# 验证help输出包含关键信息
LOG_INFO "验证help输出内容"
help_output=$(minicom --help 2>&1)
echo "$help_output" | grep -q "Usage:"
CHECK_RESULT $? 0 0 "help输出中没有找到Usage信息"
echo "$help_output" | grep -q "Options:"
CHECK_RESULT $? 0 0 "help输出中没有找到Options信息"
echo "$help_output" | grep -q "minicom"
CHECK_RESULT $? 0 0 "help输出中没有找到minicom相关信息"
LOG_INFO "minicom help帮助文档显示测试完成"
# 环境清理
LOG_INFO "开始环境清理"
if [ $need_uninstall -eq 1 ]; then
LOG_INFO "卸载minicom"
dnf remove -y minicom
CHECK_RESULT $? 0 0 "minicom卸载失败"
LOG_INFO "minicom卸载成功"
else
LOG_INFO "保持minicom安装状态"
fi
LOG_INFO "环境清理完成"
}
main "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-19
# @License : Mulan PSL v2
# @Desc : 测试软件包minicom-help是否已安装在系统中
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查minicom-help软件包是否已安装"
# 检查minicom-help是否已安装
LOG_INFO "步骤1检查minicom-help是否已安装"
rpm -q minicom-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "minicom-help已安装跳过安装步骤"
installed_before_test=true
else
LOG_INFO "minicom-help未安装将在测试中安装"
installed_before_test=false
fi
# 检查yum源中是否有minicom-help软件包
LOG_INFO "步骤2检查yum源中是否有minicom-help软件包"
dnf list available minicom-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有找到minicom-help软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有minicom-help软件包"
exit 255
fi
# 如果未安装则安装minicom-help
if [ "$installed_before_test" = false ]; then
LOG_INFO "步骤3安装minicom-help软件包"
dnf install -y minicom-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装minicom-help失败"
if [ $? -ne 0 ]; then
LOG_ERROR "安装minicom-help失败"
exit $?
fi
LOG_INFO "minicom-help安装成功"
fi
# 验证minicom-help是否已正确安装
LOG_INFO "步骤4验证minicom-help是否已正确安装"
rpm -q minicom-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "minicom-help未正确安装"
if [ $? -ne 0 ]; then
LOG_ERROR "minicom-help未正确安装"
exit $?
fi
LOG_INFO "minicom-help已正确安装"
# 检查minicom-help命令是否可用
LOG_INFO "步骤5检查minicom-help命令是否可用"
minicom-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "minicom-help命令不可用或参数不支持"
if [ $? -ne 0 ]; then
LOG_ERROR "minicom-help命令不可用或参数不支持"
exit 255
fi
LOG_INFO "minicom-help命令可用"
# 清理环境如果测试前未安装则卸载minicom-help
if [ "$installed_before_test" = false ]; then
LOG_INFO "步骤6清理环境卸载minicom-help"
dnf remove -y minicom-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载minicom-help失败"
if [ $? -ne 0 ]; then
LOG_ERROR "卸载minicom-help失败"
exit $?
fi
LOG_INFO "minicom-help卸载成功"
else
LOG_INFO "步骤6保持minicom-help安装状态无需卸载"
fi
LOG_INFO "测试完成minicom-help软件包安装状态符合预期"
}
main "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-19
# @License : Mulan PSL v2
# @Desc : 测试软件包minicom-help的版本信息能否正确查询
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试minicom-help软件包版本查询功能"
LOG_INFO "检查yum源中是否存在minicom-help软件包"
if ! dnf list available minicom-help &>/dev/null; then
LOG_ERROR "yum源中未找到minicom-help软件包"
exit 255
fi
LOG_INFO "检查系统是否已安装minicom-help"
if rpm -q minicom-help &>/dev/null; then
LOG_INFO "minicom-help已安装测试后保持安装状态"
already_installed=true
else
LOG_INFO "minicom-help未安装开始安装软件包"
dnf install -y minicom-help
CHECK_RESULT $? 0 0 "minicom-help安装失败"
already_installed=false
fi
LOG_INFO "测试minicom-help版本查询命令"
minicom-help --version
CHECK_RESULT $? 0 0 "minicom-help版本查询失败"
LOG_INFO "检查--version参数是否被支持"
if ! minicom-help --help 2>&1 | grep -q "\-\-version"; then
LOG_ERROR "minicom-help不支持--version参数"
exit 255
fi
LOG_INFO "清理测试环境"
if [ "$already_installed" = "false" ]; then
LOG_INFO "卸载minicom-help软件包"
dnf remove -y minicom-help
CHECK_RESULT $? 0 0 "minicom-help卸载失败"
else
LOG_INFO "保持minicom-help安装状态"
fi
LOG_INFO "minicom-help版本查询测试完成"
}
main "$@"

View File

@@ -1,146 +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 metrics collection
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试指标收集功能
LOG_INFO "开始测试指标收集功能"
# 检查是否已安装pcp-pmda-libvirt
LOG_INFO "检查pcp-pmda-libvirt是否已安装"
if rpm -q pcp-pmda-libvirt &>/dev/null; then
LOG_INFO "pcp-pmda-libvirt已安装标记为需要保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "pcp-pmda-libvirt未安装"
INSTALLED_BEFORE_TEST=false
fi
# 检查yum源中是否有pcp-pmda-libvirt包
LOG_INFO "检查yum源中是否有pcp-pmda-libvirt包"
if ! dnf list available pcp-pmda-libvirt &>/dev/null; then
LOG_ERROR "yum源中未找到pcp-pmda-libvirt包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装pcp-pmda-libvirt包"
dnf install -y pcp-pmda-libvirt
CHECK_RESULT $? 0 0 "安装pcp-pmda-libvirt失败"
fi
# 检查pmda-libvirt是否已注册
LOG_INFO "检查pmda-libvirt是否已注册到PCP"
if ! pminfo | grep -q libvirt; then
LOG_INFO "pmda-libvirt未注册尝试注册"
# 检查/var/lib/pcp/pmdas/libvirt目录是否存在
if [ -d "/var/lib/pcp/pmdas/libvirt" ]; then
LOG_INFO "进入/var/lib/pcp/pmdas/libvirt目录执行安装"
cd /var/lib/pcp/pmdas/libvirt
# 检查Install脚本是否存在
if [ ! -f "./Install" ]; then
LOG_ERROR "未找到Install脚本"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
dnf remove -y pcp-pmda-libvirt
fi
exit 255
fi
# 检查Install脚本是否支持remove参数
if ! grep -q "remove" ./Install; then
LOG_ERROR "Install脚本不支持remove参数"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
dnf remove -y pcp-pmda-libvirt
fi
exit 255
fi
# 执行安装
LOG_INFO "执行Install脚本安装pmda-libvirt"
./Install
CHECK_RESULT $? 0 0 "安装pmda-libvirt失败"
else
LOG_ERROR "/var/lib/pcp/pmdas/libvirt目录不存在"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
dnf remove -y pcp-pmda-libvirt
fi
exit 255
fi
else
LOG_INFO "pmda-libvirt已注册"
fi
# 等待pmda启动
LOG_INFO "等待pmda-libvirt启动"
sleep 2
# 测试指标收集
LOG_INFO "测试libvirt指标收集功能"
# 检查是否有libvirt相关的指标
LOG_INFO "检查libvirt相关指标"
pminfo libvirt
CHECK_RESULT $? 0 0 "获取libvirt指标失败"
# 测试具体指标收集
LOG_INFO "测试具体指标收集"
pmprobe libvirt.domain.count
CHECK_RESULT $? 0 0 "收集libvirt.domain.count指标失败"
# 测试多个指标
LOG_INFO "测试多个指标同时收集"
pmprobe libvirt.domain.count libvirt.domain.state
CHECK_RESULT $? 0 0 "同时收集多个指标失败"
# 测试指标值获取
LOG_INFO "测试指标值获取"
pminfo -f libvirt.domain.count
CHECK_RESULT $? 0 0 "获取指标值失败"
# 如果测试前未安装,则在测试结束后卸载
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "测试完成,清理测试环境"
# 如果已经注册了pmda先卸载
LOG_INFO "检查是否需要卸载pmda-libvirt"
if pminfo | grep -q libvirt; then
LOG_INFO "卸载pmda-libvirt"
if [ -d "/var/lib/pcp/pmdas/libvirt" ]; then
cd /var/lib/pcp/pmdas/libvirt
./Install -R
CHECK_RESULT $? 0 0 "卸载pmda-libvirt失败"
fi
fi
LOG_INFO "卸载pcp-pmda-libvirt包"
dnf remove -y pcp-pmda-libvirt
CHECK_RESULT $? 0 0 "卸载pcp-pmda-libvirt包失败"
else
LOG_INFO "测试完成,保持原安装状态"
fi
LOG_INFO "指标收集功能测试完成"
}
main "$@"

View File

@@ -1,167 +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 enabling PMDA
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色变量用于日志输出
LOG_INFO() {
echo -e "\033[32m[INFO]\033[0m $*"
}
LOG_ERROR() {
echo -e "\033[31m[ERROR]\033[0m $*"
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local package_name="$1"
dnf list available "$package_name" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $package_name 不在yum源中"
exit 255
fi
}
# 检查命令参数是否存在
check_command_param() {
local command="$1"
local param="$2"
# 使用--help检查参数是否支持
if $command --help 2>&1 | grep -q "\s$param\s"; then
return 0
else
LOG_ERROR "命令 $command 不支持参数 $param"
exit 255
fi
}
# 检查环境是否已安装
check_installation() {
LOG_INFO "检查pcp-pmda-libvirt是否已安装"
rpm -q pcp-pmda-libvirt &>/dev/null
local installed=$?
if [ $installed -eq 0 ]; then
LOG_INFO "pcp-pmda-libvirt已安装"
INSTALLED_BEFORE_TEST=1
else
LOG_INFO "pcp-pmda-libvirt未安装"
INSTALLED_BEFORE_TEST=0
fi
}
# 安装软件包
install_package() {
local package_name="$1"
LOG_INFO "安装软件包: $package_name"
check_package_in_repo "$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 失败"
}
# 清理环境
cleanup_environment() {
LOG_INFO "开始清理测试环境"
# 如果测试前未安装,测试后需要卸载
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
uninstall_package "pcp-pmda-libvirt"
else
LOG_INFO "保持pcp-pmda-libvirt安装状态"
fi
}
# 主测试函数
test_enable_pmda() {
LOG_INFO "开始测试: 启用PMDA"
# 步骤1: 检查环境安装状态
check_installation
# 步骤2: 如果未安装则安装
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
install_package "pcp-pmda-libvirt"
fi
# 步骤3: 检查pmda命令是否可用
LOG_INFO "检查pmda命令是否可用"
which pmda &>/dev/null
CHECK_RESULT $? 0 0 "pmda命令不可用"
# 步骤4: 检查pmda命令的libvirt参数
LOG_INFO "检查pmda命令的libvirt参数支持"
check_command_param "pmda" "libvirt"
# 步骤5: 尝试启用libvirt PMDA
LOG_INFO "尝试启用libvirt PMDA"
pmda libvirt --help &>/dev/null
CHECK_RESULT $? 0 0 "启用libvirt PMDA失败"
# 步骤6: 检查PMDA是否成功启用
LOG_INFO "检查PMDA是否成功启用"
pcp | grep -i libvirt &>/dev/null
local check_result=$?
# 如果pcp命令不存在使用其他方式检查
if [ $check_result -eq 127 ]; then
LOG_INFO "使用替代方法检查PMDA状态"
systemctl list-unit-files | grep -i pcp &>/dev/null
CHECK_RESULT $? 0 0 "PMDA启用状态检查失败"
else
CHECK_RESULT $check_result 0 0 "PMDA未成功启用"
fi
LOG_INFO "PMDA启用测试完成"
}
# 主程序
main() {
# 初始化变量
INSTALLED_BEFORE_TEST=0
# 设置错误处理
set -e
# 执行测试
test_enable_pmda
# 清理环境
cleanup_environment
LOG_INFO "测试脚本执行完成"
}
# 执行主程序
main
}
main "$@"

View File

@@ -1,179 +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 query specific metric
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色和日志函数
LOG_INFO() {
echo -e "\033[32m[INFO]\033[0m $1"
}
LOG_ERROR() {
echo -e "\033[31m[ERROR]\033[0m $1"
}
# 检查命令是否存在
check_command() {
command -v "$1" >/dev/null 2>&1
return $?
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local package_name="$1"
dnf list available "$package_name" >/dev/null 2>&1
return $?
}
# 检查参数是否支持
check_param_support() {
local cmd="$1"
local param="$2"
$cmd --help 2>&1 | grep -q "\<$param\>"
return $?
}
# 安装软件包
install_package() {
local package_name="$1"
LOG_INFO "正在安装软件包: $package_name"
dnf install -y "$package_name" >/dev/null 2>&1
return $?
}
# 卸载软件包
uninstall_package() {
local package_name="$1"
LOG_INFO "正在卸载软件包: $package_name"
dnf remove -y "$package_name" >/dev/null 2>&1
return $?
}
# 检查libvirt服务状态
check_libvirt_status() {
systemctl is-active libvirtd >/dev/null 2>&1
return $?
}
# 启动libvirt服务
start_libvirt_service() {
LOG_INFO "正在启动libvirt服务"
systemctl start libvirtd >/dev/null 2>&1
return $?
}
# 停止libvirt服务
stop_libvirt_service() {
LOG_INFO "正在停止libvirt服务"
systemctl stop libvirtd >/dev/null 2>&1
return $?
}
# 主测试函数
test_query_specific_metric() {
local test_package="pcp-pmda-libvirt"
local need_cleanup=0
local libvirt_was_running=0
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "步骤1: 检查软件包是否在yum源中"
check_package_in_repo "$test_package"
CHECK_RESULT $? 0 0 "软件包 $test_package 不在yum源中"
# 步骤2: 检查环境是否已安装
LOG_INFO "步骤2: 检查环境是否已安装"
if check_command "pmdalibvirt"; then
LOG_INFO "检测到 $test_package 已安装"
need_cleanup=0
else
LOG_INFO "未检测到 $test_package,将在测试中安装"
need_cleanup=1
fi
# 步骤3: 检查libvirt服务状态
LOG_INFO "步骤3: 检查libvirt服务状态"
if check_libvirt_status; then
LOG_INFO "libvirt服务正在运行"
libvirt_was_running=1
else
LOG_INFO "libvirt服务未运行将启动服务"
start_libvirt_service
CHECK_RESULT $? 0 0 "启动libvirt服务失败"
fi
# 步骤4: 如果未安装,则安装软件包
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "步骤4: 安装 $test_package 软件包"
install_package "$test_package"
CHECK_RESULT $? 0 0 "安装 $test_package 失败"
fi
# 步骤5: 检查pmdalibvirt命令参数是否支持
LOG_INFO "步骤5: 检查pmdalibvirt命令参数是否支持"
check_param_support "pmdalibvirt" "-h"
CHECK_RESULT $? 0 0 "pmdalibvirt命令不支持-h参数"
# 步骤6: 测试查询特定指标
LOG_INFO "步骤6: 测试查询特定指标"
# 首先获取可用的指标列表
local metrics_output
metrics_output=$(pmdalibvirt -l 2>/dev/null)
CHECK_RESULT $? 0 0 "获取libvirt指标列表失败"
# 从指标列表中提取第一个指标进行测试
local first_metric
first_metric=$(echo "$metrics_output" | grep -E "^[a-zA-Z]" | head -1 | awk "{print $1}")
if [ -z "$first_metric" ]; then
LOG_ERROR "未找到可用的libvirt指标"
exit 1
fi
LOG_INFO "使用指标 $first_metric 进行测试"
# 步骤7: 执行查询命令
LOG_INFO "步骤7: 执行查询命令"
pmdalibvirt -q "$first_metric" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "查询指标 $first_metric 失败"
LOG_INFO "指标查询测试成功"
# 步骤8: 清理环境
LOG_INFO "步骤8: 清理环境"
# 如果之前libvirt服务未运行则停止它
if [ $libvirt_was_running -eq 0 ]; then
stop_libvirt_service
CHECK_RESULT $? 0 0 "停止libvirt服务失败"
fi
# 如果测试中安装了软件包,则卸载它
if [ $need_cleanup -eq 1 ]; then
uninstall_package "$test_package"
CHECK_RESULT $? 0 0 "卸载 $test_package 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
# 执行测试
test_query_specific_metric
}
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-03-21
# @License : Mulan PSL v2
# @Desc : Test PMDA service start
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试PMDA服务启动功能"
LOG_INFO "检查当前环境是否已安装pcp-pmda-libvirt软件包"
if dnf list installed | grep -q "pcp-pmda-libvirt"; then
LOG_INFO "环境已安装pcp-pmda-libvirt标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "环境未安装pcp-pmda-libvirt"
INSTALLED="false"
fi
LOG_INFO "检查yum源中是否有pcp-pmda-libvirt软件包"
if ! dnf list available | grep -q "pcp-pmda-libvirt"; then
LOG_ERROR "yum源中未找到pcp-pmda-libvirt软件包"
exit 255
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "开始安装pcp-pmda-libvirt软件包"
dnf install -y pcp-pmda-libvirt
CHECK_RESULT $? 0 0 "安装pcp-pmda-libvirt失败"
fi
LOG_INFO "检查pcp-pmda-libvirt服务是否支持start参数"
if ! pcp-pmda-libvirt --help 2>&1 | grep -q "start"; then
LOG_ERROR "pcp-pmda-libvirt不支持start参数"
exit 255
fi
LOG_INFO "启动pcp-pmda-libvirt服务"
pcp-pmda-libvirt start
CHECK_RESULT $? 0 0 "启动pcp-pmda-libvirt服务失败"
LOG_INFO "检查pcp-pmda-libvirt服务状态"
systemctl status pcp-pmda-libvirt
CHECK_RESULT $? 0 0 "pcp-pmda-libvirt服务未正常运行"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "测试完成清理安装的pcp-pmda-libvirt软件包"
dnf remove -y pcp-pmda-libvirt
CHECK_RESULT $? 0 0 "卸载pcp-pmda-libvirt失败"
else
LOG_INFO "测试完成,保持原安装状态"
fi
LOG_INFO "PMDA服务启动功能测试完成"
}
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-25
# @License : Mulan PSL v2
# @Desc : 测试pbmtpg命令的详细模式输出
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试pbmtpg命令的详细模式输出
# 定义软件包名称
PACKAGE_NAME="netpbm"
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到${PACKAGE_NAME}软件包"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查${PACKAGE_NAME}是否已安装"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
INSTALLED=$?
# 如果未安装,则安装软件包
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 检查pbmtpg命令是否存在
LOG_INFO "检查pbmtpg命令是否存在"
which pbmtpg > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "pbmtpg命令不存在"
# 如果是新安装的,需要卸载
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 检查pbmtpg命令是否支持-v参数
LOG_INFO "检查pbmtpg命令是否支持-v参数"
pbmtpg -v 2>&1 | grep -q "invalid option\|illegal option\|unrecognized option"
if [ $? -eq 0 ]; then
LOG_ERROR "pbmtpg命令不支持-v参数"
# 如果是新安装的,需要卸载
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 测试pbmtpg命令的详细模式输出
LOG_INFO "测试pbmtpg命令的详细模式输出"
pbmtpg -v 2>&1 | head -5
CHECK_RESULT $? 0 0 "pbmtpg -v命令执行失败"
# 清理环境
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
else
LOG_INFO "保持${PACKAGE_NAME}已安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

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 : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--des参数选择DES加密算法
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 test_proftpd-utils_ftpasswd_des 脚本"
# 检查是否已安装 proftpd-utils 包
LOG_INFO "检查 proftpd-utils 是否已安装"
if rpm -q proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 已安装,测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "proftpd-utils 未安装,将在测试完成后卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 proftpd-utils 包
LOG_INFO "检查 yum 源中是否有 proftpd-utils 包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils 包"
exit 255
fi
# 如果未安装,则安装 proftpd-utils 包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 测试 ftpasswd 命令是否支持 --des 参数
LOG_INFO "测试 ftpasswd 命令是否支持 --des 参数"
if ! ftpasswd --help | grep -q -- "--des"; then
LOG_ERROR "ftpasswd 命令不支持 --des 参数"
exit 255
fi
# 使用 --des 参数测试加密功能
LOG_INFO "使用 --des 参数测试加密功能"
TEST_PASSWORD="test123"
ENCRYPTED=$(ftpasswd --des --password "$TEST_PASSWORD" --stdout)
CHECK_RESULT $? 0 0 "使用 --des 参数加密失败"
# 验证加密结果是否符合预期
LOG_INFO "验证加密结果是否符合预期"
if [ -z "$ENCRYPTED" ]; then
LOG_ERROR "加密结果为空"
exit 1
else
LOG_INFO "加密成功,结果为: $ENCRYPTED"
fi
#清理环境,如果之前未安装则卸载 proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载 proftpd-utils "
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 “卸载 proftpds utils失败”
fi
LOG_INFO “测试完成”
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--file参数指定输出文件路径
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查proftpd-utils软件包是否已安装
LOG_INFO "检查proftpd-utils软件包是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装无需重复安装"
INSTALLED=0
fi
# 检查yum源中是否存在proftpd-utils软件包
LOG_INFO "检查yum源中是否存在proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中不存在proftpd-utils软件包"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "开始安装proftpd-utils"
dnf install -y proftpd-utils &>/dev/null
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试--file参数指定输出文件路径
LOG_INFO "测试--file参数指定输出文件路径"
TEMP_FILE="/tmp/test_ftpasswd_file_output"
# 执行ftpasswd命令并指定输出文件
LOG_INFO "执行ftpasswd --file $TEMP_FILE"
if ! ftpasswd --file "$TEMP_FILE" &>/dev/null; then
LOG_ERROR "--file参数不支持或执行失败"
# 如果是因为参数不支持则退出码为255否则按命令实际退出码退出
if [ $? -eq 255 ]; then
exit 255
else
exit $?
fi
fi
# 检查输出文件是否存在
LOG_INFO "检查输出文件$TEMP_FILE是否存在"
CHECK_RESULT $(test -f "$TEMP_FILE"; echo $?) 0 0 "输出文件未生成"
# 清理临时文件
LOG_INFO "清理临时文件$TEMP_FILE"
rm -f "$TEMP_FILE"
# 如果脚本开始时未安装proftpd-utils则卸载
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils &>/dev/null
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--gecos参数设置用户描述信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装将在测试结束后卸载"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils退出码255"
exit 255
fi
# 安装proftpd-utils如果未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试--gecos参数设置用户描述信息
LOG_INFO "测试--gecos参数设置用户描述信息"
USERNAME="testuser"
GECOS="Test User Description"
# 创建用户并设置描述信息
ftpasswd --passwd --name $USERNAME --uid 1001 --gid 1001 --home /tmp/$USERNAME --shell /bin/bash --gecos "$GECOS"
CHECK_RESULT $? 0 0 "使用--gecos参数设置用户描述信息失败"
# 验证描述信息是否设置成功
LOG_INFO "验证描述信息是否设置成功"
ACTUAL_GECOS=$(getent passwd $USERNAME | cut -d: -f5)
if [ "$ACTUAL_GECOS" != "$GECOS" ]; then
LOG_ERROR "--gecos参数设置的用户描述信息与实际不符退出码1"
exit 1
fi
CHECK_RESULT $? 0 0 "--gecos参数设置的用户描述信息验证失败"
# 清理测试用户
LOG_INFO "清理测试用户"
userdel -r $USERNAME > /dev/null 2>&1
# 卸载proftpd-utils如果脚本开始时未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
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-30
# @License : Mulan PSL v2
# @Desc : 测试使用--hash参数生成密码哈希
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查proftpd-utils是否已安装
LOG_INFO "检查proftpd-utils是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试--hash参数生成密码哈希
LOG_INFO "测试使用--hash参数生成密码哈希"
if ! ftpasswd --help | grep -q -- "--hash"; then
LOG_ERROR "ftpasswd命令不支持--hash参数"
exit 255
fi
HASH_OUTPUT=$(ftpasswd --hash testpassword 2>&1)
CHECK_RESULT $? 0 0 "生成密码哈希失败"
# 验证哈希输出格式
if [[ ! "$HASH_OUTPUT" =~ ^[0-9a-f]{32}$ ]]; then
LOG_ERROR "生成的密码哈希格式不正确"
exit 1
fi
LOG_INFO "生成的密码哈希: $HASH_OUTPUT"
# 清理环境
if [ "$INSTALLED" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
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 : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--home参数设置用户主目录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用--home参数设置用户主目录"
# 检查软件包是否已安装
LOG_INFO "检查proftpd-utils软件包是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装"
# 检查yum源中是否有该软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试--home参数设置用户主目录功能
LOG_INFO "测试--home参数设置用户主目录功能"
TEST_HOME="/tmp/test_home"
mkdir -p $TEST_HOME
CHECK_RESULT $? 0 0 "创建测试目录失败"
# 使用ftpasswd命令设置用户主目录
LOG_INFO "执行ftpasswd命令设置用户主目录"
ftpasswd --passwd --name testuser --home $TEST_HOME --uid 1000 --gid 1000 --shell /bin/bash
CHECK_RESULT $? 0 0 "执行ftpasswd命令失败"
# 验证用户主目录是否设置成功
LOG_INFO "验证用户主目录是否设置成功"
if [ -d "$TEST_HOME" ]; then
LOG_INFO "用户主目录设置成功: $TEST_HOME"
else
LOG_ERROR "用户主目录设置失败: $TEST_HOME"
exit 1
fi
# 清理测试环境
LOG_INFO "清理测试环境"
rm -rf $TEST_HOME
# 如果脚本开始时安装了软件包,则在结束时卸载
if [ "$INSTALLED" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--md5参数选择MD5加密算法
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 test_proftpd-utils_ftpasswd_md5 脚本"
# 检查软件包是否已安装
if rpm -q proftpd-utils > /dev/null; then
LOG_INFO "proftpd-utils 已安装,测试结束后保持安装状态"
installed=true
else
LOG_INFO "proftpd-utils 未安装,测试结束后将卸载"
installed=false
fi
# 检查 yum 源中是否有 proftpd-utils 软件包
LOG_INFO "检查 yum 源中是否有 proftpd-utils 软件包"
if ! dnf list available proftpd-utils > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 安装 proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "正在安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 测试 ftpasswd --md5 参数功能
LOG_INFO "测试 ftpasswd --md5 参数功能"
output=$(ftpasswd --md5 --passwd --name testuser --uid 1000 --home /home/testuser --shell /bin/bash 2>&1)
CHECK_RESULT $? 0 0 "执行 ftpasswd --md5 失败"
#验证输出是否包含 MD5 hash假设成功执行会生成类似内容
if [[ "$output" == *"MD5"* ]]; then
LOG_INFO "--md5参数功能测试通过"
else
LOG_ERROR "--md5参数功能测试失败输出未包含MD5信息"
CHECK_RESULT $? 1 0 "--md5参数功能异常"
fi
# 清理环境(如果最初未安装则卸载)
if [ "$installed" = false ]; then
LOG_INFO "正在卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 卸载proftpd-utils失败
fi
LOG_INFO "测试脚本 test_proftpd_util_ftpassword_md5 执行完成"
}
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-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--passwd参数创建passwd格式文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试使用--passwd参数创建passwd格式文件"
# 检查是否已安装proftpd-utils
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "环境未安装proftpd-utils将进行安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "环境已安装proftpd-utils"
INSTALLED=0
fi
# 测试--passwd参数
LOG_INFO "测试--passwd参数创建passwd格式文件"
ftpasswd --passwd --name=testuser --uid=1000 --gid=1000 --home=/home/testuser --shell=/bin/bash --file=/tmp/test_passwd
CHECK_RESULT $? 0 0 "使用--passwd参数创建passwd格式文件失败"
# 检查文件是否存在且内容正确
if [ -f "/tmp/test_passwd" ]; then
LOG_INFO "验证passwd文件内容"
grep -q "testuser:x:1000:1000::/home/testuser:/bin/bash" /tmp/test_passwd
CHECK_RESULT $? 0 0 "passwd文件内容不正确"
else
LOG_ERROR "未生成passwd文件"
exit 1
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/test_passwd
# 如果脚本开始时未安装proftpd-utils则卸载
if [ "$INSTALLED" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成:测试使用--passwd参数创建passwd格式文件"
}
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-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用-F参数强制覆盖现有文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试test_proftpd-utils_ftpasswd_upper_f"
# 检查软件包是否已安装
LOG_INFO "检查proftpd-utils是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装"
# 检查yum源中是否有该软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记需要卸载
UNINSTALL=1
else
LOG_INFO "proftpd-utils已安装无需重新安装"
fi
# 测试-F参数强制覆盖现有文件
LOG_INFO "测试使用-F参数强制覆盖现有文件"
# 创建测试文件
echo "test" > testfile.txt
# 第一次执行ftpasswd命令
LOG_INFO "第一次执行ftpasswd命令"
ftpasswd --passwd --file=testfile.txt --name=testuser --uid=1000 --home=/tmp --shell=/bin/false
CHECK_RESULT $? 0 0 "第一次执行ftpasswd命令失败"
# 第二次执行ftpasswd命令使用-F参数强制覆盖
LOG_INFO "第二次执行ftpasswd命令使用-F参数强制覆盖"
ftpasswd --passwd --file=testfile.txt --name=testuser --uid=1000 --home=/tmp --shell=/bin/false -F
CHECK_RESULT $? 0 0 "第二次执行ftpasswd命令带-F参数失败"
# 清理测试文件
rm -f testfile.txt
# 如果之前安装了软件包,则卸载
if [ "$UNINSTALL" == "1" ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --attach-file 参数,包含上传文件作为附件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装将在测试结束后卸载"
INSTALLED=0
fi
# 检查yum源中是否存在proftpd-utils软件包
LOG_INFO "检查yum源中是否存在proftpd-utils软件包"
dnf list available proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在proftpd-utils软件包"
# 安装proftpd-utils软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装proftpd-utils软件包"
dnf install -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 检查ftpmail命令是否支持--attach-file参数
LOG_INFO "检查ftpmail命令是否支持--attach-file参数"
ftpmail --help | grep -- "--attach-file" > /dev/null 2>&1
CHECK_RESULT $? 0 255 "ftpmail命令不支持--attach-file参数"
# 创建测试文件
LOG_INFO "创建测试文件test_file.txt"
echo "This is a test file for ftpmail --attach-file" > test_file.txt
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 测试ftpmail --attach-file参数
LOG_INFO "测试ftpmail --attach-file参数"
TEST_EMAIL="test@example.com"
ftpmail --attach-file test_file.txt "$TEST_EMAIL" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行ftpmail --attach-file失败"
#清理测试文件
LOG_INFO "清理测试文件test_file.txt"
rm -f test_file.txt
CHECK_RESULT $? 0 0 "清理测试文件失败"
#卸载proftpd-utils软件包如果脚本开始时未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO “卸载pro ftp d-u tils”
dnf remove - y pro ftp d-u tils > / dev / null 2 >&1
CHECK_RESULT $ ? 0 0 “卸载pro ftp d-u tils失败”
fi
}
main "$@"

View File

@@ -1,80 +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-13
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --fifo 参数
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
rpm -q proftpd-utils >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装脚本结束后将卸载"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
dnf list available proftpd-utils >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils软件包"
dnf install -y proftpd-utils >/dev/null 2>&1
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpmail命令的--fifo参数是否存在
LOG_INFO "测试ftpmail命令的--fifo参数是否存在"
ftpmail --help 2>&1 | grep -q -- "--fifo"
if [ $? -ne 0 ]; then
LOG_ERROR "ftpmail命令不支持--fifo参数"
exit 255
fi
# 测试使用--fifo参数执行命令
LOG_INFO "测试使用--fifo参数执行命令"
TMP_FIFO=$(mktemp -u)
mkfifo "$TMP_FIFO"
CHECK_RESULT $? 0 0 "创建FIFO文件失败"
(echo "Test message" > "$TMP_FIFO") &
LOG_INFO "执行ftpmail --fifo $TMP_FIFO"
ftpmail --fifo "$TMP_FIFO" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "执行ftpmail --fifo失败"
# 清理临时文件
rm -f "$TMP_FIFO"
CHECK_RESULT $? 0 0 "删除FIFO文件失败"
#卸载proftpd-utils软件包如果之前未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils >/dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
}
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 : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --fifo 参数,指定 FIFO 路径
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=true
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装proftpd-utils软件包"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpmail命令的--fifo参数
LOG_INFO "测试ftpmail命令的--fifo参数"
FIFO_PATH="/tmp/test_fifo"
mkfifo "$FIFO_PATH" || { LOG_ERROR "创建FIFO文件失败"; exit 1; }
LOG_INFO "执行ftpmail命令并指定FIFO路径"
if ! ftpmail --fifo "$FIFO_PATH" &>/dev/null; then
LOG_ERROR "ftpmail命令不支持--fifo参数或参数无效"
rm -f "$FIFO_PATH"
exit 255
fi
# 清理FIFO文件
rm -f "$FIFO_PATH"
# 如果脚本开始时未安装则卸载proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
exit 0
}
main "$@"

View File

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

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --from 参数,指定发件人地址
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftpmail 命令的 --from 参数,指定发件人地址"
# 检查软件包是否已安装
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "环境未安装 proftpd-utils将进行安装"
# 检查 yum 源中是否有该软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
# 标记需要卸载
UNINSTALL_NEEDED=1
else
LOG_INFO "环境已安装 proftpd-utils无需重复安装"
UNINSTALL_NEEDED=0
fi
# 检查 ftpmail 命令是否支持 --from 参数
if ! ftpmail --help | grep -q -- "--from"; then
LOG_ERROR "ftpmail 命令不支持 --from 参数"
exit 255
fi
# 测试 ftpmail --from 参数
LOG_INFO "测试 ftpmail --from 参数"
ftpmail --from test@example.com
CHECK_RESULT $? 0 0 "ftpmail --from 参数测试失败"
# 清理环境
if [ "$UNINSTALL_NEEDED" -eq 1 ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,80 +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-13
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --ignore-users 参数
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装将在测试结束后卸载"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils退出码255"
exit 255
fi
# 安装proftpd-utils如果未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "正在安装proftpd-utils"
dnf install -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 检查ftpmail命令是否存在
LOG_INFO "检查ftpmail命令是否存在"
which ftpmail > /dev/null 2>&1
CHECK_RESULT $? 0 0 "ftpmail命令不存在"
# 检查--ignore-users参数是否支持
LOG_INFO "检查--ignore-users参数是否支持"
ftpmail --help | grep -- "--ignore-users" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "--ignore-users参数不支持"
# 测试--ignore-users参数
LOG_INFO "测试--ignore-users参数"
echo "test@example.com" > test_users.txt
ftpmail --ignore-users test_users.txt test@example.com > /dev/null 2>&1
# 预期结果为忽略test@example.com返回成功退出码0
CHECK_RESULT $? 0 0 "--ignore-users参数测试失败"
# 清理临时文件
rm -f test_users.txt
# 卸载proftpd-utils如果脚本开始时未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "正在卸载proftpd-utils"
dnf remove -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --ignore-users 参数,指定忽略用户的正则表达式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包..."
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束后将保持安装状态。"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装脚本结束后将卸载。"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否存在proftpd-utils软件包..."
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils软件包退出码255。"
exit 255
fi
# 安装proftpd-utils软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "正在安装proftpd-utils软件包..."
dnf install -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpmail命令的--ignore-users参数是否支持
LOG_INFO "测试--ignore-users参数是否支持..."
ftpmail --help | grep -q -- "--ignore-users"
if [ $? -ne 0 ]; then
LOG_ERROR "--ignore-users参数不支持退出码255。"
if [ $INSTALLED -eq 0 ]; then
dnf remove -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
exit 255
fi
# 测试--ignore-users参数的正则表达式功能
LOG_INFO "测试--ignore-users参数的正则表达式功能..."
ftpmail --ignore-users "testuser" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "--ignore-users正则表达式功能测试失败"
#清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载proftpd-utils软件包..."
dnf remove -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 \"卸载pro ftp utils失败\"
fi
}
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-12-13
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --log 参数
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=0
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=1
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils软件包"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpmail命令的--log参数
LOG_INFO "测试ftpmail命令的--log参数"
if ! ftpmail --help | grep -q -- "--log"; then
LOG_ERROR "ftpmail命令不支持--log参数"
exit 255
fi
# 执行带--log参数的ftpmail命令
LOG_INFO "执行带--log参数的ftpmail命令"
ftpmail --log test.log
CHECK_RESULT $? 0 0 "执行带--log参数的ftpmail命令失败"
# 清理环境如果脚本开始时未安装则卸载proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
}
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 : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --log 参数,指定日志文件路径
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftpmail 命令的 --log 参数,指定日志文件路径"
# 检查是否已安装 proftpd-utils 软件包
LOG_INFO "检查 proftpd-utils 是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 未安装,准备安装"
# 检查 yum 源中是否有 proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 安装 proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
INSTALLED=true
else
LOG_INFO "proftpd-utils 已安装"
INSTALLED=false
fi
# 测试 ftpmail 命令的 --log 参数
LOG_INFO "测试 ftpmail 命令的 --log 参数"
LOG_FILE="/tmp/ftpmail_test.log"
ftpmail --log "$LOG_FILE" &>/dev/null
CHECK_RESULT $? 0 0 "ftpmail 命令执行失败"
# 检查日志文件是否生成
LOG_INFO "检查日志文件是否生成"
if [ -f "$LOG_FILE" ]; then
LOG_INFO "日志文件已生成: $LOG_FILE"
else
LOG_ERROR "日志文件未生成"
exit 1
fi
# 清理日志文件
LOG_INFO "清理日志文件"
rm -f "$LOG_FILE"
CHECK_RESULT $? 0 0 "清理日志文件失败"
# 恢复环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --recipient 参数,指定收件人地址
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftpmail 命令的 --recipient 参数,指定收件人地址"
# 检查软件包是否在yum源中
LOG_INFO "检查 proftpd-utils 软件包是否在yum源中"
dnf list available proftpd-utils &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "proftpd-utils 软件包不在yum源中"
exit 255
fi
# 检查环境是否已安装 proftpd-utils
LOG_INFO "检查环境是否已安装 proftpd-utils"
rpm -q proftpd-utils &>/dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "proftpd-utils 已安装"
else
installed=false
LOG_INFO "proftpd-utils 未安装,将进行安装"
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 测试 ftpmail --recipient 参数是否存在或支持
LOG_INFO "测试 ftpmail --recipient 参数是否存在或支持"
ftpmail --help | grep -- "--recipient" &>/dev/null
CHECK_RESULT $? 0 255 "ftpmail --recipient 参数不存在或不支持"
# 执行 ftpmail --recipient test@example.com
LOG_INFO "执行 ftpmail --recipient test@example.com"
ftpmail --recipient test@example.com
CHECK_RESULT $? 0 0 "执行 ftpmail --recipient test@example.com失败"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
}
main "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --smtp-server 参数
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=0
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=1
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils软件包"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpmail命令的--smtp-server参数
LOG_INFO "测试ftpmail命令的--smtp-server参数"
if ! ftpmail --help | grep -q -- "--smtp-server"; then
LOG_ERROR "ftpmail命令不支持--smtp-server参数"
exit 255
fi
# 模拟使用--smtp-server参数
LOG_INFO "执行ftpmail --smtp-server example.com"
ftpmail --smtp-server example.com &>/dev/null
CHECK_RESULT $? 0 0 "执行ftpmail --smtp-server失败"
# 清理环境如果脚本开始时未安装则卸载proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
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-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --smtp-server 参数,指定 SMTP 服务器地址
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=true
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpmail命令的--smtp-server参数
LOG_INFO "测试ftpmail命令的--smtp-server参数"
if ! ftpmail --help | grep -q -- "--smtp-server"; then
LOG_ERROR "ftpmail命令不支持--smtp-server参数"
exit 255
fi
# 执行测试命令假设SMTP服务器地址为example.com
LOG_INFO "执行测试命令指定SMTP服务器地址为example.com"
ftpmail --smtp-server example.com
CHECK_RESULT $? 0 0 "指定SMTP服务器地址失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
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-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --subject 参数,指定自定义邮件主题
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包..."
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装..."
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试ftpmail命令的--subject参数
LOG_INFO "测试ftpmail命令的--subject参数..."
# 检查--subject参数是否支持
if ! ftpmail --help | grep -q -- "--subject"; then
LOG_ERROR "ftpmail命令不支持--subject参数"
exit 255
fi
# 执行ftpmail命令并指定自定义邮件主题
TEST_SUBJECT="TestSubject"
LOG_INFO "执行命令ftpmail --subject \"$TEST_SUBJECT\""
ftpmail --subject "$TEST_SUBJECT" &>/dev/null
CHECK_RESULT $? 0 0 "执行ftpmail命令失败"
# 清理环境(如果脚本开始时安装了软件包)
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包..."
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftpmail 命令的 --watch-users 参数,指定监控用户的正则表达式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=true
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 若未安装则安装proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装proftpd-utils"
dnf install -y proftpd-utils &>/dev/null
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试--watch-users参数是否支持
LOG_INFO "测试--watch-users参数是否支持"
if ! ftpmail --help | grep -q -- "--watch-users"; then
LOG_ERROR "--watch-users参数不支持"
exit 255
fi
# 测试指定监控用户的正则表达式功能
LOG_INFO "测试指定监控用户的正则表达式功能"
TEST_USER="testuser"$(date +%s)
LOG_INFO "创建测试用户:$TEST_USER"
useradd $TEST_USER
CHECK_RESULT $? 0 0 "创建测试用户失败"
LOG_INFO "执行ftpmail --watch-users "^${TEST_USER}$"命令"
ftpmail --watch-users "^${TEST_USER}$" &>/dev/null &
PID=$!
sleep 2
CHECK_RESULT $? 0 0 "执行ftpmail --watch-users命令失败"
# 清理测试用户和进程
LOG_INFO "清理测试用户和进程"
kill -9 $PID &>/dev/null
userdel -r $TEST_USER &>/dev/null
CHECK_RESULT $? 0 0 "清理测试用户失败"
# 若脚本开始时未安装proftpd-utils则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载proftpd-utils以恢复环境"
dnf remove -y proftpd-utils &>/dev/null
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试指定下载字节数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试指定下载字节数限制功能"
# 检查是否已安装proftpd-utils软件包
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "环境未安装proftpd-utils将进行安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "环境已安装proftpd-utils"
INSTALLED=0
fi
# 测试ftpquota命令的-Bd参数是否存在
LOG_INFO "检查ftpquota命令的-Bd参数支持情况"
ftpquota --help | grep -q -- "-Bd"
CHECK_RESULT $? 0 0 "ftpquota命令不支持-Bd参数"
# 执行ftpquota命令测试下载字节数限制功能
LOG_INFO "执行ftpquota -Bd测试下载字节数限制"
ftpquota -Bd 1024
CHECK_RESULT $? 0 0 "ftpquota -Bd执行失败"
# 清理环境,如果脚本开始时未安装则卸载软件包
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试指定下载字节数限制功能完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试指定上传字节数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装将在测试步骤中安装"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils退出码255"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装proftpd-utils"
dnf install -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试指定上传字节数限制功能
LOG_INFO "测试指定上传字节数限制功能"
ftpquota --help | grep "upload-limit" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "ftpquota命令不支持upload-limit参数退出码255"
exit 255
fi
# 创建临时测试文件并设置上传限制为100KB
LOG_INFO "创建临时测试文件并设置上传限制为100KB"
echo "test data" > testfile.txt
ftpquota --upload-limit=100 testfile.txt
CHECK_RESULT $? 0 0 "设置上传限制失败"
# 清理临时文件和环境恢复
LOG_INFO "清理临时文件和环境恢复"
rm -f testfile.txt
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试指定传输字节数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
# 检查yum源中是否有proftpd-utils软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "proftpd-utils已安装无需重新安装"
fi
# 测试指定传输字节数限制功能
LOG_INFO "测试指定传输字节数限制功能"
# 检查ftpquota命令是否支持-B参数
if ! ftpquota --help | grep -q "\-B"; then
LOG_ERROR "ftpquota命令不支持-B参数"
exit 255
fi
# 执行ftpquota命令测试传输字节数限制
LOG_INFO "执行ftpquota -B 1000000测试传输字节数限制"
ftpquota -B 1000000
CHECK_RESULT $? 0 0 "设置传输字节数限制失败"
# 清理环境
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试指定下载文件数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试指定下载文件数限制功能"
# 检查软件包是否已安装
if ! rpm -q proftpd-utils >/dev/null 2>&1; then
LOG_INFO "环境未安装proftpd-utils准备安装"
# 检查yum源中是否有该软件包
if ! dnf list available proftpd-utils >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "环境已安装proftpd-utils"
INSTALLED=0
fi
# 测试ftpquota命令的参数支持情况
LOG_INFO "检查ftpquota命令是否支持-Fd参数"
ftpquota --help | grep -q -- "-Fd"
CHECK_RESULT $? 0 0 "ftpquota命令不支持-Fd参数"
# 测试指定下载文件数限制功能
LOG_INFO "测试指定下载文件数限制功能"
ftpquota -Fd /path/to/config >/dev/null 2>&1
CHECK_RESULT $? 0 0 "设置下载文件数限制失败"
# 清理环境,如果脚本开始时未安装则卸载软件包
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "清理环境卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试指定上传文件数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试指定上传文件数限制功能"
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查proftpd-utils是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 检查ftpquota命令是否存在
LOG_INFO "检查ftpquota命令是否存在"
if ! command -v ftpquota &>/dev/null; then
LOG_ERROR "ftpquota命令不存在或不支持"
exit 255
fi
# 测试指定上传文件数限制功能
LOG_INFO "测试指定上传文件数限制功能"
ftpquota --set-file-limit 10 /tmp/test_quota.txt &>/dev/null
CHECK_RESULT $? 0 0 "设置上传文件数限制失败"
# 验证设置是否生效
LOG_INFO "验证上传文件数限制是否生效"
ftpquota --get-file-limit /tmp/test_quota.txt | grep -q "10"
CHECK_RESULT $? 0 0 "上传文件数限制未生效"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f /tmp/test_quota.txt
# 如果脚本开始时未安装proftpd-utils则在结束时卸载
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试指定传输文件数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试指定传输文件数限制
LOG_INFO "开始测试:测试指定传输文件数限制"
# 检查软件包是否已安装
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "环境未安装proftpd-utils将进行安装"
# 检查yum源中是否有该软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "环境已安装proftpd-utils"
INSTALLED=0
fi
# 检查ftpquota命令是否支持-F参数
LOG_INFO "检查ftpquota命令是否支持-F参数"
ftpquota --help | grep -q -- "-F"
CHECK_RESULT $? 0 0 "ftpquota命令不支持-F参数"
# 测试指定传输文件数限制
LOG_INFO "测试指定传输文件数限制"
ftpquota -F 10
CHECK_RESULT $? 0 0 "设置传输文件数限制失败"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
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-30
# @License : Mulan PSL v2
# @Desc : 测试添加一个新的配额记录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:添加一个新的配额记录"
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查proftpd-utils是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "proftpd-utils已安装"
NEED_UNINSTALL=0
fi
# 测试添加配额记录
LOG_INFO "测试添加配额记录"
ftpquota --add-record --user testuser --limit 100M /mnt/ftp
CHECK_RESULT $? 0 0 "添加配额记录失败"
# 验证配额记录是否存在
LOG_INFO "验证配额记录是否存在"
ftpquota --list | grep -q "testuser.*100M.*/mnt/ftp"
CHECK_RESULT $? 0 0 "配额记录未正确添加"
# 清理环境:删除测试配额记录
LOG_INFO "清理测试配额记录"
ftpquota --delete-record --user testuser /mnt/ftp
CHECK_RESULT $? 0 0 "删除配额记录失败"
# 如果之前未安装则卸载proftpd-utils
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成:添加一个新的配额记录"
}
main "$@"

View File

@@ -1,58 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试设置下载字节数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试设置下载字节数限制"
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils退出测试"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装无需重新安装"
INSTALLED=0
fi
# 测试设置下载字节数限制
LOG_INFO "测试设置下载字节数限制"
ftpquota --bytes-download 1000 /tmp/test_quota.txt &>/dev/null
CHECK_RESULT $? 0 0 "设置下载字节数限制失败"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成:测试设置下载字节数限制"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试设置上传字节数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=0
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=1
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中没有proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils软件包"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试设置上传字节数限制
LOG_INFO "测试设置上传字节数限制"
ftpquota --bytes-upload 1024
CHECK_RESULT $? 0 0 "设置上传字节数限制失败"
# 清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试设置传输字节数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils"
exit 255
fi
# 安装proftpd-utils如果未安装
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "正在安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试设置传输字节数限制
LOG_INFO "测试设置传输字节数限制"
ftpquota --bytes-xfer 1000 /tmp/test_quota.txt &>/dev/null
CHECK_RESULT $? 0 0 "设置传输字节数限制失败"
# 清理环境(如果之前未安装)
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
}
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 : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试创建配额表
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试创建配额表功能"
# 检查软件包是否已安装
LOG_INFO "检查proftpd-utils软件包是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装开始安装"
if ! dnf list proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试创建配额表功能
LOG_INFO "测试创建配额表功能"
ftpquota --create-table /etc/proftpd/quota.table
CHECK_RESULT $? 0 0 "创建配额表失败"
# 检查配额表文件是否存在
LOG_INFO "检查配额表文件是否存在"
if [ -f /etc/proftpd/quota.table ]; then
LOG_INFO "配额表文件创建成功"
else
LOG_ERROR "配额表文件未创建"
exit 1
fi
# 清理环境
if [ "$INSTALLED" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
# 清理创建的配额表文件
if [ -f /etc/proftpd/quota.table ]; then
rm -f /etc/proftpd/quota.table
CHECK_RESULT $? 0 0 "删除配额表文件失败"
fi
else
LOG_INFO "保持proftpd-utils软件包安装状态"
fi
LOG_INFO "测试创建配额表功能完成"
}
main "$@"

View File

@@ -1,52 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试删除配额记录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装开始安装"
if ! dnf list proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
dnf install -y proftpd-utils || { LOG_ERROR "安装proftpd-utils失败"; exit 1; }
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试删除配额记录功能
LOG_INFO "测试删除配额记录功能"
ftpquota --delete-record testuser || { LOG_ERROR "删除配额记录失败"; exit 1; }
CHECK_RESULT $? 0 0 "删除配额记录失败"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils || { LOG_ERROR "卸载proftpd-utils失败"; exit 1; }
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试设置下载文件数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在proftpd-utils软件包
LOG_INFO "检查yum源中是否存在proftpd-utils软件包"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在proftpd-utils软件包"
exit 255
fi
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装将在测试步骤中安装"
INSTALLED=0
fi
# 若未安装则安装proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试设置下载文件数限制功能
LOG_INFO "测试设置下载文件数限制功能"
ftpquota --files-download=100 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "设置下载文件数限制失败"
# 清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试设置上传文件数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
dnf list available proftpd-utils
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils"
exit 255
fi
# 若未安装则安装proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试设置上传文件数限制
LOG_INFO "测试设置上传文件数限制"
ftpquota --files-upload 100
CHECK_RESULT $? 0 0 "设置上传文件数限制失败"
# 恢复环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,61 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试设置传输文件数限制
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查proftpd-utils是否已安装
LOG_INFO "检查proftpd-utils是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装开始安装"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试设置传输文件数限制功能
LOG_INFO "测试设置传输文件数限制功能"
ftpquota --files-xfer 100 /mnt/ftp
CHECK_RESULT $? 0 0 "设置传输文件数限制失败"
# 验证设置是否生效
LOG_INFO "验证传输文件数限制是否生效"
ftpquota --show /mnt/ftp | grep -q "files-xfer:100"
CHECK_RESULT $? 0 0 "传输文件数限制未生效"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
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 : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试设置字节限制类型为hard模式超出自动删除
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试设置字节限制类型为hard模式超出自动删除"
# 检查软件包是否已安装
LOG_INFO "检查proftpd-utils软件包是否已安装"
if rpm -q proftpd-utils >/dev/null 2>&1; then
LOG_INFO "proftpd-utils软件包已安装"
INSTALLED=true
else
LOG_INFO "proftpd-utils软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
if ! dnf list available proftpd-utils >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装proftpd-utils软件包"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils软件包失败"
fi
# 检查ftpquota命令是否支持--limit-type参数
LOG_INFO "检查ftpquota命令是否支持--limit-type参数"
if ! ftpquota --help | grep -q -- "--limit-type"; then
LOG_ERROR "ftpquota命令不支持--limit-type参数"
exit 255
fi
# 创建测试目录和文件
LOG_INFO "创建测试目录和文件"
TEST_DIR="/tmp/ftpquota_test"
mkdir -p "$TEST_DIR"
echo "test content" > "$TEST_DIR/testfile"
# 设置字节限制类型为hard模式
LOG_INFO "设置字节限制类型为hard模式超出自动删除"
ftpquota --path "$TEST_DIR" --limit-type hard --bytes-limit 10
CHECK_RESULT $? 0 0 "设置字节限制类型为hard模式失败"
# 测试超出限制是否自动删除
LOG_INFO "测试超出限制是否自动删除"
echo "additional content" >> "$TEST_DIR/testfile"
CHECK_RESULT $? 0 0 "超出限制未自动删除"
# 清理测试目录和文件
LOG_INFO "清理测试目录和文件"
rm -rf "$TEST_DIR"
# 如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils软件包失败"
fi
LOG_INFO "测试设置字节限制类型为hard模式超出自动删除完成"
}
main "$@"

View File

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

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试指定表类型为limit
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装"
# 检查yum源中是否有proftpd-utils软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "proftpd-utils已安装无需重复安装"
fi
# 测试指定表类型为limit的功能
LOG_INFO "测试指定表类型为limit的功能"
ftpquota --type limit --help &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "ftpquota命令不支持--type limit参数"
exit 255
fi
# 执行ftpquota命令测试limit类型功能
LOG_INFO "执行ftpquota命令测试limit类型功能"
ftpquota --type limit --show
CHECK_RESULT $? 0 0 "ftpquota --type limit执行失败"
# 清理环境如果之前未安装proftpd-utils则卸载
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
else
LOG_INFO "保持proftpd-utils的安装状态"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,59 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试更新配额记录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试更新配额记录功能"
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查proftpd-utils是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
# 检查yum源中是否有该软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "proftpd-utils已安装无需重复安装"
NEED_UNINSTALL=0
fi
# 测试更新配额记录功能
LOG_INFO "测试更新配额记录功能"
ftpquota --update-record /path/to/quota.conf testuser 1000 2000 3000 4000
CHECK_RESULT $? 0 0 "更新配额记录失败"
# 清理环境
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试更新配额记录功能完成"
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -A 参数,仅显示认证会话
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=true
fi
# 检查yum源中是否存在proftpd-utils软件包
LOG_INFO "检查yum源中是否存在proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftptop命令的-A参数
LOG_INFO "测试ftptop命令的-A参数仅显示认证会话"
ftptop -A &>/dev/null
CHECK_RESULT $? 0 0 "ftptop命令的-A参数不支持或执行失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -D 参数,仅显示下载会话
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包..."
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装开始安装..."
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包退出..."
exit 255
fi
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装跳过安装步骤..."
INSTALLED=0
fi
# 检查ftptop命令是否支持-D参数
LOG_INFO "检查ftptop命令是否支持-D参数..."
if ! ftptop --help | grep -q "\-D"; then
LOG_ERROR "ftptop命令不支持-D参数退出..."
if [ $INSTALLED -eq 1 ]; then
dnf remove -y proftpd-utils
fi
exit 255
fi
# 执行ftptop -D命令并检查结果
LOG_INFO "执行ftptop -D命令仅显示下载会话..."
ftptop -D &>/dev/null
CHECK_RESULT $? 0 0 "执行ftptop -D命令失败"
# 清理环境:如果脚本安装了软件包则卸载
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包..."
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复..."
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -I 参数,仅显示空闲连接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查proftpd-utils是否已安装
LOG_INFO "检查proftpd-utils是否已安装"
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束时将保持安装状态"
installed=true
else
LOG_INFO "proftpd-utils未安装将在测试结束后卸载"
installed=false
fi
# 检查yum源中是否存在proftpd-utils包
LOG_INFO "检查yum源中是否存在proftpd-utils包"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils包"
exit 255
fi
# 若未安装则安装proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftptop命令的-I参数
LOG_INFO "测试ftptop命令的-I参数仅显示空闲连接"
ftptop -I > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "ftptop命令不支持-I参数"
# 恢复环境
if [ "$installed" = false ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
exit 255
fi
# 模拟空闲连接并验证输出(此处仅为示例,实际测试可能需要真实环境)
LOG_INFO "模拟空闲连接并验证ftptop -I输出"
timeout 5 ftptop -I | grep -q "IDLE"
CHECK_RESULT $? 0 0 "ftptop -I未正确显示空闲连接"
# 恢复环境(若脚本开始时未安装则卸载)
if [ "$installed" = false ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -a 参数,忽略认证连接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束后保持安装状态"
installed=true
else
LOG_INFO "proftpd-utils未安装将在脚本结束后卸载"
installed=false
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils退出"
exit 255
fi
# 安装proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 检查ftptop命令是否支持-a参数
LOG_INFO "检查ftptop命令是否支持-a参数"
ftptop --help | grep -q "\-a"
if [ $? -ne 0 ]; then
LOG_ERROR "ftptop命令不支持-a参数退出"
exit 255
fi
# 执行ftptop -a命令
LOG_INFO "执行ftptop -a命令忽略认证连接"
ftptop -a > /dev/null 2>&1
CHECK_RESULT $? 0 0 "ftptop -a命令执行失败"
# 清理环境如果脚本开始时未安装proftpd-utils则卸载
if [ "$installed" = false ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -b 参数,批处理模式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftptop 命令的 -b 参数,批处理模式"
# 检查是否已安装 proftpd-utils 包
LOG_INFO "检查 proftpd-utils 是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 未安装,将进行安装"
# 检查 yum 源中是否有该软件包
LOG_INFO "检查 yum 源中是否存在 proftpd-utils"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils退出测试"
exit 255
fi
# 安装 proftpd-utils
LOG_INFO "安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
else
LOG_INFO "proftpd-utils 已安装,无需重复安装"
fi
# 测试 ftptop -b 参数
LOG_INFO "测试 ftptop -b 参数"
if ! ftptop -b &>/dev/null; then
LOG_ERROR "ftptop -b 参数不支持或执行失败"
exit 255
fi
# 清理环境(如果测试前未安装 proftpd-utils
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "清理环境,卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
else
LOG_INFO "保持环境状态,不卸载 proftpd-utils"
fi
LOG_INFO "测试 ftptop -b 参数完成"
}
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-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -d 5 参数设置刷新延迟为5秒
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装开始安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记为测试安装,需要在脚本结束时卸载
TEST_INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
TEST_INSTALLED=0
fi
# 检查ftptop命令是否支持-d参数
LOG_INFO "检查ftptop命令是否支持-d参数"
if ! ftptop --help | grep -q "\-d"; then
LOG_ERROR "ftptop命令不支持-d参数"
exit 255
fi
# 测试ftptop -d 5命令
LOG_INFO "测试ftptop -d 5命令设置刷新延迟为5秒"
timeout 10 ftptop -d 5
CHECK_RESULT $? 0 0 "执行ftptop -d 5失败"
# 清理环境
if [ $TEST_INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -f 参数配置使用的ScoreboardFile
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试ftptop命令的-f参数
LOG_INFO "测试ftptop命令的-f参数"
# 创建临时ScoreboardFile
SCOREBOARD_FILE=$(mktemp)
LOG_INFO "创建临时ScoreboardFile: $SCOREBOARD_FILE"
# 执行ftptop -f命令并检查结果
ftptop -f "$SCOREBOARD_FILE" &>/dev/null
CHECK_RESULT $? 0 0 "执行ftptop -f命令失败"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f "$SCOREBOARD_FILE"
# 如果脚本开始时未安装proftpd-utils则在结束时卸载
if [ "$INSTALLED" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -i 参数,忽略空闲连接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
installed=false
else
LOG_INFO "proftpd-utils已安装"
installed=true
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中无proftpd-utils软件包"
exit 255
fi
# 若未安装则安装proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftptop命令的-i参数
LOG_INFO "测试ftptop命令的-i参数忽略空闲连接"
if ! ftptop -i &>/dev/null; then
LOG_ERROR "ftptop命令不支持-i参数"
# 若未安装则卸载proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
exit 255
fi
CHECK_RESULT $? 0 0 "ftptop -i命令执行失败"
# 若未安装则卸载proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
exit 0
}
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-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -n 10 参数设置迭代次数为10次
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftptop 命令的 -n 10 参数设置迭代次数为10次"
# 检查软件包是否已安装
LOG_INFO "检查 proftpd-utils 是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 未安装,将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils 已安装"
INSTALLED=true
fi
# 检查 yum 源中是否有 proftpd-utils
LOG_INFO "检查 yum 源中是否有 proftpd-utils"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 检查 ftptop 命令是否支持 -n 参数
LOG_INFO "检查 ftptop 命令是否支持 -n 参数"
if ! ftptop --help | grep -q -- "-n"; then
LOG_ERROR "ftptop 命令不支持 -n 参数"
exit 255
fi
# 执行 ftptop -n 10 命令
LOG_INFO "执行 ftptop -n 10 命令"
ftptop -n 10
CHECK_RESULT $? 0 0 "执行 ftptop -n 10 失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils失败"
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 : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -A 参数,仅显示认证会话
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装准备安装"
# 检查yum源中是否有proftpd-utils软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记需要卸载
UNINSTALL=true
else
LOG_INFO "proftpd-utils已安装无需重复安装"
UNINSTALL=false
fi
# 测试ftptop命令的-A参数功能
LOG_INFO "测试ftptop命令的-A参数功能"
# 检查ftptop命令是否存在
if ! command -v ftptop &>/dev/null; then
LOG_ERROR "未找到ftptop命令"
exit 255
fi
# 执行带-A参数的ftptop命令并捕获输出模拟会话
LOG_INFO "执行ftptop -A命令"
output=$(ftptop -A 2>&1)
ret=$?
# 检查命令是否支持-A参数通过返回值和输出判断
if [ $ret -ne 0 ]; then
if [[ "$output" == *"invalid option"* ]] || [[ "$output" == *"unrecognized option"* ]]; then
LOG_ERROR "ftptop命令不支持-A参数"
exit 255
else
LOG_ERROR "执行ftptop -A命令失败"
exit $ret
fi
fi
# 验证输出是否符合预期(示例:检查输出是否包含认证会话相关字段)
LOG_INFO "验证输出内容是否符合预期(仅显示认证会话)"
if [[ "$output" == *"authenticated sessions"* ]]; then
LOG_INFO "测试通过:输出包含认证会话信息"
else
LOG_ERROR "测试失败:输出未包含预期的认证会话信息"
exit 1
fi
# 环境清理
if [ "$UNINSTALL" = true ]; then
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -D 参数,仅显示下载会话
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 proftpd-utils 软件包
LOG_INFO "检查是否已安装 proftpd-utils 软件包"
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils 已安装,脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils 未安装,脚本结束后将卸载"
INSTALLED=0
fi
# 检查 yum 源中是否存在 proftpd-utils 软件包
LOG_INFO "检查 yum 源中是否存在 proftpd-utils 软件包"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 安装 proftpd-utils 软件包(如果未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "正在安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 测试 ftptop 命令的 -D 参数功能
LOG_INFO "测试 ftptop 命令的 -D 参数功能"
ftptop -D > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "不支持 ftptop 命令的 -D 参数"
exit 255
fi
# 验证 ftptop -D 仅显示下载会话(模拟测试)
LOG_INFO "验证 ftptop -D 仅显示下载会话"
CHECK_RESULT $? 0 0 "验证失败"
# 清理环境(如果最初未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -I 参数,仅显示空闲连接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftptop 命令的 -I 参数,仅显示空闲连接"
# 检查是否已安装 proftpd-utils 软件包
LOG_INFO "检查 proftpd-utils 是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 未安装,准备安装"
# 检查 yum 源中是否有 proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 安装 proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils 已安装"
INSTALLED=0
fi
# 检查 ftptop -I 参数是否存在
LOG_INFO "检查 ftptop -I 参数是否支持"
if ! ftptop --help | grep -q "\-I"; then
LOG_ERROR "ftptop -I 参数不支持"
exit 255
fi
# 执行 ftptop -I仅显示空闲连接
LOG_INFO "执行 ftptop -I仅显示空闲连接"
ftptop -I > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行 ftptop -I 失败"
# 清理环境,如果脚本开始时安装了软件包则卸载
if [ "$INSTALLED" -eq 1 ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -S 参数仅显示指定ServerName的会话
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftptop 命令的 -S 参数仅显示指定ServerName的会话"
# 检查软件包是否已安装
if ! rpm -q proftpd-utils &>/dev/null; then
LOG_INFO "环境未安装 proftpd-utils将进行安装"
# 检查yum源中是否有该软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到 proftpd-utils 软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
# 标记需要卸载
UNINSTALL_NEEDED=1
else
LOG_INFO "环境已安装 proftpd-utils无需重复安装"
UNINSTALL_NEEDED=0
fi
# 检查 ftptop 命令是否存在
if ! command -v ftptop &>/dev/null; then
LOG_ERROR "ftptop 命令不存在"
exit 255
fi
# 测试 ftptop -S 参数
LOG_INFO "测试 ftptop -S 参数"
SERVER_NAME="test_server"
# 模拟一个会话需确保proftpd服务运行并有会话
LOG_INFO "模拟一个会话到 $SERVER_NAME"
# SSH到第二个节点执行命令假设需要
# SSH_CMD "command_to_simulate_session" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
# 执行 ftptop -S $SERVER_NAME检查是否仅显示指定ServerName的会话
ftptop -S "$SERVER_NAME" > /tmp/ftptop_output.txt
CHECK_RESULT $? 0 0 "执行 ftptop -S 失败"
# 检查输出是否符合预期
if grep -q "$SERVER_NAME" /tmp/ftptop_output.txt; then
LOG_INFO "ftptop -S $SERVER_NAME成功显示指定ServerName的会话"
else
LOG_ERROR "ftptop -S $SERVER_NAME未能显示指定ServerName的会话"
exit 1
fi
# 清理临时文件
rm -f /tmp/ftptop_output.txt
#恢复环境
if [ "$UNINSTALL_NEEDED" -eq 1 ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -U 参数,仅显示上传会话
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装脚本结束时将卸载"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils
LOG_INFO "检查yum源中是否有proftpd-utils"
dnf list available proftpd-utils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到proftpd-utils退出码255"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 检查ftptop命令是否支持-U参数
LOG_INFO "检查ftptop命令是否支持-U参数"
man ftptop | grep -q "\-U" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "ftptop命令不支持-U参数退出码255"
if [ $INSTALLED -eq 0 ]; then
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
exit 255
fi
# 测试ftptop命令的-U参数
LOG_INFO "测试ftptop命令的-U参数仅显示上传会话"
timeout 5 ftptop -U > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行ftptop -U失败"
# 恢复环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 00"卸载pro ft pd utils失败"
fi
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的 -V 参数,显示版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ftptop 命令的 -V 参数,显示版本信息"
# 检查软件包是否已安装
LOG_INFO "检查 proftpd-utils 软件包是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 未安装,将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils 已安装"
INSTALLED=true
fi
# 检查 yum 源中是否有 proftpd-utils
LOG_INFO "检查 yum 源中是否有 proftpd-utils"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 测试 ftptop -V 参数
LOG_INFO "测试 ftptop -V 参数,显示版本信息"
ftptop -V
CHECK_RESULT $? 0 0 "执行 ftptop -V 失败"
# 恢复环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "恢复环境:卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试使用 -c 参数指定 proftpd 配置文件路径
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 proftpd-utils 的 ftpwho -c 参数功能"
# 检查软件包是否在yum源中
LOG_INFO "检查 yum 源中是否存在 proftpd-utils 软件包"
dnf list available proftpd-utils &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 检查是否已安装 proftpd-utils
LOG_INFO "检查系统中是否已安装 proftpd-utils"
rpm -q proftpd-utils &>/dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "proftpd-utils 已安装"
else
installed=false
LOG_INFO "proftpd-utils 未安装,将进行安装"
fi
# 若未安装则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 测试 ftpwho -c 参数功能
LOG_INFO "测试 ftpwho -c /etc/proftpd.conf"
ftpwho -c /etc/proftpd.conf &>/dev/null
CHECK_RESULT $? 0 0 "ftpwho -c 参数测试失败"
# 清理环境:若之前未安装则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试使用 -f 参数指定 scoreboard 文件路径
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记需要卸载
UNINSTALL=1
else
LOG_INFO "proftpd-utils已安装无需重复安装"
UNINSTALL=0
fi
# 测试使用 -f 参数指定 scoreboard 文件路径
LOG_INFO "测试使用 -f 参数指定 scoreboard 文件路径"
# 创建临时scoreboard文件
TMP_SCOREBOARD=$(mktemp)
LOG_INFO "创建临时scoreboard文件: $TMP_SCOREBOARD"
# 测试ftpwho命令的-f参数支持情况
if ! ftpwho --help | grep -q -- "-f"; then
LOG_ERROR "ftpwho命令不支持-f参数"
rm -f "$TMP_SCOREBOARD"
[ "$UNINSTALL" -eq 1 ] && dnf remove -y proftpd-utils
exit 255
fi
# 执行ftpwho命令并检查结果
LOG_INFO "执行ftpwho -f $TMP_SCOREBOARD"
ftpwho -f "$TMP_SCOREBOARD" &>/dev/null
CHECK_RESULT $? 0 0 "ftpwho命令执行失败"
# 清理临时文件和环境恢复
LOG_INFO "清理临时文件和环境恢复"
rm -f "$TMP_SCOREBOARD"
if [ "$UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试使用 -h 参数显示 ftpwho 帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在proftpd-utils软件包
LOG_INFO "检查yum源中是否存在proftpd-utils软件包"
dnf list available proftpd-utils &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在proftpd-utils软件包"
exit 255
fi
# 检查是否已安装proftpd-utils
LOG_INFO "检查是否已安装proftpd-utils"
rpm -q proftpd-utils &>/dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "proftpd-utils已安装"
else
installed=false
LOG_INFO "proftpd-utils未安装将进行安装"
fi
# 如果未安装则安装proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "正在安装proftpd-utils"
dnf install -y proftpd-utils &>/dev/null
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpwho命令的-h参数是否可用
LOG_INFO "测试ftpwho命令的-h参数是否可用"
ftpwho -h &>/dev/null
CHECK_RESULT $? 0 0 "ftpwho命令不支持-h参数"
# 根据初始状态决定是否卸载proftpd-utils
if [ "$installed" = false ]; then
LOG_INFO "正在卸载proftpd-utils"
dnf remove -y proftpd-utils &>/dev/null
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
else
LOG_INFO "保持proftpd-utils的安装状态不变"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试使用 -o 参数指定输出格式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 test_proftpd-utils_ftpwho__o 脚本"
# 检查是否已安装 proftpd-utils 软件包
LOG_INFO "检查 proftpd-utils 是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 未安装,将进行安装"
# 检查 yum 源中是否有该软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils 软件包"
exit 255
fi
# 安装软件包
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
# 标记为需要卸载
UNINSTALL=1
else
LOG_INFO "proftpd-utils 已安装,无需重新安装"
UNINSTALL=0
fi
# 测试 ftpwho -o 参数
LOG_INFO "测试 ftpwho -o 参数"
ftpwho -o &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "ftpwho -o 参数不支持或不存在"
exit 255
fi
CHECK_RESULT $? 0 0 "ftpwho -o 执行失败"
# 清理环境:如果脚本开始时未安装 proftpd-utils则卸载
if [ $UNINSTALL -eq 1 ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? ————————————————————————————————————————————————————————————————
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试使用 -S 参数显示指定 ServerName 的用户
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 test_proftpd-utils_ftpwho__upper_s"
# 检查软件包是否已安装
LOG_INFO "检查 proftpd-utils 是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils 未安装,将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils 已安装"
INSTALLED=true
fi
# 检查 yum 源中是否有 proftpd-utils
LOG_INFO "检查 yum 源中是否有 proftpd-utils"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum 源中未找到 proftpd-utils"
exit 255
fi
# 如果未安装,则安装 proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 proftpd-utils"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装 proftpd-utils 失败"
fi
# 测试 ftpwho -S 参数
LOG_INFO "测试 ftpwho -S 参数"
ftpwho -S &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "ftpwho 不支持 -S 参数"
exit 255
fi
# 执行 ftpwho -S 命令并检查结果
LOG_INFO "执行 ftpwho -S 命令"
ftpwho -S
CHECK_RESULT $? 0 0 "ftpwho -S 命令执行失败"
# 恢复环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载 proftpd-utils 失败"
fi
LOG_INFO "测试 test_proftpd-utils_ftpwho__upper_s 完成"
}
main "$@"

View File

@@ -1,57 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试使用 -v 参数显示每个连接的额外信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试proftpd-utils软件包的ftpwho命令-v参数功能"
# 检查proftpd-utils是否已安装
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
# 标记需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "proftpd-utils已安装无需重复安装"
fi
# 测试ftpwho -v命令
LOG_INFO "测试ftpwho -v命令"
ftpwho -v &>/dev/null
CHECK_RESULT $? 0 0 "ftpwho -v命令执行失败"
# 清理环境
if [ "$NEED_UNINSTALL" == "1" ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 ftptop 命令的-S参数,仅显示指定ServerName的连接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查proftpd-utils是否已安装
LOG_INFO "检查proftpd-utils是否已安装"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装开始安装"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试ftptop命令的-S参数功能
LOG_INFO "测试ftptop命令的-S参数功能"
# 模拟一个ServerName为test_server的连接假设已存在
LOG_INFO "模拟ServerName为test_server的连接"
# 使用-S参数仅显示指定ServerName的连接
LOG_INFO "执行ftptop -S test_server"
ftptop -S test_server &>/dev/null
CHECK_RESULT $? 0 0 "ftptop -S参数不支持或执行失败"
# 清理环境如果脚本开始时未安装proftpd-utils则卸载
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试配置文件解析功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "proftpd-utils未安装将进行安装"
INSTALLED=false
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=true
fi
# 检查yum源中是否存在proftpd-utils软件包
LOG_INFO "检查yum源中是否存在proftpd-utils软件包"
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中不存在proftpd-utils软件包"
exit 255
fi
# 如果未安装则安装proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装proftpd-utils软件包"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试配置文件解析功能
LOG_INFO "测试配置文件解析功能"
ftpwho -h &>/dev/null
CHECK_RESULT $? 0 0 "ftpwho命令不支持-h参数"
# 清理环境如果脚本开始时未安装则卸载proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--shell参数设置用户默认shell
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用--shell参数设置用户默认shell"
# 检查是否已安装proftpd-utils软件包
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "环境未安装proftpd-utils将进行安装"
# 检查yum源中是否有proftpd-utils软件包
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
else
LOG_INFO "环境已安装proftpd-utils"
fi
# 测试ftpasswd命令的--shell参数
LOG_INFO "测试使用--shell参数设置用户默认shell"
user="testuser"
shell="/bin/bash"
output=$(ftpasswd --passwd --name "$user" --shell "$shell" --uid 1000 --gid 1000 --home /home/"$user" --file /etc/proftpd/ftpd.passwd)
CHECK_RESULT $? 0 0 "设置用户默认shell失败"
# 验证设置的默认shell是否正确
LOG_INFO "验证设置的默认shell是否正确"
grep_output=$(grep "^$user:" /etc/proftpd/ftpd.passwd | cut -d: -f7)
CHECK_RESULT "$grep_output" "$shell" 0 "设置的默认shell与预期不符"
# 清理测试用户
LOG_INFO "清理测试用户"
sed -i "/^$user:/d" /etc/proftpd/ftpd.passwd
CHECK_RESULT $? 0 0 "清理测试用户失败"
# 如果脚本开始时安装了软件包,则在结束时卸载
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "脚本开始时未安装proftpd-utils无需卸载"
else
LOG_INFO "脚本开始时安装了proftpd-utils将进行卸载"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd utils失败"
}
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-11-30
# @License : Mulan PSL v2
# @Desc : 测试使用--uid参数设置用户ID
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils软件包
LOG_INFO "检查是否已安装proftpd-utils软件包"
rpm -q proftpd-utils >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "proftpd-utils已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "proftpd-utils未安装脚本结束后将卸载"
INSTALLED=0
fi
# 检查yum源中是否有proftpd-utils软件包
LOG_INFO "检查yum源中是否有proftpd-utils软件包"
dnf list available proftpd-utils >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有proftpd-utils软件包退出"
exit 255
fi
# 安装proftpd-utils软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装proftpd-utils软件包"
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试--uid参数设置用户ID
LOG_INFO "测试--uid参数设置用户ID"
ftpasswd --passwd --name testuser --uid 1001 --home /home/testuser --shell /bin/bash --file /etc/proftpd/ftpd.passwd
CHECK_RESULT $? 0 0 "使用--uid参数设置用户ID失败"
# 验证用户ID是否设置成功
LOG_INFO "验证用户ID是否设置成功"
grep "testuser" /etc/proftpd/ftpd.passwd | grep -q "1001"
CHECK_RESULT $? 0 0 "用户ID未正确设置"
# 清理测试数据
LOG_INFO "清理测试数据"
rm -f /etc/proftpd/ftpd.passwd
# 如果脚本开始时未安装proftpd-utils则卸载
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载proftpd-utils软件包"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
}
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-30
# @License : Mulan PSL v2
# @Desc : 测试ftpmail命令的--verbose参数启用详细输出
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试ftpmail命令的--verbose参数启用详细输出"
# 检查proftpd-utils软件包是否已安装
LOG_INFO "检查proftpd-utils软件包是否已安装"
if ! rpm -q proftpd-utils >/dev/null 2>&1; then
LOG_INFO "proftpd-utils未安装开始安装"
# 检查yum源中是否有proftpd-utils软件包
if ! dnf list available proftpd-utils >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
INSTALLED=1
else
LOG_INFO "proftpd-utils已安装"
INSTALLED=0
fi
# 测试ftpmail命令的--verbose参数
LOG_INFO "测试ftpmail命令的--verbose参数"
if ! ftpmail --help | grep -q -- "--verbose"; then
LOG_ERROR "ftpmail命令不支持--verbose参数"
if [ $INSTALLED -eq 1 ]; then
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
exit 255
fi
ftpmail --verbose >/dev/null 2>&1
CHECK_RESULT $? 0 0 "执行ftpmail --verbose失败"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "清理环境卸载proftpd-utils"
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试指定表类型为all
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装proftpd-utils
if ! dnf list installed proftpd-utils &>/dev/null; then
LOG_INFO "环境未安装proftpd-utils将进行安装并测试后卸载"
INSTALLED=false
else
LOG_INFO "环境已安装proftpd-utils测试后将保持安装状态"
INSTALLED=true
fi
# 检查yum源中是否有proftpd-utils
if ! dnf list available proftpd-utils &>/dev/null; then
LOG_ERROR "yum源中未找到proftpd-utils软件包"
exit 255
fi
# 安装proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装proftpd-utils..."
dnf install -y proftpd-utils
CHECK_RESULT $? 0 0 "安装proftpd-utils失败"
fi
# 测试ftpquota命令的type参数为all
LOG_INFO "测试ftpquota命令的type参数为all..."
ftpquota --type all &>/dev/null
CHECK_RESULT $? 0 0 "ftpquota命令不支持type参数为all"
# 清理环境如果测试前未安装则卸载proftpd-utils
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载proftpd-utils..."
dnf remove -y proftpd-utils
CHECK_RESULT $? 0 0 "卸载proftpd-utils失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

Some files were not shown because too many files have changed in this diff Show More