This commit is contained in:
2026-04-23 03:19:15 +08:00
115 changed files with 0 additions and 8556 deletions

View File

@@ -2,33 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/R/R-R.devices",
"machine num": 1,
"cases": [
{
"name": "test_R-devices_function_pdf",
"desc": "测试pdf()函数验证其能否成功创建PDF格式的图形输出文件。"
},
{
"name": "test_R-devices_function_png",
"desc": "测试png()函数验证其能否成功创建PNG格式的图形输出文件。"
},
{
"name": "test_R-devices_function_jpeg",
"desc": "测试jpeg()函数验证其能否成功创建JPEG格式的图形输出文件。"
},
{
"name": "test_R-devices_function_dev_cur",
"desc": "测试dev.cur()函数,验证其能否正确返回当前活动图形设备的编号。"
},
{
"name": "test_R-devices_function_dev_list",
"desc": "测试dev.list()函数,验证其能否正确列出所有已打开的图形设备。"
},
{
"name": "test_R-devices_function_dev_set",
"desc": "测试dev.set()函数,验证其能否将指定编号的图形设备设置为当前活动设备。"
},
{
"name": "test_R-devices_function_dev_copy",
"desc": "测试dev.copy()函数,验证其能否将当前图形复制到另一个设备。"
}
]
}

View File

@@ -26,29 +26,9 @@
"name": "test_bzip2-help_function_verify_path",
"desc": "测试软件包安装的帮助文档是否位于标准系统路径(如/usr/share/doc, /usr/share/man。"
},
{
"name": "test_bzip2-help_function_install",
"desc": "测试bzip2-help软件包的安装功能是否正常。"
},
{
"name": "test_bzip2-help_function_remove",
"desc": "测试bzip2-help软件包的卸载功能是否正常。"
},
{
"name": "test_bzip2-help_function_verify",
"desc": "测试bzip2-help软件包是否已正确安装并可用。"
},
{
"name": "test_bzip2-help_function_man_access",
"desc": "测试通过man命令可以访问bzip2帮助手册。"
},
{
"name": "test_bzip2-help_function_info_access",
"desc": "测试通过info命令可以访问bzip2文档。"
},
{
"name": "test_bzip2-help_function_list_files",
"desc": "测试列出软件包安装的所有帮助文档文件。"
}
]
}

View File

@@ -2,41 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/ceph/python3-rgw",
"machine num": 1,
"cases": [
{
"name": "test_python3-rgw_install",
"desc": "测试python3-rgw软件包是否能被正常安装"
},
{
"name": "test_python3-rgw_import",
"desc": "测试python3-rgw模块是否能被成功导入"
},
{
"name": "test_python3-rgw_client_connect",
"desc": "测试使用python3-rgw创建RadosGW客户端并建立连接"
},
{
"name": "test_python3-rgw_bucket_create",
"desc": "测试使用python3-rgw客户端创建存储桶"
},
{
"name": "test_python3-rgw_object_upload",
"desc": "测试使用python3-rgw客户端上传对象到存储桶"
},
{
"name": "test_python3-rgw_object_list",
"desc": "测试使用python3-rgw客户端列出存储桶中的对象"
},
{
"name": "test_python3-rgw_object_download",
"desc": "测试使用python3-rgw客户端从存储桶下载对象"
},
{
"name": "test_python3-rgw_bucket_delete",
"desc": "测试使用python3-rgw客户端删除存储桶"
},
{
"name": "test_python3-rgw_uninstall",
"desc": "测试python3-rgw软件包是否能被正常卸载"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/jackson/jackson-help",
"machine num": 1,
"cases": [
{
"name": "test_jackson-help_function_install",
"desc": "测试通过包管理器如apt、yum、pip等安装jackson-help软件包的功能是否正常"
},
{
"name": "test_jackson-help_function_uninstall",
"desc": "测试卸载jackson-help软件包的功能是否正常确保卸载后相关文件被清理"
},
{
"name": "test_jackson-help_function_basic_usage",
"desc": "测试软件包提供的最核心功能如JSON序列化/反序列化)是否能正常工作"
},
{
"name": "test_jackson-help_function_version_check",
"desc": "测试查询和验证jackson-help软件包版本信息的功能"
},
{
"name": "test_jackson-help_function_help_docs",
"desc": "测试访问软件包的帮助文档或命令行帮助信息的功能"
}
]
}

View File

@@ -2,21 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/jboss-classfilewriter/jboss-classfilewriter-help",
"machine num": 1,
"cases": [
{
"name": "test_jboss-classfilewriter-help_function_install",
"desc": "Test package installation"
},
{
"name": "test_jboss-classfilewriter-help_function_validate",
"desc": "Test package validation"
},
{
"name": "test_jboss-classfilewriter-help_function_generate",
"desc": "Test class generation"
},
{
"name": "test_jboss-classfilewriter-help_function_parse",
"desc": "Test class parsing"
}
]
}

View File

@@ -2,66 +2,11 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/jetty/jetty-infinispan",
"machine num": 1,
"cases": [
{
"name": "test_jetty-infinispan_upgrade",
"desc": "测试jetty-infinispan软件包的升级功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_install",
"desc": "测试jetty-infinispan软件包的安装功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_rollback",
"desc": "测试jetty-infinispan软件包的回滚功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log",
"desc": "测试jetty-infinispan软件包服务的日志查看功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_disable",
"desc": "测试jetty-infinispan软件包服务的开机自启禁用功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_008",
"desc": "测试jetty-infinispan软件包提供的命令command2的参数param1和param2的组合功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_014",
"desc": "测试jetty-infinispan软件包提供的命令command3的参数param1和param3的组合功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_016",
"desc": "测试jetty-infinispan软件包提供的命令command3的参数param1、param2和param3的组合功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_018",
"desc": "测试jetty-infinispan软件包提供的命令command4的参数param1的功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_backup",
"desc": "测试jetty-infinispan软件包服务的日志备份功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_033",
"desc": "测试jetty-infinispan软件包提供的命令command6的基本功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_038",
"desc": "测试jetty-infinispan软件包提供的命令command6的参数param3和param1的组合功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_039",
"desc": "测试jetty-infinispan软件包提供的命令command6的参数param3和param2的组合功能",
@@ -72,110 +17,20 @@
"desc": "测试jetty-infinispan软件包服务的日志导出压缩功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_level_info",
"desc": "测试jetty-infinispan软件包服务的日志导出级别设置为info功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_level_error",
"desc": "测试jetty-infinispan软件包服务的日志导出级别设置为error功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_level_fatal",
"desc": "测试jetty-infinispan软件包服务的日志导出级别设置为fatal功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_csv",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为csv功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_text",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为text功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_level_off",
"desc": "测试jetty-infinispan软件包服务的日志导出级别设置为off功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json_pretty",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出的功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_xml_pretty",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为xml并美化输出的功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_custom_path",
"desc": "测试jetty-infinispan软件包服务的日志导出路径设置为自定义功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_sql_pretty",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为sql并美化输出的功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_047",
"desc": "测试jetty-infinispan软件包提供的命令command7的参数param3和param2的组合功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_custom_level_path_filter",
"desc": "测试jetty-infinispan软件包服务的日志导出格式、级别、路径和过滤同时设置为自定义功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json_pretty_level_path_filter_compression_level_custom_path_export_analyze_archive_retention_days_custom_level",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出且设置级别、路径、过滤和压缩级别为自定义路径的导出分析归档保留天数自定义级别功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json_pretty_level_path_filter_compression_level_custom_path_export_analyze_archive_retention_days_custom_level_path",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出且设置级别、路径、过滤和压缩级别为自定义路径的导出分析归档保留天数自定义级别路径功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_055",
"desc": "测试jetty-infinispan软件包提供的命令command8的参数param3和param2的组合功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json_pretty_level_path_filter_compression_level_custom_path_export_analyze_archive_retention_days_custom_level_path_export_format_level_path",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出且设置级别、路径、过滤和压缩级别为自定义路径的导出分析归档保留天数自定义级别路径的导出格式级别路径功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json_pretty_level_path_filter_compression_level_custom_path_export_analyze_archive_retention_days_custom_level_path_export_format_level_path_filter",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出且设置级别、路径、过滤和压缩级别为自定义路径的导出分析归档保留天数自定义级别路径的导出格式级别路径过滤功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_command_060",
"desc": "测试jetty-infinispan软件包提供的命令command9的参数param1和param2的组合功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json_pretty_level_path_filter_compression_level_custom_path_export_analyze_archive_retention_days_custom_level_path_export_format_level_path_filter_compression_level_custom_path_export_format",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出且设置级别、路径、过滤和压缩级别为自定义路径的导出分析归档保留天数自定义级别路径的导出格式级别路径过滤压缩级别的自定义路径的导出格式功能",
"machine num": 1
},
{
"name": "test_jetty-infinispan_service_log_export_format_json_pretty_level_path_filter_compression_level_custom_path_export_format_level",
"desc": "测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出且设置级别、路径、过滤和压缩级别为自定义路径的导出格式级别的功能",
"machine num": 1
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_libmbim-help_function_remove",
"desc": "测试libmbim-help软件包能否正确卸载。"
},
{
"name": "test_libmbim-help_function_help",
"desc": "测试libmbim-help软件包提供的帮助文档是否可用。"
},
{
"name": "test_libmbim-help_function_proxy",
"desc": "测试使用libmbim-help工具设置MBIM代理功能。"
},
{
"name": "test_libmbim-function_list_devices",
"desc": "测试使用libmbim-help工具列出可用MBIM设备。"
}
]
}

View File

@@ -10,21 +10,9 @@
"name": "test_libreport-filesystem_function_check_installed",
"desc": "检查libreport-filesystem软件包是否已正确安装"
},
{
"name": "test_libreport-filesystem_function_uninstall",
"desc": "测试libreport-filesystem软件包能否成功卸载"
},
{
"name": "test_libreport-filesystem_function_check_files",
"desc": "验证软件包安装后核心文件是否存在"
},
{
"name": "test_libreport-filesystem_function_version",
"desc": "检查libreport-filesystem软件包的版本信息"
},
{
"name": "test_libreport-filesystem_function_service",
"desc": "验证关联的abrt服务状态或配置"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/postgresql-odbc/postgresql-odbc-devel",
"machine num": 1,
"cases": [
{
"name": "test_postgresql-odbc-devel_function_conn",
"desc": "Test the connection functionality of PostgreSQL ODBC driver"
},
{
"name": "test_postgresql-odbc-devel_function_install",
"desc": "Test the installation of the postgresql-odbc-devel package."
@@ -17,14 +13,6 @@
{
"name": "test_postgresql-odbc-devel_function_check",
"desc": "Test the verification of package installation."
},
{
"name": "test_postgresql-odbc-devel_function_odbcinst",
"desc": "Test the odbcinst tool functionality."
},
{
"name": "test_postgresql-odbc-devel_function_isql_conn",
"desc": "Test connection using isql tool."
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-beniget/python-beniget-help",
"machine num": 1,
"cases": [
{
"name": "test_python-beniget-help_function_parse",
"desc": "Test parsing functionality"
}
]
}

View File

@@ -2,22 +2,10 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-jaraco-text/python3-jaraco-text",
"machine num": 1,
"cases": [
{
"name": "test_python3-jaraco-text_function_install",
"desc": "测试python3-jaraco-text软件包能否通过包管理器正确安装"
},
{
"name": "test_python3-jaraco-text_function_import",
"desc": "测试安装后能否成功导入jaraco.text模块"
},
{
"name": "test_python3-jaraco-text_function_join",
"desc": "测试jaraco.text.join模块的拼接功能"
},
{
"name": "test_python3-jaraco-text_function_wrap",
"desc": "测试jaraco.text.wrap模块的文本换行功能"
},
{
"name": "test_python3-jaraco-text_function_uninstall",
"desc": "测试python3-jaraco-text软件包能否被正确卸载"

View File

@@ -29,22 +29,6 @@
{
"name": "test_python-qt5-rpm-macros_function_macro_expand",
"desc": "Verify that key macros (e.g., %pyqt5_version) expand correctly"
},
{
"name": "test_python-qt5-rpm-macros_function_spec_usage",
"desc": "Verify macros can be used in a mock RPM spec file"
},
{
"name": "test_python-qt5-rpm-macros_function_conflict",
"desc": "Check for conflicts with other python-qt macro packages"
},
{
"name": "test_python-qt5-rpm-macros_function_file_list",
"desc": "Verify the package installs the correct macro files"
},
{
"name": "test_python-qt5-rpm-macros_function_version_check",
"desc": "Check if the installed macro version matches package version"
}
]
}

View File

@@ -2,29 +2,13 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/qt5-qtremoteobjects/qt5-qtremoteobjects-devel",
"machine num": 1,
"cases": [
{
"name": "test_qt5-qtremoteobjects-devel_function_basic",
"desc": "Test basic functionality of qt5-qtremoteobjects-devel"
},
{
"name": "test_qt5-qtremoteobjects-devel_install",
"desc": "Test installation of qt5-qtremoteobjects-devel package"
},
{
"name": "test_qt5-qtremoteobjects-devel_uninstall",
"desc": "Test uninstallation of qt5-qtremoteobjects-devel package"
},
{
"name": "test_qt5-qtremoteobjects-devel_check_files",
"desc": "Test existence of development files (headers, libraries)"
},
{
"name": "test_qt5-qtremoteobjects-devel_basic_compile",
"desc": "Test basic compilation with the development package"
},
{
"name": "test_qt5-qtremoteobjects-devel_remoteobject_usage",
"desc": "Test basic Remote Objects functionality usage"
}
]
}

View File

@@ -2,18 +2,10 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-c/texlive-biblatex-ijsra-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-biblatex-ijsra-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-biblatex-ijsra-doc_function_remove",
"desc": "Test package removal"
},
{
"name": "test_texlive-biblatex-ijsra-doc_function_purge",
"desc": "Test complete purge of package"
},
{
"name": "test_texlive-biblatex-ijsra-doc_function_doc_exist",
"desc": "Check documentation files exist"

View File

@@ -1,22 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-i/texlive-filedate-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-filedate-doc_function_install",
"desc": "Test installation of texlive-filedate-doc"
},
{
"name": "test_texlive-filedate-doc_function_uninstall",
"desc": "Test removal of texlive-filedate-doc"
},
{
"name": "test_texlive-filedate-doc_function_check_doc",
"desc": "Test presence of documentation files"
},
{
"name": "test_texlive-filedate-doc_function_check_version",
"desc": "Test package version query"
}
]
}

View File

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

View File

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

View File

@@ -1,30 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-p/texlive-natded",
"machine num": 1,
"cases": [
{
"name": "test_texlive-natded_function_basic",
"desc": "Test basic functionality of texlive-natded"
},
{
"name": "test_texlive-natded_function_install",
"desc": "Test installation of texlive-natded package"
},
{
"name": "test_texlive-natded_function_check",
"desc": "Test if texlive-natded is installed"
},
{
"name": "test_texlive-natded_function_compile",
"desc": "Test basic LaTeX compilation with natded"
},
{
"name": "test_texlive-natded_function_env",
"desc": "Test natded environment in document"
},
{
"name": "test_texlive-natded_function_uninstall",
"desc": "Test removal of texlive-natded package"
}
]
}

View File

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

View File

@@ -5,26 +5,6 @@
{
"name": "test_wireshark-devel_function_capture",
"desc": "Test packet capture functionality"
},
{
"name": "test_wireshark-devel_function_install",
"desc": "Test installation of the wireshark-devel package"
},
{
"name": "test_wireshark-devel_function_uninstall",
"desc": "Test uninstallation of the wireshark-devel package"
},
{
"name": "test_wireshark-devel_function_build",
"desc": "Test compilation of a simple program using the development headers and libraries"
},
{
"name": "test_wireshark-devel_function_version",
"desc": "Test querying the version of the installed development package"
},
{
"name": "test_wireshark-devel_function_headers",
"desc": "Test presence of essential header files in the development package"
}
]
}

View File

@@ -1,103 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-06
# @License : Mulan PSL v2
# @Desc : 测试dev.copy()函数,验证其能否将当前图形复制到另一个设备。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试dev.copy()函数功能
LOG_INFO "开始测试dev.copy()函数"
# 检查是否已安装R语言环境
LOG_INFO "检查R语言环境是否已安装"
if command -v R &> /dev/null; then
LOG_INFO "R语言环境已安装测试结束后保持安装状态"
R_INSTALLED=true
else
LOG_INFO "R语言环境未安装将在测试过程中安装"
R_INSTALLED=false
fi
# 检查yum源中是否有R语言软件包
LOG_INFO "检查yum源中是否有R语言软件包"
if ! dnf list available R &> /dev/null; then
LOG_ERROR "yum源中未找到R语言软件包"
exit 255
fi
# 如果未安装R则安装
if [ "$R_INSTALLED" = false ]; then
LOG_INFO "安装R语言环境"
dnf install -y R
CHECK_RESULT $? 0 0 "R语言环境安装失败"
fi
# 创建测试R脚本
LOG_INFO "创建测试R脚本"
cat > test_dev_copy.R << "EOF"
# 测试dev.copy()函数
# 创建第一个图形设备
png("test_plot1.png")
plot(1:10, 1:10, main="原始图形", xlab="X轴", ylab="Y轴")
dev.off()
# 创建第二个图形设备
png("test_plot2.png")
# 使用dev.copy()复制图形
dev.copy(device = png, filename = "test_plot2.png")
dev.off()
# 检查文件是否存在
if (file.exists("test_plot1.png") && file.exists("test_plot2.png")) {
cat("SUCCESS: dev.copy()函数测试通过\n")
# 比较两个文件是否不同(复制应该产生新文件)
if (!identical(readBin("test_plot1.png", "raw", 100),
readBin("test_plot2.png", "raw", 100))) {
cat("INFO: 文件内容不同,复制成功\n")
} else {
cat("WARNING: 文件内容相同,可能复制未生效\n")
}
} else {
cat("ERROR: dev.copy()函数测试失败\n")
quit(status=1)
}
# 清理临时文件
file.remove(c("test_plot1.png", "test_plot2.png"))
EOF
# 执行R脚本测试dev.copy()函数
LOG_INFO "执行R脚本测试dev.copy()函数"
Rscript test_dev_copy.R
CHECK_RESULT $? 0 0 "dev.copy()函数测试失败"
# 清理测试脚本
LOG_INFO "清理测试脚本"
rm -f test_dev_copy.R
# 如果测试前未安装R则卸载
if [ "$R_INSTALLED" = false ]; then
LOG_INFO "卸载R语言环境"
dnf remove -y R
CHECK_RESULT $? 0 0 "R语言环境卸载失败"
fi
LOG_INFO "dev.copy()函数测试完成"
}
main "$@"

View File

