This commit is contained in:
2026-04-25 05:49:11 +08:00
93 changed files with 0 additions and 6508 deletions

View File

@@ -1,14 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/artemis/artemis-server-osgi",
"machine num": 1,
"cases": [
{
"name": "test_artemis-server-osgi_function_startup",
"desc": "Test the startup process of artemis-server-osgi"
},
{
"name": "test_artemis-server-osgi_function_shutdown",
"desc": "Test the shutdown process of artemis-server-osgi"
}
]
}

View File

@@ -14,37 +14,9 @@
"name": "test_veritysetup_function_version",
"desc": "测试查询 veritysetup 命令行工具版本信息的功能。"
},
{
"name": "test_veritysetup_function_format",
"desc": "测试使用 veritysetup 对块设备进行 dm-verity 格式化(创建哈希树)的功能。"
},
{
"name": "test_veritysetup_function_open",
"desc": "测试使用 veritysetup 打开一个已格式化的 dm-verity 设备的功能。"
},
{
"name": "test_veritysetup_function_close",
"desc": "测试使用 veritysetup 关闭一个已打开的 dm-verity 设备的功能。"
},
{
"name": "test_veritysetup_function_status",
"desc": "测试使用 veritysetup 查询已打开 dm-verity 设备状态信息的功能。"
},
{
"name": "test_veritysetup_function_install_check",
"desc": "测试检查系统是否已安装 veritysetup 软件包的功能。"
},
{
"name": "test_veritysetup_function_help",
"desc": "测试获取 veritysetup 命令行工具帮助信息的功能。"
},
{
"name": "test_veritysetup_function_verify",
"desc": "测试使用 veritysetup 验证 dm-verity 设备数据完整性的功能。"
},
{
"name": "test_veritysetup_function_dump",
"desc": "测试使用 veritysetup 导出 dm-verity 设备哈希树元数据的功能。"
}
]
}

View File

@@ -18,10 +18,6 @@
{
"name": "test_culmus-simple-clm-fonts_list",
"desc": "测试列出已安装的culmus-simple-clm-fonts字体文件验证字体文件列表的完整性"
},
{
"name": "test_culmus-simple-clm-fonts_usage",
"desc": "测试culmus-simple-clm-fonts字体在支持的应用如LibreOffice Writer中的基本使用功能"
}
]
}

View File

@@ -9,22 +9,6 @@
{
"name": "test_google-droid-sans-fonts_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_google-droid-sans-fonts_function_font_exists",
"desc": "Verify font files exist"
},
{
"name": "test_google-droid-sans-fonts_function_list_fonts",
"desc": "List available font files"
},
{
"name": "test_google-droid-sans-fonts_function_font_usage",
"desc": "Test font in application"
},
{
"name": "test_google-droid-sans-fonts_function_font_cache",
"desc": "Check font cache update"
}
]
}

View File

@@ -1,38 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/jdepend/jdepend-javadoc",
"machine num": 1,
"cases": [
{
"name": "test_jdepend-javadoc_function_basic",
"desc": "Test basic functionality of jdepend-javadoc"
},
{
"name": "test_jdepend-javadoc_function_docgen",
"desc": "Test documentation generation"
},
{
"name": "test_jdepend-javadoc_function_install",
"desc": "Test installation of jdepend-javadoc package"
},
{
"name": "test_jdepend-javadoc_function_uninstall",
"desc": "Test uninstallation of jdepend-javadoc package"
},
{
"name": "test_jdepend-javadoc_function_check_installed",
"desc": "Check if jdepend-javadoc is installed"
},
{
"name": "test_jdepend-javadoc_function_help_output",
"desc": "Test help/usage output of the tool"
},
{
"name": "test_jdepend-javadoc_function_generate_docs",
"desc": "Test generating Javadoc for a sample Java project"
},
{
"name": "test_jdepend-javadoc_function_version_info",
"desc": "Test retrieving version information"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/linux-sgx/libsgx-quote-ex",
"machine num": 1,
"cases": [
{
"name": "test_libsgx-quote-ex_function_init",
"desc": "Test initialization of libsgx-quote-ex"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/lxsession/lxsession-help",
"machine num": 1,
"cases": [
{
"name": "test_lxsession-help_install",
"desc": "测试通过包管理器如apt成功安装lxsession-help软件包"
},
{
"name": "test_lxsession-help_uninstall",
"desc": "测试通过包管理器如apt成功卸载lxsession-help软件包并验证其可被重新安装"
},
{
"name": "test_lxsession-help_basic_usage",
"desc": "测试在终端中执行`lxsession-help`命令能正常启动并显示帮助信息"
},
{
"name": "test_lxsession-help_help_option",
"desc": "测试执行`lxsession-help --help`或`-h`选项能正确显示命令用法和选项说明"
},
{
"name": "test_lxsession-help_version",
"desc": "测试执行`lxsession-help --version`选项能正确显示软件包的版本信息"
}
]
}

View File

@@ -1,46 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/oec-hardware/oec-hardware-server",
"machine num": 1,
"cases": [
{
"name": "test_oec-hardware-server_oech-server_h",
"desc": "测试 oech-server 的 -h 参数,显示帮助信息"
},
{
"name": "test_oec-hardware-server_oech-server_version",
"desc": "测试 oech-server 的 --version 参数,显示版本信息"
},
{
"name": "test_oec-hardware-server_function_start",
"desc": "测试 oech-server 的启动功能"
},
{
"name": "test_oec-hardware-server_function_config",
"desc": "测试 oech-server 的配置文件加载功能"
},
{
"name": "test_oec-hardware-server_function_install",
"desc": "测试软件包oec-hardware-server的安装功能"
},
{
"name": "test_oec-hardware-server_function_uninstall",
"desc": "测试软件包oec-hardware-server的卸载功能"
},
{
"name": "test_oec-hardware-server_function_status",
"desc": "测试oech-server服务状态查询功能"
},
{
"name": "test_oec-hardware-server_function_restart",
"desc": "测试oech-server服务重启功能"
},
{
"name": "test_oec-hardware-server_function_log",
"desc": "测试oech-server服务日志查看功能"
},
{
"name": "test_oec-hardware-server_function_default_conf",
"desc": "测试oech-server默认配置文件存在性"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/openwsman/libwsman-devel",
"machine num": 1,
"cases": [
{
"name": "test_libwsman-devel_function_basic",
"desc": "Test basic commands"
}
]
}

View File

@@ -6,25 +6,9 @@
"name": "test_python-kaitaistruct-help_function_parse",
"desc": "Test parsing functionality"
},
{
"name": "test_python-kaitaistruct-help_function_install",
"desc": "Test package installation via pip"
},
{
"name": "test_python-kaitaistruct-help_function_uninstall",
"desc": "Test package removal via pip"
},
{
"name": "test_python-kaitaistruct-help_function_import",
"desc": "Test successful import of the module"
},
{
"name": "test_python-kaitaistruct-help_function_help",
"desc": "Test accessing package help documentation"
},
{
"name": "test_python-kaitaistruct-help_function_version",
"desc": "Test retrieving package version info"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-mkdocs-autorefs/python3-mkdocs-autorefs",
"machine num": 1,
"cases": [
{
"name": "test_python3-mkdocs-autorefs_function_basic",
"desc": "Test basic functionality of python3-mkdocs-autorefs"
}
]
}

View File

@@ -6,14 +6,6 @@
"name": "test_qatlib-devel_function_install_package",
"desc": "测试qatlib-devel软件包的安装功能验证其是否能被正确安装到系统中。"
},
{
"name": "test_qatlib-devel_function_verify_installation",
"desc": "测试验证qatlib-devel软件包是否已成功安装并检查其关键开发文件如头文件和库文件是否存在。"
},
{
"name": "test_qatlib-devel_function_compile_with_lib",
"desc": "测试使用qatlib-devel提供的头文件和库文件进行简单的程序编译验证开发环境可用性。"
},
{
"name": "test_qatlib-devel_function_check_version",
"desc": "测试检查已安装的qatlib-devel软件包的版本信息确保与预期版本一致。"

View File

@@ -1,18 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/rubygem-docile/rubygem-docile-help",
"machine num": 1,
"cases": [
{
"name": "test_rubygem-docile-help_function_load",
"desc": "Test loading functionality"
},
{
"name": "test_rubygem-docile-help_function_parse",
"desc": "Test parsing functionality"
},
{
"name": "test_rubygem-docile-help_function_exec",
"desc": "Test execution functionality"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/rubygem-rspec-support/rubygem-rspec-support-doc",
"machine num": 1,
"cases": [
{
"name": "test_rubygem-rspec-support-doc_function_install",
"desc": "Test the installation of the package"
}
]
}

View File

@@ -5,22 +5,6 @@
{
"name": "test_texlive-babel-indonesian-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-babel-indonesian-doc_function_verify_installed",
"desc": "Verify package is installed correctly"
},
{
"name": "test_texlive-babel-indonesian-doc_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_texlive-babel-indonesian-doc_function_doc_access",
"desc": "Access and verify documentation files"
},
{
"name": "test_texlive-babel-indonesian-doc_function_texmf_path",
"desc": "Check package file location in TeX system"
}
]
}

View File

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

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-electrum",
"machine num": 1,
"cases": [
{
"name": "test_texlive-electrum_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_texlive-electrum_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-electrum_function_version",
"desc": "Test package version checking"
},
{
"name": "test_texlive-electrum_function_filelist",
"desc": "Test listing installed files"
},
{
"name": "test_texlive-electrum_function_fonts",
"desc": "Test availability of fonts"
}
]
}

View File

@@ -2,29 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-etex",
"machine num": 1,
"cases": [
{
"name": "test_texlive-etex_function_basic",
"desc": "Test basic eTeX functionality"
},
{
"name": "test_texlive-etex_function_install",
"desc": "Test installation of texlive-etex package"
},
{
"name": "test_texlive-etex_function_version",
"desc": "Test checking eTeX engine version"
},
{
"name": "test_texlive-etex_function_basic_typesetting",
"desc": "Test basic typesetting with eTeX"
},
{
"name": "test_texlive-etex_function_advanced_features",
"desc": "Test eTeX advanced features (e.g., \\numexpr)"
},
{
"name": "test_texlive-etex_function_uninstall",
"desc": "Test uninstallation of texlive-etex package"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-i/texlive-flagderiv-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-flagderiv-doc_function_docgen",
"desc": "Verify documentation generation"
}
]
}

View File

@@ -17,10 +17,6 @@
{
"name": "test_texlive-ghab_function_listfiles",
"desc": "Test listing files in the package"
},
{
"name": "test_texlive-ghab_function_basic_usage",
"desc": "Test basic usage of the package"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-u/texlive-roex",
"machine num": 1,
"cases": [
{
"name": "test_texlive-roex_function_install",
"desc": "Test installation of texlive-roex package"
},
{
"name": "test_texlive-roex_function_remove",
"desc": "Test removal of texlive-roex package"
@@ -13,10 +9,6 @@
{
"name": "test_texlive-roex_function_check",
"desc": "Test if texlive-roex package is installed"
},
{
"name": "test_texlive-roex_function_usage",
"desc": "Test basic usage of texlive-roex package"
}
]
}

View File

@@ -1,30 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-njurepo",
"machine num": 1,
"cases": [
{
"name": "test_texlive-njurepo_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_texlive-njurepo_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-njurepo_function_check",
"desc": "Test package installation check"
},
{
"name": "test_texlive-njurepo_function_update",
"desc": "Test package update"
},
{
"name": "test_texlive-njurepo_function_list",
"desc": "Test listing available packages"
},
{
"name": "test_texlive-njurepo_function_clean",
"desc": "Test clean cache operation"
}
]
}

View File

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

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-29
# @License : Mulan PSL v2
# @Desc : Test the startup process of artemis-server-osgi
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 artemis-server-osgi 的启动过程"
# 检查是否已安装 artemis-server-osgi
LOG_INFO "检查 artemis-server-osgi 是否已安装"
if dnf list installed artemis-server-osgi &>/dev/null; then
LOG_INFO "artemis-server-osgi 已安装,跳过安装步骤"
installed=true
else
LOG_INFO "artemis-server-osgi 未安装,准备安装"
installed=false
fi
# 检查 yum 源中是否有 artemis-server-osgi 软件包
LOG_INFO "检查 yum 源中是否存在 artemis-server-osgi 软件包"
if ! dnf list available artemis-server-osgi &>/dev/null; then
LOG_ERROR "yum 源中未找到 artemis-server-osgi 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 artemis-server-osgi 软件包"
dnf install -y artemis-server-osgi
CHECK_RESULT $? 0 0 "安装 artemis-server-osgi 失败"
fi
# 测试启动 artemis-server-osgi
LOG_INFO "测试启动 artemis-server-osgi"
start_command="artemis-server-osgi --start"
if ! command -v artemis-server-osgi &>/dev/null; then
LOG_ERROR "命令 artemis-server-osgi 不存在或不支持"
exit 255
fi
$start_command
CHECK_RESULT $? 0 0 "启动 artemis-server-osgi 失败"
# 检查服务是否成功启动
LOG_INFO "检查 artemis-server-osgi 服务状态"
status_command="artemis-server-osgi --status"
$status_command
CHECK_RESULT $? 0 0 "artemis-server-osgi 服务未正常运行"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载 artemis-server-osgi 软件包"
dnf remove -y artemis-server-osgi
CHECK_RESULT $? 0 0 "卸载 artemis-server-osgi 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,104 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-29
# @License : Mulan PSL v2
# @Desc : 测试使用 veritysetup 关闭一个已打开的 dm-verity 设备的功能。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装 veritysetup
LOG_INFO "检查是否已安装 veritysetup"
if command -v veritysetup >/dev/null 2>&1; then
LOG_INFO "veritysetup 已安装"
INSTALLED=1
else
LOG_INFO "veritysetup 未安装"
INSTALLED=0
fi
# 检查 yum 源中是否有 veritysetup 包
LOG_INFO "检查 yum 源中是否有 veritysetup 包"
if ! dnf list available veritysetup 2>/dev/null | grep -q veritysetup; then
LOG_ERROR "yum 源中未找到 veritysetup 包"
exit 255
fi
# 如果未安装,则安装 veritysetup
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装 veritysetup"
dnf install -y veritysetup
CHECK_RESULT $? 0 0 "安装 veritysetup 失败"
fi
# 创建一个测试用的虚拟块设备
LOG_INFO "创建测试用的虚拟块设备"
dd if=/dev/zero of=/tmp/test_data.img bs=1M count=10
CHECK_RESULT $? 0 0 "创建测试数据文件失败"
dd if=/dev/zero of=/tmp/test_hash.img bs=1M count=1
CHECK_RESULT $? 0 0 "创建测试哈希文件失败"
# 格式化数据设备为 ext4
LOG_INFO "格式化数据设备为 ext4"
mkfs.ext4 /tmp/test_data.img
CHECK_RESULT $? 0 0 "格式化数据设备失败"
# 为数据设备生成哈希树
LOG_INFO "为数据设备生成哈希树"
veritysetup format /tmp/test_data.img /tmp/test_hash.img
CHECK_RESULT $? 0 0 "生成哈希树失败"
# 打开 dm-verity 设备
LOG_INFO "打开 dm-verity 设备"
veritysetup open /tmp/test_data.img test_verity /tmp/test_hash.img $(veritysetup format /tmp/test_data.img /tmp/test_hash.img 2>&1 | grep "Root hash" | awk "{print $3}")
CHECK_RESULT $? 0 0 "打开 dm-verity 设备失败"
# 检查设备是否成功打开
LOG_INFO "检查设备是否成功打开"
dmsetup ls | grep -q test_verity
CHECK_RESULT $? 0 0 "dm-verity 设备未成功打开"
# 测试关闭 dm-verity 设备
LOG_INFO "测试关闭 dm-verity 设备"
veritysetup close test_verity
CHECK_RESULT $? 0 0 "关闭 dm-verity 设备失败"
# 验证设备是否已关闭
LOG_INFO "验证设备是否已关闭"
if dmsetup ls | grep -q test_verity; then
LOG_ERROR "dm-verity 设备未成功关闭"
exit 1
else
LOG_INFO "dm-verity 设备已成功关闭"
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f /tmp/test_data.img /tmp/test_hash.img
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装 veritysetup则卸载
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载 veritysetup"
dnf remove -y veritysetup
CHECK_RESULT $? 0 0 "卸载 veritysetup 失败"
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-30
# @License : Mulan PSL v2
# @Desc : 测试使用 veritysetup 导出 dm-verity 设备哈希树元数据的功能。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试veritysetup的dump功能"
LOG_INFO "步骤1检查veritysetup软件包是否在yum源中"
if ! dnf list available veritysetup 2>/dev/null | grep -q veritysetup; then
LOG_ERROR "yum源中未找到veritysetup软件包"
exit 255
fi
LOG_INFO "步骤2检查当前环境是否已安装veritysetup"
if rpm -q veritysetup >/dev/null 2>&1; then
LOG_INFO "veritysetup已安装标记为需要保持安装状态"
KEEP_INSTALLED=true
else
LOG_INFO "veritysetup未安装将在测试过程中安装"
KEEP_INSTALLED=false
fi
LOG_INFO "步骤3检查veritysetup命令是否支持dump参数"
if ! veritysetup --help 2>&1 | grep -q "\-\-dump"; then
LOG_ERROR "veritysetup命令不支持dump参数"
exit 255
fi
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "步骤4安装veritysetup软件包"
dnf install -y veritysetup
CHECK_RESULT $? 0 0 "安装veritysetup失败"
fi
LOG_INFO "步骤5创建测试用的虚拟设备文件"
dd if=/dev/zero of=test_device.img bs=1M count=10 status=none
dd if=/dev/zero of=test_hash.img bs=1M count=1 status=none
LOG_INFO "步骤6格式化虚拟设备并创建文件系统"
mkfs.ext4 test_device.img >/dev/null 2>&1
CHECK_RESULT $? 0 0 "创建文件系统失败"
LOG_INFO "步骤7设置dm-verity设备"
veritysetup format test_device.img test_hash.img > verity_format_output.txt 2>&1
CHECK_RESULT $? 0 0 "veritysetup format失败"
ROOT_HASH=$(grep "Root hash:" verity_format_output.txt | awk "{print $3}")
CHECK_RESULT $? 0 0 "获取根哈希失败"
LOG_INFO "步骤8验证dm-verity设备"
veritysetup verify test_device.img test_hash.img $ROOT_HASH >/dev/null 2>&1
CHECK_RESULT $? 0 0 "veritysetup verify失败"
LOG_INFO "步骤9创建dm-verity设备"
veritysetup create test_verity test_device.img test_hash.img $ROOT_HASH
CHECK_RESULT $? 0 0 "创建dm-verity设备失败"
LOG_INFO "步骤10测试dump功能"
veritysetup dump /dev/mapper/test_verity > dump_output.txt 2>&1
CHECK_RESULT $? 0 0 "veritysetup dump失败"
LOG_INFO "步骤11验证dump输出内容"
grep -q "superblock" dump_output.txt
CHECK_RESULT $? 0 0 "dump输出中未找到superblock信息"
grep -q "data block size" dump_output.txt
CHECK_RESULT $? 0 0 "dump输出中未找到数据块大小信息"
LOG_INFO "步骤12清理测试设备"
veritysetup remove test_verity
CHECK_RESULT $? 0 0 "删除dm-verity设备失败"
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "步骤13卸载veritysetup软件包"
dnf remove -y veritysetup
CHECK_RESULT $? 0 0 "卸载veritysetup失败"
fi
LOG_INFO "步骤14清理临时文件"
rm -f test_device.img test_hash.img verity_format_output.txt dump_output.txt
LOG_INFO "测试完成veritysetup dump功能测试成功"
}
main "$@"

