Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -10,50 +10,6 @@
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_cflags",
|
||||
"desc": "测试 nss-softokn-config 的 --cflags 参数"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_prefix",
|
||||
"desc": "测试nss-softokn-config命令的--prefix选项"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_exec_prefix",
|
||||
"desc": "测试nss-softokn-config命令的--exec-prefix选项"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_includedir",
|
||||
"desc": "测试nss-softokn-config命令的--includedir选项"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_libdir",
|
||||
"desc": "测试nss-softokn-config命令的--libdir选项"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_libs",
|
||||
"desc": "测试nss-softokn-config命令的--libs选项"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_softokn3",
|
||||
"desc": "测试nss-softokn-config命令指定softokn3动态库"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_freebl3",
|
||||
"desc": "测试nss-softokn-config命令指定freebl3动态库"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_nssdbm3",
|
||||
"desc": "测试nss-softokn-config命令指定nssdbm3动态库"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_cflags_softokn3",
|
||||
"desc": "测试nss-softokn-config命令组合使用--cflags选项和softokn3库"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_libs_softokn3",
|
||||
"desc": "测试nss-softokn-config命令组合使用--libs选项和softokn3库"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_nss-softokn-config_prefix_softokn3",
|
||||
"desc": "测试nss-softokn-config命令组合使用--prefix选项和softokn3库"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_function_install",
|
||||
"desc": "测试nss-softokn-devel软件包能否被正确安装"
|
||||
@@ -65,22 +21,6 @@
|
||||
{
|
||||
"name": "test_nss-softokn-devel_function_package_info",
|
||||
"desc": "测试查询nss-softokn-devel软件包信息"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_function_file_existence",
|
||||
"desc": "测试nss-softokn-devel安装后关键文件是否存在"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_function_include_headers",
|
||||
"desc": "测试nss-softokn-devel提供的头文件可用性"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_function_linking",
|
||||
"desc": "测试使用nss-softokn-config进行编译链接"
|
||||
},
|
||||
{
|
||||
"name": "test_nss-softokn-devel_function_basic_compile",
|
||||
"desc": "测试基础编译功能是否正常"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -21,22 +21,6 @@
|
||||
{
|
||||
"name": "test_pam_ssh_agent_auth_function_install",
|
||||
"desc": "测试软件包安装功能"
|
||||
},
|
||||
{
|
||||
"name": "test_pam_ssh_agent_auth_function_basic_usage",
|
||||
"desc": "测试基本认证流程"
|
||||
},
|
||||
{
|
||||
"name": "test_pam_ssh_agent_auth_function_config",
|
||||
"desc": "测试PAM配置文件使用"
|
||||
},
|
||||
{
|
||||
"name": "test_pam_ssh_agent_auth_function_agent_env",
|
||||
"desc": "测试SSH_AUTH_SOCK环境变量"
|
||||
},
|
||||
{
|
||||
"name": "test_pam_ssh_agent_auth_function_sudo_integration",
|
||||
"desc": "测试与sudo的集成认证"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -42,133 +42,9 @@
|
||||
"name": "test_perl-DBI_function_check_installed",
|
||||
"desc": "检查 perl-DBI 模块是否已正确安装"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbilogstrip__upper_v",
|
||||
"desc": "测试 dbilogstrip 命令的详细模式"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbilogstrip__h",
|
||||
"desc": "测试 dbilogstrip 命令的帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbilogstrip__upper_d",
|
||||
"desc": "测试 dbilogstrip 命令的调试模式"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbilogstrip__upper_o",
|
||||
"desc": "测试 dbilogstrip 命令指定输出文件"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbilogstrip__upper_i",
|
||||
"desc": "测试 dbilogstrip 命令指定输入文件"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_number",
|
||||
"desc": "使用-number参数指定显示前N个结果"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_sort",
|
||||
"desc": "使用-sort参数按指定字段排序"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_reverse",
|
||||
"desc": "使用-reverse参数反转排序顺序"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_match",
|
||||
"desc": "使用-match参数进行键值匹配过滤"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_exclude",
|
||||
"desc": "使用-exclude参数进行键值排除过滤"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_case_sensitive",
|
||||
"desc": "使用-case_sensitive参数使过滤匹配区分大小写"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_delete",
|
||||
"desc": "使用-delete参数读取前重命名文件并在读取后删除"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_version",
|
||||
"desc": "使用-version参数打印版本号并退出"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_help",
|
||||
"desc": "使用-help参数打印帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_default_file",
|
||||
"desc": "不指定文件参数,使用默认的dbi.prof文件"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_custom_file",
|
||||
"desc": "指定一个或多个自定义文件作为输入"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_number_sort",
|
||||
"desc": "组合使用-number和-sort参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_number_reverse",
|
||||
"desc": "组合使用-number和-reverse参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_sort_reverse",
|
||||
"desc": "组合使用-sort和-reverse参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_match_exclude",
|
||||
"desc": "组合使用-match和-exclude参数进行过滤"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_match_case_sensitive",
|
||||
"desc": "组合使用-match和-case_sensitive参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_exclude_case_sensitive",
|
||||
"desc": "组合使用-exclude和-case_sensitive参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_match_exclude_case_sensitive",
|
||||
"desc": "组合使用-match、-exclude和-case_sensitive参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_number_sort_reverse",
|
||||
"desc": "组合使用-number、-sort和-reverse参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_dbiprof_file_number_sort",
|
||||
"desc": "指定文件并组合使用-number和-sort参数"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_function_core_connect",
|
||||
"desc": "测试 DBI->connect 数据库连接"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_function_execute_query",
|
||||
"desc": "测试执行简单 SQL 查询语句"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_function_prepare_execute",
|
||||
"desc": "测试 prepare 和 execute 方法"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_function_fetch_results",
|
||||
"desc": "测试 fetchrow_array 等方法获取结果"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_function_handle_errors",
|
||||
"desc": "测试 DBI 错误处理机制"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_function_transaction",
|
||||
"desc": "测试 begin_work 和 commit 事务"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-DBI_function_disconnect",
|
||||
"desc": "测试数据库连接断开"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/python-shellingham/python-shellingham-help",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_python-shellingham-help_function_detect",
|
||||
"desc": "Test shell detection functionality"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -22,14 +22,6 @@
|
||||
"name": "test_smartmontools-help_function_basic_help",
|
||||
"desc": "Test displaying help information for smartmontools-help"
|
||||
},
|
||||
{
|
||||
"name": "test_smartmontools-help_function_man_page",
|
||||
"desc": "Test accessing the manual page for smartmontools-help"
|
||||
},
|
||||
{
|
||||
"name": "test_smartmontools-help_function_version",
|
||||
"desc": "Test checking the version of smartmontools-help"
|
||||
},
|
||||
{
|
||||
"name": "test_smartmontools-help_function_list_dev",
|
||||
"desc": "Test listing available storage devices"
|
||||
@@ -41,18 +33,6 @@
|
||||
{
|
||||
"name": "test_smartmontools-help_function_attr",
|
||||
"desc": "Test reading drive SMART attributes"
|
||||
},
|
||||
{
|
||||
"name": "test_smartmontools-help_function_error_log",
|
||||
"desc": "Test reading drive error logs"
|
||||
},
|
||||
{
|
||||
"name": "test_smartmontools-help_function_self_test",
|
||||
"desc": "Test initiating a drive self-test"
|
||||
},
|
||||
{
|
||||
"name": "test_smartmontools-help_function_config",
|
||||
"desc": "Test saving or loading drive config"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-d/texlive-chess-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-chess-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,14 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-colorwav-doc_function_doc_access",
|
||||
"desc": "Test documentation accessibility"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-colorwav-doc_function_doc_content",
|
||||
"desc": "Test documentation content validity"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-colorwav-doc_function_version",
|
||||
"desc": "Test package version info"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-q/texlive-outliner",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-outliner_function_basic",
|
||||
"desc": "Test basic functionality of texlive-outliner"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试基础编译功能是否正常
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 初始化变量
|
||||
PACKAGE_NAME="nss-softokn-devel"
|
||||
LOG_INFO "测试开始:验证基础编译功能"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包是否在yum源中"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查是否已安装软件包
|
||||
LOG_INFO "检查是否已安装软件包"
|
||||
INSTALLED=0
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将进行安装测试"
|
||||
fi
|
||||
|
||||
# 步骤3:安装软件包(如果未安装)
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证编译功能
|
||||
LOG_INFO "验证基础编译功能"
|
||||
# 创建测试C程序
|
||||
cat > test_compile.c << "EOF"
|
||||
#include <nss.h>
|
||||
#include <ssl.h>
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 编译测试程序
|
||||
gcc -o test_compile test_compile.c -lssl3 -lsmime3 -lnss3 -lnssutil3
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败"
|
||||
|
||||
# 步骤5:运行测试程序
|
||||
LOG_INFO "运行编译后的测试程序"
|
||||
./test_compile
|
||||
CHECK_RESULT $? 0 0 "运行测试程序失败"
|
||||
|
||||
# 步骤6:清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_compile.c test_compile
|
||||
|
||||
# 步骤7:恢复环境(如果脚本开始时未安装,则卸载)
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:基础编译功能正常"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,93 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-devel安装后关键文件是否存在
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量
|
||||
SCRIPT_NAME="test_nss-softokn-devel_function_file_existence"
|
||||
LOG_INFO "开始执行测试脚本:${SCRIPT_NAME}"
|
||||
LOG_INFO "测试目标:验证nss-softokn-devel安装后关键文件是否存在"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="nss-softokn-devel"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包 ${PACKAGE_NAME}"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中存在"
|
||||
|
||||
# 步骤2:检查当前环境是否已安装指定软件包
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装软件包 ${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,标记为无需清理"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,标记为需要清理"
|
||||
NEED_CLEANUP=1
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:检查关键文件是否存在
|
||||
LOG_INFO "步骤4:检查关键文件是否存在"
|
||||
# 定义需要检查的关键文件列表
|
||||
KEY_FILES=(
|
||||
"/usr/include/nss/softokn.h"
|
||||
"/usr/include/nss/softoknt.h"
|
||||
"/usr/lib64/libsoftokn3.so"
|
||||
"/usr/lib64/pkgconfig/nss-softokn-devel.pc"
|
||||
)
|
||||
|
||||
for file in "${KEY_FILES[@]}"; do
|
||||
if [ -f "${file}" ]; then
|
||||
LOG_INFO "文件 ${file} 存在"
|
||||
else
|
||||
LOG_ERROR "文件 ${file} 不存在"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
LOG_INFO "所有关键文件均存在"
|
||||
|
||||
# 步骤5:清理环境
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 卸载成功"
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,保持原状,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成:${SCRIPT_NAME}"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,99 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-devel提供的头文件可用性
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试环境检查
|
||||
LOG_INFO "检查测试环境"
|
||||
rpm -qa | grep -q nss-softokn-devel
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "nss-softokn-devel已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "nss-softokn-devel未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否存在nss-softokn-devel软件包"
|
||||
dnf list available nss-softokn-devel 2>/dev/null | grep -q nss-softokn-devel
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到nss-softokn-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装nss-softokn-devel软件包"
|
||||
dnf install -y nss-softokn-devel
|
||||
CHECK_RESULT $? 0 0 "安装nss-softokn-devel失败"
|
||||
fi
|
||||
|
||||
# 测试头文件可用性
|
||||
LOG_INFO "测试nss-softokn-devel提供的头文件可用性"
|
||||
LOG_INFO "检查头文件路径"
|
||||
HEADER_PATH=$(rpm -ql nss-softokn-devel | grep "\.h$" | head -1)
|
||||
if [ -z "$HEADER_PATH" ]; then
|
||||
LOG_ERROR "未找到nss-softokn-devel的头文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "测试头文件包含"
|
||||
TEST_SOURCE="/tmp/test_nss_headers.c"
|
||||
TEST_BINARY="/tmp/test_nss_headers"
|
||||
|
||||
# 创建测试C程序
|
||||
cat > "$TEST_SOURCE" << "EOF"
|
||||
#include <nss.h>
|
||||
#include <pk11pub.h>
|
||||
#include <softoken.h>
|
||||
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
CHECK_RESULT $? 0 0 "创建测试源文件失败"
|
||||
|
||||
LOG_INFO "编译测试程序"
|
||||
gcc -o "$TEST_BINARY" "$TEST_SOURCE" -I/usr/include/nss3 -I/usr/include/nspr4 -lnss3 -lnspr4 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败,头文件不可用"
|
||||
|
||||
LOG_INFO "运行测试程序"
|
||||
"$TEST_BINARY"
|
||||
CHECK_RESULT $? 0 0 "测试程序运行失败"
|
||||
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f "$TEST_SOURCE" "$TEST_BINARY"
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 环境恢复
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载nss-softokn-devel软件包"
|
||||
dnf remove -y nss-softokn-devel
|
||||
CHECK_RESULT $? 0 0 "卸载nss-softokn-devel失败"
|
||||
else
|
||||
LOG_INFO "保持nss-softokn-devel安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用nss-softokn-config进行编译链接
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试使用nss-softokn-config进行编译链接"
|
||||
|
||||
# 检查yum源中是否存在nss-softokn-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在nss-softokn-devel软件包"
|
||||
if ! dnf list available nss-softokn-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到nss-softokn-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断环境是否已经安装nss-softokn-devel
|
||||
LOG_INFO "检查当前环境是否已安装nss-softokn-devel"
|
||||
if rpm -q nss-softokn-devel &>/dev/null; then
|
||||
LOG_INFO "环境已安装nss-softokn-devel,脚本结束后保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "环境未安装nss-softokn-devel,将进行安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包作为测试步骤
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "安装nss-softokn-devel软件包"
|
||||
dnf install -y nss-softokn-devel
|
||||
CHECK_RESULT $? 0 0 "安装nss-softokn-devel失败"
|
||||
fi
|
||||
|
||||
# 检查nss-softokn-config命令是否存在
|
||||
LOG_INFO "检查nss-softokn-config命令是否存在"
|
||||
if ! command -v nss-softokn-config &>/dev/null; then
|
||||
LOG_ERROR "nss-softokn-config命令不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试使用nss-softokn-config进行编译链接
|
||||
LOG_INFO "测试使用nss-softokn-config获取编译参数"
|
||||
CFLAGS=$(nss-softokn-config --cflags)
|
||||
CHECK_RESULT $? 0 0 "执行nss-softokn-config --cflags失败"
|
||||
LOG_INFO "编译参数为:$CFLAGS"
|
||||
|
||||
LOG_INFO "测试使用nss-softokn-config获取链接参数"
|
||||
LDFLAGS=$(nss-softokn-config --libs)
|
||||
CHECK_RESULT $? 0 0 "执行nss-softokn-config --libs失败"
|
||||
LOG_INFO "链接参数为:$LDFLAGS"
|
||||
|
||||
# 清理环境,恢复到之前的状态
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载nss-softokn-devel软件包"
|
||||
dnf remove -y nss-softokn-devel
|
||||
CHECK_RESULT $? 0 0 "卸载nss-softokn-devel失败"
|
||||
else
|
||||
LOG_INFO "环境已安装nss-softokn-devel,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,105 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-config命令指定freebl3动态库
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装所需软件包
|
||||
LOG_INFO "检查是否已安装nss-softokn-devel软件包"
|
||||
if rpm -q nss-softokn-devel &>/dev/null; then
|
||||
LOG_INFO "nss-softokn-devel已安装"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "nss-softokn-devel未安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有nss-softokn-devel软件包"
|
||||
if ! dnf list available nss-softokn-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到nss-softokn-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "开始安装nss-softokn-devel软件包"
|
||||
dnf install -y nss-softokn-devel
|
||||
CHECK_RESULT $? 0 0 "安装nss-softokn-devel失败"
|
||||
LOG_INFO "nss-softokn-devel安装成功"
|
||||
fi
|
||||
|
||||
# 测试nss-softokn-config命令指定freebl3动态库
|
||||
LOG_INFO "测试nss-softokn-config命令指定freebl3动态库"
|
||||
|
||||
# 检查nss-softokn-config命令是否存在
|
||||
LOG_INFO "检查nss-softokn-config命令是否存在"
|
||||
if ! command -v nss-softokn-config &>/dev/null; then
|
||||
LOG_ERROR "nss-softokn-config命令不存在"
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载nss-softokn-devel软件包"
|
||||
dnf remove -y nss-softokn-devel
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否支持--freebl3参数
|
||||
LOG_INFO "检查nss-softokn-config是否支持--freebl3参数"
|
||||
if ! nss-softokn-config --help 2>/dev/null | grep -q "\-\-freebl3"; then
|
||||
LOG_ERROR "nss-softokn-config不支持--freebl3参数"
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载nss-softokn-devel软件包"
|
||||
dnf remove -y nss-softokn-devel
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行nss-softokn-config --freebl3命令
|
||||
LOG_INFO "执行nss-softokn-config --freebl3命令"
|
||||
nss-softokn-config --freebl3
|
||||
CHECK_RESULT $? 0 0 "执行nss-softokn-config --freebl3命令失败"
|
||||
|
||||
# 验证输出结果包含freebl3库信息
|
||||
LOG_INFO "验证输出结果包含freebl3库信息"
|
||||
output=$(nss-softokn-config --freebl3 2>&1)
|
||||
if echo "$output" | grep -q "freebl3"; then
|
||||
LOG_INFO "nss-softokn-config --freebl3输出包含freebl3库信息"
|
||||
else
|
||||
LOG_ERROR "nss-softokn-config --freebl3输出不包含freebl3库信息"
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载nss-softokn-devel软件包"
|
||||
dnf remove -y nss-softokn-devel
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载nss-softokn-devel软件包"
|
||||
dnf remove -y nss-softokn-devel
|
||||
CHECK_RESULT $? 0 0 "卸载nss-softokn-devel失败"
|
||||
LOG_INFO "环境已恢复"
|
||||
else
|
||||
LOG_INFO "环境保持原安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,51 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-config命令的--libdir选项
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试nss-softokn-config命令的--libdir选项"
|
||||
LOG_INFO "步骤1:检查当前环境是否已安装nss-softokn-devel和nss-softokn软件包"
|
||||
rpm -q nss-softokn-devel nss-softokn > /dev/null 2>&1
|
||||
INSTALLED=$?
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在nss-softokn-devel和nss-softokn软件包"
|
||||
dnf list available nss-softokn-devel nss-softokn > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到nss-softokn-devel或nss-softokn软件包"
|
||||
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "步骤3:安装nss-softokn-devel和nss-softokn软件包"
|
||||
dnf install -y nss-softokn-devel nss-softokn
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:测试nss-softokn-config命令的--libdir选项"
|
||||
nss-softokn-config --libdir
|
||||
CHECK_RESULT $? 0 255 "nss-softokn-config命令不支持--libdir选项"
|
||||
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "步骤5:卸载测试安装的软件包"
|
||||
dnf remove -y nss-softokn-devel nss-softokn
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-config命令的--libs选项
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE1="nss-softokn-devel"
|
||||
PACKAGE2="nss-softokn-config"
|
||||
PACKAGE3="libs"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查yum源中是否存在软件包 $PACKAGE1 和 $PACKAGE2"
|
||||
if ! dnf list available "$PACKAGE1" "$PACKAGE2" &>/dev/null; then
|
||||
LOG_ERROR "yum源中缺少软件包 $PACKAGE1 或 $PACKAGE2"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查系统是否已安装指定软件包
|
||||
LOG_INFO "检查系统是否已安装软件包 $PACKAGE1 和 $PACKAGE2"
|
||||
if rpm -q "$PACKAGE1" "$PACKAGE2" &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装软件包 $PACKAGE1 和 $PACKAGE2"
|
||||
dnf install -y "$PACKAGE1" "$PACKAGE2"
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 测试nss-softokn-config命令的--libs选项
|
||||
LOG_INFO "测试nss-softokn-config命令的--libs选项"
|
||||
if ! nss-softokn-config --libs &>/dev/null; then
|
||||
LOG_ERROR "nss-softokn-config命令不支持--libs选项"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行命令并检查结果
|
||||
nss-softokn-config --libs
|
||||
CHECK_RESULT $? 0 0 "执行nss-softokn-config --libs命令失败"
|
||||
|
||||
# 步骤5: 如果需要清理环境,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE1 和 $PACKAGE2"
|
||||
dnf remove -y "$PACKAGE1" "$PACKAGE2"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-config命令指定nssdbm3动态库
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试nss-softokn-config命令指定nssdbm3动态库"
|
||||
LOG_INFO "检查当前环境是否已安装nss-softokn-devel和nss-softokn软件包"
|
||||
if dnf list installed nss-softokn-devel nss-softokn > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试前安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在nss-softokn-devel和nss-softokn软件包"
|
||||
if ! dnf list available nss-softokn-devel nss-softokn > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中不存在nss-softokn-devel或nss-softokn软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ ${already_installed} -eq 0 ]; then
|
||||
LOG_INFO "安装nss-softokn-devel和nss-softokn软件包"
|
||||
dnf install -y nss-softokn-devel nss-softokn
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查nss-softokn-config命令是否支持--nssdbm3参数"
|
||||
nss-softokn-config --help | grep -q -- --nssdbm3
|
||||
CHECK_RESULT $? 0 0 "nss-softokn-config命令不支持--nssdbm3参数"
|
||||
|
||||
LOG_INFO "执行nss-softokn-config --nssdbm3命令"
|
||||
output=$(nss-softokn-config --nssdbm3 2>&1)
|
||||
CHECK_RESULT $? 0 0 "执行nss-softokn-config --nssdbm3命令失败"
|
||||
LOG_INFO "命令输出: ${output}"
|
||||
|
||||
LOG_INFO "检查输出中是否包含nssdbm3相关库路径"
|
||||
echo "${output}" | grep -q "libnssdbm3"
|
||||
CHECK_RESULT $? 0 0 "输出中未找到nssdbm3动态库路径"
|
||||
|
||||
LOG_INFO "测试完成,开始清理环境"
|
||||
if [ ${already_installed} -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y nss-softokn-devel nss-softokn
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "环境已恢复,测试结束"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-config命令的--prefix选项
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试nss-softokn-config命令的--prefix选项"
|
||||
PACKAGE_NAME="nss-softokn-devel"
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在$PACKAGE_NAME软件包"
|
||||
dnf list available $PACKAGE_NAME &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到$PACKAGE_NAME软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查当前是否已安装$PACKAGE_NAME"
|
||||
rpm -q $PACKAGE_NAME &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "$PACKAGE_NAME已安装,测试结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME未安装,将进行安装测试"
|
||||
ALREADY_INSTALLED=0
|
||||
LOG_INFO "步骤3: 安装$PACKAGE_NAME软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查nss-softokn-config命令是否支持--prefix参数"
|
||||
nss-softokn-config --help 2>&1 | grep -q -- "--prefix"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "nss-softokn-config命令不支持--prefix参数"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境: 卸载$PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 测试nss-softokn-config --prefix命令"
|
||||
TEST_PREFIX="/tmp/test_prefix"
|
||||
nss-softokn-config --prefix=$TEST_PREFIX
|
||||
CHECK_RESULT $? 0 0 "执行nss-softokn-config --prefix失败"
|
||||
|
||||
LOG_INFO "步骤6: 验证输出结果包含指定前缀"
|
||||
OUTPUT=$(nss-softokn-config --prefix=$TEST_PREFIX)
|
||||
echo "$OUTPUT" | grep -q "^$TEST_PREFIX"
|
||||
CHECK_RESULT $? 0 0 "输出结果不包含指定前缀"
|
||||
|
||||
LOG_INFO "步骤7: 清理测试环境"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载$PACKAGE_NAME软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
|
||||
else
|
||||
LOG_INFO "保持$PACKAGE_NAME的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试nss-softokn-config命令指定softokn3动态库
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试nss-softokn-config命令指定softokn3动态库"
|
||||
|
||||
LOG_INFO "检查nss-softokn-devel和nss-softokn软件包是否在yum源中"
|
||||
dnf list available nss-softokn-devel nss-softokn > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少nss-softokn-devel或nss-softokn软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查当前环境是否已安装nss-softokn-devel和nss-softokn"
|
||||
rpm -q nss-softokn-devel nss-softokn > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
if [ $installed -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试完成后将保持安装状态"
|
||||
need_cleanup=0
|
||||
else
|
||||
LOG_INFO "软件包未安装,将安装软件包作为测试步骤"
|
||||
need_cleanup=1
|
||||
LOG_INFO "安装nss-softokn-devel和nss-softokn软件包"
|
||||
dnf install -y nss-softokn-devel nss-softokn
|
||||
CHECK_RESULT $? 0 0 "安装nss-softokn-devel和nss-softokn软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查nss-softokn-config命令是否存在"
|
||||
command -v nss-softokn-config > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "nss-softokn-config命令不存在"
|
||||
|
||||
LOG_INFO "测试nss-softokn-config命令的--libs参数"
|
||||
nss-softokn-config --libs > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "nss-softokn-config命令不支持--libs参数"
|
||||
|
||||
LOG_INFO "测试nss-softokn-config命令指定softokn3动态库"
|
||||
nss-softokn-config --libs softokn3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "nss-softokn-config命令指定softokn3动态库失败"
|
||||
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
LOG_INFO "清理测试环境,卸载安装的软件包"
|
||||
dnf remove -y nss-softokn-devel nss-softokn
|
||||
CHECK_RESULT $? 0 0 "卸载nss-softokn-devel和nss-softokn软件包失败"
|
||||
else
|
||||
LOG_INFO "测试完成,保持原有安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,93 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试SSH_AUTH_SOCK环境变量
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试SSH_AUTH_SOCK环境变量功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="pam_ssh_agent_auth"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查系统是否已安装${PACKAGE_NAME}软件包"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME}软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}软件包未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装则安装软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
fi
|
||||
|
||||
# 测试SSH_AUTH_SOCK环境变量设置
|
||||
LOG_INFO "测试SSH_AUTH_SOCK环境变量设置"
|
||||
export SSH_AUTH_SOCK=/tmp/ssh-agent.sock
|
||||
if [ -z "${SSH_AUTH_SOCK}" ]; then
|
||||
LOG_ERROR "SSH_AUTH_SOCK环境变量未设置"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "SSH_AUTH_SOCK环境变量已设置为: ${SSH_AUTH_SOCK}"
|
||||
fi
|
||||
|
||||
# 测试pam_ssh_agent_auth命令是否支持环境变量
|
||||
LOG_INFO "检查pam_ssh_agent_auth命令是否支持环境变量"
|
||||
pam_ssh_agent_auth --help 2>&1 | grep -q "SSH_AUTH_SOCK"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pam_ssh_agent_auth命令不支持SSH_AUTH_SOCK环境变量"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试在第二个节点上执行命令(模拟远程节点)
|
||||
LOG_INFO "在第二个节点上测试SSH_AUTH_SOCK环境变量"
|
||||
SSH_CMD "export SSH_AUTH_SOCK=/tmp/ssh-agent-remote.sock && echo \$SSH_AUTH_SOCK" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
CHECK_RESULT $? 0 0 "在第二个节点上设置SSH_AUTH_SOCK环境变量失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
unset SSH_AUTH_SOCK
|
||||
|
||||
# 如果测试前未安装则卸载软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
else
|
||||
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "SSH_AUTH_SOCK环境变量测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,102 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试基本认证流程
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试基本认证流程
|
||||
|
||||
LOG_INFO "1. 检查是否已安装pam_ssh_agent_auth软件包"
|
||||
if rpm -q pam_ssh_agent_auth > /dev/null 2>&1; then
|
||||
LOG_INFO "pam_ssh_agent_auth已安装,脚本结束后保持安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "pam_ssh_agent_auth未安装,将在测试后卸载"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查yum源中是否存在pam_ssh_agent_auth软件包"
|
||||
if ! dnf list available pam_ssh_agent_auth > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到pam_ssh_agent_auth软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
LOG_INFO "3. 安装pam_ssh_agent_auth软件包"
|
||||
dnf install -y pam_ssh_agent_auth
|
||||
CHECK_RESULT $? 0 0 "安装pam_ssh_agent_auth失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 检查pam_ssh_agent_auth命令是否可用"
|
||||
if ! command -v pam_ssh_agent_auth > /dev/null 2>&1; then
|
||||
LOG_ERROR "pam_ssh_agent_auth命令不存在"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y pam_ssh_agent_auth
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 测试pam_ssh_agent_auth基本参数"
|
||||
pam_ssh_agent_auth --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "pam_ssh_agent_auth --help执行失败"
|
||||
|
||||
LOG_INFO "6. 测试不支持的参数"
|
||||
pam_ssh_agent_auth --invalid-parameter > /dev/null 2>&1
|
||||
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
|
||||
LOG_ERROR "不支持的参数未正确返回错误码"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y pam_ssh_agent_auth
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "7. 测试基本认证流程"
|
||||
# 创建测试用的SSH密钥对
|
||||
TEST_KEY="/tmp/test_pam_ssh_key"
|
||||
rm -f ${TEST_KEY} ${TEST_KEY}.pub
|
||||
ssh-keygen -t rsa -N "" -f ${TEST_KEY} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "创建测试SSH密钥失败"
|
||||
|
||||
# 启动ssh-agent并添加密钥
|
||||
eval $(ssh-agent -s) > /dev/null 2>&1
|
||||
ssh-add ${TEST_KEY} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "添加密钥到ssh-agent失败"
|
||||
|
||||
# 测试pam_ssh_agent_auth认证
|
||||
echo "test" | pam_ssh_agent_auth --verbose --debug --file=${TEST_KEY}.pub --user=${USER} 2>&1 | grep -q "Authentication succeeded"
|
||||
CHECK_RESULT $? 0 0 "pam_ssh_agent_auth基本认证失败"
|
||||
|
||||
# 清理测试密钥和ssh-agent
|
||||
ssh-add -d ${TEST_KEY} > /dev/null 2>&1
|
||||
kill $SSH_AGENT_PID > /dev/null 2>&1
|
||||
rm -f ${TEST_KEY} ${TEST_KEY}.pub
|
||||
|
||||
LOG_INFO "8. 环境清理"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
LOG_INFO "卸载测试安装的pam_ssh_agent_auth软件包"
|
||||
dnf remove -y pam_ssh_agent_auth
|
||||
CHECK_RESULT $? 0 0 "卸载pam_ssh_agent_auth失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "9. 测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,134 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试PAM配置文件使用
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出函数
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local error_code=$3
|
||||
local error_msg=$4
|
||||
|
||||
if [ "$actual" -eq "$expected" ]; then
|
||||
LOG_INFO "检查通过: $error_msg"
|
||||
else
|
||||
LOG_ERROR "检查失败: $error_msg"
|
||||
exit $error_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH远程执行函数
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
|
||||
# 这里使用sshpass传递密码,确保sshpass已安装
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_pam_ssh_agent_auth_function_config() {
|
||||
local package_name="pam_ssh_agent_auth"
|
||||
local installed=false
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "步骤1: 检查软件包是否已安装"
|
||||
if dnf list installed "$package_name" &>/dev/null; then
|
||||
LOG_INFO "软件包 $package_name 已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2: 检查yum源中是否有软件包 $package_name"
|
||||
if ! dnf list available "$package_name" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包 $package_name"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $package_name"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
|
||||
fi
|
||||
|
||||
# 测试PAM配置文件使用
|
||||
LOG_INFO "步骤4: 测试PAM配置文件使用"
|
||||
# 检查pam_ssh_agent_auth命令是否存在
|
||||
if ! command -v pam_ssh_agent_auth &>/dev/null; then
|
||||
LOG_ERROR "pam_ssh_agent_auth 命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查pam_ssh_agent_auth命令是否支持--version参数
|
||||
if ! pam_ssh_agent_auth --version &>/dev/null; then
|
||||
LOG_ERROR "pam_ssh_agent_auth 不支持 --version 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行pam_ssh_agent_auth --version命令
|
||||
pam_ssh_agent_auth --version
|
||||
CHECK_RESULT $? 0 0 "执行 pam_ssh_agent_auth --version 失败"
|
||||
|
||||
# 检查PAM配置文件是否存在
|
||||
local pam_config="/etc/pam.d/sshd"
|
||||
if [ -f "$pam_config" ]; then
|
||||
LOG_INFO "步骤5: 检查PAM配置文件 $pam_config 是否存在"
|
||||
# 检查配置文件中是否包含pam_ssh_agent_auth相关配置
|
||||
if grep -q "pam_ssh_agent_auth" "$pam_config"; then
|
||||
LOG_INFO "PAM配置文件 $pam_config 包含 pam_ssh_agent_auth 配置"
|
||||
else
|
||||
LOG_INFO "PAM配置文件 $pam_config 不包含 pam_ssh_agent_auth 配置"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "PAM配置文件 $pam_config 不存在"
|
||||
fi
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "步骤6: 卸载软件包 $package_name"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
else
|
||||
LOG_INFO "步骤6: 保持软件包 $package_name 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_pam_ssh_agent_auth_function_config
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-04-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试与sudo的集成认证
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试与sudo的集成认证"
|
||||
LOG_INFO "步骤1: 检查测试环境是否已安装所需软件包"
|
||||
pkg_name="pam_ssh_agent_auth"
|
||||
if dnf list installed | grep -q "^${pkg_name}\."; then
|
||||
LOG_INFO "软件包 ${pkg_name} 已安装,测试后将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "软件包 ${pkg_name} 未安装,将在测试过程中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
LOG_INFO "步骤2: 检查yum源中是否存在 ${pkg_name} 软件包"
|
||||
if ! dnf list available | grep -q "^${pkg_name}\."; then
|
||||
LOG_ERROR "yum源中未找到软件包 ${pkg_name}"
|
||||
exit 255
|
||||
fi
|
||||
if [ "${already_installed}" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 ${pkg_name}"
|
||||
dnf install -y "${pkg_name}"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${pkg_name} 失败"
|
||||
fi
|
||||
LOG_INFO "步骤4: 检查pam_ssh_agent_auth命令是否支持所需参数"
|
||||
if ! pam_ssh_agent_auth --help 2>&1 | grep -q -- "--version"; then
|
||||
LOG_ERROR "pam_ssh_agent_auth命令不支持--version参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤5: 测试pam_ssh_agent_auth基本功能"
|
||||
pam_ssh_agent_auth --version
|
||||
CHECK_RESULT $? 0 0 "pam_ssh_agent_auth --version执行失败"
|
||||
LOG_INFO "步骤6: 测试与sudo的集成认证"
|
||||
SSH_CMD "sudo -l" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
|
||||
CHECK_RESULT $? 0 0 "在节点2上执行sudo -l失败"
|
||||
LOG_INFO "步骤7: 清理测试环境"
|
||||
if [ "${already_installed}" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的软件包 ${pkg_name}"
|
||||
dnf remove -y "${pkg_name}"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${pkg_name} 失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 ${pkg_name} 的安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成:测试与sudo的集成认证"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 dbilogstrip 命令的调试模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了perl-DBI包
|
||||
LOG_INFO "检查是否已经安装了perl-DBI包"
|
||||
rpm -q perl-DBI > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "perl-DBI已经安装,标记为已安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "perl-DBI未安装,标记为未安装状态"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有perl-DBI包
|
||||
LOG_INFO "检查yum源中是否有perl-DBI包"
|
||||
dnf list available perl-DBI > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有perl-DBI包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装perl-DBI包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "开始安装perl-DBI包"
|
||||
dnf install -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI包失败"
|
||||
fi
|
||||
|
||||
# 检查dbilogstrip命令是否存在
|
||||
LOG_INFO "检查dbilogstrip命令是否存在"
|
||||
which dbilogstrip > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbilogstrip命令不存在,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试dbilogstrip命令的调试模式
|
||||
LOG_INFO "测试dbilogstrip命令的调试模式"
|
||||
dbilogstrip --help | grep -q "\-\-debug"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbilogstrip命令不支持--debug参数,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个测试用的日志文件
|
||||
LOG_INFO "创建一个测试用的日志文件"
|
||||
cat > test_dbi.log << EOF
|
||||
[12345] DBI::db=HASH(0x12345678) debug trace level set to 0x0/0 (off)
|
||||
[12345] DBI::db=HASH(0x12345678) ping
|
||||
[12345] DBI::db=HASH(0x12345678) FETCH(PrintError)
|
||||
EOF
|
||||
|
||||
# 使用调试模式运行dbilogstrip
|
||||
LOG_INFO "使用调试模式运行dbilogstrip"
|
||||
dbilogstrip --debug test_dbi.log > output.log 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbilogstrip命令调试模式执行失败"
|
||||
|
||||
# 检查输出是否包含调试信息
|
||||
LOG_INFO "检查输出是否包含调试信息"
|
||||
grep -q "debug" output.log
|
||||
CHECK_RESULT $? 0 0 "输出中未找到调试信息"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_dbi.log output.log
|
||||
|
||||
# 如果测试前未安装,则卸载perl-DBI包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载perl-DBI包"
|
||||
dnf remove -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,108 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 dbilogstrip 命令指定输入文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 dbilogstrip 命令指定输入文件功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="perl-DBI"
|
||||
|
||||
# 步骤1:检查 yum 源中是否存在 perl-DBI 软件包
|
||||
LOG_INFO "步骤1:检查 yum 源中是否存在 $PACKAGE_NAME 软件包"
|
||||
if ! dnf list available "$PACKAGE_NAME" &> /dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查系统是否已安装 perl-DBI
|
||||
LOG_INFO "步骤2:检查系统是否已安装 $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &> /dev/null; then
|
||||
INSTALLED=true
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
|
||||
else
|
||||
INSTALLED=false
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试步骤中安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装 perl-DBI
|
||||
if ! $INSTALLED; then
|
||||
LOG_INFO "步骤3:安装 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查 dbilogstrip 命令是否支持 -i 参数
|
||||
LOG_INFO "步骤4:检查 dbilogstrip 命令是否支持 -i 参数"
|
||||
if ! dbilogstrip -h 2>&1 | grep -q -- "-i"; then
|
||||
LOG_ERROR "dbilogstrip 命令不支持 -i 参数"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if ! $INSTALLED; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:创建一个测试输入文件
|
||||
LOG_INFO "步骤5:创建测试输入文件"
|
||||
TEST_INPUT_FILE="/tmp/test_dbilogstrip_input.log"
|
||||
echo "DBI 1.0 trace file generated by DBI::Trace" > "$TEST_INPUT_FILE"
|
||||
echo "Some trace data for testing" >> "$TEST_INPUT_FILE"
|
||||
CHECK_RESULT $? 0 0 "创建测试输入文件失败"
|
||||
|
||||
# 步骤6:使用 dbilogstrip 命令处理输入文件
|
||||
LOG_INFO "步骤6:使用 dbilogstrip -i 处理输入文件"
|
||||
TEST_OUTPUT_FILE="/tmp/test_dbilogstrip_output.log"
|
||||
dbilogstrip -i "$TEST_INPUT_FILE" > "$TEST_OUTPUT_FILE"
|
||||
CHECK_RESULT $? 0 0 "dbilogstrip 命令执行失败"
|
||||
|
||||
# 步骤7:验证输出文件是否非空
|
||||
LOG_INFO "步骤7:验证输出文件是否非空"
|
||||
if [ -s "$TEST_OUTPUT_FILE" ]; then
|
||||
LOG_INFO "输出文件非空,测试成功"
|
||||
else
|
||||
LOG_ERROR "输出文件为空,测试失败"
|
||||
# 清理测试文件
|
||||
rm -f "$TEST_INPUT_FILE" "$TEST_OUTPUT_FILE"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if ! $INSTALLED; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8:清理测试文件
|
||||
LOG_INFO "步骤8:清理测试文件"
|
||||
rm -f "$TEST_INPUT_FILE" "$TEST_OUTPUT_FILE"
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 步骤9:如果测试开始时未安装,则卸载软件包
|
||||
if ! $INSTALLED; then
|
||||
LOG_INFO "步骤9:卸载 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤9:保持 $PACKAGE_NAME 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,142 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 dbilogstrip 命令指定输出文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(根据要求直接使用,无需定义)
|
||||
LOG_INFO() {
|
||||
echo "INFO: $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "ERROR: $1"
|
||||
}
|
||||
|
||||
# 定义检查结果函数(根据要求直接使用,无需定义)
|
||||
CHECK_RESULT() {
|
||||
if [ $1 -ne $2 ]; then
|
||||
LOG_ERROR "$4"
|
||||
exit $3
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(根据要求直接使用,无需定义)
|
||||
SSH_CMD() {
|
||||
# 这里只是占位符,实际环境中可能由外部提供
|
||||
# 假设它已经定义,直接调用
|
||||
command ssh "$@"
|
||||
}
|
||||
|
||||
# 测试用例描述:测试 dbilogstrip 命令指定输出文件
|
||||
LOG_INFO "开始测试 dbilogstrip 命令指定输出文件功能"
|
||||
|
||||
# 步骤1:检查环境是否已安装 perl-DBI 软件包
|
||||
LOG_INFO "步骤1:检查环境是否已安装 perl-DBI 软件包"
|
||||
if dnf list installed perl-DBI &>/dev/null; then
|
||||
LOG_INFO "perl-DBI 已安装,脚本结束时保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "perl-DBI 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查 yum 源中是否有 perl-DBI 软件包
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 perl-DBI 软件包"
|
||||
if ! dnf list available perl-DBI &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 perl-DBI 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装 perl-DBI
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装 perl-DBI 软件包"
|
||||
dnf install -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "安装 perl-DBI 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查 dbilogstrip 命令是否存在
|
||||
LOG_INFO "步骤4:检查 dbilogstrip 命令是否存在"
|
||||
if ! command -v dbilogstrip &>/dev/null; then
|
||||
LOG_ERROR "dbilogstrip 命令不存在"
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "清理环境:卸载之前安装的 perl-DBI"
|
||||
dnf remove -y perl-DBI
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:创建测试输入文件
|
||||
LOG_INFO "步骤5:创建测试输入文件"
|
||||
cat > test_input.log << "EOF"
|
||||
# Time: 2023-10-01 12:00:00
|
||||
# User@Host: testuser[testuser] @ localhost []
|
||||
# Thread_id: 1
|
||||
use testdb;
|
||||
select * from testtable;
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试输入文件失败"
|
||||
|
||||
# 步骤6:测试 dbilogstrip 命令指定输出文件参数
|
||||
LOG_INFO "步骤6:测试 dbilogstrip 命令指定输出文件参数"
|
||||
dbilogstrip --output test_output.log test_input.log
|
||||
CHECK_RESULT $? 0 0 "dbilogstrip 命令执行失败"
|
||||
|
||||
# 步骤7:检查输出文件是否生成
|
||||
LOG_INFO "步骤7:检查输出文件是否生成"
|
||||
if [ -f test_output.log ]; then
|
||||
LOG_INFO "输出文件 test_output.log 生成成功"
|
||||
else
|
||||
LOG_ERROR "输出文件 test_output.log 未生成"
|
||||
# 清理测试文件
|
||||
rm -f test_input.log test_output.log
|
||||
# 恢复环境
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "清理环境:卸载之前安装的 perl-DBI"
|
||||
dnf remove -y perl-DBI
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8:验证输出文件内容
|
||||
LOG_INFO "步骤8:验证输出文件内容"
|
||||
if grep -q "use testdb" test_output.log && grep -q "select \* from testtable" test_output.log; then
|
||||
LOG_INFO "输出文件内容验证成功"
|
||||
else
|
||||
LOG_ERROR "输出文件内容验证失败"
|
||||
fi
|
||||
|
||||
# 步骤9:清理测试文件
|
||||
LOG_INFO "步骤9:清理测试文件"
|
||||
rm -f test_input.log test_output.log
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 步骤10:恢复环境
|
||||
LOG_INFO "步骤10:恢复环境"
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载测试期间安装的 perl-DBI 软件包"
|
||||
dnf remove -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-DBI 失败"
|
||||
else
|
||||
LOG_INFO "保持 perl-DBI 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试 dbilogstrip 命令指定输出文件功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 dbilogstrip 命令的详细模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 dbilogstrip 命令的详细模式"
|
||||
LOG_INFO "步骤1:检查环境中是否已安装 perl-DBI 软件包"
|
||||
rpm -q perl-DBI > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "perl-DBI 软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "perl-DBI 软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
LOG_INFO "步骤2:检查 yum 源中是否存在 perl-DBI 软件包"
|
||||
dnf list available perl-DBI > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum 源中未找到 perl-DBI 软件包"
|
||||
LOG_INFO "步骤3:安装 perl-DBI 软件包"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf install -y perl-DBI > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装 perl-DBI 软件包失败"
|
||||
LOG_INFO "perl-DBI 软件包安装成功"
|
||||
else
|
||||
LOG_INFO "perl-DBI 软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
LOG_INFO "步骤4:检查 dbilogstrip 命令是否存在"
|
||||
which dbilogstrip > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "dbilogstrip 命令不存在"
|
||||
LOG_INFO "步骤5:检查 dbilogstrip 命令是否支持 -v 参数"
|
||||
dbilogstrip -v > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "dbilogstrip 命令不支持 -v 参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤6:执行 dbilogstrip -v 命令测试详细模式"
|
||||
dbilogstrip -v
|
||||
CHECK_RESULT $? 0 0 "dbilogstrip -v 命令执行失败"
|
||||
LOG_INFO "步骤7:清理测试环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载在测试过程中安装的 perl-DBI 软件包"
|
||||
dnf remove -y perl-DBI > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-DBI 软件包失败"
|
||||
LOG_INFO "perl-DBI 软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "测试前已安装 perl-DBI 软件包,测试结束后保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试 dbilogstrip 命令的详细模式完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-case_sensitive参数使过滤匹配区分大小写
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试perl-DBI_dbiprof的-case_sensitive参数功能"
|
||||
LOG_INFO "步骤1:检查perl-DBI_dbiprof软件包是否在yum源中可用"
|
||||
if ! dnf list available perl-DBI_dbiprof &>/dev/null; then
|
||||
LOG_ERROR "perl-DBI_dbiprof软件包在yum源中不可用"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2:检查当前是否已安装perl-DBI_dbiprof软件包"
|
||||
if dnf list installed perl-DBI_dbiprof &>/dev/null; then
|
||||
LOG_INFO "perl-DBI_dbiprof已安装,测试后将保持安装状态"
|
||||
installed_before_test=true
|
||||
else
|
||||
LOG_INFO "perl-DBI_dbiprof未安装,将在测试前安装"
|
||||
installed_before_test=false
|
||||
fi
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "步骤3:安装perl-DBI_dbiprof软件包"
|
||||
dnf install -y perl-DBI_dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI_dbiprof失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:检查dbiprof命令的-case_sensitive参数是否支持"
|
||||
dbiprof --help 2>&1 | grep -q -- "-case_sensitive"
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令不支持-case_sensitive参数" 255
|
||||
LOG_INFO "步骤5:创建测试用的SQL文件"
|
||||
cat > test_data.sql << "EOF"
|
||||
SELECT * FROM users WHERE name = "Alice";
|
||||
select * from users where name = "alice";
|
||||
SELECT * FROM products WHERE id = 1;
|
||||
Select * from products where id = 2;
|
||||
EOF
|
||||
LOG_INFO "步骤6:使用-case_sensitive参数执行dbiprof,过滤包含"SELECT"的行"
|
||||
dbiprof -case_sensitive -match "SELECT" test_data.sql > case_sensitive_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
LOG_INFO "步骤7:验证输出结果,应只包含大写的SELECT语句"
|
||||
expected_lines=2
|
||||
actual_lines=$(grep -c "SELECT" case_sensitive_output.txt)
|
||||
CHECK_RESULT $actual_lines $expected_lines 0 "区分大小写过滤结果不符合预期,期望找到${expected_lines}行,实际找到${actual_lines}行"
|
||||
LOG_INFO "步骤8:清理测试生成的临时文件"
|
||||
rm -f test_data.sql case_sensitive_output.txt
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "步骤9:卸载测试前安装的perl-DBI_dbiprof软件包"
|
||||
dnf remove -y perl-DBI_dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI_dbiprof失败"
|
||||
else
|
||||
LOG_INFO "步骤9:测试前已安装perl-DBI_dbiprof,保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,133 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 指定一个或多个自定义文件作为输入
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否存在
|
||||
check_package_exist() {
|
||||
local package_name=$1
|
||||
dnf list installed "$package_name" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $package_name 已安装"
|
||||
return 0
|
||||
fi
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $package_name 在yum源中可用"
|
||||
return 0
|
||||
else
|
||||
LOG_ERROR "软件包 $package_name 在yum源中不存在"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "开始安装软件包 $package_name"
|
||||
dnf install -y "$package_name" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "开始卸载软件包 $package_name"
|
||||
dnf remove -y "$package_name" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 卸载成功"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
run_test() {
|
||||
LOG_INFO "开始测试:指定一个或多个自定义文件作为输入"
|
||||
|
||||
# 检查环境是否已安装所需软件包
|
||||
local package_name="perl-DBI"
|
||||
local package_installed=false
|
||||
|
||||
if check_package_exist "$package_name"; then
|
||||
package_installed=true
|
||||
LOG_INFO "测试环境已安装 $package_name,测试后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "测试环境未安装 $package_name,测试前将进行安装"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if ! $package_installed; then
|
||||
install_package "$package_name"
|
||||
fi
|
||||
|
||||
# 检查 dbiprof 命令是否存在
|
||||
LOG_INFO "检查 dbiprof 命令是否存在"
|
||||
which dbiprof &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "dbiprof 命令不存在"
|
||||
|
||||
# 测试指定一个自定义文件作为输入
|
||||
LOG_INFO "测试指定一个自定义文件作为输入"
|
||||
local test_file1="/tmp/test_dbiprof_input1.txt"
|
||||
echo "sample data 1" > "$test_file1"
|
||||
dbiprof --input "$test_file1" --output /tmp/test_output1.txt &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "指定一个自定义文件作为输入失败"
|
||||
|
||||
# 测试指定多个自定义文件作为输入
|
||||
LOG_INFO "测试指定多个自定义文件作为输入"
|
||||
local test_file2="/tmp/test_dbiprof_input2.txt"
|
||||
echo "sample data 2" > "$test_file2"
|
||||
dbiprof --input "$test_file1" --input "$test_file2" --output /tmp/test_output2.txt &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "指定多个自定义文件作为输入失败"
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试不支持的参数"
|
||||
dbiprof --unsupported-param &>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "不支持的参数正确处理,退出码为255"
|
||||
else
|
||||
LOG_ERROR "不支持的参数未正确处理"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f "$test_file1" "$test_file2" /tmp/test_output1.txt /tmp/test_output2.txt
|
||||
|
||||
# 如果测试前未安装软件包,则卸载
|
||||
if ! $package_installed; then
|
||||
uninstall_package "$package_name"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
run_test
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,143 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 不指定文件参数,使用默认的dbi.prof文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
rpm -q perl-DBI-dbiprof &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 检查yum源中是否有软件包
|
||||
check_package_in_repo() {
|
||||
dnf list available perl-DBI-dbiprof &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
LOG_INFO "开始安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof软件包失败"
|
||||
LOG_INFO "perl-DBI-dbiprof软件包安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
LOG_INFO "开始卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof软件包失败"
|
||||
LOG_INFO "perl-DBI-dbiprof软件包卸载成功"
|
||||
}
|
||||
|
||||
# 检查dbiprof命令是否存在
|
||||
check_dbiprof_command() {
|
||||
which dbiprof &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 检查dbiprof命令是否支持默认文件参数
|
||||
check_dbiprof_default_file() {
|
||||
dbiprof --help 2>&1 | grep -q "default.*dbi.prof"
|
||||
return $?
|
||||
}
|
||||
|
||||
# 执行dbiprof命令测试
|
||||
run_dbiprof_test() {
|
||||
LOG_INFO "开始执行dbiprof命令测试"
|
||||
|
||||
# 创建测试用的dbi.prof文件
|
||||
echo "test data" > dbi.prof
|
||||
|
||||
# 执行dbiprof命令,不指定文件参数,使用默认的dbi.prof文件
|
||||
dbiprof
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
|
||||
# 清理测试文件
|
||||
rm -f dbi.prof
|
||||
LOG_INFO "dbiprof命令测试完成"
|
||||
}
|
||||
|
||||
# 主测试流程
|
||||
main() {
|
||||
LOG_INFO "开始测试:不指定文件参数,使用默认的dbi.prof文件"
|
||||
|
||||
# 记录初始安装状态
|
||||
local initially_installed=false
|
||||
check_package_installed
|
||||
if [ $? -eq 0 ]; then
|
||||
initially_installed=true
|
||||
LOG_INFO "检测到perl-DBI-dbiprof软件包已安装"
|
||||
else
|
||||
LOG_INFO "检测到perl-DBI-dbiprof软件包未安装"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有perl-DBI-dbiprof软件包"
|
||||
check_package_in_repo
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中找到perl-DBI-dbiprof软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$initially_installed" = "false" ]; then
|
||||
install_package
|
||||
fi
|
||||
|
||||
# 检查dbiprof命令是否存在
|
||||
LOG_INFO "检查dbiprof命令是否存在"
|
||||
check_dbiprof_command
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "dbiprof命令存在"
|
||||
|
||||
# 检查dbiprof命令是否支持默认文件参数
|
||||
LOG_INFO "检查dbiprof命令是否支持默认文件参数"
|
||||
check_dbiprof_default_file
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持默认文件参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "dbiprof命令支持默认文件参数"
|
||||
|
||||
# 执行dbiprof命令测试
|
||||
run_dbiprof_test
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ "$initially_installed" = "false" ]; then
|
||||
uninstall_package
|
||||
else
|
||||
LOG_INFO "保持perl-DBI-dbiprof软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:不指定文件参数,使用默认的dbi.prof文件"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-delete参数读取前重命名文件并在读取后删除
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试 perl-DBI-dbiprof 的 -delete 参数功能"
|
||||
|
||||
# 检查 yum 源中是否存在 perl-DBI-dbiprof 软件包
|
||||
LOG_INFO "检查 yum 源中是否存在 perl-DBI-dbiprof 软件包"
|
||||
if ! dnf list available perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 perl-DBI-dbiprof 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断是否已安装
|
||||
LOG_INFO "判断 perl-DBI-dbiprof 是否已安装"
|
||||
if rpm -q perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_INFO "perl-DBI-dbiprof 已安装,标记为需要保持安装状态"
|
||||
KEEP_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "perl-DBI-dbiprof 未安装,标记为需要清理安装"
|
||||
KEEP_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装 perl-DBI-dbiprof 软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装 perl-DBI-dbiprof 失败"
|
||||
fi
|
||||
|
||||
# 检查 dbiprof 命令是否存在 -delete 参数
|
||||
LOG_INFO "检查 dbiprof 命令是否支持 -delete 参数"
|
||||
if ! dbiprof --help 2>&1 | grep -q "\-\-delete"; then
|
||||
LOG_ERROR "dbiprof 命令不支持 -delete 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的 profile 文件
|
||||
LOG_INFO "创建测试用的 profile 文件"
|
||||
cat > test_profile.txt <<EOF
|
||||
# DBI Profile Data
|
||||
# Some sample data
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试 profile 文件失败"
|
||||
|
||||
# 重命名文件
|
||||
LOG_INFO "重命名 profile 文件为 test_profile_renamed.txt"
|
||||
mv test_profile.txt test_profile_renamed.txt
|
||||
CHECK_RESULT $? 0 0 "重命名文件失败"
|
||||
|
||||
# 使用 -delete 参数读取重命名后的文件
|
||||
LOG_INFO "使用 -delete 参数读取重命名后的文件"
|
||||
dbiprof --delete test_profile_renamed.txt
|
||||
CHECK_RESULT $? 0 0 "dbiprof 命令执行失败"
|
||||
|
||||
# 检查文件是否被删除
|
||||
LOG_INFO "检查文件是否被删除"
|
||||
if [ -f test_profile_renamed.txt ]; then
|
||||
LOG_ERROR "文件未被删除"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "文件已成功删除"
|
||||
fi
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载 perl-DBI-dbiprof 软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-DBI-dbiprof 失败"
|
||||
else
|
||||
LOG_INFO "保持 perl-DBI-dbiprof 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-exclude参数进行键值排除过滤
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试perl-DBI-dbiprof的-exclude参数功能"
|
||||
|
||||
LOG_INFO "检查环境中是否已安装perl-DBI-dbiprof"
|
||||
rpm -q perl-DBI-dbiprof >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到perl-DBI-dbiprof已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=1
|
||||
else
|
||||
LOG_INFO "未检测到perl-DBI-dbiprof安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE_TEST=0
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在perl-DBI-dbiprof软件包"
|
||||
dnf list available perl-DBI-dbiprof >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "创建测试用SQL文件"
|
||||
cat > test.sql << EOF
|
||||
SELECT * FROM users WHERE id = 1;
|
||||
UPDATE products SET price = 100 WHERE id = 5;
|
||||
INSERT INTO logs (message) VALUES ("test entry");
|
||||
DELETE FROM temp WHERE expired = 1;
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试SQL文件失败"
|
||||
|
||||
LOG_INFO "生成测试用的dbiprof数据文件"
|
||||
dbiprof --file=test.sql --output=test.dbi >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "生成dbiprof数据文件失败"
|
||||
|
||||
LOG_INFO "测试-exclude参数,排除包含"UPDATE"的行"
|
||||
dbiprof --file=test.dbi --exclude=UPDATE --output=filtered.dbi
|
||||
CHECK_RESULT $? 0 0 "使用-exclude参数执行失败"
|
||||
|
||||
LOG_INFO "验证-exclude参数过滤效果"
|
||||
grep -i "UPDATE" filtered.dbi >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "exclude参数未正确过滤UPDATE语句"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "exclude参数成功过滤了UPDATE语句"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试不支持的参数,预期失败"
|
||||
dbiprof --file=test.dbi --nonexistent-param 2>/dev/null
|
||||
CHECK_RESULT $? 0 255 "不支持的参数未正确识别"
|
||||
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test.sql test.dbi filtered.dbi
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,123 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-exclude和-case_sensitive参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试组合使用-exclude和-case_sensitive参数"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="perl-DBI-dbiprof"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在软件包: ${PACKAGE_NAME}"
|
||||
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包: ${PACKAGE_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前环境是否已安装该软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包: ${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,标记为已存在"
|
||||
PACKAGE_INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将在测试过程中安装"
|
||||
PACKAGE_INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${PACKAGE_INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "安装软件包: ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 获取dbiprof命令的完整路径
|
||||
LOG_INFO "查找dbiprof命令路径"
|
||||
DBIPROF_CMD=$(which dbiprof 2>/dev/null || true)
|
||||
if [ -z "${DBIPROF_CMD}" ]; then
|
||||
LOG_ERROR "未找到dbiprof命令"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "dbiprof命令路径: ${DBIPROF_CMD}"
|
||||
|
||||
# 检查-exclude参数是否支持
|
||||
LOG_INFO "检查dbiprof命令是否支持-exclude参数"
|
||||
if ! ${DBIPROF_CMD} --help 2>&1 | grep -q "\-exclude"; then
|
||||
LOG_ERROR "dbiprof命令不支持-exclude参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查-case_sensitive参数是否支持
|
||||
LOG_INFO "检查dbiprof命令是否支持-case_sensitive参数"
|
||||
if ! ${DBIPROF_CMD} --help 2>&1 | grep -q "\-case_sensitive"; then
|
||||
LOG_ERROR "dbiprof命令不支持-case_sensitive参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的临时SQL文件
|
||||
LOG_INFO "创建测试用的临时SQL文件"
|
||||
TEMP_SQL_FILE=$(mktemp /tmp/test_sql.XXXXXX)
|
||||
cat > ${TEMP_SQL_FILE} << "EOF"
|
||||
SELECT * FROM users WHERE name = "Test";
|
||||
INSERT INTO logs (message) VALUES ("Sample log");
|
||||
UPDATE settings SET value = "new" WHERE key = "old";
|
||||
EOF
|
||||
LOG_INFO "临时SQL文件创建成功: ${TEMP_SQL_FILE}"
|
||||
|
||||
# 创建测试用的临时输出文件
|
||||
LOG_INFO "创建测试用的临时输出文件"
|
||||
TEMP_OUTPUT_FILE=$(mktemp /tmp/test_output.XXXXXX)
|
||||
LOG_INFO "临时输出文件创建成功: ${TEMP_OUTPUT_FILE}"
|
||||
|
||||
# 执行组合使用-exclude和-case_sensitive参数的测试
|
||||
LOG_INFO "执行组合使用-exclude和-case_sensitive参数的测试"
|
||||
${DBIPROF_CMD} --exclude "INSERT.*" --case_sensitive ${TEMP_SQL_FILE} > ${TEMP_OUTPUT_FILE} 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行dbiprof命令失败"
|
||||
|
||||
# 检查输出结果是否符合预期
|
||||
LOG_INFO "检查输出结果是否符合预期"
|
||||
if grep -q "INSERT" ${TEMP_OUTPUT_FILE}; then
|
||||
LOG_ERROR "输出结果中包含被排除的INSERT语句"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "输出结果中未包含被排除的INSERT语句,符合预期"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f ${TEMP_SQL_FILE} ${TEMP_OUTPUT_FILE}
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 如果测试前未安装软件包,则在测试后卸载
|
||||
if [ "${PACKAGE_INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "卸载软件包: ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试组合使用-exclude和-case_sensitive参数完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,121 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 指定文件并组合使用-number和-sort参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试perl-DBI_dbiprof的-number和-sort参数组合使用"
|
||||
|
||||
# 检查yum源中是否存在perl-DBI-dbiprof软件包
|
||||
LOG_INFO "检查yum源中是否存在perl-DBI-dbiprof软件包"
|
||||
dnf list perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装perl-DBI-dbiprof
|
||||
LOG_INFO "检查是否已安装perl-DBI-dbiprof"
|
||||
rpm -q perl-DBI-dbiprof > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
# 创建测试文件
|
||||
LOG_INFO "创建测试文件"
|
||||
cat > test_profile.txt << EOF
|
||||
# DBI::ProfileData format
|
||||
# 2024-01-01 10:00:00
|
||||
Path1 1.5
|
||||
Path2 2.3
|
||||
Path3 0.8
|
||||
Path4 3.1
|
||||
Path5 1.2
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 测试-number参数是否存在
|
||||
LOG_INFO "测试-number参数是否存在"
|
||||
dbiprof --help 2>&1 | grep -q "\-\-number"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持--number参数"
|
||||
# 清理测试文件
|
||||
rm -f test_profile.txt
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试-sort参数是否存在
|
||||
LOG_INFO "测试-sort参数是否存在"
|
||||
dbiprof --help 2>&1 | grep -q "\-\-sort"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持--sort参数"
|
||||
# 清理测试文件
|
||||
rm -f test_profile.txt
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试组合使用-number和-sort参数
|
||||
LOG_INFO "测试组合使用-number和-sort参数"
|
||||
dbiprof --file test_profile.txt --number 3 --sort time > output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
|
||||
# 检查输出结果
|
||||
LOG_INFO "检查输出结果"
|
||||
line_count=$(wc -l < output.txt)
|
||||
if [ $line_count -ge 3 ]; then
|
||||
LOG_INFO "输出结果符合预期"
|
||||
else
|
||||
LOG_ERROR "输出结果不符合预期"
|
||||
rm -f test_profile.txt output.txt
|
||||
if [ $installed -ne 0 ]; then
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_profile.txt output.txt
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
else
|
||||
LOG_INFO "保持perl-DBI-dbiprof安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-help参数打印帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装perl-DBI-dbiprof软件包
|
||||
LOG_INFO "检查是否已安装perl-DBI-dbiprof软件包"
|
||||
rpm -q perl-DBI-dbiprof >/dev/null 2>&1
|
||||
package_installed=$?
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有perl-DBI-dbiprof软件包"
|
||||
dnf list available perl-DBI-dbiprof >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $package_installed -ne 0 ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof软件包失败"
|
||||
else
|
||||
LOG_INFO "perl-DBI-dbiprof软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 使用-help参数打印帮助信息
|
||||
LOG_INFO "使用-help参数打印dbiprof帮助信息"
|
||||
dbiprof --help >/dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查--help参数执行结果
|
||||
dbiprof --help > dbiprof_help_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行dbiprof --help命令失败"
|
||||
|
||||
# 验证帮助信息输出是否包含关键内容
|
||||
LOG_INFO "验证帮助信息输出"
|
||||
grep -i "usage\|help\|option" dbiprof_help_output.txt >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "帮助信息输出不符合预期"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f dbiprof_help_output.txt
|
||||
|
||||
# 如果测试前未安装软件包,则在测试后卸载
|
||||
if [ $package_installed -ne 0 ]; then
|
||||
LOG_INFO "卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof软件包失败"
|
||||
else
|
||||
LOG_INFO "保持perl-DBI-dbiprof软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-match参数进行键值匹配过滤
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试perl-DBI-dbiprof的-match参数功能"
|
||||
|
||||
# 检查软件包是否存在
|
||||
LOG_INFO "检查yum源中是否存在perl-DBI-dbiprof软件包"
|
||||
if ! dnf list available perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前环境是否已安装
|
||||
LOG_INFO "检查系统是否已安装perl-DBI-dbiprof"
|
||||
if rpm -q perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_INFO "检测到系统已安装perl-DBI-dbiprof,测试完成后将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "系统未安装perl-DBI-dbiprof,将在测试过程中安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 安装软件包(如果未安装)
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
# 检查dbiprof命令是否支持-match参数
|
||||
LOG_INFO "检查dbiprof命令是否支持-match参数"
|
||||
if ! dbiprof --help 2>&1 | grep -q "\-\-match"; then
|
||||
LOG_ERROR "dbiprof命令不支持-match参数"
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "清理安装的软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的profile文件
|
||||
LOG_INFO "创建测试用的profile文件"
|
||||
cat > test_profile.txt << EOF
|
||||
DBI::ProfileData format 1.0
|
||||
{
|
||||
"statements": [
|
||||
{
|
||||
"statement": "SELECT * FROM users",
|
||||
"total_time": 1.5,
|
||||
"calls": 10
|
||||
},
|
||||
{
|
||||
"statement": "UPDATE users SET name="test"",
|
||||
"total_time": 0.8,
|
||||
"calls": 5
|
||||
},
|
||||
{
|
||||
"statement": "DELETE FROM logs",
|
||||
"total_time": 2.1,
|
||||
"calls": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试profile文件失败"
|
||||
|
||||
# 测试-match参数功能
|
||||
LOG_INFO "测试使用-match参数进行键值匹配过滤"
|
||||
LOG_INFO "测试1: 匹配包含"SELECT"的语句"
|
||||
dbiprof --match "SELECT" test_profile.txt > select_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用-match参数匹配SELECT失败"
|
||||
grep -q "SELECT" select_output.txt
|
||||
CHECK_RESULT $? 0 0 "输出中未找到匹配SELECT的内容"
|
||||
|
||||
LOG_INFO "测试2: 匹配包含"UPDATE"的语句"
|
||||
dbiprof --match "UPDATE" test_profile.txt > update_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用-match参数匹配UPDATE失败"
|
||||
grep -q "UPDATE" update_output.txt
|
||||
CHECK_RESULT $? 0 0 "输出中未找到匹配UPDATE的内容"
|
||||
|
||||
LOG_INFO "测试3: 匹配不存在的模式"
|
||||
dbiprof --match "NOSUCHPATTERN" test_profile.txt > no_match_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用-match参数匹配不存在的模式失败"
|
||||
if [ -s no_match_output.txt ]; then
|
||||
LOG_INFO "无匹配内容时输出正常"
|
||||
else
|
||||
LOG_ERROR "无匹配内容时输出异常"
|
||||
CHECK_RESULT 1 0 0 "无匹配内容时输出异常"
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_profile.txt select_output.txt update_output.txt no_match_output.txt
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 卸载软件包(如果是测试过程中安装的)
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载测试过程中安装的perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
else
|
||||
LOG_INFO "保持系统原有的perl-DBI-dbiprof安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "perl-DBI-dbiprof的-match参数功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,117 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-match和-case_sensitive参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本开始
|
||||
LOG_INFO "开始测试组合使用-match和-case_sensitive参数"
|
||||
|
||||
# 步骤1:检查是否已安装perl-DBI-dbiprof软件包
|
||||
LOG_INFO "步骤1:检查是否已安装perl-DBI-dbiprof软件包"
|
||||
rpm -q perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "perl-DBI-dbiprof已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "perl-DBI-dbiprof未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有perl-DBI-dbiprof软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有perl-DBI-dbiprof软件包"
|
||||
dnf list available perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装perl-DBI-dbiprof软件包
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
LOG_INFO "步骤3:安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证dbiprof命令是否支持-match和-case_sensitive参数
|
||||
LOG_INFO "步骤4:验证dbiprof命令是否支持-match和-case_sensitive参数"
|
||||
dbiprof --help | grep -q "\-\-match"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持--match参数"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
dbiprof --help | grep -q "\-\-case_sensitive"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持--case_sensitive参数"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:创建测试用的SQL日志文件
|
||||
LOG_INFO "步骤5:创建测试用的SQL日志文件"
|
||||
cat > test_sql.log << EOF
|
||||
SELECT * FROM users WHERE name = "Alice";
|
||||
SELECT * FROM users WHERE name = "alice";
|
||||
SELECT * FROM users WHERE name = "BOB";
|
||||
SELECT * FROM users WHERE name = "bob";
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试SQL日志文件失败"
|
||||
|
||||
# 步骤6:测试组合使用-match和-case_sensitive参数(区分大小写)
|
||||
LOG_INFO "步骤6:测试组合使用-match和-case_sensitive参数(区分大小写)"
|
||||
dbiprof --match "Alice" --case_sensitive test_sql.log > case_sensitive_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行dbiprof命令失败(区分大小写)"
|
||||
|
||||
# 步骤7:验证区分大小写的结果
|
||||
LOG_INFO "步骤7:验证区分大小写的结果"
|
||||
grep -c "Alice" case_sensitive_output.txt > /dev/null
|
||||
CHECK_RESULT $? 0 0 "在区分大小写模式下未找到匹配项"
|
||||
|
||||
# 步骤8:测试组合使用-match和-case_sensitive参数(不区分大小写)
|
||||
LOG_INFO "步骤8:测试组合使用-match和-case_sensitive参数(不区分大小写)"
|
||||
dbiprof --match "alice" --case_sensitive=0 test_sql.log > case_insensitive_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行dbiprof命令失败(不区分大小写)"
|
||||
|
||||
# 步骤9:验证不区分大小写的结果
|
||||
LOG_INFO "步骤9:验证不区分大小写的结果"
|
||||
grep -c "alice" case_insensitive_output.txt > /dev/null
|
||||
CHECK_RESULT $? 0 0 "在不区分大小写模式下未找到匹配项"
|
||||
|
||||
# 步骤10:清理测试文件
|
||||
LOG_INFO "步骤10:清理测试文件"
|
||||
rm -f test_sql.log case_sensitive_output.txt case_insensitive_output.txt
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 步骤11:如果测试前未安装,则卸载perl-DBI-dbiprof软件包
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
LOG_INFO "步骤11:卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试组合使用-match和-case_sensitive参数完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-match和-exclude参数进行过滤
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:组合使用-match和-exclude参数进行过滤"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查perl-DBI-dbiprof软件包是否在yum源中"
|
||||
if ! dnf list available perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断环境是否已安装
|
||||
LOG_INFO "检查环境是否已安装perl-DBI-dbiprof"
|
||||
if rpm -q perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_INFO "环境已安装perl-DBI-dbiprof,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "环境未安装perl-DBI-dbiprof,将安装软件包作为测试步骤"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
# 测试dbiprof命令是否支持-match和-exclude参数
|
||||
LOG_INFO "检查dbiprof命令是否支持-match和-exclude参数"
|
||||
if ! dbiprof --help 2>&1 | grep -qE -- "-match|-exclude"; then
|
||||
LOG_ERROR "dbiprof命令不支持-match或-exclude参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的测试文件
|
||||
LOG_INFO "创建测试文件test_profile.txt"
|
||||
cat > test_profile.txt << "EOF"
|
||||
DBI::ProfileDump::Data=HASH(0x55b5d1c5c1d0)
|
||||
Path = [ "foo", "bar" ]
|
||||
Count = 10
|
||||
Time = 0.123456
|
||||
DBI::ProfileDump::Data=HASH(0x55b5d1c5c2b0)
|
||||
Path = [ "foo", "baz" ]
|
||||
Count = 20
|
||||
Time = 0.234567
|
||||
DBI::ProfileDump::Data=HASH(0x55b5d1c5c390)
|
||||
Path = [ "qux", "quux" ]
|
||||
Count = 30
|
||||
Time = 0.345678
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 组合使用-match和-exclude参数进行过滤
|
||||
LOG_INFO "执行dbiprof命令,组合使用-match和-exclude参数过滤"
|
||||
dbiprof --match "foo" --exclude "baz" test_profile.txt > output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
|
||||
# 检查输出是否符合预期
|
||||
LOG_INFO "检查输出结果是否符合预期"
|
||||
if grep -q "bar" output.txt && ! grep -q "baz" output.txt && ! grep -q "qux" output.txt; then
|
||||
LOG_INFO "输出结果符合预期:包含"bar",不包含"baz"和"qux""
|
||||
else
|
||||
LOG_ERROR "输出结果不符合预期"
|
||||
CHECK_RESULT 1 0 0 "输出结果验证失败"
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_profile.txt output.txt
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装perl-DBI-dbiprof,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:组合使用-match和-exclude参数进行过滤"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-match、-exclude和-case_sensitive参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试perl-DBI-dbiprof的-match、-exclude和-case_sensitive参数组合使用功能"
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在perl-DBI-dbiprof软件包"
|
||||
dnf list --available perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包perl-DBI-dbiprof在yum源中存在"
|
||||
|
||||
LOG_INFO "步骤2: 检查当前环境中是否已安装perl-DBI-dbiprof"
|
||||
rpm -qa | grep -q perl-DBI-dbiprof
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "perl-DBI-dbiprof已安装,标记为已安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "perl-DBI-dbiprof未安装,标记为未安装状态"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3: 如果未安装则安装perl-DBI-dbiprof软件包"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
LOG_INFO "perl-DBI-dbiprof安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 验证dbiprof命令是否支持-match、-exclude和-case_sensitive参数"
|
||||
dbiprof --help 2>&1 | grep -q -E "\-\-match|\-\-exclude|\-\-case_sensitive"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-match、-exclude或-case_sensitive参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "dbiprof命令支持-match、-exclude和-case_sensitive参数"
|
||||
|
||||
LOG_INFO "步骤5: 创建测试用的SQL文件用于dbiprof分析"
|
||||
cat > test_query.sql << EOF
|
||||
SELECT * FROM users WHERE name = "Alice";
|
||||
SELECT * FROM users WHERE name = "alice";
|
||||
SELECT * FROM products WHERE id = 1;
|
||||
EOF
|
||||
LOG_INFO "测试SQL文件创建完成"
|
||||
|
||||
LOG_INFO "步骤6: 执行dbiprof命令,组合使用-match、-exclude和-case_sensitive参数进行测试"
|
||||
dbiprof --match "SELECT.*users" --exclude "Alice" --case_sensitive test_query.sql > output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
|
||||
LOG_INFO "步骤7: 验证输出结果是否符合预期"
|
||||
grep -q "SELECT \* FROM users WHERE name = "alice";" output.txt
|
||||
CHECK_RESULT $? 0 0 "输出结果中未找到预期的匹配项"
|
||||
LOG_INFO "输出结果验证成功,符合预期"
|
||||
|
||||
LOG_INFO "步骤8: 清理测试过程中产生的临时文件"
|
||||
rm -f test_query.sql output.txt
|
||||
LOG_INFO "临时文件清理完成"
|
||||
|
||||
LOG_INFO "步骤9: 如果测试前未安装perl-DBI-dbiprof,则在测试完成后卸载"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
LOG_INFO "perl-DBI-dbiprof卸载成功,环境已恢复"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,164 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-number参数指定显示前N个结果
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="perl-DBI-dbiprof"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定的软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在指定的软件包"
|
||||
dnf list available $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查是否已经安装软件包
|
||||
LOG_INFO "步骤2: 检查是否已经安装软件包"
|
||||
rpm -q $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已经安装"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查dbiprof命令是否存在
|
||||
LOG_INFO "步骤4: 检查dbiprof命令是否存在"
|
||||
which dbiprof > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令不存在"
|
||||
|
||||
# 步骤5: 检查-number参数是否支持
|
||||
LOG_INFO "步骤5: 检查-number参数是否支持"
|
||||
dbiprof --help 2>&1 | grep -q "\-number"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-number参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6: 创建测试用的DBI配置文件
|
||||
LOG_INFO "步骤6: 创建测试用的DBI配置文件"
|
||||
TEST_CONFIG_FILE="/tmp/test_dbiprof_config.txt"
|
||||
cat > $TEST_CONFIG_FILE << EOF
|
||||
DBI_PROFILE=2/DBI::ProfileDumper
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建DBI配置文件失败"
|
||||
|
||||
# 步骤7: 创建测试用的Perl脚本
|
||||
LOG_INFO "步骤7: 创建测试用的Perl脚本"
|
||||
TEST_PERL_SCRIPT="/tmp/test_dbiprof.pl"
|
||||
cat > $TEST_PERL_SCRIPT << "EOF"
|
||||
#!/usr/bin/perl
|
||||
use DBI;
|
||||
my $dbh = DBI->connect("dbi:ExampleP:", "", "", {AutoCommit=>0});
|
||||
for (my $i=0; $i<10; $i++) {
|
||||
my $sth = $dbh->prepare("SELECT * FROM foo WHERE id=?");
|
||||
$sth->execute($i);
|
||||
while (my @row = $sth->fetchrow_array) {
|
||||
# do nothing
|
||||
}
|
||||
$sth->finish;
|
||||
}
|
||||
$dbh->disconnect;
|
||||
EOF
|
||||
chmod +x $TEST_PERL_SCRIPT
|
||||
CHECK_RESULT $? 0 0 "创建Perl测试脚本失败"
|
||||
|
||||
# 步骤8: 运行Perl脚本生成性能数据
|
||||
LOG_INFO "步骤8: 运行Perl脚本生成性能数据"
|
||||
DBI_PROFILE_FILE="/tmp/test_dbiprof.out"
|
||||
export DBI_PROFILE_FILE
|
||||
perl $TEST_PERL_SCRIPT > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "运行Perl脚本生成性能数据失败"
|
||||
|
||||
# 步骤9: 使用-number参数测试显示前3个结果
|
||||
LOG_INFO "步骤9: 使用-number参数测试显示前3个结果"
|
||||
dbiprof -number 3 $DBI_PROFILE_FILE > /tmp/dbiprof_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用-number参数运行dbiprof失败"
|
||||
|
||||
# 步骤10: 验证输出结果包含指定数量的条目
|
||||
LOG_INFO "步骤10: 验证输出结果包含指定数量的条目"
|
||||
LINE_COUNT=$(grep -c "^[0-9]" /tmp/dbiprof_output.txt)
|
||||
if [ $LINE_COUNT -le 3 ]; then
|
||||
LOG_INFO "输出结果包含 $LINE_COUNT 个条目,符合-number参数指定"
|
||||
CHECK_RESULT 0 0 0 "输出结果数量验证失败"
|
||||
else
|
||||
LOG_ERROR "输出结果包含 $LINE_COUNT 个条目,超过-number参数指定的3个"
|
||||
CHECK_RESULT 1 0 0 "输出结果数量验证失败"
|
||||
fi
|
||||
|
||||
# 步骤11: 测试-number参数为0的情况
|
||||
LOG_INFO "步骤11: 测试-number参数为0的情况"
|
||||
dbiprof -number 0 $DBI_PROFILE_FILE > /tmp/dbiprof_output_zero.txt 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "-number参数为0时命令执行成功"
|
||||
CHECK_RESULT 0 0 0 "-number参数为0时应该失败但实际成功"
|
||||
else
|
||||
LOG_INFO "-number参数为0时命令执行失败,符合预期"
|
||||
CHECK_RESULT 0 0 0 "-number参数为0测试失败"
|
||||
fi
|
||||
|
||||
# 步骤12: 测试-number参数为负数的情况
|
||||
LOG_INFO "步骤12: 测试-number参数为负数的情况"
|
||||
dbiprof -number -1 $DBI_PROFILE_FILE > /tmp/dbiprof_output_negative.txt 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "-number参数为负数时命令执行成功,不符合预期"
|
||||
CHECK_RESULT 1 0 0 "-number参数为负数测试失败"
|
||||
else
|
||||
LOG_INFO "-number参数为负数时命令执行失败,符合预期"
|
||||
CHECK_RESULT 0 0 0 "-number参数为负数测试失败"
|
||||
fi
|
||||
|
||||
# 步骤13: 清理临时文件
|
||||
LOG_INFO "步骤13: 清理临时文件"
|
||||
rm -f $TEST_CONFIG_FILE $TEST_PERL_SCRIPT $DBI_PROFILE_FILE /tmp/dbiprof_output*.txt
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 步骤14: 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
LOG_INFO "步骤14: 卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤14: 测试前已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,110 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-number和-reverse参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已安装perl-DBI-dbiprof软件包
|
||||
LOG_INFO "检查环境是否已安装perl-DBI-dbiprof软件包"
|
||||
rpm -q perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装perl-DBI-dbiprof,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "环境未安装perl-DBI-dbiprof,将在测试前安装,测试结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有perl-DBI-dbiprof软件包
|
||||
LOG_INFO "检查yum源中是否有perl-DBI-dbiprof软件包"
|
||||
dnf list available perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
# 验证dbiprof命令是否存在
|
||||
LOG_INFO "验证dbiprof命令是否存在"
|
||||
which dbiprof > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令不存在"
|
||||
|
||||
# 检查dbiprof命令是否支持-number参数
|
||||
LOG_INFO "检查dbiprof命令是否支持-number参数"
|
||||
dbiprof --help 2>&1 | grep -q "\-number"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-number参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查dbiprof命令是否支持-reverse参数
|
||||
LOG_INFO "检查dbiprof命令是否支持-reverse参数"
|
||||
dbiprof --help 2>&1 | grep -q "\-reverse"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-reverse参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的trace文件
|
||||
LOG_INFO "创建测试用的trace文件"
|
||||
cat > test_trace.txt << EOF
|
||||
# DBI::Profile data
|
||||
+ 1 0.001
|
||||
+ 2 0.002
|
||||
+ 3 0.003
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建trace文件失败"
|
||||
|
||||
# 组合使用-number和-reverse参数进行测试
|
||||
LOG_INFO "组合使用-number和-reverse参数进行测试"
|
||||
dbiprof -number 2 -reverse test_trace.txt > output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
|
||||
# 验证输出结果
|
||||
LOG_INFO "验证输出结果"
|
||||
if [ -s output.txt ]; then
|
||||
LOG_INFO "dbiprof命令成功执行并产生输出"
|
||||
cat output.txt
|
||||
else
|
||||
LOG_ERROR "dbiprof命令未产生输出"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f test_trace.txt output.txt
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,101 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-number和-sort参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试组合使用-number和-sort参数"
|
||||
LOG_INFO "检查环境是否已安装perl-DBI-dbiprof软件包"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if rpm -q perl-DBI-dbiprof >/dev/null 2>&1; then
|
||||
LOG_INFO "检测到perl-DBI-dbiprof已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "未检测到perl-DBI-dbiprof安装,测试结束后将卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在perl-DBI-dbiprof软件包"
|
||||
if ! dnf list available perl-DBI-dbiprof >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
# 检查dbiprof命令是否存在
|
||||
LOG_INFO "检查dbiprof命令是否存在"
|
||||
if ! command -v dbiprof >/dev/null 2>&1; then
|
||||
LOG_ERROR "dbiprof命令不存在"
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "清理环境,卸载已安装的软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查-number参数是否存在
|
||||
LOG_INFO "检查dbiprof命令是否支持-number参数"
|
||||
if ! dbiprof --help 2>&1 | grep -q -- "-number"; then
|
||||
LOG_ERROR "dbiprof命令不支持-number参数"
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "清理环境,卸载已安装的软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查-sort参数是否存在
|
||||
LOG_INFO "检查dbiprof命令是否支持-sort参数"
|
||||
if ! dbiprof --help 2>&1 | grep -q -- "-sort"; then
|
||||
LOG_ERROR "dbiprof命令不支持-sort参数"
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "清理环境,卸载已安装的软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试组合使用-number和-sort参数
|
||||
LOG_INFO "测试组合使用-number和-sort参数"
|
||||
dbiprof -number 5 -sort total_time
|
||||
CHECK_RESULT $? 0 0 "组合使用-number和-sort参数执行失败"
|
||||
|
||||
LOG_INFO "测试组合使用-number和-sort参数成功"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "清理环境,卸载测试安装的软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
else
|
||||
LOG_INFO "环境已恢复,保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,104 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-number、-sort和-reverse参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试组合使用-number、-sort和-reverse参数"
|
||||
LOG_INFO "检查是否已安装perl-DBI-dbiprof软件包"
|
||||
rpm -q perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在perl-DBI-dbiprof软件包"
|
||||
dnf list available perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查dbiprof命令是否支持-number参数"
|
||||
dbiprof --help 2>&1 | grep -q -- "-number"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-number参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查dbiprof命令是否支持-sort参数"
|
||||
dbiprof --help 2>&1 | grep -q -- "-sort"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-sort参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查dbiprof命令是否支持-reverse参数"
|
||||
dbiprof --help 2>&1 | grep -q -- "-reverse"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-reverse参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "创建测试用的profile文件"
|
||||
cat > test_profile.txt << EOF
|
||||
1.2.3.4: SELECT * FROM users WHERE id=1
|
||||
1.2.3.4: SELECT * FROM products WHERE price>100
|
||||
1.2.3.5: UPDATE orders SET status="shipped" WHERE id=5
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试profile文件失败"
|
||||
|
||||
LOG_INFO "执行dbiprof命令,组合使用-number、-sort和-reverse参数"
|
||||
dbiprof -number 2 -sort total -reverse test_profile.txt > output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
|
||||
LOG_INFO "检查输出结果是否符合预期"
|
||||
lines=$(wc -l < output.txt)
|
||||
if [ "$lines" -ge 2 ]; then
|
||||
LOG_INFO "输出结果符合预期,显示了排序后的数据"
|
||||
else
|
||||
LOG_ERROR "输出结果不符合预期"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f test_profile.txt output.txt
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
else
|
||||
LOG_INFO "保持perl-DBI-dbiprof软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,100 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-reverse参数反转排序顺序
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:判断是否已安装perl-DBI-dbiprof
|
||||
LOG_INFO "检查是否已安装perl-DBI-dbiprof软件包"
|
||||
if dnf list installed perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_INFO "perl-DBI-dbiprof已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "perl-DBI-dbiprof未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在perl-DBI-dbiprof软件包
|
||||
LOG_INFO "检查yum源中是否存在perl-DBI-dbiprof软件包"
|
||||
if ! dnf list available perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
LOG_INFO "perl-DBI-dbiprof安装成功"
|
||||
fi
|
||||
|
||||
# 检查dbiprof命令是否支持-reverse参数
|
||||
LOG_INFO "检查dbiprof命令是否支持-reverse参数"
|
||||
if ! dbiprof --help 2>&1 | grep -q -- "-reverse"; then
|
||||
LOG_ERROR "dbiprof命令不支持-reverse参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的profile文件
|
||||
LOG_INFO "创建测试用的profile文件"
|
||||
cat > test_profile.txt << EOF
|
||||
# DBI Profile Data
|
||||
# 2024-01-01 00:00:00
|
||||
# Total time: 1.234567 seconds
|
||||
# Method, Calls, TotalTime, AvgTime
|
||||
execute, 10, 0.123456, 0.012345
|
||||
prepare, 5, 0.045678, 0.009135
|
||||
fetch, 20, 0.078901, 0.003945
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试profile文件失败"
|
||||
|
||||
# 测试使用-reverse参数反转排序顺序
|
||||
LOG_INFO "测试使用-reverse参数反转排序顺序"
|
||||
dbiprof --reverse test_profile.txt > output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行dbiprof --reverse命令失败"
|
||||
|
||||
# 验证输出包含预期的反转排序内容
|
||||
LOG_INFO "验证输出结果"
|
||||
if grep -q "fetch.*20.*0.078901" output.txt && grep -q "prepare.*5.*0.045678" output.txt && grep -q "execute.*10.*0.123456" output.txt; then
|
||||
LOG_INFO "输出结果符合反转排序预期"
|
||||
else
|
||||
LOG_ERROR "输出结果不符合反转排序预期"
|
||||
CHECK_RESULT 1 0 0 "输出验证失败"
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_profile.txt output.txt
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
LOG_INFO "perl-DBI-dbiprof卸载成功"
|
||||
else
|
||||
LOG_INFO "保持perl-DBI-dbiprof已安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,109 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-sort参数按指定字段排序
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用-sort参数按指定字段排序"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查perl-DBI-dbiprof软件包是否在yum源中"
|
||||
if ! dnf list available perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI-dbiprof软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查perl-DBI-dbiprof是否已安装"
|
||||
if rpm -q perl-DBI-dbiprof &>/dev/null; then
|
||||
LOG_INFO "perl-DBI-dbiprof已安装,测试后保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "perl-DBI-dbiprof未安装,将安装作为测试步骤"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
# 检查dbiprof命令是否存在
|
||||
LOG_INFO "检查dbiprof命令是否存在"
|
||||
if ! command -v dbiprof &>/dev/null; then
|
||||
LOG_ERROR "dbiprof命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查-sort参数是否支持
|
||||
LOG_INFO "检查-sort参数是否支持"
|
||||
if ! dbiprof --help 2>&1 | grep -q -- "-sort"; then
|
||||
LOG_ERROR "dbiprof命令不支持-sort参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试数据文件
|
||||
LOG_INFO "创建测试数据文件"
|
||||
cat > test_data.txt << EOF
|
||||
Query,Time,Calls
|
||||
SELECT * FROM users,0.5,10
|
||||
UPDATE accounts SET balance=100,1.2,5
|
||||
INSERT INTO logs VALUES ("test"),0.3,20
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试数据文件失败"
|
||||
|
||||
# 测试-sort参数按Time字段排序
|
||||
LOG_INFO "测试-sort参数按Time字段排序"
|
||||
dbiprof -sort Time test_data.txt > sorted_by_time.txt
|
||||
CHECK_RESULT $? 0 0 "使用-sort参数按Time字段排序失败"
|
||||
|
||||
# 验证排序结果
|
||||
LOG_INFO "验证排序结果"
|
||||
expected_order="INSERT INTO logs VALUES ("test")
|
||||
SELECT * FROM users
|
||||
UPDATE accounts SET balance=100"
|
||||
actual_order=$(awk -F"," "NR>1 {print $1}" sorted_by_time.txt | tr "\n" " " | sed "s/ $//")
|
||||
if [ "$(echo "$actual_order" | tr " " "\n")" != "$expected_order" ]; then
|
||||
LOG_ERROR "排序结果不符合预期"
|
||||
CHECK_RESULT 1 0 0 "排序验证失败"
|
||||
else
|
||||
LOG_INFO "排序结果验证成功"
|
||||
CHECK_RESULT 0 0 0 ""
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_data.txt sorted_by_time.txt
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
else
|
||||
LOG_INFO "保持perl-DBI-dbiprof安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用-sort参数按指定字段排序"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,106 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 组合使用-sort和-reverse参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试组合使用-sort和-reverse参数"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="perl-DBI-dbiprof"
|
||||
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在软件包${PACKAGE_NAME}"
|
||||
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包${PACKAGE_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查系统是否已安装${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
INSTALLED_BEFORE="yes"
|
||||
LOG_INFO "软件包${PACKAGE_NAME}已安装"
|
||||
else
|
||||
INSTALLED_BEFORE="no"
|
||||
LOG_INFO "软件包${PACKAGE_NAME}未安装,将进行安装"
|
||||
fi
|
||||
|
||||
if [[ ${INSTALLED_BEFORE} == "no" ]]; then
|
||||
LOG_INFO "步骤3: 安装软件包${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 验证dbiprof命令是否存在"
|
||||
if ! command -v dbiprof &>/dev/null; then
|
||||
LOG_ERROR "dbiprof命令未找到"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 检查dbiprof命令是否支持-sort参数"
|
||||
if ! dbiprof --help 2>&1 | grep -q -- "-sort"; then
|
||||
LOG_ERROR "dbiprof命令不支持-sort参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6: 检查dbiprof命令是否支持-reverse参数"
|
||||
if ! dbiprof --help 2>&1 | grep -q -- "-reverse"; then
|
||||
LOG_ERROR "dbiprof命令不支持-reverse参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7: 创建测试用的profile文件用于测试"
|
||||
TEST_PROFILE=$(mktemp /tmp/test_profile.XXXXXX)
|
||||
cat > ${TEST_PROFILE} << "EOF"
|
||||
# DBI::ProfileData
|
||||
Path: [ "main", "execute" ]
|
||||
Program: test.pl
|
||||
{
|
||||
"main::execute" => {
|
||||
"count" => 10,
|
||||
"total_time" => "0.500000"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试profile文件失败"
|
||||
|
||||
LOG_INFO "步骤8: 组合使用-sort和-reverse参数执行dbiprof命令"
|
||||
dbiprof -sort total_time -reverse ${TEST_PROFILE} > /tmp/dbiprof_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令执行失败"
|
||||
|
||||
LOG_INFO "步骤9: 验证输出结果非空"
|
||||
[[ -s /tmp/dbiprof_output.txt ]]
|
||||
CHECK_RESULT $? 0 0 "dbiprof命令未产生输出"
|
||||
|
||||
LOG_INFO "步骤10: 清理临时文件"
|
||||
rm -f ${TEST_PROFILE} /tmp/dbiprof_output.txt
|
||||
|
||||
if [[ ${INSTALLED_BEFORE} == "no" ]]; then
|
||||
LOG_INFO "步骤11: 卸载测试安装的软件包${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包${PACKAGE_NAME}失败"
|
||||
else
|
||||
LOG_INFO "步骤11: 保持软件包${PACKAGE_NAME}的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用-version参数打印版本号并退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "1. 检查perl-DBI-dbiprof软件包是否在yum源中"
|
||||
dnf list available perl-DBI-dbiprof > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包perl-DBI-dbiprof不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查dbiprof命令是否已安装"
|
||||
if command -v dbiprof > /dev/null 2>&1; then
|
||||
LOG_INFO "dbiprof命令已安装,标记为已存在安装"
|
||||
INSTALLED_BEFORE="true"
|
||||
else
|
||||
LOG_INFO "dbiprof命令未安装,标记为未安装"
|
||||
INSTALLED_BEFORE="false"
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "3. 安装perl-DBI-dbiprof软件包"
|
||||
dnf install -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI-dbiprof失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 验证dbiprof命令的-version参数"
|
||||
dbiprof -version > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "dbiprof命令不支持-version参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 执行dbiprof -version命令并检查输出"
|
||||
VERSION_OUTPUT=$(dbiprof -version 2>&1)
|
||||
CHECK_RESULT $? 0 0 "执行dbiprof -version失败"
|
||||
echo "$VERSION_OUTPUT" | grep -q "version"
|
||||
CHECK_RESULT $? 0 0 "版本输出中未找到version关键字"
|
||||
|
||||
LOG_INFO "6. 清理环境"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "卸载之前安装的perl-DBI-dbiprof软件包"
|
||||
dnf remove -y perl-DBI-dbiprof
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI-dbiprof失败"
|
||||
else
|
||||
LOG_INFO "环境已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,227 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 DBI->connect 数据库连接
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试DBI->connect数据库连接功能
|
||||
LOG_INFO "开始测试DBI->connect数据库连接功能"
|
||||
|
||||
# 检查Perl DBI模块是否已安装
|
||||
LOG_INFO "检查Perl DBI模块是否已安装"
|
||||
if rpm -q perl-DBI &>/dev/null; then
|
||||
LOG_INFO "Perl DBI模块已安装"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "Perl DBI模块未安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有perl-DBI软件包
|
||||
LOG_INFO "检查yum源中是否有perl-DBI软件包"
|
||||
if ! dnf list available perl-DBI &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装perl-DBI
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装perl-DBI软件包"
|
||||
dnf install -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI失败"
|
||||
fi
|
||||
|
||||
# 检查Perl是否已安装
|
||||
LOG_INFO "检查Perl是否已安装"
|
||||
if ! command -v perl &>/dev/null; then
|
||||
LOG_INFO "安装Perl"
|
||||
dnf install -y perl
|
||||
CHECK_RESULT $? 0 0 "安装Perl失败"
|
||||
fi
|
||||
|
||||
# 测试DBI->connect基本连接功能
|
||||
LOG_INFO "测试DBI->connect基本连接功能"
|
||||
cat > /tmp/test_dbi_connect.pl << "EOF"
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use DBI;
|
||||
|
||||
my $dbh;
|
||||
eval {
|
||||
# 尝试连接到内存中的SQLite数据库
|
||||
$dbh = DBI->connect("dbi:SQLite:dbname=:memory:", "", "", {
|
||||
PrintError => 0,
|
||||
RaiseError => 1
|
||||
});
|
||||
};
|
||||
|
||||
if ($@) {
|
||||
print "DBI连接失败: $@\n";
|
||||
exit 1;
|
||||
} else {
|
||||
print "DBI连接成功\n";
|
||||
|
||||
# 测试简单的SQL查询
|
||||
my $sth = $dbh->prepare("SELECT 1+1 as result");
|
||||
$sth->execute();
|
||||
|
||||
while (my @row = $sth->fetchrow_array()) {
|
||||
print "查询结果: @row\n";
|
||||
}
|
||||
|
||||
$sth->finish();
|
||||
$dbh->disconnect();
|
||||
exit 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 执行Perl测试脚本
|
||||
LOG_INFO "执行DBI连接测试脚本"
|
||||
perl /tmp/test_dbi_connect.pl
|
||||
CHECK_RESULT $? 0 0 "DBI->connect连接测试失败"
|
||||
|
||||
# 测试带参数的连接
|
||||
LOG_INFO "测试带参数的DBI连接"
|
||||
cat > /tmp/test_dbi_connect_params.pl << "EOF"
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use DBI;
|
||||
|
||||
my $dbh;
|
||||
eval {
|
||||
# 尝试连接到内存中的SQLite数据库,带更多参数
|
||||
$dbh = DBI->connect(
|
||||
"dbi:SQLite:dbname=:memory:",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
PrintError => 0,
|
||||
RaiseError => 1,
|
||||
AutoCommit => 1,
|
||||
ChopBlanks => 1,
|
||||
InactiveDestroy => 1
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
if ($@) {
|
||||
print "带参数DBI连接失败: $@\n";
|
||||
exit 1;
|
||||
} else {
|
||||
print "带参数DBI连接成功\n";
|
||||
|
||||
# 创建测试表
|
||||
$dbh->do("CREATE TABLE test (id INTEGER, name TEXT)");
|
||||
|
||||
# 插入测试数据
|
||||
my $sth = $dbh->prepare("INSERT INTO test (id, name) VALUES (?, ?)");
|
||||
$sth->execute(1, "test1");
|
||||
$sth->execute(2, "test2");
|
||||
|
||||
# 查询数据
|
||||
$sth = $dbh->prepare("SELECT * FROM test ORDER BY id");
|
||||
$sth->execute();
|
||||
|
||||
my $row_count = 0;
|
||||
while (my $row = $sth->fetchrow_hashref()) {
|
||||
$row_count++;
|
||||
print "行$row_count: id=$row->{id}, name=$row->{name}\n";
|
||||
}
|
||||
|
||||
$sth->finish();
|
||||
$dbh->disconnect();
|
||||
|
||||
if ($row_count == 2) {
|
||||
print "数据操作测试成功\n";
|
||||
exit 0;
|
||||
} else {
|
||||
print "数据操作测试失败,期望2行,实际$row_count行\n";
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# 执行带参数的连接测试
|
||||
LOG_INFO "执行带参数的DBI连接测试"
|
||||
perl /tmp/test_dbi_connect_params.pl
|
||||
CHECK_RESULT $? 0 0 "带参数DBI连接测试失败"
|
||||
|
||||
# 测试连接错误处理
|
||||
LOG_INFO "测试DBI连接错误处理"
|
||||
cat > /tmp/test_dbi_connect_error.pl << "EOF"
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use DBI;
|
||||
|
||||
my $dbh;
|
||||
eval {
|
||||
# 尝试连接到不存在的数据库文件
|
||||
$dbh = DBI->connect("dbi:SQLite:dbname=/tmp/nonexistent.db", "", "", {
|
||||
PrintError => 0,
|
||||
RaiseError => 1
|
||||
});
|
||||
};
|
||||
|
||||
if ($@) {
|
||||
print "连接错误处理测试成功: 正确捕获到错误\n";
|
||||
exit 0;
|
||||
} else {
|
||||
print "连接错误处理测试失败: 应该失败但实际成功了\n";
|
||||
$dbh->disconnect() if $dbh;
|
||||
exit 1;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 执行错误处理测试
|
||||
LOG_INFO "执行DBI连接错误处理测试"
|
||||
perl /tmp/test_dbi_connect_error.pl
|
||||
CHECK_RESULT $? 0 0 "DBI连接错误处理测试失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时测试文件"
|
||||
rm -f /tmp/test_dbi_connect.pl /tmp/test_dbi_connect_params.pl /tmp/test_dbi_connect_error.pl
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载测试安装的perl-DBI软件包"
|
||||
dnf remove -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI失败"
|
||||
|
||||
# 检查是否安装了Perl,如果是本次测试安装的则卸载
|
||||
if rpm -q perl &>/dev/null; then
|
||||
# 检查是否有其他依赖Perl的软件包
|
||||
if ! rpm -q --whatrequires perl | grep -v "^perl-" &>/dev/null; then
|
||||
LOG_INFO "卸载测试安装的Perl"
|
||||
dnf remove -y perl
|
||||
else
|
||||
LOG_INFO "有其他软件包依赖Perl,保留Perl安装"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
LOG_INFO "保持原有的perl-DBI安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "DBI->connect数据库连接功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,118 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试数据库连接断开
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试数据库连接断开
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="perl-DBI"
|
||||
|
||||
# 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "检查${PACKAGE_NAME}是否已安装"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
ALREADY_INSTALLED="true"
|
||||
LOG_INFO "${PACKAGE_NAME}已安装"
|
||||
else
|
||||
ALREADY_INSTALLED="false"
|
||||
LOG_INFO "${PACKAGE_NAME}未安装,将在测试中安装"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${ALREADY_INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
# 验证perl命令是否可用
|
||||
LOG_INFO "验证perl命令是否可用"
|
||||
which perl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "perl命令不可用"
|
||||
|
||||
# 验证DBI模块是否可用
|
||||
LOG_INFO "验证DBI模块是否可用"
|
||||
perl -e "use DBI;" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "DBI模块加载失败"
|
||||
|
||||
# 测试数据库连接断开功能
|
||||
LOG_INFO "测试数据库连接断开功能"
|
||||
# 创建一个简单的perl脚本测试连接和断开
|
||||
TEST_SCRIPT=$(mktemp /tmp/test_dbi_XXXXXX.pl)
|
||||
cat > ${TEST_SCRIPT} << "EOF"
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use DBI;
|
||||
|
||||
# 尝试连接到不存在的数据库(仅测试连接对象创建和断开)
|
||||
my $dbh;
|
||||
eval {
|
||||
# 尝试创建连接对象(使用无效连接字符串)
|
||||
$dbh = DBI->connect("dbi:mysql:database=nonexistent;host=localhost", "test", "test");
|
||||
};
|
||||
if ($@) {
|
||||
# 连接失败是预期的,因为数据库不存在
|
||||
print "连接失败(预期):$@\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if ($dbh) {
|
||||
# 如果连接成功,则断开连接
|
||||
$dbh->disconnect();
|
||||
print "连接已断开(预期)\n";
|
||||
exit(0);
|
||||
} else {
|
||||
print "连接对象未创建\n";
|
||||
exit(1);
|
||||
}
|
||||
EOF
|
||||
|
||||
# 执行测试脚本
|
||||
perl ${TEST_SCRIPT} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "数据库连接断开测试失败"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f ${TEST_SCRIPT}
|
||||
LOG_INFO "清理临时文件"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "恢复测试环境"
|
||||
if [ "${ALREADY_INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
else
|
||||
LOG_INFO "保持${PACKAGE_NAME}安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试执行简单 SQL 查询语句
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试执行简单 SQL 查询语句"
|
||||
|
||||
# 检查是否已安装 perl-DBI 包
|
||||
LOG_INFO "检查是否已安装 perl-DBI 包"
|
||||
rpm -q perl-DBI > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "perl-DBI 已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "perl-DBI 未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 perl-DBI 包
|
||||
LOG_INFO "检查 yum 源中是否有 perl-DBI 包"
|
||||
dnf list available perl-DBI > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 perl-DBI 包,退出"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 perl-DBI
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装 perl-DBI 包"
|
||||
dnf install -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "安装 perl-DBI 失败"
|
||||
fi
|
||||
|
||||
# 测试执行简单 SQL 查询语句
|
||||
LOG_INFO "测试执行简单 SQL 查询语句"
|
||||
perl -e "use DBI; my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:", "", "", {RaiseError => 1}); my $sth = $dbh->prepare("CREATE TABLE test (id INT, name TEXT)"); $sth->execute(); $sth = $dbh->prepare("INSERT INTO test VALUES (1, \"test\")"); $sth->execute(); $sth = $dbh->prepare("SELECT * FROM test"); $sth->execute(); my @row = $sth->fetchrow_array(); print "Result: @row\n"; $dbh->disconnect();"
|
||||
CHECK_RESULT $? 0 0 "执行简单 SQL 查询语句失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载 perl-DBI 包"
|
||||
dnf remove -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-DBI 失败"
|
||||
else
|
||||
LOG_INFO "保持 perl-DBI 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,122 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 fetchrow_array 等方法获取结果
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本开始
|
||||
|
||||
LOG_INFO "1. 检查测试环境是否已安装perl-DBI软件包"
|
||||
if dnf list installed perl-DBI &> /dev/null; then
|
||||
LOG_INFO "perl-DBI软件包已安装,测试结束后将保持安装状态"
|
||||
ENV_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "perl-DBI软件包未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
ENV_INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查yum源中是否存在perl-DBI软件包"
|
||||
if ! dnf list available perl-DBI &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "3. 检查fetchrow_array方法是否被支持"
|
||||
if ! perl -e "use DBI;" &> /dev/null; then
|
||||
LOG_ERROR "DBI模块未加载,无法检查fetchrow_array方法"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 安装perl-DBI软件包(如果未安装)"
|
||||
if [ "$ENV_INSTALLED" = false ]; then
|
||||
dnf install -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 创建测试Perl脚本,用于测试fetchrow_array等方法"
|
||||
cat > test_fetchrow.pl << "EOF"
|
||||
use strict;
|
||||
use warnings;
|
||||
use DBI;
|
||||
|
||||
my $dbh = DBI->connect("DBI:SQLite:dbname=:memory:", "", "", { RaiseError => 1, AutoCommit => 1 });
|
||||
|
||||
# 创建测试表
|
||||
$dbh->do("CREATE TABLE test_table (id INTEGER PRIMARY KEY, name TEXT)");
|
||||
|
||||
# 插入测试数据
|
||||
$dbh->do("INSERT INTO test_table (name) VALUES ("Alice")");
|
||||
$dbh->do("INSERT INTO test_table (name) VALUES ("Bob")");
|
||||
|
||||
# 测试fetchrow_array方法
|
||||
my $sth = $dbh->prepare("SELECT * FROM test_table");
|
||||
$sth->execute();
|
||||
|
||||
my @row = $sth->fetchrow_array();
|
||||
if (@row && $row[0] == 1 && $row[1] eq "Alice") {
|
||||
print "fetchrow_array方法测试通过\n";
|
||||
} else {
|
||||
print "fetchrow_array方法测试失败\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# 测试fetchrow_arrayref方法
|
||||
@row = ();
|
||||
$sth->execute();
|
||||
my $row_ref = $sth->fetchrow_arrayref();
|
||||
if ($row_ref && $row_ref->[0] == 1 && $row_ref->[1] eq "Alice") {
|
||||
print "fetchrow_arrayref方法测试通过\n";
|
||||
} else {
|
||||
print "fetchrow_arrayref方法测试失败\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# 测试fetchrow_hashref方法
|
||||
$sth->execute();
|
||||
my $hash_ref = $sth->fetchrow_hashref();
|
||||
if ($hash_ref && $hash_ref->{id} == 1 && $hash_ref->{name} eq "Alice") {
|
||||
print "fetchrow_hashref方法测试通过\n";
|
||||
} else {
|
||||
print "fetchrow_hashref方法测试失败\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
$dbh->disconnect();
|
||||
EOF
|
||||
|
||||
LOG_INFO "6. 执行Perl脚本测试fetchrow_array等方法"
|
||||
perl test_fetchrow.pl
|
||||
CHECK_RESULT $? 0 0 "fetchrow_array等方法测试失败"
|
||||
|
||||
LOG_INFO "7. 清理临时Perl脚本"
|
||||
rm -f test_fetchrow.pl
|
||||
|
||||
LOG_INFO "8. 恢复测试环境"
|
||||
if [ "$ENV_INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载在测试过程中安装的perl-DBI软件包"
|
||||
dnf remove -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI软件包失败"
|
||||
else
|
||||
LOG_INFO "测试环境已恢复,perl-DBI软件包保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,117 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 DBI 错误处理机制
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 初始化日志函数(如果未定义)
|
||||
if ! type LOG_INFO &>/dev/null; then
|
||||
LOG_INFO() { echo "[INFO] $*"; }
|
||||
fi
|
||||
if ! type LOG_ERROR &>/dev/null; then
|
||||
LOG_ERROR() { echo "[ERROR] $*"; }
|
||||
fi
|
||||
|
||||
# 检查DBI包是否在yum源中
|
||||
LOG_INFO "检查perl-DBI包是否在yum源中"
|
||||
if ! dnf list available perl-DBI &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到perl-DBI包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查perl-DBI是否已安装
|
||||
LOG_INFO "检查perl-DBI是否已安装"
|
||||
if rpm -q perl-DBI &>/dev/null; then
|
||||
LOG_INFO "perl-DBI已安装,标记为需要保持安装状态"
|
||||
KEEP_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "perl-DBI未安装,标记为需要测试安装"
|
||||
KEEP_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装perl-DBI
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装perl-DBI包"
|
||||
dnf install -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "安装perl-DBI失败"
|
||||
fi
|
||||
|
||||
# 测试DBI错误处理机制
|
||||
LOG_INFO "测试DBI错误处理机制:连接不存在的数据库"
|
||||
perl -e "
|
||||
use DBI;
|
||||
my $dbh = DBI->connect("dbi:mysql:database=nonexistentdb;host=127.0.0.1", "user", "pass", { RaiseError => 0, PrintError => 0 });
|
||||
if (!$dbh) {
|
||||
print "连接失败(预期):" . $DBI::errstr . "\n";
|
||||
exit 0;
|
||||
} else {
|
||||
print "连接成功(非预期)\n";
|
||||
exit 1;
|
||||
}
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "DBI错误处理机制测试失败:连接不存在的数据库未正确处理"
|
||||
|
||||
LOG_INFO "测试DBI错误处理机制:执行无效SQL语句"
|
||||
perl -e "
|
||||
use DBI;
|
||||
my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:", "", "", { RaiseError => 0, PrintError => 0 });
|
||||
if (!$dbh) {
|
||||
print "连接内存数据库失败:" . $DBI::errstr . "\n";
|
||||
exit 1;
|
||||
}
|
||||
my $sth = $dbh->prepare("INVALID SQL STATEMENT");
|
||||
if (!$sth) {
|
||||
print "准备语句失败(预期):" . $dbh->errstr . "\n";
|
||||
exit 0;
|
||||
} else {
|
||||
print "准备语句成功(非预期)\n";
|
||||
exit 1;
|
||||
}
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "DBI错误处理机制测试失败:执行无效SQL语句未正确处理"
|
||||
|
||||
LOG_INFO "测试DBI错误处理机制:捕获RaiseError异常"
|
||||
perl -e "
|
||||
use DBI;
|
||||
eval {
|
||||
my $dbh = DBI->connect("dbi:mysql:database=nonexistentdb;host=127.0.0.1", "user", "pass", { RaiseError => 1 });
|
||||
};
|
||||
if ($@) {
|
||||
print "捕获到异常(预期):$@\n";
|
||||
exit 0;
|
||||
} else {
|
||||
print "未捕获到异常(非预期)\n";
|
||||
exit 1;
|
||||
}
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "DBI错误处理机制测试失败:RaiseError异常未正确捕获"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载perl-DBI
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载perl-DBI包"
|
||||
dnf remove -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "卸载perl-DBI失败"
|
||||
else
|
||||
LOG_INFO "保持perl-DBI安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 prepare 和 execute 方法
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试 prepare 和 execute 方法"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="perl-DBI"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查系统是否已安装 $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试前安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 测试 prepare 和 execute 方法
|
||||
LOG_INFO "测试 prepare 和 execute 方法"
|
||||
# 创建一个简单的Perl脚本来测试DBI的prepare和execute
|
||||
TEST_SCRIPT="/tmp/test_dbi_prepare_execute.pl"
|
||||
cat > "$TEST_SCRIPT" << "EOF"
|
||||
use strict;
|
||||
use warnings;
|
||||
use DBI;
|
||||
|
||||
my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:", "", "", { RaiseError => 1, PrintError => 0 });
|
||||
my $sth = $dbh->prepare("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)");
|
||||
$sth->execute();
|
||||
$sth = $dbh->prepare("INSERT INTO test (name) VALUES (?)");
|
||||
$sth->execute("OpenEuler");
|
||||
$sth = $dbh->prepare("SELECT name FROM test WHERE id = ?");
|
||||
$sth->execute(1);
|
||||
my @row = $sth->fetchrow_array();
|
||||
if ($row[0] eq "OpenEuler") {
|
||||
print "SUCCESS\n";
|
||||
} else {
|
||||
print "FAILURE\n";
|
||||
}
|
||||
$dbh->disconnect();
|
||||
EOF
|
||||
|
||||
# 执行测试脚本
|
||||
LOG_INFO "执行Perl测试脚本"
|
||||
perl "$TEST_SCRIPT" > /tmp/test_output.txt
|
||||
CHECK_RESULT $? 0 0 "执行Perl测试脚本失败"
|
||||
|
||||
# 检查输出结果
|
||||
LOG_INFO "检查测试输出结果"
|
||||
if grep -q "SUCCESS" /tmp/test_output.txt; then
|
||||
LOG_INFO "prepare 和 execute 方法测试成功"
|
||||
else
|
||||
LOG_ERROR "prepare 和 execute 方法测试失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f "$TEST_SCRIPT" /tmp/test_output.txt
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试 prepare 和 execute 方法完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,116 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 begin_work 和 commit 事务
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 Perl DBI 模块的事务功能 (begin_work 和 commit)"
|
||||
|
||||
# 检查是否已安装 perl-DBI 包
|
||||
LOG_INFO "检查 perl-DBI 软件包是否已安装"
|
||||
if dnf list installed perl-DBI &>/dev/null; then
|
||||
LOG_INFO "perl-DBI 软件包已安装,测试完成后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "perl-DBI 软件包未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否存在 perl-DBI 包
|
||||
LOG_INFO "检查 yum 源中是否存在 perl-DBI 软件包"
|
||||
if ! dnf list available perl-DBI &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 perl-DBI 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 perl-DBI
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装 perl-DBI 软件包"
|
||||
dnf install -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "安装 perl-DBI 失败"
|
||||
fi
|
||||
|
||||
# 准备测试用的 Perl 脚本
|
||||
LOG_INFO "创建测试 Perl 脚本以验证事务功能"
|
||||
cat > test_transaction.pl << "EOF"
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use DBI;
|
||||
|
||||
my $dbh = DBI->connect("DBI:SQLite:dbname=:memory:", "", "", { AutoCommit => 0 });
|
||||
unless ($dbh) {
|
||||
die "无法连接数据库: $DBI::errstr";
|
||||
}
|
||||
|
||||
eval {
|
||||
$dbh->begin_work or die "无法开始事务: " . $dbh->errstr;
|
||||
|
||||
$dbh->do("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)");
|
||||
$dbh->do("INSERT INTO test (name) VALUES ("Alice")");
|
||||
$dbh->do("INSERT INTO test (name) VALUES ("Bob")");
|
||||
|
||||
$dbh->commit or die "提交事务失败: " . $dbh->errstr;
|
||||
|
||||
my $sth = $dbh->prepare("SELECT * FROM test");
|
||||
$sth->execute();
|
||||
my $rows = $sth->rows;
|
||||
print "插入的行数: $rows\n";
|
||||
|
||||
if ($rows == 2) {
|
||||
print "事务测试成功\n";
|
||||
exit 0;
|
||||
} else {
|
||||
die "事务测试失败,预期 2 行,实际 $rows 行";
|
||||
}
|
||||
};
|
||||
|
||||
if ($@) {
|
||||
$dbh->rollback;
|
||||
die "事务出错: $@";
|
||||
}
|
||||
|
||||
$dbh->disconnect;
|
||||
EOF
|
||||
|
||||
# 设置脚本执行权限
|
||||
chmod +x test_transaction.pl
|
||||
|
||||
# 执行测试脚本
|
||||
LOG_INFO "执行 Perl 脚本测试事务功能"
|
||||
perl test_transaction.pl
|
||||
CHECK_RESULT $? 0 0 "Perl DBI 事务测试失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_transaction.pl
|
||||
|
||||
# 如果测试前未安装,则卸载 perl-DBI
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载 perl-DBI 软件包"
|
||||
dnf remove -y perl-DBI
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-DBI 失败"
|
||||
else
|
||||
LOG_INFO "保持 perl-DBI 软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "Perl DBI 事务功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-12-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test shell detection functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 测试shell检测功能
|
||||
LOG_INFO "开始测试shell检测功能"
|
||||
|
||||
# 检查是否已安装python3-shellingham-help
|
||||
LOG_INFO "检查是否已安装python3-shellingham-help"
|
||||
dnf list installed python3-shellingham-help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-shellingham-help已安装,脚本结束后保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-shellingham-help未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-shellingham-help软件包
|
||||
LOG_INFO "检查yum源中是否有python3-shellingham-help软件包"
|
||||
dnf list available python3-shellingham-help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-shellingham-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-shellingham-help软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装python3-shellingham-help软件包"
|
||||
dnf install -y python3-shellingham-help
|
||||
CHECK_RESULT $? 0 0 "安装python3-shellingham-help失败"
|
||||
fi
|
||||
|
||||
# 测试shell检测功能
|
||||
LOG_INFO "测试shell检测功能"
|
||||
shell_detect_output=$(python3 -m shellingham --help)
|
||||
CHECK_RESULT $? 0 0 "执行shell检测命令失败"
|
||||
|
||||
# 验证参数是否存在或不支持
|
||||
LOG_INFO "验证参数是否存在或不支持"
|
||||
if [[ "$shell_detect_output" != *"--help"* ]]; then
|
||||
LOG_ERROR "参数--help不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-shellingham-help软件包"
|
||||
dnf remove -y python3-shellingham-help
|
||||
CHECK_RESULT $? 0 0 "卸载python3-shellingham-help失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,139 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-23
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test saving or loading drive config
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断smartmontools是否已安装
|
||||
LOG_INFO "检查smartmontools是否已安装"
|
||||
rpm -q smartmontools > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
# 如果未安装则进行安装
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "smartmontools未安装,准备安装"
|
||||
# 检查yum源中是否有smartmontools软件包
|
||||
LOG_INFO "检查yum源中是否有smartmontools软件包"
|
||||
dnf list available smartmontools > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到smartmontools软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到smartmontools软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "安装smartmontools"
|
||||
dnf install -y smartmontools > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装smartmontools失败"
|
||||
LOG_INFO "smartmontools安装成功"
|
||||
fi
|
||||
|
||||
# 测试保存驱动器配置
|
||||
LOG_INFO "测试保存驱动器配置功能"
|
||||
# 首先获取一个可用的磁盘设备
|
||||
disk_device=$(lsblk -d -n -o NAME | head -1)
|
||||
if [ -z "$disk_device" ]; then
|
||||
LOG_ERROR "未找到可用的磁盘设备"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
full_device="/dev/${disk_device}"
|
||||
LOG_INFO "使用磁盘设备: ${full_device}"
|
||||
|
||||
# 检查smartctl是否支持--save参数
|
||||
LOG_INFO "检查smartctl是否支持--save参数"
|
||||
smartctl --help | grep -q "\-\-save"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "smartctl不支持--save参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建临时配置文件路径
|
||||
temp_config="/tmp/smart_config_${disk_device}.cfg"
|
||||
LOG_INFO "创建临时配置文件: ${temp_config}"
|
||||
|
||||
# 尝试保存驱动器配置
|
||||
LOG_INFO "执行保存驱动器配置命令"
|
||||
smartctl --save ${full_device} > ${temp_config} 2>&1
|
||||
save_result=$?
|
||||
|
||||
# 检查保存操作结果
|
||||
if [ $save_result -eq 0 ]; then
|
||||
LOG_INFO "保存驱动器配置成功"
|
||||
# 检查配置文件是否非空
|
||||
if [ -s "${temp_config}" ]; then
|
||||
LOG_INFO "配置文件已保存且非空"
|
||||
else
|
||||
LOG_INFO "配置文件已保存但为空"
|
||||
fi
|
||||
elif [ $save_result -eq 4 ]; then
|
||||
LOG_INFO "设备不支持保存配置功能,这是预期行为"
|
||||
else
|
||||
LOG_ERROR "保存驱动器配置失败,退出码: ${save_result}"
|
||||
CHECK_RESULT ${save_result} 0 0 "保存驱动器配置失败"
|
||||
fi
|
||||
|
||||
# 测试加载驱动器配置
|
||||
LOG_INFO "测试加载驱动器配置功能"
|
||||
# 检查smartctl是否支持--load参数
|
||||
LOG_INFO "检查smartctl是否支持--load参数"
|
||||
smartctl --help | grep -q "\-\-load"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "smartctl不支持--load参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 尝试加载驱动器配置(如果配置文件存在且非空)
|
||||
if [ -s "${temp_config}" ]; then
|
||||
LOG_INFO "执行加载驱动器配置命令"
|
||||
smartctl --load ${full_device} < ${temp_config} 2>&1
|
||||
load_result=$?
|
||||
|
||||
if [ $load_result -eq 0 ]; then
|
||||
LOG_INFO "加载驱动器配置成功"
|
||||
elif [ $load_result -eq 4 ]; then
|
||||
LOG_INFO "设备不支持加载配置功能,这是预期行为"
|
||||
else
|
||||
LOG_ERROR "加载驱动器配置失败,退出码: ${load_result}"
|
||||
CHECK_RESULT ${load_result} 0 0 "加载驱动器配置失败"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "配置文件为空或不存在,跳过加载测试"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
if [ -f "${temp_config}" ]; then
|
||||
rm -f "${temp_config}"
|
||||
LOG_INFO "临时文件已清理"
|
||||
fi
|
||||
|
||||
# 如果脚本开始时未安装smartmontools,则在结束时卸载
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "卸载smartmontools"
|
||||
dnf remove -y smartmontools > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载smartmontools失败"
|
||||
LOG_INFO "smartmontools已卸载"
|
||||
else
|
||||
LOG_INFO "保持smartmontools安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-02-23
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test reading drive error logs
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:读取驱动器错误日志"
|
||||
LOG_INFO "步骤1:检查smartmontools软件包是否在yum源中"
|
||||
if ! dnf list available smartmontools &>/dev/null; then
|
||||
LOG_ERROR "smartmontools软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查当前是否已安装smartmontools"
|
||||
if rpm -q smartmontools &>/dev/null; then
|
||||
LOG_INFO "smartmontools已安装,标记为保持安装状态"
|
||||
KEEP_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "smartmontools未安装,将在测试中安装"
|
||||
KEEP_INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$KEEP_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装smartmontools软件包"
|
||||
dnf install -y smartmontools
|
||||
CHECK_RESULT $? 0 0 "安装smartmontools失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查smartctl命令的--log=error参数是否支持"
|
||||
if ! smartctl --help | grep -q "\-\-log=error"; then
|
||||
LOG_ERROR "smartctl命令不支持--log=error参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:获取系统第一个磁盘设备"
|
||||
DISK_DEVICE=$(lsblk -d -o NAME,TYPE | grep disk | head -1 | awk "{print $1}")
|
||||
if [ -z "$DISK_DEVICE" ]; then
|
||||
LOG_ERROR "未找到磁盘设备"
|
||||
CHECK_RESULT 1 0 1 "未找到磁盘设备"
|
||||
fi
|
||||
DISK_PATH="/dev/$DISK_DEVICE"
|
||||
LOG_INFO "使用磁盘设备:$DISK_PATH"
|
||||
|
||||
LOG_INFO "步骤6:执行smartctl --log=error命令读取错误日志"
|
||||
smartctl --log=error "$DISK_PATH"
|
||||
CHECK_RESULT $? 0 0 "读取驱动器错误日志失败"
|
||||
|
||||
LOG_INFO "步骤7:清理环境"
|
||||
if [ "$KEEP_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载smartmontools软件包"
|
||||
dnf remove -y smartmontools
|
||||
CHECK_RESULT $? 0 0 "卸载smartmontools失败"
|
||||
else
|
||||
LOG_INFO "保持smartmontools安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-23
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test accessing the manual page for smartmontools-help
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="smartmontools"
|
||||
MAN_PAGE_COMMAND="man smartmontools"
|
||||
|
||||
# 判断yum源中是否有smartmontools软件包
|
||||
LOG_INFO "检查yum源中是否有 $PACKAGE_NAME 软件包"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在 $PACKAGE_NAME 软件包"
|
||||
|
||||
# 检查当前是否已安装smartmontools
|
||||
LOG_INFO "检查当前是否已安装 $PACKAGE_NAME"
|
||||
rpm -q $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,标记为保持安装状态"
|
||||
KEEP_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试过程中安装"
|
||||
KEEP_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "$PACKAGE_NAME 安装成功"
|
||||
fi
|
||||
|
||||
# 检查man命令是否存在
|
||||
LOG_INFO "检查 man 命令是否存在"
|
||||
which man &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "man 命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "man 命令存在"
|
||||
|
||||
# 检查smartmontools的man page是否存在
|
||||
LOG_INFO "检查 $MAN_PAGE_COMMAND 是否存在"
|
||||
$MAN_PAGE_COMMAND &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "$MAN_PAGE_COMMAND 不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "$MAN_PAGE_COMMAND 存在"
|
||||
|
||||
# 执行测试:访问smartmontools的man page
|
||||
LOG_INFO "执行测试:访问 $MAN_PAGE_COMMAND"
|
||||
$MAN_PAGE_COMMAND &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "访问 $MAN_PAGE_COMMAND 失败"
|
||||
LOG_INFO "成功访问 $MAN_PAGE_COMMAND"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $KEEP_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 "$@"
|
||||
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-23
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test initiating a drive self-test
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test initiating a drive self-test"
|
||||
|
||||
LOG_INFO "步骤1: 检查smartmontools软件包是否在yum源中"
|
||||
if ! dnf list available smartmontools &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有smartmontools软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查当前是否已安装smartmontools"
|
||||
if rpm -q smartmontools &>/dev/null; then
|
||||
LOG_INFO "smartmontools已安装,测试后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "smartmontools未安装,将在测试中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装smartmontools软件包"
|
||||
dnf install -y smartmontools
|
||||
CHECK_RESULT $? 0 0 "安装smartmontools失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查smartctl命令是否支持--test选项"
|
||||
smartctl --help | grep -q "\-\-test"
|
||||
CHECK_RESULT $? 0 0 "smartctl命令不支持--test参数" 255
|
||||
|
||||
LOG_INFO "步骤5: 获取第一个可用磁盘设备"
|
||||
DISK_DEVICE=$(lsblk -d -o NAME,TYPE | grep disk | head -1 | awk "{print "/dev/"$1}")
|
||||
if [ -z "$DISK_DEVICE" ]; then
|
||||
LOG_ERROR "未找到可用磁盘设备"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "使用磁盘设备: $DISK_DEVICE"
|
||||
|
||||
LOG_INFO "步骤6: 执行磁盘自检"
|
||||
smartctl --test=short $DISK_DEVICE
|
||||
CHECK_RESULT $? 0 0 "执行磁盘自检失败"
|
||||
|
||||
LOG_INFO "步骤7: 检查自检是否启动成功"
|
||||
sleep 5
|
||||
smartctl -a $DISK_DEVICE | grep -q "Self-test execution status:.*in progress"
|
||||
CHECK_RESULT $? 0 0 "磁盘自检未成功启动"
|
||||
|
||||
LOG_INFO "步骤8: 等待自检完成"
|
||||
for i in {1..60}; do
|
||||
smartctl -a $DISK_DEVICE | grep -q "Self-test execution status:.*completed"
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "磁盘自检已完成"
|
||||
break
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
|
||||
smartctl -a $DISK_DEVICE | grep -q "Self-test execution status:.*completed"
|
||||
CHECK_RESULT $? 0 0 "磁盘自检未在指定时间内完成"
|
||||
|
||||
LOG_INFO "步骤9: 检查自检结果"
|
||||
smartctl -a $DISK_DEVICE | grep -q "SMART overall-health self-assessment test result: PASSED"
|
||||
CHECK_RESULT $? 0 0 "磁盘自检结果异常"
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤10: 清理环境,卸载smartmontools"
|
||||
dnf remove -y smartmontools
|
||||
CHECK_RESULT $? 0 0 "卸载smartmontools失败"
|
||||
else
|
||||
LOG_INFO "步骤10: 保持smartmontools安装状态,跳过卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test initiating a drive self-test"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-23
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test checking the version of smartmontools-help
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已安装smartmontools
|
||||
LOG_INFO "检查smartmontools是否已安装"
|
||||
rpm -q smartmontools > /dev/null 2>&1
|
||||
is_installed=$?
|
||||
|
||||
# 记录初始安装状态
|
||||
initial_installed=$is_installed
|
||||
|
||||
# 检查yum源中是否有smartmontools软件包
|
||||
LOG_INFO "检查yum源中是否有smartmontools软件包"
|
||||
dnf list available smartmontools > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到smartmontools软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $is_installed -ne 0 ]; then
|
||||
LOG_INFO "安装smartmontools软件包"
|
||||
dnf install -y smartmontools > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装smartmontools失败"
|
||||
fi
|
||||
|
||||
# 测试smartctl --version命令
|
||||
LOG_INFO "测试smartctl --version命令"
|
||||
smartctl --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "smartctl --version命令执行失败"
|
||||
|
||||
# 测试smartctl --help命令
|
||||
LOG_INFO "测试smartctl --help命令"
|
||||
smartctl --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "smartctl --help命令执行失败"
|
||||
|
||||
# 测试smartctl -V命令(版本信息)
|
||||
LOG_INFO "测试smartctl -V命令"
|
||||
smartctl -V > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "smartctl -V命令执行失败"
|
||||
|
||||
# 测试不存在的参数
|
||||
LOG_INFO "测试smartctl不存在的参数--invalid-param"
|
||||
smartctl --invalid-param > /dev/null 2>&1
|
||||
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
|
||||
LOG_ERROR "不存在的参数未返回预期错误码"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试smartctl不支持的参数--unsupported-option"
|
||||
smartctl --unsupported-option > /dev/null 2>&1
|
||||
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
|
||||
LOG_ERROR "不支持的参数未返回预期错误码"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ $initial_installed -ne 0 ]; then
|
||||
LOG_INFO "卸载smartmontools软件包"
|
||||
dnf remove -y smartmontools > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载smartmontools失败"
|
||||
else
|
||||
LOG_INFO "保持smartmontools已安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-09-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查texlive-chess-doc软件包是否已安装
|
||||
LOG_INFO "检查texlive-chess-doc软件包是否已安装"
|
||||
rpm -q texlive-chess-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-chess-doc软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-chess-doc软件包未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-chess-doc软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-chess-doc软件包"
|
||||
dnf list available texlive-chess-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-chess-doc软件包"
|
||||
|
||||
# 安装texlive-chess-doc软件包
|
||||
LOG_INFO "安装texlive-chess-doc软件包"
|
||||
dnf install -y texlive-chess-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-chess-doc软件包失败"
|
||||
|
||||
# 验证软件包是否成功安装
|
||||
LOG_INFO "验证texlive-chess-doc软件包是否成功安装"
|
||||
rpm -q texlive-chess-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-chess-doc软件包未成功安装"
|
||||
|
||||
# 测试完成后根据初始状态决定是否卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-chess-doc软件包"
|
||||
dnf remove -y texlive-chess-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-chess-doc软件包失败"
|
||||
|
||||
# 验证软件包是否成功卸载
|
||||
LOG_INFO "验证texlive-chess-doc软件包是否成功卸载"
|
||||
rpm -q texlive-chess-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "texlive-chess-doc软件包未成功卸载"
|
||||
else
|
||||
LOG_INFO "保持texlive-chess-doc软件包已安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,101 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-20
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test documentation content validity
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试文档内容有效性"
|
||||
|
||||
# 步骤1: 检查软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否存在texlive-colorwav-doc软件包"
|
||||
dnf list available texlive-colorwav-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-colorwav-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查当前是否已安装软件包
|
||||
LOG_INFO "检查当前是否已安装texlive-colorwav-doc软件包"
|
||||
rpm -q texlive-colorwav-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
already_installed=true
|
||||
LOG_INFO "软件包已安装,测试完成后将保持安装状态"
|
||||
else
|
||||
already_installed=false
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
fi
|
||||
|
||||
# 步骤3: 安装软件包(如果未安装)
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "开始安装texlive-colorwav-doc软件包"
|
||||
dnf install -y texlive-colorwav-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-colorwav-doc软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 测试文档内容有效性
|
||||
LOG_INFO "测试文档内容有效性"
|
||||
# 这里假设texlive-colorwav-doc软件包包含的文档文件在/usr/share/doc/texlive-colorwav-doc/目录下
|
||||
if [ -d "/usr/share/doc/texlive-colorwav-doc/" ]; then
|
||||
LOG_INFO "检查文档目录是否存在"
|
||||
CHECK_RESULT $? 0 0 "文档目录不存在"
|
||||
|
||||
# 检查文档文件是否为空
|
||||
LOG_INFO "检查文档文件是否为空"
|
||||
doc_files=$(find /usr/share/doc/texlive-colorwav-doc/ -type f -name "*.txt" -o -name "*.pdf" -o -name "*.html" 2>/dev/null | head -5)
|
||||
if [ -z "$doc_files" ]; then
|
||||
LOG_ERROR "未找到文档文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查文档文件是否可读
|
||||
LOG_INFO "检查文档文件是否可读"
|
||||
for file in $doc_files; do
|
||||
if [ -r "$file" ]; then
|
||||
LOG_INFO "文档文件 $file 可读"
|
||||
else
|
||||
LOG_ERROR "文档文件 $file 不可读"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查文档内容是否包含特定关键词(假设关键词为"color"和"wave")
|
||||
LOG_INFO "检查文档内容是否包含关键词"
|
||||
for file in $doc_files; do
|
||||
if grep -q -i "color" "$file" 2>/dev/null || grep -q -i "wave" "$file" 2>/dev/null; then
|
||||
LOG_INFO "文档文件 $file 包含相关关键词"
|
||||
else
|
||||
LOG_INFO "文档文件 $file 不包含相关关键词,但继续测试"
|
||||
fi
|
||||
done
|
||||
else
|
||||
LOG_ERROR "文档目录不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5: 清理环境(如果测试前未安装)
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-colorwav-doc软件包"
|
||||
dnf remove -y texlive-colorwav-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-colorwav-doc软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:文档内容有效性测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,83 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-20
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package version info
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试软件包版本信息
|
||||
LOG_INFO "开始测试 texlive-colorwav-doc 软件包版本信息"
|
||||
|
||||
# 初始化变量
|
||||
PACKAGE_NAME="texlive-colorwav-doc"
|
||||
INSTALLED_FLAG=0
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "步骤1: 检查软件包是否已安装"
|
||||
if rpm -q $PACKAGE_NAME &> /dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2: 检查yum源中是否有 $PACKAGE_NAME 软件包"
|
||||
if ! dnf list available $PACKAGE_NAME &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
|
||||
fi
|
||||
|
||||
# 测试软件包版本信息
|
||||
LOG_INFO "步骤4: 测试软件包版本信息"
|
||||
rpm -q $PACKAGE_NAME --queryformat="%{VERSION}-%{RELEASE}"
|
||||
CHECK_RESULT $? 0 0 "获取 $PACKAGE_NAME 版本信息失败"
|
||||
|
||||
# 获取版本信息并验证
|
||||
VERSION_INFO=$(rpm -q $PACKAGE_NAME --queryformat="%{VERSION}-%{RELEASE}")
|
||||
if [ -z "$VERSION_INFO" ]; then
|
||||
LOG_ERROR "获取到的版本信息为空"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 版本信息: $VERSION_INFO"
|
||||
LOG_INFO "版本信息测试通过"
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "步骤5: 清理测试环境"
|
||||
if [ $INSTALLED_FLAG -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 "$@"
|
||||
@@ -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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of texlive-outliner
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 texlive-outliner 的基本功能"
|
||||
|
||||
# 检查是否已安装 texlive-outliner
|
||||
LOG_INFO "检查 texlive-outliner 是否已安装"
|
||||
dnf list installed texlive-outliner > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-outliner 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-outliner 未安装,将在测试结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 texlive-outliner
|
||||
LOG_INFO "检查 yum 源中是否有 texlive-outliner"
|
||||
dnf list available texlive-outliner > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-outliner,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 texlive-outliner
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装 texlive-outliner"
|
||||
dnf install -y texlive-outliner
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-outliner 失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试 texlive-outliner 的基本功能"
|
||||
texlive-outliner --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-outliner 基本功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载 texlive-outliner"
|
||||
dnf remove -y texlive-outliner
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-outliner失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user