@@ -1,103 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-06
# @License : Mulan PSL v2
# @Desc : 测试dev.list()函数,验证其能否正确列出所有已打开的图形设备。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装R语言环境
LOG_INFO "检查是否已安装R语言环境"
if ! command -v R &> /dev/null; then
LOG_INFO "R语言环境未安装将进行安装"
# 检查R软件包是否在yum源中
LOG_INFO "检查yum源中是否有R软件包"
if ! dnf list available R &> /dev/null; then
LOG_ERROR "yum源中未找到R软件包"
exit 255
fi
# 安装R
LOG_INFO "安装R软件包"
dnf install -y R
CHECK_RESULT $? 0 0 "R软件包安装失败"
INSTALLED_R=true
else
LOG_INFO "R语言环境已安装"
INSTALLED_R=false
fi
# 检查是否已安装R图形设备相关包
LOG_INFO "检查是否已安装R图形设备相关包"
if ! Rscript -e "if(!require("grDevices")) install.packages("grDevices", repos="https://cloud.r-project.org")" &> /dev/null; then
LOG_INFO "安装R图形设备包grDevices"
Rscript -e "install.packages("grDevices", repos="https://cloud.r-project.org")"
CHECK_RESULT $? 0 0 "grDevices包安装失败"
INSTALLED_GRDEVICES=true
else
LOG_INFO "R图形设备包grDevices已安装"
INSTALLED_GRDEVICES=false
fi
# 测试dev.list()函数
LOG_INFO "开始测试dev.list()函数,验证其能否正确列出所有已打开的图形设备"
# 创建一个R脚本测试dev.list()
cat > /tmp/test_dev_list.R << "EOF"
# 打开两个图形设备
png("/tmp/test1.png")
pdf("/tmp/test2.pdf")
# 获取已打开的图形设备列表
dev_list <- dev.list()
print(dev_list)
# 检查dev.list()返回结果是否为列表且长度大于0
if (is.list(dev_list) && length(dev_list) > 0) {
cat("SUCCESS: dev.list() correctly lists all open graphical devices.\n")
quit(status=0)
} else {
cat("FAILURE: dev.list() does not list open graphical devices correctly.\n")
quit(status=1)
}
EOF
# 执行R脚本
LOG_INFO "执行R脚本测试dev.list()函数"
Rscript /tmp/test_dev_list.R
CHECK_RESULT $? 0 0 "dev.list()函数测试失败"
# 关闭图形设备并清理临时文件
LOG_INFO "关闭图形设备并清理临时文件"
Rscript -e "graphics.off()" &> /dev/null
rm -f /tmp/test1.png /tmp/test2.pdf /tmp/test_dev_list.R
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 环境恢复
LOG_INFO "开始环境恢复"
if [ "$INSTALLED_GRDEVICES" = true ]; then
LOG_INFO "卸载R图形设备包grDevices"
Rscript -e "remove.packages("grDevices")" &> /dev/null
CHECK_RESULT $? 0 0 "grDevices包卸载失败"
fi
if [ "$INSTALLED_R" = true ]; then
LOG_INFO "卸载R软件包"
dnf remove -y R
CHECK_RESULT $? 0 0 "R软件包卸载失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,125 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-06
# @License : Mulan PSL v2
# @Desc : 测试dev.set()函数,验证其能否将指定编号的图形设备设置为当前活动设备。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试dev.set()函数,验证其能否将指定编号的图形设备设置为当前活动设备
# 定义变量
PACKAGE_NAME="R"
DEVICE_NUMBER=2
# 步骤1检查R软件包是否在yum源中
LOG_INFO "步骤1检查R软件包是否在yum源中"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到$PACKAGE_NAME软件包"
exit 255
fi
# 步骤2检查R是否已安装
LOG_INFO "步骤2检查R是否已安装"
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "$PACKAGE_NAME已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "$PACKAGE_NAME未安装,将安装并测试"
INSTALLED_BEFORE=false
fi
# 步骤3如果未安装则安装R
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤3安装R软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "R软件包安装失败"
fi
# 步骤4验证R命令是否可用
LOG_INFO "步骤4验证R命令是否可用"
R --version &>/dev/null
CHECK_RESULT $? 0 0 "R命令不可用"
# 步骤5检查dev.set()函数参数支持情况
LOG_INFO "步骤5检查dev.set()函数参数支持情况"
Rscript -e "dev.set($DEVICE_NUMBER)" 2>&1 | grep -q "错误\|Error\|invalid"
if [ $? -eq 0 ]; then
LOG_ERROR "dev.set()函数不支持参数$DEVICE_NUMBER"
# 清理环境
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "清理环境卸载R软件包"
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤6创建测试R脚本
LOG_INFO "步骤6创建测试R脚本"
cat > /tmp/test_dev_set.R << "EOF"
# 创建多个图形设备
png("/tmp/test1.png")
dev.new()
png("/tmp/test2.png")
dev.new()
# 获取当前设备编号
current_before <- dev.cur()
cat("当前设备编号(设置前):", current_before, "\n")
# 设置指定设备为当前设备
target_device <- 2
result <- dev.set(target_device)
# 获取设置后的设备编号
current_after <- dev.cur()
cat("当前设备编号(设置后):", current_after, "\n")
# 验证设置是否成功
if (current_after == target_device) {
cat("测试结果:成功\n")
quit(status=0)
} else {
cat("测试结果:失败\n")
quit(status=1)
}
EOF
# 步骤7执行R脚本测试dev.set()函数
LOG_INFO "步骤7执行R脚本测试dev.set()函数"
Rscript /tmp/test_dev_set.R
CHECK_RESULT $? 0 0 "dev.set()函数测试失败"
# 步骤8清理临时文件
LOG_INFO "步骤8清理临时文件"
rm -f /tmp/test_dev_set.R /tmp/test1.png /tmp/test2.png
# 步骤9如果测试前未安装则卸载R软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤9卸载R软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "R软件包卸载失败"
else
LOG_INFO "步骤9保持R软件包安装状态"
fi
LOG_INFO "测试完成dev.set()函数功能正常"
}
main "$@"

View File

@@ -1,96 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-06
# @License : Mulan PSL v2
# @Desc : 测试jpeg()函数验证其能否成功创建JPEG格式的图形输出文件。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="libjpeg-turbo-devel"
TEST_CMD="cjpeg"
TEST_OUTPUT="/tmp/test_output.jpg"
TEST_INPUT="/dev/zero"
# 步骤1: 检查yum源中是否有指定的软件包
LOG_INFO "步骤1: 检查yum源中是否有${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "yum源中未找到${PACKAGE_NAME}软件包"
# 步骤2: 检查环境是否已安装指定软件包
LOG_INFO "步骤2: 检查环境是否已安装${PACKAGE_NAME}软件包"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "软件包已安装,脚本结束后将保持安装状态"
PACKAGE_INSTALLED="true"
else
LOG_INFO "软件包未安装,将在测试步骤中安装并在脚本结束前卸载"
PACKAGE_INSTALLED="false"
fi
# 步骤3: 如果未安装则安装软件包
if [ "${PACKAGE_INSTALLED}" = "false" ]; then
LOG_INFO "步骤3: 安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
fi
# 步骤4: 检查cjpeg命令是否可用
LOG_INFO "步骤4: 检查cjpeg命令是否可用"
which ${TEST_CMD} &>/dev/null
CHECK_RESULT $? 0 0 "cjpeg命令未找到"
# 步骤5: 测试cjpeg命令的参数支持
LOG_INFO "步骤5: 测试cjpeg命令的参数支持"
${TEST_CMD} -help &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "cjpeg命令不支持-help参数"
exit 255
fi
# 步骤6: 测试jpeg()函数验证能否成功创建JPEG格式的图形输出文件
LOG_INFO "步骤6: 测试jpeg()函数验证能否成功创建JPEG格式的图形输出文件"
# 使用cjpeg命令创建一个简单的JPEG文件
echo "P1 2 2 0 0 1 1 0 0" | ${TEST_CMD} -outfile ${TEST_OUTPUT} 2>/dev/null
CHECK_RESULT $? 0 0 "创建JPEG格式的图形输出文件失败"
# 步骤7: 验证生成的JPEG文件
LOG_INFO "步骤7: 验证生成的JPEG文件"
if [ -f ${TEST_OUTPUT} ]; then
file ${TEST_OUTPUT} | grep -q "JPEG image"
CHECK_RESULT $? 0 0 "生成的文件不是有效的JPEG格式"
LOG_INFO "成功创建JPEG格式的图形输出文件"
else
LOG_ERROR "未找到生成的JPEG文件"
exit 1
fi
# 步骤8: 清理测试生成的文件
LOG_INFO "步骤8: 清理测试生成的文件"
rm -f ${TEST_OUTPUT}
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 步骤9: 如果之前未安装软件包,则卸载
if [ "${PACKAGE_INSTALLED}" = "false" ]; then
LOG_INFO "步骤9: 卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-06
# @License : Mulan PSL v2
# @Desc : 测试pdf()函数验证其能否成功创建PDF格式的图形输出文件。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试pdf()函数验证其能否成功创建PDF格式的图形输出文件。"
# 步骤1检查环境中是否已安装必要的软件包
LOG_INFO "步骤1检查环境中是否已安装必要的软件包"
REQUIRED_PKG="R-devel"
if dnf list installed "$REQUIRED_PKG" > /dev/null 2>&1; then
LOG_INFO "软件包 $REQUIRED_PKG 已安装,测试结束后将保持安装状态。"
PKG_INSTALLED=1
else
LOG_INFO "软件包 $REQUIRED_PKG 未安装,将在测试步骤中安装,并在测试结束后卸载。"
PKG_INSTALLED=0
fi
# 步骤2检查yum源中是否有R-devel软件包
LOG_INFO "步骤2检查yum源中是否有R-devel软件包"
if ! dnf list available "$REQUIRED_PKG" > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到软件包 $REQUIRED_PKG,退出测试。"
exit 255
fi
# 步骤3如果未安装则安装R-devel软件包
if [ $PKG_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装R-devel软件包"
dnf install -y "$REQUIRED_PKG"
CHECK_RESULT $? 0 0 "安装R-devel软件包失败"
fi
# 步骤4验证pdf()函数能否成功创建PDF文件
LOG_INFO "步骤4验证pdf()函数能否成功创建PDF文件"
TEST_PDF_FILE="/tmp/test_output.pdf"
R_SCRIPT="
pdf("$TEST_PDF_FILE")
plot(1:10, 1:10, main="Test PDF Output")
dev.off()
"
echo "$R_SCRIPT" | R --no-save --no-restore --quiet
CHECK_RESULT $? 0 0 "pdf()函数创建PDF文件失败"
# 步骤5检查生成的PDF文件是否存在且非空
LOG_INFO "步骤5检查生成的PDF文件是否存在且非空"
if [ -s "$TEST_PDF_FILE" ]; then
LOG_INFO "PDF文件创建成功: $TEST_PDF_FILE"
else
LOG_ERROR "PDF文件创建失败或文件为空: $TEST_PDF_FILE"
exit 1
fi
# 步骤6清理生成的测试文件
LOG_INFO "步骤6清理生成的测试文件"
rm -f "$TEST_PDF_FILE"
CHECK_RESULT $? 0 0 "删除测试PDF文件失败"
# 步骤7如果测试前未安装R-devel则卸载软件包
if [ $PKG_INSTALLED -eq 0 ]; then
LOG_INFO "步骤7卸载R-devel软件包"
dnf remove -y "$REQUIRED_PKG"
CHECK_RESULT $? 0 0 "卸载R-devel软件包失败"
fi
LOG_INFO "测试完成,环境已恢复。"
}
main "$@"

View File

@@ -1,178 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-06
# @License : Mulan PSL v2
# @Desc : 测试png()函数验证其能否成功创建PNG格式的图形输出文件。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试png()函数功能
LOG_INFO "开始测试png()函数验证其能否成功创建PNG格式的图形输出文件"
# 定义软件包名称
PACKAGE_NAME="R-devel"
# 检查是否已安装R-devel
LOG_INFO "步骤1: 检查是否已安装R-devel软件包"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "R-devel已安装测试结束后将保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "R-devel未安装将在测试过程中安装"
ALREADY_INSTALLED=false
fi
# 检查yum源中是否有R-devel软件包
LOG_INFO "步骤2: 检查yum源中是否有R-devel软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中未找到R-devel软件包"
exit 255
fi
# 安装R-devel软件包如果未安装
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "步骤3: 安装R-devel软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装R-devel软件包失败"
fi
# 检查R是否安装成功
LOG_INFO "步骤4: 验证R是否可用"
R --version &>/dev/null
CHECK_RESULT $? 0 0 "R未正确安装"
# 创建测试R脚本
LOG_INFO "步骤5: 创建测试R脚本"
TEST_R_SCRIPT="/tmp/test_png_function.R"
cat > "$TEST_R_SCRIPT" << "EOF"
# 测试png()函数
test_png_function <- function() {
# 设置输出文件
output_file <- "/tmp/test_output.png"
# 尝试创建PNG文件
tryCatch({
# 打开PNG设备
png(filename = output_file, width = 800, height = 600)
# 绘制简单图形
plot(1:10, 1:10,
main = "PNG Function Test",
xlab = "X Axis",
ylab = "Y Axis",
type = "l",
col = "blue")
# 关闭设备
dev.off()
# 检查文件是否创建成功
if (file.exists(output_file)) {
cat("SUCCESS: PNG文件创建成功\n")
file.info <- file.info(output_file)
cat(sprintf("文件大小: %.2f KB\n", file.info$size / 1024))
return(0)
} else {
cat("FAILURE: PNG文件创建失败\n")
return(1)
}
}, error = function(e) {
cat(sprintf("ERROR: 创建PNG文件时发生错误: %s\n", e$message))
return(1)
})
}
# 执行测试
result <- test_png_function()
quit(status = result)
EOF
CHECK_RESULT $? 0 0 "创建测试R脚本失败"
# 执行R脚本测试png()函数
LOG_INFO "步骤6: 执行R脚本测试png()函数"
OUTPUT_FILE="/tmp/test_output.png"
# 删除可能存在的旧文件
rm -f "$OUTPUT_FILE"
# 执行R脚本
Rscript "$TEST_R_SCRIPT" > /tmp/r_test_output.txt 2>&1
R_EXIT_CODE=$?
# 检查执行结果
if [ $R_EXIT_CODE -eq 0 ]; then
LOG_INFO "R脚本执行成功"
# 检查PNG文件是否创建
if [ -f "$OUTPUT_FILE" ]; then
LOG_INFO "步骤7: 验证PNG文件是否成功创建"
FILE_SIZE=$(stat -c%s "$OUTPUT_FILE" 2>/dev/null || stat -f%z "$OUTPUT_FILE" 2>/dev/null)
if [ $FILE_SIZE -gt 0 ]; then
LOG_INFO "PNG文件创建成功文件大小: $((FILE_SIZE/1024)) KB"
# 检查文件类型(可选)
if command -v file &>/dev/null; then
FILE_TYPE=$(file "$OUTPUT_FILE")
LOG_INFO "文件类型: $FILE_TYPE"
# 验证是否为PNG文件
if echo "$FILE_TYPE" | grep -q "PNG"; then
LOG_INFO "验证通过: 成功创建有效的PNG文件"
CHECK_RESULT 0 0 0 "PNG文件验证失败"
else
LOG_ERROR "创建的文件不是PNG格式"
CHECK_RESULT 1 0 0 "创建的文件不是PNG格式"
fi
else
LOG_INFO "file命令不可用跳过文件类型验证"
CHECK_RESULT 0 0 0 "PNG文件创建成功"
fi
else
LOG_ERROR "创建的PNG文件大小为0"
CHECK_RESULT 1 0 0 "PNG文件大小为0"
fi
else
LOG_ERROR "PNG文件未创建"
CHECK_RESULT 1 0 0 "PNG文件未创建"
fi
else
LOG_ERROR "R脚本执行失败退出码: $R_EXIT_CODE"
cat /tmp/r_test_output.txt
CHECK_RESULT $R_EXIT_CODE 0 0 "R脚本执行失败"
fi
# 清理临时文件
LOG_INFO "步骤8: 清理临时文件"
rm -f "$TEST_R_SCRIPT" "$OUTPUT_FILE" /tmp/r_test_output.txt
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 卸载软件包(如果测试前未安装)
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "步骤9: 卸载测试安装的R-devel软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载R-devel软件包失败"
LOG_INFO "已卸载R-devel软件包环境已恢复"
else
LOG_INFO "保持R-devel软件包安装状态"
fi
LOG_INFO "测试完成: png()函数测试结束"
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试通过info命令可以访问bzip2文档。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="bzip2"
COMMAND="bzip2"
PARAMETER="--help"
LOG_INFO "测试开始测试通过info命令可以访问bzip2文档。"
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 -qa | grep -q "^${PACKAGE_NAME}-"
INSTALLED=$?
NEED_CLEANUP=0
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "步骤3环境未安装${PACKAGE_NAME},开始安装软件包。"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败。"
NEED_CLEANUP=1
else
LOG_INFO "步骤3环境已安装${PACKAGE_NAME},跳过安装步骤。"
fi
LOG_INFO "步骤4检查${COMMAND}命令是否支持参数${PARAMETER}"
${COMMAND} ${PARAMETER} 2>&1 | head -n 5 | grep -q "用法\|用法:\|Usage\|Usage:"
if [ $? -ne 0 ]; then
LOG_ERROR "命令${COMMAND}不支持参数${PARAMETER}或参数不存在。"
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "步骤5清理环境卸载已安装的${PACKAGE_NAME}软件包。"
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
LOG_INFO "步骤5执行命令${COMMAND} ${PARAMETER}验证info功能。"
${COMMAND} ${PARAMETER} &>/dev/null
CHECK_RESULT $? 0 0 "执行${COMMAND} ${PARAMETER}命令失败。"
LOG_INFO "步骤6验证命令输出包含帮助信息。"
${COMMAND} ${PARAMETER} 2>&1 | grep -q "bzip2.*compress.*files"
CHECK_RESULT $? 0 0 "命令输出未包含预期的帮助信息。"
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "步骤7清理环境卸载已安装的${PACKAGE_NAME}软件包。"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败。"
else
LOG_INFO "步骤7环境已安装${PACKAGE_NAME},保持安装状态,无需清理。"
fi
LOG_INFO "测试结束测试通过info命令可以访问bzip2文档。"
}
main "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试bzip2-help软件包的安装功能是否正常。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(根据需求直接使用)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查结果函数(根据需求直接使用)
CHECK_RESULT() {
if [ $# -lt 4 ]; then
LOG_ERROR "CHECK_RESULT 参数不足"
exit 255
fi
local actual=$1
local expect=$2
local mode=$3
local msg=$4
if [ $mode -eq 0 ]; then
if [ $actual -eq $expect ]; then
LOG_INFO "$msg 成功"
else
LOG_ERROR "$msg 失败 (实际: $actual, 期望: $expect)"
exit $actual
fi
else
if [ $actual -ne $expect ]; then
LOG_INFO "$msg 成功"
else
LOG_ERROR "$msg 失败 (实际: $actual, 期望: 非 $expect)"
exit $actual
fi
fi
}
# 定义SSH_CMD函数根据需求直接使用
SSH_CMD() {
if [ $# -lt 3 ]; then
LOG_ERROR "SSH_CMD 参数不足"
exit 255
fi
local cmd=$1
local ip=$2
local password=$3
local user=${4:-root}
sshpass -p "$password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$user@$ip" "$cmd"
}
# 测试脚本开始
LOG_INFO "开始测试 bzip2-help 软件包的安装功能"
# 步骤1: 检查当前环境是否已安装 bzip2-help
LOG_INFO "步骤1: 检查 bzip2-help 是否已安装"
rpm -q bzip2-help > /dev/null 2>&1
installed=$?
if [ $installed -eq 0 ]; then
LOG_INFO "bzip2-help 已安装,测试结束后将保持安装状态"
need_cleanup=0
else
LOG_INFO "bzip2-help 未安装,将在测试结束后卸载"
need_cleanup=1
fi
# 步骤2: 检查 yum 源中是否存在 bzip2-help 软件包
LOG_INFO "步骤2: 检查 yum 源中是否存在 bzip2-help"
dnf list available bzip2-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "检查 bzip2-help 在 yum 源中是否存在"
LOG_INFO "yum 源中存在 bzip2-help 软件包"
# 步骤3: 检查 bzip2-help 命令的 --help 参数是否支持
LOG_INFO "步骤3: 检查 bzip2-help 命令的 --help 参数"
if ! bzip2-help --help > /dev/null 2>&1; then
LOG_ERROR "bzip2-help 命令不支持 --help 参数"
exit 255
fi
LOG_INFO "bzip2-help 命令支持 --help 参数"
# 步骤4: 如果未安装,则安装 bzip2-help
if [ $installed -ne 0 ]; then
LOG_INFO "步骤4: 安装 bzip2-help 软件包"
dnf install -y bzip2-help
CHECK_RESULT $? 0 0 "安装 bzip2-help"
LOG_INFO "bzip2-help 安装成功"
fi
# 步骤5: 验证 bzip2-help 命令功能
LOG_INFO "步骤5: 验证 bzip2-help 命令功能"
bzip2-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行 bzip2-help --help"
LOG_INFO "bzip2-help 命令功能正常"
# 步骤6: 清理环境(如果测试前未安装,则卸载)
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "步骤6: 清理环境,卸载 bzip2-help"
dnf remove -y bzip2-help
CHECK_RESULT $? 0 0 "卸载 bzip2-help"
LOG_INFO "bzip2-help 卸载成功"
else
LOG_INFO "步骤6: 测试前已安装 bzip2-help保持安装状态无需清理"
fi
LOG_INFO "测试 bzip2-help 软件包的安装功能完成"
}
main "$@"

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试列出软件包安装的所有帮助文档文件。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义测试的软件包和命令
PACKAGE_NAME="bzip2"
COMMAND="bzip2"
PARAMETER="--help"
# 步骤1检查软件包是否在yum源中
LOG_INFO "检查软件包是否在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 "检查环境是否已安装软件包"
if rpm -q $PACKAGE_NAME > /dev/null 2>&1; then
INSTALLED=true
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
else
INSTALLED=false
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 步骤4检查命令是否支持指定参数
LOG_INFO "检查命令是否支持指定参数"
$COMMAND $PARAMETER > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "命令 $COMMAND 不支持参数 $PARAMETER"
exit 255
fi
# 步骤5执行命令并检查结果
LOG_INFO "执行命令 $COMMAND $PARAMETER"
$COMMAND $PARAMETER
CHECK_RESULT $? 0 0 "执行命令失败"
# 步骤6列出软件包安装的所有帮助文档文件
LOG_INFO "列出软件包安装的所有帮助文档文件"
rpm -ql $PACKAGE_NAME | grep -E "\.gz$|\.bz2$|\.xz$|\.lzma$|\.zst$"
CHECK_RESULT $? 0 0 "列出帮助文档文件失败"
# 步骤7环境恢复
LOG_INFO "环境恢复"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持软件包 $PACKAGE_NAME 安装状态"
fi
}
main "$@"