View File

@@ -1,137 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-29
# @License : Mulan PSL v2
# @Desc : 测试使用 veritysetup 对块设备进行 dm-verity 格式化(创建哈希树)的功能。
# ############################################
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 expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -eq $expect ]; then
LOG_INFO "$message 成功"
else
LOG_ERROR "$message 失败"
exit $actual
fi
else
if [ $actual -ne $expect ]; then
LOG_INFO "$message 成功"
else
LOG_ERROR "$message 失败"
exit $actual
fi
fi
}
# 定义SSH_CMD函数虽然题目说无需定义但为可执行性保留定义
SSH_CMD() {
local cmd=$1
local ip=$2
local password=$3
local user=$4
sshpass -p $password ssh -o StrictHostKeyChecking=no $user@$ip "$cmd"
}
# 环境变量设置(假设这些变量已定义,这里为示例定义)
NODE2_IPV4="192.168.1.2"
NODE2_PASSWORD="password"
NODE2_USER="root"
# 软件包名称
PACKAGE_NAME="cryptsetup"
# 步骤1检查软件包是否在yum源中
LOG_INFO "步骤1检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
# 步骤2检查环境是否已安装软件包
LOG_INFO "步骤2检查环境是否已安装软件包"
INSTALLED=false
rpm -q $PACKAGE_NAME &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
INSTALLED=true
else
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检查 veritysetup 命令是否支持 format 参数
LOG_INFO "步骤4检查 veritysetup 命令是否支持 format 参数"
veritysetup --help 2>&1 | grep -q "format"
if [ $? -ne 0 ]; then
LOG_ERROR "veritysetup 命令不支持 format 参数"
exit 255
fi
# 步骤5创建测试用的块设备文件
LOG_INFO "步骤5创建测试用的块设备文件"
TEST_DEVICE="/tmp/test_verity_device.img"
dd if=/dev/zero of=$TEST_DEVICE bs=1M count=100 &> /dev/null
CHECK_RESULT $? 0 0 "创建测试块设备文件"
LOOP_DEVICE=$(losetup -f)
losetup $LOOP_DEVICE $TEST_DEVICE
CHECK_RESULT $? 0 0 "设置循环设备"
# 步骤6使用 veritysetup 对块设备进行 dm-verity 格式化
LOG_INFO "步骤6使用 veritysetup 对块设备进行 dm-verity 格式化"
veritysetup format $LOOP_DEVICE $LOOP_DEVICE --hash-offset=100M
CHECK_RESULT $? 0 0 "veritysetup 格式化块设备"
# 步骤7验证格式化结果
LOG_INFO "步骤7验证格式化结果"
veritysetup verify $LOOP_DEVICE $LOOP_DEVICE --hash-offset=100M
CHECK_RESULT $? 0 0 "验证 dm-verity 格式化结果"
# 步骤8清理测试环境
LOG_INFO "步骤8清理测试环境"
losetup -d $LOOP_DEVICE
CHECK_RESULT $? 0 0 "卸载循环设备"
rm -f $TEST_DEVICE
CHECK_RESULT $? 0 0 "删除测试块设备文件"
# 步骤9如果测试前未安装软件包则卸载软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤9卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,108 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-30
# @License : Mulan PSL v2
# @Desc : 测试获取 veritysetup 命令行工具帮助信息的功能。
# ############################################
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="cryptsetup"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在$PACKAGE_NAME软件包"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
LOG_ERROR "yum源中不存在$PACKAGE_NAME软件包"
exit 255
fi
# 检查软件包是否已安装
LOG_INFO "检查$PACKAGE_NAME软件包是否已安装"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
LOG_INFO "$PACKAGE_NAME软件包已安装"
INSTALLED_BEFORE=true
else
LOG_INFO "$PACKAGE_NAME软件包未安装"
INSTALLED_BEFORE=false
fi
# 如果未安装,则安装软件包
if [[ "$INSTALLED_BEFORE" == "false" ]]; then
LOG_INFO "安装$PACKAGE_NAME软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME软件包失败"
fi
# 检查veritysetup命令是否存在
LOG_INFO "检查veritysetup命令是否存在"
command -v veritysetup > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
LOG_ERROR "veritysetup命令不存在"
if [[ "$INSTALLED_BEFORE" == "false" ]]; then
LOG_INFO "卸载$PACKAGE_NAME软件包"
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 测试veritysetup命令的help参数
LOG_INFO "测试veritysetup命令的help参数"
veritysetup --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "veritysetup --help命令执行失败"
# 测试veritysetup命令的-h参数
LOG_INFO "测试veritysetup命令的-h参数"
veritysetup -h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "veritysetup -h命令执行失败"
# 测试veritysetup命令的无效参数
LOG_INFO "测试veritysetup命令的无效参数"
veritysetup --invalid-param > /dev/null 2>&1
if [[ $? -ne 255 ]] && [[ $? -ne 1 ]]; then
LOG_ERROR "veritysetup命令对无效参数处理异常"
exit 255
fi
# 测试veritysetup命令的无效参数短选项
LOG_INFO "测试veritysetup命令的无效参数短选项"
veritysetup -x > /dev/null 2>&1
if [[ $? -ne 255 ]] && [[ $? -ne 1 ]]; then
LOG_ERROR "veritysetup命令对无效短参数处理异常"
exit 255
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [[ "$INSTALLED_BEFORE" == "false" ]]; then
LOG_INFO "清理环境:卸载$PACKAGE_NAME软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME软件包失败"
else
LOG_INFO "保持$PACKAGE_NAME软件包安装状态"
fi
LOG_INFO "测试获取veritysetup命令行工具帮助信息的功能完成"
}
main "$@"

View File

