Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -6,18 +6,10 @@
|
||||
"name": "test_bval-parent_function_init",
|
||||
"desc": "Test initialization of bval-parent"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_load",
|
||||
"desc": "Test loading of bval-parent"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_validate",
|
||||
"desc": "Test validation of bval-parent"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_save",
|
||||
"desc": "Test saving of bval-parent"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_install",
|
||||
"desc": "Test installation of bval-parent package"
|
||||
@@ -25,22 +17,6 @@
|
||||
{
|
||||
"name": "test_bval-parent_function_uninstall",
|
||||
"desc": "Test uninstallation of bval-parent package"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_check_version",
|
||||
"desc": "Test checking bval-parent version"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_help",
|
||||
"desc": "Test displaying help or usage information"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_config",
|
||||
"desc": "Test basic configuration of bval-parent"
|
||||
},
|
||||
{
|
||||
"name": "test_bval-parent_function_list",
|
||||
"desc": "Test listing features or components"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/perl-File-MimeInfo/perl-File-MimeInfo-help",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_perl-File-MimeInfo-help_install",
|
||||
"desc": "测试软件包 perl-File-MimeInfo-help 的安装功能,验证其能否通过系统包管理器成功安装。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-File-MimeInfo-help_remove",
|
||||
"desc": "测试软件包 perl-File-MimeInfo-help 的卸载功能,验证其能否通过系统包管理器被干净地移除。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-File-MimeInfo-help_query",
|
||||
"desc": "测试查询软件包 perl-File-MimeInfo-help 的安装状态,验证包管理器能正确返回其版本和状态信息。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-File-MimeInfo-help_help",
|
||||
"desc": "测试软件包 perl-File-MimeInfo-help 提供的帮助文档或工具,验证其是否能输出有效的使用信息。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,26 +6,6 @@
|
||||
"name": "test_python3-identify_install",
|
||||
"desc": "测试python3-identify软件包的安装功能,验证是否能够成功安装。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_python3-identify_identify-cli_path",
|
||||
"desc": "测试 identify-cli 命令的基本功能,传入路径参数"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-identify_identify-cli_filename_only",
|
||||
"desc": "测试 identify-cli 命令的 --filename-only 参数功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-identify_function_filetype",
|
||||
"desc": "测试 identify-cli 命令的文件类型识别功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-identify_function_version",
|
||||
"desc": "测试 identify-cli 命令的版本显示功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-identify_function_help",
|
||||
"desc": "测试 identify-cli 命令的帮助信息显示功能"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/python-pillow/python3-pillow",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_python3-pillow_function_image_open",
|
||||
"desc": "Test opening an image file"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,14 +5,6 @@
|
||||
{
|
||||
"name": "test_rust-lldb_function_install",
|
||||
"desc": "Test the installation of rust-lldb package"
|
||||
},
|
||||
{
|
||||
"name": "test_rust-lldb_rust-lldb",
|
||||
"desc": "测试 rust-lldb 命令的基本功能"
|
||||
},
|
||||
{
|
||||
"name": "test_rust-lldb_function_debug",
|
||||
"desc": "Test debugging with rust-lldb"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,81 +2,9 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/setools/setools-gui",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_setools-gui_apol_h",
|
||||
"desc": "测试apol命令的帮助功能"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_upper_version",
|
||||
"desc": "测试apol命令的版本信息显示功能"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_v",
|
||||
"desc": "测试apol命令的详细输出模式"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_debug",
|
||||
"desc": "测试apol命令的调试模式"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_policy",
|
||||
"desc": "测试apol命令加载并分析指定的SELinux策略文件"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_v_debug",
|
||||
"desc": "测试apol命令同时启用详细输出和调试模式"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_v_policy",
|
||||
"desc": "测试apol命令在详细输出模式下加载并分析指定的SELinux策略文件"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_debug_policy",
|
||||
"desc": "测试apol命令在调试模式下加载并分析指定的SELinux策略文件"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_apol_v_debug_policy",
|
||||
"desc": "测试apol命令同时启用详细输出、调试模式并加载指定的SELinux策略文件"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_install",
|
||||
"desc": "测试setools-gui软件包安装功能"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_check_install",
|
||||
"desc": "测试检查setools-gui软件包是否已安装"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_uninstall",
|
||||
"desc": "测试setools-gui软件包卸载功能"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_gui_launch",
|
||||
"desc": "测试启动setools-gui图形界面主程序"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_apol_help",
|
||||
"desc": "测试apol命令行工具帮助功能"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_sediffx_launch",
|
||||
"desc": "测试启动sediffx策略比较图形工具"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_sepolicy_help",
|
||||
"desc": "测试sepolicy命令行工具帮助功能"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_apol_analyze",
|
||||
"desc": "测试使用apol分析SELinux策略"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_sediffx_compare",
|
||||
"desc": "测试使用sediffx比较两个策略"
|
||||
},
|
||||
{
|
||||
"name": "test_setools-gui_function_sepolicy_query",
|
||||
"desc": "测试使用sepolicy查询策略信息"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-d/texlive-chickenize-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-chickenize-doc_function_install",
|
||||
"desc": "Verify package installation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -9,14 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-context-simpleslides_function_remove",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-context-simpleslides_function_check_installed",
|
||||
"desc": "Verify package installation status"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-context-simpleslides_function_basic_compile",
|
||||
"desc": "Test basic ConTeXt slide compilation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-ebsthesis-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-ebsthesis-doc_function_docgen",
|
||||
"desc": "Test documentation generation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,11 +6,6 @@
|
||||
"name": "test_texlive-etaremune-doc_install",
|
||||
"desc": "测试 texlive-etaremune-doc 包的安装功能,验证是否能够成功安装。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-etaremune-doc_uninstall",
|
||||
"desc": "测试 texlive-etaremune-doc 包的卸载功能,验证是否能够成功卸载。",
|
||||
"machine num": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-exercisebank",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-exercisebank_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exercisebank_function_basic",
|
||||
"desc": "Test basic commands"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,14 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-exp-testopt-doc_function_version",
|
||||
"desc": "Check package version info"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exp-testopt-doc_function_listfiles",
|
||||
"desc": "List package files"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exp-testopt-doc_function_usage",
|
||||
"desc": "Check basic usage example"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,14 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-placeins-doc_function_verify_content",
|
||||
"desc": "Test if the documentation files for the placeins package exist and are accessible."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-placeins-doc_function_usage_info",
|
||||
"desc": "Test accessing basic usage information from the documentation."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-placeins-doc_function_man_page",
|
||||
"desc": "Test if the manual page for the placeins package is available."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -15,10 +15,6 @@
|
||||
"name": "test_texlive-pst-dbicons_function_version",
|
||||
"desc": "测试查询 texlive-pst-dbicons 软件包的版本信息,验证其版本信息能否被正确获取。"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-dbicons_function_usage",
|
||||
"desc": "测试 texlive-pst-dbicons 软件包的基本使用功能,验证其宏包能否在 LaTeX 文档中正常加载并编译。"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-dbicons_function_filelist",
|
||||
"desc": "测试 texlive-pst-dbicons 软件包的文件列表功能,验证其安装后是否包含了预期的样式和文档文件。"
|
||||
|
||||
@@ -5,22 +5,6 @@
|
||||
{
|
||||
"name": "test_texlive-sanitize-umlaut_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-sanitize-umlaut_function_remove",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-sanitize-umlaut_function_check",
|
||||
"desc": "Test package availability"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-sanitize-umlaut_function_usage",
|
||||
"desc": "Test basic command usage"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-sanitize-umlaut_function_help",
|
||||
"desc": "Test help option display"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,29 +2,9 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-profcollege",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-profcollege_basic",
|
||||
"desc": "Test basic functionality of texlive-profcollege"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-profcollege_function_install",
|
||||
"desc": "Test installation of texlive-profcollege package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-profcollege_function_uninstall",
|
||||
"desc": "Test uninstallation of texlive-profcollege package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-profcollege_function_version",
|
||||
"desc": "Test checking package version information"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-profcollege_function_doc",
|
||||
"desc": "Test accessibility of package documentation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-profcollege_function_compile",
|
||||
"desc": "Test compiling a basic LaTeX document using profcollege"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,37 +2,9 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-tocloft",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_toc",
|
||||
"desc": "Test the table of contents functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_install",
|
||||
"desc": "Test if the texlive-tocloft package can be installed successfully."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_uninstall",
|
||||
"desc": "Test if the texlive-tocloft package can be cleanly uninstalled."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_basic_toc",
|
||||
"desc": "Test basic table of contents generation with tocloft."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_toc_format",
|
||||
"desc": "Test formatting options for table of contents."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_list_of_fig",
|
||||
"desc": "Test generation of list of figures with tocloft."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_list_of_tab",
|
||||
"desc": "Test generation of list of tables with tocloft."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tocloft_function_package_load",
|
||||
"desc": "Test if the LaTeX document can load the tocloft package."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test checking bval-parent version
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义测试软件包名称
|
||||
PACKAGE_NAME="bval-parent"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "1. 检查yum源中是否存在软件包: $PACKAGE_NAME"
|
||||
dnf list available $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到软件包: $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查当前环境是否已安装该软件包
|
||||
LOG_INFO "2. 检查当前环境是否已安装软件包: $PACKAGE_NAME"
|
||||
IS_INSTALLED=0
|
||||
rpm -q $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
IS_INSTALLED=1
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ $IS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "3. 安装软件包: $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查bval-parent版本命令
|
||||
LOG_INFO "4. 检查bval-parent版本信息"
|
||||
# 假设检查版本的命令是 bval-parent --version,如果命令不存在或参数不支持则退出
|
||||
command -v bval-parent > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 bval-parent 不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查--version参数是否支持
|
||||
bval-parent --version > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "命令 bval-parent 不支持 --version 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行版本检查命令
|
||||
bval-parent --version
|
||||
CHECK_RESULT $? 0 0 "执行 bval-parent --version 失败"
|
||||
|
||||
# 步骤5: 在第二个服务器上执行相同检查(如果配置了第二个服务器)
|
||||
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
|
||||
LOG_INFO "5. 在第二个服务器上检查bval-parent版本"
|
||||
SSH_CMD "command -v bval-parent > /dev/null 2>&1" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "第二个服务器上命令 bval-parent 不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
SSH_CMD "bval-parent --version > /dev/null 2>&1" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "第二个服务器上命令 bval-parent 不支持 --version 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
SSH_CMD "bval-parent --version" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
CHECK_RESULT $? 0 0 "在第二个服务器上执行 bval-parent --version 失败"
|
||||
else
|
||||
LOG_INFO "5. 未配置第二个服务器,跳过在第二个服务器上的检查"
|
||||
fi
|
||||
|
||||
# 步骤6: 清理环境
|
||||
LOG_INFO "6. 清理测试环境"
|
||||
if [ $IS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包: $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: Test checking bval-parent version"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,99 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic configuration of bval-parent
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试bval-parent基础配置
|
||||
|
||||
LOG_INFO "开始测试bval-parent基础配置"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="bval-parent"
|
||||
|
||||
# 检查环境是否已安装该软件包
|
||||
LOG_INFO "检查是否已安装${PACKAGE_NAME}软件包"
|
||||
if rpm -q ${PACKAGE_NAME} &> /dev/null; then
|
||||
LOG_INFO "${PACKAGE_NAME}已安装,测试完成后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}未安装,将在测试中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有${PACKAGE_NAME}软件包"
|
||||
if ! dnf list available ${PACKAGE_NAME} &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
# 测试bval-parent基础配置
|
||||
LOG_INFO "测试bval-parent基础配置功能"
|
||||
|
||||
# 检查bval-parent命令是否存在
|
||||
LOG_INFO "检查bval-parent命令是否可用"
|
||||
if ! command -v bval-parent &> /dev/null; then
|
||||
LOG_ERROR "bval-parent命令不存在"
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试bval-parent命令的基本参数
|
||||
LOG_INFO "测试bval-parent命令的--help参数"
|
||||
bval-parent --help
|
||||
CHECK_RESULT $? 0 0 "bval-parent --help执行失败"
|
||||
|
||||
LOG_INFO "测试bval-parent命令的--version参数"
|
||||
bval-parent --version
|
||||
CHECK_RESULT $? 0 0 "bval-parent --version执行失败"
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试bval-parent命令的不支持参数"
|
||||
bval-parent --invalid-param 2>&1 | grep -q "unrecognized option"
|
||||
CHECK_RESULT $? 0 0 "bval-parent应该不支持--invalid-param参数"
|
||||
|
||||
# 测试基本配置功能
|
||||
LOG_INFO "测试bval-parent基本配置功能"
|
||||
bval-parent config --show
|
||||
CHECK_RESULT $? 0 0 "bval-parent config --show执行失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}在测试前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "bval-parent基础配置测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test displaying help or usage information
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:判断是否已安装bval-parent软件包
|
||||
LOG_INFO "检查bval-parent软件包是否已安装"
|
||||
rpm -q bval-parent > /dev/null 2>&1
|
||||
is_installed=$?
|
||||
|
||||
# 记录初始安装状态,用于脚本结束时的环境恢复
|
||||
initial_install_status=$is_installed
|
||||
|
||||
# 如果未安装,则进行安装
|
||||
if [ $is_installed -ne 0 ]; then
|
||||
LOG_INFO "bval-parent软件包未安装,准备进行安装"
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在bval-parent软件包"
|
||||
dnf list available bval-parent > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到bval-parent软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到bval-parent软件包,测试无法继续"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装软件包
|
||||
LOG_INFO "开始安装bval-parent软件包"
|
||||
dnf install -y bval-parent > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "bval-parent软件包安装失败"
|
||||
LOG_INFO "bval-parent软件包安装成功"
|
||||
else
|
||||
LOG_INFO "bval-parent软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试:显示帮助或使用信息
|
||||
LOG_INFO "测试bval-parent命令的帮助信息显示功能"
|
||||
|
||||
# 检查bval-parent命令是否支持--help或-h参数
|
||||
LOG_INFO "检查bval-parent命令是否支持帮助参数"
|
||||
which bval-parent > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "bval-parent命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 尝试使用--help参数
|
||||
LOG_INFO "尝试使用--help参数获取帮助信息"
|
||||
bval-parent --help > /dev/null 2>&1
|
||||
help_result=$?
|
||||
|
||||
# 如果--help不支持,尝试使用-h参数
|
||||
if [ $help_result -ne 0 ]; then
|
||||
LOG_INFO "--help参数不支持,尝试使用-h参数"
|
||||
bval-parent -h > /dev/null 2>&1
|
||||
help_result=$?
|
||||
|
||||
if [ $help_result -ne 0 ]; then
|
||||
LOG_ERROR "bval-parent命令不支持--help或-h参数"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
|
||||
# 验证帮助信息是否正确显示
|
||||
LOG_INFO "验证帮助信息是否正确显示"
|
||||
bval-parent --help 2>&1 | head -5 | grep -i "usage\|help\|选项" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "帮助信息显示不正常"
|
||||
LOG_INFO "帮助信息显示正常"
|
||||
|
||||
# 环境清理:根据初始状态恢复环境
|
||||
LOG_INFO "开始环境清理"
|
||||
|
||||
# 如果初始状态是未安装,且当前已安装,则卸载软件包
|
||||
if [ $initial_install_status -ne 0 ]; then
|
||||
LOG_INFO "初始环境未安装bval-parent,执行卸载操作"
|
||||
rpm -q bval-parent > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "卸载bval-parent软件包"
|
||||
dnf remove -y bval-parent > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "bval-parent软件包卸载失败"
|
||||
LOG_INFO "bval-parent软件包卸载成功"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "初始环境已安装bval-parent,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test listing features or components
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装测试所需软件包
|
||||
LOG_INFO "检查测试环境是否已安装所需软件包"
|
||||
if dnf list installed | grep -q "bval-parent-function-list"; then
|
||||
LOG_INFO "软件包已安装,标记为保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在bval-parent-function-list软件包"
|
||||
if ! dnf search bval-parent-function-list 2>/dev/null | grep -q "bval-parent-function-list"; then
|
||||
LOG_ERROR "yum源中未找到bval-parent-function-list软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行测试用例:列出功能或组件
|
||||
LOG_INFO "执行测试用例:列出功能或组件"
|
||||
|
||||
# 检查命令参数是否存在
|
||||
LOG_INFO "检查bval-parent-function-list命令是否支持list参数"
|
||||
if ! bval-parent-function-list --help 2>/dev/null | grep -q "list"; then
|
||||
LOG_ERROR "bval-parent-function-list命令不支持list参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装bval-parent-function-list软件包"
|
||||
dnf install -y bval-parent-function-list
|
||||
CHECK_RESULT $? 0 0 "安装bval-parent-function-list软件包失败"
|
||||
fi
|
||||
|
||||
# 执行列出功能或组件的命令
|
||||
LOG_INFO "执行bval-parent-function-list list命令"
|
||||
bval-parent-function-list list
|
||||
CHECK_RESULT $? 0 0 "执行bval-parent-function-list list命令失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载bval-parent-function-list软件包"
|
||||
dnf remove -y bval-parent-function-list
|
||||
CHECK_RESULT $? 0 0 "卸载bval-parent-function-list软件包失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test loading of bval-parent
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装指定软件包
|
||||
LOG_INFO "检查是否已安装bval-parent软件包"
|
||||
if dnf list installed bval-parent &>/dev/null; then
|
||||
LOG_INFO "bval-parent软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "bval-parent软件包未安装,脚本结束时将卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在bval-parent软件包
|
||||
LOG_INFO "检查yum源中是否存在bval-parent软件包"
|
||||
if ! dnf list available bval-parent &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到bval-parent软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装bval-parent软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装bval-parent软件包"
|
||||
dnf install -y bval-parent
|
||||
CHECK_RESULT $? 0 0 "安装bval-parent软件包失败"
|
||||
fi
|
||||
|
||||
# 测试加载bval-parent功能
|
||||
LOG_INFO "测试加载bval-parent功能"
|
||||
bval-parent --test-load
|
||||
CHECK_RESULT $? 0 0 "加载bval-parent功能失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载bval-parent软件包"
|
||||
dnf remove -y bval-parent
|
||||
CHECK_RESULT $? 0 0 "卸载bval-parent软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test saving of bval-parent
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:test_bval-parent_function_save
|
||||
|
||||
LOG_INFO "开始测试:Test saving of bval-parent"
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "检查环境是否已安装所需软件包"
|
||||
if dnf list installed bval-parent &>/dev/null; then
|
||||
LOG_INFO "软件包 bval-parent 已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 bval-parent 未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在 bval-parent 软件包"
|
||||
if ! dnf list available bval-parent &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 bval-parent 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装 bval-parent 软件包"
|
||||
dnf install -y bval-parent
|
||||
CHECK_RESULT $? 0 0 "安装 bval-parent 失败"
|
||||
fi
|
||||
|
||||
# 测试保存功能
|
||||
LOG_INFO "测试保存功能"
|
||||
bval-parent save --test-param
|
||||
CHECK_RESULT $? 0 0 "保存功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 bval-parent 软件包"
|
||||
dnf remove -y bval-parent
|
||||
CHECK_RESULT $? 0 0 "卸载 bval-parent 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test saving of bval-parent"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包 perl-File-MimeInfo-help 提供的帮助文档或工具,验证其是否能输出有效的使用信息。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 perl-File-MimeInfo-help 帮助文档"
|
||||
LOG_INFO "步骤1: 检查 yum 源中是否存在 perl-File-MimeInfo-help 软件包"
|
||||
dnf list available perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 perl-File-MimeInfo-help 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查系统是否已安装 perl-File-MimeInfo-help"
|
||||
rpm -q perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "perl-File-MimeInfo-help 已安装,测试后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "perl-File-MimeInfo-help 未安装,将安装后进行测试"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装 perl-File-MimeInfo-help 软件包"
|
||||
dnf install -y perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "安装 perl-File-MimeInfo-help 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 验证 perl-File-MimeInfo-help 提供的帮助文档或工具"
|
||||
LOG_INFO "检查是否有可执行的帮助命令或文档"
|
||||
rpm -ql perl-File-MimeInfo-help | grep -E "\.(1|8)$" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "找到 man page 文档,尝试查看"
|
||||
MAN_PAGE=$(rpm -ql perl-File-MimeInfo-help | grep -E "\.(1|8)$" | head -1)
|
||||
if [ -n "$MAN_PAGE" ]; then
|
||||
man -P cat $(basename $MAN_PAGE .gz 2>/dev/null | sed "s/\.[18]$//") 2>&1 | head -5 > /dev/null
|
||||
CHECK_RESULT $? 0 0 "无法查看帮助文档"
|
||||
else
|
||||
LOG_ERROR "未找到有效的帮助文档"
|
||||
exit 255
|
||||
fi
|
||||
else
|
||||
LOG_INFO "未找到 man page,检查是否有其他帮助工具"
|
||||
HELP_CMD=$(rpm -ql perl-File-MimeInfo-help | xargs file 2>/dev/null | grep "executable" | head -1 | cut -d: -f1)
|
||||
if [ -n "$HELP_CMD" ]; then
|
||||
$HELP_CMD --help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "使用 --help 参数查看帮助"
|
||||
$HELP_CMD --help | head -5 > /dev/null
|
||||
CHECK_RESULT $? 0 0 "无法通过 --help 获取帮助信息"
|
||||
else
|
||||
LOG_ERROR "命令不支持 --help 参数"
|
||||
exit 255
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到可执行的帮助工具"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 清理环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的 perl-File-MimeInfo-help 软件包"
|
||||
dnf remove -y perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-File-MimeInfo-help 失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包 perl-File-MimeInfo-help 的安装功能,验证其能否通过系统包管理器成功安装。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试 perl-File-MimeInfo-help 软件包的安装功能"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查 yum 源中是否存在 perl-File-MimeInfo-help 软件包"
|
||||
if ! dnf list available perl-File-MimeInfo-help &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 perl-File-MimeInfo-help 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前环境中是否已安装该软件包
|
||||
LOG_INFO "检查当前环境是否已安装 perl-File-MimeInfo-help"
|
||||
if rpm -q perl-File-MimeInfo-help &>/dev/null; then
|
||||
LOG_INFO "检测到 perl-File-MimeInfo-help 已安装,将保持安装状态"
|
||||
installed_before_test=true
|
||||
else
|
||||
LOG_INFO "当前环境未安装 perl-File-MimeInfo-help,将在测试中安装"
|
||||
installed_before_test=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则执行安装步骤
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "开始安装 perl-File-MimeInfo-help 软件包"
|
||||
dnf install -y perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "安装 perl-File-MimeInfo-help 软件包失败"
|
||||
LOG_INFO "perl-File-MimeInfo-help 软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证软件包安装成功
|
||||
LOG_INFO "验证 perl-File-MimeInfo-help 软件包是否成功安装"
|
||||
rpm -q perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "验证 perl-File-MimeInfo-help 软件包安装状态失败"
|
||||
|
||||
# 验证软件包基本功能(例如查看帮助信息)
|
||||
LOG_INFO "验证 perl-File-MimeInfo-help 的基本功能(查看帮助信息)"
|
||||
mimeopen --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "执行 mimeopen --help 命令失败"
|
||||
|
||||
# 环境清理:如果测试前未安装,则在测试后卸载
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "测试完成,清理环境:卸载 perl-File-MimeInfo-help 软件包"
|
||||
dnf remove -y perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-File-MimeInfo-help 软件包失败"
|
||||
LOG_INFO "环境清理完成,perl-File-MimeInfo-help 软件包已卸载"
|
||||
else
|
||||
LOG_INFO "测试完成,保持 perl-File-MimeInfo-help 软件包的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "perl-File-MimeInfo-help 软件包安装功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试查询软件包 perl-File-MimeInfo-help 的安装状态,验证包管理器能正确返回其版本和状态信息。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装perl-File-MimeInfo-help软件包
|
||||
LOG_INFO "开始测试查询perl-File-MimeInfo-help软件包状态"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否存在perl-File-MimeInfo-help软件包"
|
||||
dnf list available perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到perl-File-MimeInfo-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装该软件包
|
||||
LOG_INFO "检查当前系统是否已安装perl-File-MimeInfo-help软件包"
|
||||
INSTALLED=false
|
||||
rpm -q perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "perl-File-MimeInfo-help软件包已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "perl-File-MimeInfo-help软件包未安装,开始安装"
|
||||
dnf install -y perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装perl-File-MimeInfo-help软件包失败"
|
||||
fi
|
||||
|
||||
# 测试查询软件包信息
|
||||
LOG_INFO "测试查询perl-File-MimeInfo-help软件包详细信息"
|
||||
rpm -qi perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "查询perl-File-MimeInfo-help软件包详细信息失败"
|
||||
|
||||
# 测试查询软件包版本
|
||||
LOG_INFO "测试查询perl-File-MimeInfo-help软件包版本"
|
||||
VERSION=$(rpm -q --qf "%{VERSION}-%{RELEASE}\n" perl-File-MimeInfo-help 2>/dev/null)
|
||||
if [ -z "$VERSION" ]; then
|
||||
LOG_ERROR "无法获取perl-File-MimeInfo-help软件包版本"
|
||||
CHECK_RESULT 1 0 0 "查询perl-File-MimeInfo-help软件包版本失败"
|
||||
else
|
||||
LOG_INFO "perl-File-MimeInfo-help软件包版本: $VERSION"
|
||||
CHECK_RESULT 0 0 0 "成功获取perl-File-MimeInfo-help软件包版本"
|
||||
fi
|
||||
|
||||
# 测试查询软件包文件列表
|
||||
LOG_INFO "测试查询perl-File-MimeInfo-help软件包文件列表"
|
||||
rpm -ql perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "查询perl-File-MimeInfo-help软件包文件列表失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的perl-File-MimeInfo-help软件包"
|
||||
dnf remove -y perl-File-MimeInfo-help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载perl-File-MimeInfo-help软件包失败"
|
||||
LOG_INFO "已恢复环境到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持perl-File-MimeInfo-help软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "perl-File-MimeInfo-help软件包查询测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包 perl-File-MimeInfo-help 的卸载功能,验证其能否通过系统包管理器被干净地移除。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 perl-File-MimeInfo-help 软件包的卸载功能"
|
||||
LOG_INFO "步骤1: 检查 perl-File-MimeInfo-help 软件包是否已在 yum 源中"
|
||||
dnf list available perl-File-MimeInfo-help
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 perl-File-MimeInfo-help 在 yum 源中不可用"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 perl-File-MimeInfo-help 在 yum 源中可用"
|
||||
|
||||
LOG_INFO "步骤2: 检查 perl-File-MimeInfo-help 软件包是否已安装"
|
||||
rpm -q perl-File-MimeInfo-help
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 perl-File-MimeInfo-help 已安装,记录当前状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 perl-File-MimeInfo-help 未安装,将在测试中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装 perl-File-MimeInfo-help 软件包"
|
||||
dnf install -y perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "安装 perl-File-MimeInfo-help 软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 验证软件包是否成功安装"
|
||||
rpm -q perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "验证软件包安装状态失败"
|
||||
|
||||
LOG_INFO "步骤5: 执行卸载命令,移除 perl-File-MimeInfo-help 软件包"
|
||||
dnf remove -y perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "卸载 perl-File-MimeInfo-help 软件包失败"
|
||||
LOG_INFO "软件包卸载成功"
|
||||
|
||||
LOG_INFO "步骤6: 验证软件包是否已成功移除"
|
||||
rpm -q perl-File-MimeInfo-help
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "软件包卸载后仍然存在,卸载不干净"
|
||||
CHECK_RESULT 1 0 0 "软件包卸载不干净"
|
||||
else
|
||||
LOG_INFO "软件包已成功移除"
|
||||
CHECK_RESULT 0 0 0 "软件包卸载验证失败"
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤7: 恢复环境,卸载在测试中安装的软件包"
|
||||
LOG_INFO "由于测试前未安装,环境已恢复,无需额外操作"
|
||||
else
|
||||
LOG_INFO "步骤7: 恢复环境,重新安装原始软件包"
|
||||
dnf install -y perl-File-MimeInfo-help
|
||||
CHECK_RESULT $? 0 0 "重新安装 perl-File-MimeInfo-help 软件包失败"
|
||||
LOG_INFO "环境恢复完成,软件包已重新安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 identify-cli 命令的文件类型识别功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试 identify-cli 命令的文件类型识别功能"
|
||||
|
||||
# 检查是否已安装 identify-cli
|
||||
LOG_INFO "检查是否已安装 identify-cli"
|
||||
if dnf list installed identify-cli &>/dev/null; then
|
||||
LOG_INFO "identify-cli 已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "identify-cli 未安装,将在测试完成后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 identify-cli
|
||||
LOG_INFO "检查 yum 源中是否有 identify-cli"
|
||||
if ! dnf list available identify-cli &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 identify-cli,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 identify-cli
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装 identify-cli"
|
||||
dnf install -y identify-cli &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装 identify-cli 失败"
|
||||
fi
|
||||
|
||||
# 测试文件类型识别功能
|
||||
LOG_INFO "测试文件类型识别功能"
|
||||
|
||||
# 创建一个临时文件用于测试
|
||||
TEST_FILE="/tmp/test_file.txt"
|
||||
echo "This is a test file." > "$TEST_FILE"
|
||||
|
||||
# 使用 identify-cli 识别文件类型
|
||||
LOG_INFO "执行命令:identify-cli --file $TEST_FILE"
|
||||
identify-cli --file "$TEST_FILE"
|
||||
CHECK_RESULT $? 0 0 "文件类型识别失败"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f "$TEST_FILE"
|
||||
|
||||
# 如果测试前未安装,则在测试完成后卸载 identify-cli
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载 identify-cli"
|
||||
dnf remove -y identify-cli &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载 identify-cli 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 identify-cli 命令的帮助信息显示功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 identify-cli 命令的帮助信息显示功能"
|
||||
|
||||
# 检查是否已安装 python3-identify
|
||||
if dnf list installed python3-identify &>/dev/null; then
|
||||
LOG_INFO "python3-identify 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-identify 未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 python3-identify 软件包
|
||||
if ! dnf list available python3-identify &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 python3-identify 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装 python3-identify"
|
||||
dnf install -y python3-identify
|
||||
CHECK_RESULT $? 0 0 "安装 python3-identify 失败"
|
||||
fi
|
||||
|
||||
# 测试 identify-cli --help 命令
|
||||
LOG_INFO "测试 identify-cli --help 命令"
|
||||
identify-cli --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "identify-cli --help 命令执行失败"
|
||||
|
||||
# 测试 identify-cli -h 命令(短参数)
|
||||
LOG_INFO "测试 identify-cli -h 命令"
|
||||
identify-cli -h &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "identify-cli -h 命令执行失败"
|
||||
|
||||
# 测试不支持或无效参数的情况(例如 --invalid)
|
||||
LOG_INFO "测试无效参数 --invalid"
|
||||
identify-cli --invalid &>/dev/null
|
||||
if [ $? -ne 255 ]; then
|
||||
LOG_ERROR "无效参数未返回预期退出码"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载 python3-identify"
|
||||
dnf remove -y python3-identify
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-identify失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 identify-cli 命令的版本显示功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装python3-identify-cli包
|
||||
LOG_INFO "检查是否已安装python3-identify-cli包"
|
||||
if rpm -q python3-identify-cli &>/dev/null; then
|
||||
LOG_INFO "python3-identify-cli已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-identify-cli未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-identify-cli包
|
||||
LOG_INFO "检查yum源中是否有python3-identify-cli包"
|
||||
if ! dnf list available python3-identify-cli &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-identify-cli包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-identify-cli包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装python3-identify-cli包"
|
||||
dnf install -y python3-identify-cli || {
|
||||
LOG_ERROR "安装python3-identify-cli包失败"
|
||||
exit 255
|
||||
}
|
||||
fi
|
||||
|
||||
# 测试identify-cli命令的版本显示功能
|
||||
LOG_INFO "测试identify-cli命令的版本显示功能"
|
||||
version_output=$(identify-cli --version 2>&1)
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "执行identify-cli --version失败"
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-identify-cli包"
|
||||
dnf remove -y python3-identify-cli
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查版本输出是否符合预期
|
||||
LOG_INFO "检查版本输出是否符合预期"
|
||||
CHECK_RESULT $? 0 0 "版本输出不符合预期"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-identify-cli包"
|
||||
dnf remove -y python3-identify-cli || {
|
||||
LOG_ERROR "卸载python3-identify-cli包失败"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 identify-cli 命令的 --filename-only 参数功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 identify-cli 命令的 --filename-only 参数功能"
|
||||
|
||||
# 检查是否已安装 identify-cli
|
||||
if ! dnf list installed identify-cli &>/dev/null; then
|
||||
LOG_INFO "identify-cli 未安装,开始安装"
|
||||
if ! dnf list available identify-cli &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 identify-cli 软件包"
|
||||
exit 255
|
||||
fi
|
||||
dnf install -y identify-cli
|
||||
CHECK_RESULT $? 0 0 "安装 identify-cli 失败"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "identify-cli 已安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 测试 --filename-only 参数
|
||||
LOG_INFO "测试 --filename-only 参数功能"
|
||||
identify-cli --filename-only testfile
|
||||
CHECK_RESULT $? 0 0 "--filename-only 参数测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ $INSTALLED -eq 1 ]; then
|
||||
LOG_INFO "卸载 identify-cli"
|
||||
dnf remove -y identify-cli
|
||||
CHECK_RESULT $? 0 0 "卸载 identify-cli 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-08
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 identify-cli 命令的基本功能,传入路径参数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 identify-cli 命令的基本功能,传入路径参数"
|
||||
|
||||
# 检查是否已安装 identify-cli
|
||||
LOG_INFO "检查是否已安装 identify-cli"
|
||||
if ! dnf list installed identify-cli &>/dev/null; then
|
||||
LOG_INFO "identify-cli 未安装,准备安装"
|
||||
# 检查 yum 源中是否有该软件包
|
||||
if ! dnf list available identify-cli &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 identify-cli 软件包"
|
||||
exit 255
|
||||
fi
|
||||
# 安装软件包
|
||||
dnf install -y identify-cli
|
||||
CHECK_RESULT $? 0 0 "安装 identify-cli 失败"
|
||||
# 标记为需要卸载
|
||||
UNINSTALL_NEEDED=1
|
||||
else
|
||||
LOG_INFO "identify-cli 已安装"
|
||||
fi
|
||||
|
||||
# 测试 identify-cli 命令的基本功能
|
||||
LOG_INFO "测试 identify-cli 命令的基本功能"
|
||||
if ! identify-cli --help &>/dev/null; then
|
||||
LOG_ERROR "identify-cli 命令不支持或参数错误"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试传入路径参数
|
||||
LOG_INFO "测试传入路径参数"
|
||||
TEST_PATH="/tmp/test_path"
|
||||
mkdir -p $TEST_PATH
|
||||
identify-cli $TEST_PATH
|
||||
CHECK_RESULT $? 0 0 "identify-cli 执行失败"
|
||||
|
||||
# 清理测试路径
|
||||
rm -rf $TEST_PATH
|
||||
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ "$UNINSTALL_NEEDED" == "1" ]; then
|
||||
LOG_INFO "卸载 identify-cli"
|
||||
dnf remove -y identify-cli
|
||||
CHECK_RESULT $? 0 0 "卸载 identify-cli 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2025-12-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test opening an image file
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
LOG_INFO "开始测试:Test opening an image file"
|
||||
|
||||
# 检查是否已安装python3-pillow
|
||||
LOG_INFO "检查是否已安装python3-pillow"
|
||||
dnf list installed python3-pillow > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-pillow已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-pillow未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-pillow
|
||||
LOG_INFO "检查yum源中是否有python3-pillow"
|
||||
dnf list available python3-pillow > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-pillow,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-pillow
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装python3-pillow"
|
||||
dnf install -y python3-pillow
|
||||
CHECK_RESULT $? 0 0 "安装python3-pillow失败"
|
||||
fi
|
||||
|
||||
# 测试打开图片文件功能
|
||||
LOG_INFO "测试打开图片文件功能"
|
||||
cat <<EOF > test_image_open.py
|
||||
from PIL import Image
|
||||
try:
|
||||
img = Image.open("test_image.png")
|
||||
print("图片打开成功")
|
||||
except Exception as e:
|
||||
print(f"图片打开失败: {e}")
|
||||
exit(1)
|
||||
EOF
|
||||
|
||||
# 创建测试图片
|
||||
LOG_INFO "创建测试图片"
|
||||
echo "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z/C/HgAGgwJ/lKDeQwAAAABJRU5ErkJggg==" | base64 -d > test_image.png
|
||||
CHECK_RESULT $? 0 0 "创建测试图片失败"
|
||||
|
||||
# 执行测试脚本
|
||||
LOG_INFO "执行测试脚本"
|
||||
python3 test_image_open.py
|
||||
CHECK_RESULT $? 0 0 "打开图片文件失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_image.png test_image_open.py
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载python3-pillow
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-pillow"
|
||||
dnf remove -y python3-pillow
|
||||
CHECK_RESULT $? 0 0 "卸载python3-pillow失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test opening an image file"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test debugging with rust-lldb
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test debugging with rust-lldb"
|
||||
|
||||
# 检查是否已安装rust-lldb
|
||||
LOG_INFO "检查是否已安装rust-lldb"
|
||||
if dnf list installed rust-lldb &>/dev/null; then
|
||||
LOG_INFO "rust-lldb已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "rust-lldb未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有rust-lldb软件包
|
||||
LOG_INFO "检查yum源中是否有rust-lldb软件包"
|
||||
if ! dnf list available rust-lldb &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到rust-lldb软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装rust-lldb
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装rust-lldb"
|
||||
dnf install -y rust-lldb
|
||||
CHECK_RESULT $? 0 0 "安装rust-lldb失败"
|
||||
fi
|
||||
|
||||
# 测试调试功能
|
||||
LOG_INFO "测试调试功能"
|
||||
if ! rust-lldb --version &>/dev/null; then
|
||||
LOG_ERROR "rust-lldb命令不支持或参数错误"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
CHECK_RESULT $? 0 0 "调试功能测试失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载rust-lldb
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载rust-lldb"
|
||||
dnf remove -y rust-lldb
|
||||
CHECK_RESULT $? 0 0 "卸载rust-lldb失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test debugging with rust-lldb"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 rust-lldb 命令的基本功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 rust-lldb 命令的基本功能"
|
||||
|
||||
# 检查是否已安装 rust-lldb
|
||||
if dnf list installed rust-lldb &> /dev/null; then
|
||||
LOG_INFO "rust-lldb 已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "rust-lldb 未安装,将在测试完成后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 rust-lldb 软件包
|
||||
if ! dnf list available rust-lldb &> /dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 rust-lldb 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装 rust-lldb
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装 rust-lldb"
|
||||
dnf install -y rust-lldb
|
||||
CHECK_RESULT $? 0 0 "安装 rust-lldb 失败"
|
||||
fi
|
||||
|
||||
# 测试 rust-lldb 命令基本功能
|
||||
LOG_INFO "测试 rust-lldb --version 命令"
|
||||
rust-lldb --version &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "rust-lldb --version 命令执行失败"
|
||||
|
||||
LOG_INFO "测试 rust-lldb --help 命令"
|
||||
rust-lldb --help &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "rust-lldb --help 命令执行失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载 rust-lldb"
|
||||
dnf remove -y rust-lldb
|
||||
CHECK_RESULT $? 0 0 "卸载 rust-lldb 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令在调试模式下加载并分析指定的SELinux策略文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出(可选,但通常LOG_INFO/LOG_ERROR会处理)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*" >&2
|
||||
}
|
||||
|
||||
# 定义软件包名称和命令
|
||||
PACKAGE_NAME="setools-gui"
|
||||
COMMAND="apol"
|
||||
DEBUG_PARAM="-d"
|
||||
TEST_POLICY_FILE="/usr/share/selinux/devel/policy.xml" # 示例策略文件路径,可根据实际调整
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查系统是否已安装软件包
|
||||
LOG_INFO "步骤2: 检查系统是否已安装软件包 $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
|
||||
WAS_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试中安装"
|
||||
WAS_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "$WAS_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查apol命令是否支持调试参数
|
||||
LOG_INFO "步骤4: 检查apol命令是否支持调试参数 $DEBUG_PARAM"
|
||||
if ! $COMMAND --help 2>&1 | grep -q -- "$DEBUG_PARAM"; then
|
||||
LOG_ERROR "apol命令不支持参数 $DEBUG_PARAM"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 检查测试用的SELinux策略文件是否存在
|
||||
LOG_INFO "步骤5: 检查测试用的SELinux策略文件是否存在"
|
||||
if [ ! -f "$TEST_POLICY_FILE" ]; then
|
||||
LOG_ERROR "测试策略文件 $TEST_POLICY_FILE 不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤6: 在调试模式下加载并分析指定的SELinux策略文件
|
||||
LOG_INFO "步骤6: 在调试模式下加载并分析指定的SELinux策略文件"
|
||||
$COMMAND $DEBUG_PARAM "$TEST_POLICY_FILE"
|
||||
CHECK_RESULT $? 0 0 "apol命令在调试模式下分析策略文件失败"
|
||||
|
||||
# 步骤7: 环境恢复
|
||||
LOG_INFO "步骤7: 环境恢复"
|
||||
if [ "$WAS_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 "$@"
|
||||
@@ -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-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令的帮助功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装setools-gui
|
||||
LOG_INFO "检查setools-gui是否已安装"
|
||||
rpm -q setools-gui
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "setools-gui已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "setools-gui未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有setools-gui软件包
|
||||
LOG_INFO "检查yum源中是否有setools-gui软件包"
|
||||
dnf list available setools-gui 2>/dev/null | grep -q setools-gui
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装setools-gui(如果未安装)
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
fi
|
||||
|
||||
# 检查apol命令是否存在
|
||||
LOG_INFO "检查apol命令是否存在"
|
||||
command -v apol >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "apol命令不存在"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理安装的setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查apol命令是否支持--help参数
|
||||
LOG_INFO "检查apol命令是否支持--help参数"
|
||||
apol --help >/dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "apol命令不支持--help参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理安装的setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试apol命令的帮助功能
|
||||
LOG_INFO "测试apol命令的帮助功能"
|
||||
apol --help | grep -q "Usage:"
|
||||
CHECK_RESULT $? 0 0 "apol命令帮助功能测试失败"
|
||||
|
||||
# 清理环境(如果脚本开始时未安装setools-gui)
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理安装的setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试apol命令的帮助功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,99 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令加载并分析指定的SELinux策略文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:判断setools-gui软件包是否已安装
|
||||
LOG_INFO "检查setools-gui软件包是否已安装"
|
||||
rpm -q setools-gui
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "setools-gui已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "setools-gui未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在setools-gui软件包
|
||||
LOG_INFO "检查yum源中是否存在setools-gui软件包"
|
||||
dnf list available setools-gui 2>/dev/null | grep -q setools-gui
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装setools-gui
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui软件包失败"
|
||||
fi
|
||||
|
||||
# 检查apol命令是否存在
|
||||
LOG_INFO "检查apol命令是否存在"
|
||||
which apol >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "apol命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查apol命令是否支持--policy-file参数
|
||||
LOG_INFO "检查apol命令是否支持--policy-file参数"
|
||||
apol --help 2>&1 | grep -q -- "--policy-file"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "apol命令不支持--policy-file参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的SELinux策略文件
|
||||
LOG_INFO "创建测试用的SELinux策略文件"
|
||||
cat > /tmp/test_policy.te << EOF
|
||||
policy_module(test_policy, 1.0)
|
||||
type test_type_t;
|
||||
EOF
|
||||
checkmodule -M -m -o /tmp/test_policy.mod /tmp/test_policy.te
|
||||
semodule_package -o /tmp/test_policy.pp -m /tmp/test_policy.mod
|
||||
CHECK_RESULT $? 0 0 "创建SELinux策略文件失败"
|
||||
|
||||
# 使用apol命令加载并分析指定的SELinux策略文件
|
||||
LOG_INFO "使用apol命令加载并分析指定的SELinux策略文件"
|
||||
apol --policy-file /tmp/test_policy.pp --info > /tmp/apol_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "apol命令执行失败"
|
||||
|
||||
# 验证apol输出是否包含策略信息
|
||||
LOG_INFO "验证apol输出是否包含策略信息"
|
||||
grep -q "Policy Name" /tmp/apol_output.txt
|
||||
CHECK_RESULT $? 0 0 "apol输出未包含策略信息"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f /tmp/test_policy.te /tmp/test_policy.mod /tmp/test_policy.pp /tmp/apol_output.txt
|
||||
|
||||
# 如果测试前未安装setools-gui,则在测试结束后卸载
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令的版本信息显示功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试apol命令的版本信息显示功能
|
||||
LOG_INFO "开始测试apol命令的版本信息显示功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查setools-gui软件包是否在yum源中"
|
||||
dnf list available setools-gui 2>/dev/null | grep -q "setools-gui"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装setools-gui
|
||||
LOG_INFO "检查setools-gui是否已安装"
|
||||
rpm -q setools-gui > /dev/null 2>&1
|
||||
INSTALLED=$?
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
else
|
||||
LOG_INFO "setools-gui已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 检查apol命令是否存在
|
||||
LOG_INFO "检查apol命令是否存在"
|
||||
command -v apol > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "apol命令不存在"
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试apol命令的版本参数
|
||||
LOG_INFO "测试apol命令的版本参数"
|
||||
apol --version > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "apol支持--version参数"
|
||||
apol --version 2>&1 | grep -q "apol"
|
||||
CHECK_RESULT $? 0 0 "apol --version输出不符合预期"
|
||||
else
|
||||
LOG_INFO "尝试使用-V参数"
|
||||
apol -V > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "apol支持-V参数"
|
||||
apol -V 2>&1 | grep -q "apol"
|
||||
CHECK_RESULT $? 0 0 "apol -V输出不符合预期"
|
||||
else
|
||||
LOG_ERROR "apol命令不支持版本参数"
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
|
||||
# 测试无效参数
|
||||
LOG_INFO "测试apol命令无效参数"
|
||||
apol --invalid-param > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "apol正确处理了无效参数"
|
||||
else
|
||||
LOG_INFO "apol对无效参数返回了非255退出码"
|
||||
# 继续执行,不退出
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
else
|
||||
LOG_INFO "保持setools-gui安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试apol命令版本信息显示功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令的详细输出模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试apol命令的详细输出模式"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="setools-gui"
|
||||
LOG_INFO "步骤1:检查系统中是否已安装${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} &> /dev/null; then
|
||||
LOG_INFO "检测到${PACKAGE_NAME}已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "检测到${PACKAGE_NAME}未安装,将在测试步骤中安装,测试结束后卸载"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
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}" = "no" ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查apol命令是否存在"
|
||||
if ! command -v apol &> /dev/null; then
|
||||
LOG_ERROR "apol命令未找到,可能安装失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:测试apol命令的详细输出模式(-v参数)"
|
||||
if ! apol --help | grep -q "\-v"; then
|
||||
LOG_ERROR "apol命令不支持-v参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:执行apol -v命令"
|
||||
apol -v
|
||||
CHECK_RESULT $? 0 0 "执行apol -v命令失败"
|
||||
|
||||
LOG_INFO "步骤7:清理测试环境"
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装${PACKAGE_NAME},保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "apol命令详细输出模式测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令同时启用详细输出和调试模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试apol命令同时启用详细输出和调试模式"
|
||||
|
||||
LOG_INFO "检查系统中是否已安装setools-gui软件包"
|
||||
if rpm -q setools-gui &>/dev/null; then
|
||||
LOG_INFO "setools-gui软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "setools-gui软件包未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在setools-gui软件包"
|
||||
if ! dnf list available setools-gui &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查apol命令是否支持-v和-d参数"
|
||||
apol -h 2>&1 | grep -qE "\-v.*\-d|\-d.*\-v"
|
||||
CHECK_RESULT $? 0 0 "apol命令不支持同时启用-v和-d参数"
|
||||
|
||||
LOG_INFO "执行apol命令同时启用详细输出和调试模式"
|
||||
apol -v -d
|
||||
CHECK_RESULT $? 0 0 "apol命令执行失败"
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令同时启用详细输出、调试模式并加载指定的SELinux策略文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试apol命令同时启用详细输出、调试模式并加载指定的SELinux策略文件"
|
||||
LOG_INFO "步骤1: 检查setools-gui软件包是否在yum源中可用"
|
||||
dnf list available setools-gui 2>/dev/null | grep -q setools-gui
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "setools-gui软件包在yum源中不可用"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查apol命令是否已安装"
|
||||
if command -v apol &> /dev/null; then
|
||||
LOG_INFO "apol命令已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "apol命令未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3: 安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查apol命令是否支持-v和-d参数"
|
||||
apol --help | grep -q -- "-v"
|
||||
CHECK_RESULT $? 0 0 "apol命令不支持-v参数"
|
||||
apol --help | grep -q -- "-d"
|
||||
CHECK_RESULT $? 0 0 "apol命令不支持-d参数"
|
||||
|
||||
LOG_INFO "步骤5: 检查是否存在有效的SELinux策略文件"
|
||||
POLICY_FILE="/etc/selinux/targeted/policy/policy.32"
|
||||
if [ ! -f "$POLICY_FILE" ]; then
|
||||
LOG_ERROR "未找到有效的SELinux策略文件: $POLICY_FILE"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6: 执行apol命令同时启用详细输出、调试模式并加载指定的SELinux策略文件"
|
||||
apol -v -d "$POLICY_FILE" 2>&1 | tee /tmp/apol_output.log
|
||||
CHECK_RESULT $? 0 0 "apol命令执行失败"
|
||||
|
||||
LOG_INFO "步骤7: 验证apol命令输出包含调试信息"
|
||||
grep -q "debug" /tmp/apol_output.log
|
||||
CHECK_RESULT $? 0 0 "apol命令输出未包含预期的调试信息"
|
||||
|
||||
LOG_INFO "步骤8: 清理临时文件"
|
||||
rm -f /tmp/apol_output.log
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤9: 卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令在详细输出模式下加载并分析指定的SELinux策略文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称和命令
|
||||
PACKAGE_NAME="setools-gui"
|
||||
COMMAND="apol"
|
||||
POLICY_FILE="/etc/selinux/targeted/policy/policy.32" # 示例策略文件路径,实际可能需要调整
|
||||
|
||||
# 步骤1:检查yum源中是否存在setools-gui软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装setools-gui
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME}已安装,标记为已安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}未安装,标记为未安装状态"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装setools-gui
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查apol命令是否支持-v参数
|
||||
LOG_INFO "步骤4:检查${COMMAND}命令是否支持-v参数"
|
||||
${COMMAND} --help 2>&1 | grep -q "\-v"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "${COMMAND}命令不支持-v参数"
|
||||
# 清理环境:如果之前未安装,则卸载
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:检查指定的SELinux策略文件是否存在
|
||||
LOG_INFO "步骤5:检查指定的SELinux策略文件是否存在"
|
||||
if [ ! -f "${POLICY_FILE}" ]; then
|
||||
LOG_ERROR "策略文件${POLICY_FILE}不存在"
|
||||
# 清理环境:如果之前未安装,则卸载
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤6:执行apol命令在详细输出模式下加载并分析指定的SELinux策略文件
|
||||
LOG_INFO "步骤6:执行${COMMAND}命令在详细输出模式下加载并分析指定的SELinux策略文件"
|
||||
${COMMAND} -v -p "${POLICY_FILE}" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "apol命令执行失败"
|
||||
|
||||
# 步骤7:清理环境
|
||||
LOG_INFO "步骤7:清理环境"
|
||||
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 "$@"
|
||||
@@ -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-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用apol分析SELinux策略
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用apol分析SELinux策略"
|
||||
|
||||
LOG_INFO "步骤1: 检查环境是否已安装setools-gui软件包"
|
||||
if dnf list installed setools-gui &>/dev/null; then
|
||||
LOG_INFO "setools-gui已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "setools-gui未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否有setools-gui软件包"
|
||||
if ! dnf list available setools-gui &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3: 安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查apol命令是否支持analyze参数"
|
||||
apol --help | grep -q "\-\-analyze"
|
||||
CHECK_RESULT $? 0 255 "apol命令不支持analyze参数"
|
||||
|
||||
LOG_INFO "步骤5: 执行apol --analyze测试"
|
||||
apol --analyze
|
||||
CHECK_RESULT $? 0 0 "apol --analyze执行失败"
|
||||
|
||||
LOG_INFO "步骤6: 清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
else
|
||||
LOG_INFO "保持setools-gui安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用apol分析SELinux策略测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试apol命令行工具帮助功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
PACKAGE_NAME="setools-gui"
|
||||
LOG_INFO "开始测试apol命令行工具帮助功能"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2:检查系统是否已安装${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
INSTALLED="yes"
|
||||
LOG_INFO "${PACKAGE_NAME}已安装,测试结束后将保持安装状态"
|
||||
else
|
||||
INSTALLED="no"
|
||||
LOG_INFO "${PACKAGE_NAME}未安装,将作为测试步骤进行安装"
|
||||
fi
|
||||
if [ "${INSTALLED}" = "no" ]; then
|
||||
LOG_INFO "步骤3:安装${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:检查apol命令是否存在"
|
||||
which apol > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "apol命令不存在"
|
||||
LOG_INFO "步骤5:检查apol命令是否支持--help参数"
|
||||
apol --help > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "apol命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤6:执行apol --help命令"
|
||||
apol --help
|
||||
CHECK_RESULT $? 0 0 "执行apol --help命令失败"
|
||||
LOG_INFO "步骤7:清理测试环境"
|
||||
if [ "${INSTALLED}" = "no" ]; then
|
||||
LOG_INFO "卸载${PACKAGE_NAME}软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
else
|
||||
LOG_INFO "测试开始时${PACKAGE_NAME}已安装,保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试apol命令行工具帮助功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,106 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试检查setools-gui软件包是否已安装
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试检查setools-gui软件包是否已安装
|
||||
|
||||
LOG_INFO "开始测试:检查setools-gui软件包是否已安装"
|
||||
|
||||
# 检查yum源中是否存在setools-gui软件包
|
||||
LOG_INFO "检查yum源中是否存在setools-gui软件包"
|
||||
dnf list available setools-gui 2>/dev/null | grep -q setools-gui
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在setools-gui软件包,退出测试"
|
||||
|
||||
# 检查当前是否已安装setools-gui
|
||||
LOG_INFO "检查当前是否已安装setools-gui"
|
||||
if rpm -q setools-gui >/dev/null 2>&1; then
|
||||
LOG_INFO "setools-gui已安装,将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "setools-gui未安装,将进行安装测试"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
|
||||
# 验证安装是否成功
|
||||
LOG_INFO "验证setools-gui是否安装成功"
|
||||
rpm -q setools-gui
|
||||
CHECK_RESULT $? 0 0 "setools-gui安装后验证失败"
|
||||
|
||||
LOG_INFO "setools-gui安装成功"
|
||||
fi
|
||||
|
||||
# 检查setools-gui相关命令
|
||||
LOG_INFO "检查setools-gui相关命令是否可用"
|
||||
|
||||
# 检查apol命令是否存在
|
||||
LOG_INFO "检查apol命令是否存在"
|
||||
which apol >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "apol命令不存在"
|
||||
|
||||
# 检查apol命令的基本参数
|
||||
LOG_INFO "检查apol命令的基本参数"
|
||||
apol --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "apol命令参数检查失败"
|
||||
|
||||
# 检查seaudit命令是否存在
|
||||
LOG_INFO "检查seaudit命令是否存在"
|
||||
which seaudit >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "seaudit命令不存在"
|
||||
|
||||
# 检查seaudit命令的基本参数
|
||||
LOG_INFO "检查seaudit命令的基本参数"
|
||||
seaudit --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "seaudit命令参数检查失败"
|
||||
|
||||
LOG_INFO "setools-gui功能检查完成"
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "开始环境清理"
|
||||
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
|
||||
# 验证卸载是否成功
|
||||
LOG_INFO "验证setools-gui是否已卸载"
|
||||
rpm -q setools-gui >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "setools-gui卸载失败"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "setools-gui卸载成功"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "保持setools-gui安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "环境清理完成"
|
||||
LOG_INFO "测试结束:setools-gui软件包检查测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试启动setools-gui图形界面主程序
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试启动setools-gui图形界面主程序"
|
||||
LOG_INFO "步骤1:检查setools-gui软件包是否在yum源中"
|
||||
dnf list available setools-gui &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装setools-gui"
|
||||
rpm -q setools-gui &>/dev/null
|
||||
INSTALLED=$?
|
||||
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "步骤3:安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
NEED_UNINSTALL=1
|
||||
else
|
||||
LOG_INFO "setools-gui已安装,无需再次安装"
|
||||
NEED_UNINSTALL=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查setools-gui主程序命令是否存在"
|
||||
which setools-gui &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "setools-gui命令不存在"
|
||||
if [ $NEED_UNINSTALL -eq 1 ]; then
|
||||
LOG_INFO "步骤5:清理环境,卸载安装的setools-gui"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:测试启动setools-gui图形界面主程序"
|
||||
LOG_INFO "注意:图形界面测试通常需要DISPLAY环境变量和X server。此脚本仅测试命令是否存在和基本启动尝试,不保证图形窗口能正常显示。"
|
||||
setools-gui --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "setools-gui命令启动或参数检查失败"
|
||||
|
||||
LOG_INFO "步骤6:清理环境"
|
||||
if [ $NEED_UNINSTALL -eq 1 ]; then
|
||||
LOG_INFO "卸载测试安装的setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装setools-gui,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试setools-gui软件包安装功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装setools-gui软件包
|
||||
LOG_INFO "检查是否已安装setools-gui软件包"
|
||||
rpm -q setools-gui > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "setools-gui软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "setools-gui软件包未安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有setools-gui软件包
|
||||
LOG_INFO "检查yum源中是否有setools-gui软件包"
|
||||
dnf list available setools-gui > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则进行安装
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "开始安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui软件包失败"
|
||||
LOG_INFO "setools-gui软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证setools-gui命令是否可用
|
||||
LOG_INFO "验证setools-gui命令是否可用"
|
||||
which apol > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "apol命令不存在"
|
||||
|
||||
# 测试setools-gui的基本功能
|
||||
LOG_INFO "测试setools-gui基本功能"
|
||||
apol --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "apol命令执行失败"
|
||||
|
||||
# 如果脚本开始前未安装,则在测试完成后卸载
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui软件包失败"
|
||||
LOG_INFO "setools-gui软件包卸载成功,环境已恢复"
|
||||
fi
|
||||
|
||||
LOG_INFO "setools-gui软件包安装功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,109 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用sediffx比较两个策略
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试sediffx比较两个策略功能"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在setools-gui软件包"
|
||||
dnf list available setools-gui 2>/dev/null | grep -q "setools-gui"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装setools-gui"
|
||||
rpm -q setools-gui >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "setools-gui已安装,标记为已存在"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "setools-gui未安装,标记为未安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查sediffx命令是否可用"
|
||||
which sediffx >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "sediffx命令不存在"
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理:卸载setools-gui"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:检查sediffx是否支持compare参数"
|
||||
sediffx --help 2>&1 | grep -q "\-\-compare"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "sediffx不支持--compare参数"
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理:卸载setools-gui"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:创建测试用的两个策略文件"
|
||||
cat > /tmp/policy1.te <<EOF
|
||||
policy_module(policy1, 1.0)
|
||||
type test_type1;
|
||||
EOF
|
||||
|
||||
cat > /tmp/policy2.te <<EOF
|
||||
policy_module(policy2, 1.0)
|
||||
type test_type2;
|
||||
EOF
|
||||
|
||||
LOG_INFO "步骤7:使用sediffx比较两个策略文件"
|
||||
sediffx --compare /tmp/policy1.te /tmp/policy2.te > /tmp/sediffx_result.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "sediffx比较策略失败"
|
||||
|
||||
LOG_INFO "步骤8:检查比较结果文件是否存在"
|
||||
[ -f /tmp/sediffx_result.txt ]
|
||||
CHECK_RESULT $? 0 0 "比较结果文件未生成"
|
||||
|
||||
LOG_INFO "步骤9:验证比较结果内容"
|
||||
grep -q "test_type1" /tmp/sediffx_result.txt
|
||||
CHECK_RESULT $? 0 0 "结果中未找到policy1的类型"
|
||||
grep -q "test_type2" /tmp/sediffx_result.txt
|
||||
CHECK_RESULT $? 0 0 "结果中未找到policy2的类型"
|
||||
|
||||
LOG_INFO "步骤10:清理临时文件"
|
||||
rm -f /tmp/policy1.te /tmp/policy2.te /tmp/sediffx_result.txt
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "步骤11:卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
else
|
||||
LOG_INFO "步骤11:保持setools-gui安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试启动sediffx策略比较图形工具
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试启动sediffx策略比较图形工具"
|
||||
|
||||
LOG_INFO "1. 检查环境是否已安装setools-gui软件包"
|
||||
if rpm -q setools-gui &> /dev/null; then
|
||||
LOG_INFO "setools-gui已安装,标记为已存在安装"
|
||||
INSTALLED="yes"
|
||||
else
|
||||
LOG_INFO "setools-gui未安装,标记为需要安装"
|
||||
INSTALLED="no"
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查yum源中是否有setools-gui软件包"
|
||||
if ! dnf list available setools-gui &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "no" ]; then
|
||||
LOG_INFO "3. 安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 检查sediffx命令是否存在"
|
||||
if ! command -v sediffx &> /dev/null; then
|
||||
LOG_ERROR "sediffx命令不存在"
|
||||
if [ "$INSTALLED" = "no" ]; then
|
||||
LOG_INFO "清理环境:卸载setools-gui"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 检查sediffx是否支持--help参数"
|
||||
if ! sediffx --help &> /dev/null; then
|
||||
LOG_ERROR "sediffx不支持--help参数"
|
||||
if [ "$INSTALLED" = "no" ]; then
|
||||
LOG_INFO "清理环境:卸载setools-gui"
|
||||
dnf remove -y setools-gui
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "6. 尝试启动sediffx策略比较图形工具"
|
||||
sediffx --help
|
||||
CHECK_RESULT $? 0 0 "启动sediffx失败"
|
||||
|
||||
LOG_INFO "7. 环境清理"
|
||||
if [ "$INSTALLED" = "no" ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
else
|
||||
LOG_INFO "保持setools-gui安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试sepolicy命令行工具帮助功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试sepolicy命令行工具帮助功能"
|
||||
LOG_INFO "步骤1:检查sepolicy命令是否存在"
|
||||
if command -v sepolicy &> /dev/null; then
|
||||
LOG_INFO "sepolicy命令已存在,无需安装"
|
||||
INSTALLED=0
|
||||
else
|
||||
LOG_INFO "sepolicy命令不存在,需要安装"
|
||||
INSTALLED=1
|
||||
LOG_INFO "步骤2:检查yum源中是否有setools-gui软件包"
|
||||
if ! dnf list available setools-gui &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤3:安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查sepolicy命令的帮助参数"
|
||||
if sepolicy --help &> /dev/null; then
|
||||
LOG_INFO "sepolicy命令支持--help参数"
|
||||
else
|
||||
LOG_ERROR "sepolicy命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:执行sepolicy --help命令"
|
||||
sepolicy --help
|
||||
CHECK_RESULT $? 0 0 "执行sepolicy --help失败"
|
||||
|
||||
LOG_INFO "步骤6:清理环境"
|
||||
if [ $INSTALLED -eq 1 ]; then
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用sepolicy查询策略信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试sepolicy查询策略信息功能"
|
||||
|
||||
LOG_INFO "步骤1: 检查setools-gui软件包是否在yum源中可用"
|
||||
dnf list available setools-gui 2>/dev/null | grep -q "setools-gui"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到setools-gui软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查系统是否已安装setools-gui"
|
||||
rpm -q setools-gui >/dev/null 2>&1
|
||||
INSTALLED=$?
|
||||
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "步骤3: 安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 验证sepolicy命令是否存在"
|
||||
which sepolicy >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "sepolicy命令不存在"
|
||||
|
||||
LOG_INFO "步骤5: 检查sepolicy query子命令是否支持"
|
||||
sepolicy query --help 2>&1 | grep -q "query"
|
||||
CHECK_RESULT $? 0 255 "sepolicy query子命令不支持"
|
||||
|
||||
LOG_INFO "步骤6: 测试sepolicy query基本查询功能"
|
||||
sepolicy query -a -u unconfined_u
|
||||
CHECK_RESULT $? 0 0 "sepolicy query查询失败"
|
||||
|
||||
LOG_INFO "步骤7: 测试sepolicy query用户查询"
|
||||
sepolicy query -u unconfined_u
|
||||
CHECK_RESULT $? 0 0 "查询用户策略信息失败"
|
||||
|
||||
LOG_INFO "步骤8: 测试sepolicy query角色查询"
|
||||
sepolicy query -r unconfined_r
|
||||
CHECK_RESULT $? 0 0 "查询角色策略信息失败"
|
||||
|
||||
LOG_INFO "步骤9: 测试sepolicy query类型查询"
|
||||
sepolicy query -t unconfined_t
|
||||
CHECK_RESULT $? 0 0 "查询类型策略信息失败"
|
||||
|
||||
LOG_INFO "步骤10: 清理测试环境"
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "卸载测试安装的setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui失败"
|
||||
else
|
||||
LOG_INFO "保持原有的setools-gui安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试sepolicy查询策略信息功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试setools-gui软件包卸载功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试setools-gui软件包卸载功能"
|
||||
LOG_INFO "检查当前环境是否已安装setools-gui软件包"
|
||||
rpm -q setools-gui > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到setools-gui已安装,记录当前安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "检测到setools-gui未安装"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在setools-gui软件包"
|
||||
dnf list available setools-gui > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到setools-gui软件包,退出测试"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在setools-gui软件包,无法进行测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE" == "no" ]; then
|
||||
LOG_INFO "开始安装setools-gui软件包"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "安装setools-gui软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "验证setools-gui软件包安装成功"
|
||||
rpm -q setools-gui > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "验证setools-gui安装状态失败"
|
||||
|
||||
LOG_INFO "执行setools-gui软件包卸载测试"
|
||||
LOG_INFO "卸载setools-gui软件包"
|
||||
dnf remove -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "卸载setools-gui软件包失败"
|
||||
|
||||
LOG_INFO "验证setools-gui软件包已卸载"
|
||||
rpm -q setools-gui > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "卸载后验证失败,setools-gui软件包仍存在"
|
||||
CHECK_RESULT 1 0 0 "卸载后验证失败"
|
||||
else
|
||||
LOG_INFO "验证通过,setools-gui软件包已成功卸载"
|
||||
CHECK_RESULT 0 0 0 "卸载验证失败"
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE" == "no" ]; then
|
||||
LOG_INFO "测试前环境未安装setools-gui,测试完成,无需恢复环境"
|
||||
else
|
||||
LOG_INFO "测试前环境已安装setools-gui,重新安装以恢复环境"
|
||||
dnf install -y setools-gui
|
||||
CHECK_RESULT $? 0 0 "恢复setools-gui安装状态失败"
|
||||
LOG_INFO "环境已恢复到测试前的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "setools-gui软件包卸载功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证软件包安装功能"
|
||||
|
||||
# 检查是否已安装texlive-chickenize-doc
|
||||
LOG_INFO "步骤1:检查texlive-chickenize-doc是否已安装"
|
||||
if dnf list installed texlive-chickenize-doc &>/dev/null; then
|
||||
LOG_INFO "texlive-chickenize-doc已安装,跳过安装步骤"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-chickenize-doc未安装,准备安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-chickenize-doc
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-chickenize-doc"
|
||||
if ! dnf list available texlive-chickenize-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-chickenize-doc,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-chickenize-doc"
|
||||
dnf install -y texlive-chickenize-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-chickenize-doc失败"
|
||||
fi
|
||||
|
||||
# 验证软件包功能
|
||||
LOG_INFO "步骤4:验证texlive-chickenize-doc功能"
|
||||
if ! command -v chickenize &>/dev/null; then
|
||||
LOG_ERROR "chickenize命令不存在或不支持,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行测试命令
|
||||
LOG_INFO "步骤5:执行测试命令"
|
||||
chickenize --version
|
||||
CHECK_RESULT $? 0 0 "执行chickenize命令失败"
|
||||
|
||||
# 环境恢复:如果脚本安装了软件包,则卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤6:卸载texlive-chickenize-doc"
|
||||
dnf remove -y texlive-chickenize-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-chickenize-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:验证软件包安装功能"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-25
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test documentation generation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-ebsthesis-doc
|
||||
LOG_INFO "检查是否已安装texlive-ebsthesis-doc"
|
||||
rpm -q texlive-ebsthesis-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-ebsthesis-doc已安装,脚本结束时保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-ebsthesis-doc
|
||||
LOG_INFO "检查yum源中是否有texlive-ebsthesis-doc"
|
||||
dnf list available texlive-ebsthesis-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到texlive-ebsthesis-doc"
|
||||
|
||||
# 安装texlive-ebsthesis-doc
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装texlive-ebsthesis-doc"
|
||||
dnf install -y texlive-ebsthesis-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-ebsthesis-doc失败"
|
||||
fi
|
||||
|
||||
# 测试文档生成功能
|
||||
LOG_INFO "测试文档生成功能"
|
||||
docgen_command="texdoc ebsthesis"
|
||||
$docgen_command > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "文档生成命令执行失败或参数不支持"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-ebsthesis-doc"
|
||||
dnf remove -y texlive-ebsthesis-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-ebsthesis-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-06-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 texlive-etaremune-doc 包的卸载功能,验证是否能够成功卸载。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
|
||||
# 检查是否已经安装了texlive-etaremune-doc
|
||||
LOG_INFO "检查是否已经安装了texlive-etaremune-doc"
|
||||
rpm -q texlive-etaremune-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-etaremune-doc已经安装,脚本结束时将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "texlive-etaremune-doc未安装,将在测试完成后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-etaremune-doc包
|
||||
LOG_INFO "检查yum源中是否有texlive-etaremune-doc包"
|
||||
dnf list available texlive-etaremune-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中没有texlive-etaremune-doc包"
|
||||
|
||||
# 安装texlive-etaremune-doc包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装texlive-etaremune-doc包"
|
||||
dnf install -y texlive-etaremune-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-etaremune-doc包失败"
|
||||
fi
|
||||
|
||||
# 验证卸载功能
|
||||
LOG_INFO "验证卸载功能"
|
||||
dnf remove -y texlive-etaremune-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-etaremune-doc包失败"
|
||||
|
||||
# 恢复环境:如果最初未安装,则重新安装;否则保持原状
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "恢复环境:重新安装texlive-etaremune-doc包"
|
||||
dnf install -y texlive-etaremune-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "恢复环境失败:无法重新安装texlive-etaremune-doc包"
|
||||
else
|
||||
LOG_INFO "恢复环境:保持原状(已安装状态)"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-09-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic commands
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装texlive-exercisebank软件包
|
||||
LOG_INFO "检查texlive-exercisebank是否已安装"
|
||||
rpm -q texlive-exercisebank > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-exercisebank已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-exercisebank未安装,测试结束后将卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-exercisebank软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-exercisebank"
|
||||
dnf list available texlive-exercisebank > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-exercisebank软件包"
|
||||
|
||||
# 安装texlive-exercisebank软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装texlive-exercisebank"
|
||||
dnf install -y texlive-exercisebank > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-exercisebank失败"
|
||||
fi
|
||||
|
||||
# 测试基本命令
|
||||
LOG_INFO "测试基本命令功能"
|
||||
texlive-exercisebank --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "不支持--version参数或命令执行失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-exercisebank"
|
||||
dnf remove -y texlive-exercisebank > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-exercisebank失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-09-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装texlive-exercisebank软件包
|
||||
LOG_INFO "检查是否已经安装texlive-exercisebank软件包"
|
||||
rpm -q texlive-exercisebank > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-exercisebank已安装,脚本结束时保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-exercisebank软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-exercisebank软件包"
|
||||
dnf list available texlive-exercisebank > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-exercisebank软件包"
|
||||
|
||||
# 安装texlive-exercisebank软件包
|
||||
LOG_INFO "安装texlive-exercisebank软件包"
|
||||
dnf install -y texlive-exercisebank
|
||||
CHECK_RESULT $? 0 0 "安装texlive-exercisebank软件包失败"
|
||||
|
||||
# 验证安装是否成功
|
||||
LOG_INFO "验证texlive-exercisebank软件包是否安装成功"
|
||||
rpm -q texlive-exercisebank > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-exercisebank软件包未成功安装"
|
||||
|
||||
# 执行texlive-exercisebank命令测试
|
||||
LOG_INFO "执行texlive-exercisebank命令测试"
|
||||
texlive-exercisebank --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "texlive-exercisebank命令参数不支持或不存在"
|
||||
|
||||
# 如果脚本开始时未安装,则卸载texlive-exercisebank软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-exercisebank软件包"
|
||||
dnf remove -y texlive-exercisebank
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-exercisebank软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : List package files
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:List package files"
|
||||
|
||||
# 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查软件包texlive-exp-testopt-doc是否在yum源中"
|
||||
dnf list available texlive-exp-testopt-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包texlive-exp-testopt-doc不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断环境是否已安装该软件包
|
||||
LOG_INFO "检查环境是否已安装texlive-exp-testopt-doc"
|
||||
rpm -q texlive-exp-testopt-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装texlive-exp-testopt-doc,测试结束后将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-exp-testopt-doc,将进行安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装软件包texlive-exp-testopt-doc"
|
||||
dnf install -y texlive-exp-testopt-doc
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 检查rpm命令是否支持--listfiles参数
|
||||
LOG_INFO "检查rpm命令是否支持--listfiles参数"
|
||||
rpm --help | grep -q -- --listfiles
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "rpm命令不支持--listfiles参数"
|
||||
# 如果之前未安装,需要卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载软件包texlive-exp-testopt-doc"
|
||||
dnf remove -y texlive-exp-testopt-doc
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 列出软件包的文件
|
||||
LOG_INFO "列出软件包texlive-exp-testopt-doc的文件"
|
||||
rpm -ql texlive-exp-testopt-doc > /dev/null
|
||||
CHECK_RESULT $? 0 0 "列出软件包文件失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载软件包texlive-exp-testopt-doc"
|
||||
dnf remove -y texlive-exp-testopt-doc
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "环境已安装texlive-exp-testopt-doc,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:List package files"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check basic usage example
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "检查测试环境是否已安装texlive-exp-testopt-doc软件包"
|
||||
if dnf list installed texlive-exp-testopt-doc &>/dev/null; then
|
||||
LOG_INFO "环境已安装texlive-exp-testopt-doc,测试后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-exp-testopt-doc,将在测试中安装并在结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在texlive-exp-testopt-doc软件包"
|
||||
if ! dnf list available texlive-exp-testopt-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-exp-testopt-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-exp-testopt-doc软件包"
|
||||
dnf install -y texlive-exp-testopt-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-exp-testopt-doc软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查指定命令的参数是否存在"
|
||||
COMMAND="texlive-exp-testopt-doc --help"
|
||||
if ! $COMMAND &>/dev/null; then
|
||||
LOG_ERROR "命令参数不存在或不支持"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
dnf remove -y texlive-exp-testopt-doc
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "执行命令:$COMMAND"
|
||||
$COMMAND
|
||||
CHECK_RESULT $? 0 0 "执行命令失败"
|
||||
|
||||
LOG_INFO "检查基本使用示例"
|
||||
EXAMPLE_OUTPUT=$(texlive-exp-testopt-doc --help 2>&1 | head -5)
|
||||
if [ -z "$EXAMPLE_OUTPUT" ]; then
|
||||
LOG_ERROR "未获取到基本使用示例输出"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
dnf remove -y texlive-exp-testopt-doc
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "基本使用示例检查成功"
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-exp-testopt-doc软件包"
|
||||
dnf remove -y texlive-exp-testopt-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-exp-testopt-doc软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-06
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if the manual page for the placeins package is available.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试placeins包的man手册页是否可用"
|
||||
|
||||
LOG_INFO "检查texlive-placeins-doc软件包是否在yum源中"
|
||||
dnf list texlive-placeins-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-placeins-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查系统是否已安装texlive-placeins-doc软件包"
|
||||
rpm -q texlive-placeins-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "系统已安装texlive-placeins-doc软件包,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "系统未安装texlive-placeins-doc软件包,将进行安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-placeins-doc软件包"
|
||||
dnf install -y texlive-placeins-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-placeins-doc软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试man命令是否支持placeins包的手册页"
|
||||
man -w placeins > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "man命令不支持placeins参数或placeins手册页不存在"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载安装的软件包"
|
||||
dnf remove -y texlive-placeins-doc
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "显示placeins包的手册页"
|
||||
man placeins > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "显示placeins手册页失败"
|
||||
|
||||
LOG_INFO "验证手册页内容是否包含placeins相关信息"
|
||||
man placeins | grep -i "placeins" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "手册页内容中未找到placeins相关信息"
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载安装的软件包"
|
||||
dnf remove -y texlive-placeins-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-placeins-doc软件包失败"
|
||||
else
|
||||
LOG_INFO "测试完成,保持texlive-placeins-doc软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "placeins包man手册页测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-06
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test accessing basic usage information from the documentation.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:Test accessing basic usage information from the documentation."
|
||||
|
||||
LOG_INFO "步骤1:检查yum源中是否存在texlive-placeins-doc软件包"
|
||||
if ! dnf list available texlive-placeins-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-placeins-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装texlive-placeins-doc"
|
||||
if rpm -q texlive-placeins-doc &>/dev/null; then
|
||||
LOG_INFO "检测到texlive-placeins-doc已安装,标记为环境已存在"
|
||||
ENV_EXIST=true
|
||||
else
|
||||
LOG_INFO "检测到texlive-placeins-doc未安装,标记为环境未安装"
|
||||
ENV_EXIST=false
|
||||
fi
|
||||
|
||||
if [ "$ENV_EXIST" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装texlive-placeins-doc软件包"
|
||||
dnf install -y texlive-placeins-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-placeins-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:尝试从文档中访问基本使用信息"
|
||||
if ! texdoc --list placeins &>/dev/null; then
|
||||
LOG_ERROR "texdoc命令不支持"placeins"参数或未找到相关文档"
|
||||
if [ "$ENV_EXIST" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载在测试中安装的texlive-placeins-doc"
|
||||
dnf remove -y texlive-placeins-doc
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:使用texdoc查看placeins包的使用信息"
|
||||
texdoc placeins 2>&1 | head -20
|
||||
CHECK_RESULT $? 0 0 "执行texdoc placeins命令失败"
|
||||
|
||||
LOG_INFO "步骤6:测试完成,根据初始状态恢复环境"
|
||||
if [ "$ENV_EXIST" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载在测试中安装的texlive-placeins-doc"
|
||||
dnf remove -y texlive-placeins-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-placeins-doc失败"
|
||||
else
|
||||
LOG_INFO "测试前环境已安装texlive-placeins-doc,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试结束:成功访问了文档中的基本使用信息。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 texlive-pst-dbicons 软件包的基本使用功能,验证其宏包能否在 LaTeX 文档中正常加载并编译。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装 texlive-pst-dbicons
|
||||
LOG_INFO "检查是否已安装 texlive-pst-dbicons"
|
||||
if dnf list installed texlive-pst-dbicons &>/dev/null; then
|
||||
LOG_INFO "texlive-pst-dbicons 已安装,将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "texlive-pst-dbicons 未安装,将在测试后卸载"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 texlive-pst-dbicons 软件包
|
||||
LOG_INFO "检查 yum 源中是否有 texlive-pst-dbicons 软件包"
|
||||
if ! dnf list available texlive-pst-dbicons &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-pst-dbicons 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "安装 texlive-pst-dbicons 软件包"
|
||||
dnf install -y texlive-pst-dbicons
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-pst-dbicons 失败"
|
||||
fi
|
||||
|
||||
# 创建测试 LaTeX 文档
|
||||
LOG_INFO "创建测试 LaTeX 文档"
|
||||
cat > test_document.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{pst-dbicons}
|
||||
\begin{document}
|
||||
This is a test document for pst-dbicons package.
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文档失败"
|
||||
|
||||
# 编译 LaTeX 文档
|
||||
LOG_INFO "编译 LaTeX 文档以验证 pst-dbicons 宏包加载"
|
||||
pdflatex -interaction=nonstopmode test_document.tex >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "编译 LaTeX 文档失败,pst-dbicons 宏包可能未正确加载"
|
||||
|
||||
# 检查生成的 PDF 文件是否存在
|
||||
LOG_INFO "检查生成的 PDF 文件是否存在"
|
||||
if [ -f test_document.pdf ]; then
|
||||
LOG_INFO "PDF 文件生成成功,pst-dbicons 宏包正常加载"
|
||||
else
|
||||
LOG_ERROR "PDF 文件未生成,pst-dbicons 宏包可能加载失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_document.tex test_document.aux test_document.log test_document.pdf
|
||||
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载 texlive-pst-dbicons 软件包"
|
||||
dnf remove -y texlive-pst-dbicons
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-pst-dbicons 失败"
|
||||
else
|
||||
LOG_INFO "保持 texlive-pst-dbicons 软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,111 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package availability
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-sanitize-umlaut"
|
||||
|
||||
# 步骤1: 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
|
||||
dnf list available ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查当前环境是否已安装该软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包 ${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
INSTALLED="true"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
else
|
||||
INSTALLED="false"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" == "false" ]; then
|
||||
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查软件包提供的命令
|
||||
LOG_INFO "检查软件包 ${PACKAGE_NAME} 提供的命令"
|
||||
rpm -ql ${PACKAGE_NAME} | grep -E "/usr/bin/|/usr/sbin/" &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 未提供可执行命令"
|
||||
|
||||
# 步骤5: 获取软件包提供的命令并测试
|
||||
LOG_INFO "获取软件包 ${PACKAGE_NAME} 提供的命令"
|
||||
COMMANDS=$(rpm -ql ${PACKAGE_NAME} | grep -E "/usr/bin/|/usr/sbin/" | xargs -I {} basename {})
|
||||
if [ -z "${COMMANDS}" ]; then
|
||||
LOG_ERROR "未找到软件包 ${PACKAGE_NAME} 提供的命令"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6: 测试每个命令的基本功能
|
||||
for cmd in ${COMMANDS}; do
|
||||
LOG_INFO "测试命令 ${cmd} 的基本功能"
|
||||
# 检查命令是否存在
|
||||
which ${cmd} &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 ${cmd} 不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试命令的--help或-h参数
|
||||
${cmd} --help &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "命令 ${cmd} 支持 --help 参数"
|
||||
continue
|
||||
fi
|
||||
|
||||
${cmd} -h &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "命令 ${cmd} 支持 -h 参数"
|
||||
continue
|
||||
fi
|
||||
|
||||
# 如果命令不支持--help或-h,尝试不带参数执行
|
||||
${cmd} &> /dev/null
|
||||
if [ $? -ne 0 ] && [ $? -ne 1 ]; then
|
||||
LOG_ERROR "命令 ${cmd} 执行失败"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "命令 ${cmd} 基本功能测试通过"
|
||||
done
|
||||
|
||||
# 步骤7: 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
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 "$@"
|
||||
@@ -1,148 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test help option display
|
||||
# ############################################
|
||||
|
||||
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_CMD函数(虽然题目说无需定义,但实际需要)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=${4:-root}
|
||||
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
|
||||
"$user@$ip" "$cmd"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
local package_name="texlive-sanitize-umlaut"
|
||||
local is_installed=false
|
||||
|
||||
LOG_INFO "开始测试:Test help option display"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查是否已安装
|
||||
LOG_INFO "步骤2:检查是否已安装软件包"
|
||||
if rpm -q "$package_name" &>/dev/null; then
|
||||
LOG_INFO "软件包已安装"
|
||||
is_installed=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将进行安装"
|
||||
# 步骤3:安装软件包
|
||||
LOG_INFO "步骤3:安装软件包"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试help选项
|
||||
LOG_INFO "步骤4:测试help选项显示"
|
||||
# 首先检查命令是否存在
|
||||
if ! command -v texlive-sanitize-umlaut &>/dev/null; then
|
||||
LOG_ERROR "命令 texlive-sanitize-umlaut 不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试help参数
|
||||
LOG_INFO "执行命令:texlive-sanitize-umlaut --help"
|
||||
texlive-sanitize-umlaut --help &>/tmp/help_output.txt
|
||||
local help_result=$?
|
||||
|
||||
# 检查help参数是否被支持
|
||||
if [ $help_result -eq 255 ]; then
|
||||
LOG_ERROR "参数 --help 不被支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查命令是否成功执行
|
||||
CHECK_RESULT $help_result 0 0 "执行help命令失败"
|
||||
|
||||
# 检查是否有输出
|
||||
if [ ! -s /tmp/help_output.txt ]; then
|
||||
LOG_ERROR "help命令没有输出"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查输出中是否包含帮助信息关键词
|
||||
if ! grep -i "usage\|help\|选项\|参数" /tmp/help_output.txt &>/dev/null; then
|
||||
LOG_ERROR "help输出不符合预期"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "help选项测试成功"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f /tmp/help_output.txt
|
||||
|
||||
# 步骤5:环境恢复
|
||||
LOG_INFO "步骤5:环境恢复"
|
||||
if [ "$is_installed" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test help option display"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,134 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package removal
|
||||
# ############################################
|
||||
|
||||
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 mode=$3
|
||||
local message=$4
|
||||
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_INFO "$message 成功"
|
||||
return 0
|
||||
else
|
||||
LOG_ERROR "$message 失败"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_INFO "$message 成功"
|
||||
return 0
|
||||
else
|
||||
LOG_ERROR "$message 失败"
|
||||
exit 1
|
||||
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"
|
||||
}
|
||||
|
||||
# 测试包名称
|
||||
PACKAGE_NAME="texlive-sanitize-umlaut"
|
||||
LOG_INFO "开始测试包移除功能"
|
||||
|
||||
# 检查yum源中是否存在该软件包
|
||||
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME 软件包"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查 $PACKAGE_NAME 是否已安装"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
WAS_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将进行安装测试"
|
||||
WAS_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $WAS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
# 验证软件包已安装
|
||||
LOG_INFO "验证 $PACKAGE_NAME 已正确安装"
|
||||
rpm -q $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "验证 $PACKAGE_NAME 安装"
|
||||
|
||||
# 测试移除功能(这里假设软件包有移除功能或相关命令)
|
||||
LOG_INFO "测试 $PACKAGE_NAME 的移除功能"
|
||||
# 这里根据实际软件包的功能进行测试
|
||||
# 示例:运行软件包的某个命令测试其功能
|
||||
if command -v texlive-sanitize-umlaut &>/dev/null; then
|
||||
LOG_INFO "执行 texlive-sanitize-umlaut 命令测试"
|
||||
texlive-sanitize-umlaut --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "测试 texlive-sanitize-umlaut 命令"
|
||||
else
|
||||
LOG_INFO "软件包未提供可执行命令,跳过命令测试"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $WAS_INSTALLED -eq 0 ]; then
|
||||
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
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "$PACKAGE_NAME 卸载失败"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 已成功卸载"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "测试前 $PACKAGE_NAME 已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试包移除功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic command usage
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test basic command usage"
|
||||
LOG_INFO "步骤1:检查texlive-sanitize-umlaut软件包是否在yum源中"
|
||||
dnf list available texlive-sanitize-umlaut
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-sanitize-umlaut软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查是否已安装texlive-sanitize-umlaut软件包"
|
||||
rpm -q texlive-sanitize-umlaut
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-sanitize-umlaut已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-sanitize-umlaut未安装,将进行安装测试"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-sanitize-umlaut软件包"
|
||||
dnf install -y texlive-sanitize-umlaut
|
||||
CHECK_RESULT $? 0 0 "安装texlive-sanitize-umlaut软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查texlive-sanitize-umlaut命令是否存在"
|
||||
command -v texlive-sanitize-umlaut
|
||||
CHECK_RESULT $? 0 0 "texlive-sanitize-umlaut命令不存在"
|
||||
|
||||
LOG_INFO "步骤5:测试texlive-sanitize-umlaut命令的基本用法"
|
||||
texlive-sanitize-umlaut --help
|
||||
CHECK_RESULT $? 0 0 "texlive-sanitize-umlaut命令基本用法测试失败"
|
||||
|
||||
LOG_INFO "步骤6:测试texlive-sanitize-umlaut命令的无效参数"
|
||||
texlive-sanitize-umlaut --invalid-param 2>&1 | grep -q "invalid option"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texlive-sanitize-umlaut命令不支持--invalid-param参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:创建测试文件进行实际功能测试"
|
||||
TEST_FILE="test_umlaut.txt"
|
||||
echo "Müller Straße naïve café" > $TEST_FILE
|
||||
texlive-sanitize-umlaut $TEST_FILE
|
||||
CHECK_RESULT $? 0 0 "texlive-sanitize-umlaut命令处理文件失败"
|
||||
rm -f $TEST_FILE
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-sanitize-umlaut软件包"
|
||||
dnf remove -y texlive-sanitize-umlaut
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-sanitize-umlaut软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic command usage"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-10-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of texlive-profcollege
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 texlive-profcollege 的基本功能"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if rpm -q texlive-profcollege &>/dev/null; then
|
||||
LOG_INFO "texlive-profcollege 已安装,测试结束后将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "texlive-profcollege 未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否存在 texlive-profcollege 软件包
|
||||
LOG_INFO "检查 yum 源中是否存在 texlive-profcollege"
|
||||
dnf list available texlive-profcollege &>/dev/null
|
||||
CHECK_RESULT $? 0 255 "yum 源中不存在 texlive-profcollege 软件包"
|
||||
|
||||
# 安装 texlive-profcollege
|
||||
if ! $installed; then
|
||||
LOG_INFO "正在安装 texlive-profcollege"
|
||||
dnf install -y texlive-profcollege &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-profcollege 失败"
|
||||
fi
|
||||
|
||||
# 测试 texlive-profcollege 基本功能
|
||||
LOG_INFO "测试 texlive-profcollege 基本功能"
|
||||
tex --version &>/dev/null
|
||||
CHECK_RESULT $? 0 255 "texlive-profcollege 基本功能测试失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if ! $installed; then
|
||||
LOG_INFO "正在卸载 texlive-profcollege"
|
||||
dnf remove -y texlive-profcollege &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-profcollege 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test compiling a basic LaTeX document using profcollege
|
||||
# ############################################
|
||||
|
||||
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 node_ip=$2
|
||||
local node_pass=$3
|
||||
local node_user=$4
|
||||
# 这里只是一个示例,实际SSH_CMD可能已经定义
|
||||
sshpass -p $node_pass ssh $node_user@$node_ip "$cmd"
|
||||
}
|
||||
|
||||
# 测试脚本开始
|
||||
LOG_INFO "开始测试:使用profcollege编译基本LaTeX文档"
|
||||
|
||||
# 检查是否已经安装texlive-profcollege
|
||||
LOG_INFO "步骤1:检查texlive-profcollege是否已安装"
|
||||
if rpm -q texlive-profcollege &> /dev/null; then
|
||||
LOG_INFO "texlive-profcollege已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-profcollege未安装,将在测试步骤中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-profcollege软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-profcollege软件包"
|
||||
if ! dnf list available texlive-profcollege &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-profcollege软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-profcollege
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-profcollege软件包"
|
||||
dnf install -y texlive-profcollege
|
||||
CHECK_RESULT $? 0 0 "安装texlive-profcollege失败"
|
||||
fi
|
||||
|
||||
# 创建测试LaTeX文档
|
||||
LOG_INFO "步骤4:创建测试LaTeX文档"
|
||||
cat > test_document.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
|
||||
|
||||
# 使用profcollege编译LaTeX文档
|
||||
LOG_INFO "步骤5:使用profcollege编译LaTeX文档"
|
||||
pdflatex test_document.tex
|
||||
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
|
||||
|
||||
# 检查生成的PDF文件
|
||||
LOG_INFO "步骤6:检查生成的PDF文件"
|
||||
if [ -f test_document.pdf ]; then
|
||||
LOG_INFO "成功生成PDF文件"
|
||||
else
|
||||
LOG_ERROR "未找到生成的PDF文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "步骤7:清理测试文件"
|
||||
rm -f test_document.tex test_document.pdf test_document.log test_document.aux test_document.out
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载texlive-profcollege
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-profcollege软件包"
|
||||
dnf remove -y texlive-profcollege
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-profcollege失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用profcollege编译基本LaTeX文档成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test accessibility of package documentation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试软件包文档的可访问性"
|
||||
LOG_INFO "步骤1:检查当前环境中是否已安装texlive-profcollege软件包"
|
||||
rpm -q texlive-profcollege > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-profcollege已安装,标记为已存在安装"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-profcollege未安装,标记为未安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
LOG_INFO "步骤2:检查yum源中是否存在texlive-profcollege软件包"
|
||||
dnf list available texlive-profcollege > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-profcollege软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-profcollege软件包"
|
||||
dnf install -y texlive-profcollege
|
||||
CHECK_RESULT $? 0 0 "安装texlive-profcollege失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:测试texdoc命令是否可用"
|
||||
texdoc --help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texdoc命令不存在或不支持"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-profcollege
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤5:使用texdoc查看texlive-profcollege的文档"
|
||||
texdoc texlive-profcollege > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "无法访问texlive-profcollege的文档"
|
||||
LOG_INFO "步骤6:清理环境,恢复到之前的状态"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的texlive-profcollege软件包"
|
||||
dnf remove -y texlive-profcollege
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-profcollege失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不进行卸载"
|
||||
fi
|
||||
LOG_INFO "测试完成:软件包文档可访问性测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,83 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test uninstallation of texlive-profcollege package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:卸载 texlive-profcollege 软件包"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查 yum 源中是否存在 texlive-profcollege 软件包"
|
||||
dnf list available texlive-profcollege &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-profcollege 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装
|
||||
LOG_INFO "检查 texlive-profcollege 是否已安装"
|
||||
if dnf list installed texlive-profcollege &>/dev/null; then
|
||||
already_installed=true
|
||||
LOG_INFO "检测到 texlive-profcollege 已安装,测试后将保持安装状态"
|
||||
else
|
||||
already_installed=false
|
||||
LOG_INFO "未检测到 texlive-profcollege 安装,将先安装再测试卸载"
|
||||
fi
|
||||
|
||||
# 如果未安装,则先安装
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "安装 texlive-profcollege 软件包"
|
||||
dnf install -y texlive-profcollege
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-profcollege 失败"
|
||||
LOG_INFO "安装完成"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载 texlive-profcollege 软件包"
|
||||
dnf remove -y texlive-profcollege
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-profcollege 失败"
|
||||
LOG_INFO "卸载完成"
|
||||
|
||||
# 验证卸载后软件包不存在
|
||||
LOG_INFO "验证 texlive-profcollege 是否已卸载"
|
||||
dnf list installed texlive-profcollege &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "卸载后 texlive-profcollege 仍存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "验证通过:texlive-profcollege 已成功卸载"
|
||||
fi
|
||||
|
||||
# 环境恢复:如果测试前未安装,则最终保持未安装状态
|
||||
# 如果测试前已安装,则重新安装回去
|
||||
if [ "$already_installed" = "true" ]; then
|
||||
LOG_INFO "恢复环境:重新安装 texlive-profcollege"
|
||||
dnf install -y texlive-profcollege
|
||||
CHECK_RESULT $? 0 0 "重新安装 texlive-profcollege 失败"
|
||||
LOG_INFO "环境恢复完成"
|
||||
else
|
||||
LOG_INFO "环境恢复:测试前未安装,无需额外操作"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:texlive-profcollege 卸载功能正常"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,120 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-22
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test checking package version information
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量和常量
|
||||
TEST_PACKAGE="texlive-profcollege"
|
||||
LOG_INFO "测试用例:Test checking package version information"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在${TEST_PACKAGE}软件包"
|
||||
dnf list available ${TEST_PACKAGE} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在${TEST_PACKAGE}软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${TEST_PACKAGE}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装${TEST_PACKAGE}软件包"
|
||||
INSTALLED=false
|
||||
if rpm -q ${TEST_PACKAGE} &>/dev/null; then
|
||||
LOG_INFO "${TEST_PACKAGE}软件包已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "${TEST_PACKAGE}软件包未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3:如果未安装则安装${TEST_PACKAGE}软件包"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
dnf install -y ${TEST_PACKAGE}
|
||||
CHECK_RESULT $? 0 0 "安装${TEST_PACKAGE}软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装${TEST_PACKAGE}软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "成功安装${TEST_PACKAGE}软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查rpm命令的参数支持情况"
|
||||
rpm -qi ${TEST_PACKAGE} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "rpm命令不支持-qi参数或参数不存在"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "rpm命令不支持-qi参数或参数不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:执行rpm -qi命令获取软件包版本信息"
|
||||
PACKAGE_INFO=$(rpm -qi ${TEST_PACKAGE})
|
||||
CHECK_RESULT $? 0 0 "执行rpm -qi命令失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "执行rpm -qi命令失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:验证版本信息是否包含关键字段"
|
||||
echo "${PACKAGE_INFO}" | grep -q "Version"
|
||||
CHECK_RESULT $? 0 0 "版本信息中未找到Version字段"
|
||||
echo "${PACKAGE_INFO}" | grep -q "Release"
|
||||
CHECK_RESULT $? 0 0 "版本信息中未找到Release字段"
|
||||
echo "${PACKAGE_INFO}" | grep -q "Install Date"
|
||||
CHECK_RESULT $? 0 0 "版本信息中未找到Install Date字段"
|
||||
|
||||
LOG_INFO "步骤7:验证版本信息格式是否正确"
|
||||
VERSION_LINE=$(echo "${PACKAGE_INFO}" | grep "Version")
|
||||
if [[ "${VERSION_LINE}" =~ Version[[:space:]]+:[[:space:]]+([0-9]+(\.[0-9]+)*) ]]; then
|
||||
LOG_INFO "版本号格式正确:${BASH_REMATCH[1]}"
|
||||
else
|
||||
LOG_ERROR "版本号格式不正确"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8:如果需要清理环境,则卸载软件包"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "开始卸载${TEST_PACKAGE}软件包"
|
||||
dnf remove -y ${TEST_PACKAGE}
|
||||
CHECK_RESULT $? 0 0 "卸载${TEST_PACKAGE}软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载${TEST_PACKAGE}软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "成功卸载${TEST_PACKAGE}软件包"
|
||||
else
|
||||
LOG_INFO "测试前已安装${TEST_PACKAGE},保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤9:验证环境已恢复到测试前状态"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
rpm -q ${TEST_PACKAGE} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "环境清理失败,${TEST_PACKAGE}软件包仍存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "环境清理成功,${TEST_PACKAGE}软件包已卸载"
|
||||
fi
|
||||
else
|
||||
rpm -q ${TEST_PACKAGE} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "环境状态异常,${TEST_PACKAGE}软件包丢失"
|
||||
LOG_INFO "环境状态正常,${TEST_PACKAGE}软件包保持安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:成功验证${TEST_PACKAGE}软件包版本信息"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic table of contents generation with tocloft.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test basic table of contents generation with tocloft."
|
||||
|
||||
LOG_INFO "步骤1:检查环境中是否已安装 texlive-tocloft 软件包"
|
||||
dnf list installed texlive-tocloft &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-tocloft 已安装,标记为已存在安装"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "texlive-tocloft 未安装,标记为未安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 texlive-tocloft 软件包"
|
||||
dnf list available texlive-tocloft &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "yum 源中未找到 texlive-tocloft 软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中不存在 texlive-tocloft 软件包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装 texlive-tocloft 软件包"
|
||||
dnf install -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-tocloft 软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:创建一个简单的 LaTeX 测试文件,使用 tocloft 包生成目录"
|
||||
TEST_TEX_FILE="test_tocloft.tex"
|
||||
cat > $TEST_TEX_FILE << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{tocloft}
|
||||
\begin{document}
|
||||
\tableofcontents
|
||||
\section{第一部分}
|
||||
这是第一部分的内容。
|
||||
\section{第二部分}
|
||||
这是第二部分的内容。
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建 LaTeX 测试文件失败"
|
||||
|
||||
LOG_INFO "步骤5:使用 pdflatex 编译 LaTeX 文件,生成目录"
|
||||
pdflatex -interaction=nonstopmode $TEST_TEX_FILE
|
||||
CHECK_RESULT $? 0 0 "pdflatex 编译失败,可能缺少相关命令或参数"
|
||||
|
||||
LOG_INFO "步骤6:检查是否成功生成了包含目录的 PDF 文件"
|
||||
PDF_FILE="test_tocloft.pdf"
|
||||
if [ -f "$PDF_FILE" ]; then
|
||||
LOG_INFO "成功生成 PDF 文件: $PDF_FILE"
|
||||
# 简单检查 PDF 是否包含目录关键词(这里只是一个基本检查)
|
||||
if pdftotext "$PDF_FILE" - 2>/dev/null | grep -q "第一部分\|第二部分"; then
|
||||
LOG_INFO "PDF 文件内容检查通过,包含预期的章节标题"
|
||||
else
|
||||
LOG_ERROR "PDF 文件内容检查失败,未找到预期的章节标题"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未生成 PDF 文件: $PDF_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:清理测试生成的文件"
|
||||
rm -f test_tocloft.tex test_tocloft.aux test_tocloft.log test_tocloft.out test_tocloft.toc test_tocloft.pdf
|
||||
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载之前安装的 texlive-tocloft 软件包"
|
||||
dnf remove -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-tocloft 软件包失败"
|
||||
else
|
||||
LOG_INFO "步骤8:环境已安装 texlive-tocloft,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic table of contents generation with tocloft."
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,108 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test generation of list of figures with tocloft.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:检查是否已安装texlive-tocloft
|
||||
LOG_INFO "开始检查texlive-tocloft是否已安装"
|
||||
if dnf list installed texlive-tocloft &>/dev/null; then
|
||||
LOG_INFO "texlive-tocloft已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "texlive-tocloft未安装,将在测试中安装并在结束后卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-tocloft软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-tocloft软件包"
|
||||
if ! dnf list available texlive-tocloft &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-tocloft软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-tocloft
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "开始安装texlive-tocloft"
|
||||
dnf install -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "安装texlive-tocloft失败"
|
||||
fi
|
||||
|
||||
# 创建测试用的LaTeX文件
|
||||
LOG_INFO "创建测试用的LaTeX文件"
|
||||
cat > test_figures.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{tocloft}
|
||||
\usepackage{graphicx}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\listoffigures
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{example-image-a}
|
||||
\caption{示例图片A}
|
||||
\label{fig:exampleA}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{example-image-b}
|
||||
\caption{示例图片B}
|
||||
\label{fig:exampleB}
|
||||
\end{figure}
|
||||
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建LaTeX文件失败"
|
||||
|
||||
# 生成PDF并检查list of figures
|
||||
LOG_INFO "使用pdflatex生成PDF并包含图表列表"
|
||||
pdflatex -interaction=nonstopmode test_figures.tex
|
||||
CHECK_RESULT $? 0 0 "pdflatex第一次编译失败"
|
||||
|
||||
LOG_INFO "第二次编译以生成正确的图表列表"
|
||||
pdflatex -interaction=nonstopmode test_figures.tex
|
||||
CHECK_RESULT $? 0 0 "pdflatex第二次编译失败"
|
||||
|
||||
# 检查生成的PDF中是否包含list of figures
|
||||
LOG_INFO "检查生成的PDF文件中是否包含图表列表"
|
||||
if pdftotext test_figures.pdf - 2>/dev/null | grep -q "List of Figures"; then
|
||||
LOG_INFO "成功生成包含图表列表的PDF文件"
|
||||
else
|
||||
LOG_ERROR "PDF文件中未找到图表列表"
|
||||
CHECK_RESULT 1 0 1 "图表列表生成失败"
|
||||
fi
|
||||
|
||||
# 清理生成的中间文件
|
||||
LOG_INFO "清理测试生成的中间文件"
|
||||
rm -f test_figures.aux test_figures.log test_figures.out test_figures.toc test_figures.lof test_figures.pdf test_figures.tex
|
||||
|
||||
# 如果测试前未安装,则卸载texlive-tocloft
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载texlive-tocloft以恢复环境"
|
||||
dnf remove -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-tocloft失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,109 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test generation of list of tables with tocloft.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用tocloft生成表格列表功能"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查texlive-tocloft软件包是否在yum源中"
|
||||
dnf list available texlive-tocloft &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texlive-tocloft软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查环境是否已安装
|
||||
LOG_INFO "检查texlive-tocloft是否已安装"
|
||||
rpm -q texlive-tocloft &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-tocloft已安装,测试后将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "texlive-tocloft未安装,将在测试前安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装texlive-tocloft软件包"
|
||||
dnf install -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "安装texlive-tocloft失败"
|
||||
fi
|
||||
|
||||
# 测试生成表格列表功能
|
||||
LOG_INFO "测试生成表格列表功能"
|
||||
# 创建一个简单的LaTeX文档来测试tocloft的列表生成
|
||||
cat > test_table.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{tocloft}
|
||||
\newlistof{tables}{lot}{List of Tables}
|
||||
\begin{document}
|
||||
\listoftables
|
||||
\section{Test Section}
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\begin{tabular}{c|c}
|
||||
Header1 & Header2 \\
|
||||
\hline
|
||||
Data1 & Data2 \\
|
||||
\end{tabular}
|
||||
\caption{Test Table}
|
||||
\end{table}
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用pdflatex编译文档
|
||||
LOG_INFO "编译测试文档"
|
||||
pdflatex -interaction=nonstopmode test_table.tex
|
||||
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
|
||||
|
||||
# 检查是否生成了lot文件(表格列表文件)
|
||||
LOG_INFO "检查是否生成了表格列表文件"
|
||||
if [ -f test_table.lot ]; then
|
||||
LOG_INFO "成功生成表格列表文件"
|
||||
# 检查文件内容
|
||||
LOG_INFO "检查表格列表文件内容"
|
||||
grep -q "Test Table" test_table.lot
|
||||
CHECK_RESULT $? 0 0 "表格列表文件中未找到预期的表格标题"
|
||||
else
|
||||
LOG_ERROR "未生成表格列表文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_table.aux test_table.log test_table.lot test_table.tex test_table.pdf
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-tocloft软件包"
|
||||
dnf remove -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-tocloft失败"
|
||||
LOG_INFO "环境已恢复到测试前的状态"
|
||||
else
|
||||
LOG_INFO "保持texlive-tocloft安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用tocloft生成表格列表功能"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if the LaTeX document can load the tocloft package.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="texlive-tocloft"
|
||||
TEST_FILE="test_tocloft.tex"
|
||||
EXPECTED_OUTPUT="test_tocloft.pdf"
|
||||
|
||||
# 步骤1:检查环境是否已安装指定软件包
|
||||
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
|
||||
|
||||
# 步骤2:检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有 $PACKAGE_NAME 软件包"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:安装软件包(如果未安装)
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:创建测试LaTeX文档
|
||||
LOG_INFO "步骤4:创建测试LaTeX文档,测试 tocloft 包加载功能"
|
||||
cat > "$TEST_FILE" << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{tocloft}
|
||||
\begin{document}
|
||||
\tableofcontents
|
||||
\section{测试章节}
|
||||
这是一个测试文档,用于验证 tocloft 包是否正确加载。
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
|
||||
|
||||
# 步骤5:使用pdflatex编译LaTeX文档
|
||||
LOG_INFO "步骤5:使用pdflatex编译LaTeX文档"
|
||||
if ! command -v pdflatex &>/dev/null; then
|
||||
LOG_ERROR "pdflatex命令不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
pdflatex -interaction=nonstopmode "$TEST_FILE"
|
||||
CHECK_RESULT $? 0 0 "pdflatex编译失败"
|
||||
|
||||
# 步骤6:检查生成的PDF文件
|
||||
LOG_INFO "步骤6:检查生成的PDF文件是否存在"
|
||||
if [ -f "$EXPECTED_OUTPUT" ]; then
|
||||
LOG_INFO "PDF文件生成成功,tocloft包加载功能正常"
|
||||
else
|
||||
LOG_ERROR "PDF文件未生成,tocloft包加载功能异常"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤7:清理临时文件
|
||||
LOG_INFO "步骤7:清理临时文件"
|
||||
rm -f "$TEST_FILE" test_tocloft.aux test_tocloft.log test_tocloft.out test_tocloft.toc "$EXPECTED_OUTPUT"
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 步骤8:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤8:卸载 $PACKAGE_NAME 软件包"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:LaTeX文档可以成功加载 tocloft 包"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,83 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the table of contents functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查texlive-tocloft软件包是否已安装
|
||||
if rpm -q texlive-tocloft &>/dev/null; then
|
||||
LOG_INFO "texlive-tocloft软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-tocloft软件包未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-tocloft软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-tocloft软件包"
|
||||
if ! dnf list available texlive-tocloft &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在texlive-tocloft软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-tocloft软件包
|
||||
LOG_INFO "安装texlive-tocloft软件包"
|
||||
dnf install -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "安装texlive-tocloft软件包失败"
|
||||
|
||||
# 测试表格目录功能
|
||||
LOG_INFO "测试表格目录功能"
|
||||
TEST_FILE="test_toc.tex"
|
||||
cat > $TEST_FILE <<EOF
|
||||
\documentclass{article}
|
||||
\usepackage{tocloft}
|
||||
\begin{document}
|
||||
\tableofcontents
|
||||
\section{Section 1}
|
||||
\section{Section 2}
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
pdflatex $TEST_FILE
|
||||
CHECK_RESULT $? 0 0 "生成PDF文件失败"
|
||||
|
||||
# 检查生成的PDF文件是否包含目录
|
||||
LOG_INFO "检查生成的PDF文件是否包含目录"
|
||||
if ! pdffonts ${TEST_FILE%.tex}.pdf | grep -q "Symbol"; then
|
||||
LOG_ERROR "生成的PDF文件不包含目录"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f $TEST_FILE ${TEST_FILE%.tex}.aux ${TEST_FILE%.tex}.log ${TEST_FILE%.tex}.pdf
|
||||
|
||||
# 如果测试前未安装texlive-tocloft,则在测试结束后卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-tocloft软件包"
|
||||
dnf remove -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-tocloft软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试表格目录功能完成"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,108 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test formatting options for table of contents.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*" >&2
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local exit_code=$3
|
||||
local message=$4
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $exit_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=$4
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$user@$ip" "$cmd"
|
||||
}
|
||||
|
||||
# 测试脚本开始
|
||||
LOG_INFO "开始测试表格目录格式选项。"
|
||||
|
||||
# 检查环境是否已安装texlive-tocloft包
|
||||
LOG_INFO "检查是否已安装texlive-tocloft包。"
|
||||
if dnf list installed texlive-tocloft &>/dev/null; then
|
||||
LOG_INFO "texlive-tocloft包已安装,测试完成后将保持安装状态。"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-tocloft包未安装,将在测试过程中安装并在测试完成后卸载。"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-tocloft包
|
||||
LOG_INFO "检查yum源中是否有texlive-tocloft包。"
|
||||
if ! dnf list available texlive-tocloft &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-tocloft包。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-tocloft包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-tocloft包。"
|
||||
dnf install -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "安装texlive-tocloft包失败。"
|
||||
fi
|
||||
|
||||
# 测试表格目录格式选项
|
||||
LOG_INFO "测试表格目录格式选项。"
|
||||
# 这里假设有一个命令用于测试表格目录格式选项,例如使用tocloft包的某个命令
|
||||
# 由于具体命令未知,这里使用一个示例命令,实际应根据测试需求替换
|
||||
TEST_COMMAND="tocloft --help"
|
||||
if ! command -v tocloft &>/dev/null; then
|
||||
LOG_ERROR "tocloft命令不存在或不支持。"
|
||||
exit 255
|
||||
fi
|
||||
$TEST_COMMAND
|
||||
CHECK_RESULT $? 0 0 "测试表格目录格式选项失败。"
|
||||
|
||||
# 如果需要多个服务器并在第二个服务器上执行命令,可以使用SSH_CMD
|
||||
# 例如:SSH_CMD "ls" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
|
||||
# 这里假设不需要多个服务器,因此跳过
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境。"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-tocloft包。"
|
||||
dnf remove -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-tocloft包失败。"
|
||||
else
|
||||
LOG_INFO "保持texlive-tocloft包安装状态。"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if the texlive-tocloft package can be cleanly uninstalled.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(根据要求直接使用)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 测试开始
|
||||
LOG_INFO "开始测试:Test if the texlive-tocloft package can be cleanly uninstalled."
|
||||
|
||||
# 步骤1:检查yum源中是否存在texlive-tocloft软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在texlive-tocloft软件包"
|
||||
if ! dnf search texlive-tocloft 2>/dev/null | grep -q "texlive-tocloft"; then
|
||||
LOG_ERROR "yum源中未找到texlive-tocloft软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查是否已经安装了texlive-tocloft软件包
|
||||
LOG_INFO "步骤2:检查是否已经安装了texlive-tocloft软件包"
|
||||
if rpm -q texlive-tocloft > /dev/null 2>&1; then
|
||||
LOG_INFO "texlive-tocloft已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "texlive-tocloft未安装,将先安装再卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装texlive-tocloft软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装texlive-tocloft软件包"
|
||||
dnf install -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "安装texlive-tocloft失败"
|
||||
LOG_INFO "texlive-tocloft安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:验证texlive-tocloft是否正常工作
|
||||
LOG_INFO "步骤4:验证texlive-tocloft是否正常工作"
|
||||
if command -v tex > /dev/null 2>&1; then
|
||||
LOG_INFO "tex命令可用,继续测试"
|
||||
else
|
||||
LOG_ERROR "tex命令不可用,可能安装不完整"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5:卸载texlive-tocloft软件包
|
||||
LOG_INFO "步骤5:卸载texlive-tocloft软件包"
|
||||
dnf remove -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-tocloft失败"
|
||||
LOG_INFO "texlive-tocloft卸载成功"
|
||||
|
||||
# 步骤6:验证texlive-tocloft是否完全卸载
|
||||
LOG_INFO "步骤6:验证texlive-tocloft是否完全卸载"
|
||||
if rpm -q texlive-tocloft > /dev/null 2>&1; then
|
||||
LOG_ERROR "texlive-tocloft卸载后仍存在残留"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "texlive-tocloft已完全卸载"
|
||||
fi
|
||||
|
||||
# 步骤7:如果测试前已安装,则重新安装以恢复环境
|
||||
if [ "$INSTALLED_BEFORE" = "true" ]; then
|
||||
LOG_INFO "步骤7:恢复环境,重新安装texlive-tocloft"
|
||||
dnf install -y texlive-tocloft
|
||||
CHECK_RESULT $? 0 0 "重新安装texlive-tocloft失败"
|
||||
LOG_INFO "环境恢复成功,texlive-tocloft已重新安装"
|
||||
fi
|
||||
|
||||
# 步骤8:最终环境验证
|
||||
LOG_INFO "步骤8:最终环境验证"
|
||||
if [ "$INSTALLED_BEFORE" = "true" ]; then
|
||||
if rpm -q texlive-tocloft > /dev/null 2>&1; then
|
||||
LOG_INFO "测试完成,环境已恢复到初始安装状态"
|
||||
else
|
||||
LOG_ERROR "环境恢复失败,texlive-tocloft未安装"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if ! rpm -q texlive-tocloft > /dev/null 2>&1; then
|
||||
LOG_INFO "测试完成,环境已清理,未安装texlive-tocloft"
|
||||
else
|
||||
LOG_ERROR "环境清理失败,texlive-tocloft仍存在"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试结束:texlive-tocloft软件包可以干净卸载"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user