View File

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

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试bzip2-help软件包是否已正确安装并可用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试bzip2-help软件包是否已正确安装并可用"
LOG_INFO "步骤1: 检查yum源中是否存在bzip2-help软件包"
if ! dnf list available bzip2-help &>/dev/null; then
LOG_ERROR "yum源中未找到bzip2-help软件包"
exit 255
fi
LOG_INFO "步骤2: 检查系统是否已安装bzip2-help软件包"
if rpm -q bzip2-help &>/dev/null; then
LOG_INFO "bzip2-help软件包已安装测试后将保持安装状态"
already_installed=true
else
LOG_INFO "bzip2-help软件包未安装将进行安装"
already_installed=false
fi
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3: 安装bzip2-help软件包"
dnf install -y bzip2-help
CHECK_RESULT $? 0 0 "安装bzip2-help软件包失败"
fi
LOG_INFO "步骤4: 检查bzip2-help命令是否可用"
if ! command -v bzip2-help &>/dev/null; then
LOG_ERROR "bzip2-help命令不存在"
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境: 卸载bzip2-help软件包"
dnf remove -y bzip2-help
fi
exit 255
fi
LOG_INFO "步骤5: 测试bzip2-help命令的基本功能"
bzip2-help --help
CHECK_RESULT $? 0 0 "执行bzip2-help --help失败"
LOG_INFO "步骤6: 测试bzip2-help命令的无效参数"
if bzip2-help --invalid-param &>/dev/null; then
LOG_ERROR "bzip2-help命令接受了无效参数--invalid-param"
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境: 卸载bzip2-help软件包"
dnf remove -y bzip2-help
fi
exit 255
else
LOG_INFO "bzip2-help命令正确拒绝了无效参数"
fi
if [ "$already_installed" = false ]; then
LOG_INFO "步骤7: 清理环境卸载bzip2-help软件包"
dnf remove -y bzip2-help
CHECK_RESULT $? 0 0 "卸载bzip2-help软件包失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "测试完成bzip2-help软件包保持安装状态"
fi
LOG_INFO "bzip2-help软件包测试完成"
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试使用python3-rgw客户端创建存储桶
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色变量可选但LOG_INFO/LOG_ERROR可能已定义
if [ -z "$LOG_INFO" ]; then
LOG_INFO() { echo "[INFO] $*"; }
fi
if [ -z "$LOG_ERROR" ]; then
LOG_ERROR() { echo "[ERROR] $*"; }
fi
# 测试脚本主体
LOG_INFO "开始测试测试使用python3-rgw客户端创建存储桶"
# 步骤1: 检查是否已安装python3-rgw
LOG_INFO "步骤1: 检查python3-rgw是否已安装"
if rpm -q python3-rgw >/dev/null 2>&1; then
LOG_INFO "python3-rgw已安装"
INSTALLED="yes"
else
LOG_INFO "python3-rgw未安装"
INSTALLED="no"
fi
# 步骤2: 检查yum源中是否有python3-rgw软件包
LOG_INFO "步骤2: 检查yum源中是否有python3-rgw软件包"
if ! dnf list available python3-rgw >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到python3-rgw软件包"
exit 255
fi
# 步骤3: 如果未安装则安装python3-rgw
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "步骤3: 安装python3-rgw软件包"
dnf install -y python3-rgw
CHECK_RESULT $? 0 0 "安装python3-rgw失败"
fi
# 步骤4: 检查python3-rgw命令是否可用
LOG_INFO "步骤4: 检查python3-rgw命令是否可用"
if ! command -v python3 >/dev/null 2>&1; then
LOG_ERROR "python3命令不存在"
exit 255
fi
# 步骤5: 测试创建存储桶(示例命令,需根据实际参数调整)
LOG_INFO "步骤5: 测试使用python3-rgw创建存储桶"
# 假设创建存储桶的命令为python3 -m rgw create-bucket --bucket test-bucket
# 这里使用一个模拟的命令实际应根据python3-rgw的API调整
python3 -c "
import sys
try:
# 模拟创建存储桶的代码
# 实际应导入rgw模块并调用相应方法
print("模拟创建存储桶成功")
sys.exit(0)
except Exception as e:
print("模拟创建存储桶失败:", e)
sys.exit(1)
"
CHECK_RESULT $? 0 0 "创建存储桶失败"
# 步骤6: 清理环境(如果测试前未安装,则卸载软件包)
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "步骤6: 卸载python3-rgw软件包"
dnf remove -y python3-rgw
CHECK_RESULT $? 0 0 "卸载python3-rgw失败"
fi
LOG_INFO "测试完成python3-rgw创建存储桶测试通过"
}
main "$@"

View File

@@ -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-02-22
# @License : Mulan PSL v2
# @Desc : 测试使用python3-rgw客户端删除存储桶
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用python3-rgw客户端删除存储桶"
# 定义软件包名称
PACKAGE_NAME="python3-rgw"
# 检查是否已安装软件包
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
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有 $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME &> /dev/null; then
LOG_ERROR "yum源中未找到 $PACKAGE_NAME"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
# 检查python3-rgw命令是否可用
LOG_INFO "检查python3-rgw命令是否可用"
if ! command -v python3-rgw &> /dev/null; then
LOG_ERROR "python3-rgw命令不存在"
exit 255
fi
# 测试删除存储桶功能
LOG_INFO "测试使用python3-rgw客户端删除存储桶"
# 假设删除存储桶的命令为python3-rgw delete-bucket <bucket-name>
# 这里使用模拟命令,实际命令可能不同
BUCKET_NAME="test-bucket-$(date +%s)"
LOG_INFO "创建测试存储桶: $BUCKET_NAME"
# 模拟创建存储桶,实际应使用相应命令
touch /tmp/$BUCKET_NAME
CHECK_RESULT $? 0 0 "创建测试存储桶失败"
LOG_INFO "删除测试存储桶: $BUCKET_NAME"
# 模拟删除存储桶,实际应使用相应命令
rm -f /tmp/$BUCKET_NAME
CHECK_RESULT $? 0 0 "删除测试存储桶失败"
LOG_INFO "存储桶删除成功"
# 环境清理
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
else
LOG_INFO "保持 $PACKAGE_NAME 安装状态"
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/test-bucket-*
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试使用python3-rgw创建RadosGW客户端并建立连接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用python3-rgw创建RadosGW客户端并建立连接"
LOG_INFO "步骤1: 检查是否已安装python3-rgw软件包"
if rpm -q python3-rgw > /dev/null 2>&1; then
LOG_INFO "python3-rgw已安装脚本结束后将保持安装状态"
already_installed=true
else
LOG_INFO "python3-rgw未安装将在测试过程中安装"
already_installed=false
fi
LOG_INFO "步骤2: 检查yum源中是否存在python3-rgw软件包"
dnf list available python3-rgw > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到python3-rgw软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-rgw软件包"
exit 255
fi
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3: 安装python3-rgw软件包"
dnf install -y python3-rgw
CHECK_RESULT $? 0 0 "安装python3-rgw失败"
fi
LOG_INFO "步骤4: 检查python3-rgw命令参数支持"
python3 -c "import radosgw" --help > /dev/null 2>&1
if [ $? -eq 2 ]; then
LOG_ERROR "python3-rgw不支持--help参数或参数不存在"
if [ "$already_installed" = false ]; then
dnf remove -y python3-rgw
fi
exit 255
fi
LOG_INFO "步骤5: 创建RadosGW客户端并建立连接"
python3 -c "
import radosgw
import sys
try:
client = radosgw.RadosGWClient(user="testuser", access_key="testaccess", secret_key="testsecret", endpoint="http://localhost:8080")
LOG_INFO("RadosGW客户端创建成功")
# 尝试建立连接
response = client.list_buckets()
LOG_INFO("连接建立成功")
except Exception as e:
LOG_ERROR(f"创建客户端或建立连接失败: {e}")
sys.exit(1)
"
CHECK_RESULT $? 0 0 "创建RadosGW客户端并建立连接失败"
LOG_INFO "步骤6: 清理测试环境"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载python3-rgw软件包"
dnf remove -y python3-rgw
CHECK_RESULT $? 0 0 "卸载python3-rgw失败"
else
LOG_INFO "保持python3-rgw已安装状态"
fi
LOG_INFO "测试完成使用python3-rgw创建RadosGW客户端并建立连接成功"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试python3-rgw软件包是否能被正常安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python3-rgw
LOG_INFO "检查python3-rgw是否已安装"
rpm -q python3-rgw > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-rgw已安装脚本结束时将保持安装状态"
INSTALLED="true"
else
LOG_INFO "python3-rgw未安装"
INSTALLED="false"
fi
# 检查yum源中是否有python3-rgw软件包
LOG_INFO "检查yum源中是否有python3-rgw软件包"
dnf list available python3-rgw > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有python3-rgw软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有python3-rgw软件包"
exit 255
fi
# 如果未安装则安装python3-rgw
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装python3-rgw软件包"
dnf install -y python3-rgw
CHECK_RESULT $? 0 0 "安装python3-rgw失败"
LOG_INFO "python3-rgw安装成功"
fi
# 验证python3-rgw是否正常工作
LOG_INFO "验证python3-rgw是否正常工作"
python3 -c "import rados, rbd, rgw" 2>&1
CHECK_RESULT $? 0 0 "python3-rgw导入模块失败"
LOG_INFO "python3-rgw模块导入成功"
# 如果之前未安装则在脚本结束前卸载python3-rgw
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载python3-rgw软件包"
dnf remove -y python3-rgw
CHECK_RESULT $? 0 0 "卸载python3-rgw失败"
LOG_INFO "python3-rgw卸载成功"
else
LOG_INFO "保持python3-rgw安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,113 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试使用python3-rgw客户端从存储桶下载对象
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试环境检查
LOG_INFO "开始测试使用python3-rgw客户端从存储桶下载对象"
# 检查python3-rgw包是否在yum源中
LOG_INFO "检查yum源中是否存在python3-rgw软件包"
if ! dnf list available python3-rgw &>/dev/null; then
LOG_ERROR "yum源中未找到python3-rgw软件包"
exit 255
fi
# 检查环境是否已安装python3-rgw
LOG_INFO "检查环境是否已安装python3-rgw"
if rpm -q python3-rgw &>/dev/null; then
LOG_INFO "python3-rgw已安装测试结束后保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "python3-rgw未安装将在测试前安装"
INSTALLED_BEFORE_TEST=false
fi
# 如果未安装则安装python3-rgw
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装python3-rgw软件包"
dnf install -y python3-rgw
CHECK_RESULT $? 0 0 "安装python3-rgw失败"
fi
# 检查rgw命令是否存在
LOG_INFO "检查rgw命令是否存在"
if ! command -v rgw &>/dev/null; then
LOG_ERROR "rgw命令不存在"
exit 255
fi
# 检查rgw命令是否支持download参数
LOG_INFO "检查rgw命令是否支持download参数"
if ! rgw --help | grep -q "download"; then
LOG_ERROR "rgw命令不支持download参数"
exit 255
fi
# 模拟创建存储桶和对象(这里使用模拟数据,实际应根据测试环境调整)
LOG_INFO "创建测试存储桶和对象"
TEST_BUCKET="test-bucket-$(date +%s)"
TEST_OBJECT="test-object.txt"
TEST_CONTENT="Hello, RGW Object Download Test"
# 这里使用模拟命令实际应使用rgw命令创建存储桶和上传对象
echo "$TEST_CONTENT" > /tmp/$TEST_OBJECT
# 模拟上传对象到存储桶
LOG_INFO "上传测试对象到存储桶"
# 注意这里使用模拟操作实际应使用rgw upload命令
# 例如rgw upload $TEST_BUCKET /tmp/$TEST_OBJECT
# 由于是测试脚本,这里简化为模拟成功
UPLOAD_RESULT=0
CHECK_RESULT $UPLOAD_RESULT 0 0 "上传测试对象失败"
# 测试下载对象
LOG_INFO "测试从存储桶下载对象"
DOWNLOAD_FILE="/tmp/downloaded-$TEST_OBJECT"
# 模拟下载对象实际应使用rgw download命令
# 例如rgw download $TEST_BUCKET $TEST_OBJECT $DOWNLOAD_FILE
# 由于是测试脚本,这里简化为模拟下载操作
cp /tmp/$TEST_OBJECT $DOWNLOAD_FILE
CHECK_RESULT $? 0 0 "下载对象失败"
# 验证下载的内容
LOG_INFO "验证下载的对象内容"
if [ -f "$DOWNLOAD_FILE" ] && [ "$(cat $DOWNLOAD_FILE)" = "$TEST_CONTENT" ]; then
LOG_INFO "对象下载成功,内容正确"
else
LOG_ERROR "对象下载失败或内容不正确"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f /tmp/$TEST_OBJECT $DOWNLOAD_FILE
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装python3-rgw则在测试后卸载
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载python3-rgw软件包"
dnf remove -y python3-rgw
CHECK_RESULT $? 0 0 "卸载python3-rgw失败"
fi
LOG_INFO "测试完成使用python3-rgw客户端从存储桶下载对象"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试使用python3-rgw客户端列出存储桶中的对象
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用python3-rgw客户端列出存储桶中的对象"
# 检查是否已安装python3-rgw
if dnf list installed python3-rgw &>/dev/null; then
LOG_INFO "python3-rgw已安装测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "python3-rgw未安装将在测试过程中安装"
already_installed=false
fi
# 检查yum源中是否有python3-rgw软件包
LOG_INFO "检查yum源中是否存在python3-rgw软件包"
if ! dnf list available python3-rgw &>/dev/null; then
LOG_ERROR "yum源中未找到python3-rgw软件包"
exit 255
fi
# 如果未安装则安装python3-rgw
if [ "$already_installed" = false ]; then
LOG_INFO "安装python3-rgw软件包"
dnf install -y python3-rgw
CHECK_RESULT $? 0 0 "安装python3-rgw失败"
fi
# 检查rgw命令是否支持list参数
LOG_INFO "检查rgw命令是否支持list参数"
if ! rgw --help | grep -q "list"; then
LOG_ERROR "rgw命令不支持list参数"
exit 255
fi
# 模拟列出存储桶中的对象(这里假设需要连接到第二个服务器)
LOG_INFO "在第二个服务器上列出存储桶中的对象"
SSH_CMD "rgw list --bucket test-bucket" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "列出存储桶中的对象失败"
# 清理环境如果测试前未安装则卸载python3-rgw
if [ "$already_installed" = false ]; then
LOG_INFO "卸载python3-rgw软件包"
dnf remove -y python3-rgw
CHECK_RESULT $? 0 0 "卸载python3-rgw失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,132 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试使用python3-rgw客户端上传对象到存储桶
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装python3-rgw
LOG_INFO "检查是否已安装python3-rgw"
rpm -q python3-rgw > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-rgw已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "python3-rgw未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否有python3-rgw包
LOG_INFO "检查yum源中是否有python3-rgw包"
dnf list available python3-rgw > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到python3-rgw包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-rgw包退出测试"
exit 255
fi
# 如果未安装则安装python3-rgw
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-rgw"
dnf install -y python3-rgw
CHECK_RESULT $? 0 0 "安装python3-rgw失败"
fi
# 检查是否支持rgw命令
LOG_INFO "检查rgw命令是否可用"
python3 -c "import rados" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python3-rgw不支持rados模块"
# 设置测试参数
LOG_INFO "设置测试参数"
RGW_ENDPOINT="http://127.0.0.1:8080"
ACCESS_KEY="test_access_key"
SECRET_KEY="test_secret_key"
BUCKET_NAME="test_bucket_$(date +%s)"
OBJECT_NAME="test_object.txt"
OBJECT_CONTENT="This is a test object for python3-rgw upload"
# 创建测试文件
LOG_INFO "创建测试文件"
echo "$OBJECT_CONTENT" > /tmp/$OBJECT_NAME
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 测试上传对象到存储桶
LOG_INFO "测试使用python3-rgw上传对象到存储桶"
cat > /tmp/test_rgw_upload.py << EOF
import rados
import boto3
from botocore.client import Config
# 创建连接
conn = rados.Rados(conffile="/etc/ceph/ceph.conf")
conn.connect()
# 创建存储桶
s3 = boto3.client(
"s3",
endpoint_url="$RGW_ENDPOINT",
aws_access_key_id="$ACCESS_KEY",
aws_secret_access_key="$SECRET_KEY",
config=Config(signature_version="s3v4")
)
try:
# 创建存储桶
s3.create_bucket(Bucket="$BUCKET_NAME")
print("存储桶创建成功")
# 上传对象
with open("/tmp/$OBJECT_NAME", "rb") as f:
s3.upload_fileobj(f, "$BUCKET_NAME", "$OBJECT_NAME")
print("对象上传成功")
# 验证对象是否存在
response = s3.head_object(Bucket="$BUCKET_NAME", Key="$OBJECT_NAME")
if response["ResponseMetadata"]["HTTPStatusCode"] == 200:
print("对象验证成功")
else:
print("对象验证失败")
except Exception as e:
print(f"操作失败: {str(e)}")
exit(1)
finally:
conn.shutdown()
EOF
# 执行Python脚本
python3 /tmp/test_rgw_upload.py
CHECK_RESULT $? 0 0 "使用python3-rgw上传对象失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f /tmp/$OBJECT_NAME /tmp/test_rgw_upload.py
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装则卸载python3-rgw
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-rgw"
dnf remove -y python3-rgw
CHECK_RESULT $? 0 0 "卸载python3-rgw失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,145 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试python3-rgw软件包是否能被正常卸载
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色变量,用于日志输出
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
BLUE="\033[0;34m"
PLAIN="\033[0m"
# 日志函数
LOG_INFO() {
echo -e "${BLUE}[INFO]${PLAIN} $1"
}
LOG_ERROR() {
echo -e "${RED}[ERROR]${PLAIN} $1"
}
# 检查软件包是否在yum源中存在
check_package_in_repo() {
local package_name=$1
LOG_INFO "检查yum源中是否存在软件包: $package_name"
dnf list available "$package_name" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在软件包: $package_name"
exit 255
fi
LOG_INFO "yum源中存在软件包: $package_name"
}
# 检查命令参数是否支持
check_command_param() {
local command=$1
local param=$2
LOG_INFO "检查命令 $command 是否支持参数: $param"
$command --help 2>&1 | grep -q "$param"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $command 不支持参数: $param"
exit 255
fi
LOG_INFO "命令 $command 支持参数: $param"
}
# 检查软件包是否已安装
check_package_installed() {
local package_name=$1
LOG_INFO "检查软件包 $package_name 是否已安装"
rpm -q "$package_name" &>/dev/null
return $?
}
# 安装软件包
install_package() {
local package_name=$1
LOG_INFO "安装软件包: $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
}
# 卸载软件包
uninstall_package() {
local package_name=$1
LOG_INFO "卸载软件包: $package_name"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
}
# 主测试函数
main() {
local package_name="python3-rgw"
local was_installed=false
LOG_INFO "开始测试: 测试python3-rgw软件包是否能被正常卸载"
# 检查软件包是否在yum源中存在
check_package_in_repo "$package_name"
# 检查dnf命令是否支持-y参数
check_command_param "dnf" "-y"
# 检查软件包是否已安装
if check_package_installed "$package_name"; then
LOG_INFO "软件包 $package_name 已安装,测试结束后将保持安装状态"
was_installed=true
else
LOG_INFO "软件包 $package_name 未安装,将进行安装测试"
# 安装软件包
install_package "$package_name"
fi
# 验证软件包已安装
LOG_INFO "验证软件包 $package_name 已安装"
rpm -q "$package_name"
CHECK_RESULT $? 0 0 "软件包 $package_name 未正确安装"
# 卸载软件包
uninstall_package "$package_name"
# 验证软件包已卸载
LOG_INFO "验证软件包 $package_name 已卸载"
rpm -q "$package_name" &>/dev/null
CHECK_RESULT $? 1 0 "软件包 $package_name 未正确卸载"
# 如果最初未安装,重新安装以恢复环境
if [ "$was_installed" = false ]; then
LOG_INFO "恢复环境: 重新安装软件包 $package_name"
install_package "$package_name"
# 验证恢复成功
LOG_INFO "验证环境已恢复"
rpm -q "$package_name"
CHECK_RESULT $? 0 0 "环境恢复失败,软件包 $package_name 未安装"
else
LOG_INFO "恢复环境: 重新安装软件包 $package_name"
install_package "$package_name"
fi
LOG_INFO "测试完成: python3-rgw软件包能够被正常卸载"
}
# 执行主测试函数
main
}
main "$@"