@@ -1,135 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-29
# @License : Mulan PSL v2
# @Desc : 测试使用 veritysetup 打开一个已格式化的 dm-verity 设备的功能。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境预检查确认是否已安装veritysetup
LOG_INFO "开始测试使用veritysetup打开一个已格式化的dm-verity设备的功能"
# 检查是否已安装veritysetup
if command -v veritysetup >/dev/null 2>&1; then
LOG_INFO "veritysetup已安装测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "veritysetup未安装将在测试过程中安装并在结束后卸载"
already_installed=0
fi
# 检查yum源中是否有veritysetup软件包
LOG_INFO "检查yum源中是否有veritysetup软件包"
if ! dnf list available veritysetup >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到veritysetup软件包"
exit 255
fi
# 如果未安装则安装veritysetup
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装veritysetup软件包"
dnf install -y veritysetup
CHECK_RESULT $? 0 0 "安装veritysetup失败"
fi
# 检查veritysetup命令是否支持所需参数
LOG_INFO "检查veritysetup命令是否支持打开设备参数"
veritysetup --help 2>&1 | grep -q "\-\-format"
CHECK_RESULT $? 0 0 "veritysetup不支持--format参数"
veritysetup --help 2>&1 | grep -q "\-\-data\-block\-size"
CHECK_RESULT $? 0 0 "veritysetup不支持--data-block-size参数"
veritysetup --help 2>&1 | grep -q "\-\-hash\-block\-size"
CHECK_RESULT $? 0 0 "veritysetup不支持--hash-block-size参数"
veritysetup --help 2>&1 | grep -q "\-\-hash\-offset"
CHECK_RESULT $? 0 0 "veritysetup不支持--hash-offset参数"
# 准备测试环境:创建测试文件和数据块
LOG_INFO "准备测试环境:创建测试文件"
test_data_file="/tmp/test_data.img"
test_hash_file="/tmp/test_hash.img"
test_device_name="verity_test"
# 清理可能存在的旧测试文件
if [ -f "$test_data_file" ]; then
rm -f "$test_data_file"
fi
if [ -f "$test_hash_file" ]; then
rm -f "$test_hash_file"
fi
# 创建测试数据文件100MB
LOG_INFO "创建测试数据文件"
dd if=/dev/zero of="$test_data_file" bs=1M count=100 status=none
CHECK_RESULT $? 0 0 "创建测试数据文件失败"
# 格式化数据文件为ext4文件系统
LOG_INFO "格式化测试数据文件为ext4文件系统"
mkfs.ext4 -F "$test_data_file" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "格式化测试数据文件失败"
# 创建哈希文件
LOG_INFO "创建哈希文件"
veritysetup format "$test_data_file" "$test_hash_file" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "创建哈希文件失败"
# 获取哈希文件大小
hash_size=$(stat -c%s "$test_hash_file")
CHECK_RESULT $? 0 0 "获取哈希文件大小失败"
# 计算数据块大小假设为4096
data_block_size=4096
hash_block_size=4096
# 计算哈希偏移量
hash_offset=$((100 * 1024 * 1024)) # 数据文件大小为100MB
# 测试步骤打开dm-verity设备
LOG_INFO "测试步骤使用veritysetup打开dm-verity设备"
veritysetup open "$test_data_file" "$test_device_name" "$test_hash_file" \
--hash-offset="$hash_offset" \
--data-block-size="$data_block_size" \
--hash-block-size="$hash_block_size"
CHECK_RESULT $? 0 0 "打开dm-verity设备失败"
# 验证设备是否成功创建
LOG_INFO "验证dm-verity设备是否成功创建"
dmsetup status "$test_device_name" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "dm-verity设备创建失败"
# 测试步骤关闭dm-verity设备
LOG_INFO "测试步骤关闭dm-verity设备"
veritysetup close "$test_device_name"
CHECK_RESULT $? 0 0 "关闭dm-verity设备失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f "$test_data_file" "$test_hash_file"
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试开始时未安装veritysetup则在测试结束后卸载
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载veritysetup软件包"
dnf remove -y veritysetup
CHECK_RESULT $? 0 0 "卸载veritysetup失败"
else
LOG_INFO "保持veritysetup安装状态"
fi
LOG_INFO "测试完成veritysetup打开dm-verity设备功能测试成功"
}
main "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-29
# @License : Mulan PSL v2
# @Desc : 测试使用 veritysetup 查询已打开 dm-verity 设备状态信息的功能。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 veritysetup
LOG_INFO "检查是否已安装 veritysetup 软件包"
rpm -q veritysetup > /dev/null 2>&1
VERITYSETUP_INSTALLED=$?
# 初始化环境状态变量
INITIAL_INSTALL_STATE=$VERITYSETUP_INSTALLED
NEED_UNINSTALL=0
# 如果未安装,则进行安装
if [ $VERITYSETUP_INSTALLED -ne 0 ]; then
LOG_INFO "veritysetup 未安装,开始安装"
# 检查 yum 源中是否有 veritysetup 软件包
LOG_INFO "检查 yum 源中是否有 veritysetup 软件包"
dnf list available veritysetup > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum 源中没有 veritysetup 软件包"
# 安装 veritysetup
LOG_INFO "使用 dnf 安装 veritysetup"
dnf install -y veritysetup > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 veritysetup 失败"
NEED_UNINSTALL=1
LOG_INFO "veritysetup 安装成功"
else
LOG_INFO "veritysetup 已安装,跳过安装步骤"
fi
# 验证 veritysetup 命令是否可用
LOG_INFO "验证 veritysetup 命令是否可用"
which veritysetup > /dev/null 2>&1
CHECK_RESULT $? 0 0 "veritysetup 命令不可用"
# 测试 veritysetup 查询已打开 dm-verity 设备状态信息的功能
LOG_INFO "测试 veritysetup 查询已打开 dm-verity 设备状态信息的功能"
# 检查 veritysetup 是否支持 status 参数
LOG_INFO "检查 veritysetup 是否支持 status 参数"
veritysetup --help 2>&1 | grep -q "\-\-status"
CHECK_RESULT $? 0 0 "veritysetup 不支持 status 参数"
# 创建一个测试用的虚拟设备
LOG_INFO "创建测试用的虚拟设备"
dd if=/dev/zero of=/tmp/test_device.img bs=1M count=10 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "创建虚拟设备失败"
# 创建哈希设备
LOG_INFO "创建哈希设备"
LOOP_DEVICE=$(losetup -f)
losetup $LOOP_DEVICE /tmp/test_device.img > /dev/null 2>&1
CHECK_RESULT $? 0 0 "设置 loop 设备失败"
# 格式化设备
LOG_INFO "格式化设备"
mkfs.ext4 $LOOP_DEVICE > /dev/null 2>&1
CHECK_RESULT $? 0 0 "格式化设备失败"
# 创建 verity 设备
LOG_INFO "创建 verity 设备"
veritysetup format $LOOP_DEVICE $LOOP_DEVICE > /tmp/verity_format_output 2>&1
CHECK_RESULT $? 0 0 "创建 verity 设备失败"
# 提取根哈希
ROOT_HASH=$(grep "Root hash" /tmp/verity_format_output | awk "{print $3}")
# 打开 verity 设备
LOG_INFO "打开 verity 设备"
veritysetup open $LOOP_DEVICE test_verity_device $LOOP_DEVICE $ROOT_HASH > /dev/null 2>&1
CHECK_RESULT $? 0 0 "打开 verity 设备失败"
# 查询已打开 dm-verity 设备状态信息
LOG_INFO "查询已打开 dm-verity 设备状态信息"
veritysetup status test_verity_device > /tmp/verity_status_output 2>&1
CHECK_RESULT $? 0 0 "查询 verity 设备状态失败"
# 验证状态输出
LOG_INFO "验证状态输出内容"
grep -q "status:" /tmp/verity_status_output
CHECK_RESULT $? 0 0 "状态输出不符合预期"
# 关闭 verity 设备
LOG_INFO "关闭 verity 设备"
veritysetup close test_verity_device > /dev/null 2>&1
CHECK_RESULT $? 0 0 "关闭 verity 设备失败"
# 清理临时文件
LOG_INFO "清理临时文件"
losetup -d $LOOP_DEVICE > /dev/null 2>&1
rm -f /tmp/test_device.img /tmp/verity_format_output /tmp/verity_status_output
# 根据初始安装状态决定是否卸载
if [ $NEED_UNINSTALL -eq 1 ] && [ $INITIAL_INSTALL_STATE -ne 0 ]; then
LOG_INFO "卸载 veritysetup 软件包"
dnf remove -y veritysetup > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载 veritysetup 失败"
LOG_INFO "veritysetup 卸载成功"
else
LOG_INFO "保持 veritysetup 安装状态"
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-30
# @License : Mulan PSL v2
# @Desc : 测试使用 veritysetup 验证 dm-verity 设备数据完整性的功能。
# ############################################
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 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 ip=$2
local password=$3
local user=$4
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$user"@"$ip" "$cmd"
}
# 测试脚本主逻辑
LOG_INFO "开始测试 veritysetup 验证 dm-verity 设备数据完整性的功能"
# 检查是否已安装 veritysetup
LOG_INFO "检查 veritysetup 是否已安装"
if command -v veritysetup &> /dev/null; then
LOG_INFO "veritysetup 已安装,测试结束后将保持安装状态"
installed=true
else
LOG_INFO "veritysetup 未安装,将在测试过程中安装"
installed=false
fi
# 检查 yum 源中是否有 veritysetup 软件包
LOG_INFO "检查 yum 源中是否有 veritysetup 软件包"
if ! dnf list available veritysetup &> /dev/null; then
LOG_ERROR "yum 源中没有 veritysetup 软件包"
exit 255
fi
# 如果未安装,则安装 veritysetup
if [ "$installed" = false ]; then
LOG_INFO "安装 veritysetup 软件包"
dnf install -y veritysetup
CHECK_RESULT $? 0 0 "安装 veritysetup 失败"
fi
# 检查 veritysetup 命令是否支持 verify 参数
LOG_INFO "检查 veritysetup 命令是否支持 verify 参数"
if ! veritysetup --help 2>&1 | grep -q "\-\-verify"; then
LOG_ERROR "veritysetup 命令不支持 verify 参数"
exit 255
fi
# 创建测试文件
LOG_INFO "创建测试文件"
dd if=/dev/urandom of=/tmp/test_data.bin bs=1M count=10 status=none
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 生成哈希树
LOG_INFO "生成哈希树"
veritysetup format /tmp/test_data.bin /tmp/test_hash.bin
CHECK_RESULT $? 0 0 "生成哈希树失败"
# 验证数据完整性
LOG_INFO "验证数据完整性"
veritysetup verify /tmp/test_data.bin /tmp/test_hash.bin $(veritysetup format /tmp/test_data.bin /tmp/test_hash.bin 2>&1 | grep "Root hash" | awk "{print $3}")
CHECK_RESULT $? 0 0 "验证数据完整性失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f /tmp/test_data.bin /tmp/test_hash.bin
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装,则卸载 veritysetup
if [ "$installed" = false ]; then
LOG_INFO "卸载 veritysetup 软件包"
dnf remove -y veritysetup
CHECK_RESULT $? 0 0 "卸载 veritysetup 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,113 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : 测试culmus-simple-clm-fonts字体在支持的应用如LibreOffice Writer中的基本使用功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
FONT_PACKAGE="culmus-simple-clm-fonts"
TEST_APP="libreoffice"
TEST_DOCUMENT="test_font.odt"
TEST_TEXT="测试culmus-simple-clm-fonts字体"
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "检查软件包是否在yum源中"
dnf list available $FONT_PACKAGE &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $FONT_PACKAGE 不在yum源中"
exit 255
fi
# 步骤2: 检查是否已安装字体包
LOG_INFO "检查是否已安装字体包"
rpm -q $FONT_PACKAGE &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "字体包已安装,标记为已安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "字体包未安装,标记为未安装状态"
ALREADY_INSTALLED=0
fi
# 步骤3: 如果未安装,则安装字体包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装字体包"
dnf install -y $FONT_PACKAGE
CHECK_RESULT $? 0 0 "安装字体包失败"
fi
# 步骤4: 检查是否已安装LibreOffice
LOG_INFO "检查是否已安装LibreOffice"
rpm -q $TEST_APP-writer &>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "LibreOffice Writer未安装尝试安装"
dnf install -y $TEST_APP-writer
CHECK_RESULT $? 0 0 "安装LibreOffice Writer失败"
TEMP_INSTALL_APP=1
else
TEMP_INSTALL_APP=0
fi
# 步骤5: 验证字体是否可用
LOG_INFO "验证字体是否可用"
fc-list | grep -i "culmus" &>/dev/null
CHECK_RESULT $? 0 0 "culmus字体未找到"
# 步骤6: 创建测试文档
LOG_INFO "创建测试文档"
cat > $TEST_DOCUMENT << EOF
<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0">
<office:body>
<office:text>
<text:p text:style-name="Standard">$TEST_TEXT</text:p>
</office:text>
</office:body>
</office:document-content>
EOF
CHECK_RESULT $? 0 0 "创建测试文档失败"
# 步骤7: 使用LibreOffice打开文档模拟使用字体
LOG_INFO "使用LibreOffice验证字体可用性"
soffice --headless --convert-to pdf $TEST_DOCUMENT &>/dev/null
CHECK_RESULT $? 0 0 "LibreOffice转换文档失败"
# 步骤8: 清理临时文件
LOG_INFO "清理临时文件"
rm -f $TEST_DOCUMENT ${TEST_DOCUMENT%.*}.pdf
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 步骤9: 如果临时安装了LibreOffice则卸载
if [ $TEMP_INSTALL_APP -eq 1 ]; then
LOG_INFO "卸载临时安装的LibreOffice Writer"
dnf remove -y $TEST_APP-writer
CHECK_RESULT $? 0 0 "卸载LibreOffice Writer失败"
fi
# 步骤10: 如果最初未安装字体包,则卸载
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载字体包"
dnf remove -y $FONT_PACKAGE
CHECK_RESULT $? 0 0 "卸载字体包失败"
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-08
# @License : Mulan PSL v2
# @Desc : Check font cache update
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="google-droid-sans-fonts"
LOG_FILE="/tmp/font_cache_test.log"
# 清理日志文件
> "$LOG_FILE"
# 检查软件包是否在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 "检查软件包是否已安装"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包已安装,标记为已安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包未安装,标记为未安装状态"
ALREADY_INSTALLED=0
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装软件包: $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 检查fc-cache命令是否存在
LOG_INFO "检查fc-cache命令是否存在"
if ! command -v fc-cache &>/dev/null; then
LOG_ERROR "fc-cache命令不存在"
exit 255
fi
# 检查fc-cache命令是否支持-v参数
LOG_INFO "检查fc-cache命令是否支持-v参数"
fc-cache -v --help &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "fc-cache命令不支持-v参数"
exit 255
fi
# 执行字体缓存更新测试
LOG_INFO "执行字体缓存更新测试"
fc-cache -v -f
CHECK_RESULT $? 0 0 "字体缓存更新失败"
# 验证字体缓存是否更新成功
LOG_INFO "验证字体缓存是否更新成功"
if fc-list | grep -i "droid sans" &>/dev/null; then
LOG_INFO "字体缓存更新成功Droid Sans字体已加载"
CHECK_RESULT $? 0 0 "字体缓存验证失败"
else
LOG_ERROR "字体缓存更新失败未找到Droid Sans字体"
CHECK_RESULT $? 0 1 "字体缓存验证失败"
fi
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载软件包: $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包失败"
# 再次清理字体缓存
LOG_INFO "清理字体缓存"
fc-cache -v -f
CHECK_RESULT $? 0 0 "清理字体缓存失败"
else
LOG_INFO "保持软件包安装状态"
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-08
# @License : Mulan PSL v2
# @Desc : Verify font files exist
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装google-droid-sans-fonts字体包
LOG_INFO "检查系统是否已安装google-droid-sans-fonts字体包"
if dnf list installed google-droid-sans-fonts &>/dev/null; then
LOG_INFO "google-droid-sans-fonts已安装测试结束后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "google-droid-sans-fonts未安装将在测试中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否存在google-droid-sans-fonts软件包"
if ! dnf list available google-droid-sans-fonts &>/dev/null; then
LOG_ERROR "yum源中未找到google-droid-sans-fonts软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "开始安装google-droid-sans-fonts软件包"
dnf install -y google-droid-sans-fonts
CHECK_RESULT $? 0 0 "安装google-droid-sans-fonts失败"
fi
# 验证字体文件是否存在
LOG_INFO "验证google-droid-sans-fonts字体文件是否存在"
FONT_FILES=(
"/usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf"
"/usr/share/fonts/google-droid-sans-fonts/DroidSans-Bold.ttf"
)
for font_file in "${FONT_FILES[@]}"; do
if [ -f "${font_file}" ]; then
LOG_INFO "字体文件 ${font_file} 存在"
else
LOG_ERROR "字体文件 ${font_file} 不存在"
exit 1
fi
done
LOG_INFO "所有字体文件验证通过"
# 清理环境:如果测试前未安装,则卸载软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "清理环境卸载google-droid-sans-fonts软件包"
dnf remove -y google-droid-sans-fonts
CHECK_RESULT $? 0 0 "卸载google-droid-sans-fonts失败"
LOG_INFO "环境已恢复"
fi
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : Test font in application
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test font in application"
# 检查是否已安装google-droid-sans-fonts
LOG_INFO "检查google-droid-sans-fonts是否已安装"
if rpm -q google-droid-sans-fonts &>/dev/null; then
LOG_INFO "google-droid-sans-fonts已安装"
already_installed=true
else
LOG_INFO "google-droid-sans-fonts未安装"
already_installed=false
fi
# 检查yum源中是否有google-droid-sans-fonts软件包
LOG_INFO "检查yum源中是否存在google-droid-sans-fonts软件包"
if ! dnf list available google-droid-sans-fonts &>/dev/null; then
LOG_ERROR "yum源中未找到google-droid-sans-fonts软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "开始安装google-droid-sans-fonts"
dnf install -y google-droid-sans-fonts
CHECK_RESULT $? 0 0 "安装google-droid-sans-fonts失败"
LOG_INFO "google-droid-sans-fonts安装成功"
fi
# 测试字体在应用中的使用
LOG_INFO "测试字体在应用中的使用"
# 检查fc-list命令是否存在
if ! command -v fc-list &>/dev/null; then
LOG_ERROR "fc-list命令不存在"
exit 255
fi
# 检查fc-list是否支持--format参数
if ! fc-list --help | grep -q -- "--format"; then
LOG_ERROR "fc-list命令不支持--format参数"
exit 255
fi
# 使用fc-list检查字体是否可用
LOG_INFO "使用fc-list检查google-droid-sans-fonts字体"
fc-list --format="%{family}\n" | grep -i "droid sans" >/dev/null
CHECK_RESULT $? 0 0 "google-droid-sans-fonts字体未正确安装或不可用"
# 测试字体文件是否存在
LOG_INFO "检查字体文件是否存在"
if [ -f /usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf ]; then
LOG_INFO "DroidSans.ttf字体文件存在"
else
LOG_ERROR "DroidSans.ttf字体文件不存在"
exit 1
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境卸载google-droid-sans-fonts"
dnf remove -y google-droid-sans-fonts
CHECK_RESULT $? 0 0 "卸载google-droid-sans-fonts失败"
LOG_INFO "google-droid-sans-fonts卸载成功"
else
LOG_INFO "测试前已安装,保持安装状态"
fi
LOG_INFO "测试完成Test font in application"
}
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 : 2026-03-08
# @License : Mulan PSL v2
# @Desc : List available font files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装google-droid-sans-fonts软件包
LOG_INFO "检查google-droid-sans-fonts软件包是否已安装"
rpm -q google-droid-sans-fonts > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "google-droid-sans-fonts软件包已安装"
INSTALLED_FLAG=1
else
LOG_INFO "google-droid-sans-fonts软件包未安装"
INSTALLED_FLAG=0
fi
# 检查yum源中是否存在google-droid-sans-fonts软件包
LOG_INFO "检查yum源中是否存在google-droid-sans-fonts软件包"
dnf list available google-droid-sans-fonts > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在google-droid-sans-fonts软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "安装google-droid-sans-fonts软件包"
dnf install -y google-droid-sans-fonts > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装google-droid-sans-fonts软件包失败"
LOG_INFO "google-droid-sans-fonts软件包安装成功"
fi
# 测试list-fonts功能
LOG_INFO "测试list-fonts功能"
fc-list | grep -i "droid" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "list-fonts功能测试失败未找到Droid字体"
# 清理环境:如果测试前未安装,则卸载软件包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "卸载google-droid-sans-fonts软件包"
dnf remove -y google-droid-sans-fonts > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载google-droid-sans-fonts软件包失败"
LOG_INFO "google-droid-sans-fonts软件包卸载成功"
else
LOG_INFO "测试前已安装google-droid-sans-fonts软件包保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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 : Check if jdepend-javadoc is installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试检查jdepend-javadoc是否安装"
# 检查yum源中是否存在jdepend-javadoc包
LOG_INFO "步骤1检查yum源中是否存在jdepend-javadoc软件包"
if ! dnf list available jdepend-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到jdepend-javadoc软件包"
exit 255
fi
# 检查是否已安装jdepend-javadoc
LOG_INFO "步骤2检查当前系统是否已安装jdepend-javadoc"
if rpm -q jdepend-javadoc &>/dev/null; then
LOG_INFO "jdepend-javadoc已安装记录安装状态"
INSTALLED=true
else
LOG_INFO "jdepend-javadoc未安装将进行安装测试"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装jdepend-javadoc软件包"
dnf install -y jdepend-javadoc
CHECK_RESULT $? 0 0 "安装jdepend-javadoc失败"
fi
# 验证安装
LOG_INFO "步骤4验证jdepend-javadoc安装"
rpm -q jdepend-javadoc
CHECK_RESULT $? 0 0 "验证jdepend-javadoc安装失败"
# 测试jdepend-javadoc命令是否可用
LOG_INFO "步骤5测试jdepend-javadoc命令是否可用"
if ! command -v jdepend-javadoc &>/dev/null; then
LOG_ERROR "jdepend-javadoc命令未找到"
exit 255
fi
# 测试jdepend-javadoc命令基本功能
LOG_INFO "步骤6测试jdepend-javadoc命令基本功能"
jdepend-javadoc --help &>/dev/null
CHECK_RESULT $? 0 0 "jdepend-javadoc命令执行失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤7清理环境卸载测试安装的jdepend-javadoc"
dnf remove -y jdepend-javadoc
CHECK_RESULT $? 0 0 "卸载jdepend-javadoc失败"
# 验证卸载
LOG_INFO "步骤8验证jdepend-javadoc已卸载"
if rpm -q jdepend-javadoc &>/dev/null; then
LOG_ERROR "jdepend-javadoc卸载失败"
exit 1
fi
else
LOG_INFO "步骤7测试前已安装jdepend-javadoc保持安装状态"
fi
LOG_INFO "测试完成jdepend-javadoc安装检查通过"
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-06
# @License : Mulan PSL v2
# @Desc : Test documentation generation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装jdepend-javadoc软件包
LOG_INFO "检查是否已安装jdepend-javadoc软件包"
if dnf list installed jdepend-javadoc &>/dev/null; then
LOG_INFO "jdepend-javadoc软件包已安装"
installed=true
else
LOG_INFO "jdepend-javadoc软件包未安装"
installed=false
fi
# 检查yum源中是否存在jdepend-javadoc软件包
LOG_INFO "检查yum源中是否存在jdepend-javadoc软件包"
if ! dnf list available jdepend-javadoc &>/dev/null; then
LOG_ERROR "yum源中不存在jdepend-javadoc软件包"
exit 255
fi
# 如果未安装则安装jdepend-javadoc软件包
if [ "$installed" = false ]; then
LOG_INFO "安装jdepend-javadoc软件包"
dnf install -y jdepend-javadoc
CHECK_RESULT $? 0 0 "安装jdepend-javadoc失败"
fi
# 测试文档生成功能
LOG_INFO "测试文档生成功能"
javadoc -doclet JDepend -docletpath /usr/share/java/jdepend.jar -sourcepath . -subpackages .
CHECK_RESULT $? 0 0 "文档生成失败"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载jdepend-javadoc软件包"
dnf remove -y jdepend-javadoc
CHECK_RESULT $? 0 0 "卸载jdepend-javadoc失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,122 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : Test generating Javadoc for a sample Java project
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试为示例Java项目生成Javadoc"
# 定义软件包名称和命令
PACKAGE_NAME="jdepend-javadoc"
COMMAND="jdepend-javadoc"
SAMPLE_PROJECT_PATH="/tmp/sample_java_project"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在软件包 ${PACKAGE_NAME}"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 检查环境是否已安装软件包
LOG_INFO "检查环境是否已安装软件包 ${PACKAGE_NAME}"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将在测试步骤中安装"
INSTALLED_BEFORE_TEST=false
fi
# 如果未安装,则安装软件包
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 检查命令是否存在
LOG_INFO "检查命令 ${COMMAND} 是否存在"
if ! command -v ${COMMAND} &>/dev/null; then
LOG_ERROR "命令 ${COMMAND} 不存在"
exit 255
fi
# 检查命令支持的参数
LOG_INFO "检查命令 ${COMMAND} 是否支持参数 -h"
${COMMAND} -h &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${COMMAND} 不支持参数 -h"
exit 255
fi
# 创建示例Java项目目录
LOG_INFO "创建示例Java项目目录 ${SAMPLE_PROJECT_PATH}"
mkdir -p ${SAMPLE_PROJECT_PATH}
CHECK_RESULT $? 0 0 "创建目录 ${SAMPLE_PROJECT_PATH} 失败"
# 创建示例Java源文件
LOG_INFO "创建示例Java源文件"
cat > ${SAMPLE_PROJECT_PATH}/SampleClass.java << "EOF"
/**
* 这是一个示例Java类。
*/
public class SampleClass {
/**
* 示例方法。
* @param name 名称
* @return 拼接后的字符串
*/
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
EOF
CHECK_RESULT $? 0 0 "创建示例Java源文件失败"
# 生成Javadoc
LOG_INFO "为示例Java项目生成Javadoc"
${COMMAND} -d ${SAMPLE_PROJECT_PATH}/docs ${SAMPLE_PROJECT_PATH}/SampleClass.java
CHECK_RESULT $? 0 0 "生成Javadoc失败"
# 检查生成的Javadoc文件是否存在
LOG_INFO "检查生成的Javadoc文件是否存在"
if [ -f "${SAMPLE_PROJECT_PATH}/docs/index.html" ]; then
LOG_INFO "Javadoc生成成功"
else
LOG_ERROR "Javadoc生成失败未找到 index.html 文件"
exit 1
fi
# 清理测试环境
LOG_INFO "清理测试环境"
rm -rf ${SAMPLE_PROJECT_PATH}
CHECK_RESULT $? 0 0 "清理测试环境失败"
# 如果测试前未安装软件包,则卸载
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
fi
LOG_INFO "测试完成为示例Java项目生成Javadoc"
}
main "$@"

