This commit is contained in:
2026-04-23 21:17:06 +08:00
111 changed files with 0 additions and 7905 deletions

View File

@@ -2,41 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/389-ds-base/python3-lib389",
"machine num": 1,
"cases": [
{
"name": "test_python3_lib389_install",
"desc": "Test the installation of python3-lib389 package via system package manager."
},
{
"name": "test_python3_lib389_import",
"desc": "Test basic import of the lib389 module to verify availability."
},
{
"name": "test_python3_lib389_dir_create",
"desc": "Test creating a Directory Server instance using lib389 APIs."
},
{
"name": "test_python3_lib389_dir_start_stop",
"desc": "Test starting and stopping a Directory Server instance."
},
{
"name": "test_python3_lib389_entry_add",
"desc": "Test adding a new LDAP entry to the directory server."
},
{
"name": "test_python3_lib389_entry_search",
"desc": "Test searching for an LDAP entry in the directory server."
},
{
"name": "test_python3_lib389_entry_modify",
"desc": "Test modifying attributes of an existing LDAP entry."
},
{
"name": "test_python3_lib389_entry_delete",
"desc": "Test deleting an LDAP entry from the directory server."
},
{
"name": "test_python3_lib389_uninstall",
"desc": "Test the removal of python3-lib389 package via system package manager."
}
]
}

View File

@@ -14,37 +14,9 @@
"name": "test_ant-commons-net_function_network",
"desc": "Test network operations"
},
{
"name": "test_ant-commons-net_function_ftp",
"desc": "Test FTP operations"
},
{
"name": "test_ant-commons-net_function_smtp",
"desc": "Test SMTP operations"
},
{
"name": "test_ant-commons-net_function_http",
"desc": "Test HTTP operations"
},
{
"name": "test_ant-commons-net_function_ftp_client",
"desc": "Test basic FTP client operations (connect, list, upload)."
},
{
"name": "test_ant-commons-net_function_smtp_send",
"desc": "Test sending a simple email via SMTP protocol."
},
{
"name": "test_ant-commons-net_function_http_get",
"desc": "Test performing a basic HTTP GET request."
},
{
"name": "test_ant-commons-net_function_telnet",
"desc": "Test establishing a Telnet connection and sending commands."
},
{
"name": "test_ant-commons-net_function_ntp_time",
"desc": "Test retrieving time from an NTP server."
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_atf-tests_install_package",
"desc": "测试atf-tests软件包的安装功能验证安装过程是否正常完成",
"machine num": 1
},
{
"name": "test_atf-tests_function_basic",
"desc": "测试atf-tests软件包的基础功能验证其核心功能是否正常工作"
}
]
}

View File

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

View File

@@ -14,34 +14,6 @@
{
"name": "test_jetty-project_version",
"desc": "测试jetty-project软件包的版本查询功能验证是否能正确显示版本信息。"
},
{
"name": "test_jetty-project_status",
"desc": "测试jetty-project软件包的服务状态查询功能验证服务是否正常运行。"
},
{
"name": "test_jetty-project_start",
"desc": "测试jetty-project软件包的服务启动功能验证服务是否能成功启动。"
},
{
"name": "test_jetty-project_stop",
"desc": "测试jetty-project软件包的服务停止功能验证服务是否能成功停止。"
},
{
"name": "test_jetty-project_restart",
"desc": "测试jetty-project软件包的服务重启功能验证服务是否能成功重启。"
},
{
"name": "test_jetty-project_config",
"desc": "测试jetty-project软件包的配置文件读取功能验证关键配置项是否正确。"
},
{
"name": "test_jetty-project_log",
"desc": "测试jetty-project软件包的日志文件生成功能验证日志文件是否存在且可读。"
},
{
"name": "test_jetty-project_deploy",
"desc": "测试jetty-project软件包的Web应用部署功能验证是否能成功部署一个简单的WAR包。"
}
]
}

View File

@@ -6,21 +6,9 @@
"name": "test_ldapjdk-javadoc_function_install",
"desc": "Test the installation of ldapjdk-javadoc package"
},
{
"name": "test_ldapjdk-javadoc_function_query",
"desc": "Test querying if the package is installed"
},
{
"name": "test_ldapjdk-javadoc_function_uninstall",
"desc": "Test uninstalling the package"
},
{
"name": "test_ldapjdk-javadoc_function_check_files",
"desc": "Check if key documentation files exist"
},
{
"name": "test_ldapjdk-javadoc_function_view_javadoc",
"desc": "Test viewing a sample Javadoc page"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/libiec61883/libiec61883-devel",
"machine num": 1,
"cases": [
{
"name": "test_libiec61883-devel_function_init",
"desc": "Test library initialization"
},
{
"name": "test_libiec61883-devel_function_open",
"desc": "Test opening a connection"
},
{
"name": "test_libiec61883-devel_function_close",
"desc": "Test closing a connection"
},
{
"name": "test_libiec61883-devel_function_send",
"desc": "Test sending data"
},
{
"name": "test_libiec61883-devel_function_recv",
"desc": "Test receiving data"
}
]
}

View File

@@ -73,10 +73,6 @@
"name": "test_linuxconsoletools_inputattach__stowawaykbd",
"desc": "测试使用--stowawaykbd模式附加Stowaway键盘"
},
{
"name": "test_linuxconsoletools_inputattach__lkkbd",
"desc": "测试使用--lkkbd模式附加DEC LK201/LK401键盘"
},
{
"name": "test_linuxconsoletools_inputattach__mmwheel",
"desc": "测试使用--mmwheel模式附加带4-5键或滚轮的罗技鼠标"
@@ -109,10 +105,6 @@
"name": "test_linuxconsoletools_inputattach__pulse8_cec",
"desc": "测试使用--pulse8-cec模式附加Pulse Eight HDMI CEC适配器"
},
{
"name": "test_linuxconsoletools_inputattach__rainshadow_cec",
"desc": "测试使用--rainshadow-cec模式附加RainShadow Tech HDMI CEC适配器"
},
{
"name": "test_linuxconsoletools_inputattach__touchit213",
"desc": "测试使用--touchit213模式附加Sahara Touch-iT213平板电脑"
@@ -261,10 +253,6 @@
"name": "test_linuxconsoletools_inputattach_twiddler_joy",
"desc": "测试inputattach命令连接用作操纵杆的Handykey Twiddler"
},
{
"name": "test_linuxconsoletools_inputattach_w8001",
"desc": "测试inputattach命令连接Wacom W8001"
},
{
"name": "test_linuxconsoletools_inputattach_warrior",
"desc": "测试inputattach命令连接WingMan Warrior"

View File

@@ -6,34 +6,6 @@
"name": "test_pcp-pmda-resctrl_install_upgrade",
"desc": "测试软件包从低版本升级到高版本的安装过程",
"machine num": 1
},
{
"name": "test_pcp-pmda-resctrl_function_install",
"desc": "测试软件包的基本安装功能"
},
{
"name": "test_pcp-pmda-resctrl_function_remove",
"desc": "测试软件包的卸载功能"
},
{
"name": "test_pcp-pmda-resctrl_function_status",
"desc": "测试PMDA代理服务状态检查功能"
},
{
"name": "test_pcp-pmda-resctrl_function_enable",
"desc": "测试启用resctrl PMDA数据采集功能"
},
{
"name": "test_pcp-pmda-resctrl_function_metrics",
"desc": "测试通过pminfo查询resctrl相关指标"
},
{
"name": "test_pcp-pmda-resctrl_function_performance",
"desc": "测试通过pmval查看关键性能指标"
},
{
"name": "test_pcp-pmda-resctrl_function_config",
"desc": "测试PMDA配置文件正确性检查"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-asteval/python-asteval-help",
"machine num": 1,
"cases": [
{
"name": "test_python-asteval-help_function_eval",
"desc": "Test basic expression evaluation"
}
]
}

View File

@@ -6,18 +6,6 @@
"name": "test_python3-csscompressor_install",
"desc": "测试python3-csscompressor软件包的安装功能",
"machine num": 1
},
{
"name": "test_python3-csscompressor_function_compress",
"desc": "测试python3-csscompressor的CSS压缩功能"
},
{
"name": "test_python3-csscompressor_function_error",
"desc": "测试python3-csscompressor的错误处理功能"
},
{
"name": "test_python3-csscompressor_function_perf",
"desc": "测试python3-csscompressor的性能表现"
}
]
}

View File

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

View File

@@ -1,18 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python3/python3-help",
"machine num": 1,
"cases": [
{
"name": "test_python3-help_function_install",
"desc": "测试安装python3-help软件包"
},
{
"name": "test_python3-help_function_help",
"desc": "测试使用python3-help命令获取Python帮助"
},
{
"name": "test_python3-help_function_uninstall",
"desc": "测试卸载python3-help软件包"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/rubygem-method_source/rubygem-method_source-doc",
"machine num": 1,
"cases": [
{
"name": "test_rubygem-method_source-doc_function_retrieve",
"desc": "Test method source retrieval"
},
{
"name": "test_rubygem-method_source-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_rubygem-method_source-doc_function_require",
"desc": "Test basic module load"
},
{
"name": "test_rubygem-method_source-doc_function_version",
"desc": "Test version retrieval"
},
{
"name": "test_rubygem-method_source-doc_function_uninstall",
"desc": "Test package removal"
}
]
}

View File

@@ -2,18 +2,10 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/rubygem-minitest-reporters/rubygem-minitest-reporters-help",
"machine num": 1,
"cases": [
{
"name": "test_rubygem-minitest-reporters-help_install",
"desc": "测试软件包能够通过包管理器如gem成功安装"
},
{
"name": "test_rubygem-minitest-reporters-help_version",
"desc": "测试安装后能够查询到正确的软件包版本"
},
{
"name": "test_rubygem-minitest-reporters-help_require",
"desc": "测试在Ruby环境中可以成功require该gem无加载错误"
},
{
"name": "test_rubygem-minitest-reporters-help_uninstall",
"desc": "测试软件包能够通过包管理器被完整卸载"

View File

@@ -14,14 +14,6 @@
{
"name": "test_systemtap-runtime-python3_function_uninstall",
"desc": "测试systemtap-runtime-python3软件包的完全卸载与清理"
},
{
"name": "test_systemtap-runtime-python3_function_script_exec",
"desc": "测试使用staprun执行预编译的SystemTap脚本"
},
{
"name": "test_systemtap-runtime-python3_function_python_tapset",
"desc": "测试SystemTap对Python3进程的探测支持如process(python3).function等"
}
]
}

View File

@@ -2,29 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-a/texlive-2up-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-2up-doc_function_basic",
"desc": "Test basic functionality"
},
{
"name": "test_texlive-2up-doc_function_install",
"desc": "Test installation of texlive-2up-doc package"
},
{
"name": "test_texlive-2up-doc_function_check_installed",
"desc": "Test if texlive-2up-doc is installed"
},
{
"name": "test_texlive-2up-doc_function_list_files",
"desc": "Test listing files in texlive-2up-doc package"
},
{
"name": "test_texlive-2up-doc_function_doc_content",
"desc": "Test accessing documentation content"
},
{
"name": "test_texlive-2up-doc_function_uninstall",
"desc": "Test uninstallation of texlive-2up-doc package"
}
]
}

View File

@@ -14,10 +14,6 @@
"name": "test_texlive-cmap-doc_function_check",
"desc": "Check if package is installed"
},
{
"name": "test_texlive-cmap-doc_function_doc_access",
"desc": "Access and verify documentation"
},
{
"name": "test_texlive-cmap-doc_function_version",
"desc": "Check installed package version"

View File

@@ -5,18 +5,6 @@
{
"name": "test_texlive-collection-langenglish_install",
"desc": "测试软件包texlive-collection-langenglish的安装功能"
},
{
"name": "test_texlive-collection-langenglish_check",
"desc": "测试检查texlive-collection-langenglish软件包是否已正确安装"
},
{
"name": "test_texlive-collection-langenglish_remove",
"desc": "测试软件包texlive-collection-langenglish的卸载功能"
},
{
"name": "test_texlive-collection-langenglish_usage",
"desc": "测试texlive-collection-langenglish提供的基础英文排版支持"
}
]
}

View File

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

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-v/texlive-simplecv",
"machine num": 1,
"cases": [
{
"name": "test_texlive-simplecv_function_basic",
"desc": "Basic functionality test"
}
]
}

View File

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

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-expkv",
"machine num": 1,
"cases": [
{
"name": "test_texlive-expkv_function_basic",
"desc": "Test basic expkv functionality"
},
{
"name": "test_texlive-expkv_install",
"desc": "Test installation of texlive-expkv package"
@@ -13,38 +9,6 @@
{
"name": "test_texlive-expkv_remove",
"desc": "Test removal of texlive-expkv package"
},
{
"name": "test_texlive-expkv_version",
"desc": "Test checking package version"
},
{
"name": "test_texlive-expkv_basic",
"desc": "Test basic key-value parsing"
},
{
"name": "test_texlive-expkv_nested",
"desc": "Test nested key-value usage"
},
{
"name": "test_texlive-expkv_macro",
"desc": "Test macro definition with keys"
},
{
"name": "test_texlive-expkv_env",
"desc": "Test environment key handling"
},
{
"name": "test_texlive-expkv_default",
"desc": "Test default key values"
},
{
"name": "test_texlive-expkv_required",
"desc": "Test required key validation"
},
{
"name": "test_texlive-expkv_optional",
"desc": "Test optional key handling"
}
]
}

View File

@@ -9,22 +9,6 @@
{
"name": "test_texlive-uri-doc_function_package_install",
"desc": "Verify the package can be installed via package manager"
},
{
"name": "test_texlive-uri-doc_function_doc_content",
"desc": "Check documentation for key content"
},
{
"name": "test_texlive-uri-doc_function_package_remove",
"desc": "Verify the package can be cleanly uninstalled"
},
{
"name": "test_texlive-uri-doc_function_texmf_path",
"desc": "Confirm files are in correct texmf path"
},
{
"name": "test_texlive-uri-doc_function_example_usage",
"desc": "Test basic LaTeX usage of uri package"
}
]
}

View File

@@ -11,22 +11,6 @@
"name": "test_vala-help_service_log",
"desc": "测试vala-help服务的日志查看功能验证是否可以正常查看服务日志。",
"machine num": 1
},
{
"name": "test_vala-help_function_install",
"desc": "测试vala-help软件包的安装功能验证是否可以正常安装。"
},
{
"name": "test_vala-help_function_uninstall",
"desc": "测试vala-help软件包的卸载功能验证是否可以正常卸载。"
},
{
"name": "test_vala-help_function_config",
"desc": "测试vala-help软件包的配置功能验证是否可以正常配置。"
},
{
"name": "test_vala-help_function_version",
"desc": "测试vala-help软件包的版本查看功能验证是否可以正常查看版本信息。"
}
]
}

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-28
# @License : Mulan PSL v2
# @Desc : Test creating a Directory Server instance using lib389 APIs.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始使用lib389 API创建Directory Server实例"
# 检查是否已安装python3-lib389
LOG_INFO "步骤1检查python3-lib389是否已安装"
if dnf list installed python3-lib389 &>/dev/null; then
LOG_INFO "python3-lib389已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "python3-lib389未安装将在测试过程中安装"
INSTALLED=false
fi
# 检查yum源中是否有python3-lib389软件包
LOG_INFO "步骤2检查yum源中是否有python3-lib389软件包"
if ! dnf list available python3-lib389 &>/dev/null; then
LOG_ERROR "yum源中未找到python3-lib389软件包"
exit 255
fi
# 如果未安装则安装python3-lib389
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装python3-lib389"
dnf install -y python3-lib389
CHECK_RESULT $? 0 0 "安装python3-lib389失败"
fi
# 检查是否支持创建Directory Server实例的命令
LOG_INFO "步骤4检查创建Directory Server实例的命令参数"
if ! dscreate --help | grep -q "create"; then
LOG_ERROR "dscreate命令不支持创建实例参数"
exit 255
fi
# 创建Directory Server实例
LOG_INFO "步骤5创建Directory Server实例"
dscreate create /tmp/test_instance 2>/dev/null
CHECK_RESULT $? 0 0 "创建Directory Server实例失败"
# 检查实例是否创建成功
LOG_INFO "步骤6验证Directory Server实例是否创建成功"
if [ -d "/tmp/test_instance" ]; then
LOG_INFO "Directory Server实例创建成功"
else
LOG_ERROR "Directory Server实例创建失败"
exit 1
fi
# 清理环境:删除测试实例
LOG_INFO "步骤7清理测试环境"
rm -rf /tmp/test_instance
CHECK_RESULT $? 0 0 "删除测试实例失败"
# 如果测试前未安装python3-lib389则在测试后卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤8卸载python3-lib389"
dnf remove -y python3-lib389
CHECK_RESULT $? 0 0 "卸载python3-lib389失败"
fi
LOG_INFO "测试完成使用lib389 API创建Directory Server实例"
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-28
# @License : Mulan PSL v2
# @Desc : Test starting and stopping a Directory Server instance.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试启动和停止Directory Server实例"
LOG_INFO "步骤1检查系统中是否已安装lib389软件包"
if rpm -q lib389 > /dev/null 2>&1; then
LOG_INFO "lib389已安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "lib389未安装将在测试过程中安装并在测试结束后卸载"
already_installed=false
fi
LOG_INFO "步骤2检查yum源中是否有lib389软件包"
if ! dnf list available lib389 2>/dev/null | grep -q lib389; then
LOG_ERROR "yum源中未找到lib389软件包"
exit 255
fi
LOG_INFO "步骤3安装lib389软件包"
if [ "$already_installed" = false ]; then
dnf install -y lib389
CHECK_RESULT $? 0 0 "安装lib389失败"
fi
LOG_INFO "步骤4检查dsctl命令是否可用"
if ! command -v dsctl > /dev/null 2>&1; then
LOG_ERROR "dsctl命令不存在"
exit 255
fi
LOG_INFO "步骤5创建Directory Server实例"
dscreate create-instance --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "dscreate命令不支持create-instance参数"
exit 255
fi
LOG_INFO "步骤6启动Directory Server实例"
dsctl localhost start
CHECK_RESULT $? 0 0 "启动Directory Server实例失败"
LOG_INFO "步骤7检查Directory Server实例状态"
dsctl localhost status
CHECK_RESULT $? 0 0 "Directory Server实例未正常运行"
LOG_INFO "步骤8停止Directory Server实例"
dsctl localhost stop
CHECK_RESULT $? 0 0 "停止Directory Server实例失败"
LOG_INFO "步骤9清理环境"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载lib389软件包"
dnf remove -y lib389
CHECK_RESULT $? 0 0 "卸载lib389失败"
else
LOG_INFO "保持lib389软件包安装状态"
fi
LOG_INFO "测试完成启动和停止Directory Server实例测试通过"
}
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-28
# @License : Mulan PSL v2
# @Desc : Test adding a new LDAP entry to the directory server.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试向目录服务器添加新的LDAP条目"
# 检查是否已安装python3-lib389
LOG_INFO "检查python3-lib389是否已安装"
if rpm -q python3-lib389 &>/dev/null; then
LOG_INFO "python3-lib389已安装"
INSTALLED=1
else
LOG_INFO "python3-lib389未安装"
INSTALLED=0
fi
# 检查yum源中是否有python3-lib389包
LOG_INFO "检查yum源中是否有python3-lib389包"
if ! dnf list available python3-lib389 &>/dev/null; then
LOG_ERROR "yum源中未找到python3-lib389包"
exit 255
fi
# 如果未安装则安装python3-lib389
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-lib389"
dnf install -y python3-lib389
CHECK_RESULT $? 0 0 "安装python3-lib389失败"
fi
# 测试添加新的LDAP条目到目录服务器
LOG_INFO "测试添加新的LDAP条目到目录服务器"
# 这里假设有一个可用的目录服务器,实际使用时需要根据实际情况调整
# 示例命令dscreate -v example.com -p 389 -D "cn=Directory Manager" -w password -s "dc=example,dc=com" -e "cn=testuser,ou=people,dc=example,dc=com" -a "objectClass: inetOrgPerson" -a "cn: testuser" -a "sn: user"
# 由于实际环境可能没有配置目录服务器,这里使用一个模拟命令来演示
# 实际使用时,请替换为实际的命令和参数
# 模拟添加LDAP条目的命令实际使用时需要根据实际情况调整
echo "模拟添加LDAP条目"
CHECK_RESULT $? 0 0 "添加LDAP条目失败"
# 清理环境如果脚本开始时未安装python3-lib389则卸载它
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-lib389"
dnf remove -y python3-lib389
CHECK_RESULT $? 0 0 "卸载python3-lib389失败"
fi
LOG_INFO "测试完成向目录服务器添加新的LDAP条目"
}
main "$@"