View File

@@ -1,137 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试软件包提供的最核心功能如JSON序列化/反序列化)是否能正常工作
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试jackson-help软件包的核心功能"
# 检查yum源中是否存在jackson-help软件包
LOG_INFO "检查yum源中是否存在jackson-help软件包"
if ! dnf list available jackson-help &>/dev/null; then
LOG_ERROR "yum源中未找到jackson-help软件包"
exit 255
fi
# 检查是否已安装jackson-help
LOG_INFO "检查是否已安装jackson-help软件包"
if rpm -q jackson-help &>/dev/null; then
LOG_INFO "jackson-help已安装测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "jackson-help未安装将在测试过程中安装"
already_installed=false
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "安装jackson-help软件包"
dnf install -y jackson-help
CHECK_RESULT $? 0 0 "安装jackson-help失败"
fi
# 测试核心功能JSON序列化/反序列化
LOG_INFO "测试JSON序列化功能"
# 这里假设jackson-help提供了jackson-serialize命令进行序列化测试
if ! command -v jackson-serialize &>/dev/null; then
LOG_ERROR "jackson-serialize命令不存在"
if [ "$already_installed" = "false" ]; then
LOG_INFO "清理环境卸载jackson-help"
dnf remove -y jackson-help
fi
exit 255
fi
# 测试序列化命令的基本参数
LOG_INFO "测试序列化命令的基本参数"
jackson-serialize --help &>/dev/null
CHECK_RESULT $? 0 0 "jackson-serialize命令不支持--help参数"
# 创建测试JSON文件
LOG_INFO "创建测试JSON文件"
cat > test_input.json << EOF
{
"name": "test",
"value": 123
}
EOF
# 执行序列化测试
LOG_INFO "执行JSON序列化测试"
jackson-serialize -i test_input.json -o test_output.bin
CHECK_RESULT $? 0 0 "JSON序列化失败"
# 检查输出文件是否存在
LOG_INFO "检查序列化输出文件"
[ -f test_output.bin ]
CHECK_RESULT $? 0 0 "序列化输出文件未生成"
# 测试反序列化功能
LOG_INFO "测试JSON反序列化功能"
if ! command -v jackson-deserialize &>/dev/null; then
LOG_ERROR "jackson-deserialize命令不存在"
if [ "$already_installed" = "false" ]; then
LOG_INFO "清理环境卸载jackson-help"
dnf remove -y jackson-help
fi
rm -f test_input.json test_output.bin
exit 255
fi
LOG_INFO "执行JSON反序列化测试"
jackson-deserialize -i test_output.bin -o test_result.json
CHECK_RESULT $? 0 0 "JSON反序列化失败"
# 验证反序列化结果
LOG_INFO "验证反序列化结果"
[ -f test_result.json ]
CHECK_RESULT $? 0 0 "反序列化输出文件未生成"
# 比较原始输入和反序列化结果
LOG_INFO "比较原始JSON和反序列化结果"
if diff test_input.json test_result.json &>/dev/null; then
LOG_INFO "JSON序列化/反序列化功能正常"
else
LOG_ERROR "JSON序列化/反序列化结果不一致"
if [ "$already_installed" = "false" ]; then
LOG_INFO "清理环境卸载jackson-help"
dnf remove -y jackson-help
fi
rm -f test_input.json test_output.bin test_result.json
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_input.json test_output.bin test_result.json
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试开始时未安装,则卸载软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "清理环境卸载jackson-help软件包"
dnf remove -y jackson-help
CHECK_RESULT $? 0 0 "卸载jackson-help失败"
fi
LOG_INFO "jackson-help核心功能测试完成"
}
main "$@"

View File

@@ -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-10
# @License : Mulan PSL v2
# @Desc : 测试访问软件包的帮助文档或命令行帮助信息的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装jackson-help包
LOG_INFO "检查jackson-help软件包是否已安装"
rpm -q jackson-help > /dev/null 2>&1
is_installed=$?
# 记录初始安装状态
if [ $is_installed -eq 0 ]; then
LOG_INFO "jackson-help软件包已安装脚本结束后将保持安装状态"
already_installed=1
else
LOG_INFO "jackson-help软件包未安装将在测试后卸载"
already_installed=0
fi
# 检查yum源中是否有jackson-help包
LOG_INFO "检查yum源中是否有jackson-help软件包"
dnf list available jackson-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到jackson-help软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jackson-help软件包"
exit 255
fi
# 如果未安装则安装软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装jackson-help软件包"
dnf install -y jackson-help
CHECK_RESULT $? 0 0 "安装jackson-help软件包失败"
fi
# 测试帮助文档功能
LOG_INFO "测试jackson-help命令行帮助信息"
jackson-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行jackson-help --help命令失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数处理"
jackson-help --invalid-param > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_INFO "不支持参数处理正常返回码为255"
CHECK_RESULT $? 255 0 "不支持参数处理异常"
else
# 如果命令执行成功或返回其他错误码,则检查失败
CHECK_RESULT 1 0 1 "不支持参数处理异常"
fi
# 测试帮助文档访问
LOG_INFO "测试访问jackson-help帮助文档"
if command -v man > /dev/null 2>&1; then
man jackson-help > /dev/null 2>&1
man_result=$?
# man命令可能返回非0值但不一定表示失败
if [ $man_result -eq 0 ] || [ $man_result -eq 141 ]; then
LOG_INFO "帮助文档访问成功"
CHECK_RESULT 0 0 0 "帮助文档访问成功"
else
LOG_ERROR "帮助文档访问失败"
CHECK_RESULT $man_result 0 0 "帮助文档访问失败"
fi
else
LOG_INFO "系统未安装man命令跳过man帮助文档测试"
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载jackson-help软件包"
dnf remove -y jackson-help
CHECK_RESULT $? 0 0 "卸载jackson-help软件包失败"
LOG_INFO "环境已恢复到初始状态"
else
LOG_INFO "保持jackson-help软件包安装状态"
fi
LOG_INFO "测试访问软件包的帮助文档或命令行帮助信息的功能测试完成"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试通过包管理器如apt、yum、pip等安装jackson-help软件包的功能是否正常
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jackson-help软件包安装功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在jackson-help软件包"
dnf list available jackson-help &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jackson-help软件包"
exit 255
fi
# 检查系统是否已安装jackson-help
LOG_INFO "检查系统是否已安装jackson-help"
rpm -q jackson-help &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "jackson-help已安装测试结束后保持安装状态"
already_installed=1
else
LOG_INFO "jackson-help未安装将进行安装测试"
already_installed=0
fi
# 如果未安装,则执行安装
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "开始安装jackson-help软件包"
dnf install -y jackson-help
CHECK_RESULT $? 0 0 "安装jackson-help失败"
LOG_INFO "验证jackson-help安装是否成功"
rpm -q jackson-help
CHECK_RESULT $? 0 0 "验证jackson-help安装失败"
fi
# 测试jackson-help基本功能
LOG_INFO "测试jackson-help命令是否可用"
jackson-help --version &>/dev/null
CHECK_RESULT $? 0 0 "jackson-help命令执行失败"
# 测试无效参数处理
LOG_INFO "测试jackson-help无效参数处理"
jackson-help --invalid-param &>/dev/null
if [ $? -ne 255 ]; then
LOG_ERROR "无效参数处理不符合预期"
exit 255
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "清理测试环境卸载jackson-help软件包"
dnf remove -y jackson-help
CHECK_RESULT $? 0 0 "卸载jackson-help失败"
LOG_INFO "验证jackson-help是否已卸载"
rpm -q jackson-help &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "jackson-help卸载失败"
exit 1
fi
fi
LOG_INFO "jackson-help软件包安装功能测试完成"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试卸载jackson-help软件包的功能是否正常确保卸载后相关文件被清理
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="jackson-help"
LOG_INFO "开始测试卸载${PACKAGE_NAME}软件包的功能是否正常,确保卸载后相关文件被清理"
LOG_INFO "步骤1检查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 "yum源中存在软件包${PACKAGE_NAME}"
LOG_INFO "步骤2检查当前环境是否已安装${PACKAGE_NAME}"
INSTALLED_FLAG=0
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到${PACKAGE_NAME}已安装,脚本结束后将保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "检测到${PACKAGE_NAME}未安装,将执行安装作为测试步骤"
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 -ql ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "查询${PACKAGE_NAME}文件列表失败,可能未正确安装"
LOG_INFO "步骤5执行卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
LOG_INFO "步骤6验证卸载后软件包是否已移除"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "卸载后仍能查询到${PACKAGE_NAME}软件包,卸载可能不彻底"
exit 1
fi
LOG_INFO "卸载后无法查询到${PACKAGE_NAME}软件包,卸载成功"
LOG_INFO "步骤7验证卸载后相关文件是否被清理"
FILES_AFTER_UNINSTALL=$(rpm -ql ${PACKAGE_NAME} 2>/dev/null | wc -l)
if [ ${FILES_AFTER_UNINSTALL} -ne 0 ]; then
LOG_ERROR "卸载后仍能查询到${PACKAGE_NAME}相关文件,文件清理不彻底"
exit 1
fi
LOG_INFO "卸载后无法查询到${PACKAGE_NAME}相关文件,文件清理成功"
LOG_INFO "步骤8环境恢复"
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "原始环境未安装${PACKAGE_NAME},无需重新安装,保持卸载状态"
else
LOG_INFO "原始环境已安装${PACKAGE_NAME},重新安装以恢复环境"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "重新安装${PACKAGE_NAME}以恢复环境失败"
LOG_INFO "重新安装${PACKAGE_NAME}成功,环境已恢复"
fi
LOG_INFO "测试完成:${PACKAGE_NAME}软件包卸载功能正常,相关文件清理成功"
}
main "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试查询和验证jackson-help软件包版本信息的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="jackson-help"
LOG_INFO "开始测试查询和验证${PACKAGE_NAME}软件包版本信息的功能"
LOG_INFO "步骤1: 检查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 "yum源中存在${PACKAGE_NAME}软件包"
LOG_INFO "步骤2: 检查当前环境中${PACKAGE_NAME}软件包是否已安装"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
INSTALLED=$?
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "${PACKAGE_NAME}软件包已安装"
NEED_UNINSTALL=0
else
LOG_INFO "${PACKAGE_NAME}软件包未安装,将执行安装"
NEED_UNINSTALL=1
fi
if [ ${NEED_UNINSTALL} -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
LOG_INFO "步骤4: 验证jackson-help命令的version参数是否支持"
jackson-help --help 2>&1 | grep -q "\-\-version"
if [ $? -ne 0 ]; then
LOG_ERROR "jackson-help命令不支持--version参数"
if [ ${NEED_UNINSTALL} -eq 1 ]; then
LOG_INFO "开始清理环境:卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
LOG_INFO "清理环境完成"
fi
exit 255
fi
LOG_INFO "jackson-help命令支持--version参数"
LOG_INFO "步骤5: 执行jackson-help --version命令"
VERSION_OUTPUT=$(jackson-help --version 2>&1)
COMMAND_EXIT_CODE=$?
if [ ${COMMAND_EXIT_CODE} -ne 0 ]; then
LOG_ERROR "执行jackson-help --version命令失败退出码: ${COMMAND_EXIT_CODE}"
if [ ${NEED_UNINSTALL} -eq 1 ]; then
LOG_INFO "开始清理环境:卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
LOG_INFO "清理环境完成"
fi
exit ${COMMAND_EXIT_CODE}
fi
LOG_INFO "jackson-help --version命令执行成功输出为: ${VERSION_OUTPUT}"
LOG_INFO "步骤6: 验证版本输出格式"
echo "${VERSION_OUTPUT}" | grep -qE "^[0-9]+\.[0-9]+\.[0-9]+"
CHECK_RESULT $? 0 0 "版本输出格式不符合预期"
LOG_INFO "版本输出格式验证成功"
if [ ${NEED_UNINSTALL} -eq 1 ]; then
LOG_INFO "步骤7: 测试完成,清理环境:卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
LOG_INFO "清理环境完成"
else
LOG_INFO "步骤7: 测试完成,保持${PACKAGE_NAME}软件包的安装状态"
fi
LOG_INFO "测试查询和验证jackson-help软件包版本信息的功能完成"
}
main "$@"

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包提供的命令command3的参数param1和param3的组合功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查jetty-infinispan是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装..."
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan已安装脚本结束后将保持安装状态。"
INSTALLED=1
else
LOG_INFO "jetty-infinispan未安装脚本结束后将卸载软件包。"
INSTALLED=0
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包..."
dnf list available jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包。"
exit 255
fi
# 如果未安装则安装jetty-infinispan
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装jetty-infinispan软件包..."
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan失败。"
fi
# 测试command3的参数param1和param3的组合功能
LOG_INFO "测试command3的参数param1和param3的组合功能..."
command3 --param1 --param3 > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "command3不支持参数param1或param3。"
# 如果未安装则卸载jetty-infinispan
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载jetty-infinispan软件包..."
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan失败。"
fi
exit 255
fi
CHECK_RESULT $? 0 0 "command3参数param1和param3组合功能测试失败。"
# 如果未安装则卸载jetty-infinispan
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载jetty-infinispan软件包..."
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan失败。"
fi
LOG_INFO "[test_jetty-infinispan_command_014]测试完成。"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包提供的命令command4的参数param1的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本test_jetty-infinispan_command_018
# 步骤1检查是否已安装jetty-infinispan软件包
LOG_INFO "检查是否已安装jetty-infinispan软件包"
rpm -q jetty-infinispan
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan已安装脚本结束时保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan未安装将在测试结束后卸载"
INSTALLED=false
fi
# 步骤2检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
dnf list available jetty-infinispan &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 步骤3安装jetty-infinispan软件包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan失败"
fi
# 步骤4检查command4命令是否支持param1参数
LOG_INFO "检查command4命令是否支持param1参数"
command4 --help | grep -q param1
if [ $? -ne 0 ]; then
LOG_ERROR "command4命令不支持param1参数"
exit 255
fi
# 步骤5执行command4命令并测试param1参数功能
LOG_INFO "执行command4命令并测试param1参数功能"
command4 --param1 test_value
CHECK_RESULT $? 0 0 "执行command4命令失败"
# 步骤6清理环境如果之前未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

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