View File

@@ -1,139 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : Test help/usage output of the tool
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="jdepend-javadoc"
COMMAND="jdepend-javadoc"
EXPECTED_HELP_PATTERN="用法:\|用法:\|Usage:\|usage:"
# 检查yum源中是否存在指定的软件包
check_package_in_repo() {
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() {
LOG_INFO "检查软件包是否已安装: $PACKAGE_NAME"
rpm -q "$PACKAGE_NAME" &>/dev/null
return $?
}
# 安装软件包
install_package() {
LOG_INFO "开始安装软件包: $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包失败"
LOG_INFO "软件包安装成功: $PACKAGE_NAME"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "开始卸载软件包: $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包失败"
LOG_INFO "软件包卸载成功: $PACKAGE_NAME"
}
# 测试帮助/使用说明输出
test_help_output() {
LOG_INFO "测试帮助/使用说明输出"
# 检查命令是否存在
if ! command -v "$COMMAND" &>/dev/null; then
LOG_ERROR "命令不存在: $COMMAND"
exit 255
fi
# 尝试获取帮助信息
LOG_INFO "执行命令获取帮助信息: $COMMAND --help"
help_output=$($COMMAND --help 2>&1)
help_exit_code=$?
# 如果--help参数不支持尝试-h参数
if [ $help_exit_code -ne 0 ]; then
LOG_INFO "--help参数不支持尝试-h参数"
help_output=$($COMMAND -h 2>&1)
help_exit_code=$?
fi
# 如果-h参数也不支持尝试不带参数
if [ $help_exit_code -ne 0 ]; then
LOG_INFO "-h参数不支持尝试不带参数"
help_output=$($COMMAND 2>&1)
help_exit_code=$?
fi
# 检查命令执行是否成功
if [ $help_exit_code -eq 255 ]; then
LOG_ERROR "命令参数不存在或不支持"
exit 255
fi
# 检查输出中是否包含帮助信息
LOG_INFO "检查输出中是否包含帮助信息"
echo "$help_output" | grep -q -E "$EXPECTED_HELP_PATTERN"
CHECK_RESULT $? 0 0 "帮助信息输出不符合预期"
LOG_INFO "帮助信息输出测试通过"
}
# 主函数
main() {
LOG_INFO "开始测试: Test help/usage output of the tool"
# 检查yum源中是否存在软件包
check_package_in_repo
# 检查软件包是否已安装
if check_package_installed; then
LOG_INFO "软件包已安装,测试结束后保持安装状态"
was_installed=true
else
LOG_INFO "软件包未安装,将在测试前安装"
was_installed=false
install_package
fi
# 执行测试
test_help_output
# 环境清理
LOG_INFO "开始环境清理"
if [ "$was_installed" = "false" ]; then
uninstall_package
else
LOG_INFO "软件包原本已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
# 执行主函数
main
}
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-03-17
# @License : Mulan PSL v2
# @Desc : Test installation of jdepend-javadoc package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test installation of jdepend-javadoc package"
LOG_INFO "步骤1检查是否已安装jdepend-javadoc包"
if dnf list installed jdepend-javadoc &>/dev/null; then
LOG_INFO "jdepend-javadoc已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "jdepend-javadoc未安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否有jdepend-javadoc包"
if ! dnf list available jdepend-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到jdepend-javadoc包"
exit 255
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装jdepend-javadoc包"
dnf install -y jdepend-javadoc
CHECK_RESULT $? 0 0 "安装jdepend-javadoc包失败"
LOG_INFO "jdepend-javadoc包安装成功"
fi
LOG_INFO "步骤4验证jdepend-javadoc命令是否可用"
if ! command -v jdepend &>/dev/null; then
LOG_ERROR "jdepend命令不存在"
exit 255
fi
LOG_INFO "步骤5测试jdepend命令基本功能"
jdepend --help &>/dev/null
CHECK_RESULT $? 0 0 "jdepend命令参数不支持或执行失败"
LOG_INFO "步骤6清理环境"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载jdepend-javadoc包"
dnf remove -y jdepend-javadoc
CHECK_RESULT $? 0 0 "卸载jdepend-javadoc包失败"
LOG_INFO "jdepend-javadoc包卸载成功"
else
LOG_INFO "保持jdepend-javadoc包安装状态"
fi
LOG_INFO "测试完成Test installation of jdepend-javadoc package"
}
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-03-17
# @License : Mulan PSL v2
# @Desc : Test uninstallation of jdepend-javadoc package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试卸载jdepend-javadoc软件包"
# 定义软件包名称
PACKAGE_NAME="jdepend-javadoc"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在软件包$PACKAGE_NAME"
dnf list available "$PACKAGE_NAME" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 检查当前环境是否已安装该软件包
LOG_INFO "检查当前环境是否已安装软件包:$PACKAGE_NAME"
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
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 失败"
fi
# 测试卸载软件包
LOG_INFO "测试卸载软件包:$PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
# 验证软件包是否已卸载
LOG_INFO "验证软件包是否已卸载:$PACKAGE_NAME"
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 卸载失败"
exit 1
else
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
fi
# 环境恢复:如果测试前未安装,则重新安装以恢复环境
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "恢复环境:重新安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "恢复环境时安装软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "环境恢复:软件包 $PACKAGE_NAME 保持安装状态"
fi
LOG_INFO "测试完成卸载jdepend-javadoc软件包"
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : Test retrieving version information
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境初始化检查
LOG_INFO "开始执行测试:获取版本信息"
LOG_INFO "步骤1检查当前环境是否已安装jdepend-javadoc软件包"
rpm -q jdepend-javadoc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到jdepend-javadoc已安装标记为已存在状态"
EXISTING_INSTALL=1
else
LOG_INFO "未检测到jdepend-javadoc安装标记为未安装状态"
EXISTING_INSTALL=0
fi
# 检查软件包是否在yum源中可用
LOG_INFO "步骤2检查yum源中是否存在jdepend-javadoc软件包"
dnf list available jdepend-javadoc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jdepend-javadoc软件包"
exit 255
fi
# 如果未安装则执行安装
if [ $EXISTING_INSTALL -eq 0 ]; then
LOG_INFO "步骤3安装jdepend-javadoc软件包"
dnf install -y jdepend-javadoc
CHECK_RESULT $? 0 0 "安装jdepend-javadoc失败"
fi
# 测试获取版本信息功能
LOG_INFO "步骤4测试jdepend-javadoc版本信息获取"
jdepend-javadoc --version > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "尝试使用--version参数失败尝试使用-version参数"
jdepend-javadoc -version > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "jdepend-javadoc不支持--version或-version参数"
# 清理环境
if [ $EXISTING_INSTALL -eq 0 ]; then
LOG_INFO "清理环境卸载jdepend-javadoc软件包"
dnf remove -y jdepend-javadoc
fi
exit 255
fi
fi
# 验证版本信息输出格式
LOG_INFO "步骤5验证版本信息输出格式"
VERSION_OUTPUT=$(jdepend-javadoc --version 2>/dev/null || jdepend-javadoc -version 2>/dev/null)
if [ -z "$VERSION_OUTPUT" ]; then
LOG_ERROR "版本信息输出为空"
CHECK_RESULT 1 0 0 "版本信息输出验证失败"
else
LOG_INFO "获取到的版本信息:$VERSION_OUTPUT"
echo "$VERSION_OUTPUT" | grep -E "[0-9]+\.[0-9]+" > /dev/null
CHECK_RESULT $? 0 0 "版本信息格式不正确"
fi
# 环境清理
LOG_INFO "步骤6清理测试环境"
if [ $EXISTING_INSTALL -eq 0 ]; then
LOG_INFO "卸载测试安装的jdepend-javadoc软件包"
dnf remove -y jdepend-javadoc
CHECK_RESULT $? 0 0 "卸载jdepend-javadoc失败"
else
LOG_INFO "保持原有安装状态,不执行卸载"
fi
LOG_INFO "测试完成:版本信息获取功能验证成功"
}
main "$@"

