diff --git a/suite2cases/function_test/pkg_test/nss/nss-softokn-devel.json b/suite2cases/function_test/pkg_test/nss/nss-softokn-devel.json index 805c5c3ca48..5743596018e 100644 --- a/suite2cases/function_test/pkg_test/nss/nss-softokn-devel.json +++ b/suite2cases/function_test/pkg_test/nss/nss-softokn-devel.json @@ -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": "测试基础编译功能是否正常" } ] } \ No newline at end of file diff --git a/suite2cases/function_test/pkg_test/openssh/pam_ssh_agent_auth.json b/suite2cases/function_test/pkg_test/openssh/pam_ssh_agent_auth.json index a4c98b361ed..86dad59f57f 100644 --- a/suite2cases/function_test/pkg_test/openssh/pam_ssh_agent_auth.json +++ b/suite2cases/function_test/pkg_test/openssh/pam_ssh_agent_auth.json @@ -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的集成认证" } ] } \ No newline at end of file diff --git a/suite2cases/function_test/pkg_test/perl-DBI/perl-DBI.json b/suite2cases/function_test/pkg_test/perl-DBI/perl-DBI.json index 6249634aa35..7f52ffb15b0 100644 --- a/suite2cases/function_test/pkg_test/perl-DBI/perl-DBI.json +++ b/suite2cases/function_test/pkg_test/perl-DBI/perl-DBI.json @@ -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": "测试数据库连接断开" } ] } \ No newline at end of file diff --git a/suite2cases/function_test/pkg_test/python-shellingham/python-shellingham-help.json b/suite2cases/function_test/pkg_test/python-shellingham/python-shellingham-help.json deleted file mode 100644 index 9ffdb5d101e..00000000000 --- a/suite2cases/function_test/pkg_test/python-shellingham/python-shellingham-help.json +++ /dev/null @@ -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" - } - ] -} \ No newline at end of file diff --git a/suite2cases/function_test/pkg_test/smartmontools/smartmontools-help.json b/suite2cases/function_test/pkg_test/smartmontools/smartmontools-help.json index 7d93b0e5e63..9dbfbbcd544 100644 --- a/suite2cases/function_test/pkg_test/smartmontools/smartmontools-help.json +++ b/suite2cases/function_test/pkg_test/smartmontools/smartmontools-help.json @@ -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" } ] } \ No newline at end of file diff --git a/suite2cases/function_test/pkg_test/texlive-split-d/texlive-chess-doc.json b/suite2cases/function_test/pkg_test/texlive-split-d/texlive-chess-doc.json deleted file mode 100644 index 2a0b535cf64..00000000000 --- a/suite2cases/function_test/pkg_test/texlive-split-d/texlive-chess-doc.json +++ /dev/null @@ -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" - } - ] -} \ No newline at end of file diff --git a/suite2cases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc.json b/suite2cases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc.json index e4d8b25fdbf..a210ffec667 100644 --- a/suite2cases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc.json +++ b/suite2cases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc.json @@ -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" } ] } \ No newline at end of file diff --git a/suite2cases/function_test/pkg_test/texlive-split-q/texlive-outliner.json b/suite2cases/function_test/pkg_test/texlive-split-q/texlive-outliner.json deleted file mode 100644 index fea7406e90d..00000000000 --- a/suite2cases/function_test/pkg_test/texlive-split-q/texlive-outliner.json +++ /dev/null @@ -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" - } - ] -} \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_basic_compile.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_basic_compile.sh deleted file mode 100644 index c4490fc04e5..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_basic_compile.sh +++ /dev/null @@ -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 - #include - 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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_file_existence.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_file_existence.sh deleted file mode 100644 index 2aa91e05749..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_file_existence.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_include_headers.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_include_headers.sh deleted file mode 100644 index 782c2e6268b..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_include_headers.sh +++ /dev/null @@ -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 - #include - #include - - 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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_linking.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_linking.sh deleted file mode 100644 index ede2b9dd45c..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_function_linking.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_freebl3.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_freebl3.sh deleted file mode 100644 index c9c86e627ac..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_freebl3.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_libdir.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_libdir.sh deleted file mode 100644 index 3bee6116787..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_libdir.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_libs.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_libs.sh deleted file mode 100644 index 9b1eaa6daad..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_libs.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_nssdbm3.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_nssdbm3.sh deleted file mode 100644 index d40d09f9a75..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_nssdbm3.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_prefix.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_prefix.sh deleted file mode 100644 index 2afa20d9c11..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_prefix.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_softokn3.sh b/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_softokn3.sh deleted file mode 100644 index 6bdd7f49b0f..00000000000 --- a/testcases/function_test/pkg_test/nss/nss-softokn-devel/test_nss-softokn-devel_nss-softokn-config_softokn3.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_agent_env.sh b/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_agent_env.sh deleted file mode 100644 index 7f3e13ae951..00000000000 --- a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_agent_env.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_basic_usage.sh b/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_basic_usage.sh deleted file mode 100644 index 507f924a2dd..00000000000 --- a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_basic_usage.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_config.sh b/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_config.sh deleted file mode 100644 index 23a4abcb712..00000000000 --- a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_config.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_sudo_integration.sh b/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_sudo_integration.sh deleted file mode 100644 index c4559ba19e5..00000000000 --- a/testcases/function_test/pkg_test/openssh/pam_ssh_agent_auth/test_pam_ssh_agent_auth_function_sudo_integration.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_d.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_d.sh deleted file mode 100644 index 6544e1e0530..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_d.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_i.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_i.sh deleted file mode 100644 index a82ceffc5ab..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_i.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_o.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_o.sh deleted file mode 100644 index c90d636cc1e..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_o.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_v.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_v.sh deleted file mode 100644 index 146d3f01821..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbilogstrip__upper_v.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_case_sensitive.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_case_sensitive.sh deleted file mode 100644 index 663202e46ce..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_case_sensitive.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_custom_file.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_custom_file.sh deleted file mode 100644 index a6784101cd6..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_custom_file.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_default_file.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_default_file.sh deleted file mode 100644 index 1447eebc556..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_default_file.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_delete.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_delete.sh deleted file mode 100644 index 1cc84411757..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_delete.sh +++ /dev/null @@ -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 </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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_exclude_case_sensitive.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_exclude_case_sensitive.sh deleted file mode 100644 index 7e5994ad9ed..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_exclude_case_sensitive.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_file_number_sort.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_file_number_sort.sh deleted file mode 100644 index 9323bda3d0e..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_file_number_sort.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_help.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_help.sh deleted file mode 100644 index b2a6dfb1919..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_help.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match.sh deleted file mode 100644 index 9e8c9b34592..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_case_sensitive.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_case_sensitive.sh deleted file mode 100644 index 22a398ffd6e..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_case_sensitive.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_exclude.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_exclude.sh deleted file mode 100644 index 306b140184f..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_exclude.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_exclude_case_sensitive.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_exclude_case_sensitive.sh deleted file mode 100644 index 596f18a13b6..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_match_exclude_case_sensitive.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number.sh deleted file mode 100644 index c443ca06b10..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_reverse.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_reverse.sh deleted file mode 100644 index fa7a9dcba52..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_reverse.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_sort.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_sort.sh deleted file mode 100644 index 81199fcd543..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_sort.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_sort_reverse.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_sort_reverse.sh deleted file mode 100644 index 4bb62003e0c..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_number_sort_reverse.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_reverse.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_reverse.sh deleted file mode 100644 index f31cb1029c7..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_reverse.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_sort.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_sort.sh deleted file mode 100644 index e842dc1cc9a..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_sort.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_sort_reverse.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_sort_reverse.sh deleted file mode 100644 index bf168de52e3..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_sort_reverse.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_version.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_version.sh deleted file mode 100644 index 08332248e3b..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_dbiprof_version.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_core_connect.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_core_connect.sh deleted file mode 100644 index abc83c85553..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_core_connect.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_disconnect.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_disconnect.sh deleted file mode 100644 index e022a073120..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_disconnect.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_execute_query.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_execute_query.sh deleted file mode 100644 index 6314685e6de..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_execute_query.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_fetch_results.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_fetch_results.sh deleted file mode 100644 index 96f18789032..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_fetch_results.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_handle_errors.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_handle_errors.sh deleted file mode 100644 index 259d7dc750b..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_handle_errors.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_prepare_execute.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_prepare_execute.sh deleted file mode 100644 index 9f5df7806a7..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_prepare_execute.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_transaction.sh b/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_transaction.sh deleted file mode 100644 index 1dc09a3a511..00000000000 --- a/testcases/function_test/pkg_test/perl-DBI/perl-DBI/test_perl-DBI_function_transaction.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/python-shellingham/python-shellingham-help/test_python-shellingham-help_function_detect.sh b/testcases/function_test/pkg_test/python-shellingham/python-shellingham-help/test_python-shellingham-help_function_detect.sh deleted file mode 100644 index 4708ad7d540..00000000000 --- a/testcases/function_test/pkg_test/python-shellingham/python-shellingham-help/test_python-shellingham-help_function_detect.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_config.sh b/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_config.sh deleted file mode 100644 index f03dcc3063e..00000000000 --- a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_config.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_error_log.sh b/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_error_log.sh deleted file mode 100644 index e4865781e64..00000000000 --- a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_error_log.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_man_page.sh b/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_man_page.sh deleted file mode 100644 index 15a293601bf..00000000000 --- a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_man_page.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_self_test.sh b/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_self_test.sh deleted file mode 100644 index d35186b26ac..00000000000 --- a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_self_test.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_version.sh b/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_version.sh deleted file mode 100644 index 0906a217e8f..00000000000 --- a/testcases/function_test/pkg_test/smartmontools/smartmontools-help/test_smartmontools-help_function_version.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/texlive-split-d/texlive-chess-doc/test_texlive-chess-doc_function_install.sh b/testcases/function_test/pkg_test/texlive-split-d/texlive-chess-doc/test_texlive-chess-doc_function_install.sh deleted file mode 100644 index 40d9d040eb4..00000000000 --- a/testcases/function_test/pkg_test/texlive-split-d/texlive-chess-doc/test_texlive-chess-doc_function_install.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc/test_texlive-colorwav-doc_function_doc_content.sh b/testcases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc/test_texlive-colorwav-doc_function_doc_content.sh deleted file mode 100644 index 0af6f3728b9..00000000000 --- a/testcases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc/test_texlive-colorwav-doc_function_doc_content.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc/test_texlive-colorwav-doc_function_version.sh b/testcases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc/test_texlive-colorwav-doc_function_version.sh deleted file mode 100644 index afca3193ee7..00000000000 --- a/testcases/function_test/pkg_test/texlive-split-e/texlive-colorwav-doc/test_texlive-colorwav-doc_function_version.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file diff --git a/testcases/function_test/pkg_test/texlive-split-q/texlive-outliner/test_texlive-outliner_function_basic.sh b/testcases/function_test/pkg_test/texlive-split-q/texlive-outliner/test_texlive-outliner_function_basic.sh deleted file mode 100644 index 9ec3ec3da05..00000000000 --- a/testcases/function_test/pkg_test/texlive-split-q/texlive-outliner/test_texlive-outliner_function_basic.sh +++ /dev/null @@ -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 "$@" \ No newline at end of file