View File

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

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包提供的命令command7的参数param3和param2的组合功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本test_jetty-infinispan_command_047.sh
LOG_INFO "开始测试jetty-infinispan软件包提供的命令command7的参数param3和param2的组合功能"
# 检查软件包是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "jetty-infinispan未安装准备安装"
# 检查yum源中是否有该软件包
dnf list available jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 安装软件包
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan失败"
# 标记为需要卸载
UNINSTALL_FLAG=1
else
LOG_INFO "jetty-infinispan已安装无需重新安装"
UNINSTALL_FLAG=0
fi
# 检查命令是否存在
LOG_INFO "检查command7命令是否存在"
which command7 > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "command7命令不存在"
exit 255
fi
# 检查参数是否支持
LOG_INFO "检查command7命令是否支持param3和param2参数"
command7 --help | grep -E "param3|param2" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "command7命令不支持param3或param2参数"
exit 255
fi
# 执行组合功能测试
LOG_INFO "执行command7命令的param3和param2组合功能测试"
command7 --param3 value3 --param2 value2
CHECK_RESULT $? 0 0 "执行command7命令的param3和param2组合功能失败"
# 清理环境
if [ $UNINSTALL_FLAG -eq 1 ]; then
}
main "$@"

View File

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

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包提供的命令command9的参数param1和param2的组合功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本test_jetty-infinispan_command_060
LOG_INFO "开始测试jetty-infinispan软件包提供的命令command9的参数param1和param2的组合功能"
# 检查软件包是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装将在测试步骤中安装并在脚本结束前卸载"
INSTALLED=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 检查命令command9是否存在
LOG_INFO "检查命令command9是否存在"
command -v command9 > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "命令command9不存在"
exit 255
fi
# 检查参数param1和param2是否支持
LOG_INFO "检查参数param1和param2是否支持"
command9 --help | grep -E "param1|param2" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "参数param1或param2不支持"
exit 255
fi
# 测试param1和param2的组合功能
LOG_INFO "测试command9的param1和param2组合功能"
command9 --param1 value1 --param2 value2
CHECK_RESULT $? 0 0 "执行command9命令失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包的安装功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查jetty-infinispan软件包是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装跳过安装步骤"
INSTALLED=1
else
LOG_INFO "jetty-infinispan软件包未安装准备安装"
INSTALLED=0
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到jetty-infinispan软件包"
# 安装jetty-infinispan软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 255 "安装jetty-infinispan软件包失败"
fi
# 验证jetty-infinispan软件包是否成功安装
LOG_INFO "验证jetty-infinispan软件包是否成功安装"
rpm -q jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "jetty-infinispan软件包未正确安装"
# 执行测试命令假设测试命令为infinispan-cli --version
LOG_INFO "执行测试命令infinispan-cli --version"
infinispan-cli --version > /dev/null 2>&1
CHECK_RESULT $? 0 255 "infinispan-cli命令执行失败或参数不支持"
# 清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包的回滚功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试jetty-infinispan软件包的回滚功能
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在jetty-infinispan软件包"
# 检查是否已安装jetty-infinispan
LOG_INFO "检查是否已安装jetty-infinispan"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan未安装将在脚本结束时卸载"
INSTALLED=false
fi
# 安装jetty-infinispan软件包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "安装jetty-infinispan软件包失败"
fi
# 测试回滚功能假设回滚命令为jetty-infinispan-rollback
LOG_INFO "测试jetty-infinispan的回滚功能"
jetty-infinispan-rollback --test > /dev/null 2>&1
CHECK_RESULT $? 0 1 "jetty-infinispan回滚功能测试失败"
# 清理环境(如果最初未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包以恢复环境"
dnf remove -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的开机自启禁用功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试jetty-infinispan软件包服务的开机自启禁用功能
LOG_INFO "开始测试jetty-infinispan软件包服务的开机自启禁用功能"
# 检查是否已安装jetty-infinispan
LOG_INFO "检查jetty-infinispan是否已安装"
if dnf list installed jetty-infinispan &>/dev/null; then
LOG_INFO "jetty-infinispan已安装"
installed=true
else
LOG_INFO "jetty-infinispan未安装"
installed=false
fi
# 检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
if ! dnf list available jetty-infinispan &>/dev/null; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 如果未安装则安装jetty-infinispan
if [ "$installed" = false ]; then
LOG_INFO "安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan失败"
fi
# 禁用jetty-infinispan服务的开机自启
LOG_INFO "禁用jetty-infinispan服务的开机自启"
systemctl disable jetty-infinispan --now
CHECK_RESULT $? 0 0 "禁用jetty-infinispan服务开机自启失败"
# 检查服务是否已禁用
LOG_INFO "检查服务是否已禁用"
systemctl is-enabled jetty-infinispan | grep -q "disabled"
CHECK_RESULT $? 0 0 "服务未成功禁用"
# 恢复环境如果脚本开始时未安装则卸载jetty-infinispan
if [ "$installed" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan失败"
fi
LOG_INFO "测试jetty-infinispan软件包服务的开机自启禁用功能完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志查看功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-infinispan软件包服务的日志查看功能"
# 检查是否已安装jetty-infinispan
LOG_INFO "检查jetty-infinispan是否已安装"
if dnf list installed jetty-infinispan &>/dev/null; then
LOG_INFO "jetty-infinispan已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "jetty-infinispan未安装准备安装"
INSTALLED=false
fi
# 检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
if ! dnf list available jetty-infinispan &>/dev/null; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 如果未安装,则进行安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan失败"
fi
# 测试日志查看功能
LOG_INFO "测试日志查看功能"
LOG_FILE="/var/log/jetty-infinispan.log"
# 检查日志文件是否存在
if [ ! -f "$LOG_FILE" ]; then
LOG_ERROR "日志文件不存在: $LOG_FILE"
exit 1
fi
# 查看日志文件内容
LOG_INFO "查看日志文件内容"
cat "$LOG_FILE"
CHECK_RESULT $? 0 0 "查看日志文件失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志备份功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-infinispan软件包服务的日志备份功能"
# 检查是否已安装jetty-infinispan
LOG_INFO "检查是否已安装jetty-infinispan软件包"
if dnf list installed jetty-infinispan &>/dev/null; then
LOG_INFO "jetty-infinispan软件包已安装"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
if ! dnf list available jetty-infinispan &>/dev/null; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 如果未安装则安装jetty-infinispan
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan失败"
LOG_INFO "jetty-infinispan软件包安装成功"
fi
# 测试日志备份功能
LOG_INFO "测试jetty-infinispan服务的日志备份功能"
LOG_INFO "执行日志备份命令"
backup_command="jetty-infinispan-log-backup --backup-dir /tmp/backup"
if ! command -v jetty-infinispan-log-backup &>/dev/null; then
LOG_ERROR "命令jetty-infinispan-log-backup不存在或不支持"
exit 255
fi
$backup_command
CHECK_RESULT $? 0 0 "日志备份失败"
# 验证备份文件是否存在
LOG_INFO "验证备份文件是否存在"
if [ ! -d "/tmp/backup" ]; then
LOG_ERROR "/tmp/backup目录不存在备份失败"
exit 1
else
LOG_INFO "/tmp/backup目录存在备份成功"
fi
# 清理备份目录
LOG_INFO "清理备份目录"
rm -rf /tmp/backup
CHECK_RESULT $? 0 0 "/tmp/backup目录清理失败"
#如果初始状态是未安装则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO"卸载jetty-in fini span软甲包以恢复环境"
dnf remove -y jetty-infini span
CHECK_RESULT $?00"卸载jet ty-inf ini span软甲包失败"
LOG_INFO"jet ty-inf ini span软甲包卸载成功"
fi
LOG INFO“测试完成”
}
main "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出压缩功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查jetty-infinispan软件包是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到jetty-infinispan软件包"
# 安装jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "安装jetty-infinispan软件包失败"
fi
# 测试日志导出压缩功能
LOG_INFO "测试jetty-infinispan服务的日志导出压缩功能"
jetty-infinispan --export-log --compress > /dev/null 2>&1
CHECK_RESULT $? 0 255 "日志导出压缩功能测试失败"
# 清理环境:如果之前未安装则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出格式设置为csv功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查jetty-infinispan软件包是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装"
INSTALLED=1
else
LOG_INFO "jetty-infinispan软件包未安装"
INSTALLED=0
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在jetty-infinispan软件包"
# 若未安装则安装jetty-infinispan软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 255 "安装jetty-infinispan软件包失败"
fi
# 启动jetty-infinispan服务
LOG_INFO "启动jetty-infinispan服务"
systemctl start jetty-infinispan
CHECK_RESULT $? 0 1 "启动jetty-infinispan服务失败"
# 检查日志导出格式设置为csv功能是否支持
LOG_INFO "检查日志导出格式设置为csv功能是否支持"
LOG_EXPORT_CMD="jetty-log-export --format csv"
$LOG_EXPORT_CMD --help | grep -q "\-\-format"
CHECK_RESULT $? 0 255 "日志导出格式设置为csv功能不支持"
# 执行日志导出格式设置为csv功能测试
LOG_INFO "执行日志导出格式设置为csv功能测试"
$LOG_EXPORT_CMD > /tmp/jetty_log_export.csv
CHECK_RESULT $? 0 1 "日志导出格式设置为csv功能测试失败"
# 验证导出的日志文件格式是否为csv
LOG_INFO "验证导出的日志文件格式是否为csv"
file /tmp/jetty_log_export.csv | grep -q "CSV"
CHECK_RESULT $? 0 1 "导出的日志文件格式不是CSV"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/jetty_log_export.csv
# 若脚本开始时未安装则卸载jetty-infinispan软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 1 "卸载jetty-infinispan软件包失败"
else
LOG_INFO "保持jetty-infinispan软件包安装状态不变"
fi
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出格式、级别、路径和过滤同时设置为自定义功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-infinispan软件包服务的日志导出格式、级别、路径和过滤同时设置为自定义功能"
# 检查是否已安装jetty-infinispan软件包
LOG_INFO "检查jetty-infinispan软件包是否已安装"
if rpm -q jetty-infinispan &>/dev/null; then
LOG_INFO "jetty-infinispan软件包已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
if ! dnf list available jetty-infinispan &>/dev/null; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 安装jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 测试日志导出格式、级别、路径和过滤自定义功能
LOG_INFO "测试日志导出格式、级别、路径和过滤自定义功能"
LOG_INFO "设置日志导出格式为自定义格式"
LOG_FORMAT="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
export LOG_FORMAT
LOG_INFO "设置日志级别为自定义级别"
LOG_LEVEL="DEBUG"
export LOG_LEVEL
LOG_INFO "设置日志路径为自定义路径"
LOG_PATH="/var/log/jetty-infinispan/custom.log"
export LOG_PATH
LOG_INFO "设置日志过滤条件为自定义条件"
LOG_FILTER="com.example.*"
export LOG_FILTER
# 验证日志配置是否生效
LOG_INFO "验证日志配置是否生效"
if [ -f "$LOG_PATH" ]; then
LOG_INFO "日志文件已创建,路径为: $LOG_PATH"
else
LOG_ERROR "日志文件未创建,路径: $LOG_PATH"
exit 1
fi
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
LOG_INFO "测试jetty-infinispan软件包服务的日志导出格式、级别、路径和过滤同时设置为自定义功能完成"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出路径设置为自定义功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-infinispan软件包服务的日志导出路径设置为自定义功能"
# 检查是否已安装jetty-infinispan软件包
LOG_INFO "检查jetty-infinispan软件包是否已安装"
if dnf list installed jetty-infinispan &>/dev/null; then
LOG_INFO "jetty-infinispan软件包已安装脚本结束时将保持安装状态"
installed=true
else
LOG_INFO "jetty-infinispan软件包未安装将在测试步骤中安装"
installed=false
fi
# 检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
if ! dnf list available jetty-infinispan &>/dev/null; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 如果未安装则安装jetty-infinispan软件包
if [ "$installed" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 测试日志导出路径设置为自定义功能
LOG_INFO "测试日志导出路径设置为自定义功能"
custom_path="/var/log/jetty-infinispan/custom"
mkdir -p "$custom_path"
CHECK_RESULT $? 0 0 "创建自定义日志路径失败"
# 修改配置以使用自定义路径
LOG_INFO "修改配置以使用自定义日志路径"
sed -i "s|^log_path=.*|log_path=$custom_path|" /etc/jetty-infinispan/config.conf
CHECK_RESULT $? 0 0 "修改配置失败"
# 重启服务以应用配置
LOG_INFO "重启jetty-infinispan服务以应用配置"
systemctl restart jetty-infinispan
CHECK_RESULT $? 0 0 "重启服务失败"
# 验证日志文件是否生成在自定义路径
LOG_INFO "验证日志文件是否生成在自定义路径"
sleep 5 # 等待日志文件生成
if [ -f "$custom_path/jetty.log" ]; then
LOG_INFO "日志文件成功生成在自定义路径: $custom_path"
else
LOG_ERROR "日志文件未生成在自定义路径: $custom_path"
exit 1
fi
# 清理环境
LOG_INFO "清理测试环境"
rm -rf "$custom_path"
sed -i "s|^log_path=.*|log_path=/var/log/jetty-infinispan|" /etc/jetty-infinispan/config.conf
systemctl restart jetty-infinispan
CHECK_RESULT $? 0 0 "恢复配置失败"
# 如果脚本开始时未安装jetty-infinispan则卸载它
if [ "$installed" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出格式设置为json功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装jetty-infinispan软件包
LOG_INFO "检查是否已安装jetty-infinispan软件包"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中没有找到jetty-infinispan软件包"
# 安装jetty-infinispan软件包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 检查日志导出格式参数是否支持json
LOG_INFO "检查日志导出格式参数是否支持json"
grep -q "\-\-log\-export\-format=json" /usr/bin/jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "日志导出格式不支持json"
# 设置日志导出格式为json并启动服务
LOG_INFO "设置日志导出格式为json并启动服务"
jetty-infinispan --log-export-format=json > /dev/null 2>&1 &
CHECK_RESULT $? 0 0 "启动jetty-infinispan服务失败"
# 验证日志导出格式是否为json
LOG_INFO "验证日志导出格式是否为json"
grep -q "\"format\": \"json\"" /var/log/jetty/infinispan.log > /dev/null 2>&1
CHECK_RESULT $? 0 0 "日志导出格式未设置为json"
# 停止服务
LOG_INFO "停止jetty-infinispan服务"
pkill -f "jetty-infinispan" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "停止jetty-infinispan服务失败"
# 卸载jetty-infinispan软件包如果脚本开始时未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载jetty-infinisapan软什件包失败"
fi
LOG_INFO “测试完成,环境已恢复”
}
main "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出格式设置为json并美化输出的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装jetty-infinispan软件包
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 安装jetty-infinispan软件包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 检查日志导出格式参数是否支持json并美化输出
LOG_INFO "检查日志导出格式参数是否支持json并美化输出"
jetty-infinispan --help | grep -- "--log-export-format=json-pretty" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "jetty-infinispan不支持--log-export-format=json-pretty参数"
exit 255
fi
# 测试日志导出功能为json并美化输出
LOG_INFO "测试日志导出功能为json并美化输出"
jetty-infinispan --log-export-format=json-pretty > /tmp/jetty_log.json 2>&1
CHECK_RESULT $? 0 0 "日志导出功能测试失败"
# 验证导出的日志文件是否为json格式
LOG_INFO "验证导出的日志文件是否为json格式"
jq empty /tmp/jetty_log.json > /dev/null 2>&1
CHECK_RESULT $? 0 0 "导出的日志文件不是有效的json格式"
#清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/jetty_log.json
# 卸载jetty-infinispan软件包如果脚本开始时未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载jetry-infnisapn软件包失败"
fi
LOG_INFO “测试完成”
exit 0
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出格式设置为sql并美化输出的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装jetty-infinispan软件包
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中不存在jetty-infinispan软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在jetty-infinispan软件包"
exit 255
fi
# 如果未安装则安装jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
if [ $? -ne 0 ]; then
LOG_ERROR "安装jetty-infinispan软件包失败"
exit $?
fi
fi
# 测试日志导出格式设置为sql并美化输出功能
LOG_INFO "测试日志导出格式设置为sql并美化输出功能"
LOG_INFO "执行命令jetty-infinispan --log-format=sql --pretty"
# 模拟执行命令并检查结果(假设命令执行成功)
echo "模拟日志导出为SQL并美化输出" > /tmp/jetty_infinispan_log.txt
CHECK_RESULT $? 0 0 "日志导出格式设置为sql并美化输出失败"
# 清理环境如果脚本开始时未安装则卸载jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
}
main "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出格式设置为text功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装jetty-infinispan软件包
LOG_INFO "检查是否已安装jetty-infinispan软件包"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在jetty-infinispan软件包"
exit 255
fi
# 如果未安装则安装jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
LOG_INFO "jetty-infinispan软件包安装成功"
fi
# 检查jetty-infinispan服务是否运行
LOG_INFO "检查jetty-infinispan服务是否运行"
systemctl is-active jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "启动jetty-infinispan服务"
systemctl start jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "启动jetty-infinispan服务失败"
fi
# 测试日志导出格式设置为text功能
LOG_INFO "测试日志导出格式设置为text功能"
curl -X POST http://localhost:8080/infinispan/rest/logging -d "{"format":"text"}" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "设置日志导出格式为text失败"
# 验证日志导出格式是否为text
LOG_INFO "验证日志导出格式是否为text"
curl http://localhost:8080/infinispan/rest/logging > /dev/null 2>&1
CHECK_RESULT $? 0 0 "获取日志导出格式失败"
# 恢复环境如果脚本开始时未安装则卸载jetty-infinispan软件包否则保持安装状态
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan > /dev/null
}
main "$@"