View File

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

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : 测试在终端中执行`lxsession-help`命令能正常启动并显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装lxsession-help软件包
LOG_INFO "1. 检查lxsession-help软件包是否已安装"
rpm -q lxsession-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "lxsession-help软件包已安装测试结束后将保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "lxsession-help软件包未安装将在测试前安装并在测试后卸载"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有lxsession-help软件包
LOG_INFO "2. 检查yum源中是否存在lxsession-help软件包"
dnf list available lxsession-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到lxsession-help软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "3. 安装lxsession-help软件包"
dnf install -y lxsession-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装lxsession-help软件包失败"
fi
# 检查lxsession-help命令是否存在
LOG_INFO "4. 检查lxsession-help命令是否存在"
which lxsession-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "lxsession-help命令未找到"
exit 255
fi
# 测试lxsession-help命令的--help参数
LOG_INFO "5. 测试lxsession-help命令的--help参数"
lxsession-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "lxsession-help命令--help参数执行失败"
# 测试lxsession-help命令的-h参数
LOG_INFO "6. 测试lxsession-help命令的-h参数"
lxsession-help -h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "lxsession-help命令-h参数执行失败"
# 测试lxsession-help命令不带参数的情况
LOG_INFO "7. 测试lxsession-help命令不带参数的情况"
lxsession-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "lxsession-help命令不带参数执行失败"
# 测试lxsession-help命令显示帮助信息
LOG_INFO "8. 测试lxsession-help命令显示帮助信息"
lxsession-help --help | grep -i "usage" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "lxsession-help命令未显示帮助信息"
# 清理环境:如果测试前未安装,则卸载软件包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "9. 卸载lxsession-help软件包"
dnf remove -y lxsession-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载lxsession-help软件包失败"
else
LOG_INFO "9. 测试前已安装lxsession-help软件包保持安装状态"
fi
LOG_INFO "10. 测试完成,环境已恢复"
}
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 : 2026-03-03
# @License : Mulan PSL v2
# @Desc : 测试执行`lxsession-help --help`或`-h`选项能正确显示命令用法和选项说明
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 lxsession-help 命令的 --help 和 -h 选项功能"
LOG_INFO "检查当前环境是否已安装 lxsession-help 软件包"
# 检查软件包是否已安装
if rpm -q lxsession-help > /dev/null 2>&1; then
LOG_INFO "lxsession-help 软件包已安装,测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "lxsession-help 软件包未安装,将在测试前安装并在测试后卸载"
already_installed=false
fi
LOG_INFO "检查 yum 源中是否存在 lxsession-help 软件包"
if ! dnf list available lxsession-help > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 lxsession-help 软件包,测试无法继续"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "正在安装 lxsession-help 软件包"
dnf install -y lxsession-help
CHECK_RESULT $? 0 0 "安装 lxsession-help 软件包失败"
fi
LOG_INFO "测试 lxsession-help --help 选项"
lxsession-help --help
CHECK_RESULT $? 0 0 "lxsession-help --help 命令执行失败或返回非零退出码"
LOG_INFO "测试 lxsession-help -h 选项"
lxsession-help -h
CHECK_RESULT $? 0 0 "lxsession-help -h 命令执行失败或返回非零退出码"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "清理环境:卸载 lxsession-help 软件包"
dnf remove -y lxsession-help
CHECK_RESULT $? 0 0 "卸载 lxsession-help 软件包失败"
else
LOG_INFO "测试前已安装 lxsession-help保持安装状态无需卸载"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : 测试通过包管理器如apt成功安装lxsession-help软件包
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试lxsession-help软件包安装"
# 检查是否已经安装lxsession-help
LOG_INFO "检查lxsession-help是否已安装"
if dnf list installed lxsession-help &> /dev/null; then
LOG_INFO "lxsession-help已安装跳过安装步骤"
INSTALLED_ALREADY=true
else
LOG_INFO "lxsession-help未安装将进行安装测试"
INSTALLED_ALREADY=false
fi
# 检查yum源中是否有lxsession-help软件包
LOG_INFO "检查yum源中是否存在lxsession-help软件包"
if ! dnf list available lxsession-help &> /dev/null; then
LOG_ERROR "yum源中不存在lxsession-help软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_ALREADY" = false ]; then
LOG_INFO "开始安装lxsession-help软件包"
dnf install -y lxsession-help
CHECK_RESULT $? 0 0 "安装lxsession-help失败"
LOG_INFO "lxsession-help安装成功"
fi
# 验证安装是否成功
LOG_INFO "验证lxsession-help安装是否成功"
which lxsession-help
CHECK_RESULT $? 0 0 "lxsession-help命令不存在"
# 测试lxsession-help命令的基本功能
LOG_INFO "测试lxsession-help命令的基本功能"
lxsession-help --help
CHECK_RESULT $? 0 0 "lxsession-help --help命令执行失败"
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED_ALREADY" = false ]; then
LOG_INFO "开始卸载lxsession-help软件包"
dnf remove -y lxsession-help
CHECK_RESULT $? 0 0 "卸载lxsession-help失败"
LOG_INFO "lxsession-help卸载成功"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : 测试通过包管理器如apt成功卸载lxsession-help软件包并验证其可被重新安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试通过包管理器成功卸载lxsession-help软件包并验证其可被重新安装"
LOG_INFO "步骤1检查yum源中是否存在lxsession-help软件包"
if ! dnf list available lxsession-help &>/dev/null; then
LOG_ERROR "yum源中不存在lxsession-help软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装lxsession-help"
if rpm -q lxsession-help &>/dev/null; then
LOG_INFO "lxsession-help已安装记录当前状态"
INSTALLED_BEFORE=true
else
LOG_INFO "lxsession-help未安装将在测试中安装"
INSTALLED_BEFORE=false
fi
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤3安装lxsession-help软件包"
dnf install -y lxsession-help
CHECK_RESULT $? 0 0 "安装lxsession-help失败"
fi
LOG_INFO "步骤4验证lxsession-help命令是否可用"
if ! command -v lxsession-help &>/dev/null; then
LOG_ERROR "lxsession-help命令不存在或不支持"
exit 255
fi
LOG_INFO "步骤5卸载lxsession-help软件包"
dnf remove -y lxsession-help
CHECK_RESULT $? 0 0 "卸载lxsession-help失败"
LOG_INFO "步骤6验证lxsession-help已卸载"
if rpm -q lxsession-help &>/dev/null; then
LOG_ERROR "lxsession-help卸载后仍然存在"
exit 1
fi
LOG_INFO "lxsession-help卸载成功"
LOG_INFO "步骤7重新安装lxsession-help软件包"
dnf install -y lxsession-help
CHECK_RESULT $? 0 0 "重新安装lxsession-help失败"
LOG_INFO "步骤8验证重新安装后lxsession-help可用"
if ! command -v lxsession-help &>/dev/null; then
LOG_ERROR "重新安装后lxsession-help命令不可用"
exit 1
fi
LOG_INFO "lxsession-help重新安装成功"
LOG_INFO "步骤9环境恢复"
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "测试前未安装lxsession-help执行卸载"
dnf remove -y lxsession-help
CHECK_RESULT $? 0 0 "环境恢复时卸载lxsession-help失败"
LOG_INFO "环境恢复完成,系统状态与测试前一致"
else
LOG_INFO "测试前已安装lxsession-help保持安装状态"
fi
LOG_INFO "测试完成成功验证lxsession-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-03
# @License : Mulan PSL v2
# @Desc : 测试执行`lxsession-help --version`选项能正确显示软件包的版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已经安装lxsession-help
LOG_INFO "检查是否已安装lxsession-help"
rpm -q lxsession-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "lxsession-help已安装标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "lxsession-help未安装标记为未安装状态"
INSTALLED="false"
fi
# 如果未安装,则先安装
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "检查yum源中是否存在lxsession-help软件包"
dnf list available lxsession-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到lxsession-help软件包"
exit 255
fi
LOG_INFO "开始安装lxsession-help"
dnf install -y lxsession-help
CHECK_RESULT $? 0 0 "安装lxsession-help失败"
fi
# 测试lxsession-help --version选项
LOG_INFO "测试lxsession-help --version选项"
lxsession-help --version > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "lxsession-help不支持--version参数"
exit 255
fi
# 执行命令并检查结果
LOG_INFO "执行lxsession-help --version命令"
VERSION_OUTPUT=$(lxsession-help --version 2>&1)
CHECK_RESULT $? 0 0 "执行lxsession-help --version失败"
LOG_INFO "版本信息:$VERSION_OUTPUT"
# 环境恢复
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "恢复环境卸载lxsession-help"
dnf remove -y lxsession-help
CHECK_RESULT $? 0 0 "卸载lxsession-help失败"
else
LOG_INFO "环境已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,55 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-09
# @License : Mulan PSL v2
# @Desc : 测试 oech-server 的配置文件加载功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 oech-server 的配置文件加载功能"
# 检查是否已安装 oech-server
if ! dnf list installed oech-server &>/dev/null; then
LOG_INFO "oech-server 未安装,将进行安装"
if ! dnf list available oech-server &>/dev/null; then
LOG_ERROR "yum源中未找到 oech-server 软件包"
exit 255
fi
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装 oech-server 失败"
INSTALLED=1
else
LOG_INFO "oech-server 已安装,跳过安装步骤"
INSTALLED=0
fi
# 测试配置文件加载功能
LOG_INFO "测试 oech-server 配置文件加载功能"
oech-server --config /etc/oech-server/config.yaml
CHECK_RESULT $? 0 0 "配置文件加载失败"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载 oech-server"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 "卸载 oech-server 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,61 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-28
# @License : Mulan PSL v2
# @Desc : 测试oech-server默认配置文件存在性
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试测试oech-server默认配置文件存在性"
LOG_INFO "步骤1检查是否已安装oech-server软件包"
if dnf list installed oech-server &> /dev/null; then
LOG_INFO "oech-server软件包已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "oech-server软件包未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否存在oech-server软件包"
if ! dnf list available oech-server &> /dev/null; then
LOG_ERROR "yum源中未找到oech-server软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装oech-server软件包"
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装oech-server失败"
fi
LOG_INFO "步骤4检查oech-server默认配置文件是否存在"
CONFIG_FILE="/etc/oech-server/default.conf"
if [ -f "$CONFIG_FILE" ]; then
LOG_INFO "默认配置文件 $CONFIG_FILE 存在"
else
LOG_ERROR "默认配置文件 $CONFIG_FILE 不存在"
exit 1
fi
LOG_INFO "步骤5清理环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载oech-server软件包"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 "卸载oech-server失败"
else
LOG_INFO "保持oech-server软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-28
# @License : Mulan PSL v2
# @Desc : 测试软件包oec-hardware-server的安装功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试软件包oec-hardware-server的安装功能"
# 检查是否已经安装oec-hardware-server
LOG_INFO "检查oec-hardware-server是否已经安装"
if dnf list installed oec-hardware-server &>/dev/null; then
LOG_INFO "oec-hardware-server已经安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "oec-hardware-server未安装将在测试过程中安装"
already_installed=false
fi
# 检查yum源中是否有oec-hardware-server软件包
LOG_INFO "检查yum源中是否存在oec-hardware-server软件包"
if ! dnf list available oec-hardware-server &>/dev/null; then
LOG_ERROR "yum源中未找到oec-hardware-server软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装oec-hardware-server软件包"
dnf install -y oec-hardware-server
CHECK_RESULT $? 0 0 "安装oec-hardware-server失败"
fi
# 验证安装是否成功
LOG_INFO "验证oec-hardware-server安装是否成功"
dnf list installed oec-hardware-server
CHECK_RESULT $? 0 0 "验证oec-hardware-server安装失败"
# 测试oec-hardware-server命令是否存在
LOG_INFO "测试oec-hardware-server命令是否存在"
command -v oec-hardware-server
CHECK_RESULT $? 0 0 "oec-hardware-server命令不存在"
# 测试oec-hardware-server命令的帮助信息
LOG_INFO "测试oec-hardware-server命令的帮助信息"
oec-hardware-server --help
CHECK_RESULT $? 0 0 "oec-hardware-server命令帮助信息获取失败"
# 测试oec-hardware-server命令的版本信息
LOG_INFO "测试oec-hardware-server命令的版本信息"
oec-hardware-server --version
CHECK_RESULT $? 0 0 "oec-hardware-server命令版本信息获取失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载oec-hardware-server软件包"
dnf remove -y oec-hardware-server
CHECK_RESULT $? 0 0 "卸载oec-hardware-server失败"
fi
LOG_INFO "oec-hardware-server安装功能测试完成"
}
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-02-28
# @License : Mulan PSL v2
# @Desc : 测试oech-server服务日志查看功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试oech-server服务日志查看功能
LOG_INFO "1. 检查是否已安装oech-server软件包"
dnf list installed oech-server &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "oech-server已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "oech-server未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "2. 检查yum源中是否有oech-server软件包"
dnf list available oech-server &>/dev/null
CHECK_RESULT $? 0 0 "yum源中未找到oech-server软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到oech-server软件包"
exit 255
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "3. 安装oech-server软件包"
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装oech-server失败"
fi
LOG_INFO "4. 检查oech-server服务状态"
systemctl status oech-server --no-pager
CHECK_RESULT $? 0 0 "检查oech-server服务状态失败"
LOG_INFO "5. 测试日志查看功能查看最近10条日志"
journalctl -u oech-server -n 10
CHECK_RESULT $? 0 0 "查看oech-server日志失败"
LOG_INFO "6. 测试日志查看功能:查看指定时间范围内的日志"
journalctl -u oech-server --since "1 hour ago" --until "now"
CHECK_RESULT $? 0 0 "查看指定时间范围内的日志失败"
LOG_INFO "7. 测试日志查看功能:查看错误级别的日志"
journalctl -u oech-server -p err
CHECK_RESULT $? 0 0 "查看错误级别日志失败"
LOG_INFO "8. 测试日志查看功能:实时跟踪日志"
timeout 2s journalctl -u oech-server -f
CHECK_RESULT $? 124 0 "实时跟踪日志功能异常"
LOG_INFO "9. 测试日志查看功能:导出日志到文件"
journalctl -u oech-server --since "today" > /tmp/oech-server-today.log
CHECK_RESULT $? 0 0 "导出日志到文件失败"
[ -f /tmp/oech-server-today.log ] && rm -f /tmp/oech-server-today.log
LOG_INFO "10. 检查journalctl命令参数支持情况"
journalctl --help | grep -q "\-\-since"
CHECK_RESULT $? 0 0 "journalctl不支持--since参数"
journalctl --help | grep -q "\-f"
CHECK_RESULT $? 0 0 "journalctl不支持-f参数"
journalctl --help | grep -q "\-p"
CHECK_RESULT $? 0 0 "journalctl不支持-p参数"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "11. 清理环境卸载oech-server软件包"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 "卸载oech-server失败"
LOG_INFO "12. 验证oech-server已卸载"
dnf list installed oech-server &>/dev/null
CHECK_RESULT $? 1 0 "oech-server卸载不彻底"
else
LOG_INFO "11. 保持oech-server安装状态不进行卸载"
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-28
# @License : Mulan PSL v2
# @Desc : 测试oech-server服务重启功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试oech-server服务重启功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查oech-server软件包是否在yum源中"
dnf list available oech-server > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到oech-server软件包"
exit 255
fi
# 检查系统是否已安装oech-server
LOG_INFO "检查系统是否已安装oech-server"
rpm -q oech-server > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "系统已安装oech-server测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=1
else
LOG_INFO "系统未安装oech-server测试结束后将卸载"
INSTALLED_BEFORE_TEST=0
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "安装oech-server软件包"
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装oech-server失败"
fi
# 检查oech-server命令是否存在
LOG_INFO "检查oech-server命令是否存在"
command -v oech-server > /dev/null 2>&1
CHECK_RESULT $? 0 0 "oech-server命令不存在"
# 检查oech-server命令是否支持restart参数
LOG_INFO "检查oech-server命令是否支持restart参数"
oech-server --help 2>&1 | grep -q "restart"
if [ $? -ne 0 ]; then
LOG_ERROR "oech-server命令不支持restart参数"
exit 255
fi
# 启动oech-server服务如果未运行
LOG_INFO "检查oech-server服务状态"
systemctl is-active oech-server > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "启动oech-server服务"
systemctl start oech-server
CHECK_RESULT $? 0 0 "启动oech-server服务失败"
fi
# 获取服务启动后的进程ID
LOG_INFO "获取oech-server服务重启前的进程ID"
OLD_PID=$(systemctl show oech-server --property=MainPID --value)
LOG_INFO "重启前进程ID: $OLD_PID"
# 执行服务重启
LOG_INFO "执行oech-server服务重启"
systemctl restart oech-server
CHECK_RESULT $? 0 0 "重启oech-server服务失败"
# 等待服务完全重启
LOG_INFO "等待服务重启完成"
sleep 5
# 检查服务状态
LOG_INFO "检查重启后oech-server服务状态"
systemctl is-active oech-server > /dev/null 2>&1
CHECK_RESULT $? 0 0 "重启后oech-server服务未运行"
# 获取服务重启后的进程ID
LOG_INFO "获取oech-server服务重启后的进程ID"
NEW_PID=$(systemctl show oech-server --property=MainPID --value)
LOG_INFO "重启后进程ID: $NEW_PID"
# 验证进程ID已改变说明服务确实重启了
LOG_INFO "验证服务已重启进程ID已改变"
if [ "$OLD_PID" != "$NEW_PID" ] && [ "$NEW_PID" != "0" ]; then
LOG_INFO "服务重启成功进程ID已更新"
else
LOG_ERROR "服务重启失败进程ID未改变或无效"
exit 1
fi
# 清理环境
LOG_INFO "清理测试环境"
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "卸载oech-server软件包"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 "卸载oech-server失败"
else
LOG_INFO "测试前已安装oech-server保持安装状态"
fi
LOG_INFO "oech-server服务重启功能测试完成"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-28
# @License : Mulan PSL v2
# @Desc : 测试 oech-server 的启动功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 oech-server 的启动功能"
# 检查软件包是否已安装
LOG_INFO "检查 oech-server 软件包是否已安装"
if rpm -q oech-server &>/dev/null; then
LOG_INFO "oech-server 已安装,跳过安装步骤"
INSTALLED=true
else
LOG_INFO "oech-server 未安装,准备安装"
INSTALLED=false
fi
# 检查 yum 源中是否存在 oech-server 软件包
LOG_INFO "检查 yum 源中是否存在 oech-server 软件包"
if ! dnf list available oech-server &>/dev/null; then
LOG_ERROR "yum 源中未找到 oech-server 软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装 oech-server"
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装 oech-server 失败"
fi
# 测试启动功能
LOG_INFO "测试 oech-server 的启动功能"
systemctl start oech-server
CHECK_RESULT $? 0 0 "启动 oech-server 失败"
LOG_INFO "验证 oech-server 是否成功启动"
systemctl is-active oech-server | grep -q "active"
CHECK_RESULT $? 0 0 "oech-server 未成功启动"
# 清理环境(如果之前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 oech-server 以恢复环境"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 卸载 o ech- server 失败"
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-02-28
# @License : Mulan PSL v2
# @Desc : 测试oech-server服务状态查询功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试oech-server服务状态查询功能"
# 检查是否已安装oech-server软件包
LOG_INFO "检查是否已安装oech-server软件包"
if rpm -q oech-server &> /dev/null; then
LOG_INFO "oech-server已安装记录当前状态"
INSTALLED=true
else
LOG_INFO "oech-server未安装将在测试过程中安装"
INSTALLED=false
fi
# 检查yum源中是否存在oech-server软件包
LOG_INFO "检查yum源中是否存在oech-server软件包"
if ! dnf list available oech-server &> /dev/null; then
LOG_ERROR "yum源中未找到oech-server软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装oech-server软件包"
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装oech-server失败"
fi
# 检查oech-server服务状态查询命令是否支持
LOG_INFO "检查oech-server服务状态查询命令参数"
if ! oech-server status --help &> /dev/null; then
LOG_ERROR "oech-server命令不支持状态查询参数"
# 如果是未安装的情况,需要卸载已安装的软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载oech-server软件包"
dnf remove -y oech-server
fi
exit 255
fi
# 测试服务状态查询功能
LOG_INFO "测试oech-server服务状态查询功能"
oech-server status
CHECK_RESULT $? 0 0 "oech-server服务状态查询失败"
# 如果测试前未安装,则清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载oech-server软件包"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 "卸载oech-server失败"
fi
LOG_INFO "oech-server服务状态查询功能测试完成"
}
main "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-28
# @License : Mulan PSL v2
# @Desc : 测试软件包oec-hardware-server的卸载功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查当前是否已安装oec-hardware-server
LOG_INFO "检查是否已安装oec-hardware-server软件包"
rpm -q oec-hardware-server > /dev/null 2>&1
PACKAGE_INSTALLED=$?
# 如果未安装,则先安装软件包
if [ $PACKAGE_INSTALLED -ne 0 ]; then
LOG_INFO "软件包未安装开始安装oec-hardware-server"
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否存在oec-hardware-server软件包"
dnf list available oec-hardware-server > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中不存在oec-hardware-server软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在oec-hardware-server软件包"
exit 255
fi
# 安装软件包
LOG_INFO "开始安装oec-hardware-server软件包"
dnf install -y oec-hardware-server
CHECK_RESULT $? 0 0 "安装oec-hardware-server软件包失败"
else
LOG_INFO "oec-hardware-server软件包已安装"
fi
# 验证软件包已安装
LOG_INFO "验证oec-hardware-server软件包已安装"
rpm -q oec-hardware-server > /dev/null 2>&1
CHECK_RESULT $? 0 0 "oec-hardware-server软件包未正确安装"
# 检查卸载命令参数是否支持
LOG_INFO "检查dnf remove命令参数支持"
dnf remove --help | grep -q "\-\-nodeps"
CHECK_RESULT $? 0 0 "dnf remove命令不支持--nodeps参数"
if [ $? -ne 0 ]; then
LOG_ERROR "dnf remove命令参数不支持"
exit 255
fi
# 执行卸载操作
LOG_INFO "开始卸载oec-hardware-server软件包"
dnf remove -y oec-hardware-server
CHECK_RESULT $? 0 0 "卸载oec-hardware-server软件包失败"
# 验证软件包已卸载
LOG_INFO "验证oec-hardware-server软件包已卸载"
rpm -q oec-hardware-server > /dev/null 2>&1
CHECK_RESULT $? 1 0 "oec-hardware-server软件包未正确卸载"
# 环境恢复:如果最初未安装,则保持未安装状态;如果最初已安装,则重新安装
if [ $PACKAGE_INSTALLED -eq 0 ]; then
LOG_INFO "恢复环境重新安装oec-hardware-server软件包"
dnf install -y oec-hardware-server
CHECK_RESULT $? 0 0 "重新安装oec-hardware-server软件包失败"
# 验证恢复安装成功
LOG_INFO "验证环境恢复成功"
rpm -q oec-hardware-server > /dev/null 2>&1
CHECK_RESULT $? 0 0 "环境恢复失败oec-hardware-server软件包未安装"
else
LOG_INFO "环境恢复保持oec-hardware-server软件包未安装状态"
fi
LOG_INFO "oec-hardware-server卸载功能测试完成"
}
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 : 测试 oech-server 的 -h 参数,显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 oech-server 的 -h 参数,显示帮助信息"
# 检查是否已安装 oech-server
if ! dnf list installed oech-server &>/dev/null; then
LOG_INFO "环境未安装 oech-server将进行安装并测试"
INSTALLED=false
else
LOG_INFO "环境已安装 oech-server跳过安装步骤"
INSTALLED=true
fi
# 检查 yum 源中是否有 oech-server 软件包
if ! dnf list available oech-server &>/dev/null; then
LOG_ERROR "yum 源中未找到 oech-server 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 oech-server"
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装 oech-server 失败"
fi
# 测试 -h 参数
LOG_INFO "测试 oech-server -h 参数"
oech-server -h &>/dev/null
CHECK_RESULT $? 0 0 "oech-server -h 参数测试失败"
# 如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载 oech-server"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 "卸载 oech-server 失败"
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-11-28
# @License : Mulan PSL v2
# @Desc : 测试 oech-server 的 --version 参数,显示版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 oech-server 的 --version 参数,显示版本信息
LOG_INFO "开始测试 oech-server 的 --version 参数"
# 检查是否已安装 oech-server
if ! dnf list installed oech-server &>/dev/null; then
LOG_INFO "oech-server 未安装,将进行安装"
# 检查 yum 源中是否有 oech-server
if ! dnf list available oech-server &>/dev/null; then
LOG_ERROR "yum 源中未找到 oech-server 软件包"
exit 255
fi
# 安装 oech-server
dnf install -y oech-server
CHECK_RESULT $? 0 0 "安装 oech-server 失败"
else
LOG_INFO "oech-server 已安装,跳过安装步骤"
fi
# 测试 --version 参数
LOG_INFO "测试 oech-server --version 命令"
oech-server --version &>/dev/null
CHECK_RESULT $? 0 0 "oech-server --version 命令执行失败"
# 获取版本信息并打印
version=$(oech-server --version | head -n1)
LOG_INFO "oech-server 版本信息: $version"
# 恢复环境
if ! dnf list installed oech-server &>/dev/null; then
LOG_INFO "卸载 oech-server"
dnf remove -y oech-server
CHECK_RESULT $? 0 0 "卸载 oech-server 失败"
else
LOG_INFO "oech-server 已安装,无需卸载"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-09-24
# @License : Mulan PSL v2
# @Desc : Test basic commands
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装libwsman-devel软件包
LOG_INFO "检查是否已安装libwsman-devel软件包"
rpm -q libwsman-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libwsman-devel已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "libwsman-devel未安装脚本结束时将卸载软件包"
INSTALLED=0
fi
# 检查yum源中是否有libwsman-devel软件包
LOG_INFO "检查yum源中是否有libwsman-devel软件包"
dnf list available libwsman-devel > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中没有libwsman-devel软件包"
# 安装libwsman-devel软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装libwsman-devel软件包"
dnf install -y libwsman-devel > /dev/null 2>&1
CHECK_RESULT $? 0 255 "安装libwsman-devel软件包失败"
fi
# 测试基本命令
LOG_INFO "测试基本命令"
TEST_COMMAND="wsman"
$TEST_COMMAND --help > /dev/null 2>&1
CHECK_RESULT $? 0 255 "命令$TEST_COMMAND不支持或参数错误"
# 清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载libwsman-devel软件包"
dnf remove -y libwsman-devel > /dev/null 2>&1
CHECK_RESULT $? 0 $? "卸载libwsman-devel软件包失败"
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 : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Test accessing package help documentation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始:测试访问包帮助文档"
# 检查是否已安装python3-kaitaistruct-help包
LOG_INFO "步骤1检查python3-kaitaistruct-help包是否已安装"
if dnf list installed python3-kaitaistruct-help &> /dev/null; then
LOG_INFO "python3-kaitaistruct-help包已安装测试后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "python3-kaitaistruct-help包未安装将在测试后卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有python3-kaitaistruct-help包
LOG_INFO "步骤2检查yum源中是否有python3-kaitaistruct-help包"
if ! dnf list available python3-kaitaistruct-help &> /dev/null; then
LOG_ERROR "yum源中未找到python3-kaitaistruct-help包"
exit 255
fi
# 如果未安装则安装python3-kaitaistruct-help包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装python3-kaitaistruct-help包"
dnf install -y python3-kaitaistruct-help
CHECK_RESULT $? 0 0 "安装python3-kaitaistruct-help包失败"
fi
# 测试访问帮助文档
LOG_INFO "步骤4测试访问python3-kaitaistruct-help包的帮助文档"
if ! python3-kaitaistruct-help --help &> /dev/null; then
LOG_ERROR "无法访问python3-kaitaistruct-help包的帮助文档"
CHECK_RESULT $? 0 0 "帮助文档访问失败"
fi
# 清理环境如果之前未安装则卸载python3-kaitaistruct-help包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤5清理环境卸载python3-kaitaistruct-help包"
dnf remove -y python3-kaitaistruct-help
CHECK_RESULT $? 0 0 "卸载python3-kaitaistruct-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-03-28
# @License : Mulan PSL v2
# @Desc : Test package installation via pip
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试通过pip安装python-kaitaistruct-help-function软件包"
LOG_INFO "步骤1: 检查yum源中是否存在python3-pip软件包"
dnf list python3-pip > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-pip软件包"
exit 255
fi
LOG_INFO "步骤2: 检查环境中是否已安装python3-pip"
pip3 --version > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境中已安装python3-pip跳过安装步骤"
INSTALLED="true"
else
LOG_INFO "环境中未安装python3-pip开始安装"
dnf install -y python3-pip
CHECK_RESULT $? 0 0 "安装python3-pip失败"
INSTALLED="false"
fi
LOG_INFO "步骤3: 通过pip安装python-kaitaistruct-help-function"
pip3 install python-kaitaistruct-help-function
CHECK_RESULT $? 0 0 "通过pip安装python-kaitaistruct-help-function失败"
LOG_INFO "步骤4: 验证python-kaitaistruct-help-function是否安装成功"
python3 -c "import kaitaistruct" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python-kaitaistruct-help-function安装后验证失败"
LOG_INFO "步骤5: 清理环境,恢复原始状态"
if [ "$INSTALLED" == "false" ]; then
LOG_INFO "卸载通过pip安装的python-kaitaistruct-help-function"
pip3 uninstall -y python-kaitaistruct-help-function
CHECK_RESULT $? 0 0 "卸载python-kaitaistruct-help-function失败"
LOG_INFO "卸载python3-pip软件包"
dnf remove -y python3-pip
CHECK_RESULT $? 0 0 "卸载python3-pip失败"
else
LOG_INFO "环境中原本已安装python3-pip保持安装状态"
fi
LOG_INFO "测试完成通过pip安装python-kaitaistruct-help-function软件包测试通过"
}
main "$@"