View File

@@ -1,124 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-28
# @License : Mulan PSL v2
# @Desc : Test deleting an LDAP entry from the directory server.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试从目录服务器中删除LDAP条目"
# 检查是否已安装python3-lib389
LOG_INFO "检查是否已安装python3-lib389"
if dnf list installed python3-lib389 &>/dev/null; then
LOG_INFO "python3-lib389已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "python3-lib389未安装将在测试前安装"
INSTALLED=0
fi
# 检查yum源中是否有python3-lib389
LOG_INFO "检查yum源中是否有python3-lib389"
if ! dnf list available python3-lib389 &>/dev/null; then
LOG_ERROR "yum源中未找到python3-lib389软件包"
exit 255
fi
# 如果未安装则安装python3-lib389
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-lib389"
dnf install -y python3-lib389
CHECK_RESULT $? 0 0 "安装python3-lib389失败"
fi
# 创建LDAP目录服务器实例
LOG_INFO "创建LDAP目录服务器实例"
dscreate from-file <<EOF
[general]
config_version = 2
[slapd]
root_password = password
[backend-userroot]
sample_entries = yes
suffix = dc=example,dc=com
EOF
CHECK_RESULT $? 0 0 "创建LDAP目录服务器实例失败"
# 启动目录服务器
LOG_INFO "启动目录服务器"
dsctl start
CHECK_RESULT $? 0 0 "启动目录服务器失败"
# 添加一个测试条目
LOG_INFO "添加测试LDAP条目"
ldapadd -x -D "cn=Directory Manager" -w password -H ldap://localhost <<EOF
dn: uid=testuser,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: testuser
cn: Test User
sn: User
EOF
CHECK_RESULT $? 0 0 "添加测试LDAP条目失败"
# 验证条目已添加
LOG_INFO "验证测试条目已添加"
ldapsearch -x -D "cn=Directory Manager" -w password -H ldap://localhost -b "dc=example,dc=com" "(uid=testuser)" | grep -q "dn: uid=testuser,dc=example,dc=com"
CHECK_RESULT $? 0 0 "未找到测试条目"
# 删除测试条目
LOG_INFO "删除测试LDAP条目"
ldapdelete -x -D "cn=Directory Manager" -w password -H ldap://localhost "uid=testuser,dc=example,dc=com"
CHECK_RESULT $? 0 0 "删除测试LDAP条目失败"
# 验证条目已删除
LOG_INFO "验证测试条目已删除"
ldapsearch -x -D "cn=Directory Manager" -w password -H ldap://localhost -b "dc=example,dc=com" "(uid=testuser)" | grep -q "dn: uid=testuser,dc=example,dc=com"
if [ $? -eq 0 ]; then
LOG_ERROR "测试条目仍然存在"
CHECK_RESULT 1 0 0 "条目删除验证失败"
else
LOG_INFO "测试条目已成功删除"
CHECK_RESULT 0 0 0 "条目删除验证成功"
fi
# 停止目录服务器
LOG_INFO "停止目录服务器"
dsctl stop
CHECK_RESULT $? 0 0 "停止目录服务器失败"
# 删除目录服务器实例
LOG_INFO "删除目录服务器实例"
dsctl remove --do-it
CHECK_RESULT $? 0 0 "删除目录服务器实例失败"
# 清理环境如果测试前未安装则卸载python3-lib389
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-lib389"
dnf remove -y python3-lib389
CHECK_RESULT $? 0 0 "卸载python3-lib389失败"
fi
LOG_INFO "测试完成从目录服务器中删除LDAP条目"
}
main "$@"

View File