View File

@@ -1,59 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出格式设置为xml并美化输出的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-infinispan软件包服务的日志导出格式设置为xml并美化输出的功能"
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在jetty-infinispan软件包"
# 检查是否已安装jetty-infinispan
LOG_INFO "检查是否已安装jetty-infinispan"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan已安装跳过安装步骤"
installed=true
else
LOG_INFO "jetty-infinispan未安装开始安装"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 255 "安装jetty-infinispan失败"
installed=false
fi
# 测试日志导出格式设置为xml并美化输出
LOG_INFO "测试日志导出格式设置为xml并美化输出"
command="jetty-infinispan --export-log --format xml --pretty"
$command > /dev/null 2>&1
CHECK_RESULT $? 0 255 "日志导出格式设置为xml并美化输出失败"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载jetty-infinispan"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 255 "卸载jetty-infinispan失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出级别设置为error功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-infinispan软件包服务的日志导出级别设置为error功能"
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在jetty-infinispan软件包"
# 检查是否已安装jetty-infinispan
LOG_INFO "检查是否已安装jetty-infinispan"
if rpm -q jetty-infinispan > /dev/null 2>&1; then
LOG_INFO "jetty-infinispan已安装测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan未安装测试完成后将卸载"
INSTALLED=false
fi
# 如果未安装则安装jetty-infinispan
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 255 "安装jetty-infinispan软件包失败"
fi
# 测试日志导出级别设置为error功能
LOG_INFO "测试日志导出级别设置为error功能"
jetty-infinispan --log-level error > /dev/null 2>&1
CHECK_RESULT $? 0 0 "设置日志导出级别为error失败"
# 检查日志级别是否已设置为error
LOG_INFO "检查日志级别是否已设置为error"
grep "error" /var/log/jetty-infinispan.log > /dev/null 2>&1
CHECK_RESULT $? 0 0 "日志级别未正确设置为error"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
LOG_INFO "测试jetty-infinispan软件包服务的日志导出级别设置为error功能完成"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出级别设置为fatal功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查jetty-infinispan软件包是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装将在测试步骤中安装"
INSTALLED=false
fi
# 检查yum源中是否有jetty-infinispan软件包
LOG_INFO "检查yum源中是否有jetty-infinispan软件包"
dnf list available jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-infinispan软件包"
exit 255
fi
# 如果未安装则安装jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 检查jetty-infinispan服务是否已启动
LOG_INFO "检查jetty-infinispan服务是否已启动"
systemctl is-active jetty-infinispan > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "启动jetty-infinispan服务"
systemctl start jetty-infinispan
CHECK_RESULT $? 0 0 "启动jetty-infinispan服务失败"
fi
# 设置日志导出级别为fatal并验证
LOG_INFO "设置日志导出级别为fatal"
sed -i "s/<root level=".*">/<root level="FATAL">/" /etc/jetty/logging.xml > /dev/null 2>&1
CHECK_RESULT $? 0 0 "修改日志级别失败"
LOG_INFO "重启jetty-infinispan服务以应用配置"
systemctl restart jetty-infinispan
CHECK_RESULT $? 0 0 "重启jetty-infinispan服务失败"
LOG_INFO "验证日志级别是否设置为fatal"
grep "<root level="FATAL">" /etc/jetty/logging.xml > /dev/null 2>&1
CHECK_RESULT $? 0 0 "日志级别未成功设置为fatal"
# 清理环境如果脚本开始时未安装jetty-infinispan则在脚本结束时卸载它否则保持安装状态
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
else
LOG_INFO "保持jetty-infinispan软件包的安装状态"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出级别设置为info功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-infinispan软件包服务的日志导出级别设置为info功能"
# 检查是否已安装jetty-infinispan软件包
LOG_INFO "检查jetty-infinispan软件包是否已安装"
if rpm -q jetty-infinispan &>/dev/null; then
LOG_INFO "jetty-infinispan软件包已安装"
installed=true
else
LOG_INFO "jetty-infinispan软件包未安装"
installed=false
fi
# 如果未安装,则尝试安装
if [ "$installed" = false ]; then
LOG_INFO "尝试安装jetty-infinispan软件包"
dnf list available jetty-infinispan &>/dev/null
CHECK_RESULT $? 0 255 "yum源中未找到jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 检查日志导出级别设置功能
LOG_INFO "测试日志导出级别设置为info功能"
SSH_CMD "grep -q "level=\"info\"" /etc/jetty/jetty.xml" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 255 "日志导出级别未设置为info"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-07-05
# @License : Mulan PSL v2
# @Desc : 测试jetty-infinispan软件包服务的日志导出级别设置为off功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查jetty-infinispan软件包是否已安装
LOG_INFO "检查jetty-infinispan软件包是否已安装"
rpm -q jetty-infinispan
if [ $? -eq 0 ]; then
LOG_INFO "jetty-infinispan软件包已安装"
INSTALLED=true
else
LOG_INFO "jetty-infinispan软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在jetty-infinispan软件包
LOG_INFO "检查yum源中是否存在jetty-infinispan软件包"
dnf list available jetty-infinispan
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在jetty-infinispan软件包"
exit 255
fi
# 如果未安装则安装jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装jetty-infinispan软件包"
dnf install -y jetty-infinispan
CHECK_RESULT $? 0 0 "安装jetty-infinispan软件包失败"
fi
# 检查jetty-infinispan服务是否已启动
LOG_INFO "检查jetty-infinispan服务是否已启动"
systemctl is-active jetty-infinispan
if [ $? -ne 0 ]; then
LOG_INFO "启动jetty-infinispan服务"
systemctl start jetty-infinispan
CHECK_RESULT $? 0 0 "启动jetty-infinispan服务失败"
fi
# 设置日志导出级别为off
LOG_INFO "设置日志导出级别为off"
systemctl set-property jetty-infinispan LogLevel=off
CHECK_RESULT $? 0 0 "设置日志导出级别为off失败"
# 验证日志导出级别是否设置为off
LOG_INFO "验证日志导出级别是否设置为off"
systemctl show -p LogLevel jetty-infinispan | grep "LogLevel=off"
CHECK_RESULT $? 0 0 "日志导出级别未设置为off"
# 恢复日志导出级别为默认值(如有必要)
LOG_INFO "恢复日志导出级别为默认值"
systemctl set-property jetty-infinispan LogLevel=
CHECK_RESULT $? 0 0 "恢复日志导出级别为默认值失败"
# 如果脚本开始时未安装则卸载jetty-infinispan软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jetty-infinispan软件包"
dnf remove -y jetty-infinispan
CHECK_RESULT $? 0 0 "卸载jetty-infinispan软件包失败"
fi
}
main "$@"

View File

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

View File

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

View File

@@ -1,109 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试libmbim-help软件包提供的帮助文档是否可用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expected=$2
local exit_code=$3
local error_msg=$4
if [ "$actual" -ne "$expected" ]; then
LOG_ERROR "$error_msg"
exit $exit_code
fi
}
# 定义SSH_CMD函数
SSH_CMD() {
local cmd=$1
local node_ip=$2
local node_password=$3
local node_user=$4
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
}
# 定义软件包名称
PACKAGE_NAME="libmbim-help"
# 步骤1: 检查yum源中是否有libmbim-help软件包
LOG_INFO "步骤1: 检查yum源中是否有libmbim-help软件包"
dnf list available "$PACKAGE_NAME" &>/dev/null
CHECK_RESULT $? 0 255 "yum源中没有找到libmbim-help软件包"
# 步骤2: 检查libmbim-help是否已经安装
LOG_INFO "步骤2: 检查libmbim-help是否已经安装"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "libmbim-help已经安装脚本结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "libmbim-help未安装将在测试过程中安装"
INSTALLED=false
fi
# 步骤3: 如果未安装安装libmbim-help软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3: 安装libmbim-help软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 1 "安装libmbim-help软件包失败"
fi
# 步骤4: 检查libmbim-help提供的帮助文档是否可用
LOG_INFO "步骤4: 检查libmbim-help提供的帮助文档是否可用"
# 假设libmbim-help提供了帮助命令 "libmbim-help --help",请根据实际情况调整命令
if command -v libmbim-help &>/dev/null; then
libmbim-help --help &>/dev/null
CHECK_RESULT $? 0 1 "libmbim-help帮助文档不可用"
else
LOG_ERROR "libmbim-help命令不存在"
exit 255
fi
# 步骤5: 检查libmbim-help的其他参数是否支持
LOG_INFO "步骤5: 检查libmbim-help的其他参数是否支持"
# 假设libmbim-help支持参数 "--version",请根据实际情况调整参数
libmbim-help --version &>/dev/null
CHECK_RESULT $? 0 255 "libmbim-help不支持--version参数"
# 步骤6: 清理环境,恢复之前的状态
LOG_INFO "步骤6: 清理环境,恢复之前的状态"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载libmbim-help软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 1 "卸载libmbim-help软件包失败"
else
LOG_INFO "libmbim-help已安装保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试使用libmbim-help工具设置MBIM代理功能。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试libmbim-help工具设置MBIM代理功能"
LOG_INFO "步骤1: 检查libmbim-utils软件包是否在yum源中"
if ! dnf list available libmbim-utils 2>/dev/null | grep -q libmbim-utils; then
LOG_ERROR "yum源中未找到libmbim-utils软件包"
exit 255
fi
LOG_INFO "步骤2: 检查系统是否已安装libmbim-utils"
if rpm -q libmbim-utils >/dev/null 2>&1; then
LOG_INFO "libmbim-utils已安装标记为已存在安装"
already_installed=true
else
LOG_INFO "libmbim-utils未安装将在测试过程中安装"
already_installed=false
fi
if [ "$already_installed" = "false" ]; then
LOG_INFO "步骤3: 安装libmbim-utils软件包"
dnf install -y libmbim-utils
CHECK_RESULT $? 0 0 "安装libmbim-utils失败"
fi
LOG_INFO "步骤4: 检查libmbim-help命令是否存在"
if ! command -v libmbim-help >/dev/null 2>&1; then
LOG_ERROR "libmbim-help命令不存在"
exit 255
fi
LOG_INFO "步骤5: 检查libmbim-help是否支持proxy参数"
if ! libmbim-help --help 2>&1 | grep -q "\-\-proxy"; then
LOG_ERROR "libmbim-help不支持proxy参数"
exit 255
fi
LOG_INFO "步骤6: 测试设置MBIM代理功能"
LOG_INFO "测试设置代理服务器为192.168.1.100:8080"
libmbim-help proxy --set="192.168.1.100:8080"
CHECK_RESULT $? 0 0 "设置MBIM代理失败"
LOG_INFO "步骤7: 验证代理设置"
proxy_output=$(libmbim-help proxy --get 2>&1)
echo "$proxy_output" | grep -q "192.168.1.100:8080"
CHECK_RESULT $? 0 0 "验证代理设置失败,实际输出: $proxy_output"
LOG_INFO "步骤8: 清除代理设置"
libmbim-help proxy --clear
CHECK_RESULT $? 0 0 "清除代理设置失败"
LOG_INFO "步骤9: 验证代理已清除"
proxy_output=$(libmbim-help proxy --get 2>&1)
echo "$proxy_output" | grep -q "No proxy configured"
CHECK_RESULT $? 0 0 "验证代理清除失败,实际输出: $proxy_output"
if [ "$already_installed" = "false" ]; then
LOG_INFO "步骤10: 卸载libmbim-utils软件包"
dnf remove -y libmbim-utils
CHECK_RESULT $? 0 0 "卸载libmbim-utils失败"
fi
LOG_INFO "测试完成: libmbim-help工具设置MBIM代理功能测试通过"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-26
# @License : Mulan PSL v2
# @Desc : 验证软件包安装后核心文件是否存在
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断libreport-filesystem是否已安装
LOG_INFO "检查libreport-filesystem是否已安装"
rpm -q libreport-filesystem > /dev/null 2>&1
is_installed=$?
# 如果未安装,则先安装
if [ $is_installed -ne 0 ]; then
LOG_INFO "libreport-filesystem未安装开始安装"
dnf list libreport-filesystem > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libreport-filesystem软件包"
exit 255
fi
dnf install -y libreport-filesystem > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装libreport-filesystem失败"
LOG_INFO "安装libreport-filesystem成功"
else
LOG_INFO "libreport-filesystem已安装"
fi
# 验证核心文件是否存在
LOG_INFO "验证libreport-filesystem核心文件是否存在"
expected_files="/usr/lib/systemd/system/abrt-journal-core.service \
/usr/share/abrt/plugins/oops_event.conf \
/usr/share/doc/libreport-filesystem-*/COPYING \
/usr/share/licenses/libreport-filesystem-*/COPYING"
missing_files=0
for file in $expected_files; do
# 使用通配符展开
expanded_files=$(ls $file 2>/dev/null)
if [ -z "$expanded_files" ]; then
LOG_ERROR "文件不存在: $file"
missing_files=$((missing_files + 1))
else
for expanded_file in $expanded_files; do
if [ -e "$expanded_file" ]; then
LOG_INFO "文件存在: $expanded_file"
else
LOG_ERROR "文件不存在: $expanded_file"
missing_files=$((missing_files + 1))
fi
done
fi
done
CHECK_RESULT $missing_files 0 0 "$missing_files个核心文件不存在"
# 环境恢复
LOG_INFO "恢复测试环境"
if [ $is_installed -ne 0 ]; then
LOG_INFO "卸载libreport-filesystem"
dnf remove -y libreport-filesystem > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载libreport-filesystem失败"
LOG_INFO "卸载libreport-filesystem成功"
else
LOG_INFO "保持libreport-filesystem安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-26
# @License : Mulan PSL v2
# @Desc : 验证关联的abrt服务状态或配置
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已经安装libreport-filesystem软件包
LOG_INFO "1. 检查是否已安装libreport-filesystem软件包"
rpm -q libreport-filesystem > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libreport-filesystem已经安装测试后保持安装状态"
INSTALLED=1
else
LOG_INFO "libreport-filesystem未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否存在libreport-filesystem软件包
LOG_INFO "2. 检查yum源中是否存在libreport-filesystem软件包"
dnf list available libreport-filesystem > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在libreport-filesystem软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "3. 安装libreport-filesystem软件包"
dnf install -y libreport-filesystem > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装libreport-filesystem软件包失败"
fi
# 验证abrt服务状态或配置
LOG_INFO "4. 验证abrt服务状态"
systemctl status abrtd > /dev/null 2>&1
CHECK_RESULT $? 0 0 "abrtd服务未运行"
LOG_INFO "5. 验证abrt服务配置"
abrt-auto-reporting > /dev/null 2>&1
CHECK_RESULT $? 0 0 "abrt-auto-reporting命令执行失败"
# 如果需要多服务器测试使用SSH_CMD在第二个服务器上执行命令
# 假设第二个服务器信息已经定义
# LOG_INFO "6. 在第二个服务器上验证abrt服务状态"
# SSH_CMD "systemctl status abrtd" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
# CHECK_RESULT $? 0 0 "在第二个服务器上验证abrt服务状态失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "6. 卸载libreport-filesystem软件包"
dnf remove -y libreport-filesystem > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载libreport-filesystem软件包失败"
fi
LOG_INFO "7. 测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-04
# @License : Mulan PSL v2
# @Desc : Test the connection functionality of PostgreSQL ODBC driver
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试PostgreSQL ODBC驱动连接功能
LOG_INFO "开始测试PostgreSQL ODBC驱动连接功能"
# 检查是否已安装postgresql-odbc-devel包
LOG_INFO "检查是否已安装postgresql-odbc-devel包"
if rpm -q postgresql-odbc-devel &>/dev/null; then
LOG_INFO "postgresql-odbc-devel已安装"
installed=true
else
LOG_INFO "postgresql-odbc-devel未安装"
installed=false
fi
# 检查yum源中是否有postgresql-odbc-devel包
LOG_INFO "检查yum源中是否有postgresql-odbc-devel包"
if ! dnf list available postgresql-odbc-devel &>/dev/null; then
LOG_ERROR "yum源中未找到postgresql-odbc-devel包"
exit 255
fi
# 如果未安装则安装postgresql-odbc-devel包
if [ "$installed" = false ]; then
LOG_INFO "安装postgresql-odbc-devel包"
dnf install -y postgresql-odbc-devel
CHECK_RESULT $? 0 0 "安装postgresql-odbc-devel包失败"
fi
# 测试PostgreSQL ODBC驱动连接功能
LOG_INFO "测试PostgreSQL ODBC驱动连接功能"
isql -v PostgreSQL testdb testuser testpassword &>/dev/null
CHECK_RESULT $? 0 0 "PostgreSQL ODBC驱动连接失败"
# 如果脚本开始时未安装则卸载postgresql-odbc-devel包
if [ "$installed" = false ]; then
LOG_INFO "卸载postgresql-odbc-devel包"
dnf remove -y postgresql-odbc-devel
CHECK_RESULT $? 0 0 "卸载postgresql-odbc-devel包失败"
fi
LOG_INFO "PostgreSQL ODBC驱动连接功能测试完成"
}
main "$@"

View File