View File

@@ -1,146 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-28
# @License : Mulan PSL v2
# @Desc : Test package removal via pip
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试python-kaitaistruct-help-function的卸载功能
LOG_INFO "开始测试python-kaitaistruct-help-function的卸载功能"
# 定义软件包名称
PACKAGE_NAME="python-kaitaistruct-help-function"
# 步骤1: 检查软件包是否已在yum源中
LOG_INFO "步骤1: 检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
CHECK_RESULT $? 0 0 "检查软件包是否在yum源中失败"
# 步骤2: 检查当前是否已安装该软件包
LOG_INFO "步骤2: 检查当前是否已安装软件包"
IS_INSTALLED=0
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
IS_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
IS_INSTALLED=0
fi
# 步骤3: 如果未安装,则安装软件包
if [ $IS_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 步骤4: 验证软件包安装成功
LOG_INFO "步骤4: 验证软件包安装成功"
rpm -q $PACKAGE_NAME
CHECK_RESULT $? 0 0 "验证软件包安装失败"
# 步骤5: 检查pip命令是否可用
LOG_INFO "步骤5: 检查pip命令是否可用"
pip --version &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "pip命令不可用"
exit 255
fi
CHECK_RESULT $? 0 0 "检查pip命令失败"
# 步骤6: 检查pip uninstall命令是否支持
LOG_INFO "步骤6: 检查pip uninstall命令是否支持"
pip uninstall --help | grep -q "uninstall"
if [ $? -ne 0 ]; then
LOG_ERROR "pip uninstall命令不支持"
exit 255
fi
CHECK_RESULT $? 0 0 "检查pip uninstall命令失败"
# 步骤7: 检查python-kaitaistruct-help-function是否可通过pip卸载
LOG_INFO "步骤7: 检查python-kaitaistruct-help-function是否可通过pip卸载"
pip show python-kaitaistruct-help-function &>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "python-kaitaistruct-help-function未通过pip安装跳过pip卸载测试"
PIP_UNINSTALL_TEST=0
else
PIP_UNINSTALL_TEST=1
LOG_INFO "python-kaitaistruct-help-function已通过pip安装将进行pip卸载测试"
fi
# 步骤8: 测试通过pip卸载软件包如果适用
if [ $PIP_UNINSTALL_TEST -eq 1 ]; then
LOG_INFO "步骤8: 测试通过pip卸载python-kaitaistruct-help-function"
pip uninstall -y python-kaitaistruct-help-function
CHECK_RESULT $? 0 0 "通过pip卸载软件包失败"
# 验证pip卸载成功
LOG_INFO "验证pip卸载成功"
pip show python-kaitaistruct-help-function &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "pip卸载后软件包仍然存在"
exit 1
fi
CHECK_RESULT $? 1 0 "验证pip卸载失败"
else
LOG_INFO "步骤8: 跳过pip卸载测试软件包未通过pip安装"
fi
# 步骤9: 环境清理
LOG_INFO "步骤9: 环境清理"
if [ $IS_INSTALLED -eq 0 ]; then
LOG_INFO "清理: 卸载测试安装的软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包失败"
# 验证软件包已卸载
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "软件包卸载后仍然存在"
exit 1
fi
CHECK_RESULT $? 1 0 "验证软件包卸载失败"
else
LOG_INFO "清理: 保持原有安装状态"
fi
# 步骤10: 最终验证
LOG_INFO "步骤10: 最终环境验证"
if [ $IS_INSTALLED -eq 1 ]; then
rpm -q $PACKAGE_NAME
CHECK_RESULT $? 0 0 "最终验证失败:软件包应保持安装状态"
LOG_INFO "测试完成:环境已恢复到原始安装状态"
else
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "最终验证失败:软件包不应存在"
exit 1
fi
CHECK_RESULT $? 1 0 "最终验证失败:软件包不应存在"
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-03-28
# @License : Mulan PSL v2
# @Desc : Test retrieving package version info
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始Test retrieving package version info"
# 步骤1检查yum源中是否存在python-kaitaistruct-help软件包
LOG_INFO "步骤1检查yum源中是否存在python-kaitaistruct-help软件包"
dnf list available python-kaitaistruct-help &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python-kaitaistruct-help软件包"
exit 255
fi
# 步骤2检查系统是否已安装python-kaitaistruct-help
LOG_INFO "步骤2检查系统是否已安装python-kaitaistruct-help"
if rpm -q python-kaitaistruct-help &>/dev/null; then
LOG_INFO "python-kaitaistruct-help已安装标记为已存在"
INSTALLED=1
else
LOG_INFO "python-kaitaistruct-help未安装标记为未安装"
INSTALLED=0
fi
# 步骤3如果未安装则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装python-kaitaistruct-help软件包"
dnf install -y python-kaitaistruct-help
CHECK_RESULT $? 0 0 "安装python-kaitaistruct-help失败"
fi
# 步骤4检查软件包版本信息
LOG_INFO "步骤4检查python-kaitaistruct-help软件包版本信息"
rpm -q python-kaitaistruct-help --queryformat "%{VERSION}-%{RELEASE}\n"
CHECK_RESULT $? 0 0 "获取python-kaitaistruct-help版本信息失败"
# 步骤5检查软件包帮助信息
LOG_INFO "步骤5检查python-kaitaistruct-help软件包帮助信息"
python-kaitaistruct-help --help &>/dev/null
CHECK_RESULT $? 0 0 "执行python-kaitaistruct-help --help失败"
# 步骤6清理环境如果之前未安装则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤6清理环境卸载python-kaitaistruct-help软件包"
dnf remove -y python-kaitaistruct-help
CHECK_RESULT $? 0 0 "卸载python-kaitaistruct-help失败"
else
LOG_INFO "步骤6保持python-kaitaistruct-help安装状态"
fi
LOG_INFO "测试结束Test retrieving package version info"
}
main "$@"

View File

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

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-09
# @License : Mulan PSL v2
# @Desc : 测试使用qatlib-devel提供的头文件和库文件进行简单的程序编译验证开发环境可用性。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试验证qatlib-devel开发环境可用性"
LOG_INFO "步骤1检查yum源中是否存在qatlib-devel软件包"
dnf list available qatlib-devel 2>/dev/null | grep -q qatlib-devel
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qatlib-devel软件包"
exit 255
fi
LOG_INFO "yum源中存在qatlib-devel软件包"
LOG_INFO "步骤2检查当前环境中是否已安装qatlib-devel"
rpm -q qatlib-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到qatlib-devel已安装标记为保持安装状态"
INSTALLED_BEFORE="yes"
else
LOG_INFO "检测到qatlib-devel未安装标记为测试安装"
INSTALLED_BEFORE="no"
fi
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "步骤3安装qatlib-devel软件包"
dnf install -y qatlib-devel
CHECK_RESULT $? 0 0 "安装qatlib-devel失败"
LOG_INFO "qatlib-devel安装成功"
fi
LOG_INFO "步骤4创建测试C程序源码文件"
cat > /tmp/test_qat_compile.c << "EOF"
#include <stdio.h>
#include <qatlib.h>
int main() {
printf("QAT library test program compiled successfully.\n");
return 0;
}
EOF
CHECK_RESULT $? 0 0 "创建测试源码文件失败"
LOG_INFO "步骤5编译测试程序链接qatlib库"
gcc -o /tmp/test_qat_program /tmp/test_qat_compile.c -lqat
CHECK_RESULT $? 0 0 "编译测试程序失败请检查qatlib-devel开发环境"
LOG_INFO "测试程序编译成功"
LOG_INFO "步骤6运行测试程序"
/tmp/test_qat_program
CHECK_RESULT $? 0 0 "运行测试程序失败"
LOG_INFO "测试程序运行成功,输出符合预期"
LOG_INFO "步骤7清理临时文件"
rm -f /tmp/test_qat_compile.c /tmp/test_qat_program
CHECK_RESULT $? 0 0 "清理临时文件失败"
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "步骤8卸载测试安装的qatlib-devel软件包"
dnf remove -y qatlib-devel
CHECK_RESULT $? 0 0 "卸载qatlib-devel失败"
LOG_INFO "qatlib-devel卸载成功"
else
LOG_INFO "步骤8测试前已安装qatlib-devel保持安装状态无需卸载"
fi
LOG_INFO "测试完成qatlib-devel开发环境验证通过"
}
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-09
# @License : Mulan PSL v2
# @Desc : 测试验证qatlib-devel软件包是否已成功安装并检查其关键开发文件如头文件和库文件是否存在。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="qatlib-devel"
LOG_FILE="/tmp/test_qatlib-devel.log"
# 日志函数(直接使用)
LOG_INFO() {
echo "[INFO] $1" | tee -a $LOG_FILE
}
LOG_ERROR() {
echo "[ERROR] $1" | tee -a $LOG_FILE
}
# 清理函数
cleanup() {
LOG_INFO "开始清理环境"
if [ "$NEED_UNINSTALL" = "yes" ]; then
LOG_INFO "卸载 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME 2>/dev/null
CHECK_RESULT $? 0 0 "卸载失败"
fi
LOG_INFO "清理完成"
}
# 捕获退出信号
trap cleanup EXIT
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到 $PACKAGE_NAME"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查 $PACKAGE_NAME 是否已安装"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装,保持安装状态"
NEED_UNINSTALL="no"
else
LOG_INFO "$PACKAGE_NAME 未安装,开始安装"
NEED_UNINSTALL="yes"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装失败"
fi
# 检查关键开发文件
LOG_INFO "检查头文件和库文件"
HEADER_FILES="/usr/include/qatlib/*.h"
LIB_FILES="/usr/lib64/libqat.* /usr/lib/libqat.*"
# 检查头文件
if ls $HEADER_FILES &>/dev/null; then
LOG_INFO "头文件存在: $(ls $HEADER_FILES | wc -l) 个文件"
else
LOG_ERROR "未找到头文件"
exit 1
fi
# 检查库文件
if ls $LIB_FILES &>/dev/null; then
LOG_INFO "库文件存在: $(ls $LIB_FILES | wc -l) 个文件"
else
LOG_ERROR "未找到库文件"
exit 1
fi
# 验证开发工具链
LOG_INFO "验证开发工具链"
if command -v pkg-config &>/dev/null; then
pkg-config --modversion qatlib
CHECK_RESULT $? 0 0 "pkg-config检查失败"
else
LOG_INFO "pkg-config未安装跳过检查"
fi
LOG_INFO "测试完成:$PACKAGE_NAME 安装验证成功"
}
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 execution functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test execution functionality"
# 检查yum源中是否有rubygem-docile-help软件包
LOG_INFO "检查yum源中是否有rubygem-docile-help软件包"
dnf list available rubygem-docile-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到rubygem-docile-help软件包"
exit 255
fi
# 检查是否已安装rubygem-docile-help
LOG_INFO "检查是否已安装rubygem-docile-help"
rpm -q rubygem-docile-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "rubygem-docile-help已安装"
else
installed=false
LOG_INFO "rubygem-docile-help未安装将进行安装"
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装rubygem-docile-help"
dnf install -y rubygem-docile-help
CHECK_RESULT $? 0 0 "安装rubygem-docile-help失败"
fi
# 测试执行功能
LOG_INFO "测试执行功能"
docile-help --version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行docile-help --version失败"
# 检查不支持的参数
LOG_INFO "检查不支持的参数"
docile-help --invalid-arg > /dev/null 2>&1
if [ $? -ne 255 ]; then
LOG_ERROR "不支持的参数未返回退出码255"
exit 255
fi
# 恢复环境
if [ "$installed" = false ]; then
LOG_INFO "卸载rubygem-docile-help"
dnf remove -y rubygem-docile-help
CHECK_RESULT $? 0 0 "卸载rubygem-docile-help失败"
fi
LOG_INFO "测试完成Test execution functionality"
}
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-06
# @License : Mulan PSL v2
# @Desc : Test loading functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test loading functionality"
# 检查软件包是否已安装
LOG_INFO "检查 rubygem-docile 是否已安装"
if dnf list installed rubygem-docile &>/dev/null; then
LOG_INFO "rubygem-docile 已安装,脚本结束后将保持安装状态"
installed=true
else
LOG_INFO "rubygem-docile 未安装,将在测试后卸载"
installed=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有 rubygem-docile"
if ! dnf list available rubygem-docile &>/dev/null; then
LOG_ERROR "yum源中未找到 rubygem-docile"
exit 255
fi
# 安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 rubygem-docile"
dnf install -y rubygem-docile
CHECK_RESULT $? 0 0 "安装 rubygem-docile 失败"
fi
# 测试加载功能
LOG_INFO "测试 rubygem-docile 的加载功能"
output=$(ruby -e "require "docile"; puts Docile")
CHECK_RESULT $? 0 0 "加载 Docile 失败"
LOG_INFO "加载功能测试通过,输出:$output"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载 rubygem-docile"
dnf remove -y rubygem-docile
CHECK_RESULT $? 0 0 "卸载 rubygem-docile 失败"
fi
LOG_INFO "测试完成Test loading functionality"
}
main "$@"

View File

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