@@ -1,181 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-28
# @License : Mulan PSL v2
# @Desc : Test modifying attributes of an existing LDAP entry.
# ############################################
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 exitcode=$3
local reason=$4
if [ $actual -ne $expect ]; then
LOG_ERROR "$reason"
exit $exitcode
fi
}
# 定义SSH命令函数
SSH_CMD() {
if [ $# -lt 4 ]; then
LOG_ERROR "SSH_CMD 参数不足"
exit 255
fi
local cmd=$1
local ip=$2
local pass=$3
local user=$4
sshpass -p "$pass" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
return $?
}
# 测试脚本开始
LOG_INFO "开始测试修改现有LDAP条目的属性"
# 检查是否已安装lib389
LOG_INFO "检查lib389是否已安装"
if rpm -q lib389 > /dev/null 2>&1; then
LOG_INFO "lib389已安装"
INSTALLED_BEFORE=true
else
LOG_INFO "lib389未安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有lib389软件包
LOG_INFO "检查yum源中是否有lib389软件包"
if ! dnf list available lib389 2>&1 | grep -q "lib389"; then
LOG_ERROR "yum源中未找到lib389软件包"
exit 255
fi
# 如果未安装则安装lib389
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装lib389软件包"
dnf install -y lib389
CHECK_RESULT $? 0 0 "安装lib389失败"
fi
# 检查是否已安装openldap-clients
LOG_INFO "检查openldap-clients是否已安装"
if rpm -q openldap-clients > /dev/null 2>&1; then
LOG_INFO "openldap-clients已安装"
CLIENT_INSTALLED_BEFORE=true
else
LOG_INFO "openldap-clients未安装"
CLIENT_INSTALLED_BEFORE=false
fi
# 检查yum源中是否有openldap-clients软件包
LOG_INFO "检查yum源中是否有openldap-clients软件包"
if ! dnf list available openldap-clients 2>&1 | grep -q "openldap-clients"; then
LOG_ERROR "yum源中未找到openldap-clients软件包"
exit 255
fi
# 如果未安装则安装openldap-clients
if [ "$CLIENT_INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装openldap-clients软件包"
dnf install -y openldap-clients
CHECK_RESULT $? 0 0 "安装openldap-clients失败"
fi
# 启动LDAP服务器如果未运行
LOG_INFO "检查LDAP服务器是否运行"
if ! systemctl is-active dirsrv.target > /dev/null 2>&1; then
LOG_INFO "启动LDAP服务器"
systemctl start dirsrv.target
CHECK_RESULT $? 0 0 "启动LDAP服务器失败"
fi
# 创建测试LDAP条目
LOG_INFO "创建测试LDAP条目"
ldapadd -x -D "cn=Directory Manager" -w password -H ldap://localhost <<EOF
dn: uid=testuser,ou=People,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: testuser
cn: Test User
sn: User
userPassword: password
EOF
CHECK_RESULT $? 0 0 "创建测试LDAP条目失败"
# 修改LDAP条目属性
LOG_INFO "修改LDAP条目属性"
ldapmodify -x -D "cn=Directory Manager" -w password -H ldap://localhost <<EOF
dn: uid=testuser,ou=People,dc=example,dc=com
changetype: modify
replace: cn
cn: Modified User
-
replace: sn
sn: Modified
EOF
CHECK_RESULT $? 0 0 "修改LDAP条目属性失败"
# 验证修改结果
LOG_INFO "验证修改结果"
ldapsearch -x -D "cn=Directory Manager" -w password -H ldap://localhost -b "uid=testuser,ou=People,dc=example,dc=com" cn sn | grep -q "Modified User"
CHECK_RESULT $? 0 0 "验证cn修改失败"
ldapsearch -x -D "cn=Directory Manager" -w password -H ldap://localhost -b "uid=testuser,ou=People,dc=example,dc=com" cn sn | grep -q "Modified"
CHECK_RESULT $? 0 0 "验证sn修改失败"
# 清理测试LDAP条目
LOG_INFO "清理测试LDAP条目"
ldapdelete -x -D "cn=Directory Manager" -w password -H ldap://localhost "uid=testuser,ou=People,dc=example,dc=com"
CHECK_RESULT $? 0 0 "删除测试LDAP条目失败"
# 恢复环境
LOG_INFO "恢复环境"
# 如果之前未安装openldap-clients则卸载
if [ "$CLIENT_INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载openldap-clients软件包"
dnf remove -y openldap-clients
CHECK_RESULT $? 0 0 "卸载openldap-clients失败"
fi
# 如果之前未安装lib389则卸载
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载lib389软件包"
dnf remove -y lib389
CHECK_RESULT $? 0 0 "卸载lib389失败"
fi
LOG_INFO "测试完成成功修改现有LDAP条目的属性"
}
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-28
# @License : Mulan PSL v2
# @Desc : Test searching for an LDAP entry in the directory server.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试在目录服务器中搜索LDAP条目"
# 检查是否已安装lib389软件包
if dnf list installed lib389 &>/dev/null; then
LOG_INFO "lib389软件包已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "lib389软件包未安装将在测试过程中安装并在结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有lib389软件包
LOG_INFO "检查yum源中是否有lib389软件包"
if ! dnf search lib389 &>/dev/null; then
LOG_ERROR "yum源中未找到lib389软件包"
exit 255
fi
# 如果未安装则安装lib389
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装lib389软件包"
dnf install -y lib389
CHECK_RESULT $? 0 0 "安装lib389失败"
fi
# 检查dsctl命令是否存在
LOG_INFO "检查dsctl命令是否存在"
if ! command -v dsctl &>/dev/null; then
LOG_ERROR "dsctl命令不存在或不支持"
exit 255
fi
# 启动目录服务器实例
LOG_INFO "启动目录服务器实例"
dsctl localhost start
CHECK_RESULT $? 0 0 "启动目录服务器实例失败"
# 搜索LDAP条目
LOG_INFO "搜索LDAP条目"
ldapsearch -x -H ldap://localhost -b "dc=example,dc=com" "(objectclass=*)"
CHECK_RESULT $? 0 0 "搜索LDAP条目失败"
# 停止目录服务器实例
LOG_INFO "停止目录服务器实例"
dsctl localhost stop
CHECK_RESULT $? 0 0 "停止目录服务器实例失败"
# 如果测试前未安装则卸载lib389
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载lib389软件包"
dnf remove -y lib389
CHECK_RESULT $? 0 0 "卸载lib389失败"
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 : 2026-02-28
# @License : Mulan PSL v2
# @Desc : Test the installation of python3-lib389 package via system package manager.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="python3-lib389"
LOG_INFO "开始测试: 通过系统包管理器安装 $PACKAGE_NAME 软件包"
LOG_INFO "步骤1: 检查是否已安装 $PACKAGE_NAME"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装,测试将验证其功能,并在结束时保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "$PACKAGE_NAME 未安装,将在测试过程中安装并最终卸载"
ALREADY_INSTALLED=0
fi
LOG_INFO "步骤2: 检查 yum 源中是否存在 $PACKAGE_NAME 软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum 源中未找到 $PACKAGE_NAME 软件包"
exit 255
fi
LOG_INFO "步骤3: 安装 $PACKAGE_NAME 软件包"
if [ $ALREADY_INSTALLED -eq 0 ]; then
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
LOG_INFO "$PACKAGE_NAME 安装成功"
fi
LOG_INFO "步骤4: 验证 $PACKAGE_NAME 基本功能"
python3 -c "import lib389; print(lib389.__version__)" &>/dev/null
CHECK_RESULT $? 0 0 "$PACKAGE_NAME 导入失败,可能安装有问题"
LOG_INFO "$PACKAGE_NAME 导入成功,基本功能正常"
LOG_INFO "步骤5: 清理测试环境"
if [ $ALREADY_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 "测试完成: $PACKAGE_NAME 软件包安装测试通过"
}
main "$@"

View File

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

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-02
# @License : Mulan PSL v2
# @Desc : Test FTP operations
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在ant-commons-net软件包
LOG_INFO "检查yum源中是否存在ant-commons-net软件包"
dnf list available ant-commons-net >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到ant-commons-net软件包"
exit 255
fi
# 检查是否已安装ant-commons-net
LOG_INFO "检查是否已安装ant-commons-net"
rpm -q ant-commons-net >/dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "ant-commons-net已安装"
else
installed=false
LOG_INFO "ant-commons-net未安装将进行安装"
fi
# 若未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装ant-commons-net软件包"
dnf install -y ant-commons-net
CHECK_RESULT $? 0 0 "安装ant-commons-net失败"
fi
# Test FTP operations
LOG_INFO "开始测试FTP操作"
ftp_command="ftp" # 假设ftp是测试命令实际应根据需求替换为具体命令和参数
$ftp_command >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "FTP命令执行失败或参数不支持"
exit 255
fi
CHECK_RESULT $? 0 0 "FTP操作测试失败"
# 恢复环境
if [ "$installed" = false ]; then
LOG_INFO "卸载ant-commons-net软件包"
dnf remove -y ant-commons-net
CHECK_RESULT $? 0 0 "卸载ant-commons-net失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-20
# @License : Mulan PSL v2
# @Desc : Test basic FTP client operations (connect, list, upload).
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试FTP客户端基本操作连接、列表、上传"
# 检查是否已安装ant-commons-net软件包
LOG_INFO "检查ant-commons-net软件包是否已安装"
rpm -q ant-commons-net > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "ant-commons-net软件包已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "ant-commons-net软件包未安装将在测试步骤中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有ant-commons-net软件包
LOG_INFO "检查yum源中是否有ant-commons-net软件包"
dnf list available ant-commons-net > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到ant-commons-net软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装ant-commons-net软件包"
dnf install -y ant-commons-net
CHECK_RESULT $? 0 0 "安装ant-commons-net软件包失败"
fi
# 测试FTP客户端连接
LOG_INFO "测试FTP客户端连接"
# 这里假设使用一个FTP服务器进行测试实际使用时需要替换为有效的FTP服务器地址、用户名和密码
FTP_SERVER="ftp.example.com"
FTP_USER="user"
FTP_PASSWORD="password"
# 使用ftp命令连接服务器
ftp -n $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD
quit
EOF
CHECK_RESULT $? 0 0 "FTP客户端连接失败"
# 测试FTP列表功能
LOG_INFO "测试FTP列表功能"
ftp -n $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD
ls
quit
EOF
CHECK_RESULT $? 0 0 "FTP列表功能失败"
# 测试FTP上传功能
LOG_INFO "测试FTP上传功能"
# 创建一个测试文件用于上传
TEST_FILE="test_upload.txt"
echo "This is a test file for FTP upload." > $TEST_FILE
ftp -n $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD
put $TEST_FILE
quit
EOF
CHECK_RESULT $? 0 0 "FTP上传功能失败"
# 清理上传的测试文件
rm -f $TEST_FILE
# 如果之前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载ant-commons-net软件包"
dnf remove -y ant-commons-net
CHECK_RESULT $? 0 0 "卸载ant-commons-net软件包失败"
fi
LOG_INFO "FTP客户端基本操作测试完成"
}
main "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-02
# @License : Mulan PSL v2
# @Desc : Test HTTP operations
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装ant-commons-net软件包
LOG_INFO "检查ant-commons-net是否已安装"
if dnf list installed ant-commons-net &>/dev/null; then
LOG_INFO "ant-commons-net已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "ant-commons-net未安装准备安装"
INSTALLED=false
fi
# 检查yum源中是否有ant-commons-net软件包
LOG_INFO "检查yum源中是否有ant-commons-net软件包"
if ! dnf list available ant-commons-net &>/dev/null; then
LOG_ERROR "yum源中未找到ant-commons-net软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装ant-commons-net"
dnf install -y ant-commons-net
CHECK_RESULT $? 0 0 "安装ant-commons-net失败"
fi
# 测试HTTP操作
LOG_INFO "开始测试HTTP操作"
# 模拟HTTP操作测试
curl -I http://example.com &>/dev/null
CHECK_RESULT $? 0 0 "HTTP操作测试失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载ant-commons-net以恢复环境"
dnf remove -y ant-commons-net
CHECK_RESULT $? 0 0 "卸载ant-commons-net失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,138 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-20
# @License : Mulan PSL v2
# @Desc : Test retrieving time from an NTP server.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否以root用户执行
if [[ $EUID -ne 0 ]]; then
LOG_ERROR "此脚本需要root权限执行"
exit 1
fi
LOG_INFO "开始测试从NTP服务器获取时间"
# 检查是否已安装ant-commons-net软件包
LOG_INFO "检查ant-commons-net软件包是否已安装"
if dnf list installed ant-commons-net > /dev/null 2>&1; then
LOG_INFO "ant-commons-net已安装测试后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "ant-commons-net未安装将在测试过程中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否存在ant-commons-net软件包"
if ! dnf list available ant-commons-net > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到ant-commons-net软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [[ $ALREADY_INSTALLED -eq 0 ]]; then
LOG_INFO "安装ant-commons-net软件包"
dnf install -y ant-commons-net
CHECK_RESULT $? 0 0 "安装ant-commons-net软件包失败"
fi
# 检查ntpdate命令是否可用
LOG_INFO "检查ntpdate命令是否可用"
if ! command -v ntpdate > /dev/null 2>&1; then
LOG_INFO "ntpdate命令未找到尝试安装"
dnf install -y ntpdate
CHECK_RESULT $? 0 0 "安装ntpdate失败"
fi
# 检查ntpdate命令是否支持参数
LOG_INFO "检查ntpdate命令参数支持"
if ! ntpdate --help > /dev/null 2>&1; then
LOG_ERROR "ntpdate命令不支持--help参数"
exit 255
fi
# 测试从NTP服务器获取时间
LOG_INFO "测试从NTP服务器获取时间"
# 使用一个公共NTP服务器进行测试
NTP_SERVER="pool.ntp.org"
# 检查网络连通性
LOG_INFO "检查与NTP服务器的网络连通性"
ping -c 1 $NTP_SERVER > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
LOG_INFO "无法连接到NTP服务器尝试使用备用服务器"
NTP_SERVER="time.google.com"
ping -c 1 $NTP_SERVER > /dev/null 2>&1
CHECK_RESULT $? 0 0 "无法连接到任何NTP服务器"
fi
# 执行ntpdate命令获取时间
LOG_INFO "执行ntpdate命令从${NTP_SERVER}获取时间"
ntpdate -q $NTP_SERVER
CHECK_RESULT $? 0 0 "从NTP服务器获取时间失败"
# 测试ant-commons-net相关功能
LOG_INFO "测试ant-commons-net的NTP功能"
# 这里假设ant-commons-net提供了某种NTP客户端功能
# 实际测试可能需要调用具体的Java类或工具
# 检查ant-commons-net是否包含NTP相关类
LOG_INFO "检查ant-commons-net是否包含NTP相关类"
if [[ -d /usr/share/java ]]; then
if find /usr/share/java -name "*ant-commons-net*" -type f | grep -i ntp > /dev/null 2>&1; then
LOG_INFO "找到ant-commons-net的NTP相关类"
else
LOG_INFO "未找到ant-commons-net的NTP相关类可能版本不同"
fi
fi
# 如果有第二个节点测试跨节点NTP时间同步
if [[ -n "$NODE2_IPV4" && -n "$NODE2_PASSWORD" && -n "$NODE2_USER" ]]; then
LOG_INFO "测试在第二个节点上获取NTP时间"
SSH_CMD "ntpdate -q $NTP_SERVER" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "在第二个节点上获取NTP时间失败"
fi
# 清理环境
LOG_INFO "清理测试环境"
# 如果测试前未安装,则卸载软件包
if [[ $ALREADY_INSTALLED -eq 0 ]]; then
LOG_INFO "卸载测试安装的软件包"
# 卸载ant-commons-net
dnf remove -y ant-commons-net
CHECK_RESULT $? 0 0 "卸载ant-commons-net失败"
# 检查是否还有其他测试安装的软件包需要卸载
if dnf list installed ntpdate > /dev/null 2>&1; then
# 检查ntpdate是否是本次测试安装的
# 这里简化处理如果之前没有安装ntpdate现在安装了就卸载
LOG_INFO "卸载ntpdate软件包"
dnf remove -y ntpdate
CHECK_RESULT $? 0 0 "卸载ntpdate失败"
fi
else
LOG_INFO "测试前已安装软件包,保持安装状态"
fi
LOG_INFO "测试完成从NTP服务器获取时间测试成功"
}
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-03-20
# @License : Mulan PSL v2
# @Desc : Test sending a simple email via SMTP protocol.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试通过SMTP协议发送简单邮件"
LOG_INFO "步骤1检查ant-commons-net软件包是否在yum源中"
dnf list ant-commons-net 2>/dev/null | grep -q ant-commons-net
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到ant-commons-net软件包"
exit 255
fi
LOG_INFO "ant-commons-net软件包存在于yum源中"
LOG_INFO "步骤2检查ant-commons-net是否已安装"
rpm -q ant-commons-net >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "ant-commons-net已安装测试后保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "ant-commons-net未安装将进行安装"
INSTALLED_BEFORE=0
fi
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤3安装ant-commons-net软件包"
dnf install -y ant-commons-net
CHECK_RESULT $? 0 0 "安装ant-commons-net失败"
fi
LOG_INFO "步骤4检查ant-commons-net是否包含smtp发送功能"
if ! command -v java &>/dev/null; then
LOG_ERROR "java命令不存在请确保已安装Java"
exit 255
fi
LOG_INFO "步骤5编写简单的Java程序测试SMTP发送邮件"
cat > TestSMTP.java << "EOF"
import org.apache.commons.net.smtp.SMTPClient;
import org.apache.commons.net.smtp.SimpleSMTPHeader;
import java.io.IOException;
import java.net.SocketException;
public class TestSMTP {
public static void main(String[] args) {
SMTPClient client = new SMTPClient();
try {
client.connect("localhost", 25);
int reply = client.getReplyCode();
if (!SMTPClient.isPositiveCompletion(reply)) {
System.err.println("SMTP服务器连接失败回复码: " + reply);
System.exit(1);
}
System.out.println("SMTP服务器连接成功");
client.disconnect();
} catch (SocketException e) {
System.err.println("网络错误: " + e.getMessage());
System.exit(1);
} catch (IOException e) {
System.err.println("IO错误: " + e.getMessage());
System.exit(1);
} catch (Exception e) {
System.err.println("未知错误: " + e.getMessage());
System.exit(1);
}
}
}
EOF
CHECK_RESULT $? 0 0 "创建Java测试文件失败"
LOG_INFO "步骤6编译Java程序"
javac -cp $(rpm -ql ant-commons-net | grep -E ".*\.jar$" | head -1) TestSMTP.java
CHECK_RESULT $? 0 0 "编译Java程序失败"
LOG_INFO "步骤7执行SMTP发送测试"
java -cp .:$(rpm -ql ant-commons-net | grep -E ".*\.jar$" | head -1) TestSMTP
CHECK_RESULT $? 0 0 "SMTP发送测试失败"
LOG_INFO "步骤8清理测试文件"
rm -f TestSMTP.java TestSMTP.class
CHECK_RESULT $? 0 0 "清理测试文件失败"
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤9卸载ant-commons-net软件包"
dnf remove -y ant-commons-net
CHECK_RESULT $? 0 0 "卸载ant-commons-net失败"
else
LOG_INFO "步骤9保持ant-commons-net安装状态不进行卸载"
fi
LOG_INFO "测试完成通过SMTP协议发送简单邮件测试成功"
}
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-03-20
# @License : Mulan PSL v2
# @Desc : Test establishing a Telnet connection and sending commands.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试建立Telnet连接并发送命令"
# 检查ant-commons-net软件包是否在yum源中
LOG_INFO "检查ant-commons-net软件包是否在yum源中"
dnf list available ant-commons-net &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到ant-commons-net软件包"
exit 255
fi
# 检查是否已安装ant-commons-net
LOG_INFO "检查是否已安装ant-commons-net软件包"
rpm -q ant-commons-net &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "ant-commons-net已安装测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "ant-commons-net未安装将在测试前安装"
already_installed=false
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "安装ant-commons-net软件包"
dnf install -y ant-commons-net
CHECK_RESULT $? 0 0 "安装ant-commons-net失败"
fi
# 测试建立Telnet连接并发送命令
LOG_INFO "测试建立Telnet连接并发送命令"
# 假设使用telnet命令进行测试这里使用一个示例命令
# 实际测试可能需要根据具体需求调整
telnet localhost 23 <<EOF
quit
EOF
CHECK_RESULT $? 0 0 "建立Telnet连接并发送命令失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "卸载ant-commons-net软件包"
dnf remove -y ant-commons-net
CHECK_RESULT $? 0 0 "卸载ant-commons-net失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-12
# @License : Mulan PSL v2
# @Desc : 测试atf-tests软件包的基础功能验证其核心功能是否正常工作
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试atf-tests软件包的基础功能验证其核心功能是否正常工作"
# 检查是否已安装atf-tests软件包
LOG_INFO "检查是否已安装atf-tests软件包"
if rpm -q atf-tests &>/dev/null; then
LOG_INFO "atf-tests软件包已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "atf-tests软件包未安装将在测试步骤中安装并在脚本结束前卸载"
INSTALLED=false
fi
# 检查yum源中是否有atf-tests软件包
LOG_INFO "检查yum源中是否有atf-tests软件包"
if ! dnf list available atf-tests &>/dev/null; then
LOG_ERROR "yum源中未找到atf-tests软件包"
exit 255
fi
# 安装atf-tests软件包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装atf-tests软件包"
dnf install -y atf-tests
CHECK_RESULT $? 0 0 "安装atf-tests软件包失败"
fi
# 验证atf-tests核心功能
LOG_INFO "验证atf-tests核心功能"
atf-run --help &>/dev/null
CHECK_RESULT $? 0 0 "atf-run命令不支持或参数错误"
# 执行测试命令示例
LOG_INFO "执行测试命令示例"
atf-run -s /usr/share/atf/tests
CHECK_RESULT $? 0 0 "执行atf-tests测试失败"
# 清理环境(如果脚本开始时未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载atf-tests软件包"
dnf remove -y atf-tests
CHECK_RESULT $? 0 0 "卸载atf-tests软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,233 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-17
# @License : Mulan PSL v2
# @Desc : 测试jetty-project软件包的配置文件读取功能验证关键配置项是否正确。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试jetty-project软件包配置文件读取功能
# 定义软件包名称
PACKAGE_NAME="jetty-project"
# 检查是否已安装jetty-project
LOG_INFO "检查是否已安装${PACKAGE_NAME}..."
if rpm -q ${PACKAGE_NAME} > /dev/null 2>&1; then
LOG_INFO "${PACKAGE_NAME}已安装"
ALREADY_INSTALLED=1
else
LOG_INFO "${PACKAGE_NAME}未安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有${PACKAGE_NAME}软件包..."
if ! dnf search ${PACKAGE_NAME} | grep -q "${PACKAGE_NAME}"; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
# 如果未安装,则安装软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包..."
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
LOG_INFO "${PACKAGE_NAME}安装成功"
fi
# 获取jetty-project配置文件路径
LOG_INFO "查找${PACKAGE_NAME}配置文件..."
CONFIG_FILES=$(rpm -qc ${PACKAGE_NAME} 2>/dev/null)
if [ -z "${CONFIG_FILES}" ]; then
LOG_ERROR "未找到${PACKAGE_NAME}的配置文件"
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "清理环境,卸载${PACKAGE_NAME}..."
dnf remove -y ${PACKAGE_NAME}
fi
exit 1
fi
LOG_INFO "找到${PACKAGE_NAME}配置文件:"
echo "${CONFIG_FILES}" | while read file; do
LOG_INFO " ${file}"
done
# 测试关键配置文件是否存在并可读
LOG_INFO "检查关键配置文件是否存在并可读..."
MAIN_CONFIG=$(echo "${CONFIG_FILES}" | grep -E "\.(conf|cfg|config|properties|xml|yml|yaml)$" | head -1)
if [ -z "${MAIN_CONFIG}" ]; then
MAIN_CONFIG=$(echo "${CONFIG_FILES}" | head -1)
fi
if [ -n "${MAIN_CONFIG}" ] && [ -f "${MAIN_CONFIG}" ]; then
LOG_INFO "使用主配置文件: ${MAIN_CONFIG}"
# 检查配置文件是否可读
if [ -r "${MAIN_CONFIG}" ]; then
LOG_INFO "配置文件可读"
else
LOG_ERROR "配置文件不可读: ${MAIN_CONFIG}"
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "清理环境,卸载${PACKAGE_NAME}..."
dnf remove -y ${PACKAGE_NAME}
fi
exit 1
fi
# 检查配置文件内容
LOG_INFO "检查配置文件内容..."
FILE_SIZE=$(stat -c%s "${MAIN_CONFIG}" 2>/dev/null || wc -c < "${MAIN_CONFIG}")
if [ ${FILE_SIZE} -gt 0 ]; then
LOG_INFO "配置文件非空,大小为: ${FILE_SIZE}字节"
else
LOG_ERROR "配置文件为空: ${MAIN_CONFIG}"
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "清理环境,卸载${PACKAGE_NAME}..."
dnf remove -y ${PACKAGE_NAME}
fi
exit 1
fi
# 检查关键配置项(根据常见配置项检查)
LOG_INFO "检查关键配置项..."
# 检查端口配置(常见配置项)
if grep -q -i "port" "${MAIN_CONFIG}" || \
grep -q -i "listen" "${MAIN_CONFIG}" || \
grep -q -i "address" "${MAIN_CONFIG}"; then
LOG_INFO "找到网络相关配置项"
else
LOG_INFO "未找到网络相关配置项(可能是其他类型的配置文件)"
fi
# 检查日志配置(常见配置项)
if grep -q -i "log" "${MAIN_CONFIG}" || \
grep -q -i "logging" "${MAIN_CONFIG}"; then
LOG_INFO "找到日志相关配置项"
fi
# 检查路径配置(常见配置项)
if grep -q -i "path" "${MAIN_CONFIG}" || \
grep -q -i "dir" "${MAIN_CONFIG}" || \
grep -q -i "home" "${MAIN_CONFIG}"; then
LOG_INFO "找到路径相关配置项"
fi
# 尝试读取配置文件前10行内容
LOG_INFO "配置文件前10行内容预览:"
head -10 "${MAIN_CONFIG}" | while read line; do
LOG_INFO " ${line}"
done
else
LOG_ERROR "未找到有效的配置文件"
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "清理环境,卸载${PACKAGE_NAME}..."
dnf remove -y ${PACKAGE_NAME}
fi
exit 1
fi
# 测试配置文件语法(如果适用)
LOG_INFO "检查配置文件语法..."
case "${MAIN_CONFIG}" in
*.xml)
if command -v xmllint >/dev/null 2>&1; then
xmllint --noout "${MAIN_CONFIG}" >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "XML配置文件语法正确"
else
LOG_ERROR "XML配置文件语法错误"
fi
else
LOG_INFO "未安装xmllint跳过XML语法检查"
fi
;;
*.yaml|*.yml)
if command -v yamllint >/dev/null 2>&1; then
yamllint "${MAIN_CONFIG}" >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "YAML配置文件语法正确"
else
LOG_ERROR "YAML配置文件语法错误"
fi
else
LOG_INFO "未安装yamllint跳过YAML语法检查"
fi
;;
*.json)
if command -v jq >/dev/null 2>&1; then
jq empty "${MAIN_CONFIG}" >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "JSON配置文件语法正确"
else
LOG_ERROR "JSON配置文件语法错误"
fi
else
LOG_INFO "未安装jq跳过JSON语法检查"
fi
;;
*)
LOG_INFO "非标准配置文件格式,跳过语法检查"
;;
esac
# 检查jetty-project服务状态如果存在服务
LOG_INFO "检查jetty-project服务状态..."
if systemctl list-unit-files | grep -q -i jetty; then
LOG_INFO "找到jetty相关服务"
SERVICE_NAME=$(systemctl list-unit-files | grep -i jetty | head -1 | awk "{print $1}")
# 检查服务配置文件
SERVICE_CONFIG="/usr/lib/systemd/system/${SERVICE_NAME}"
if [ -f "${SERVICE_CONFIG}" ]; then
LOG_INFO "服务配置文件: ${SERVICE_CONFIG}"
# 检查服务配置文件中的关键配置
if grep -q "ExecStart" "${SERVICE_CONFIG}"; then
LOG_INFO "找到ExecStart配置"
EXEC_CMD=$(grep "ExecStart" "${SERVICE_CONFIG}" | head -1)
LOG_INFO "启动命令: ${EXEC_CMD}"
fi
if grep -q "Environment" "${SERVICE_CONFIG}"; then
LOG_INFO "找到Environment配置"
grep "Environment" "${SERVICE_CONFIG}" | while read env_line; do
LOG_INFO "环境变量: ${env_line}"
done
fi
fi
else
LOG_INFO "未找到jetty系统服务"
fi
# 清理环境
if [ ${ALREADY_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 "测试完成: jetty-project配置文件读取功能测试通过"
}
main "$@"

View File

@@ -1,107 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : 测试jetty-project软件包的Web应用部署功能验证是否能成功部署一个简单的WAR包。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试jetty-project软件包的Web应用部署功能"
# 检查是否已安装jetty-project
if dnf list installed jetty-project > /dev/null 2>&1; then
LOG_INFO "检测到jetty-project已安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "未检测到jetty-project安装将在测试中安装并在测试结束后卸载"
already_installed=false
fi
# 检查yum源中是否存在jetty-project软件包
LOG_INFO "检查yum源中是否存在jetty-project软件包"
if ! dnf list available jetty-project > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到jetty-project软件包"
exit 255
fi
# 如果未安装则安装jetty-project
if [ "$already_installed" = false ]; then
LOG_INFO "安装jetty-project软件包"
dnf install -y jetty-project
CHECK_RESULT $? 0 0 "安装jetty-project失败"
fi
# 检查jetty-project命令是否支持所需参数
LOG_INFO "检查jetty-project命令是否支持所需参数"
if ! jetty-project --help 2>&1 | grep -q "deploy"; then
LOG_ERROR "jetty-project命令不支持deploy参数"
exit 255
fi
# 准备一个简单的测试WAR包这里使用一个最小的示例实际可能需要根据具体包调整
LOG_INFO "准备一个简单的测试WAR包"
TEST_WAR="/tmp/test-app.war"
cat > /tmp/test-web.xml << "EOF"
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Test Application</display-name>
</web-app>
EOF
jar -cf "$TEST_WAR" -C /tmp test-web.xml
CHECK_RESULT $? 0 0 "创建测试WAR包失败"
# 部署WAR包
LOG_INFO "部署测试WAR包到jetty-project"
jetty-project deploy "$TEST_WAR" --context-path /testapp
CHECK_RESULT $? 0 0 "部署WAR包失败"
# 验证部署是否成功这里假设jetty-project部署后可以通过HTTP访问
LOG_INFO "验证Web应用是否部署成功"
# 使用curl检查应用是否可访问这里假设jetty运行在8080端口
sleep 3 # 等待应用启动
if curl -f -s -o /dev/null http://localhost:8080/testapp/; then
LOG_INFO "Web应用部署成功可以正常访问"
else
LOG_ERROR "Web应用部署失败无法访问"
exit 1
fi
# 清理:停止应用并移除部署
LOG_INFO "停止并移除测试Web应用"
jetty-project undeploy /testapp
CHECK_RESULT $? 0 0 "移除Web应用失败"
# 清理临时文件
rm -f "$TEST_WAR" /tmp/test-web.xml
# 如果测试前未安装则卸载jetty-project
if [ "$already_installed" = false ]; then
LOG_INFO "卸载jetty-project软件包"
dnf remove -y jetty-project
CHECK_RESULT $? 0 0 "卸载jetty-project失败"
fi
LOG_INFO "jetty-project软件包的Web应用部署功能测试完成"
}
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-17
# @License : Mulan PSL v2
# @Desc : 测试jetty-project软件包的日志文件生成功能验证日志文件是否存在且可读。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-project软件包的日志文件生成功能"
LOG_INFO "步骤1检查yum源中是否存在jetty-project软件包"
dnf list available jetty-project > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-project软件包"
exit 255
fi
LOG_INFO "jetty-project软件包在yum源中存在"
LOG_INFO "步骤2检查系统是否已安装jetty-project"
rpm -q jetty-project > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-project已安装标记为保持安装状态"
INSTALLED="true"
else
LOG_INFO "jetty-project未安装将进行安装"
INSTALLED="false"
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装jetty-project软件包"
dnf install -y jetty-project
CHECK_RESULT $? 0 0 "安装jetty-project失败"
LOG_INFO "jetty-project安装成功"
fi
LOG_INFO "步骤4检查jetty-project日志文件是否存在且可读"
LOG_FILE="/var/log/jetty/jetty.log"
if [ -f "$LOG_FILE" ]; then
LOG_INFO "日志文件 $LOG_FILE 存在"
if [ -r "$LOG_FILE" ]; then
LOG_INFO "日志文件 $LOG_FILE 可读"
CHECK_RESULT $? 0 0 "日志文件不可读"
else
LOG_ERROR "日志文件 $LOG_FILE 不可读"
CHECK_RESULT 1 0 0 "日志文件不可读"
fi
else
LOG_ERROR "日志文件 $LOG_FILE 不存在"
CHECK_RESULT 1 0 0 "日志文件不存在"
fi
LOG_INFO "步骤5清理环境"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载jetty-project软件包"
dnf remove -y jetty-project
CHECK_RESULT $? 0 0 "卸载jetty-project失败"
LOG_INFO "jetty-project卸载成功"
else
LOG_INFO "保持jetty-project安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,97 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : 测试jetty-project软件包的服务重启功能验证服务是否能成功重启。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-project软件包的服务重启功能"
# 检查yum源中是否有jetty-project软件包
LOG_INFO "检查yum源中是否有jetty-project软件包"
dnf list available jetty-project 2>/dev/null | grep -q jetty-project
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jetty-project软件包"
exit 255
fi
# 判断jetty-project是否已安装
LOG_INFO "检查jetty-project是否已安装"
rpm -q jetty-project >/dev/null 2>&1
already_installed=$?
if [ $already_installed -eq 0 ]; then
LOG_INFO "jetty-project已安装测试完成后将保持安装状态"
else
LOG_INFO "jetty-project未安装将进行安装"
dnf install -y jetty-project
CHECK_RESULT $? 0 0 "安装jetty-project失败"
fi
# 检查jetty-project服务是否存在
LOG_INFO "检查jetty-project服务是否存在"
systemctl list-unit-files | grep -q jetty-project.service
if [ $? -ne 0 ]; then
LOG_ERROR "未找到jetty-project服务"
exit 255
fi
# 检查服务是否支持restart参数
LOG_INFO "检查jetty-project服务是否支持restart参数"
systemctl help jetty-project.service 2>&1 | grep -q restart
if [ $? -ne 0 ]; then
LOG_ERROR "jetty-project服务不支持restart参数"
exit 255
fi
# 启动jetty-project服务
LOG_INFO "启动jetty-project服务"
systemctl start jetty-project.service
CHECK_RESULT $? 0 0 "启动jetty-project服务失败"
# 检查服务状态
LOG_INFO "检查jetty-project服务状态"
systemctl status jetty-project.service --no-pager | grep -q "active (running)"
CHECK_RESULT $? 0 0 "jetty-project服务未正常运行"
# 重启jetty-project服务
LOG_INFO "重启jetty-project服务"
systemctl restart jetty-project.service
CHECK_RESULT $? 0 0 "重启jetty-project服务失败"
# 再次检查服务状态
LOG_INFO "再次检查jetty-project服务状态"
systemctl status jetty-project.service --no-pager | grep -q "active (running)"
CHECK_RESULT $? 0 0 "重启后jetty-project服务未正常运行"
LOG_INFO "jetty-project服务重启功能测试完成"
# 环境清理
LOG_INFO "开始清理测试环境"
if [ $already_installed -ne 0 ]; then
LOG_INFO "卸载测试安装的jetty-project软件包"
dnf remove -y jetty-project
CHECK_RESULT $? 0 0 "卸载jetty-project失败"
else
LOG_INFO "保持jetty-project安装状态"
fi
LOG_INFO "测试环境清理完成"
}
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-03-17
# @License : Mulan PSL v2
# @Desc : 测试jetty-project软件包的服务启动功能验证服务是否能成功启动。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试jetty-project软件包的服务启动功能"
# 检查是否已安装jetty-project
LOG_INFO "检查是否已安装jetty-project"
rpm -q jetty-project > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jetty-project已安装测试后将保持安装状态"
already_installed=1
else
LOG_INFO "jetty-project未安装将在测试过程中安装并最终卸载"
already_installed=0
fi
# 检查yum源中是否有jetty-project软件包
LOG_INFO "检查yum源中是否有jetty-project软件包"
dnf list available jetty-project > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有jetty-project软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有jetty-project软件包"
exit 255
fi
# 安装jetty-project软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装jetty-project软件包"
dnf install -y jetty-project
CHECK_RESULT $? 0 0 "安装jetty-project失败"
fi
# 检查jetty-project服务启动命令参数
LOG_INFO "检查jetty-project服务启动命令参数"
systemctl cat jetty > /dev/null 2>&1
CHECK_RESULT $? 0 0 "jetty服务不存在或不支持"
if [ $? -ne 0 ]; then
LOG_ERROR "jetty服务不存在或不支持"
# 如果是新安装的,需要卸载
if [ $already_installed -eq 0 ]; then
dnf remove -y jetty-project
fi
exit 255
fi
# 启动jetty服务
LOG_INFO "启动jetty服务"
systemctl start jetty
CHECK_RESULT $? 0 0 "启动jetty服务失败"
# 检查jetty服务状态
LOG_INFO "检查jetty服务状态"
systemctl is-active --quiet jetty
CHECK_RESULT $? 0 0 "jetty服务未正常运行"
# 停止jetty服务
LOG_INFO "停止jetty服务"
systemctl stop jetty
CHECK_RESULT $? 0 0 "停止jetty服务失败"
# 清理环境
LOG_INFO "清理测试环境"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载jetty-project软件包"
dnf remove -y jetty-project
CHECK_RESULT $? 0 0 "卸载jetty-project失败"
else
LOG_INFO "保持jetty-project安装状态"
fi
LOG_INFO "jetty-project服务启动功能测试完成"
}
main "$@"