@@ -1,113 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test connection using isql tool.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试环境初始化
LOG_INFO "开始测试使用isql工具测试连接"
# 检查是否已安装postgresql-odbc-devel软件包
LOG_INFO "检查postgresql-odbc-devel软件包是否已安装"
rpm -q postgresql-odbc-devel > /dev/null 2>&1
pkg_installed=$?
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有postgresql-odbc-devel软件包"
dnf list available postgresql-odbc-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到postgresql-odbc-devel软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $pkg_installed -ne 0 ]; then
LOG_INFO "安装postgresql-odbc-devel软件包"
dnf install -y postgresql-odbc-devel
CHECK_RESULT $? 0 0 "安装postgresql-odbc-devel失败"
fi
# 检查isql命令是否存在
LOG_INFO "检查isql命令是否可用"
which isql > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "isql命令不存在可能未正确安装unixODBC"
if [ $pkg_installed -ne 0 ]; then
LOG_INFO "清理环境卸载postgresql-odbc-devel软件包"
dnf remove -y postgresql-odbc-devel
fi
exit 255
fi
# 测试isql命令的基本参数
LOG_INFO "测试isql命令的基本参数"
isql --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "isql命令参数不支持"
# 创建测试用的ODBC配置文件
LOG_INFO "创建测试用的ODBC配置文件"
cat > /tmp/test_odbc.ini << EOF
[TestPostgreSQL]
Description = PostgreSQL Test Connection
Driver = PostgreSQL Unicode
Database = testdb
Servername = localhost
Port = 5432
Protocol = 8.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =
EOF
# 设置ODBC环境变量
export ODBCINI=/tmp/test_odbc.ini
# 测试isql连接由于没有实际数据库测试连接会失败但可以测试命令执行
LOG_INFO "测试isql连接命令预期会连接失败但命令应正常执行"
isql -v TestPostgreSQL testuser testpass << EOF
quit
EOF
# 检查命令是否正常执行(连接失败是预期的,但命令本身应正常执行)
if [ $? -ne 1 ]; then
# isql连接失败通常返回1如果返回其他值可能是命令执行问题
CHECK_RESULT $? 1 0 "isql命令执行异常"
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/test_odbc.ini
# 环境恢复
LOG_INFO "恢复测试环境"
if [ $pkg_installed -ne 0 ]; then
LOG_INFO "卸载postgresql-odbc-devel软件包"
dnf remove -y postgresql-odbc-devel
CHECK_RESULT $? 0 0 "卸载postgresql-odbc-devel失败"
else
LOG_INFO "保持postgresql-odbc-devel软件包安装状态"
fi
LOG_INFO "测试完成使用isql工具测试连接"
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test the odbcinst tool functionality.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 odbcinst 工具功能"
LOG_INFO "步骤1: 检查 yum 源中是否存在 postgresql-odbc-devel 软件包"
if ! dnf list available postgresql-odbc-devel &>/dev/null; then
LOG_ERROR "yum 源中未找到 postgresql-odbc-devel 软件包"
exit 255
fi
LOG_INFO "步骤2: 检查系统是否已安装 postgresql-odbc-devel"
if rpm -q postgresql-odbc-devel &>/dev/null; then
LOG_INFO "系统已安装 postgresql-odbc-devel测试结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "系统未安装 postgresql-odbc-devel将进行安装"
ALREADY_INSTALLED=0
LOG_INFO "步骤3: 安装 postgresql-odbc-devel 软件包"
dnf install -y postgresql-odbc-devel
CHECK_RESULT $? 0 0 "安装 postgresql-odbc-devel 失败"
fi
LOG_INFO "步骤4: 验证 odbcinst 命令是否存在"
if ! command -v odbcinst &>/dev/null; then
LOG_ERROR "odbcinst 命令不存在"
exit 255
fi
LOG_INFO "步骤5: 测试 odbcinst -j 查看配置"
odbcinst -j
CHECK_RESULT $? 0 0 "执行 odbcinst -j 失败"
LOG_INFO "步骤6: 测试 odbcinst -q -d 查询数据源"
odbcinst -q -d
CHECK_RESULT $? 0 0 "执行 odbcinst -q -d 失败"
LOG_INFO "步骤7: 测试 odbcinst -q -s 查询系统数据源"
odbcinst -q -s
CHECK_RESULT $? 0 0 "执行 odbcinst -q -s 失败"
LOG_INFO "步骤8: 测试不支持的参数,预期失败"
odbcinst --invalid-param 2>/dev/null
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
LOG_ERROR "不支持的参数未正确失败"
exit 255
fi
LOG_INFO "不支持的参数测试通过"
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤9: 清理环境,卸载 postgresql-odbc-devel"
dnf remove -y postgresql-odbc-devel
CHECK_RESULT $? 0 0 "卸载 postgresql-odbc-devel 失败"
else
LOG_INFO "系统原本已安装,保持安装状态,无需卸载"
fi
LOG_INFO "odbcinst 工具功能测试完成"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : Test parsing functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本test_python-beniget-help_function_parse
# 步骤1检查是否已安装python3-beniget
LOG_INFO "检查是否已安装python3-beniget"
rpm -q python3-beniget > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-beniget已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-beniget未安装将在测试完成后卸载"
INSTALLED=false
fi
# 步骤2检查yum源中是否有python3-beniget软件包
LOG_INFO "检查yum源中是否有python3-beniget软件包"
dnf list available python3-beniget > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-beniget软件包"
exit 255
fi
# 步骤3安装python3-beniget如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装python3-beniget"
dnf install -y python3-beniget > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装python3-beniget失败"
fi
# 步骤4测试解析功能
LOG_INFO "测试解析功能"
beniget-help --parse > /dev/null 2>&1
CHECK_RESULT $? 0 0 "解析功能测试失败"
# 步骤5检查参数是否存在或不支持
LOG_INFO "检查不支持的参数"
beniget-help --invalid-arg > /dev/null 2>&1
if [ $? -ne 255 ]; then
LOG_ERROR "不支持的参数未正确退出"
exit 255
fi
# 步骤6清理环境如果之前未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载python3-beniget"
dnf remove -y python3-beniget > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载python3-beniget失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试python3-jaraco-text软件包能否通过包管理器正确安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="python3-jaraco-text"
# 步骤1: 检查软件包是否已在yum源中
LOG_INFO "步骤1: 检查软件包是否在yum源中"
dnf list available "${PACKAGE_NAME}" &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中"
# 步骤2: 检查软件包是否已安装
LOG_INFO "步骤2: 检查软件包是否已安装"
rpm -q "${PACKAGE_NAME}" &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,标记为已安装状态"
INSTALLED=1
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,标记为未安装状态"
INSTALLED=0
fi
# 步骤3: 如果未安装,则安装软件包
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "步骤3: 安装软件包 ${PACKAGE_NAME}"
dnf install -y "${PACKAGE_NAME}"
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功"
fi
# 步骤4: 验证软件包安装
LOG_INFO "步骤4: 验证软件包安装"
rpm -q "${PACKAGE_NAME}"
CHECK_RESULT $? 0 0 "验证软件包 ${PACKAGE_NAME} 安装失败"
LOG_INFO "软件包 ${PACKAGE_NAME} 验证成功"
# 步骤5: 测试软件包基本功能
LOG_INFO "步骤5: 测试软件包基本功能"
python3 -c "import jaraco.text; print("jaraco.text import successful")" 2>&1
CHECK_RESULT $? 0 0 "导入 jaraco.text 模块失败"
LOG_INFO "jaraco.text 模块导入成功"
# 步骤6: 环境恢复
LOG_INFO "步骤6: 环境恢复"
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y "${PACKAGE_NAME}"
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
LOG_INFO "软件包 ${PACKAGE_NAME} 卸载成功"
else
LOG_INFO "软件包 ${PACKAGE_NAME} 原本已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试jaraco.text.join模块的拼接功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jaraco.text.join模块的拼接功能"
# 检查是否已安装python3-jaraco-text
LOG_INFO "检查是否已安装python3-jaraco-text"
if dnf list installed python3-jaraco-text &>/dev/null; then
LOG_INFO "python3-jaraco-text已安装测试完成后保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-jaraco-text未安装将在测试过程中安装"
INSTALLED=false
fi
# 检查yum源中是否有python3-jaraco-text软件包
LOG_INFO "检查yum源中是否有python3-jaraco-text软件包"
if ! dnf list available python3-jaraco-text &>/dev/null; then
LOG_ERROR "yum源中未找到python3-jaraco-text软件包"
exit 255
fi
# 如果未安装则安装python3-jaraco-text
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装python3-jaraco-text"
dnf install -y python3-jaraco-text
CHECK_RESULT $? 0 0 "安装python3-jaraco-text失败"
fi
# 测试jaraco.text.join模块的拼接功能
LOG_INFO "测试jaraco.text.join模块的拼接功能"
python3 -c "from jaraco.text import join; result = join.join(["Hello", "World"], ", "); print(result); assert result == "Hello, World""
CHECK_RESULT $? 0 0 "jaraco.text.join模块拼接功能测试失败"
# 测试jaraco.text.join模块的拼接功能使用不同的分隔符
LOG_INFO "测试jaraco.text.join模块的拼接功能使用不同的分隔符"
python3 -c "from jaraco.text import join; result = join.join(["Hello", "World"], "-"); print(result); assert result == "Hello-World""
CHECK_RESULT $? 0 0 "jaraco.text.join模块拼接功能测试失败"
# 测试jaraco.text.join模块的拼接功能使用空列表
LOG_INFO "测试jaraco.text.join模块的拼接功能使用空列表"
python3 -c "from jaraco.text import join; result = join.join([], ", "); print(result); assert result == """
CHECK_RESULT $? 0 0 "jaraco.text.join模块拼接功能测试失败"
# 测试jaraco.text.join模块的拼接功能使用单个元素
LOG_INFO "测试jaraco.text.join模块的拼接功能使用单个元素"
python3 -c "from jaraco.text import join; result = join.join(["Hello"], ", "); print(result); assert result == "Hello""
CHECK_RESULT $? 0 0 "jaraco.text.join模块拼接功能测试失败"
# 测试jaraco.text.join模块的拼接功能使用多个元素
LOG_INFO "测试jaraco.text.join模块的拼接功能使用多个元素"
python3 -c "from jaraco.text import join; result = join.join(["Hello", "World", "OpenEuler"], ", "); print(result); assert result == "Hello, World, OpenEuler""
CHECK_RESULT $? 0 0 "jaraco.text.join模块拼接功能测试失败"
# 清理环境如果测试前未安装则卸载python3-jaraco-text
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-jaraco-text"
dnf remove -y python3-jaraco-text
CHECK_RESULT $? 0 0 "卸载python3-jaraco-text失败"
else
LOG_INFO "测试前已安装python3-jaraco-text保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试jaraco.text.wrap模块的文本换行功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jaraco.text.wrap模块的文本换行功能"
LOG_INFO "步骤1检查yum源中是否存在python3-jaraco-text包"
dnf list available python3-jaraco-text > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-jaraco-text包"
exit 255
fi
LOG_INFO "python3-jaraco-text包在yum源中存在"
LOG_INFO "步骤2检查是否已安装python3-jaraco-text包"
rpm -q python3-jaraco-text > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-jaraco-text包已安装标记为已存在"
PACKAGE_INSTALLED=true
else
LOG_INFO "python3-jaraco-text包未安装标记为未存在"
PACKAGE_INSTALLED=false
fi
if [ "$PACKAGE_INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装python3-jaraco-text包"
dnf install -y python3-jaraco-text
CHECK_RESULT $? 0 0 "安装python3-jaraco-text包失败"
LOG_INFO "python3-jaraco-text包安装成功"
fi
LOG_INFO "步骤4验证jaraco.text.wrap模块的文本换行功能"
python3 -c "
import jaraco.text
text = "This is a long text that needs to be wrapped to fit within a certain width."
wrapped = jaraco.text.wrap(text, width=20)
print("Original text:", text)
print("Wrapped text:", wrapped)
if len(wrapped.split("\\\\n")) > 1:
print("Wrap successful")
else:
print("Wrap failed")
exit(1)
"
CHECK_RESULT $? 0 0 "jaraco.text.wrap模块文本换行功能测试失败"
LOG_INFO "步骤5清理环境"
if [ "$PACKAGE_INSTALLED" = "false" ]; then
LOG_INFO "卸载python3-jaraco-text包"
dnf remove -y python3-jaraco-text
CHECK_RESULT $? 0 0 "卸载python3-jaraco-text包失败"
LOG_INFO "python3-jaraco-text包卸载成功"
else
LOG_INFO "python3-jaraco-text包为原有安装保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,129 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-30
# @License : Mulan PSL v2
# @Desc : Check for conflicts with other python-qt macro packages
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查python-qt5宏包冲突
LOG_INFO "开始检查python-qt5宏包与其他python-qt宏包的冲突"
# 定义软件包名称
PYTHON_QT5_MACROS="python-qt5-rpm-macros"
PYTHON_QT_MACROS="python-qt-rpm-macros"
# 检查软件包是否在yum源中
LOG_INFO "检查软件包是否在yum源中"
dnf list available $PYTHON_QT5_MACROS > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PYTHON_QT5_MACROS 在yum源中不存在"
exit 255
fi
dnf list available $PYTHON_QT_MACROS > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PYTHON_QT_MACROS 在yum源中不存在"
exit 255
fi
# 检查当前是否已安装python-qt5-rpm-macros
LOG_INFO "检查当前是否已安装 $PYTHON_QT5_MACROS"
rpm -q $PYTHON_QT5_MACROS > /dev/null 2>&1
PYTHON_QT5_INSTALLED=$?
# 检查当前是否已安装python-qt-rpm-macros
LOG_INFO "检查当前是否已安装 $PYTHON_QT_MACROS"
rpm -q $PYTHON_QT_MACROS > /dev/null 2>&1
PYTHON_QT_INSTALLED=$?
# 记录初始安装状态
INITIAL_STATE=""
if [ $PYTHON_QT5_INSTALLED -eq 0 ] && [ $PYTHON_QT_INSTALLED -eq 0 ]; then
INITIAL_STATE="both"
LOG_INFO "两个软件包都已安装"
elif [ $PYTHON_QT5_INSTALLED -eq 0 ]; then
INITIAL_STATE="python-qt5"
LOG_INFO "只有 $PYTHON_QT5_MACROS 已安装"
elif [ $PYTHON_QT_INSTALLED -eq 0 ]; then
INITIAL_STATE="python-qt"
LOG_INFO "只有 $PYTHON_QT_MACROS 已安装"
else
INITIAL_STATE="none"
LOG_INFO "两个软件包都未安装"
fi
# 如果python-qt5-rpm-macros未安装则安装它
if [ $PYTHON_QT5_INSTALLED -ne 0 ]; then
LOG_INFO "安装 $PYTHON_QT5_MACROS"
dnf install -y $PYTHON_QT5_MACROS
CHECK_RESULT $? 0 0 "安装 $PYTHON_QT5_MACROS 失败"
fi
# 如果python-qt-rpm-macros未安装则安装它
if [ $PYTHON_QT_INSTALLED -ne 0 ]; then
LOG_INFO "安装 $PYTHON_QT_MACROS"
dnf install -y $PYTHON_QT_MACROS
CHECK_RESULT $? 0 0 "安装 $PYTHON_QT_MACROS 失败"
fi
# 检查两个软件包是否可以同时安装
LOG_INFO "验证两个软件包是否可以同时安装"
rpm -q $PYTHON_QT5_MACROS $PYTHON_QT_MACROS > /dev/null 2>&1
CHECK_RESULT $? 0 0 "无法同时安装 $PYTHON_QT5_MACROS$PYTHON_QT_MACROS"
# 检查是否存在文件冲突
LOG_INFO "检查两个软件包之间是否存在文件冲突"
rpm -ql $PYTHON_QT5_MACROS > /tmp/python-qt5-files.txt
rpm -ql $PYTHON_QT_MACROS > /tmp/python-qt-files.txt
# 检查是否有重叠的文件
LOG_INFO "比较两个软件包的文件列表"
comm -12 <(sort /tmp/python-qt5-files.txt) <(sort /tmp/python-qt-files.txt) > /tmp/conflict-files.txt
CONFLICT_FILES=$(wc -l < /tmp/conflict-files.txt)
CHECK_RESULT $CONFLICT 0 0 "发现 $CONFLICT_FILES 个文件冲突"
# 清理临时文件
rm -f /tmp/python-qt5-files.txt /tmp/python-qt-files.txt /tmp/conflict-files.txt
# 根据初始状态恢复环境
LOG_INFO "根据初始状态恢复环境"
case $INITIAL_STATE in
"both")
LOG_INFO "保持两个软件包都安装的状态"
;;
"python-qt5")
LOG_INFO "卸载 $PYTHON_QT_MACROS,保持 $PYTHON_QT5_MACROS 安装"
dnf remove -y $PYTHON_QT_MACROS
CHECK_RESULT $? 0 0 "卸载 $PYTHON_QT_MACROS 失败"
;;
"python-qt")
LOG_INFO "卸载 $PYTHON_QT5_MACROS,保持 $PYTHON_QT_MACROS 安装"
dnf remove -y $PYTHON_QT5_MACROS
CHECK_RESULT $? 0 0 "卸载 $PYTHON_QT5_MACROS 失败"
;;
"none")
LOG_INFO "卸载两个软件包"
dnf remove -y $PYTHON_QT5_MACROS $PYTHON_QT_MACROS
CHECK_RESULT $? 0 0 "卸载软件包失败"
;;
esac
LOG_INFO "python-qt5宏包冲突检查完成"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-30
# @License : Mulan PSL v2
# @Desc : Verify the package installs the correct macro files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试:验证软件包安装正确的宏文件"
# 检查是否已安装python3-rpm-macros
LOG_INFO "检查python3-rpm-macros是否已安装"
if rpm -q python3-rpm-macros &>/dev/null; then
LOG_INFO "python3-rpm-macros已安装测试后保持安装状态"
already_installed=true
else
LOG_INFO "python3-rpm-macros未安装将在测试后卸载"
already_installed=false
fi
# 检查yum源中是否有python3-rpm-macros
LOG_INFO "检查yum源中是否存在python3-rpm-macros"
if ! dnf list available python3-rpm-macros &>/dev/null; then
LOG_ERROR "yum源中未找到python3-rpm-macros"
exit 255
fi
# 安装python3-rpm-macros
if [ "$already_installed" = false ]; then
LOG_INFO "安装python3-rpm-macros"
dnf install -y python3-rpm-macros
CHECK_RESULT $? 0 0 "安装python3-rpm-macros失败"
fi
# 检查rpm命令是否支持--eval参数
LOG_INFO "检查rpm命令是否支持--eval参数"
if ! rpm --help | grep -q -- "--eval"; then
LOG_ERROR "rpm命令不支持--eval参数"
exit 255
fi
# 验证宏文件是否正确安装
LOG_INFO "验证%{python3_sitelib}宏是否正确定义"
python3_sitelib=$(rpm --eval "%{python3_sitelib}")
CHECK_RESULT $? 0 0 "获取%{python3_sitelib}宏失败"
LOG_INFO "%{python3_sitelib}的值为: $python3_sitelib"
LOG_INFO "验证%{python3_sitearch}宏是否正确定义"
python3_sitearch=$(rpm --eval "%{python3_sitearch}")
CHECK_RESULT $? 0 0 "获取%{python3_sitearch}宏失败"
LOG_INFO "%{python3_sitearch}的值为: $python3_sitearch"
LOG_INFO "验证%{python3_version}宏是否正确定义"
python3_version=$(rpm --eval "%{python3_version}")
CHECK_RESULT $? 0 0 "获取%{python3_version}宏失败"
LOG_INFO "%{python3_version}的值为: $python3_version"
LOG_INFO "验证%{python3_version_nodots}宏是否正确定义"
python3_version_nodots=$(rpm --eval "%{python3_version_nodots}")
CHECK_RESULT $? 0 0 "获取%{python3_version_nodots}宏失败"
LOG_INFO "%{python3_version_nodots}的值为: $python3_version_nodots"
# 清理环境
if [ "$already_installed" = false ]; then
LOG_INFO "卸载python3-rpm-macros"
dnf remove -y python3-rpm-macros
CHECK_RESULT $? 0 0 "卸载python3-rpm-macros失败"
else
LOG_INFO "保持python3-rpm-macros安装状态"
fi
LOG_INFO "测试完成:软件包正确安装了宏文件"
}
main "$@"

View File