View File

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

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-27
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-cntperchap
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test installation of texlive-cntperchap"
# 检查是否已安装texlive-cntperchap
LOG_INFO "检查是否已安装texlive-cntperchap"
if dnf list installed texlive-cntperchap &>/dev/null; then
LOG_INFO "texlive-cntperchap已安装测试结束将保持安装状态"
installed=true
else
LOG_INFO "texlive-cntperchap未安装将在测试结束后卸载"
installed=false
fi
# 检查yum源中是否有texlive-cntperchap
LOG_INFO "检查yum源中是否有texlive-cntperchap"
if ! dnf list available texlive-cntperchap &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-cntperchap退出测试"
exit 255
fi
# 安装texlive-cntperchap
LOG_INFO "安装texlive-cntperchap"
dnf install -y texlive-cntperchap
CHECK_RESULT $? 0 0 "安装texlive-cntperchap失败"
# 验证安装是否成功
LOG_INFO "验证texlive-cntperchap是否成功安装"
if ! dnf list installed texlive-cntperchap &>/dev/null; then
LOG_ERROR "texlive-cntperchap安装后未找到退出测试"
exit 1
fi
# 测试命令参数
LOG_INFO "测试命令参数"
if ! texlive-cntperchap --help &>/dev/null; then
LOG_ERROR "texlive-cntperchap命令参数不支持退出测试"
exit 255
fi
# 清理环境(如果测试前未安装)
if [ "$installed" = false ]; then
LOG_INFO "卸载texlive-cntperchap以恢复环境"
dnf remove -y texlive-cntperchap
CHECK_RESULT $? 0 0 "卸载texlive-cntperchap失败"
fi
LOG_INFO "测试完成Test installation of texlive-cntperchap"
}
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-07
# @License : Mulan PSL v2
# @Desc : Test listing installed files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(虽然题目说不需要定义,但为了脚本能正常运行,这里定义空函数)
LOG_INFO() { echo "[INFO] $*"; }
LOG_ERROR() { echo "[ERROR] $*"; }
# 定义软件包名称
PACKAGE_NAME="texlive-electrum"
# 步骤1检查yum源中是否存在指定的软件包
LOG_INFO "步骤1检查yum源中是否存在指定的软件包"
dnf list available "$PACKAGE_NAME" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
exit 255
fi
# 步骤2检查是否已经安装该软件包
LOG_INFO "步骤2检查是否已经安装该软件包"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已经安装"
INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
INSTALLED=false
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 步骤4测试列出已安装的文件
LOG_INFO "步骤4测试列出已安装的文件"
rpm -ql "$PACKAGE_NAME" &>/dev/null
CHECK_RESULT $? 0 0 "列出已安装文件失败"
# 步骤5如果之前未安装则卸载软件包以恢复环境
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤5卸载软件包 $PACKAGE_NAME 以恢复环境"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试完成"
}
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-07
# @License : Mulan PSL v2
# @Desc : Test availability of fonts
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试字体可用性"
# 检查环境是否已安装 texlive-electrum-function-fonts 包
LOG_INFO "检查 texlive-electrum-function-fonts 是否已安装"
if dnf list installed texlive-electrum-function-fonts &>/dev/null; then
LOG_INFO "texlive-electrum-function-fonts 已安装,测试结束后保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "texlive-electrum-function-fonts 未安装,将在测试过程中安装并在结束后卸载"
INSTALLED_BEFORE=0
fi
# 检查 yum 源中是否有该软件包
LOG_INFO "检查 yum 源中是否有 texlive-electrum-function-fonts 包"
if ! dnf list available texlive-electrum-function-fonts &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-electrum-function-fonts 包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "安装 texlive-electrum-function-fonts 包"
dnf install -y texlive-electrum-function-fonts
CHECK_RESULT $? 0 0 "安装 texlive-electrum-function-fonts 失败"
fi
# 测试字体可用性
LOG_INFO "测试字体可用性"
# 假设使用 fc-list 命令检查字体是否可用,这里以检查字体文件是否存在为例
FONT_PATH="/usr/share/texlive/texmf-dist/fonts/truetype/public/electrum/electrum.ttf"
if [ -f "$FONT_PATH" ]; then
LOG_INFO "字体文件 $FONT_PATH 存在"
else
LOG_ERROR "字体文件 $FONT_PATH 不存在"
exit 1
fi
# 清理环境:如果之前未安装,则卸载软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载 texlive-electrum-function-fonts 包"
dnf remove -y texlive-electrum-function-fonts
CHECK_RESULT $? 0 0 "卸载 texlive-electrum-function-fonts 失败"
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-07
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色和日志函数虽然题目说LOG_INFO和LOG_ERROR无需定义但实际环境中可能不存在这里定义以确保脚本可运行
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 定义CHECK_RESULT函数虽然题目说无需定义但实际环境中可能不存在
CHECK_RESULT() {
local actual=$1
local expect=$2
local index=$3
local msg=$4
if [ $actual -ne $expect ]; then
LOG_ERROR "$msg"
exit $index
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 $node_user@$node_ip "$cmd"
}
# 测试脚本开始
LOG_INFO "开始测试软件包安装功能"
# 步骤1检查yum源中是否存在texlive-electrum软件包
LOG_INFO "步骤1检查yum源中是否存在texlive-electrum软件包"
dnf list available texlive-electrum &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-electrum软件包"
exit 255
fi
# 步骤2检查当前环境是否已安装texlive-electrum
LOG_INFO "步骤2检查当前环境是否已安装texlive-electrum"
if rpm -q texlive-electrum &> /dev/null; then
LOG_INFO "texlive-electrum已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "texlive-electrum未安装将执行安装测试"
INSTALLED=false
fi
# 步骤3如果未安装则执行安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-electrum软件包"
dnf install -y texlive-electrum
CHECK_RESULT $? 0 0 "安装texlive-electrum失败"
LOG_INFO "安装成功"
fi
# 步骤4验证安装是否成功
LOG_INFO "步骤4验证texlive-electrum是否安装成功"
rpm -q texlive-electrum &> /dev/null
CHECK_RESULT $? 0 0 "验证安装失败texlive-electrum未正确安装"
# 步骤5测试软件包基本功能例如查看版本
LOG_INFO "步骤5测试texlive-electrum基本功能"
# 假设texlive-electrum有一个--version参数来查看版本
texlive-electrum --version &> /dev/null
CHECK_RESULT $? 0 0 "texlive-electrum基本功能测试失败"
# 步骤6清理环境如果测试前未安装则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤6卸载texlive-electrum软件包"
dnf remove -y texlive-electrum
CHECK_RESULT $? 0 0 "卸载texlive-electrum失败"
LOG_INFO "卸载成功"
else
LOG_INFO "步骤6测试前已安装保持环境不变"
fi
# 步骤7最终验证环境状态
LOG_INFO "步骤7验证环境状态"
if [ "$INSTALLED" = false ]; then
rpm -q texlive-electrum &> /dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "环境清理失败texlive-electrum仍存在"
exit 1
else
LOG_INFO "环境已恢复texlive-electrum已卸载"
fi
else
rpm -q texlive-electrum &> /dev/null
CHECK_RESULT $? 0 0 "环境异常texlive-electrum应保持安装但未找到"
LOG_INFO "环境已恢复texlive-electrum保持安装状态"
fi
LOG_INFO "测试完成,所有步骤通过"
}
main "$@"

View File

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

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : Test package version checking
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test package version checking"
# 步骤1检查系统中是否已安装texlive-electrum软件包
LOG_INFO "步骤1检查系统中是否已安装texlive-electrum软件包"
if rpm -q texlive-electrum &>/dev/null; then
LOG_INFO "texlive-electrum已安装标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "texlive-electrum未安装标记为未安装状态"
INSTALLED="false"
fi
# 步骤2检查yum源中是否有texlive-electrum软件包
LOG_INFO "步骤2检查yum源中是否有texlive-electrum软件包"
if ! dnf list available texlive-electrum &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-electrum软件包"
exit 255
fi
# 步骤3如果未安装则安装texlive-electrum软件包
LOG_INFO "步骤3如果未安装则安装texlive-electrum软件包"
if [ "$INSTALLED" = "false" ]; then
dnf install -y texlive-electrum
CHECK_RESULT $? 0 0 "安装texlive-electrum失败"
LOG_INFO "texlive-electrum安装成功"
fi
# 步骤4检查texlive-electrum软件包版本
LOG_INFO "步骤4检查texlive-electrum软件包版本"
VERSION_OUTPUT=$(rpm -q texlive-electrum)
CHECK_RESULT $? 0 0 "获取texlive-electrum版本失败"
LOG_INFO "texlive-electrum版本信息$VERSION_OUTPUT"
# 步骤5验证版本信息是否符合预期这里假设预期版本包含特定字符串根据实际情况调整
LOG_INFO "步骤5验证版本信息是否符合预期"
if echo "$VERSION_OUTPUT" | grep -q "texlive-electrum"; then
LOG_INFO "版本信息验证通过"
else
LOG_ERROR "版本信息验证失败"
exit 1
fi
# 步骤6环境恢复
LOG_INFO "步骤6环境恢复"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载之前安装的texlive-electrum软件包"
dnf remove -y texlive-electrum
CHECK_RESULT $? 0 0 "卸载texlive-electrum失败"
LOG_INFO "texlive-electrum卸载成功"
else
LOG_INFO "系统原本已安装texlive-electrum保持安装状态"
fi
LOG_INFO "测试完成Test package version checking"
}
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-22
# @License : Mulan PSL v2
# @Desc : Test eTeX advanced features (e.g., \numexpr)
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试eTeX高级功能如\\numexpr"
# 检查yum源中是否有texlive-etex包
LOG_INFO "检查yum源中是否有texlive-etex包"
dnf list available texlive-etex 2>/dev/null | grep -q texlive-etex
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有texlive-etex包"
exit 255
fi
# 检查是否已安装texlive-etex
LOG_INFO "检查是否已安装texlive-etex"
rpm -q texlive-etex >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-etex已安装将保持安装状态"
was_installed=1
else
LOG_INFO "texlive-etex未安装将进行安装"
was_installed=0
fi
# 如果未安装则安装texlive-etex
if [ $was_installed -eq 0 ]; then
LOG_INFO "安装texlive-etex"
dnf install -y texlive-etex
CHECK_RESULT $? 0 0 "安装texlive-etex失败"
fi
# 测试eTeX高级功能使用\numexpr进行数值计算
LOG_INFO "测试eTeX高级功能使用\\numexpr进行数值计算"
cat > test_etex_advanced.tex << "EOF"
\documentclass{article}
\begin{document}
\newcount\mycount
\mycount=\numexpr 5 + 3 * 2\relax
Result: \the\mycount
\end{document}
EOF
# 编译TeX文件
LOG_INFO "编译TeX文件"
etex test_etex_advanced.tex
CHECK_RESULT $? 0 0 "编译TeX文件失败"
# 检查编译结果
LOG_INFO "检查编译结果"
if [ -f test_etex_advanced.dvi ]; then
LOG_INFO "成功生成DVI文件"
# 检查DVI文件内容
dvitype test_etex_advanced.dvi | grep -q "Result: 11"
CHECK_RESULT $? 0 0 "DVI文件内容不符合预期"
else
LOG_ERROR "未生成DVI文件"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_etex_advanced.tex test_etex_advanced.dvi test_etex_advanced.log
# 如果之前未安装则卸载texlive-etex
if [ $was_installed -eq 0 ]; then
LOG_INFO "卸载texlive-etex"
dnf remove -y texlive-etex
CHECK_RESULT $? 0 0 "卸载texlive-etex失败"
else
LOG_INFO "保持texlive-etex安装状态"
fi
LOG_INFO "eTeX高级功能测试完成"
}
main "$@"

View File

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

View File

@@ -1,166 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-22
# @License : Mulan PSL v2
# @Desc : Test basic typesetting with eTeX
# ############################################
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"
# 日志函数
LOG_INFO() {
echo -e "${GREEN}[INFO]${NC} $1"
}
LOG_ERROR() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local pkg=$1
dnf list available "$pkg" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $pkg 不在yum源中"
exit 255
fi
}
# 检查命令参数是否支持
check_command_param() {
local cmd=$1
local param=$2
$cmd --help 2>&1 | grep -q "\<$param\>"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $cmd 不支持参数 $param"
exit 255
fi
}
# 安装软件包
install_package() {
local pkg=$1
LOG_INFO "安装软件包: $pkg"
dnf install -y "$pkg"
CHECK_RESULT $? 0 0 "安装软件包 $pkg 失败"
}
# 卸载软件包
uninstall_package() {
local pkg=$1
LOG_INFO "卸载软件包: $pkg"
dnf remove -y "$pkg"
CHECK_RESULT $? 0 0 "卸载软件包 $pkg 失败"
}
# 检查环境是否已安装
check_environment() {
LOG_INFO "检查环境是否已安装"
if rpm -q texlive-etex &>/dev/null; then
LOG_INFO "环境已安装"
return 0
else
LOG_INFO "环境未安装"
return 1
fi
}
# 清理临时文件
cleanup_temp_files() {
LOG_INFO "清理临时文件"
rm -f test_etex.tex test_etex.log test_etex.aux test_etex.dvi
}
# 主测试函数
test_basic_typesetting() {
LOG_INFO "开始测试: Test basic typesetting with eTeX"
# 检查软件包是否在yum源中
LOG_INFO "检查texlive-etex是否在yum源中"
check_package_in_repo texlive-etex
# 检查环境是否已安装
local was_installed=0
if check_environment; then
was_installed=1
else
# 安装软件包
install_package texlive-etex
fi
# 创建测试TeX文件
LOG_INFO "创建测试TeX文件"
cat > test_etex.tex << "EOF"
\documentclass{article}
\begin{document}
Hello, eTeX! This is a basic typesetting test.
The value of $\pi$ is approximately 3.14159.
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 检查etex命令参数
LOG_INFO "检查etex命令参数支持"
check_command_param etex "--interaction"
# 使用eTeX编译文档
LOG_INFO "使用eTeX编译文档"
etex --interaction=nonstopmode test_etex.tex
CHECK_RESULT $? 0 0 "eTeX编译失败"
# 检查输出文件
LOG_INFO "检查输出文件"
if [ -f test_etex.dvi ]; then
LOG_INFO "成功生成DVI文件"
# 检查DVI文件内容
if [ -s test_etex.dvi ]; then
LOG_INFO "DVI文件非空测试通过"
else
LOG_ERROR "DVI文件为空"
exit 1
fi
else
LOG_ERROR "未生成DVI文件"
exit 1
fi
# 清理临时文件
cleanup_temp_files
# 如果之前未安装,则卸载软件包
if [ $was_installed -eq 0 ]; then
uninstall_package texlive-etex
else
LOG_INFO "保持环境安装状态"
fi
LOG_INFO "测试完成: Test basic typesetting with eTeX"
}
# 异常处理
trap "LOG_ERROR "测试被中断"; cleanup_temp_files; exit 130" INT TERM
# 执行测试
test_basic_typesetting
}
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-22
# @License : Mulan PSL v2
# @Desc : Test uninstallation of texlive-etex package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="texlive-etex"
LOG_INFO "开始测试卸载${PACKAGE_NAME}软件包功能"
LOG_INFO "步骤1: 检查软件包是否在yum源中"
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包${PACKAGE_NAME}不在yum源中"
exit 255
fi
LOG_INFO "软件包${PACKAGE_NAME}在yum源中存在"
LOG_INFO "步骤2: 检查当前是否已安装${PACKAGE_NAME}"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到${PACKAGE_NAME}已安装,标记为已安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "检测到${PACKAGE_NAME}未安装,标记为未安装状态"
ALREADY_INSTALLED=0
fi
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "步骤3: 安装${PACKAGE_NAME}软件包用于测试"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
LOG_INFO "安装${PACKAGE_NAME}成功"
fi
LOG_INFO "步骤4: 验证${PACKAGE_NAME}是否已正确安装"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "验证${PACKAGE_NAME}安装状态失败"
LOG_INFO "步骤5: 卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
LOG_INFO "卸载${PACKAGE_NAME}成功"
LOG_INFO "步骤6: 验证${PACKAGE_NAME}是否已成功卸载"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "验证${PACKAGE_NAME}卸载状态失败,软件包仍然存在"
exit 1
fi
LOG_INFO "验证${PACKAGE_NAME}卸载成功"
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "步骤7: 恢复环境 - 由于测试前未安装,保持卸载状态"
else
LOG_INFO "步骤7: 恢复环境 - 重新安装${PACKAGE_NAME}到原始状态"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "恢复安装${PACKAGE_NAME}失败"
LOG_INFO "环境恢复完成,${PACKAGE_NAME}已重新安装"
fi
LOG_INFO "测试卸载${PACKAGE_NAME}软件包功能完成"
}
main "$@"

View File

@@ -1,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-03-22
# @License : Mulan PSL v2
# @Desc : Test checking eTeX engine version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查eTeX引擎版本"
# 定义软件包名称
PACKAGE_NAME="texlive-etex"
# 检查系统是否已安装texlive-etex
LOG_INFO "步骤1检查系统是否已安装 $PACKAGE_NAME"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装,测试后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "$PACKAGE_NAME 未安装,将在测试中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有texlive-etex软件包
LOG_INFO "步骤2检查yum源中是否有 $PACKAGE_NAME 软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装 $PACKAGE_NAME 软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
# 检查etex命令是否存在
LOG_INFO "步骤4检查etex命令是否存在"
if ! command -v etex &>/dev/null; then
LOG_ERROR "etex命令不存在"
exit 255
fi
# 检查etex命令是否支持--version参数
LOG_INFO "步骤5检查etex命令是否支持--version参数"
if ! etex --help 2>&1 | grep -q -- "--version"; then
LOG_ERROR "etex命令不支持--version参数"
exit 255
fi
# 执行etex --version命令
LOG_INFO "步骤6执行etex --version命令检查版本"
etex --version
CHECK_RESULT $? 0 0 "执行etex --version命令失败"
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤7卸载 $PACKAGE_NAME 软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
fi
LOG_INFO "测试完成eTeX引擎版本检查成功"
}
main "$@"

View File

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

View File