View File

@@ -1,184 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-17
# @License : Mulan PSL v2
# @Desc : 测试jetty-project软件包的服务状态查询功能验证服务是否正常运行。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -ne $expect ]; then
LOG_ERROR "$message"
exit $actual
fi
else
if [ $actual -eq $expect ]; then
LOG_ERROR "$message"
exit 1
fi
fi
}
# 检查yum源中是否存在指定软件包
check_package_exist() {
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_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 失败"
LOG_INFO "软件包 $package_name 安装成功"
}
# 卸载软件包
uninstall_package() {
local package_name=$1
LOG_INFO "卸载软件包: $package_name"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
LOG_INFO "软件包 $package_name 卸载成功"
}
# 检查服务状态
check_service_status() {
local service_name=$1
LOG_INFO "检查服务状态: $service_name"
systemctl status "$service_name" &>/dev/null
local status=$?
if [ $status -eq 0 ]; then
LOG_INFO "服务 $service_name 正在运行"
return 0
elif [ $status -eq 3 ]; then
LOG_INFO "服务 $service_name 已停止"
return 1
else
LOG_ERROR "检查服务 $service_name 状态时发生错误"
return $status
fi
}
# 启动服务
start_service() {
local service_name=$1
LOG_INFO "启动服务: $service_name"
systemctl start "$service_name"
CHECK_RESULT $? 0 0 "启动服务 $service_name 失败"
LOG_INFO "服务 $service_name 启动成功"
}
# 停止服务
stop_service() {
local service_name=$1
LOG_INFO "停止服务: $service_name"
systemctl stop "$service_name"
CHECK_RESULT $? 0 0 "停止服务 $service_name 失败"
LOG_INFO "服务 $service_name 停止成功"
}
# 主测试函数
main() {
local package_name="jetty-project"
local service_name="jetty"
local need_cleanup=0
LOG_INFO "开始测试jetty-project软件包的服务状态查询功能"
# 检查yum源中是否存在jetty-project软件包
check_package_exist "$package_name"
# 检查是否已安装jetty-project
if check_package_installed "$package_name"; then
LOG_INFO "检测到jetty-project已安装测试结束后将保持安装状态"
need_cleanup=0
else
LOG_INFO "检测到jetty-project未安装将在测试结束后卸载"
need_cleanup=1
install_package "$package_name"
fi
# 检查服务状态
check_service_status "$service_name"
local service_status=$?
# 如果服务未运行,尝试启动
if [ $service_status -ne 0 ]; then
LOG_INFO "服务未运行,尝试启动服务"
start_service "$service_name"
check_service_status "$service_name"
CHECK_RESULT $? 0 0 "服务启动后状态检查失败"
fi
# 验证服务是否正常运行
LOG_INFO "验证服务是否正常运行"
systemctl is-active "$service_name" &>/dev/null
CHECK_RESULT $? 0 0 "服务未正常运行"
LOG_INFO "服务状态查询功能测试完成"
# 环境清理
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "开始清理测试环境"
# 停止服务
stop_service "$service_name"
# 卸载软件包
uninstall_package "$package_name"
LOG_INFO "测试环境清理完成"
else
LOG_INFO "保持原有安装状态,无需清理"
fi
LOG_INFO "测试脚本执行完成"
}
# 执行主函数
main
}
main "$@"

View File

@@ -1,115 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-17
# @License : Mulan PSL v2
# @Desc : 测试jetty-project软件包的服务停止功能验证服务是否能成功停止。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否以root用户运行
if [ "$(id -u)" -ne 0 ]; then
LOG_ERROR "请以root用户运行此脚本"
exit 1
fi
# 定义软件包名称
PACKAGE_NAME="jetty-project"
# 步骤1: 检查yum源中是否存在指定软件包
LOG_INFO "步骤1: 检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available "${PACKAGE_NAME}" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
# 步骤2: 检查软件包是否已安装
LOG_INFO "步骤2: 检查${PACKAGE_NAME}是否已安装"
if rpm -q "${PACKAGE_NAME}" &>/dev/null; then
LOG_INFO "${PACKAGE_NAME}已安装,标记为已安装状态"
PACKAGE_INSTALLED=true
else
LOG_INFO "${PACKAGE_NAME}未安装,标记为未安装状态"
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}失败"
LOG_INFO "成功安装${PACKAGE_NAME}软件包"
fi
# 步骤4: 检查服务是否存在
LOG_INFO "步骤4: 检查${PACKAGE_NAME}服务是否存在"
SERVICE_NAME="jetty"
systemctl list-unit-files | grep -q "^${SERVICE_NAME}.service"
CHECK_RESULT $? 0 0 "${SERVICE_NAME}服务不存在"
# 步骤5: 启动服务(如果未运行)
LOG_INFO "步骤5: 检查并启动${SERVICE_NAME}服务"
systemctl is-active "${SERVICE_NAME}" &>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "${SERVICE_NAME}服务未运行,正在启动"
systemctl start "${SERVICE_NAME}"
CHECK_RESULT $? 0 0 "启动${SERVICE_NAME}服务失败"
sleep 2
systemctl is-active "${SERVICE_NAME}"
CHECK_RESULT $? 0 0 "${SERVICE_NAME}服务启动后未处于活动状态"
LOG_INFO "${SERVICE_NAME}服务已成功启动"
else
LOG_INFO "${SERVICE_NAME}服务已在运行中"
fi
# 步骤6: 停止服务
LOG_INFO "步骤6: 停止${SERVICE_NAME}服务"
systemctl stop "${SERVICE_NAME}"
CHECK_RESULT $? 0 0 "停止${SERVICE_NAME}服务失败"
sleep 2
# 步骤7: 验证服务是否已停止
LOG_INFO "步骤7: 验证${SERVICE_NAME}服务是否已停止"
systemctl is-active "${SERVICE_NAME}" &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "${SERVICE_NAME}服务停止失败"
exit 1
else
LOG_INFO "${SERVICE_NAME}服务已成功停止"
fi
# 步骤8: 清理环境
LOG_INFO "步骤8: 清理环境"
if [ "${PACKAGE_INSTALLED}" = false ]; 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}为预安装软件包,保持安装状态"
# 重新启动服务以恢复环境
systemctl start "${SERVICE_NAME}" &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "已重新启动${SERVICE_NAME}服务"
fi
fi
LOG_INFO "测试完成:${PACKAGE_NAME}服务停止功能验证成功"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : Check if key documentation files exist
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查关键文档文件是否存在"
# 检查软件包是否已安装
LOG_INFO "步骤1检查ldapjdk-javadoc软件包是否已安装"
if rpm -q ldapjdk-javadoc &>/dev/null; then
LOG_INFO "ldapjdk-javadoc软件包已安装标记为已安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "ldapjdk-javadoc软件包未安装标记为未安装状态"
INSTALLED_FLAG=0
fi
# 检查yum源中是否存在软件包
LOG_INFO "步骤2检查yum源中是否存在ldapjdk-javadoc软件包"
if ! dnf list available ldapjdk-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到ldapjdk-javadoc软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "步骤3安装ldapjdk-javadoc软件包"
dnf install -y ldapjdk-javadoc
CHECK_RESULT $? 0 0 "安装ldapjdk-javadoc软件包失败"
fi
# 检查关键文档文件是否存在
LOG_INFO "步骤4检查关键文档文件是否存在"
DOC_FILES="/usr/share/doc/ldapjdk-javadoc/README /usr/share/doc/ldapjdk-javadoc/LICENSE"
for file in $DOC_FILES; do
if [ -f "$file" ]; then
LOG_INFO "文件 $file 存在"
else
LOG_ERROR "文件 $file 不存在"
exit 1
fi
done
# 如果之前未安装,则卸载软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "步骤5卸载ldapjdk-javadoc软件包"
dnf remove -y ldapjdk-javadoc
CHECK_RESULT $? 0 0 "卸载ldapjdk-javadoc软件包失败"
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 : 2026-04-01
# @License : Mulan PSL v2
# @Desc : Test querying if the package is installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试: 查询软件包是否安装"
LOG_INFO "步骤1: 检查测试环境是否已安装ldapjdk-javadoc软件包"
rpm -q ldapjdk-javadoc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装ldapjdk-javadoc软件包测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "环境未安装ldapjdk-javadoc软件包测试结束后将卸载"
INSTALLED_BEFORE_TEST=false
fi
LOG_INFO "步骤2: 检查yum源中是否存在ldapjdk-javadoc软件包"
dnf list available ldapjdk-javadoc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到ldapjdk-javadoc软件包"
LOG_INFO "步骤3: 执行查询命令,检查软件包是否安装"
rpm -q ldapjdk-javadoc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "查询软件包是否安装失败"
LOG_INFO "步骤4: 如果测试前未安装,则安装软件包作为测试步骤"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "正在安装ldapjdk-javadoc软件包..."
dnf install -y ldapjdk-javadoc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装ldapjdk-javadoc软件包失败"
fi
LOG_INFO "步骤5: 再次执行查询命令,确认安装状态"
rpm -q ldapjdk-javadoc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "查询软件包是否安装失败"
LOG_INFO "步骤6: 恢复测试环境"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "正在卸载ldapjdk-javadoc软件包..."
dnf remove -y ldapjdk-javadoc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载ldapjdk-javadoc软件包失败"
else
LOG_INFO "测试前已安装,保持安装状态"
fi
LOG_INFO "测试完成: 查询软件包是否安装"
}
main "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : Test viewing a sample Javadoc page
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试查看示例Javadoc页面"
# 定义软件包名称
PACKAGE_NAME="ldapjdk-javadoc"
# 检查yum源中是否存在指定的软件包
LOG_INFO "检查yum源中是否存在软件包$PACKAGE_NAME"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中不存在软件包$PACKAGE_NAME"
exit 255
fi
# 检查是否已安装软件包
LOG_INFO "检查是否已安装软件包:$PACKAGE_NAME"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包已安装,跳过安装步骤"
INSTALLED=true
else
LOG_INFO "软件包未安装,开始安装"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装软件包:$PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 查找javadoc示例文件
LOG_INFO "查找Javadoc示例文件"
JAVADOC_FILE=$(rpm -ql "$PACKAGE_NAME" | grep -E "\.html$" | head -1)
if [ -z "$JAVADOC_FILE" ]; then
LOG_ERROR "未找到Javadoc示例文件"
exit 255
fi
# 检查是否支持使用浏览器查看文件
LOG_INFO "检查是否支持使用浏览器查看Javadoc文件"
if ! command -v xdg-open &>/dev/null && ! command -v firefox &>/dev/null && ! command -v google-chrome &>/dev/null; then
LOG_ERROR "不支持使用浏览器查看文件"
exit 255
fi
# 使用浏览器查看Javadoc示例页面
LOG_INFO "使用浏览器查看Javadoc示例页面"
if command -v xdg-open &>/dev/null; then
xdg-open "$JAVADOC_FILE" &
elif command -v firefox &>/dev/null; then
firefox "$JAVADOC_FILE" &
elif command -v google-chrome &>/dev/null; then
google-chrome "$JAVADOC_FILE" &
fi
CHECK_RESULT $? 0 0 "查看Javadoc页面失败"
# 等待一段时间,确保页面已打开
LOG_INFO "等待页面加载"
sleep 5
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载软件包:$PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "测试前已安装软件包,保持安装状态"
fi
LOG_INFO "测试完成成功查看示例Javadoc页面"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-02
# @License : Mulan PSL v2
# @Desc : Test closing a connection
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test closing a connection"
# 检查是否已安装libiec61883-devel
LOG_INFO "检查是否已安装libiec61883-devel"
dnf list installed libiec61883-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libiec61883-devel已安装脚本结束时将保持安装状态"
already_installed=true
else
LOG_INFO "libiec61883-devel未安装将在测试步骤中安装并在结束时卸载"
already_installed=false
fi
# 检查yum源中是否有libiec61883-devel
LOG_INFO "检查yum源中是否有libiec61883-devel"
dnf list available libiec61883-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libiec61883-devel软件包"
exit 255
fi
# 安装libiec61883-devel如果未安装
if [ "$already_installed" = false ]; then
LOG_INFO "正在安装libiec61883-devel"
dnf install -y libiec61883-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装libiec61883-devel失败"
fi
# 测试关闭连接功能
LOG_INFO "测试关闭连接功能"
command_to_test="some_command_to_close_connection" # 替换为实际命令
$command_to_test > /dev/null 2>&1
CHECK_RESULT $? 0 0 "关闭连接失败"
# 清理环境(如果之前未安装)
if [ "$already_installed" = false ]; then
LOG_INFO "正在卸载libiec61883-devel"
dnf remove -y libiec61883-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载libiec61883-devel失败"
fi
LOG_INFO "测试完成Test closing a connection"
}
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-11-28
# @License : Mulan PSL v2
# @Desc : Test library initialization
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查libiec61883-devel是否已安装
LOG_INFO "检查libiec61883-devel是否已安装"
rpm -q libiec61883-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libiec61883-devel已安装"
installed=true
else
LOG_INFO "libiec61883-devel未安装"
installed=false
fi
# 检查yum源中是否存在libiec61883-devel软件包
LOG_INFO "检查yum源中是否存在libiec61883-devel软件包"
dnf list available libiec61883-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在libiec61883-devel软件包"
exit 255
fi
# 如果未安装则安装libiec61883-devel
if [ "$installed" = false ]; then
LOG_INFO "开始安装libiec61883-devel"
dnf install -y libiec61883-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装libiec61883-devel失败"
LOG_INFO "libiec61883-devel安装成功"
fi
# 测试库初始化
LOG_INFO "测试库初始化功能"
libiec61883_init_test > /dev/null 2>&1
CHECK_RESULT $? 0 0 "库初始化失败"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载libiec61883-devel"
dnf remove -y libiec61883-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载libiec61883-devel失败"
fi
}
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-02
# @License : Mulan PSL v2
# @Desc : Test opening a connection
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test opening a connection"
# 检查是否已安装libiec61883-devel
LOG_INFO "检查是否已安装libiec61883-devel"
if dnf list installed libiec61883-devel &>/dev/null; then
LOG_INFO "libiec61883-devel已安装"
installed=true
else
LOG_INFO "libiec61883-devel未安装"
installed=false
fi
# 检查yum源中是否有libiec61883-devel
LOG_INFO "检查yum源中是否有libiec61883-devel"
if ! dnf list available libiec61883-devel &>/dev/null; then
LOG_ERROR "yum源中未找到libiec61883-devel"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装libiec61883-devel"
dnf install -y libiec61883-devel
CHECK_RESULT $? 0 0 "安装libiec61883-devel失败"
fi
# 测试打开连接
LOG_INFO "测试打开连接"
command_to_test="your_test_command_here" # 替换为实际的测试命令
$command_to_test
CHECK_RESULT $? 0 0 "打开连接失败"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载libiec61883-devel"
dnf remove -y libiec61883-devel
CHECK_RESULT $? 0 0 "卸载libiec61883-devel失败"
fi
LOG_INFO "测试完成Test opening a connection"
}
main "$@"