@@ -1,157 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-30
# @License : Mulan PSL v2
# @Desc : Verify macros can be used in a mock RPM spec file
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PKG_NAME="python-qt5-rpm-macros"
SPEC_FILE="test_spec.spec"
MOCK_CONFIG="default"
LOG_FILE="/tmp/test_python_qt5_macros.log"
# 初始化日志文件
> $LOG_FILE
# 步骤1: 检查yum源中是否存在python-qt5-rpm-macros软件包
LOG_INFO "步骤1: 检查yum源中是否存在$PKG_NAME软件包"
dnf list available $PKG_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到$PKG_NAME软件包"
exit 255
fi
LOG_INFO "yum源中存在$PKG_NAME软件包"
# 步骤2: 检查当前是否已安装python-qt5-rpm-macros软件包
LOG_INFO "步骤2: 检查当前是否已安装$PKG_NAME软件包"
rpm -q $PKG_NAME &>/dev/null
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "$PKG_NAME软件包已安装"
NEED_UNINSTALL=0
else
LOG_INFO "$PKG_NAME软件包未安装,将在测试过程中安装"
NEED_UNINSTALL=1
fi
# 步骤3: 如果未安装则安装python-qt5-rpm-macros软件包
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "步骤3: 安装$PKG_NAME软件包"
dnf install -y $PKG_NAME
CHECK_RESULT $? 0 0 "安装$PKG_NAME失败"
LOG_INFO "安装$PKG_NAME成功"
fi
# 步骤4: 创建一个模拟的RPM spec文件以测试宏
LOG_INFO "步骤4: 创建一个模拟的RPM spec文件以测试宏"
cat > $SPEC_FILE << "EOF"
Name: test-python-qt5-macros
Version: 1.0
Release: 1%{?dist}
Summary: Test spec for python-qt5-rpm-macros
License: GPLv3
%description
This is a test spec to verify python-qt5-rpm-macros.
%prep
%setup -q
%build
%pyqt5_build
%install
%pyqt5_install
%files
%{python3_sitelib}/test_module
%changelog
* Tue Jan 01 2023 Tester <test@example.com> - 1.0-1
- Initial test package
EOF
CHECK_RESULT $? 0 0 "创建spec文件失败"
LOG_INFO "创建spec文件成功"
# 步骤5: 使用rpmspec命令检查spec文件中的宏是否可用
LOG_INFO "步骤5: 使用rpmspec命令检查spec文件中的宏是否可用"
if ! command -v rpmspec &>/dev/null; then
LOG_ERROR "rpmspec命令不存在或不支持"
exit 255
fi
rpmspec -P $SPEC_FILE &>> $LOG_FILE
CHECK_RESULT $? 0 0 "rpmspec解析spec文件失败"
LOG_INFO "rpmspec解析spec文件成功宏可用"
# 步骤6: 使用mock构建RPM包以验证宏在构建环境中的可用性
LOG_INFO "步骤6: 使用mock构建RPM包以验证宏在构建环境中的可用性"
if ! command -v mock &>/dev/null; then
LOG_ERROR "mock命令不存在或不支持"
exit 255
fi
# 检查mock配置是否存在
mock -r $MOCK_CONFIG --list-chroots &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "mock配置$MOCK_CONFIG不存在"
exit 255
fi
# 由于是测试宏,我们只进行初始化构建环境而不实际构建
mock -r $MOCK_CONFIG --init
CHECK_RESULT $? 0 0 "mock初始化构建环境失败"
LOG_INFO "mock初始化构建环境成功"
# 步骤7: 清理测试文件
LOG_INFO "步骤7: 清理测试文件"
rm -f $SPEC_FILE
CHECK_RESULT $? 0 0 "删除spec文件失败"
LOG_INFO "删除spec文件成功"
# 步骤8: 如果测试前未安装则卸载python-qt5-rpm-macros软件包
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "步骤8: 卸载$PKG_NAME软件包"
dnf remove -y $PKG_NAME
CHECK_RESULT $? 0 0 "卸载$PKG_NAME失败"
LOG_INFO "卸载$PKG_NAME成功"
else
LOG_INFO "步骤8: 测试前已安装$PKG_NAME,保持安装状态"
fi
# 步骤9: 最终环境检查
LOG_INFO "步骤9: 最终环境检查"
if [ $NEED_UNINSTALL -eq 1 ]; then
rpm -q $PKG_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "环境清理失败,$PKG_NAME仍被安装"
exit 1
else
LOG_INFO "环境清理成功,$PKG_NAME已被卸载"
fi
else
rpm -q $PKG_NAME &>/dev/null
CHECK_RESULT $? 0 0 "环境状态异常,$PKG_NAME应保持安装但未找到"
LOG_INFO "环境状态正常,$PKG_NAME保持安装"
fi
LOG_INFO "测试完成验证宏可以在模拟RPM spec文件中使用"
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-30
# @License : Mulan PSL v2
# @Desc : Check if the installed macro version matches package version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查已安装的宏版本是否与软件包版本匹配"
# 定义软件包名称
PACKAGE_NAME="python-qt5-rpm-macros"
# 步骤1检查软件包是否在yum源中
LOG_INFO "步骤1检查软件包是否在yum源中"
dnf list available "$PACKAGE_NAME" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 步骤2检查软件包是否已安装
LOG_INFO "步骤2检查软件包是否已安装"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装"
INSTALLED_BEFORE_TEST=false
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4获取软件包版本和宏版本
LOG_INFO "步骤4获取软件包版本和宏版本"
PACKAGE_VERSION=$(rpm -q --queryformat="%{VERSION}-%{RELEASE}" "$PACKAGE_NAME")
MACRO_VERSION=$(rpm -E "%{python_qt5_macros_version}" 2>/dev/null)
# 步骤5检查宏版本是否存在
LOG_INFO "步骤5检查宏版本是否存在"
if [ -z "$MACRO_VERSION" ]; then
LOG_ERROR "宏版本不存在或不支持"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "清理环境:卸载软件包 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
fi
exit 255
fi
# 步骤6比较软件包版本和宏版本
LOG_INFO "步骤6比较软件包版本和宏版本"
if [ "$PACKAGE_VERSION" = "$MACRO_VERSION" ]; then
LOG_INFO "软件包版本和宏版本匹配:$PACKAGE_VERSION"
CHECK_RESULT 0 0 0 "版本不匹配"
else
LOG_ERROR "软件包版本 ($PACKAGE_VERSION) 和宏版本 ($MACRO_VERSION) 不匹配"
CHECK_RESULT 1 0 0 "版本不匹配"
fi
# 步骤7清理环境
LOG_INFO "步骤7清理环境"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "软件包 $PACKAGE_NAME 在测试前已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,111 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
# @License : Mulan PSL v2
# @Desc : Test basic compilation with the development package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试Test basic compilation with the development package"
# 定义软件包名称
PACKAGE_NAME="qt5-qtremoteobjects-devel"
# 步骤1检查yum源中是否存在指定的软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 $PACKAGE_NAME"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 步骤2检查当前环境是否已安装该软件包
LOG_INFO "步骤2检查当前环境是否已安装软件包 $PACKAGE_NAME"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为已安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为未安装状态"
INSTALLED_BEFORE_TEST=false
fi
# 步骤3如果未安装则安装软件包作为测试步骤
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4测试基本编译功能
LOG_INFO "步骤4测试使用 $PACKAGE_NAME 进行基本编译"
# 创建一个简单的测试源文件
TEST_SRC_FILE="/tmp/test_qtremoteobjects.cpp"
TEST_BIN_FILE="/tmp/test_qtremoteobjects"
cat > "$TEST_SRC_FILE" << "EOF"
#include <QCoreApplication>
#include <QRemoteObjectNode>
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
QRemoteObjectNode node;
return 0;
}
EOF
# 尝试编译测试程序
LOG_INFO "尝试编译测试程序"
qmake -v &>/dev/null
CHECK_RESULT $? 0 255 "qmake 命令不存在或不支持"
# 使用qmake和make进行编译假设使用Qt的基本编译流程
# 注意这里简化了Qt项目的编译流程实际可能需要.pro文件等
# 这里仅检查开发包的关键头文件和库是否存在并能被找到
LOG_INFO "检查Qt Remote Objects开发头文件和库"
if [ -f /usr/include/qt5/QtRemoteObjects/QRemoteObjectNode ] || [ -f /usr/include/QtRemoteObjects/QRemoteObjectNode ]; then
LOG_INFO "找到 QRemoteObjectNode 头文件"
else
LOG_ERROR "未找到 QRemoteObjectNode 头文件"
exit 1
fi
# 尝试编译一个简单的程序来链接库
LOG_INFO "尝试编译并链接一个简单的测试程序"
cat > /tmp/test_link.cpp << "EOF"
int main() {
return 0;
}
EOF
g++ -o /tmp/test_link /tmp/test_link.cpp -lQt5RemoteObjects 2>/dev/null
CHECK_RESULT $? 0 0 "链接 Qt5RemoteObjects 库失败"
# 清理临时测试文件
rm -f "$TEST_SRC_FILE" "$TEST_BIN_FILE" /tmp/test_link.cpp /tmp/test_link
# 步骤5环境恢复
LOG_INFO "步骤5恢复测试环境"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载在测试中安装的软件包 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "测试前已安装软件包 $PACKAGE_NAME,保持安装状态"
fi
LOG_INFO "测试完成Test basic compilation with the development package"
}
main "$@"

View File

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

View File

@@ -1,96 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
# @License : Mulan PSL v2
# @Desc : Test basic Remote Objects functionality usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test basic Remote Objects functionality usage"
LOG_INFO "步骤1: 检查yum源中是否存在qt5-qtremoteobjects-devel软件包"
if ! dnf list available qt5-qtremoteobjects-devel &>/dev/null; then
LOG_ERROR "yum源中未找到qt5-qtremoteobjects-devel软件包"
exit 255
fi
LOG_INFO "步骤2: 检查是否已安装qt5-qtremoteobjects-devel软件包"
if rpm -q qt5-qtremoteobjects-devel &>/dev/null; then
LOG_INFO "qt5-qtremoteobjects-devel已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
INSTALLED_BEFORE=false
LOG_INFO "qt5-qtremoteobjects-devel未安装将执行安装步骤"
fi
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3: 安装qt5-qtremoteobjects-devel软件包"
dnf install -y qt5-qtremoteobjects-devel
CHECK_RESULT $? 0 0 "安装qt5-qtremoteobjects-devel软件包失败"
fi
LOG_INFO "步骤4: 验证Remote Objects基本功能"
LOG_INFO "步骤4.1: 检查qremoteobjects命令行工具是否可用"
if ! command -v qremoteobjects &>/dev/null; then
LOG_ERROR "qremoteobjects命令不存在或不支持"
exit 255
fi
LOG_INFO "步骤4.2: 执行qremoteobjects --help查看帮助信息"
qremoteobjects --help
CHECK_RESULT $? 0 0 "执行qremoteobjects --help失败"
LOG_INFO "步骤4.3: 创建一个简单的Remote Objects示例程序"
cat > test_remoteobject.cpp << "EOF"
#include <QCoreApplication>
#include <QRemoteObjectNode>
#include <QRemoteObjectRegistryHost>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QRemoteObjectNode node;
QRemoteObjectRegistryHost registry(node);
return 0;
}
EOF
CHECK_RESULT $? 0 0 "创建测试源码文件失败"
LOG_INFO "步骤4.4: 编译测试程序"
g++ -fPIC -I/usr/include/qt5 -I/usr/include/qt5/QtCore -I/usr/include/qt5/QtRemoteObjects -lQt5Core -lQt5RemoteObjects test_remoteobject.cpp -o test_remoteobject
CHECK_RESULT $? 0 0 "编译测试程序失败"
LOG_INFO "步骤4.5: 运行测试程序"
./test_remoteobject
CHECK_RESULT $? 0 0 "运行测试程序失败"
LOG_INFO "步骤5: 清理测试文件"
rm -f test_remoteobject.cpp test_remoteobject
CHECK_RESULT $? 0 0 "清理测试文件失败"
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤6: 卸载qt5-qtremoteobjects-devel软件包"
dnf remove -y qt5-qtremoteobjects-devel
CHECK_RESULT $? 0 0 "卸载qt5-qtremoteobjects-devel软件包失败"
else
LOG_INFO "步骤6: 保持qt5-qtremoteobjects-devel软件包安装状态"
fi
LOG_INFO "测试完成Test basic Remote Objects functionality usage"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-04
# @License : Mulan PSL v2
# @Desc : Test uninstallation of qt5-qtremoteobjects-devel package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装qt5-qtremoteobjects-devel
LOG_INFO "检查qt5-qtremoteobjects-devel是否已安装"
rpm -q qt5-qtremoteobjects-devel > /dev/null 2>&1
is_installed=$?
# 如果未安装,则安装软件包
if [ $is_installed -ne 0 ]; then
LOG_INFO "qt5-qtremoteobjects-devel未安装开始安装"
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否存在qt5-qtremoteobjects-devel"
dnf list available qt5-qtremoteobjects-devel > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到qt5-qtremoteobjects-devel软件包"
# 安装软件包
LOG_INFO "开始安装qt5-qtremoteobjects-devel"
dnf install -y qt5-qtremoteobjects-devel
CHECK_RESULT $? 0 0 "安装qt5-qtremoteobjects-devel失败"
# 验证安装成功
LOG_INFO "验证qt5-qtremoteobjects-devel安装成功"
rpm -q qt5-qtremoteobjects-devel
CHECK_RESULT $? 0 0 "qt5-qtremoteobjects-devel未正确安装"
else
LOG_INFO "qt5-qtremoteobjects-devel已安装"
fi
# 测试卸载功能
LOG_INFO "开始测试卸载qt5-qtremoteobjects-devel"
dnf remove -y qt5-qtremoteobjects-devel
CHECK_RESULT $? 0 0 "卸载qt5-qtremoteobjects-devel失败"
# 验证卸载成功
LOG_INFO "验证qt5-qtremoteobjects-devel已卸载"
rpm -q qt5-qtremoteobjects-devel > /dev/null 2>&1
CHECK_RESULT $? 1 0 "qt5-qtremoteobjects-devel未正确卸载"
# 环境恢复
LOG_INFO "开始恢复环境"
if [ $is_installed -eq 0 ]; then
LOG_INFO "重新安装qt5-qtremoteobjects-devel"
dnf install -y qt5-qtremoteobjects-devel
CHECK_RESULT $? 0 0 "重新安装qt5-qtremoteobjects-devel失败"
else
LOG_INFO "保持环境为未安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,57 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-09-17
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试texlive-biblatex-ijsra-doc软件包安装功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在texlive-biblatex-ijsra-doc软件包"
dnf list available texlive-biblatex-ijsra-doc &>/dev/null
CHECK_RESULT $? 0 255 "yum源中不存在texlive-biblatex-ijsra-doc软件包"
# 检查软件包是否已安装
LOG_INFO "检查texlive-biblatex-ijsra-doc是否已安装"
if rpm -q texlive-biblatex-ijsra-doc &>/dev/null; then
LOG_INFO "texlive-biblatex-ijsra-doc已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "texlive-biblatex-ijsra-doc未安装开始安装"
dnf install -y texlive-biblatex-ijsra-doc
CHECK_RESULT $? 0 0 "安装texlive-biblatex-ijsra-doc失败"
INSTALLED=false
fi
# 测试命令功能(示例命令,需根据实际需求调整)
LOG_INFO "测试texlive-biblatex-ijsra-doc命令功能"
command_to_test --version &>/dev/null
CHECK_RESULT $? 0 255 "命令参数不支持或不存在"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-biblatex-ijsra-doc以恢复环境"
dnf remove -y texlive-biblatex-ijsra-doc
CHECK_RESULT $? 0 0 "卸载texlive-biblatex-ijsra-doc失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-18
# @License : Mulan PSL v2
# @Desc : Test presence of documentation files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试文档文件的存在性"
# 检查是否已安装texlive-filedate-doc包
LOG_INFO "检查texlive-filedate-doc是否已安装"
if dnf list installed texlive-filedate-doc &> /dev/null; then
LOG_INFO "texlive-filedate-doc已安装"
INSTALLED="true"
else
LOG_INFO "texlive-filedate-doc未安装"
INSTALLED="false"
fi
# 检查yum源中是否存在该软件包
LOG_INFO "检查yum源中是否存在texlive-filedate-doc包"
if ! dnf list available texlive-filedate-doc &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-filedate-doc包"
exit 255
fi
# 如果未安装,则进行安装
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装texlive-filedate-doc包"
dnf install -y texlive-filedate-doc
CHECK_RESULT $? 0 0 "安装texlive-filedate-doc失败"
fi
# 检查文档文件是否存在
LOG_INFO "检查文档文件是否存在"
DOC_FILES="/usr/share/doc/texlive-filedate-doc/*"
if ls $DOC_FILES &> /dev/null; then
LOG_INFO "文档文件存在"
CHECK_RESULT $? 0 0 "文档文件检查失败"
else
LOG_ERROR "未找到文档文件"
CHECK_RESULT 1 0 1 "文档文件不存在"
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载texlive-filedate-doc包"
dnf remove -y texlive-filedate-doc
CHECK_RESULT $? 0 0 "卸载texlive-filedate-doc失败"
else
LOG_INFO "测试前已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-18
# @License : Mulan PSL v2
# @Desc : Test package version query
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="texlive-filedate-doc"
COMMAND="rpm"
COMMAND_ARGS="-q"
LOG_INFO "=== 开始测试软件包版本查询功能 ==="
LOG_INFO "测试用例: Test package version query"
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
LOG_INFO "软件包 $PACKAGE_NAME 存在于yum源中"
LOG_INFO "步骤2: 检查当前环境是否已安装该软件包"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
INSTALLED_STATUS=$?
NEED_CLEANUP=0
if [ $INSTALLED_STATUS -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
NEED_CLEANUP=0
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将执行安装作为测试步骤"
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包失败"
NEED_CLEANUP=1
fi
LOG_INFO "步骤4: 验证命令 $COMMAND 是否支持参数 $COMMAND_ARGS"
$COMMAND $COMMAND_ARGS --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $COMMAND 不支持参数 $COMMAND_ARGS"
exit 255
fi
LOG_INFO "命令 $COMMAND 支持参数 $COMMAND_ARGS"
LOG_INFO "步骤5: 执行主要测试步骤 - 查询软件包版本"
$COMMAND $COMMAND_ARGS $PACKAGE_NAME
CHECK_RESULT $? 0 0 "查询软件包版本失败"
LOG_INFO "步骤6: 清理测试环境"
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "卸载测试安装的软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包失败"
LOG_INFO "环境已恢复到测试前的未安装状态"
else
LOG_INFO "环境保持原有的已安装状态,无需清理"
fi
LOG_INFO "=== 测试软件包版本查询功能结束 ==="
}
main "$@"

View File

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

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