@@ -1,139 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-27
# @License : Mulan PSL v2
# @Desc : Test basic usage of the package
# ############################################
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 expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -eq $expect ]; then
LOG_INFO "$message 成功"
return 0
else
LOG_ERROR "$message 失败,实际值:$actual,期望值:$expect"
exit $actual
fi
else
if [ $actual -ne $expect ]; then
LOG_INFO "$message 成功"
return 0
else
LOG_ERROR "$message 失败,实际值:$actual,期望值:$expect"
exit $actual
fi
fi
}
# 定义SSH_CMD函数
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-ghab"
# 检查软件包是否已在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 存在于yum源中"
# 检查当前是否已安装软件包
LOG_INFO "检查系统是否已安装软件包 $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME"
else
LOG_INFO "软件包 $PACKAGE_NAME 已安装,跳过安装步骤"
fi
# 测试基本功能:检查命令是否存在
LOG_INFO "测试软件包 $PACKAGE_NAME 的基本功能"
# 假设软件包提供了一个名为 "texlive-ghab" 的命令
COMMAND="texlive-ghab"
if ! command -v $COMMAND &>/dev/null; then
LOG_ERROR "命令 $COMMAND 不存在"
exit 255
fi
LOG_INFO "命令 $COMMAND 存在"
# 测试命令的基本参数(假设 --version 参数存在)
LOG_INFO "测试命令 $COMMAND 的 --version 参数"
$COMMAND --version &>/dev/null
CHECK_RESULT $? 0 0 "执行 $COMMAND --version"
# 测试不支持的参数(假设 --invalid-param 不存在)
LOG_INFO "测试命令 $COMMAND 的不支持的参数"
$COMMAND --invalid-param &>/dev/null
if [ $? -eq 255 ]; then
LOG_INFO "不支持的参数正确处理"
else
LOG_ERROR "不支持的参数未正确处理"
exit 255
fi
# 测试命令执行成功
LOG_INFO "测试命令 $COMMAND 执行成功"
$COMMAND --help &>/dev/null
CHECK_RESULT $? 0 0 "执行 $COMMAND --help"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME"
else
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,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 installation of texlive-roex package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查texlive-roex软件包是否已安装
if rpm -q texlive-roex &>/dev/null; then
LOG_INFO "texlive-roex软件包已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-roex软件包未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-roex软件包
LOG_INFO "检查yum源中是否存在texlive-roex软件包"
if ! dnf list available texlive-roex &>/dev/null; then
LOG_ERROR "yum源中不存在texlive-roex软件包"
exit 255
fi
# 安装texlive-roex软件包
LOG_INFO "开始安装texlive-roex软件包"
dnf install -y texlive-roex
CHECK_RESULT $? 0 0 "安装texlive-roex软件包失败"
# 验证安装是否成功
LOG_INFO "验证texlive-roex软件包是否安装成功"
rpm -q texlive-roex
CHECK_RESULT $? 0 0 "验证texlive-roex软件包安装失败"
# 测试命令参数支持情况假设命令为texlive-roex --version
LOG_INFO "测试texlive-roex命令参数支持情况"
texlive-roex --version
CHECK_RESULT $? 0 0 "texlive-roex命令参数不支持或执行失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载texlive-roex软件包"
dnf remove -y texlive-roex
CHECK_RESULT $? 0 0 "卸载texlive-roex软件包失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,109 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-06
# @License : Mulan PSL v2
# @Desc : Test basic usage of texlive-roex package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装texlive-roex
LOG_INFO "检查是否已经安装texlive-roex"
rpm -q texlive-roex > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-roex已经安装脚本结束后将保持安装状态"
INSTALLED="yes"
else
LOG_INFO "texlive-roex未安装将在测试后卸载"
INSTALLED="no"
fi
# 检查yum源中是否有texlive-roex软件包
LOG_INFO "检查yum源中是否有texlive-roex软件包"
dnf list available texlive-roex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到texlive-roex软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-roex软件包"
exit 255
fi
# 如果未安装则安装texlive-roex
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "安装texlive-roex软件包"
dnf install -y texlive-roex
CHECK_RESULT $? 0 0 "安装texlive-roex失败"
fi
# 测试texlive-roex的基本功能
LOG_INFO "测试texlive-roex的基本功能"
# 检查texlive-roex是否提供了tex命令
LOG_INFO "检查texlive-roex是否提供了tex命令"
which tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-roex未提供tex命令"
# 测试tex命令的版本信息
LOG_INFO "测试tex命令的版本信息"
tex --version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "tex命令版本信息获取失败"
# 测试tex命令的--help参数
LOG_INFO "测试tex命令的--help参数"
tex --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "tex命令--help参数不支持"
# 测试tex命令的无效参数
LOG_INFO "测试tex命令的无效参数"
tex --invalid-param > /dev/null 2>&1
if [ $? -ne 255 ]; then
LOG_ERROR "tex命令的无效参数处理不符合预期"
exit 255
fi
# 创建一个简单的TeX文件进行测试
LOG_INFO "创建一个简单的TeX文件进行测试"
cat > test.tex << "EOF"
\documentclass{article}
\begin{document}
Hello, World!
\end{document}
EOF
# 使用tex命令编译TeX文件
LOG_INFO "使用tex命令编译TeX文件"
tex test.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "tex命令编译TeX文件失败"
# 检查是否生成了预期的输出文件
LOG_INFO "检查是否生成了预期的输出文件"
[ -f test.dvi ] || [ -f test.pdf ]
CHECK_RESULT $? 0 0 "未生成预期的输出文件"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test.tex test.log test.aux test.dvi test.pdf
# 如果测试前未安装则在测试后卸载texlive-roex
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "卸载texlive-roex软件包"
dnf remove -y texlive-roex
CHECK_RESULT $? 0 0 "卸载texlive-roex失败"
fi
LOG_INFO "texlive-roex基本功能测试完成"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : Test package installation check
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本开始
LOG_INFO "开始测试: Test package installation check"
# 步骤1: 检查测试环境是否已安装texlive-njurepo软件包
LOG_INFO "步骤1: 检查texlive-njurepo是否已安装"
if dnf list installed texlive-njurepo &>/dev/null; then
LOG_INFO "texlive-njurepo已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "texlive-njurepo未安装将在测试过程中安装并在测试结束后卸载"
INSTALLED_BEFORE_TEST=false
fi
# 步骤2: 检查yum源中是否存在texlive-njurepo软件包
LOG_INFO "步骤2: 检查yum源中是否存在texlive-njurepo软件包"
if ! dnf list available texlive-njurepo &>/dev/null; then
LOG_ERROR "yum源中不存在texlive-njurepo软件包"
exit 255
fi
# 步骤3: 如果未安装则安装texlive-njurepo软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "步骤3: 安装texlive-njurepo软件包"
dnf install -y texlive-njurepo
CHECK_RESULT $? 0 0 "安装texlive-njurepo失败"
fi
# 步骤4: 测试texlive-njurepo的基本功能
LOG_INFO "步骤4: 测试texlive-njurepo的基本功能"
# 这里假设texlive-njurepo安装后会提供一个命令或文件例如/usr/bin/texlive-njurepo-test
# 如果实际软件包不提供此命令,请替换为实际存在的命令或检查点
if command -v texlive-njurepo-test &>/dev/null; then
LOG_INFO "找到texlive-njurepo-test命令执行测试"
texlive-njurepo-test --help
CHECK_RESULT $? 0 0 "texlive-njurepo-test命令执行失败"
else
# 如果软件包没有提供特定命令,则检查其安装的文件是否存在
LOG_INFO "texlive-njurepo未提供测试命令检查安装的文件"
if [ -f /usr/share/texlive-njurepo/README ]; then
LOG_INFO "找到texlive-njurepo的README文件"
CHECK_RESULT $? 0 0 "未找到texlive-njurepo的README文件"
else
LOG_ERROR "未找到texlive-njurepo的测试命令或标准文件"
exit 255
fi
fi
# 步骤5: 清理环境,如果测试前未安装则卸载软件包
LOG_INFO "步骤5: 清理测试环境"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载texlive-njurepo软件包"
dnf remove -y texlive-njurepo
CHECK_RESULT $? 0 0 "卸载texlive-njurepo失败"
LOG_INFO "环境已恢复到测试前的状态"
else
LOG_INFO "测试前已安装texlive-njurepo保持安装状态"
fi
LOG_INFO "测试完成: Test package installation check"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : Test clean cache operation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-njurepo
LOG_INFO "检查是否已安装texlive-njurepo软件包"
rpm -q texlive-njurepo &> /dev/null
INSTALLED=$?
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在texlive-njurepo软件包"
dnf list available texlive-njurepo &> /dev/null
AVAILABLE=$?
if [ $AVAILABLE -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-njurepo软件包"
exit 255
fi
# 如果未安装,则进行安装
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "安装texlive-njurepo软件包"
dnf install -y texlive-njurepo
CHECK_RESULT $? 0 0 "安装texlive-njurepo失败"
fi
# 测试clean cache操作
LOG_INFO "测试clean cache操作"
dnf clean all
CHECK_RESULT $? 0 0 "清理缓存失败"
# 验证缓存是否被清理
LOG_INFO "验证缓存目录是否为空"
CACHE_DIR="/var/cache/dnf"
if [ -d "$CACHE_DIR" ]; then
# 检查缓存目录是否为空(忽略一些系统自动生成的文件)
CACHE_CONTENT=$(find "$CACHE_DIR" -type f 2>/dev/null | wc -l)
if [ $CACHE_CONTENT -eq 0 ]; then
LOG_INFO "缓存清理成功,缓存目录为空"
else
LOG_INFO "缓存目录中仍有文件,但主要缓存已被清理"
fi
fi
# 环境恢复
LOG_INFO "恢复测试环境"
# 如果测试前未安装,则卸载软件包
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "卸载texlive-njurepo软件包"
dnf remove -y texlive-njurepo
CHECK_RESULT $? 0 0 "卸载texlive-njurepo失败"
# 验证卸载是否成功
rpm -q texlive-njurepo &> /dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "卸载texlive-njurepo失败软件包仍存在"
exit 1
else
LOG_INFO "texlive-njurepo卸载成功"
fi
else
LOG_INFO "测试前已安装texlive-njurepo保持安装状态"
fi
LOG_INFO "测试clean cache操作完成"
}
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-16
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试: Test package installation"
# 步骤1: 检查是否已安装texlive-njurepo
LOG_INFO "步骤1: 检查texlive-njurepo是否已安装"
if rpm -q texlive-njurepo &>/dev/null; then
LOG_INFO "texlive-njurepo已安装测试将验证其功能并保持安装状态。"
INSTALLED="true"
else
LOG_INFO "texlive-njurepo未安装将进行安装测试。"
INSTALLED="false"
fi
# 步骤2: 检查yum源中是否存在texlive-njurepo软件包
LOG_INFO "步骤2: 检查yum源中是否存在texlive-njurepo软件包"
if ! dnf list available texlive-njurepo &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-njurepo软件包"
exit 255
fi
LOG_INFO "yum源中存在texlive-njurepo软件包"
# 步骤3: 如果未安装,则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3: 安装texlive-njurepo软件包"
dnf install -y texlive-njurepo
CHECK_RESULT $? 0 0 "安装texlive-njurepo失败"
LOG_INFO "texlive-njurepo安装成功"
fi
# 步骤4: 验证软件包基本功能(示例:检查安装的文件)
LOG_INFO "步骤4: 验证texlive-njurepo安装的基本文件"
rpm -ql texlive-njurepo | head -5 > /tmp/texlive_files.txt
CHECK_RESULT $? 0 0 "获取texlive-njurepo文件列表失败"
LOG_INFO "texlive-njurepo文件列表检查成功"
# 步骤5: 测试指定命令参数示例假设texlive-njurepo提供了"--version"参数)
LOG_INFO "步骤5: 测试texlive-njurepo命令的--version参数"
# 假设主命令是 texlive-njurepo这里需要根据实际软件包调整
COMMAND_NAME="texlive-njurepo"
if ! command -v $COMMAND_NAME &>/dev/null; then
LOG_INFO "软件包未提供$COMMAND_NAME命令,跳过参数测试。"
else
if $COMMAND_NAME --help 2>&1 | grep -q "\-\-version"; then
$COMMAND_NAME --version
CHECK_RESULT $? 0 0 "执行$COMMAND_NAME --version失败"
LOG_INFO "$COMMAND_NAME --version 执行成功"
else
LOG_ERROR "$COMMAND_NAME 命令不支持--version参数"
exit 255
fi
fi
# 步骤6: 清理测试环境
LOG_INFO "步骤6: 清理测试环境"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载测试安装的texlive-njurepo软件包"
dnf remove -y texlive-njurepo
CHECK_RESULT $? 0 0 "卸载texlive-njurepo失败"
LOG_INFO "texlive-njurepo卸载成功"
else
LOG_INFO "测试前已安装texlive-njurepo保持安装状态无需卸载。"
fi
# 清理临时文件
rm -f /tmp/texlive_files.txt
LOG_INFO "测试完成: Test package installation"
}
main "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : Test listing available packages
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:列出可用软件包"
# 检查是否已安装texlive-njurepo
LOG_INFO "检查texlive-njurepo是否已安装"
if dnf list installed texlive-njurepo &> /dev/null; then
LOG_INFO "texlive-njurepo已安装将保持安装状态"
already_installed=1
else
LOG_INFO "texlive-njurepo未安装将在测试中安装"
already_installed=0
fi
# 检查yum源中是否有texlive-njurepo软件包
LOG_INFO "检查yum源中是否有texlive-njurepo软件包"
if ! dnf list available texlive-njurepo &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-njurepo软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装texlive-njurepo软件包"
dnf install -y texlive-njurepo
CHECK_RESULT $? 0 0 "安装texlive-njurepo失败"
fi
# 测试列出可用软件包功能
LOG_INFO "测试列出可用软件包功能"
texlive-njurepo list
CHECK_RESULT $? 0 0 "列出可用软件包失败"
# 测试带参数的命令(假设支持--help参数
LOG_INFO "测试带--help参数的列出功能"
texlive-njurepo list --help
CHECK_RESULT $? 0 0 "带--help参数的列出功能失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
texlive-njurepo list --invalid-param
if [ $? -eq 255 ]; then
LOG_INFO "不支持的参数正确处理"
else
LOG_ERROR "不支持的参数未正确处理"
exit 255
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载texlive-njurepo软件包"
dnf remove -y texlive-njurepo
CHECK_RESULT $? 0 0 "卸载texlive-njurepo失败"
fi
LOG_INFO "测试完成:列出可用软件包"
}
main "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-10-05
# @License : Mulan PSL v2
# @Desc : Test package uninstallation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-njurepo
LOG_INFO "检查是否已安装texlive-njurepo..."
dnf list installed texlive-njurepo > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-njurepo已安装脚本结束时将保持安装状态。"
INSTALLED=true
else
LOG_INFO "texlive-njurepo未安装将在测试结束后卸载。"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-njurepo包
LOG_INFO "检查yum源中是否存在texlive-njurepo包..."
dnf list available texlive-njurepo > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在texlive-njurepo包"
# 安装texlive-njurepo包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-njurepo包..."
dnf install -y texlive-njurepo
CHECK_RESULT $? 0 0 "安装texlive-njurepo包失败"
fi
# 测试卸载功能
LOG_INFO "测试卸载texlive-njurepo包..."
dnf remove -y texlive-njurepo
CHECK_RESULT $? 0 0 "卸载texlive-njurepo包失败"
# 恢复环境(如果最初未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "恢复环境重新安装texlive-njurepo包..."
dnf install -y texlive-njurepo
CHECK_RESULT $? 0 0 "重新安装texlive-njurepo包失败"
else
LOG_INFO "环境已恢复,保持原状。"
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-16
# @License : Mulan PSL v2
# @Desc : Test package update
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了texlive-njurepo软件包
LOG_INFO "检查是否已安装texlive-njurepo软件包"
rpm -q texlive-njurepo &>/dev/null
installed=$?
# 记录初始安装状态
if [ $installed -eq 0 ]; then
LOG_INFO "检测到texlive-njurepo已安装"
else
LOG_INFO "检测到texlive-njurepo未安装"
fi
# 检查yum源中是否有texlive-njurepo软件包
LOG_INFO "检查yum源中是否有texlive-njurepo软件包"
dnf list available texlive-njurepo &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-njurepo软件包"
exit 255
fi
# 检查dnf update命令是否支持
LOG_INFO "检查dnf update命令参数"
dnf update --help 2>&1 | grep -q "update"
if [ $? -ne 0 ]; then
LOG_ERROR "dnf update命令不支持"
exit 255
fi
# 执行软件包更新测试
LOG_INFO "执行texlive-njurepo软件包更新测试"
dnf update -y texlive-njurepo
CHECK_RESULT $? 0 0 "更新texlive-njurepo软件包失败"
# 验证更新后的软件包版本
LOG_INFO "验证更新后的软件包版本"
dnf info texlive-njurepo | grep -q "Version"
CHECK_RESULT $? 0 0 "无法获取texlive-njurepo版本信息"
# 根据初始状态清理环境
LOG_INFO "根据初始状态恢复环境"
if [ $installed -eq 0 ]; then
LOG_INFO "保持texlive-njurepo安装状态"
else
LOG_INFO "卸载测试安装的texlive-njurepo软件包"
dnf remove -y texlive-njurepo
CHECK_RESULT $? 0 0 "卸载texlive-njurepo软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"