View File

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

View File

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

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-12
# @License : Mulan PSL v2
# @Desc : 测试使用--lkkbd模式附加DEC LK201/LK401键盘
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用--lkkbd模式附加DEC LK201/LK401键盘"
LOG_INFO "1. 检查linuxconsoletools软件包是否在yum源中"
if ! dnf list available linuxconsoletools &>/dev/null; then
LOG_ERROR "linuxconsoletools软件包不在yum源中"
exit 255
fi
LOG_INFO "linuxconsoletools软件包在yum源中"
LOG_INFO "2. 检查系统是否已安装linuxconsoletools"
if rpm -q linuxconsoletools &>/dev/null; then
LOG_INFO "linuxconsoletools已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "linuxconsoletools未安装将在测试过程中安装"
INSTALLED=0
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "3. 安装linuxconsoletools软件包"
dnf install -y linuxconsoletools
CHECK_RESULT $? 0 0 "安装linuxconsoletools失败"
fi
LOG_INFO "4. 检查inputattach命令是否支持--lkkbd参数"
inputattach --help 2>&1 | grep -q -- --lkkbd
CHECK_RESULT $? 0 0 "inputattach命令不支持--lkkbd参数"
LOG_INFO "5. 模拟使用--lkkbd模式附加DEC LK201/LK401键盘此处为模拟测试"
LOG_INFO "执行命令inputattach --lkkbd /dev/ttyS0"
inputattach --lkkbd /dev/ttyS0 2>&1 | grep -q "error\|Error"
if [ $? -eq 0 ]; then
LOG_ERROR "模拟附加DEC LK201/LK401键盘失败"
exit 1
else
LOG_INFO "模拟附加DEC LK201/LK401键盘成功"
fi
LOG_INFO "6. 清理环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载linuxconsoletools软件包"
dnf remove -y linuxconsoletools
CHECK_RESULT $? 0 0 "卸载linuxconsoletools失败"
else
LOG_INFO "保持linuxconsoletools软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,116 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-12
# @License : Mulan PSL v2
# @Desc : 测试使用--rainshadow-cec模式附加RainShadow Tech HDMI CEC适配器
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装linuxconsoletools包
LOG_INFO "检查是否已安装linuxconsoletools软件包..."
rpm -q linuxconsoletools > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "linuxconsoletools已安装测试结束后保持安装状态"
INSTALLED_BEFORE="yes"
else
LOG_INFO "linuxconsoletools未安装将在测试前安装并在测试后卸载"
INSTALLED_BEFORE="no"
fi
# 检查yum源中是否有linuxconsoletools软件包
LOG_INFO "检查yum源中是否有linuxconsoletools软件包..."
dnf list available linuxconsoletools > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到linuxconsoletools软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "开始安装linuxconsoletools软件包..."
dnf install -y linuxconsoletools
CHECK_RESULT $? 0 0 "安装linuxconsoletools失败"
LOG_INFO "linuxconsoletools软件包安装成功"
fi
# 检查inputattach命令是否存在
LOG_INFO "检查inputattach命令是否存在..."
which inputattach > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "inputattach命令不存在"
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "卸载之前安装的linuxconsoletools软件包..."
dnf remove -y linuxconsoletools
fi
exit 255
fi
# 检查--rainshadow-cec参数是否支持
LOG_INFO "检查inputattach命令是否支持--rainshadow-cec参数..."
inputattach --help 2>&1 | grep -q "rainshadow-cec"
if [ $? -ne 0 ]; then
LOG_ERROR "inputattach命令不支持--rainshadow-cec参数"
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "卸载之前安装的linuxconsoletools软件包..."
dnf remove -y linuxconsoletools
fi
exit 255
fi
# 测试使用--rainshadow-cec模式附加RainShadow Tech HDMI CEC适配器
LOG_INFO "测试使用--rainshadow-cec模式附加RainShadow Tech HDMI CEC适配器..."
LOG_INFO "注意此测试需要实际的RainShadow Tech HDMI CEC适配器硬件"
LOG_INFO "如果没有连接适配器,此步骤可能会失败"
# 尝试运行命令(模拟测试,实际可能需要真实硬件)
inputattach --rainshadow-cec /dev/ttyS0 2>&1 | head -5
TEST_EXIT_CODE=$?
# 根据实际情况检查结果
# 由于是模拟测试,我们主要检查命令是否能被识别和执行
# 如果没有真实硬件命令可能会返回非0但这不是脚本的失败
if [ $TEST_EXIT_CODE -eq 255 ]; then
LOG_ERROR "inputattach命令执行失败参数可能不正确"
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "卸载之前安装的linuxconsoletools软件包..."
dnf remove -y linuxconsoletools
fi
exit 255
elif [ $TEST_EXIT_CODE -eq 1 ]; then
LOG_INFO "inputattach命令执行返回1可能是由于未连接实际硬件"
LOG_INFO "这是预期行为因为测试环境可能没有真实的RainShadow Tech HDMI CEC适配器"
else
LOG_INFO "inputattach命令执行完成退出码为$TEST_EXIT_CODE"
fi
# 清理测试环境
LOG_INFO "清理测试环境..."
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "卸载测试安装的linuxconsoletools软件包..."
dnf remove -y linuxconsoletools
CHECK_RESULT $? 0 0 "卸载linuxconsoletools失败"
LOG_INFO "linuxconsoletools软件包卸载成功"
else
LOG_INFO "保持linuxconsoletools软件包安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-26
# @License : Mulan PSL v2
# @Desc : 测试inputattach命令连接Wacom W8001
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装linuxconsoletools软件包
LOG_INFO "检查linuxconsoletools软件包是否已安装"
rpm -q linuxconsoletools > /dev/null 2>&1
is_installed=$?
# 获取软件包信息
LOG_INFO "检查yum源中是否存在linuxconsoletools软件包"
dnf list available linuxconsoletools > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到linuxconsoletools软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [ $is_installed -ne 0 ]; then
LOG_INFO "安装linuxconsoletools软件包"
dnf install -y linuxconsoletools
CHECK_RESULT $? 0 0 "安装linuxconsoletools失败"
fi
# 检查inputattach命令是否存在
LOG_INFO "检查inputattach命令是否存在"
which inputattach > /dev/null 2>&1
CHECK_RESULT $? 0 0 "inputattach命令不存在"
# 检查inputattach是否支持Wacom W8001参数
LOG_INFO "检查inputattach是否支持Wacom W8001参数"
inputattach --help 2>&1 | grep -i "w8001" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "inputattach不支持Wacom W8001参数"
# 如果是测试期间安装的,需要卸载
if [ $is_installed -ne 0 ]; then
LOG_INFO "卸载linuxconsoletools软件包"
dnf remove -y linuxconsoletools
fi
exit 255
fi
# 测试inputattach命令连接Wacom W8001
LOG_INFO "测试inputattach命令连接Wacom W8001"
LOG_INFO "注意此测试需要实际的Wacom W8001设备连接这里仅测试命令语法"
# 模拟测试命令语法(实际使用时需要真实设备)
inputattach --w8001 /dev/ttyS0 2>&1 | head -5
test_result=$?
# 检查命令执行结果
if [ $test_result -eq 0 ] || [ $test_result -eq 1 ]; then
LOG_INFO "inputattach命令语法测试通过"
CHECK_RESULT 0 0 0 "inputattach命令执行失败"
else
LOG_ERROR "inputattach命令执行异常"
CHECK_RESULT $test_result 0 0 "inputattach命令执行失败"
fi
# 环境清理
LOG_INFO "清理测试环境"
if [ $is_installed -ne 0 ]; then
LOG_INFO "卸载测试期间安装的linuxconsoletools软件包"
dnf remove -y linuxconsoletools
CHECK_RESULT $? 0 0 "卸载linuxconsoletools失败"
else
LOG_INFO "保持原有安装状态,不卸载软件包"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-04
# @License : Mulan PSL v2
# @Desc : 测试PMDA配置文件正确性检查
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试PMDA配置文件正确性检查"
# 检查环境是否已安装pcp-pmda-resctrl
LOG_INFO "检查pcp-pmda-resctrl是否已安装"
if dnf list installed pcp-pmda-resctrl &>/dev/null; then
LOG_INFO "pcp-pmda-resctrl已安装测试后保持安装状态"
INSTALLED=true
else
LOG_INFO "pcp-pmda-resctrl未安装将在测试过程中安装"
INSTALLED=false
fi
# 检查yum源中是否有pcp-pmda-resctrl包
LOG_INFO "检查yum源中是否有pcp-pmda-resctrl包"
if ! dnf list available pcp-pmda-resctrl &>/dev/null; then
LOG_ERROR "yum源中没有pcp-pmda-resctrl包"
exit 255
fi
# 如果未安装则安装pcp-pmda-resctrl
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装pcp-pmda-resctrl"
dnf install -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "安装pcp-pmda-resctrl失败"
fi
# 检查pmda-resctrl配置文件的正确性
LOG_INFO "检查pmda-resctrl配置文件正确性"
if [ -f /var/lib/pcp/pmdas/resctrl/config ]; then
LOG_INFO "配置文件存在,检查配置内容"
# 这里可以根据实际配置文件内容进行检查
# 例如:检查配置文件是否包含必要的配置项
grep -q "必要的配置项" /var/lib/pcp/pmdas/resctrl/config
CHECK_RESULT $? 0 0 "配置文件缺少必要的配置项"
else
LOG_ERROR "配置文件不存在"
exit 1
fi
# 如果测试过程中安装了pcp-pmda-resctrl则在测试结束后卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载pcp-pmda-resctrl"
dnf remove -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "卸载pcp-pmda-resctrl失败"
fi
LOG_INFO "PMDA配置文件正确性检查测试完成"
}
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 : 2026-02-04
# @License : Mulan PSL v2
# @Desc : 测试启用resctrl PMDA数据采集功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试启用resctrl PMDA数据采集功能"
LOG_INFO "步骤1: 检查pcp-pmda-resctrl软件包是否已在yum源中"
if ! dnf list available pcp-pmda-resctrl &>/dev/null; then
LOG_ERROR "yum源中未找到pcp-pmda-resctrl软件包"
exit 255
fi
LOG_INFO "步骤2: 检查是否已安装pcp-pmda-resctrl"
if rpm -q pcp-pmda-resctrl &>/dev/null; then
LOG_INFO "pcp-pmda-resctrl已安装标记为保持安装状态"
KEEP_INSTALLED=true
else
LOG_INFO "pcp-pmda-resctrl未安装标记为需要卸载"
KEEP_INSTALLED=false
LOG_INFO "步骤3: 安装pcp-pmda-resctrl软件包"
dnf install -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "安装pcp-pmda-resctrl失败"
fi
LOG_INFO "步骤4: 检查resctrl PMDA是否已启用"
if pmdaresctrl status | grep -q "enabled"; then
LOG_INFO "resctrl PMDA已启用"
else
LOG_INFO "步骤5: 启用resctrl PMDA"
pmdaresctrl enable
CHECK_RESULT $? 0 0 "启用resctrl PMDA失败"
fi
LOG_INFO "步骤6: 验证resctrl PMDA数据采集功能"
pmdumptext -t 1sec -a /var/log/pcp/pmlogger/$(hostname)/$(date +%Y%m%d) resctrl.llc_occupancy 2>&1 | head -5
CHECK_RESULT $? 0 0 "resctrl PMDA数据采集功能验证失败"
LOG_INFO "步骤7: 环境恢复"
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "卸载pcp-pmda-resctrl软件包"
dnf remove -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "卸载pcp-pmda-resctrl失败"
else
LOG_INFO "保持pcp-pmda-resctrl安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,119 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
# @License : Mulan PSL v2
# @Desc : 测试软件包的基本安装功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -ne $expect ]; then
LOG_ERROR "$message"
exit $actual
fi
else
if [ $actual -eq $expect ]; then
LOG_ERROR "$message"
exit 1
fi
fi
}
# 定义SSH命令函数
SSH_CMD() {
local cmd=$1
local node_ip=$2
local node_pass=$3
local node_user=$4
sshpass -p "$node_pass" ssh -o StrictHostKeyChecking=no "$node_user"@"$node_ip" "$cmd"
}
# 测试软件包的基本安装功能
LOG_INFO "开始测试软件包的基本安装功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在pcp-pmda-resctrl软件包"
dnf list available pcp-pmda-resctrl > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到pcp-pmda-resctrl软件包"
exit 255
fi
# 检查当前是否已安装
LOG_INFO "检查当前是否已安装pcp-pmda-resctrl软件包"
rpm -q pcp-pmda-resctrl > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "软件包未安装,将在测试步骤中安装"
INSTALLED=0
fi
# 如果未安装,则进行安装测试
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装pcp-pmda-resctrl软件包"
dnf install -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "安装pcp-pmda-resctrl软件包失败"
LOG_INFO "安装pcp-pmda-resctrl软件包成功"
fi
# 测试软件包基本功能
LOG_INFO "测试pcp-pmda-resctrl软件包基本功能"
# 检查软件包提供的命令是否存在
LOG_INFO "检查pcp-pmda-resctrl相关命令是否存在"
command -v pmdaresctrl > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pmdaresctrl命令不存在"
# 测试命令参数支持情况
LOG_INFO "测试pmdaresctrl命令参数支持情况"
pmdaresctrl --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "pmdaresctrl命令不支持--help参数"
exit 255
fi
# 清理环境
LOG_INFO "开始清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载测试安装的pcp-pmda-resctrl软件包"
dnf remove -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "卸载pcp-pmda-resctrl软件包失败"
LOG_INFO "卸载pcp-pmda-resctrl软件包成功"
else
LOG_INFO "保持原有安装状态,不卸载软件包"
fi
LOG_INFO "测试软件包的基本安装功能完成"
}
main "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-04
# @License : Mulan PSL v2
# @Desc : 测试通过pminfo查询resctrl相关指标
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试通过pminfo查询resctrl相关指标"
# 定义软件包名称
PACKAGE="pcp-pmda-resctrl"
LOG_INFO "检查是否已安装$PACKAGE"
# 检查是否已安装pcp-pmda-resctrl
if rpm -q $PACKAGE &> /dev/null; then
LOG_INFO "$PACKAGE 已安装,测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "$PACKAGE 未安装,将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否有pcp-pmda-resctrl软件包
LOG_INFO "检查yum源中是否有$PACKAGE软件包"
if ! dnf list available $PACKAGE &> /dev/null; then
LOG_ERROR "yum源中未找到$PACKAGE软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装$PACKAGE软件包"
dnf install -y $PACKAGE
CHECK_RESULT $? 0 0 "安装$PACKAGE失败"
fi
# 检查pminfo命令是否支持resctl相关指标
LOG_INFO "检查pminfo命令是否支持resctrl相关指标"
if ! pminfo resctrl &> /dev/null; then
LOG_ERROR "pminfo不支持resctrl相关指标"
# 如果之前未安装,则需要卸载
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载$PACKAGE软件包"
dnf remove -y $PACKAGE
fi
exit 255
fi
# 使用pminfo查询resctrl相关指标
LOG_INFO "使用pminfo查询resctrl相关指标"
pminfo resctrl
CHECK_RESULT $? 0 0 "pminfo查询resctrl相关指标失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "测试前未安装$PACKAGE,现在卸载"
dnf remove -y $PACKAGE
CHECK_RESULT $? 0 0 "卸载$PACKAGE失败"
else
LOG_INFO "测试前已安装$PACKAGE,保持安装状态"
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-02-04
# @License : Mulan PSL v2
# @Desc : 测试通过pmval查看关键性能指标
# ############################################
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 -o UserKnownHostsFile=/dev/null "${node_user}@${node_ip}" "$cmd"
}
# 测试脚本开始
LOG_INFO "开始测试通过pmval查看关键性能指标"
# 检查环境是否已安装pcp-pmda-resctrl
LOG_INFO "检查pcp-pmda-resctrl是否已安装"
if dnf list installed pcp-pmda-resctrl &>/dev/null; then
LOG_INFO "pcp-pmda-resctrl已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "pcp-pmda-resctrl未安装将在测试过程中安装"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有pcp-pmda-resctrl软件包
LOG_INFO "检查yum源中是否有pcp-pmda-resctrl软件包"
if ! dnf list available pcp-pmda-resctrl &>/dev/null; then
LOG_ERROR "yum源中没有pcp-pmda-resctrl软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "安装pcp-pmda-resctrl软件包"
dnf install -y pcp-pmda-resctrl
CHECK_RESULT $? 0 255 "安装pcp-pmda-resctrl失败"
fi
# 检查pmval命令是否存在
LOG_INFO "检查pmval命令是否存在"
if ! command -v pmval &>/dev/null; then
LOG_ERROR "pmval命令不存在"
exit 255
fi
# 检查pmval命令是否支持所需参数
LOG_INFO "检查pmval命令是否支持所需参数"
if ! pmval --help 2>&1 | grep -q "metricname"; then
LOG_ERROR "pmval命令不支持metricname参数"
exit 255
fi
# 通过pmval查看关键性能指标
LOG_INFO "通过pmval查看关键性能指标"
pmval -f 1 -t 2 kernel.all.load
CHECK_RESULT $? 0 $? "通过pmval查看关键性能指标失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载pcp-pmda-resctrl软件包"
dnf remove -y pcp-pmda-resctrl
CHECK_RESULT $? 0 $? "卸载pcp-pmda-resctrl失败"
else
LOG_INFO "测试前已安装pcp-pmda-resctrl保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,114 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
# @License : Mulan PSL v2
# @Desc : 测试软件包的卸载功能
# ############################################
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 msg=$4
if [ $actual -ne $expected ]; then
LOG_ERROR "$msg"
exit $actual
fi
}
# 定义SSH_CMD函数根据要求直接使用此处仅作声明
SSH_CMD() {
# 参数:命令 IP 密码 用户
local cmd=$1
local ip=$2
local password=$3
local user=$4
# 这里仅作声明,实际使用时需根据环境实现
echo "SSH_CMD placeholder: $cmd on $ip as $user"
}
# 定义变量
PACKAGE_NAME="pcp-pmda-resctrl"
LOG_INFO "开始测试软件包卸载功能"
# 检查yum源中是否存在指定软件包
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME 软件包"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
exit 255
fi
# 判断环境是否已安装该软件包
LOG_INFO "检查系统是否已安装 $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "系统已安装 $PACKAGE_NAME,测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "系统未安装 $PACKAGE_NAME,测试前将进行安装"
INSTALLED_BEFORE=false
fi
# 如果未安装,则安装软件包作为测试步骤
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "安装 $PACKAGE_NAME 软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
LOG_INFO "$PACKAGE_NAME 安装成功"
fi
# 测试卸载功能
LOG_INFO "测试卸载 $PACKAGE_NAME 软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
LOG_INFO "$PACKAGE_NAME 卸载成功"
# 验证软件包是否已卸载
LOG_INFO "验证 $PACKAGE_NAME 是否已卸载"
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "$PACKAGE_NAME 卸载后仍然存在"
exit 1
else
LOG_INFO "$PACKAGE_NAME 已成功卸载"
fi
# 环境恢复:如果测试前已安装,则重新安装;否则保持卸载状态
LOG_INFO "恢复环境状态"
if [ "$INSTALLED_BEFORE" = "true" ]; then
LOG_INFO "重新安装 $PACKAGE_NAME 以恢复原始状态"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "重新安装 $PACKAGE_NAME 失败"
LOG_INFO "$PACKAGE_NAME 已重新安装,环境恢复完成"
else
LOG_INFO "测试前未安装 $PACKAGE_NAME,环境已保持卸载状态"
fi
LOG_INFO "测试软件包卸载功能完成"
}
main "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-04
# @License : Mulan PSL v2
# @Desc : 测试PMDA代理服务状态检查功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装pcp-pmda-resctrl
LOG_INFO "检查pcp-pmda-resctrl是否已安装"
rpm -q pcp-pmda-resctrl &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "pcp-pmda-resctrl已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "pcp-pmda-resctrl未安装将在测试过程中安装并在脚本结束前卸载"
INSTALLED=0
fi
# 检查yum源中是否有pcp-pmda-resctrl软件包
LOG_INFO "检查yum源中是否有pcp-pmda-resctrl软件包"
dnf list available pcp-pmda-resctrl &>/dev/null
CHECK_RESULT $? 0 255 "yum源中未找到pcp-pmda-resctrl软件包"
# 如果未安装则安装pcp-pmda-resctrl
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装pcp-pmda-resctrl软件包"
dnf install -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "安装pcp-pmda-resctrl失败"
fi
# 检查PMDA代理服务状态检查功能
LOG_INFO "测试PMDA代理服务状态检查功能"
# 使用pcp命令检查resctrl PMDA代理状态这里假设使用pcp命令检查
# 如果pcp命令不支持相关参数则退出
LOG_INFO "执行pcp命令检查resctrl PMDA状态"
pcp 2>&1 | grep -q "resctrl"
if [ $? -ne 0 ]; then
LOG_ERROR "pcp命令不支持resctrl参数"
exit 255
fi
# 模拟检查PMDA代理服务状态这里使用一个假设的命令
# 实际应根据pcp-pmda-resctrl的文档使用正确的命令和参数
LOG_INFO "执行PMDA代理服务状态检查"
# 假设使用pcp resctrl status命令检查状态
# 如果命令不存在或不支持,则退出
command -v pcp &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "pcp命令不存在"
exit 255
fi
# 执行状态检查命令
pcp resctrl status &>/dev/null
CHECK_RESULT $? 0 0 "PMDA代理服务状态检查失败"
# 如果是在第二个服务器上执行使用SSH_CMD
# 这里假设需要在第二个服务器上执行相同的检查
# 如果NODE2_IPV4等变量已定义则执行
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
LOG_INFO "在第二个服务器上执行PMDA代理服务状态检查"
SSH_CMD "pcp resctrl status" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "在第二个服务器上执行PMDA代理服务状态检查失败"
fi
# 环境恢复
LOG_INFO "开始环境恢复"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载pcp-pmda-resctrl软件包"
dnf remove -y pcp-pmda-resctrl
CHECK_RESULT $? 0 0 "卸载pcp-pmda-resctrl失败"
else
LOG_INFO "保持pcp-pmda-resctrl安装状态"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-06
# @License : Mulan PSL v2
# @Desc : Test basic expression evaluation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查python-asteval软件包是否已安装
LOG_INFO "检查python-asteval软件包是否已安装"
rpm -q python-asteval > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python-asteval已安装脚本结束后保持安装状态"
INSTALLED=1
else
LOG_INFO "python-asteval未安装将在脚本结束前卸载"
INSTALLED=0
fi
# 检查yum源中是否有python-asteval软件包
LOG_INFO "检查yum源中是否有python-asteval软件包"
dnf list available python-asteval > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中无python-asteval软件包"
# 安装python-asteval软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装python-asteval软件包"
dnf install -y python-asteval > /dev/null 2>&1
CHECK_RESULT $? 0 255 "安装python-asteval失败"
fi
# 测试基本表达式求值功能
LOG_INFO "测试基本表达式求值功能"
python3 -c "from asteval import Interpreter; aeval = Interpreter(); result = aeval("2 + 2"); print(result)" | grep -q "4"
CHECK_RESULT $? 0 0 "基本表达式求值失败"
# 清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python-asteval软件包"
dnf remove -y python-asteval > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载python-asteval失败"
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-12-13
# @License : Mulan PSL v2
# @Desc : 测试python3-csscompressor的CSS压缩功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python3-csscompressor的CSS压缩功能"
# 检查是否已安装python3-csscompressor
if ! dnf list installed python3-csscompressor &>/dev/null; then
LOG_INFO "python3-csscompressor未安装将进行安装"
# 检查yum源中是否有该软件包
if ! dnf list available python3-csscompressor &>/dev/null; then
LOG_ERROR "yum源中未找到python3-csscompressor软件包"
exit 255
fi
# 安装软件包
dnf install -y python3-csscompressor
CHECK_RESULT $? 0 0 "安装python3-csscompressor失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "python3-csscompressor已安装无需重复安装"
fi
# 测试CSS压缩功能
LOG_INFO "测试CSS压缩功能"
TEST_CSS="body { color: red; }"
COMPRESSED_CSS=$(python3 -m csscompressor --compress "$TEST_CSS")
CHECK_RESULT $? 0 0 "CSS压缩失败"
# 验证压缩结果是否符合预期
EXPECTED_CSS="body{color:red}"
if [ "$COMPRESSED_CSS" != "$EXPECTED_CSS" ]; then
LOG_ERROR "CSS压缩结果不符合预期"
exit 1
else
LOG_INFO "CSS压缩结果符合预期"
fi
# 清理环境,如果之前未安装则卸载
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载python3-csscompressor"
dnf remove -y python3-csscompressor
CHECK_RESULT $? 0 0 "卸载python3-csscompressor失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-13
# @License : Mulan PSL v2
# @Desc : 测试python3-csscompressor的错误处理功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试python3-csscompressor的错误处理功能
LOG_INFO "开始测试python3-csscompressor的错误处理功能"
# 检查是否已安装python3-csscompressor
if dnf list installed python3-csscompressor &>/dev/null; then
LOG_INFO "python3-csscompressor已安装测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-csscompressor未安装将在测试完成后卸载"
INSTALLED=false
fi
# 检查yum源中是否有python3-csscompressor
if ! dnf list available python3-csscompressor &>/dev/null; then
LOG_ERROR "yum源中未找到python3-csscompressor软件包"
exit 255
fi
# 如果未安装则安装python3-csscompressor
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装python3-csscompressor"
dnf install -y python3-csscompressor
CHECK_RESULT $? 0 0 "安装python3-csscompressor失败"
fi
# 测试错误处理功能
LOG_INFO "测试错误处理功能:无效参数"
css_compress --invalid-arg 2>/dev/null
CHECK_RESULT $? 255 0 "无效参数未返回预期错误码"
LOG_INFO "测试错误处理功能:不存在的文件"
css_compress /nonexistent/file 2>/dev/null
CHECK_RESULT $? 1 0 "不存在的文件未返回预期错误码"
# 清理环境如果之前未安装则卸载python3-csscompressor
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载python3-csscompressor"
dnf remove -y python3-csscompressor
CHECK_RESULT $? 0 0 "卸载python3-csscompressor失败"
fi
LOG_INFO "测试python3-csscompressor的错误处理功能完成"
}
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-12-13
# @License : Mulan PSL v2
# @Desc : 测试python3-csscompressor的性能表现
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python3-csscompressor的性能表现"
# 检查环境是否已安装python3-csscompressor
LOG_INFO "检查是否已安装python3-csscompressor"
if dnf list installed python3-csscompressor &>/dev/null; then
LOG_INFO "python3-csscompressor已安装测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-csscompressor未安装将在测试完成后卸载"
INSTALLED=false
fi
# 检查yum源中是否有python3-csscompressor
LOG_INFO "检查yum源中是否有python3-csscompressor"
if ! dnf list available python3-csscompressor &>/dev/null; then
LOG_ERROR "yum源中未找到python3-csscompressor"
exit 255
fi
# 安装python3-csscompressor如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装python3-csscompressor"
dnf install -y python3-csscompressor
CHECK_RESULT $? 0 0 "安装python3-csscompressor失败"
fi
# 测试python3-csscompressor性能
LOG_INFO "测试python3-csscompressor性能"
css_file="test.css"
cat <<EOF > "$css_file"
body {
color: red;
}
EOF
LOG_INFO "执行css压缩测试"
python3 -m csscompressor "$css_file" > /dev/null
CHECK_RESULT $? 0 0 "css压缩测试失败"
# 清理测试文件
rm -f "$css_file"
# 卸载python3-csscompressor如果最初未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-csscompressor"
dnf remove -y python3-csscompressor
CHECK_RESULT $? 0 0 "卸载python3-csscompressor失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-06
# @License : Mulan PSL v2
# @Desc : Test basic functionality of humanize-help
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python-humanize-help
LOG_INFO "检查是否已安装python-humanize-help"
dnf list installed python-humanize-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python-humanize-help已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "python-humanize-help未安装将在测试后卸载"
INSTALLED=false
fi
# 检查yum源中是否有python-humanize-help
LOG_INFO "检查yum源中是否有python-humanize-help"
dnf list available python-humanize-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python-humanize-help退出码255"
exit 255
fi
# 安装python-humanize-help
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装python-humanize-help"
dnf install -y python-humanize-help
CHECK_RESULT $? 0 0 "安装python-humanize-help失败"
fi
# 测试humanize-help基本功能
LOG_INFO "测试humanize-help基本功能"
humanize-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "humanize-help --help命令执行失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
humanize-help --invalid-arg > /dev/null 2>&1
if [ $? -ne 255 ]; then
LOG_ERROR "humanize-help不支持--invalid-arg参数但未返回退出码255"
exit 255
fi
# 清理环境如果脚本开始时未安装则卸载python-humanize-help
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python-humanize-help"
dnf remove -y python-humanize-help
CHECK_RESULT $? 0 0 "卸载python-humanize-help失败"
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 : 2026-01-31
# @License : Mulan PSL v2
# @Desc : 测试使用python3-help命令获取Python帮助
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python3-help命令获取Python帮助功能"
LOG_INFO "步骤1检查python3-help软件包是否已在yum源中"
if ! dnf list python3-help &>/dev/null; then
LOG_ERROR "python3-help软件包在yum源中不存在"
exit 255
fi
LOG_INFO "步骤2检查当前环境是否已安装python3-help"
if dnf list installed python3-help &>/dev/null; then
LOG_INFO "python3-help已安装测试后保持安装状态"
already_installed=true
else
LOG_INFO "python3-help未安装将进行安装测试"
already_installed=false
fi
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3安装python3-help软件包"
dnf install -y python3-help
CHECK_RESULT $? 0 0 "安装python3-help失败"
fi
LOG_INFO "步骤4执行python3-help命令获取帮助信息"
python3-help
CHECK_RESULT $? 0 0 "执行python3-help命令失败"
LOG_INFO "步骤5测试python3-help命令的无效参数"
if python3-help --invalid-param 2>/dev/null; then
LOG_ERROR "python3-help命令接受了无效参数"
exit 255
fi
LOG_INFO "步骤6清理测试环境"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载测试安装的python3-help软件包"
dnf remove -y python3-help
CHECK_RESULT $? 0 0 "卸载python3-help失败"
else
LOG_INFO "保持python3-help的安装状态"
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-01-31
# @License : Mulan PSL v2
# @Desc : 测试安装python3-help软件包
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试安装python3-help软件包"
# 检查是否已安装python3-help
LOG_INFO "检查是否已安装python3-help"
dnf list installed python3-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-help已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "python3-help未安装将在测试过程中安装并在脚本结束前卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有python3-help软件包
LOG_INFO "检查yum源中是否有python3-help软件包"
dnf list available python3-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-help软件包"
exit 255
fi
# 如果未安装则安装python3-help
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装python3-help软件包"
dnf install -y python3-help
CHECK_RESULT $? 0 0 "安装python3-help失败"
fi
# 验证python3-help命令是否可用
LOG_INFO "验证python3-help命令是否可用"
python3-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python3-help命令不可用"
# 测试python3-help的特定参数假设--help是支持的参数
LOG_INFO "测试python3-help的--help参数"
python3-help --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "python3-help不支持--help参数"
exit 255
fi
CHECK_RESULT $? 0 0 "python3-help --help执行失败"
# 环境恢复如果之前未安装则卸载python3-help
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载python3-help软件包"
dnf remove -y python3-help
CHECK_RESULT $? 0 0 "卸载python3-help失败"
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-01-31
# @License : Mulan PSL v2
# @Desc : 测试卸载python3-help软件包
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试测试卸载python3-help软件包"
# 步骤1检查yum源中是否存在python3-help软件包
LOG_INFO "步骤1检查yum源中是否存在python3-help软件包"
dnf list available python3-help 2>/dev/null | grep -q python3-help
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-help软件包"
exit 255
fi
# 步骤2检查当前环境中是否已安装python3-help软件包
LOG_INFO "步骤2检查当前环境中是否已安装python3-help软件包"
dnf list installed python3-help 2>/dev/null | grep -q python3-help
if [ $? -eq 0 ]; then
LOG_INFO "python3-help软件包已安装测试结束后将保持安装状态"
installed=true
else
LOG_INFO "python3-help软件包未安装将先安装再卸载"
installed=false
fi
# 步骤3如果未安装则安装python3-help软件包
if [ "$installed" = "false" ]; then
LOG_INFO "步骤3安装python3-help软件包"
dnf install -y python3-help
CHECK_RESULT $? 0 0 "安装python3-help软件包失败"
fi
# 步骤4卸载python3-help软件包
LOG_INFO "步骤4卸载python3-help软件包"
dnf remove -y python3-help
CHECK_RESULT $? 0 0 "卸载python3-help软件包失败"
# 步骤5环境恢复
LOG_INFO "步骤5环境恢复"
if [ "$installed" = "false" ]; then
LOG_INFO "测试前未安装python3-help无需恢复"
else
LOG_INFO "重新安装python3-help软件包以恢复环境"
dnf install -y python3-help
CHECK_RESULT $? 0 0 "重新安装python3-help软件包失败"
fi
LOG_INFO "测试完成测试卸载python3-help软件包"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-06
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="rubygem-method_source-doc_function"
# 检查yum源中是否存在指定软件包
LOG_INFO "检查yum源中是否存在软件包: $PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在软件包: $PACKAGE_NAME"
exit 255
fi
# 检查当前环境是否已安装该软件包
LOG_INFO "检查当前环境是否已安装软件包: $PACKAGE_NAME"
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将进行安装测试"
INSTALLED_BEFORE=false
fi
# 如果未安装,则执行安装步骤
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "开始安装软件包: $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
fi
# 测试软件包基本功能
LOG_INFO "测试软件包 $PACKAGE_NAME 的基本功能"
# 这里根据实际软件包的功能添加测试命令
# 示例:如果软件包提供了某个命令,可以测试该命令
# command_from_package --help
# CHECK_RESULT $? 0 0 "软件包基本功能测试失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "清理环境:卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
else
LOG_INFO "测试前软件包已安装,保持安装状态,不进行卸载"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-06
# @License : Mulan PSL v2
# @Desc : Test basic module load
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否以root用户运行
if [[ $(id -u) -ne 0 ]]; then
LOG_ERROR "此脚本需要root权限运行"
exit 255
fi
# 定义软件包名称
PACKAGE_NAME="rubygem-method_source-doc_function_require"
LOG_INFO "开始测试基础模块加载功能"
# 步骤1: 检查yum源中是否存在该软件包
LOG_INFO "步骤1: 检查yum源中是否存在软件包 $PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
CHECK_RESULT $? 0 255 "yum源中未找到软件包 $PACKAGE_NAME"
# 步骤2: 检查是否已安装
LOG_INFO "步骤2: 检查软件包是否已安装"
if rpm -q $PACKAGE_NAME &>/dev/null; then
INSTALLED=true
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
else
INSTALLED=false
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
fi
# 步骤3: 如果未安装,则安装软件包
if [[ $INSTALLED == false ]]; then
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4: 测试基础模块加载功能
LOG_INFO "步骤4: 测试基础模块加载功能"
# 这里假设模块加载测试是通过特定命令进行的
# 根据实际测试需求修改以下命令
TEST_COMMAND="ruby -e \"require "method_source"\""
eval $TEST_COMMAND
CHECK_RESULT $? 0 0 "模块加载测试失败"
# 步骤5: 环境清理
LOG_INFO "步骤5: 环境清理"
if [[ $INSTALLED == false ]]; then
LOG_INFO "卸载测试安装的软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "保持原有安装状态,不卸载软件包"
fi
LOG_INFO "测试完成:基础模块加载功能测试通过"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-01
# @License : Mulan PSL v2
# @Desc : Test method source retrieval
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test method source retrieval"
# 检查是否已安装rubygem-method_source-doc软件包
LOG_INFO "检查rubygem-method_source-doc是否已安装"
if dnf list installed rubygem-method_source-doc &>/dev/null; then
LOG_INFO "rubygem-method_source-doc已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "rubygem-method_source-doc未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有rubygem-method_source-doc软件包
LOG_INFO "检查yum源中是否有rubygem-method_source-doc软件包"
if ! dnf list available rubygem-method_source-doc &>/dev/null; then
LOG_ERROR "yum源中未找到rubygem-method_source-doc软件包"
exit 255
fi
# 安装rubygem-method_source-doc软件包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装rubygem-method_source-doc软件包"
dnf install -y rubygem-method_source-doc
CHECK_RESULT $? 0 0 "安装rubygem-method_source-doc软件包失败"
fi
# 测试method source retrieval功能
LOG_INFO "测试method source retrieval功能"
source_output=$(ruby -rmethod_source -e "puts method(:puts).source")
CHECK_RESULT $? 0 0 "执行method source retrieval失败"
# 检查输出是否有效
if [ -z "$source_output" ]; then
LOG_ERROR "method source retrieval返回空结果"
exit 1
else
LOG_INFO "method source retrieval返回有效结果"
fi
# 清理环境(如果之前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载rubygem-method_source-doc软件包"
dnf remove -y rubygem-method_source-doc
CHECK_RESULT $? 0 0 "卸载rubygem-method_source-doc软件包失败"
fi
LOG_INFO "测试完成Test method source retrieval"
}
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-06
# @License : Mulan PSL v2
# @Desc : Test package removal
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:软件包卸载功能"
# 检查是否已安装指定软件包
LOG_INFO "检查环境中是否已安装 rubygem-method_source-doc 软件包"
if dnf list installed rubygem-method_source-doc &>/dev/null; then
LOG_INFO "环境已安装 rubygem-method_source-doc测试结束后保持安装状态"
already_installed=1
else
LOG_INFO "环境未安装 rubygem-method_source-doc将在测试前安装"
already_installed=0
fi
# 检查 yum 源中是否有该软件包
LOG_INFO "检查 yum 源中是否存在 rubygem-method_source-doc 软件包"
if ! dnf list available rubygem-method_source-doc &>/dev/null; then
LOG_ERROR "yum 源中未找到 rubygem-method_source-doc 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "开始安装 rubygem-method_source-doc 软件包"
dnf install -y rubygem-method_source-doc
CHECK_RESULT $? 0 0 "安装 rubygem-method_source-doc 软件包失败"
fi
# 测试卸载软件包
LOG_INFO "测试卸载 rubygem-method_source-doc 软件包"
dnf remove -y rubygem-method_source-doc
CHECK_RESULT $? 0 0 "卸载 rubygem-method_source-doc 软件包失败"
# 验证软件包是否已卸载
LOG_INFO "验证 rubygem-method_source-doc 软件包是否已卸载"
if dnf list installed rubygem-method_source-doc &>/dev/null; then
LOG_ERROR "rubygem-method_source-doc 软件包卸载失败"
exit 1
else
LOG_INFO "rubygem-method_source-doc 软件包已成功卸载"
fi
# 如果测试前未安装,则重新安装以恢复环境
if [ $already_installed -eq 0 ]; then
LOG_INFO "恢复环境:重新安装 rubygem-method_source-doc 软件包"
dnf install -y rubygem-method_source-doc
CHECK_RESULT $? 0 0 "恢复环境时安装 rubygem-method_source-doc 软件包失败"
else
LOG_INFO "环境恢复:保持 rubygem-method_source-doc 软件包安装状态"
fi
LOG_INFO "测试完成:软件包卸载功能测试通过"
}
main "$@"

View File

@@ -1,102 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-06
# @License : Mulan PSL v2
# @Desc : Test version retrieval
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 设置环境变量和常量
PACKAGE_NAME="rubygem-method_source-doc"
LOG_INFO "开始测试Test version retrieval"
# 步骤1检查yum源中是否存在指定软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 $PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 步骤2检查软件包是否已经安装
LOG_INFO "步骤2检查软件包 $PACKAGE_NAME 是否已经安装"
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已经安装,测试结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装"
ALREADY_INSTALLED=0
fi
# 步骤3如果未安装则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4测试版本查询功能
LOG_INFO "步骤4测试版本查询功能"
# 假设软件包提供 version 命令或参数,这里以常见的 --version 为例
# 如果实际命令不同,需要根据实际情况调整
VERSION_CMD="method_source-doc --version"
if ! command -v method_source-doc &>/dev/null; then
LOG_ERROR "命令 method_source-doc 不存在或不支持"
exit 255
fi
$VERSION_CMD &>/dev/null
if [ $? -ne 0 ]; then
# 尝试其他可能的版本参数
VERSION_CMD="method_source-doc -v"
$VERSION_CMD &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "命令 method_source-doc 不支持版本查询参数"
exit 255
fi
fi
# 执行版本查询命令
LOG_INFO "执行命令: $VERSION_CMD"
VERSION_OUTPUT=$($VERSION_CMD 2>&1)
CHECK_RESULT $? 0 0 "执行版本查询命令失败"
LOG_INFO "版本查询结果: $VERSION_OUTPUT"
# 步骤5验证版本信息格式简单检查是否包含数字和点
LOG_INFO "步骤5验证版本信息格式"
if echo "$VERSION_OUTPUT" | grep -qE "[0-9]+\.[0-9]+(\.[0-9]+)*"; then
LOG_INFO "版本信息格式正确"
else
LOG_ERROR "版本信息格式不正确"
CHECK_RESULT 1 0 0 "版本信息格式验证失败"
fi
# 步骤6环境清理
LOG_INFO "步骤6环境清理"
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载测试安装的软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "软件包 $PACKAGE_NAME 在测试前已安装,保持原状"
fi
LOG_INFO "测试完成Test version retrieval 测试通过"
}
main "$@"

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-26
# @License : Mulan PSL v2
# @Desc : 测试软件包能够通过包管理器如gem成功安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 初始化日志函数(如果未定义)
type LOG_INFO &>/dev/null || LOG_INFO() { echo "[INFO] $*"; }
type LOG_ERROR &>/dev/null || LOG_ERROR() { echo "[ERROR] $*"; }
# 检查dnf是否可用
LOG_INFO "检查dnf工具是否可用"
command -v dnf &>/dev/null
CHECK_RESULT $? 0 0 "dnf工具不可用"
# 定义软件包名称
PACKAGE_NAME="rubygem-minitest-reporters-help"
# 检查软件包是否已在yum源中
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 检查软件包是否已安装
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否已安装"
rpm -q ${PACKAGE_NAME} &>/dev/null
PACKAGE_INSTALLED=$?
# 如果未安装,则安装软件包
if [ ${PACKAGE_INSTALLED} -ne 0 ]; then
LOG_INFO "软件包未安装,开始安装 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
INSTALLED_BY_SCRIPT=1
else
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,跳过安装步骤"
INSTALLED_BY_SCRIPT=0
fi
# 验证gem命令是否可用如果软件包提供gem命令
LOG_INFO "验证gem命令是否可用"
command -v gem &>/dev/null
GEM_AVAILABLE=$?
# 如果gem命令可用尝试使用gem安装一个测试gem包例如minitest-reporters
if [ ${GEM_AVAILABLE} -eq 0 ]; then
LOG_INFO "尝试使用gem安装minitest-reporters进行测试"
gem install minitest-reporters --no-document
CHECK_RESULT $? 0 0 "使用gem安装minitest-reporters失败"
# 验证安装是否成功
LOG_INFO "验证minitest-reporters是否安装成功"
gem list | grep -q minitest-reporters
CHECK_RESULT $? 0 0 "minitest-reporters未成功安装"
# 清理卸载测试安装的gem包
LOG_INFO "清理测试安装的gem包minitest-reporters"
gem uninstall minitest-reporters -x
CHECK_RESULT $? 0 0 "卸载minitest-reporters失败"
else
LOG_INFO "gem命令不可用跳过gem安装测试"
fi
# 环境恢复:如果脚本安装了软件包,则卸载
if [ ${INSTALLED_BY_SCRIPT} -eq 1 ]; then
LOG_INFO "脚本安装了软件包,开始卸载 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
else
LOG_INFO "软件包由脚本之外安装,保持安装状态"
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 : 2026-03-26
# @License : Mulan PSL v2
# @Desc : 测试在Ruby环境中可以成功require该gem无加载错误
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了rubygem-minitest-reporters软件包
LOG_INFO "检查rubygem-minitest-reporters软件包是否已安装"
if dnf list installed rubygem-minitest-reporters &>/dev/null; then
LOG_INFO "rubygem-minitest-reporters软件包已安装脚本结束将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "rubygem-minitest-reporters软件包未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有rubygem-minitest-reporters软件包
LOG_INFO "检查yum源中是否有rubygem-minitest-reporters软件包"
if ! dnf list available rubygem-minitest-reporters &>/dev/null; then
LOG_ERROR "yum源中没有rubygem-minitest-reporters软件包"
exit 255
fi
# 如果未安装则安装rubygem-minitest-reporters软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装rubygem-minitest-reporters软件包"
dnf install -y rubygem-minitest-reporters
CHECK_RESULT $? 0 0 "安装rubygem-minitest-reporters软件包失败"
fi
# 测试在Ruby环境中可以成功require该gem无加载错误
LOG_INFO "测试在Ruby环境中可以成功require该gem无加载错误"
ruby -e "require "minitest/reporters""
CHECK_RESULT $? 0 0 "在Ruby环境中require "minitest/reporters"失败"
# 清理环境如果之前未安装则卸载rubygem-minitest-reporters软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载rubygem-minitest-reporters软件包"
dnf remove -y rubygem-minitest-reporters
CHECK_RESULT $? 0 0 "卸载rubygem-minitest-reporters软件包失败"
fi
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-09-16
# @License : Mulan PSL v2
# @Desc : Test basic functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test basic functionality"
# 检查是否已安装texlive-2up-doc
LOG_INFO "检查texlive-2up-doc是否已安装"
dnf list installed texlive-2up-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-2up-doc已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-2up-doc未安装测试结束后将卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-2up-doc
LOG_INFO "检查yum源中是否有texlive-2up-doc"
dnf list available texlive-2up-doc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到texlive-2up-doc"
# 安装texlive-2up-doc如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-2up-doc"
dnf install -y texlive-2up-doc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "安装texlive-2up-doc失败"
fi
# 测试基本功能
LOG_INFO "测试基本功能"
command_to_test="some_command --param" # 替换为实际命令和参数
$command_to_test > /dev/null 2>&1
CHECK_RESULT $? 0 255 "命令执行失败或参数不支持"
# 清理环境(如果测试前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-2up-doc以恢复环境"
dnf remove -y texlive-2up-doc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "卸载texlive-2up-doc失败"
fi
LOG_INFO "测试完成Test basic functionality"
}
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-20
# @License : Mulan PSL v2
# @Desc : Test if texlive-2up-doc is installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已经安装了texlive-2up-doc
LOG_INFO "检查texlive-2up-doc是否已经安装"
rpm -q texlive-2up-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-2up-doc已经安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "texlive-2up-doc未安装将在测试步骤中安装"
already_installed=false
fi
# 检查yum源中是否有texlive-2up-doc软件包
LOG_INFO "检查yum源中是否有texlive-2up-doc软件包"
dnf list available texlive-2up-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-2up-doc软件包"
exit 255
fi
# 测试安装功能
if [ "$already_installed" = "false" ]; then
LOG_INFO "开始安装texlive-2up-doc软件包"
dnf install -y texlive-2up-doc
CHECK_RESULT $? 0 0 "安装texlive-2up-doc失败"
fi
# 验证软件包是否安装成功
LOG_INFO "验证texlive-2up-doc是否安装成功"
rpm -q texlive-2up-doc
CHECK_RESULT $? 0 0 "texlive-2up-doc未正确安装"
# 测试软件包的基本功能这里假设texlive-2up-doc是一个文档包没有可执行命令
# 可以检查相关文件是否存在
LOG_INFO "检查texlive-2up-doc相关文件"
ls /usr/share/doc/texlive-2up-doc/ > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-2up-doc文档目录不存在"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "清理环境卸载texlive-2up-doc软件包"
dnf remove -y texlive-2up-doc
CHECK_RESULT $? 0 0 "卸载texlive-2up-doc失败"
# 验证卸载是否成功
rpm -q texlive-2up-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "texlive-2up-doc卸载失败"
exit 1
else
LOG_INFO "texlive-2up-doc已成功卸载环境已恢复"
fi
else
LOG_INFO "测试前已安装texlive-2up-doc保持安装状态无需卸载"
fi
LOG_INFO "texlive-2up-doc安装功能测试完成"
}
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 : 2026-02-20
# @License : Mulan PSL v2
# @Desc : Test accessing documentation content
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始:访问文档内容"
# 检查是否已安装 texlive-2up-doc
LOG_INFO "步骤1检查 texlive-2up-doc 是否已安装"
dnf list installed texlive-2up-doc &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "texlive-2up-doc 已安装,测试后将保持安装状态"
already_installed=true
else
LOG_INFO "texlive-2up-doc 未安装,将在测试中安装并在结束后卸载"
already_installed=false
fi
# 检查 yum 源中是否有该软件包
LOG_INFO "步骤2检查 yum 源中是否存在 texlive-2up-doc 软件包"
dnf list available texlive-2up-doc &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-2up-doc 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3安装 texlive-2up-doc 软件包"
dnf install -y texlive-2up-doc
CHECK_RESULT $? 0 0 "安装 texlive-2up-doc 失败"
fi
# 测试访问文档内容
LOG_INFO "步骤4测试访问 texlive-2up-doc 的文档内容"
if [ -d "/usr/share/texlive-doc/texmf-dist/doc/latex/2up" ]; then
LOG_INFO "文档目录存在,检查文档文件"
ls /usr/share/texlive-doc/texmf-dist/doc/latex/2up/*.pdf &>/dev/null
CHECK_RESULT $? 0 0 "未找到 PDF 文档文件"
LOG_INFO "PDF 文档文件存在"
else
LOG_ERROR "文档目录不存在"
exit 1
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "步骤5卸载 texlive-2up-doc 软件包"
dnf remove -y texlive-2up-doc
CHECK_RESULT $? 0 0 "卸载 texlive-2up-doc 失败"
LOG_INFO "环境已恢复texlive-2up-doc 已卸载"
else
LOG_INFO "环境已恢复,保持 texlive-2up-doc 安装状态"
fi
LOG_INFO "测试完成:访问文档内容"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-20
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-2up-doc package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-2up-doc
LOG_INFO "检查texlive-2up-doc是否已安装"
if rpm -q texlive-2up-doc &>/dev/null; then
LOG_INFO "texlive-2up-doc已安装测试结束将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "texlive-2up-doc未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有texlive-2up-doc软件包
LOG_INFO "检查yum源中是否有texlive-2up-doc软件包"
if ! dnf list available texlive-2up-doc &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-2up-doc软件包"
exit 255
fi
# 安装texlive-2up-doc软件包
LOG_INFO "安装texlive-2up-doc软件包"
dnf install -y texlive-2up-doc
CHECK_RESULT $? 0 0 "安装texlive-2up-doc失败"
# 验证texlive-2up-doc是否安装成功
LOG_INFO "验证texlive-2up-doc是否安装成功"
rpm -q texlive-2up-doc
CHECK_RESULT $? 0 0 "texlive-2up-doc未正确安装"
# 检查texlive-2up-doc相关命令或文件是否存在
LOG_INFO "检查texlive-2up-doc相关文件是否存在"
if [ -d /usr/share/texlive/texmf-dist/doc/latex/2up ]; then
LOG_INFO "texlive-2up-doc相关文件存在"
else
LOG_ERROR "texlive-2up-doc相关文件不存在"
CHECK_RESULT 1 0 0 "texlive-2up-doc文件检查失败"
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "测试前未安装texlive-2up-doc开始卸载"
dnf remove -y texlive-2up-doc
CHECK_RESULT $? 0 0 "卸载texlive-2up-doc失败"
LOG_INFO "texlive-2up-doc已卸载环境已恢复"
else
LOG_INFO "测试前已安装texlive-2up-doc保持安装状态"
fi
LOG_INFO "测试完成"
}
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-02-20
# @License : Mulan PSL v2
# @Desc : Test uninstallation of texlive-2up-doc package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境检查判断texlive-2up-doc是否已安装
LOG_INFO "检查texlive-2up-doc软件包是否已安装"
dnf list installed texlive-2up-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-2up-doc已安装测试结束将保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "texlive-2up-doc未安装测试将先安装后卸载"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否存在texlive-2up-doc软件包"
dnf list available texlive-2up-doc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中不存在texlive-2up-doc软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-2up-doc软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "开始安装texlive-2up-doc软件包"
dnf install -y texlive-2up-doc
CHECK_RESULT $? 0 0 "安装texlive-2up-doc软件包失败"
if [ $? -ne 0 ]; then
LOG_ERROR "安装texlive-2up-doc软件包失败"
exit 1
fi
LOG_INFO "texlive-2up-doc软件包安装成功"
fi
# 验证软件包是否安装成功
LOG_INFO "验证texlive-2up-doc软件包是否安装成功"
dnf list installed texlive-2up-doc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-2up-doc软件包未正确安装"
if [ $? -ne 0 ]; then
LOG_ERROR "texlive-2up-doc软件包未正确安装"
exit 1
fi
LOG_INFO "texlive-2up-doc软件包验证成功"
# 测试卸载功能
LOG_INFO "开始卸载texlive-2up-doc软件包"
dnf remove -y texlive-2up-doc
CHECK_RESULT $? 0 0 "卸载texlive-2up-doc软件包失败"
if [ $? -ne 0 ]; then
LOG_ERROR "卸载texlive-2up-doc软件包失败"
exit 1
fi
LOG_INFO "texlive-2up-doc软件包卸载成功"
# 验证软件包是否已卸载
LOG_INFO "验证texlive-2up-doc软件包是否已卸载"
dnf list installed texlive-2up-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "texlive-2up-doc软件包卸载后仍存在"
exit 1
fi
LOG_INFO "texlive-2up-doc软件包卸载验证成功"
# 环境恢复:如果测试前已安装,则重新安装
if [ $INSTALLED_FLAG -eq 1 ]; then
LOG_INFO "恢复环境重新安装texlive-2up-doc软件包"
dnf install -y texlive-2up-doc
CHECK_RESULT $? 0 0 "重新安装texlive-2up-doc软件包失败"
if [ $? -ne 0 ]; then
LOG_ERROR "重新安装texlive-2up-doc软件包失败"
exit 1
fi
LOG_INFO "texlive-2up-doc软件包重新安装成功"
fi
LOG_INFO "测试完成texlive-2up-doc软件包卸载功能正常"
}
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-06
# @License : Mulan PSL v2
# @Desc : Access and verify documentation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Access and verify documentation"
# 定义软件包名称
PACKAGE_NAME="texlive-cmap-doc"
# 检查是否已经安装软件包
LOG_INFO "检查环境是否已安装 $PACKAGE_NAME"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "环境已安装 $PACKAGE_NAME,测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "环境未安装 $PACKAGE_NAME,将在测试过程中安装并最终卸载"
INSTALLED_BEFORE_TEST=false
fi
# 检查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_TEST" = false ]; then
LOG_INFO "安装 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
# 验证文档访问
LOG_INFO "验证文档访问"
# 假设文档路径为 /usr/share/doc/texlive-cmap-doc/
DOC_PATH="/usr/share/doc/texlive-cmap-doc/"
if [ -d "$DOC_PATH" ]; then
LOG_INFO "文档目录存在:$DOC_PATH"
# 检查目录中是否有文件
if [ "$(ls -A "$DOC_PATH")" ]; then
LOG_INFO "文档目录中包含文件"
else
LOG_ERROR "文档目录为空"
CHECK_RESULT 1 0 0 "文档目录为空"
fi
else
LOG_ERROR "文档目录不存在:$DOC_PATH"
CHECK_RESULT 1 0 0 "文档目录不存在"
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
fi
LOG_INFO "测试完成Access and verify documentation"
}
main "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : 测试检查texlive-collection-langenglish软件包是否已正确安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查texlive-collection-langenglish软件包是否已正确安装
LOG_INFO "开始测试: 检查texlive-collection-langenglish软件包是否已正确安装"
# 检查软件包是否已在yum源中
LOG_INFO "步骤1: 检查yum源中是否存在texlive-collection-langenglish软件包"
dnf list available texlive-collection-langenglish > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-collection-langenglish软件包"
exit 255
fi
# 检查当前是否已安装该软件包
LOG_INFO "步骤2: 检查当前是否已安装texlive-collection-langenglish软件包"
rpm -q texlive-collection-langenglish > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,测试后将保持安装状态"
INSTALLED_BEFORE_TEST=1
else
LOG_INFO "软件包未安装,测试后将卸载"
INSTALLED_BEFORE_TEST=0
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "步骤3: 安装texlive-collection-langenglish软件包"
dnf install -y texlive-collection-langenglish
CHECK_RESULT $? 0 0 "安装texlive-collection-langenglish失败"
fi
# 验证软件包是否已正确安装
LOG_INFO "步骤4: 验证软件包是否已正确安装"
rpm -q texlive-collection-langenglish
CHECK_RESULT $? 0 0 "texlive-collection-langenglish软件包未正确安装"
# 检查软件包的基本功能
LOG_INFO "步骤5: 检查软件包的基本功能"
rpm -ql texlive-collection-langenglish | grep -q "\.tex$"
CHECK_RESULT $? 0 0 "texlive-collection-langenglish软件包不包含预期的tex文件"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "步骤6: 清理环境卸载texlive-collection-langenglish软件包"
dnf remove -y texlive-collection-langenglish
CHECK_RESULT $? 0 0 "卸载texlive-collection-langenglish失败"
# 验证是否已卸载
rpm -q texlive-collection-langenglish > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "软件包卸载失败"
exit 1
else
LOG_INFO "环境已恢复到测试前状态"
fi
else
LOG_INFO "步骤6: 保持软件包安装状态,无需清理"
fi
LOG_INFO "测试完成: texlive-collection-langenglish软件包安装测试通过"
}
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-25
# @License : Mulan PSL v2
# @Desc : 测试软件包texlive-collection-langenglish的卸载功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试 texlive-collection-langenglish 软件包的卸载功能"
# 检查软件包是否在 yum 源中
LOG_INFO "检查 yum 源中是否存在 texlive-collection-langenglish 软件包"
dnf list available texlive-collection-langenglish &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-collection-langenglish 软件包"
exit 255
fi
# 检查当前是否已安装
LOG_INFO "检查 texlive-collection-langenglish 是否已安装"
if rpm -q texlive-collection-langenglish &>/dev/null; then
LOG_INFO "软件包已安装,测试后将保持安装状态"
already_installed=true
else
LOG_INFO "软件包未安装,将执行安装和卸载测试"
already_installed=false
fi
# 如果未安装,则先安装
if [ "$already_installed" = "false" ]; then
LOG_INFO "安装 texlive-collection-langenglish 软件包"
dnf install -y texlive-collection-langenglish
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 验证安装
LOG_INFO "验证软件包安装成功"
rpm -q texlive-collection-langenglish
CHECK_RESULT $? 0 0 "验证软件包安装失败"
# 执行卸载测试
LOG_INFO "执行卸载操作"
dnf remove -y texlive-collection-langenglish
CHECK_RESULT $? 0 0 "卸载软件包失败"
# 验证卸载
LOG_INFO "验证软件包已卸载"
rpm -q texlive-collection-langenglish
if [ $? -eq 0 ]; then
LOG_ERROR "软件包卸载后仍然存在"
exit 1
else
LOG_INFO "软件包卸载验证成功"
fi
# 环境恢复:如果原本未安装,则保持未安装状态;如果原本已安装,则重新安装
if [ "$already_installed" = "true" ]; then
LOG_INFO "恢复环境:重新安装 texlive-collection-langenglish"
dnf install -y texlive-collection-langenglish
CHECK_RESULT $? 0 0 "重新安装软件包失败"
LOG_INFO "环境已恢复为已安装状态"
else
LOG_INFO "环境已恢复为未安装状态"
fi
LOG_INFO "texlive-collection-langenglish 卸载功能测试完成"
}
main "$@"

View File

@@ -1,136 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : 测试texlive-collection-langenglish提供的基础英文排版支持
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境检查与日志输出
LOG_INFO "开始测试 texlive-collection-langenglish 提供的基础英文排版支持"
# 定义软件包名称
PACKAGE_NAME="texlive-collection-langenglish"
# 1. 检查软件包是否已在系统中安装
LOG_INFO "检查软件包是否已安装"
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE="true"
else
LOG_INFO "软件包未安装,将在测试过程中安装"
INSTALLED_BEFORE="false"
fi
# 2. 检查yum源中是否存在该软件包
LOG_INFO "检查yum源中是否存在软件包 $PACKAGE_NAME"
dnf list available "$PACKAGE_NAME" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到软件包 $PACKAGE_NAME"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
exit 255
fi
# 3. 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 4. 验证软件包安装成功
LOG_INFO "验证软件包安装成功"
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 未正确安装"
# 5. 测试texlive-collection-langenglish提供的基础英文排版支持
LOG_INFO "测试基础英文排版支持"
# 使用texlive提供的命令进行测试例如检查相关文件是否存在
TEXLIVE_PATH="/usr/share/texlive/texmf-dist/tex/latex/base"
if [ -d "$TEXLIVE_PATH" ]; then
LOG_INFO "TeX Live 基础路径存在"
# 检查英文排版相关文件
if [ -f "$TEXLIVE_PATH/article.cls" ]; then
LOG_INFO "找到英文排版基础类文件 article.cls"
else
LOG_ERROR "未找到英文排版基础类文件 article.cls"
CHECK_RESULT 1 0 0 "英文排版基础类文件缺失"
fi
else
LOG_ERROR "TeX Live 基础路径不存在"
CHECK_RESULT 1 0 0 "TeX Live 基础路径缺失"
fi
# 6. 测试英文排版命令
LOG_INFO "测试英文排版命令"
# 使用texlive提供的命令进行简单测试
which pdflatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pdflatex 命令未找到"
# 7. 创建简单的英文TeX文档进行测试
LOG_INFO "创建简单英文TeX文档进行测试"
TEST_TEX_FILE="/tmp/test_english.tex"
cat > "$TEST_TEX_FILE" << "EOF"
\documentclass{article}
\begin{document}
This is a test document for English typesetting support.
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试TeX文件失败"
# 8. 尝试编译英文文档
LOG_INFO "尝试编译英文TeX文档"
pdflatex -interaction=nonstopmode "$TEST_TEX_FILE" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "英文TeX文档编译失败"
# 9. 检查生成的PDF文件
LOG_INFO "检查生成的PDF文件"
if [ -f "${TEST_TEX_FILE%.tex}.pdf" ]; then
LOG_INFO "英文TeX文档编译成功PDF文件已生成"
else
LOG_ERROR "英文TeX文档编译失败未生成PDF文件"
CHECK_RESULT 1 0 0 "PDF文件生成失败"
fi
# 10. 清理测试文件
LOG_INFO "清理测试文件"
rm -f "$TEST_TEX_FILE" "${TEST_TEX_FILE%.tex}.pdf" "${TEST_TEX_FILE%.tex}.aux" "${TEST_TEX_FILE%.tex}.log" > /dev/null 2>&1
# 11. 环境恢复
LOG_INFO "恢复测试环境"
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y "$PACKAGE_NAME" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
# 验证卸载成功
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "软件包卸载失败"
CHECK_RESULT 1 0 0 "软件包卸载验证失败"
else
LOG_INFO "软件包成功卸载"
fi
else
LOG_INFO "保持软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : Test basic functionality of texlive-filedate
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test basic functionality of texlive-filedate"
# 检查是否已安装texlive-filedate
LOG_INFO "检查是否已安装texlive-filedate"
if dnf list installed texlive-filedate &>/dev/null; then
LOG_INFO "texlive-filedate已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-filedate未安装测试结束后将卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-filedate软件包
LOG_INFO "检查yum源中是否有texlive-filedate软件包"
if ! dnf list available texlive-filedate &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-filedate软件包"
exit 255
fi
# 如果未安装则安装texlive-filedate
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-filedate"
dnf install -y texlive-filedate
CHECK_RESULT $? 0 0 "安装texlive-filedate失败"
fi
# 测试基本功能
LOG_INFO "测试texlive-filedate基本功能"
texlive-filedate --version
CHECK_RESULT $? 0 0 "获取texlive-filedate版本失败"
# 检查不支持的参数
LOG_INFO "检查不支持的参数"
texlive-filedate --invalid-option &>/dev/null
if [ $? -ne 255 ]; then
LOG_ERROR "不支持的参数未返回预期退出码255"
exit 255
fi
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-filedate"
dnf remove -y texlive-filedate
CHECK_RESULT $? 0 0 "卸载texlive-filedate失败"
fi
LOG_INFO "测试完成Test basic functionality of texlive-filedate"
}
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-11-26
# @License : Mulan PSL v2
# @Desc : Basic functionality test
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-simplecv软件包
LOG_INFO "检查是否已安装texlive-simplecv软件包"
rpm -q texlive-simplecv > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-simplecv已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-simplecv未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-simplecv软件包
LOG_INFO "检查yum源中是否存在texlive-simplecv软件包"
dnf list available texlive-simplecv > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在texlive-simplecv软件包"
# 安装texlive-simplecv软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-simplecv软件包"
dnf install -y texlive-simplecv
CHECK_RESULT $? 0 0 "安装texlive-simplecv失败"
fi
# 测试texlive-simplecv基本功能
LOG_INFO "测试texlive-simplecv基本功能"
texdoc simplecv > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-simplecv基本功能测试失败"
# 清理环境如果脚本开始时未安装则卸载texlive-simplecv
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-simplecv软件包"
dnf remove -y texlive-simplecv
CHECK_RESULT $? 0 0 "卸载texlive-simplecv失败"
fi
LOG_INFO "Basic functionality test完成"
}
main "$@"

View File

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

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Test basic key-value parsing
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已经安装texlive-expkv-basic
LOG_INFO "检查是否已安装texlive-expkv-basic"
rpm -q texlive-expkv-basic > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-expkv-basic已安装脚本结束时将保持安装状态"
INSTALLED="yes"
else
LOG_INFO "texlive-expkv-basic未安装将进行安装和测试"
INSTALLED="no"
fi
# 检查yum源中是否有texlive-expkv-basic软件包
LOG_INFO "检查yum源中是否有texlive-expkv-basic软件包"
dnf list available texlive-expkv-basic > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有texlive-expkv-basic软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有texlive-expkv-basic软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "安装texlive-expkv-basic软件包"
dnf install -y texlive-expkv-basic
CHECK_RESULT $? 0 0 "安装texlive-expkv-basic软件包失败"
fi
# 测试基本键值解析功能
LOG_INFO "测试基本键值解析功能"
# 这里假设texlive-expkv-basic包含一个可执行文件或命令例如expkv-basic
# 如果实际软件包没有,需要根据实际情况调整
command -v expkv-basic > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "执行expkv-basic命令测试键值解析"
expkv-basic --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "expkv-basic命令执行失败"
# 如果命令有特定参数,可以在这里测试
# 例如expkv-basic --version
# 如果参数不存在或不支持根据要求退出码为255
expkv-basic --version > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "expkv-basic命令不支持--version参数"
exit 255
fi
else
LOG_INFO "texlive-expkv-basic没有可执行命令测试其文件是否存在"
# 检查软件包安装的文件
rpm -ql texlive-expkv-basic | head -5
CHECK_RESULT $? 0 0 "texlive-expkv-basic文件列表获取失败"
fi
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "卸载texlive-expkv-basic软件包"
dnf remove -y texlive-expkv-basic
CHECK_RESULT $? 0 0 "卸载texlive-expkv-basic软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,123 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Test default key values
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色代码
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
NC="\033[0m" # No Color
# 定义日志函数
LOG_INFO() {
echo -e "${GREEN}[INFO]${NC} $1"
}
LOG_ERROR() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 定义检查函数
CHECK_RESULT() {
local actual=$1
local expected=$2
local error_code=$3
local message=$4
if [ $actual -ne $expected ]; then
LOG_ERROR "$message"
exit $error_code
fi
}
# 定义SSH命令函数
SSH_CMD() {
local cmd=$1
local ip=$2
local password=$3
local user=$4
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
return $?
}
# 定义软件包名称
PACKAGE_NAME="texlive-expkv-default"
# 步骤1检查软件包是否在yum源中
LOG_INFO "检查软件包是否在yum源中"
dnf list available "$PACKAGE_NAME" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
# 步骤2检查当前是否已安装
LOG_INFO "检查当前是否已安装 $PACKAGE_NAME"
INSTALLED=0
rpm -q "$PACKAGE_NAME" &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
fi
# 步骤3如果未安装则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4测试默认键值
LOG_INFO "测试默认键值"
# 这里假设texlive-expkv-default提供了某个命令来测试默认键值
# 由于不知道具体命令,这里使用一个示例命令
test_command="kpsewhich expkv-default.tex"
$test_command
CHECK_RESULT $? 0 0 "测试默认键值失败"
# 步骤5测试命令参数示例
LOG_INFO "测试命令参数"
# 假设texlive-expkv-default有一个命令叫texlive-expkv-test支持参数--version
test_param_command="texlive-expkv-test --version"
if command -v texlive-expkv-test &>/dev/null; then
$test_param_command
CHECK_RESULT $? 0 0 "命令参数测试失败"
else
LOG_INFO "命令 texlive-expkv-test 不存在,跳过参数测试"
fi
# 步骤6清理环境
LOG_INFO "清理环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Test environment key handling
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试环境键处理功能"
# 检查是否已安装texlive-expkv-env
LOG_INFO "步骤1检查texlive-expkv-env是否已安装"
if dnf list installed texlive-expkv-env &>/dev/null; then
LOG_INFO "texlive-expkv-env已安装测试后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "texlive-expkv-env未安装将在测试后卸载"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "步骤2检查yum源中是否存在texlive-expkv-env软件包"
if ! dnf search texlive-expkv-env 2>/dev/null | grep -q "texlive-expkv-env"; then
LOG_ERROR "yum源中未找到texlive-expkv-env软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装texlive-expkv-env软件包"
dnf install -y texlive-expkv-env
CHECK_RESULT $? 0 0 "安装texlive-expkv-env失败"
fi
# 测试环境键处理功能
LOG_INFO "步骤4测试环境键处理功能"
# 这里假设有一个命令或操作来测试环境键处理,例如使用特定命令
# 假设测试命令为expkv-env-test
if command -v expkv-env-test &>/dev/null; then
expkv-env-test --check
CHECK_RESULT $? 0 0 "环境键处理功能测试失败"
else
LOG_ERROR "测试命令expkv-env-test不存在或不支持"
exit 255
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤5卸载texlive-expkv-env软件包"
dnf remove -y texlive-expkv-env
CHECK_RESULT $? 0 0 "卸载texlive-expkv-env失败"
else
LOG_INFO "步骤5保持texlive-expkv-env安装状态"
fi
LOG_INFO "测试环境键处理功能完成"
}
main "$@"

View File

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

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Test macro definition with keys
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 初始化变量
PACKAGE_NAME="texlive-expkv_macro"
INSTALLED_FLAG=false
# 检查是否已安装
LOG_INFO "检查是否已安装 $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &> /dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装"
INSTALLED_FLAG=true
else
LOG_INFO "$PACKAGE_NAME 未安装"
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_FLAG; then
LOG_INFO "安装 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
# 测试宏定义功能
LOG_INFO "测试 expkv 宏定义功能"
cat > test_macro.tex << "EOF"
\documentclass{article}
\usepackage{expkv-def}
\ekvdefinekeys{mykeys}{
store foo = \myfoo
,store bar = \mybar
}
\ekvset{mykeys}{foo=hello,bar=world}
\begin{document}
\myfoo \mybar
\end{document}
EOF
# 编译测试文档
LOG_INFO "编译测试文档"
pdflatex -interaction=nonstopmode test_macro.tex
CHECK_RESULT $? 0 0 "编译测试文档失败"
# 检查输出文件
LOG_INFO "检查输出文件"
if [ -f test_macro.pdf ]; then
LOG_INFO "测试文档编译成功"
else
LOG_ERROR "测试文档编译失败"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_macro.tex test_macro.pdf test_macro.aux test_macro.log
# 如果脚本开始时未安装,则卸载软件包
if ! $INSTALLED_FLAG; then
LOG_INFO "卸载 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
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-03-28
# @License : Mulan PSL v2
# @Desc : Test nested key-value usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试Test nested key-value usage"
# 检查软件包是否存在
LOG_INFO "步骤1检查texlive-expkv-nested软件包是否在yum源中"
if ! dnf list texlive-expkv-nested &>/dev/null; then
LOG_ERROR "texlive-expkv-nested软件包不在yum源中"
exit 255
fi
# 检查是否已安装
LOG_INFO "步骤2检查texlive-expkv-nested是否已安装"
if rpm -q texlive-expkv-nested &>/dev/null; then
LOG_INFO "texlive-expkv-nested已安装测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "texlive-expkv-nested未安装将在测试过程中安装"
already_installed=0
fi
# 如果未安装,则安装软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3安装texlive-expkv-nested软件包"
dnf install -y texlive-expkv-nested
CHECK_RESULT $? 0 0 "安装texlive-expkv-nested失败"
fi
# 测试嵌套键值使用
LOG_INFO "步骤4测试嵌套键值使用功能"
# 这里假设有一个命令或脚本来测试嵌套键值功能
# 例如:运行一个测试命令或检查相关文件
# 由于具体测试内容未指定,这里使用一个示例检查
if command -v kpsewhich &>/dev/null; then
kpsewhich expkv-nested.sty
CHECK_RESULT $? 0 0 "未找到expkv-nested.sty文件"
else
LOG_ERROR "kpsewhich命令不存在无法测试嵌套键值功能"
exit 255
fi
# 清理环境:如果之前未安装,则卸载软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤5卸载texlive-expkv-nested软件包"
dnf remove -y texlive-expkv-nested
CHECK_RESULT $? 0 0 "卸载texlive-expkv-nested失败"
fi
LOG_INFO "测试完成Test nested key-value usage"
}
main "$@"

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