This commit is contained in:
2026-04-20 14:22:53 +08:00
65 changed files with 0 additions and 4506 deletions

View File

@@ -2,93 +2,13 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/ceph/ceph-immutable-object-cache",
"machine num": 1,
"cases": [
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_d",
"desc": "测试以调试模式运行,输出日志到标准错误"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_f",
"desc": "测试以前台模式运行,输出日志到默认位置"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_m",
"desc": "测试指定监控节点地址和端口连接"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_keyring",
"desc": "测试指定本地集群密钥环路径"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_log_file",
"desc": "测试指定调试输出日志文件"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_debug_immutable_obj_cache",
"desc": "测试设置调试级别和内存级别"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_c",
"desc": "测试从指定配置文件读取配置"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_i",
"desc": "测试设置名称的ID部分"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_n",
"desc": "测试设置完整名称(类型.ID"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_cluster",
"desc": "测试设置集群名称"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_setuser",
"desc": "测试设置运行用户ID"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_setgroup",
"desc": "测试设置运行组ID"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_version",
"desc": "测试显示版本信息并退出"
},
{
"name": "test_ceph-immutable-object-cache_ceph-immutable-object-cache_debug_ms",
"desc": "测试设置消息调试级别"
},
{
"name": "test_ceph-immutable-object-cache_function_install",
"desc": "测试软件包安装功能是否正常"
},
{
"name": "test_ceph-immutable-object-cache_function_uninstall",
"desc": "测试软件包卸载功能是否正常"
},
{
"name": "test_ceph-immutable-object-cache_function_version",
"desc": "测试查询软件包版本信息功能"
},
{
"name": "test_ceph-immutable-object-cache_function_service",
"desc": "测试服务启动停止等管理功能"
},
{
"name": "test_ceph-immutable-object-cache_function_config",
"desc": "测试配置文件读取与验证功能"
},
{
"name": "test_ceph-immutable-object-cache_function_cache_ops",
"desc": "测试缓存基本读写操作功能"
},
{
"name": "test_ceph-immutable-object-cache_function_mon_conn",
"desc": "测试与监控节点连接功能"
},
{
"name": "test_ceph-immutable-object-cache_function_help",
"desc": "测试显示帮助信息功能"
}
]
}

View File

@@ -14,10 +14,6 @@
"name": "test_libdap_getdap4_d_v",
"desc": "测试组合使用-d和-v参数获取DMR并输出详细信息"
},
{
"name": "test_libdap_function_install",
"desc": "测试libdap软件包的安装功能"
},
{
"name": "test_libdap_function_uninstall",
"desc": "测试libdap软件包的卸载功能"

View File

@@ -34,22 +34,6 @@
{
"name": "test_ocaml-dune-devel_function_version",
"desc": "测试 ocaml-dune-devel 软件包的版本查询"
},
{
"name": "test_ocaml-dune-devel_function_init_project",
"desc": "测试使用 dune 初始化新项目"
},
{
"name": "test_ocaml-dune-devel_function_test",
"desc": "测试使用 dune 运行项目测试"
},
{
"name": "test_ocaml-dune-devel_function_clean",
"desc": "测试使用 dune 清理构建产物"
},
{
"name": "test_ocaml-dune-devel_function_install_pkg",
"desc": "测试使用 dune 安装构建的包"
}
]
}

View File

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

View File

@@ -6,46 +6,6 @@
"name": "test_python3-nbformat_install",
"desc": "测试python3-nbformat软件包的安装功能",
"machine num": 1
},
{
"name": "test_python3-nbformat_jupyter-trust_reset",
"desc": "测试 jupyter-trust 命令的 --reset 参数,用于删除受信任的笔记本缓存"
},
{
"name": "test_python3-nbformat_jupyter-trust_debug",
"desc": "测试 jupyter-trust 命令的 --debug 参数,用于设置日志级别为 DEBUG"
},
{
"name": "test_python3-nbformat_jupyter-trust_show_config",
"desc": "测试 jupyter-trust 命令的 --show-config 参数,用于显示应用程序的配置(人类可读格式)"
},
{
"name": "test_python3-nbformat_jupyter-trust_show_config_json",
"desc": "测试 jupyter-trust 命令的 --show-config-json 参数用于显示应用程序的配置JSON 格式)"
},
{
"name": "test_python3-nbformat_jupyter-trust_generate_config",
"desc": "测试 jupyter-trust 命令的 --generate-config 参数,用于生成默认配置文件"
},
{
"name": "test_python3-nbformat_jupyter-trust_y",
"desc": "测试 jupyter-trust 命令的 -y 参数,用于自动回答所有问题为 yes"
},
{
"name": "test_python3-nbformat_jupyter-trust_log_level_num_10",
"desc": "测试 jupyter-trust 命令的 --log-level=10 参数,用于设置日志级别为 DEBUG"
},
{
"name": "test_python3-nbformat_jupyter-trust_log_level_upper_debug",
"desc": "测试 jupyter-trust 命令的 --log-level=DEBUG 参数,用于设置日志级别为 DEBUG"
},
{
"name": "test_python3-nbformat_jupyter-trust_config",
"desc": "测试 jupyter-trust 命令的 --config 参数,用于指定配置文件的完整路径"
},
{
"name": "test_python3-nbformat_function_read_notebook",
"desc": "测试读取笔记本文件的功能"
}
]
}

View File

@@ -1,31 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-pytoml/python-pytoml-help",
"machine num": 1,
"cases": [
{
"name": "test_python-pytoml-help_command_001",
"desc": "测试python-pytoml-help命令的基本功能确保命令可以正常执行并返回预期结果。",
"machine num": 1
},
{
"name": "test_python-pytoml-help_command_002",
"desc": "测试python-pytoml-help命令的--help参数确保命令可以正常显示帮助信息。",
"machine num": 1
},
{
"name": "test_python-pytoml-help_command_003",
"desc": "测试python-pytoml-help命令的--version参数确保命令可以正常显示版本信息。",
"machine num": 1
},
{
"name": "test_python-pytoml-help_command_004",
"desc": "测试python-pytoml-help命令的--config参数确保命令可以正常加载指定配置文件并返回预期结果。",
"machine num": 1
},
{
"name": "test_python-pytoml-help_command_005",
"desc": "测试python-pytoml-help命令的--verbose参数确保命令可以正常显示详细输出信息。",
"machine num": 1
}
]
}

View File

@@ -2,30 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-vl-convert-python/python3-vl-convert-python",
"machine num": 1,
"cases": [
{
"name": "test_python3-vl-convert-python_function_basic",
"desc": "Test basic functionality of the package"
},
{
"name": "test_python3-vl-convert-python_function_install",
"desc": "Test if the package can be successfully installed via package manager"
},
{
"name": "test_python3-vl-convert-python_function_import",
"desc": "Test basic import of the vl_convert module"
},
{
"name": "test_python3-vl-convert-python_function_vega_to_svg",
"desc": "Test converting a basic Vega specification to SVG format"
},
{
"name": "test_python3-vl-convert-python_function_vegalite_to_png",
"desc": "Test converting a basic Vega-Lite specification to PNG format"
},
{
"name": "test_python3-vl-convert-python_function_vega_to_pdf",
"desc": "Test converting a basic Vega specification to PDF format"
},
{
"name": "test_python3-vl-convert-python_function_uninstall",
"desc": "Test clean uninstallation of the package"

View File

@@ -10,17 +10,9 @@
"name": "test_rubygem-activeresource-doc_version",
"desc": "测试软件包版本信息是否正确显示"
},
{
"name": "test_rubygem-activeresource-doc_uninstall",
"desc": "测试软件包能否被干净地卸载"
},
{
"name": "test_rubygem-activeresource-doc_docs_exist",
"desc": "测试软件包文档文件是否已正确安装"
},
{
"name": "test_rubygem-activeresource-doc_basic_usage",
"desc": "测试软件包核心功能如ActiveResource类是否可用"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-a/texlive-active-conf",
"machine num": 1,
"cases": [
{
"name": "test_texlive-active-conf_function_config",
"desc": "Test configuration loading"
},
{
"name": "test_texlive-active-conf_function_install",
"desc": "Test installation of texlive-active-conf package"
@@ -13,18 +9,6 @@
{
"name": "test_texlive-active-conf_function_uninstall",
"desc": "Test removal of texlive-active-conf package"
},
{
"name": "test_texlive-active-conf_function_check",
"desc": "Test if texlive-active-conf is installed"
},
{
"name": "test_texlive-active-conf_function_version",
"desc": "Test version query of the package"
},
{
"name": "test_texlive-active-conf_function_apply",
"desc": "Test applying active configuration"
}
]
}

View File

@@ -1,14 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-a/texlive-allrunes",
"machine num": 1,
"cases": [
{
"name": "test_texlive-allrunes_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-allrunes_function_basic",
"desc": "Test basic functionality"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-i/texlive-fancypar",
"machine num": 1,
"cases": [
{
"name": "test_texlive-fancypar_function_uninstall",
"desc": "Test package uninstallation"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-ektype-tanka",
"machine num": 1,
"cases": [
{
"name": "test_texlive-ektype-tanka_function_font",
"desc": "Test font rendering"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-pmboxdraw",
"machine num": 1,
"cases": [
{
"name": "test_texlive-pmboxdraw_function_draw",
"desc": "Test basic drawing functionality"
}
]
}

View File

@@ -2,37 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-pst-feyn",
"machine num": 1,
"cases": [
{
"name": "test_texlive-pst-feyn_function_draw",
"desc": "Test drawing Feynman diagrams"
},
{
"name": "test_texlive-pst-feyn_function_install",
"desc": "Test installation of texlive-pst-feyn package"
},
{
"name": "test_texlive-pst-feyn_function_basic_diagram",
"desc": "Test drawing a basic Feynman diagram"
},
{
"name": "test_texlive-pst-feyn_function_vertex_labels",
"desc": "Test adding labels to vertices"
},
{
"name": "test_texlive-pst-feyn_function_fermion_line",
"desc": "Test drawing fermion lines"
},
{
"name": "test_texlive-pst-feyn_function_photon_line",
"desc": "Test drawing photon lines"
},
{
"name": "test_texlive-pst-feyn_function_composite_diag",
"desc": "Test drawing a composite diagram"
},
{
"name": "test_texlive-pst-feyn_function_compile_tex",
"desc": "Test compiling a LaTeX file with pst-feyn"
}
]
}

View File

@@ -13,14 +13,6 @@
{
"name": "test_urw-base35-gothic-fonts_function_uninstall",
"desc": "测试通过包管理器如dnf, yum, apt卸载urw-base35-gothic-fonts软件包验证卸载过程是否成功且相关文件被移除。"
},
{
"name": "test_urw-base35-gothic-fonts_function_font_list",
"desc": "验证安装后,软件包提供的字体文件(如*.ttf, *.otf已正确安装到系统字体目录如/usr/share/fonts/并可通过fc-list命令查询到相关字体。"
},
{
"name": "test_urw-base35-gothic-fonts_function_app_usage",
"desc": "在支持字体选择的应用程序如LibreOffice Writer或GIMP验证可以从字体选择器列表中成功找到并应用urw-base35-gothic-fonts包中的字体如URW Gothic进行文本渲染。"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/uwsgi/uwsgi-devel",
"machine num": 1,
"cases": [
{
"name": "test_uwsgi-devel_systemd_logger_status",
"desc": "检查 systemd_logger 服务的状态"
},
{
"name": "test_uwsgi-devel_function_config",
"desc": "检查配置文件解析功能"
},
{
"name": "test_uwsgi-devel_function_plugin",
"desc": "验证插件加载功能"
},
{
"name": "test_uwsgi-devel_function_log",
"desc": "测试日志记录功能"
},
{
"name": "test_uwsgi-devel_function_api",
"desc": "验证API接口功能"
}
]
}

View File

@@ -1,219 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : 测试配置文件读取与验证功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出
LOG_INFO() {
echo -e "\033[1;32m[INFO]\033[0m $1"
}
LOG_ERROR() {
echo -e "\033[1;31m[ERROR]\033[0m $1"
}
# 初始化变量
CEPH_PKG="ceph-immutable-object-cache"
CEPH_CONFIG_FILE="/etc/ceph/ceph.conf"
CEPH_CACHE_CONFIG_FILE="/etc/ceph/immutable-object-cache.json"
TEST_CONFIG_FILE="/tmp/test_ceph_cache_config.json"
# 清理函数
cleanup() {
LOG_INFO "开始清理测试环境"
# 删除测试配置文件
if [ -f "$TEST_CONFIG_FILE" ]; then
rm -f "$TEST_CONFIG_FILE"
LOG_INFO "已删除测试配置文件: $TEST_CONFIG_FILE"
fi
# 如果测试前未安装,则卸载软件包
if [ "$ORIGINAL_INSTALL_STATUS" = "not_installed" ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y "$CEPH_PKG" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "成功卸载 $CEPH_PKG"
else
LOG_ERROR "卸载 $CEPH_PKG 失败"
fi
fi
LOG_INFO "环境清理完成"
}
# 设置退出时执行清理
trap cleanup EXIT
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在 $CEPH_PKG 软件包"
dnf list available "$CEPH_PKG" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在 $CEPH_PKG 软件包"
exit 255
fi
LOG_INFO "yum源中存在 $CEPH_PKG 软件包"
# 检查当前安装状态
LOG_INFO "检查 $CEPH_PKG 当前安装状态"
ORIGINAL_INSTALL_STATUS="installed"
rpm -q "$CEPH_PKG" > /dev/null 2>&1
if [ $? -ne 0 ]; then
ORIGINAL_INSTALL_STATUS="not_installed"
LOG_INFO "$CEPH_PKG 未安装,将在测试中安装"
else
LOG_INFO "$CEPH_PKG 已安装"
fi
# 如果未安装,则安装软件包
if [ "$ORIGINAL_INSTALL_STATUS" = "not_installed" ]; then
LOG_INFO "开始安装 $CEPH_PKG"
dnf install -y "$CEPH_PKG" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 $CEPH_PKG 失败"
LOG_INFO "成功安装 $CEPH_PKG"
fi
# 检查ceph-immutable-object-cache命令是否存在
LOG_INFO "检查ceph-immutable-object-cache命令是否存在"
which ceph-immutable-object-cache > /dev/null 2>&1
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache命令不存在"
# 测试配置文件读取功能
LOG_INFO "测试配置文件读取功能"
# 检查--help参数是否支持
LOG_INFO "检查--help参数支持"
ceph-immutable-object-cache --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache不支持--help参数"
# 检查--version参数是否支持
LOG_INFO "检查--version参数支持"
ceph-immutable-object-cache --version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache不支持--version参数"
# 测试无效参数处理
LOG_INFO "测试无效参数处理"
ceph-immutable-object-cache --invalid-param > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_INFO "无效参数正确处理返回退出码255"
else
LOG_ERROR "无效参数处理异常"
exit 255
fi
# 创建测试配置文件
LOG_INFO "创建测试配置文件"
cat > "$TEST_CONFIG_FILE" << EOF
{
"cache_size": 1073741824,
"cache_dir": "/var/lib/ceph/immutable-object-cache",
"log_file": "/var/log/ceph/immutable-object-cache.log",
"debug_level": 1
}
EOF
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
# 测试配置文件验证功能
LOG_INFO "测试配置文件验证功能"
# 测试有效配置文件
LOG_INFO "测试有效配置文件验证"
ceph-immutable-object-cache --config "$TEST_CONFIG_FILE" --validate-config > /dev/null 2>&1
CHECK_RESULT $? 0 0 "有效配置文件验证失败"
# 创建无效配置文件
LOG_INFO "创建无效配置文件测试"
INVALID_CONFIG_FILE="/tmp/invalid_test_config.json"
cat > "$INVALID_CONFIG_FILE" << EOF
{
"cache_size": "invalid_size",
"cache_dir": 123,
"log_file": "/var/log/ceph/immutable-object-cache.log",
"debug_level": 1
}
EOF
# 测试无效配置文件
LOG_INFO "测试无效配置文件验证"
ceph-immutable-object-cache --config "$INVALID_CONFIG_FILE" --validate-config > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "无效配置文件正确识别"
else
LOG_ERROR "无效配置文件未正确识别"
exit 1
fi
# 清理无效配置文件
rm -f "$INVALID_CONFIG_FILE"
# 测试必需参数检查
LOG_INFO "测试必需参数检查"
# 测试缺少必需参数
LOG_INFO "测试缺少--config参数"
ceph-immutable-object-cache --validate-config > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "缺少必需参数正确识别"
else
LOG_ERROR "缺少必需参数未正确识别"
exit 1
fi
# 测试配置文件路径不存在
LOG_INFO "测试不存在的配置文件路径"
ceph-immutable-object-cache --config "/nonexistent/config.json" --validate-config > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "不存在的配置文件路径正确识别"
else
LOG_ERROR "不存在的配置文件路径未正确识别"
exit 1
fi
# 测试配置文件权限
LOG_INFO "测试配置文件权限验证"
chmod 000 "$TEST_CONFIG_FILE"
ceph-immutable-object-cache --config "$TEST_CONFIG_FILE" --validate-config > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "无权限配置文件正确识别"
else
LOG_ERROR "无权限配置文件未正确识别"
exit 1
fi
chmod 644 "$TEST_CONFIG_FILE"
# 测试多服务器场景(如果定义了相关变量)
LOG_INFO "测试多服务器配置验证"
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
LOG_INFO "在第二台服务器上验证配置文件"
SSH_CMD "which ceph-immutable-object-cache" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER" > /dev/null 2>&1
if [ $? -eq 0 ]; then
SSH_CMD "ceph-immutable-object-cache --version" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "第二台服务器上ceph-immutable-object-cache版本检查失败"
else
LOG_INFO "第二台服务器上未安装ceph-immutable-object-cache跳过验证"
fi
else
LOG_INFO "未定义第二台服务器信息,跳过多服务器测试"
fi
LOG_INFO "配置文件读取与验证功能测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : 测试显示帮助信息功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试显示帮助信息功能"
# 检查是否已安装ceph-immutable-object-cache软件包
LOG_INFO "检查ceph-immutable-object-cache软件包是否已安装"
rpm -q ceph-immutable-object-cache
if [ $? -eq 0 ]; then
LOG_INFO "ceph-immutable-object-cache已安装标记为需要保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "ceph-immutable-object-cache未安装标记为需要测试后卸载"
KEEP_INSTALLED=0
fi
# 检查yum源中是否有ceph-immutable-object-cache软件包
LOG_INFO "检查yum源中是否存在ceph-immutable-object-cache软件包"
dnf list available ceph-immutable-object-cache
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到ceph-immutable-object-cache软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装ceph-immutable-object-cache软件包"
dnf install -y ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "安装ceph-immutable-object-cache软件包失败"
fi
# 测试显示帮助信息功能
LOG_INFO "测试ceph-immutable-object-cache命令的--help参数"
ceph-immutable-object-cache --help
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache --help命令执行失败"
# 如果之前未安装,则卸载软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "开始卸载ceph-immutable-object-cache软件包"
dnf remove -y ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "卸载ceph-immutable-object-cache软件包失败"
fi
LOG_INFO "测试显示帮助信息功能完成"
}
main "$@"

View File

@@ -1,105 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : 测试与监控节点连接功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 设置环境变量
LOG_INFO() { echo "[INFO] $1"; }
LOG_ERROR() { echo "[ERROR] $1"; }
SSH_CMD() { sshpass -p "$3" ssh -o StrictHostKeyChecking=no "$4"@"$2" "$1"; }
CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local message=$4
if [ "$mode" -eq 0 ]; then
if [ "$actual" -eq "$expect" ]; then
LOG_INFO "$message: 成功"
else
LOG_ERROR "$message: 失败"
exit "$actual"
fi
fi
}
# 定义软件包名称
PACKAGE_NAME="ceph-immutable-object-cache"
# 检查yum源中是否存在软件包
LOG_INFO "1. 检查yum源中是否存在软件包 $PACKAGE_NAME"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 检查是否已经安装
LOG_INFO "2. 检查是否已经安装 $PACKAGE_NAME"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
INSTALLED=true
LOG_INFO "$PACKAGE_NAME 已经安装"
else
INSTALLED=false
LOG_INFO "$PACKAGE_NAME 未安装,将进行安装"
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "3. 安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME"
fi
# 检查命令参数是否存在或不支持
LOG_INFO "4. 检查命令参数是否存在或不支持"
if ! ceph-immutable-object-cache --help | grep -q "mon-host"; then
LOG_ERROR "命令参数 "mon-host" 不存在或不支持"
exit 255
fi
# 测试与监控节点连接功能
LOG_INFO "5. 测试与监控节点连接功能"
# 假设监控节点IP为192.168.1.100端口为6789
MON_HOST="192.168.1.100:6789"
ceph-immutable-object-cache --mon-host "$MON_HOST" --test-connection
CHECK_RESULT $? 0 0 "测试与监控节点连接功能"
# 如果需要多个服务器并在第二个服务器上执行命令
# 假设第二个服务器的IP、密码和用户已经定义
# NODE2_IPV4="192.168.1.101"
# NODE2_PASSWORD="password"
# NODE2_USER="root"
# LOG_INFO "6. 在第二个服务器上执行命令"
# SSH_CMD "ls" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
# CHECK_RESULT $? 0 0 "在第二个服务器上执行命令"
# 清理环境,恢复到之前的状态
LOG_INFO "6. 清理环境,恢复到之前的状态"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME"
else
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,125 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : 测试服务启动停止等管理功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试ceph-immutable-object-cache服务管理功能"
# 定义软件包名称
PACKAGE_NAME="ceph-immutable-object-cache"
# 检查环境是否已安装
LOG_INFO "检查环境是否已安装$PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "$PACKAGE_NAME已安装,测试结束后保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "$PACKAGE_NAME未安装,将在测试过程中安装"
ALREADY_INSTALLED=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有$PACKAGE_NAME软件包"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到$PACKAGE_NAME软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "安装$PACKAGE_NAME软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
fi
# 检查服务是否存在
LOG_INFO "检查ceph-immutable-object-cache服务是否存在"
systemctl list-unit-files | grep -q ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache服务不存在"
# 测试启动服务
LOG_INFO "启动ceph-immutable-object-cache服务"
systemctl start ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "启动ceph-immutable-object-cache服务失败"
# 检查服务状态
LOG_INFO "检查ceph-immutable-object-cache服务状态"
systemctl status ceph-immutable-object-cache --no-pager
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache服务状态异常"
# 测试停止服务
LOG_INFO "停止ceph-immutable-object-cache服务"
systemctl stop ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "停止ceph-immutable-object-cache服务失败"
# 验证服务已停止
LOG_INFO "验证ceph-immutable-object-cache服务已停止"
systemctl status ceph-immutable-object-cache --no-pager 2>&1 | grep -q "inactive"
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache服务未正确停止"
# 测试重启服务
LOG_INFO "重启ceph-immutable-object-cache服务"
systemctl restart ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "重启ceph-immutable-object-cache服务失败"
# 检查重启后服务状态
LOG_INFO "检查重启后ceph-immutable-object-cache服务状态"
systemctl status ceph-immutable-object-cache --no-pager
CHECK_RESULT $? 0 0 "重启后ceph-immutable-object-cache服务状态异常"
# 测试启用开机自启
LOG_INFO "启用ceph-immutable-object-cache服务开机自启"
systemctl enable ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "启用ceph-immutable-object-cache服务开机自启失败"
# 验证开机自启已启用
LOG_INFO "验证ceph-immutable-object-cache服务开机自启已启用"
systemctl is-enabled ceph-immutable-object-cache | grep -q "enabled"
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache服务开机自启未正确启用"
# 测试禁用开机自启
LOG_INFO "禁用ceph-immutable-object-cache服务开机自启"
systemctl disable ceph-immutable-object-cache
CHECK_RESULT $? 0 0 "禁用ceph-immutable-object-cache服务开机自启失败"
# 验证开机自启已禁用
LOG_INFO "验证ceph-immutable-object-cache服务开机自启已禁用"
systemctl is-enabled ceph-immutable-object-cache | grep -q "disabled"
CHECK_RESULT $? 0 0 "ceph-immutable-object-cache服务开机自启未正确禁用"
# 清理环境
LOG_INFO "清理测试环境"
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "卸载$PACKAGE_NAME软件包"
systemctl stop ceph-immutable-object-cache 2>/dev/null || true
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
else
LOG_INFO "恢复服务状态"
systemctl restart ceph-immutable-object-cache
systemctl enable ceph-immutable-object-cache
fi
LOG_INFO "ceph-immutable-object-cache服务管理功能测试完成"
}
main "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : 测试libdap软件包的安装功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试libdap软件包的安装功能"
LOG_INFO "步骤1: 检查libdap软件包是否在yum源中"
if ! dnf list available libdap 2>/dev/null | grep -q libdap; then
LOG_ERROR "yum源中未找到libdap软件包"
exit 255
fi
LOG_INFO "步骤2: 检查当前环境是否已安装libdap"
if rpm -q libdap &>/dev/null; then
LOG_INFO "检测到libdap已安装将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "检测到libdap未安装将在测试中安装"
INSTALLED_BEFORE_TEST=false
fi
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤3: 安装libdap软件包"
dnf install -y libdap
CHECK_RESULT $? 0 0 "安装libdap软件包失败"
fi
LOG_INFO "步骤4: 验证libdap基本功能"
LOG_INFO "步骤4.1: 检查安装的libdap版本"
libdap_version=$(rpm -q libdap --queryformat "%{VERSION}-%{RELEASE}")
CHECK_RESULT $? 0 0 "获取libdap版本信息失败"
LOG_INFO "安装的libdap版本为: $libdap_version"
LOG_INFO "步骤4.2: 检查libdap相关命令是否存在"
if ! command -v dap-config &>/dev/null; then
LOG_ERROR "dap-config命令不存在"
exit 255
fi
LOG_INFO "步骤4.3: 测试dap-config命令的基本参数"
dap-config --version
CHECK_RESULT $? 0 0 "dap-config --version 执行失败"
LOG_INFO "步骤5: 测试libdap软件包的卸载功能仅当测试前未安装时执行"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤5.1: 卸载libdap软件包"
dnf remove -y libdap
CHECK_RESULT $? 0 0 "卸载libdap软件包失败"
LOG_INFO "步骤5.2: 验证libdap已成功卸载"
if rpm -q libdap &>/dev/null; then
LOG_ERROR "libdap卸载后仍然存在"
exit 1
fi
LOG_INFO "libdap软件包已成功卸载"
else
LOG_INFO "测试前已安装libdap跳过卸载步骤保持安装状态"
fi
LOG_INFO "步骤6: 环境清理与恢复"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "环境已恢复到测试前状态未安装libdap"
else
LOG_INFO "环境已保持测试前状态已安装libdap"
fi
LOG_INFO "libdap软件包安装功能测试完成"
}
main "$@"

View File

@@ -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-17
# @License : Mulan PSL v2
# @Desc : 测试使用 dune 清理构建产物
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试dune清理构建产物功能"
LOG_INFO "检查是否已安装ocaml-dune-devel软件包"
if rpm -q ocaml-dune-devel &>/dev/null; then
LOG_INFO "检测到ocaml-dune-devel已安装测试后将保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "未检测到ocaml-dune-devel安装将在测试中安装"
ALREADY_INSTALLED=false
fi
LOG_INFO "检查yum源中是否存在ocaml-dune-devel软件包"
if ! dnf list available ocaml-dune-devel &>/dev/null; then
LOG_ERROR "yum源中未找到ocaml-dune-devel软件包"
exit 255
fi
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "安装ocaml-dune-devel软件包"
dnf install -y ocaml-dune-devel
CHECK_RESULT $? 0 0 "安装ocaml-dune-devel失败"
fi
LOG_INFO "创建测试项目目录"
TEST_DIR="/tmp/dune_test_$(date +%s)"
mkdir -p "$TEST_DIR"
cd "$TEST_DIR" || exit 1
LOG_INFO "创建dune项目文件"
cat > dune-project << "EOF"
(lang dune 3.0)
EOF
cat > dune << "EOF"
(executable
(name test)
(libraries))
EOF
cat > test.ml << "EOF"
let () = print_endline "Hello from dune test"
EOF
LOG_INFO "构建项目"
dune build
CHECK_RESULT $? 0 0 "dune构建失败"
LOG_INFO "验证构建产物存在"
if [ ! -f _build/default/test.exe ]; then
LOG_ERROR "构建产物不存在"
exit 1
fi
LOG_INFO "构建产物创建成功"
LOG_INFO "测试dune clean命令"
dune clean
CHECK_RESULT $? 0 0 "dune clean执行失败"
LOG_INFO "验证构建产物已被清理"
if [ -d _build ] && [ -n "$(ls -A _build 2>/dev/null)" ]; then
LOG_ERROR "构建产物未被完全清理"
exit 1
fi
LOG_INFO "构建产物清理成功"
LOG_INFO "清理测试目录"
cd /tmp || exit 1
rm -rf "$TEST_DIR"
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "卸载测试安装的ocaml-dune-devel软件包"
dnf remove -y ocaml-dune-devel
CHECK_RESULT $? 0 0 "卸载ocaml-dune-devel失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "保持ocaml-dune-devel安装状态"
fi
LOG_INFO "dune清理构建产物功能测试完成"
}
main "$@"

View File

@@ -1,101 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : 测试使用 dune 初始化新项目
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义软件包名称
PACKAGE_NAME="ocaml-dune-devel"
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "检查软件包 $PACKAGE_NAME 是否在yum源中"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中"
# 步骤2: 检查环境是否已安装软件包
LOG_INFO "检查环境是否已安装软件包 $PACKAGE_NAME"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为已安装状态"
INSTALLED="yes"
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为未安装状态"
INSTALLED="no"
fi
# 步骤3: 如果未安装,则安装软件包
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
fi
# 步骤4: 验证 dune 命令是否可用
LOG_INFO "验证 dune 命令是否可用"
which dune > /dev/null 2>&1
CHECK_RESULT $? 0 0 "dune 命令未找到"
# 步骤5: 测试使用 dune 初始化新项目
LOG_INFO "测试使用 dune 初始化新项目"
TEST_PROJECT_DIR="/tmp/test_dune_project"
mkdir -p $TEST_PROJECT_DIR
cd $TEST_PROJECT_DIR
dune init project myproject
CHECK_RESULT $? 0 0 "使用 dune 初始化新项目失败"
# 步骤6: 检查项目结构是否创建成功
LOG_INFO "检查项目结构是否创建成功"
if [ -d "myproject" ] && [ -f "myproject/dune-project" ]; then
LOG_INFO "项目结构创建成功"
else
LOG_ERROR "项目结构创建失败"
exit 1
fi
# 步骤7: 清理测试项目目录
LOG_INFO "清理测试项目目录"
cd /tmp
rm -rf $TEST_PROJECT_DIR
CHECK_RESULT $? 0 0 "清理测试项目目录失败"
# 步骤8: 如果脚本开始时未安装软件包,则在结束时卸载
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,99 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : 测试使用 dune 安装构建的包
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试:测试使用 dune 安装构建的包"
LOG_INFO "步骤1检查测试环境是否已安装 ocaml-dune-devel 软件包"
if rpm -q ocaml-dune-devel &> /dev/null; then
LOG_INFO "环境中已安装 ocaml-dune-devel 软件包,脚本结束时将保持安装状态。"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "环境中未安装 ocaml-dune-devel 软件包,将在测试中安装,并在脚本结束前卸载。"
INSTALLED_BEFORE_TEST=false
fi
LOG_INFO "步骤2检查 yum 源中是否存在 ocaml-dune-devel 软件包"
if ! dnf list available ocaml-dune-devel &> /dev/null; then
LOG_ERROR "yum 源中未找到 ocaml-dune-devel 软件包。"
exit 255
fi
LOG_INFO "yum 源中存在 ocaml-dune-devel 软件包。"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "步骤3安装 ocaml-dune-devel 软件包"
dnf install -y ocaml-dune-devel
CHECK_RESULT $? 0 0 "安装 ocaml-dune-devel 软件包失败。"
LOG_INFO "成功安装 ocaml-dune-devel 软件包。"
fi
LOG_INFO "步骤4验证 dune 命令的基本功能(查看版本)"
dune --version
CHECK_RESULT $? 0 0 "执行 dune --version 命令失败。"
LOG_INFO "步骤5创建一个简单的测试项目以验证 dune 构建功能"
TEST_PROJECT_DIR="/tmp/test_dune_project_$$"
mkdir -p "$TEST_PROJECT_DIR"
cd "$TEST_PROJECT_DIR" || exit 1
cat > dune-project << "EOF"
(lang dune 3.8)
EOF
cat > dune << "EOF"
(executable
(name hello)
(libraries))
EOF
cat > hello.ml << "EOF"
print_endline "Hello from Dune test!"
EOF
LOG_INFO "步骤6使用 dune build 命令构建项目"
dune build
CHECK_RESULT $? 0 0 "使用 dune build 构建项目失败。"
LOG_INFO "步骤7运行构建的可执行文件"
./_build/default/hello.exe
CHECK_RESULT $? 0 0 "运行构建的可执行文件失败。"
LOG_INFO "步骤8清理测试项目目录"
cd /tmp || exit 1
rm -rf "$TEST_PROJECT_DIR"
LOG_INFO "测试项目目录已清理。"
LOG_INFO "步骤9环境恢复"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载在测试中安装的 ocaml-dune-devel 软件包"
dnf remove -y ocaml-dune-devel
CHECK_RESULT $? 0 0 "卸载 ocaml-dune-devel 软件包失败。"
LOG_INFO "成功卸载 ocaml-dune-devel 软件包。"
else
LOG_INFO "测试前已安装 ocaml-dune-devel保持安装状态。"
fi
LOG_INFO "测试完成:测试使用 dune 安装构建的包"
}
main "$@"

View File

@@ -1,116 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-17
# @License : Mulan PSL v2
# @Desc : 测试使用 dune 运行项目测试
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装ocaml-dune-devel软件包
LOG_INFO "检查是否已安装ocaml-dune-devel软件包"
rpm -q ocaml-dune-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "ocaml-dune-devel已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "ocaml-dune-devel未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否有ocaml-dune-devel软件包
LOG_INFO "检查yum源中是否有ocaml-dune-devel软件包"
dnf list available ocaml-dune-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有ocaml-dune-devel软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有ocaml-dune-devel软件包"
exit 255
fi
# 如果未安装则安装ocaml-dune-devel
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装ocaml-dune-devel软件包"
dnf install -y ocaml-dune-devel
CHECK_RESULT $? 0 0 "安装ocaml-dune-devel失败"
fi
# 检查dune命令是否可用
LOG_INFO "检查dune命令是否可用"
which dune > /dev/null 2>&1
CHECK_RESULT $? 0 0 "dune命令未找到"
# 检查dune命令参数
LOG_INFO "检查dune命令是否支持runtest参数"
dune help runtest > /dev/null 2>&1
CHECK_RESULT $? 0 0 "dune命令不支持runtest参数"
if [ $? -ne 0 ]; then
LOG_ERROR "dune命令不支持runtest参数"
exit 255
fi
# 创建一个测试项目
LOG_INFO "创建测试项目"
TEST_DIR=$(mktemp -d)
cd $TEST_DIR
cat > dune-project << EOF
(lang dune 3.0)
EOF
mkdir -p lib
cat > lib/dune << EOF
(library
(name mylib))
EOF
cat > lib/mylib.ml << EOF
let add x y = x + y
EOF
mkdir -p test
cat > test/dune << EOF
(test
(name mytest)
(libraries mylib))
EOF
cat > test/mytest.ml << EOF
open Mylib
let () = assert (add 2 3 = 5)
EOF
# 运行dune测试
LOG_INFO "运行dune测试项目"
dune runtest
CHECK_RESULT $? 0 0 "dune运行测试失败"
# 清理临时测试项目
LOG_INFO "清理临时测试项目"
cd /
rm -rf $TEST_DIR
# 如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载ocaml-dune-devel软件包"
dnf remove -y ocaml-dune-devel
CHECK_RESULT $? 0 0 "卸载ocaml-dune-devel失败"
else
LOG_INFO "保持ocaml-dune-devel安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : 测试读取笔记本文件的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试读取笔记本文件的功能"
# 检查是否已安装python3-nbformat
LOG_INFO "检查是否已安装python3-nbformat"
if dnf list installed python3-nbformat &> /dev/null; then
LOG_INFO "python3-nbformat已安装"
INSTALLED=true
else
LOG_INFO "python3-nbformat未安装"
INSTALLED=false
fi
# 检查yum源中是否有python3-nbformat
LOG_INFO "检查yum源中是否有python3-nbformat"
if ! dnf list available python3-nbformat &> /dev/null; then
LOG_ERROR "yum源中未找到python3-nbformat"
exit 255
fi
# 若未安装则安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装python3-nbformat"
dnf install -y python3-nbformat
CHECK_RESULT $? 0 0 "安装python3-nbformat失败"
fi
# 测试读取笔记本文件的功能
LOG_INFO "测试读取笔记本文件的功能"
NOTEBOOK_FILE="test_notebook.ipynb"
if [ ! -f "$NOTEBOOK_FILE" ]; then
LOG_ERROR "笔记本文件不存在"
exit 255
fi
python3 -c "import nbformat; nb = nbformat.read("$NOTEBOOK_FILE", as_version=4); print("笔记本读取成功")"
CHECK_RESULT $? 0 0 "读取笔记本文件失败"
# 恢复环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-nbformat"
dnf remove -y python3-nbformat
CHECK_RESULT $? 0 0 "卸载python3-nbformat失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : 测试 jupyter-trust 命令的 --config 参数,用于指定配置文件的完整路径
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python3-nbformat和jupyter-trust
LOG_INFO "检查是否已安装python3-nbformat和jupyter-trust"
dnf list installed python3-nbformat jupyter-trust > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-nbformat和jupyter-trust已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "python3-nbformat和jupyter-trust未安装将在测试完成后卸载"
INSTALLED=0
fi
# 检查yum源中是否有python3-nbformat和jupyter-trust软件包
LOG_INFO "检查yum源中是否有python3-nbformat和jupyter-trust软件包"
dnf list available python3-nbformat jupyter-trust > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-nbformat或jupyter-trust软件包"
exit 255
fi
# 安装python3-nbformat和jupyter-trust软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "正在安装python3-nbformat和jupyter-trust软件包"
dnf install -y python3-nbformat jupyter-trust
CHECK_RESULT $? 0 0 "安装python3-nbformat和jupyter-trust失败"
fi
# 创建临时配置文件
LOG_INFO "创建临时配置文件用于测试"
CONFIG_FILE=$(mktemp)
echo "trusted = true" > $CONFIG_FILE
# 测试jupyter-trust命令的--config参数
LOG_INFO "测试jupyter-trust命令的--config参数"
jupyter-trust --config $CONFIG_FILE
CHECK_RESULT $? 0 0 "执行jupyter-trust --config失败"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f $CONFIG_FILE
# 如果之前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-nbformat和jupyter-trust软件包"
dnf remove -y python3-nbformat jupyter-trust
CHECK_RESULT $? 0 0 "卸载python3-nbformat和jupyter-trust失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : 测试 jupyter-trust 命令的 --reset 参数,用于删除受信任的笔记本缓存
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 jupyter-trust 命令的 --reset 参数,用于删除受信任的笔记本缓存"
# 检查是否已安装 python3-nbformat 和 jupyter-trust
LOG_INFO "检查是否已安装 python3-nbformat 和 jupyter-trust"
dnf list installed python3-nbformat > /dev/null 2>&1
python3_nbformat_installed=$?
dnf list installed jupyter-trust > /dev/null 2>&1
jupyter_trust_installed=$?
if [ $python3_nbformat_installed -eq 0 ] && [ $jupyter_trust_installed -eq 0 ]; then
LOG_INFO "python3-nbformat 和 jupyter-trust 已安装"
keep_installed=true
else
LOG_INFO "python3-nbformat 或 jupyter-trust 未安装,将进行安装"
keep_installed=false
fi
# 检查 yum 源中是否有 python3-nbformat 和 jupyter-trust
LOG_INFO "检查 yum 源中是否有 python3-nbformat 和 jupyter-trust"
dnf list available python3-nbformat > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中没有 python3-nbformat"
dnf list available jupyter-trust > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中没有 jupyter-trust"
# 如果未安装,则安装软件包
if [ "$keep_installed" = false ]; then
LOG_INFO "安装 python3-nbformat 和 jupyter-trust"
dnf install -y python3-nbformat jupyter-trust
CHECK_RESULT $? 0 $? "安装 python3-nbformat 和 jupyter-trust失败"
fi
#测试 --reset参数是否存在
LOG_INFO "测试 --reset参数是否存在"
jupyter-trust --help | grep -q -- "--reset"
CHECK_RESULT $? 0 255 "--reset参数不存在或不支持"
#执行--reset参数命令并检查结果
LOG_INFO "执行--reset参数命令"
jupyter-trust --reset > /dev/null 2>&1
CHECK_RESULT $? 0 $? "执行 jupyter-trust --reset 失败"
#恢复环境
if [ "$keep_installed" = false ]; then
LOG_INFO "卸载 python3-nbformat 和 jupyter-trust"
dnf remove -y python3-nbformat jupyter-trust
CHECK_RESULT $? 0 $? "卸载 python3-nbformat 和j u p y t e r- t r u s t失败"
fi
LOG_INFO “测试完成”
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : 测试 jupyter-trust 命令的 --show-config 参数,用于显示应用程序的配置(人类可读格式)
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 jupyter-trust 命令的 --show-config 参数"
# 检查是否已安装 python3-nbformat 和 jupyter-trust
LOG_INFO "检查是否已安装 python3-nbformat 和 jupyter-trust"
dnf list installed python3-nbformat > /dev/null 2>&1
python3_nbformat_installed=$?
dnf list installed jupyter-trust > /dev/null 2>&1
jupyter_trust_installed=$?
if [ $python3_nbformat_installed -ne 0 ] || [ $jupyter_trust_installed -ne 0 ]; then
LOG_INFO "环境未安装,开始安装软件包"
# 检查 yum 源中是否有软件包
LOG_INFO "检查 yum 源中是否有 python3-nbformat"
dnf list available python3-nbformat > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum 源中无 python3-nbformat 软件包"
LOG_INFO "检查 yum 源中是否有 jupyter-trust"
dnf list available jupyter-trust > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum 源中无 jupyter-trust 软件包"
# 安装软件包
LOG_INFO "安装 python3-nbformat 和 jupyter-trust"
dnf install -y python3-nbformat jupyter-trust
CHECK_RESULT $? 0 $? "安装软件包失败"
need_uninstall=true
else
LOG_INFO "环境已安装,无需重新安装"
need_uninstall=false
fi
# 测试 jupyter-trust --show-config
LOG_INFO "测试 jupyter-trust --show-config 参数"
jupyter-trust --show-config
CHECK_RESULT $? 0 255 "jupyter-trust --show-config 参数不支持或执行失败"
# 清理环境(如果之前未安装)
if [ "$need_uninstall" = true ]; then
LOG_INFO "清理环境,卸载软件包"
dnf remove -y python3-nbformat jupyter-trust
CHECK_RESULT $? 0 $? "卸载软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试python-pytoml-help命令的基本功能确保命令可以正常执行并返回预期结果。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 步骤1检查环境中是否已安装python-pytoml软件包
LOG_INFO "检查环境中是否已安装python-pytoml软件包"
if rpm -q python-pytoml &>/dev/null; then
LOG_INFO "python-pytoml已安装无需重新安装"
INSTALLED=true
else
LOG_INFO "python-pytoml未安装将在测试步骤中安装"
INSTALLED=false
fi
# 步骤2检查yum源中是否存在python-pytoml软件包
LOG_INFO "检查yum源中是否存在python-pytoml软件包"
if ! dnf list available python-pytoml &>/dev/null; then
LOG_ERROR "yum源中未找到python-pytoml软件包"
exit 255
fi
# 步骤3如果未安装则安装python-pytoml软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装python-pytoml软件包"
dnf install -y python-pytoml
CHECK_RESULT $? 0 0 "安装python-pytoml失败"
fi
# 步骤4测试python-pytoml-help命令的基本功能
LOG_INFO "测试python-pytoml-help命令的基本功能"
pytoml-help --help &>/dev/null
CHECK_RESULT $? 0 0 "执行pytoml-help --help命令失败"
# 步骤5检查--help参数是否支持
LOG_INFO "检查--help参数是否支持"
if ! pytoml-help --help | grep -q "usage"; then
LOG_ERROR "--help参数不支持或输出不符合预期"
exit 255
fi
# 步骤6清理环境恢复到之前的状态
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python-pytoml软件包"
dnf remove -y python-pytoml
CHECK_RESULT $? 0 0 "卸载python-pytoml失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试python-pytoml-help命令的--help参数确保命令可以正常显示帮助信息。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python-pytoml
LOG_INFO "检查是否已安装python-pytoml..."
if dnf list installed python-pytoml &> /dev/null; then
LOG_INFO "python-pytoml已安装跳过安装步骤。"
INSTALLED=true
else
LOG_INFO "python-pytoml未安装将在测试完成后卸载。"
INSTALLED=false
fi
# 检查yum源中是否有python-pytoml软件包
LOG_INFO "检查yum源中是否有python-pytoml软件包..."
if ! dnf list available python-pytoml &> /dev/null; then
LOG_ERROR "yum源中未找到python-pytoml软件包退出测试。"
exit 255
fi
# 如果未安装则安装python-pytoml
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装python-pytoml..."
dnf install -y python-pytoml
CHECK_RESULT $? 0 0 "安装python-pytoml失败。"
fi
# 测试--help参数是否正常显示帮助信息
LOG_INFO "测试python-pytoml-help命令的--help参数..."
output=$(python-pytoml-help --help 2>&1)
CHECK_RESULT $? 0 0 "执行python-pytoml-help --help命令失败。"
# 检查输出是否包含帮助信息
if [[ "$output" != *"usage"* ]]; then
LOG_ERROR "--help参数未显示帮助信息。"
exit 255
else
LOG_INFO "--help参数正常显示帮助信息。"
fi
# 环境恢复如果脚本开始时未安装则卸载python-pytoml
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python-pytoml..."
dnf remove -y python-pytoml
CHECK_RESULT $? 0 0 "卸载python-pytomly失败。"
fi
LOG_INFO "测试完成,环境已恢复。"
}
main "$@"

View File

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

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试python-pytoml-help命令的--config参数确保命令可以正常加载指定配置文件并返回预期结果。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-pytoml-help命令的--config参数功能"
# 检查是否已安装python-pytoml软件包
LOG_INFO "检查python-pytoml是否已安装"
if ! dnf list installed python-pytoml &> /dev/null; then
LOG_INFO "python-pytoml未安装开始安装"
if ! dnf list available python-pytoml &> /dev/null; then
LOG_ERROR "yum源中未找到python-pytoml软件包"
exit 255
fi
dnf install -y python-pytoml
INSTALLED=true
else
LOG_INFO "python-pytoml已安装"
INSTALLED=false
fi
# 检查--config参数是否存在
LOG_INFO "检查--config参数是否支持"
if ! python-pytoml-help --help | grep -q -- "--config"; then
LOG_ERROR "--config参数不支持"
if [ "$INSTALLED" = false ]; then
dnf remove -y python-pytoml
fi
exit 255
fi
# 创建临时配置文件用于测试
LOG_INFO "创建临时配置文件"
CONFIG_FILE=$(mktemp)
echo "[test]" > "$CONFIG_FILE"
echo "key = value" >> "$CONFIG_FILE"
# 测试--config参数功能
LOG_INFO "测试--config参数加载配置文件"
python-pytoml-help --config "$CONFIG_FILE" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "加载配置文件失败"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f "$CONFIG_FILE"
# 恢复环境:如果脚本安装的软件包,则卸载;否则保持原状
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载python-pytoml软件包"
dnf remove -y python-pytoml
else
LOG_INFO "保持python-pytoml安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试python-pytoml-help命令的--verbose参数确保命令可以正常显示详细输出信息。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 步骤1检查yum源中是否存在python-pytoml软件包
LOG_INFO "检查yum源中是否存在python-pytoml软件包"
dnf list available python-pytoml &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python-pytoml软件包"
exit 255
fi
# 步骤2检查当前环境是否已安装python-pytoml
LOG_INFO "检查当前环境是否已安装python-pytoml"
rpm -q python-pytoml &> /dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "当前环境已安装python-pytoml"
else
installed=false
LOG_INFO "当前环境未安装python-pytoml将进行安装"
fi
# 步骤3如果未安装则安装python-pytoml
if [ "$installed" = false ]; then
LOG_INFO "正在安装python-pytoml软件包"
dnf install -y python-pytoml &> /dev/null
CHECK_RESULT $? 0 0 "安装python-pytoml失败"
fi
# 步骤4测试--verbose参数是否支持并显示详细输出信息
LOG_INFO "测试python-pytoml-help命令的--verbose参数"
output=$(python-pytoml-help --verbose 2>&1)
if [ $? -ne 0 ]; then
LOG_ERROR "--verbose参数不支持或命令执行失败"
exit 255
fi
# 检查输出是否包含详细信息(假设详细输出包含"verbose"关键字)
if [[ "$output" != *"verbose"* ]]; then
LOG_ERROR "--verbose参数未显示详细输出信息"
CHECK_RESULT $? 1 0 "--verbose参数功能异常"
else
LOG_INFO "--verbose参数功能正常显示详细输出信息"
fi
# 步骤5恢复环境如果脚本开始时未安装则卸载
if [ "$installed" = false ]; then
LOG_INFO "卸载python-pytoml软件包以恢复环境"
dnf remove -y python-pytoml &> /dev/null
CHECK_RESULT $? 0 0 "卸载python-pytoml失败"
fi
LOG_INFO "测试脚本执行完成,环境已恢复"
}
main "$@"

View File

@@ -1,111 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-02
# @License : Mulan PSL v2
# @Desc : Test basic functionality of the package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在指定的软件包
check_package_in_repo() {
local package_name=$1
dnf list available "$package_name" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $package_name 不在yum源中"
exit 255
fi
}
# 检查命令参数是否有效
check_command_param() {
local command=$1
local param=$2
$command --help | grep -q "$param"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $command 不支持参数 $param"
exit 255
fi
}
# 检查软件包是否已安装
is_package_installed() {
local package_name=$1
rpm -q "$package_name" &>/dev/null
return $?
}
# 安装软件包
install_package() {
local package_name=$1
LOG_INFO "正在安装软件包 $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "安装软件包失败"
}
# 卸载软件包
uninstall_package() {
local package_name=$1
LOG_INFO "正在卸载软件包 $package_name"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载软件包失败"
}
# 测试基本功能
test_basic_functionality() {
LOG_INFO "开始测试软件包的基本功能"
# 执行命令测试基本功能(示例命令)
python3 -c "import vl_convert_python; print(vl_convert_python.__version__)"
CHECK_RESULT $? 0 0 "测试基本功能失败"
}
# Main函数执行测试步骤并清理环境
main() {
# Step1:检查yum源中是否存在vl-convert-python软件包
LOG_INFO "Step1:检查yum源中是否存在vl-convert-python软件包"
check_package_in_repo "vl-convert-python"
# Step2:检查vl-convert-python是否已安装
LOG_INFO "Step2:检查vl-convert-python是否已安装"
if is_package_installed "vl-convert-python"; then
LOG_INFO "vl-convert-python已安装无需重新安装"
else
# Step3:安装vl-convert-python
LOG_INFO "Step3:安装vl-convert-python"
install_package "vl-convert-python"
fi
# Step4:测试基本功能
LOG_INFO "Step4:测试基本功能"
test_basic_functionality
# Step5:如果之前未安装则卸载vl-convert-python
if ! is_package_installed "vl-convert-python"; then
LOG_INFO "Step5:卸载之前未安装的vl-convert-python"
uninstall_package "vl-convert-python"
fi
LOG_INFO "[info]测试完成,环境已恢复"
}
main "$@"
}
main "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : Test basic import of the vl_convert module
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断环境是否已经安装python3-vl-convert-python包
LOG_INFO "检查python3-vl-convert-python包是否已安装"
rpm -q python3-vl-convert-python > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-vl-convert-python包已安装测试后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "python3-vl-convert-python包未安装将在测试后卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有python3-vl-convert-python包"
dnf list available python3-vl-convert-python > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有python3-vl-convert-python包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "安装python3-vl-convert-python包"
dnf install -y python3-vl-convert-python > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装python3-vl-convert-python包失败"
fi
# 测试基本导入vl_convert模块
LOG_INFO "测试基本导入vl_convert模块"
python3 -c "import vl_convert; print("vl_convert模块导入成功")" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "导入vl_convert模块失败"
# 测试vl_convert模块的基本功能
LOG_INFO "测试vl_convert模块的基本功能"
python3 -c "
import vl_convert
import json
spec = {"data": {"values": [{"x": 1, "y": 2}, {"x": 2, "y": 3}]}, "mark": "point", "encoding": {"x": {"field": "x", "type": "quantitative"}, "y": {"field": "y", "type": "quantitative"}}}
try:
result = vl_convert.vega_lite_to_svg(spec)
print("vl_convert基本功能测试成功")
except Exception as e:
print(f"vl_convert基本功能测试失败: {e}")
exit(1)
" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "vl_convert模块基本功能测试失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "卸载python3-vl-convert-python包"
dnf remove -y python3-vl-convert-python > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载python3-vl-convert-python包失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : Test if the package can be successfully installed via package manager
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python3-vl-convert-python包
LOG_INFO "检查是否已安装python3-vl-convert-python包"
if rpm -q python3-vl-convert-python &> /dev/null; then
LOG_INFO "python3-vl-convert-python已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "python3-vl-convert-python未安装将在测试中安装并在结束前卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有python3-vl-convert-python包
LOG_INFO "检查yum源中是否有python3-vl-convert-python包"
if ! dnf list available python3-vl-convert-python &> /dev/null; then
LOG_ERROR "yum源中未找到python3-vl-convert-python包"
exit 255
fi
# 安装python3-vl-convert-python包如果未安装
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "开始安装python3-vl-convert-python包"
dnf install -y python3-vl-convert-python
CHECK_RESULT $? 0 0 "安装python3-vl-convert-python包失败"
LOG_INFO "python3-vl-convert-python包安装成功"
fi
# 验证python3-vl-convert-python包是否安装成功
LOG_INFO "验证python3-vl-convert-python包是否安装成功"
rpm -q python3-vl-convert-python
CHECK_RESULT $? 0 0 "python3-vl-convert-python包未正确安装"
# 检查python3-vl-convert-python包的基本功能
LOG_INFO "检查python3-vl-convert-python包的基本功能"
if command -v python3 &> /dev/null; then
LOG_INFO "尝试导入vl-convert-python模块"
python3 -c "import vl_convert_python; print("vl-convert-python模块导入成功")"
CHECK_RESULT $? 0 0 "vl-convert-python模块导入失败"
else
LOG_ERROR "python3命令未找到无法验证vl-convert-python模块"
exit 1
fi
# 清理环境如果之前未安装则卸载python3-vl-convert-python包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "开始卸载python3-vl-convert-python包"
dnf remove -y python3-vl-convert-python
CHECK_RESULT $? 0 0 "卸载python3-vl-convert-python包失败"
LOG_INFO "python3-vl-convert-python包卸载成功"
# 验证卸载是否成功
LOG_INFO "验证python3-vl-convert-python包是否已卸载"
if rpm -q python3-vl-convert-python &> /dev/null; then
LOG_ERROR "python3-vl-convert-python包卸载失败"
exit 1
else
LOG_INFO "python3-vl-convert-python包已成功卸载"
fi
else
LOG_INFO "python3-vl-convert-python包在脚本执行前已安装保持安装状态"
fi
LOG_INFO "测试完成通过包管理器成功安装python3-vl-convert-python包"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试软件包核心功能如ActiveResource类是否可用
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试rubygem-activeresource-doc软件包核心功能"
LOG_INFO "1. 检查当前环境是否已安装rubygem-activeresource-doc软件包"
rpm -q rubygem-activeresource-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "当前环境已安装rubygem-activeresource-doc软件包测试结束后将保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "当前环境未安装rubygem-activeresource-doc软件包"
INSTALLED_FLAG=0
fi
LOG_INFO "2. 检查yum源中是否存在rubygem-activeresource-doc软件包"
dnf list available rubygem-activeresource-doc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到rubygem-activeresource-doc软件包"
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "3. 安装rubygem-activeresource-doc软件包"
dnf install -y rubygem-activeresource-doc
CHECK_RESULT $? 0 0 "安装rubygem-activeresource-doc软件包失败"
fi
LOG_INFO "4. 测试ActiveResource类核心功能是否可用"
LOG_INFO "4.1 检查rubygem-activeresource-doc是否提供了ActiveResource相关的文档"
rpm -ql rubygem-activeresource-doc | grep -i activeresource > /dev/null 2>&1
CHECK_RESULT $? 0 0 "rubygem-activeresource-doc软件包未包含ActiveResource相关文档"
LOG_INFO "4.2 尝试查看ActiveResource相关文档内容"
DOC_FILE=$(rpm -ql rubygem-activeresource-doc | grep -i activeresource | head -1)
if [ -n "${DOC_FILE}" ] && [ -f "${DOC_FILE}" ]; then
LOG_INFO "找到文档文件: ${DOC_FILE}"
file "${DOC_FILE}" | grep -E "text|HTML" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "ActiveResource文档文件格式异常"
else
LOG_ERROR "未找到有效的ActiveResource文档文件"
exit 1
fi
LOG_INFO "5. 清理测试环境"
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "5.1 卸载测试安装的rubygem-activeresource-doc软件包"
dnf remove -y rubygem-activeresource-doc
CHECK_RESULT $? 0 0 "卸载rubygem-activeresource-doc软件包失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "环境保持原有安装状态,无需卸载"
fi
LOG_INFO "rubygem-activeresource-doc软件包核心功能测试完成"
}
main "$@"

View File

@@ -1,99 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : 测试软件包能否被干净地卸载
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试软件包能否被干净地卸载"
# 定义软件包名称
PACKAGE_NAME="rubygem-activeresource-doc"
# 检查软件包是否已在yum源中
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
dnf list available ${PACKAGE_NAME} &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 检查软件包是否已经安装
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否已经安装"
if rpm -q ${PACKAGE_NAME} &> /dev/null; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已经安装,测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将进行安装和卸载测试"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 检查软件包是否安装成功
LOG_INFO "验证软件包 ${PACKAGE_NAME} 是否安装成功"
rpm -q ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 未正确安装"
# 卸载软件包
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
# 如果测试前未安装,则重新安装以恢复环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "恢复环境:重新安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "恢复环境时安装软件包 ${PACKAGE_NAME} 失败"
fi
# 最终验证环境状态
LOG_INFO "最终验证环境状态"
if [ "$INSTALLED" = true ]; then
rpm -q ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "环境未恢复到初始安装状态"
LOG_INFO "环境已恢复到初始安装状态"
else
rpm -q ${PACKAGE_NAME} &> /dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "环境未恢复到初始未安装状态"
exit 1
else
LOG_INFO "环境已恢复到初始未安装状态"
fi
fi
LOG_INFO "测试完成:软件包 ${PACKAGE_NAME} 能够被干净地卸载"
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-07
# @License : Mulan PSL v2
# @Desc : Test applying active configuration
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本Test applying active configuration
LOG_INFO "1. 检查是否已安装texlive-active-conf软件包"
rpm -q texlive-active-conf
if [ $? -eq 0 ]; then
LOG_INFO "texlive-active-conf已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-active-conf未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "2. 检查yum源中是否有texlive-active-conf软件包"
dnf list available texlive-active-conf 2>/dev/null | grep -q texlive-active-conf
CHECK_RESULT $? 0 0 "yum源中未找到texlive-active-conf软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-active-conf软件包"
exit 255
fi
LOG_INFO "3. 如果未安装则安装texlive-active-conf软件包"
if [ "$INSTALLED" = false ]; then
dnf install -y texlive-active-conf
CHECK_RESULT $? 0 0 "安装texlive-active-conf失败"
LOG_INFO "安装texlive-active-conf成功"
fi
LOG_INFO "4. 测试active configuration应用功能"
texlive-active-conf --apply
CHECK_RESULT $? 0 0 "应用active configuration失败"
LOG_INFO "5. 测试无效参数处理"
texlive-active-conf --invalid-param 2>/dev/null
if [ $? -ne 255 ] && [ $? -ne 0 ]; then
LOG_ERROR "无效参数处理不符合预期"
exit 255
fi
LOG_INFO "无效参数处理正常"
LOG_INFO "6. 清理测试环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载测试安装的texlive-active-conf软件包"
dnf remove -y texlive-active-conf
CHECK_RESULT $? 0 0 "卸载texlive-active-conf失败"
LOG_INFO "卸载texlive-active-conf成功"
else
LOG_INFO "保持原有texlive-active-conf安装状态"
fi
LOG_INFO "7. 验证环境已恢复"
if [ "$INSTALLED" = false ]; then
rpm -q texlive-active-conf
CHECK_RESULT $? 1 0 "环境恢复失败,软件包未正确卸载"
LOG_INFO "环境恢复成功,软件包已卸载"
else
rpm -q texlive-active-conf
CHECK_RESULT $? 0 0 "环境状态异常,原有软件包丢失"
LOG_INFO "环境保持原有安装状态"
fi
LOG_INFO "测试完成Test applying active configuration"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-07
# @License : Mulan PSL v2
# @Desc : Test if texlive-active-conf is installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查 texlive-active-conf 是否安装"
LOG_INFO "步骤1检查当前环境中是否已安装 texlive-active-conf"
rpm -q texlive-active-conf > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-active-conf 已安装,记录安装状态"
INSTALLED="true"
else
LOG_INFO "texlive-active-conf 未安装"
INSTALLED="false"
fi
LOG_INFO "步骤2检查 yum 源中是否存在 texlive-active-conf 软件包"
dnf list available texlive-active-conf > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-active-conf 软件包"
exit 255
fi
LOG_INFO "步骤3如果未安装则安装 texlive-active-conf"
if [ "$INSTALLED" = "false" ]; then
dnf install -y texlive-active-conf
CHECK_RESULT $? 0 0 "安装 texlive-active-conf 失败"
LOG_INFO "texlive-active-conf 安装成功"
fi
LOG_INFO "步骤4验证 texlive-active-conf 是否正常工作"
# 这里假设 texlive-active-conf 安装后会提供一个可执行命令或配置文件
# 例如,检查是否有特定的配置文件或命令
if [ -f /etc/texlive/texlive.conf ]; then
LOG_INFO "找到 texlive-active-conf 配置文件"
else
LOG_ERROR "未找到 texlive-active-conf 配置文件"
exit 1
fi
LOG_INFO "步骤5清理环境恢复到之前的状态"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载之前安装的 texlive-active-conf"
dnf remove -y texlive-active-conf
CHECK_RESULT $? 0 0 "卸载 texlive-active-conf 失败"
LOG_INFO "texlive-active-conf 卸载成功"
else
LOG_INFO "环境已安装 texlive-active-conf保持安装状态"
fi
LOG_INFO "测试完成texlive-active-conf 安装检查通过"
}
main "$@"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : Test drawing a basic Feynman diagram
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-pst-feyn软件包
LOG_INFO "检查texlive-pst-feyn软件包是否已安装"
rpm -q texlive-pst-feyn > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-pst-feyn软件包已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-pst-feyn软件包未安装将在测试步骤中安装"
INSTALLED=false
fi
# 检查yum源中是否有texlive-pst-feyn软件包
LOG_INFO "检查yum源中是否有texlive-pst-feyn软件包"
dnf list available texlive-pst-feyn > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-pst-feyn软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-pst-feyn软件包"
dnf install -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "安装texlive-pst-feyn软件包失败"
fi
# 创建测试用的LaTeX文档
LOG_INFO "创建测试用的LaTeX文档"
cat > test_feynman.tex << "EOF"
\documentclass{article}
\usepackage{pst-feyn}
\begin{document}
\begin{pspicture}(-1,-1)(1,1)
\psfeyn{f}
\end{pspicture}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建LaTeX文档失败"
# 使用latex命令编译文档
LOG_INFO "使用latex命令编译LaTeX文档"
latex test_feynman.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
# 检查生成的DVI文件
LOG_INFO "检查生成的DVI文件"
if [ -f "test_feynman.dvi" ]; then
LOG_INFO "成功生成DVI文件"
else
LOG_ERROR "未生成DVI文件"
exit 1
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f test_feynman.tex test_feynman.aux test_feynman.log test_feynman.dvi
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-pst-feyn软件包"
dnf remove -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "卸载texlive-pst-feyn软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : Test compiling a LaTeX file with pst-feyn
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装texlive-pst-feyn
LOG_INFO "检查texlive-pst-feyn是否已安装"
rpm -q texlive-pst-feyn
if [ $? -eq 0 ]; then
LOG_INFO "texlive-pst-feyn已安装测试完成后将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-pst-feyn未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否有texlive-pst-feyn软件包
LOG_INFO "检查yum源中是否有texlive-pst-feyn软件包"
dnf list available texlive-pst-feyn
CHECK_RESULT $? 0 0 "yum源中未找到texlive-pst-feyn软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-pst-feyn软件包"
exit 255
fi
# 如果未安装则安装texlive-pst-feyn
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装texlive-pst-feyn软件包"
dnf install -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "安装texlive-pst-feyn失败"
fi
# 创建测试用的LaTeX文件
LOG_INFO "创建测试用的LaTeX文件"
cat > test_feyn.tex << "EOF"
\documentclass{article}
\usepackage{pst-feyn}
\begin{document}
\feyn{f}{g}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建LaTeX文件失败"
# 编译LaTeX文件
LOG_INFO "编译LaTeX文件"
pdflatex -interaction=nonstopmode test_feyn.tex
CHECK_RESULT $? 0 0 "编译LaTeX文件失败"
# 检查生成的PDF文件
LOG_INFO "检查生成的PDF文件"
if [ -f test_feyn.pdf ]; then
LOG_INFO "PDF文件生成成功"
else
LOG_ERROR "PDF文件生成失败"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_feyn.tex test_feyn.log test_feyn.aux test_feyn.pdf
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装则卸载texlive-pst-feyn
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-pst-feyn软件包"
dnf remove -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "卸载texlive-pst-feyn失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,96 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : Test drawing a composite diagram
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已经安装软件包
LOG_INFO "检查是否已安装 texlive-pst-feyn 软件包"
rpm -q texlive-pst-feyn > /dev/null 2>&1
installed=$?
# 记录初始安装状态
if [ $installed -eq 0 ]; then
LOG_INFO "软件包 texlive-pst-feyn 已安装"
else
LOG_INFO "软件包 texlive-pst-feyn 未安装"
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有 texlive-pst-feyn 软件包"
dnf list available texlive-pst-feyn > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到 texlive-pst-feyn 软件包"
exit 255
fi
LOG_INFO "yum源中存在 texlive-pst-feyn 软件包"
# 如果未安装,则安装软件包
if [ $installed -ne 0 ]; then
LOG_INFO "安装 texlive-pst-feyn 软件包"
dnf install -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "安装 texlive-pst-feyn 软件包失败"
LOG_INFO "安装 texlive-pst-feyn 软件包成功"
fi
# 测试绘制复合图
LOG_INFO "测试绘制复合图"
cat > test_composite.tex << "EOF"
\documentclass{article}
\usepackage{pst-feyn}
\begin{document}
\begin{pspicture}(-2,-2)(2,2)
\psfeyn{! {v1 1} {v2 1} / v1 [particle=a] v2 [particle=b],
! {v3 1} {v4 1} / v3 [particle=c] v4 [particle=d],
v1 -- v3, v2 -- v4}
\end{pspicture}
\end{document}
EOF
# 检查是否支持 pst-feyn 参数
LOG_INFO "检查 latex 是否支持 pst-feyn"
latex --help | grep -q "pst-feyn"
if [ $? -ne 0 ]; then
LOG_ERROR "latex 不支持 pst-feyn 参数"
exit 255
fi
# 编译测试文档
LOG_INFO "编译测试文档 test_composite.tex"
latex -interaction=nonstopmode test_composite.tex
CHECK_RESULT $? 0 0 "编译 test_composite.tex 失败"
# 清理生成的中间文件
LOG_INFO "清理生成的中间文件"
rm -f test_composite.aux test_composite.log test_composite.dvi test_composite.tex
# 环境恢复
if [ $installed -ne 0 ]; then
LOG_INFO "卸载 texlive-pst-feyn 软件包"
dnf remove -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "卸载 texlive-pst-feyn 软件包失败"
LOG_INFO "卸载 texlive-pst-feyn 软件包成功"
else
LOG_INFO "保持 texlive-pst-feyn 软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-27
# @License : Mulan PSL v2
# @Desc : Test drawing Feynman diagrams
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试绘制Feynman图"
# 检查是否已安装texlive-pst-feyn软件包
LOG_INFO "检查是否已安装texlive-pst-feyn"
if rpm -q texlive-pst-feyn >/dev/null 2>&1; then
LOG_INFO "texlive-pst-feyn已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-pst-feyn未安装测试结束后将卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-pst-feyn软件包
LOG_INFO "检查yum源中是否有texlive-pst-feyn"
if ! dnf list available texlive-pst-feyn >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到texlive-pst-feyn软件包"
exit 255
fi
# 安装texlive-pst-feyn软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-pst-feyn"
dnf install -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "安装texlive-pst-feyn失败"
fi
# 测试绘制Feynman图功能
LOG_INFO "测试绘制Feynman图功能"
TEMP_FILE=$(mktemp)
cat <<EOF >"$TEMP_FILE.tex"
\documentclass{article}
\usepackage{pst-feyn}
\begin{document}
\feyn{! {v1} -- [fermion] {v2}}
\end{document}
EOF
pdflatex -interaction=nonstopmode "$TEMP_FILE.tex" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "绘制Feynman图失败"
# 清理临时文件
rm -f "$TEMP_FILE.tex" "$TEMP_FILE.pdf" "$TEMP_FILE.log" "$TEMP_FILE.aux"
# 卸载texlive-pst-feyn软件包如果测试前未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-pst-feyn"
dnf remove -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "卸载texlive-pst-feyn失败"
fi
LOG_INFO "测试完成绘制Feynman图"
}
main "$@"

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : Test drawing fermion lines
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test drawing fermion lines"
LOG_INFO "步骤1检查texlive-pst-feyn软件包是否在yum源中"
dnf list available texlive-pst-feyn 2>/dev/null | grep -q texlive-pst-feyn
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-pst-feyn软件包"
exit 255
fi
LOG_INFO "步骤2检查当前环境是否已安装texlive-pst-feyn"
rpm -q texlive-pst-feyn >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-pst-feyn已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-pst-feyn未安装将在测试过程中安装"
INSTALLED=false
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装texlive-pst-feyn软件包"
dnf install -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "安装texlive-pst-feyn失败"
fi
LOG_INFO "步骤4验证pst-feyn命令参数支持"
pst-feyn --help >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "pst-feyn命令不支持--help参数"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载texlive-pst-feyn"
dnf remove -y texlive-pst-feyn
fi
exit 255
fi
LOG_INFO "步骤5测试绘制费米子线功能"
cat > test_fermion.tex << "EOF"
\documentclass{article}
\usepackage{pst-feyn}
\begin{document}
\begin{pspicture}(-1,-1)(1,1)
\psfeyn{f}
\end{pspicture}
\end{document}
EOF
pdflatex -interaction=nonstopmode test_fermion.tex >/dev/null 2>&1
CHECK_RESULT $? 0 0 "生成费米子线PDF失败"
LOG_INFO "步骤6检查生成的PDF文件"
if [ -f test_fermion.pdf ]; then
LOG_INFO "成功生成包含费米子线的PDF文件"
file test_fermion.pdf | grep -q "PDF document"
CHECK_RESULT $? 0 0 "生成的文件不是有效的PDF"
else
LOG_ERROR "未找到生成的PDF文件"
CHECK_RESULT 1 0 0 "PDF文件未生成"
fi
LOG_INFO "步骤7清理临时文件"
rm -f test_fermion.tex test_fermion.aux test_fermion.log test_fermion.pdf
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤8卸载texlive-pst-feyn软件包"
dnf remove -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "卸载texlive-pst-feyn失败"
fi
LOG_INFO "测试完成Test drawing fermion lines"
}
main "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : Test drawing photon lines
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试: Test drawing photon lines"
LOG_INFO "步骤1: 检查系统是否已安装texlive-pst-feyn"
if dnf list installed texlive-pst-feyn &>/dev/null; then
LOG_INFO "texlive-pst-feyn已安装测试后保持安装状态"
already_installed=1
else
LOG_INFO "texlive-pst-feyn未安装将在测试中安装"
already_installed=0
fi
LOG_INFO "步骤2: 检查yum源中是否有texlive-pst-feyn软件包"
if ! dnf list available texlive-pst-feyn &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-pst-feyn软件包"
exit 255
fi
LOG_INFO "步骤3: 安装texlive-pst-feyn如果未安装"
if [ $already_installed -eq 0 ]; then
dnf install -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "安装texlive-pst-feyn失败"
fi
LOG_INFO "步骤4: 验证pst-feyn包的基本功能"
cat > test_photon.tex << "EOF"
\documentclass{article}
\usepackage{pst-feyn}
\begin{document}
\begin{pspicture}(-1,-1)(1,1)
\feyn[style=line]
\feyn[style=photon](0,0)(1,0)
\end{pspicture}
\end{document}
EOF
LOG_INFO "步骤5: 使用latex编译测试文档"
latex test_photon.tex
CHECK_RESULT $? 0 0 "latex编译失败"
LOG_INFO "步骤6: 使用dvips生成PS文件"
dvips test_photon.dvi
CHECK_RESULT $? 0 0 "dvips转换失败"
LOG_INFO "步骤7: 检查生成的PS文件是否包含光子线"
if grep -q "photon" test_photon.ps; then
LOG_INFO "成功生成包含光子线的PS文件"
else
LOG_ERROR "生成的PS文件中未找到光子线相关代码"
exit 1
fi
LOG_INFO "步骤8: 清理临时文件"
rm -f test_photon.tex test_photon.aux test_photon.log test_photon.dvi test_photon.ps
LOG_INFO "步骤9: 恢复环境状态"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载测试安装的texlive-pst-feyn"
dnf remove -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "卸载texlive-pst-feyn失败"
else
LOG_INFO "保持texlive-pst-feyn安装状态"
fi
LOG_INFO "测试完成: Test drawing photon lines"
}
main "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-03
# @License : Mulan PSL v2
# @Desc : Test adding labels to vertices
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 环境检查检查是否已安装texlive-pst-feyn
LOG_INFO "检查是否已安装texlive-pst-feyn软件包"
if dnf list installed texlive-pst-feyn > /dev/null 2>&1; then
LOG_INFO "texlive-pst-feyn已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "texlive-pst-feyn未安装将在测试步骤中安装并在脚本结束前卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否存在texlive-pst-feyn软件包
LOG_INFO "检查yum源中是否存在texlive-pst-feyn软件包"
if ! dnf list available texlive-pst-feyn > /dev/null 2>&1; then
LOG_ERROR "yum源中不存在texlive-pst-feyn软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装texlive-pst-feyn软件包"
dnf install -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "安装texlive-pst-feyn失败"
fi
# 测试:添加标签到顶点
LOG_INFO "测试添加标签到顶点"
# 创建一个简单的LaTeX测试文件
cat > test_feynman.tex << "EOF"
\documentclass{article}
\usepackage{pst-feyn}
\begin{document}
\begin{pspicture}(-2,-2)(2,2)
\psset{arrowsize=7pt}
\feyn[inline]{(0,0) -- (1,0) node[midway,above]{$e^-$}}
\feyn[inline]{(0,0) -- (-1,0) node[midway,above]{$e^+$}}
\feyn[inline]{(0,0) -- (0,1) node[midway,right]{$\gamma$}}
\end{pspicture}
\end{document}
EOF
# 尝试编译LaTeX文件以验证功能
LOG_INFO "编译测试LaTeX文件"
pdflatex -interaction=nonstopmode test_feynman.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "编译LaTeX文件失败可能顶点标签功能异常"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_feynman.tex test_feynman.aux test_feynman.log test_feynman.pdf
# 环境恢复:如果之前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载texlive-pst-feyn软件包"
dnf remove -y texlive-pst-feyn
CHECK_RESULT $? 0 0 "卸载texlive-pst-feyn失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,133 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : 在支持字体选择的应用程序如LibreOffice Writer或GIMP验证可以从字体选择器列表中成功找到并应用urw-base35-gothic-fonts包中的字体如URW Gothic进行文本渲染。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(根据要求直接使用,但实际环境中可能需要定义,这里假设已定义)
# 这里仅为脚本完整性,实际按题目要求直接使用
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
CHECK_RESULT() {
# 假设CHECK_RESULT函数已定义这里仅为占位
if [ $1 -eq $2 ]; then
LOG_INFO "检查通过: $5"
else
LOG_ERROR "检查失败: $5"
exit $3
fi
}
SSH_CMD() {
# 假设SSH_CMD函数已定义这里仅为占位
LOG_INFO "在远程节点执行命令: $1"
}
# 定义常量
FONT_PACKAGE="urw-base35-gothic-fonts"
TEST_APP="libreoffice" # 使用LibreOffice作为测试应用
TEST_FILE="/tmp/test_font.odt"
EXPECTED_FONT="URW Gothic"
# 步骤1: 检查环境是否已安装字体包
LOG_INFO "步骤1: 检查环境是否已安装字体包"
if dnf list installed | grep -q "^${FONT_PACKAGE}\."; then
LOG_INFO "字体包已安装,标记为保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "字体包未安装,标记为需要清理"
INSTALLED_BEFORE=false
fi
# 步骤2: 检查yum源中是否有该软件包
LOG_INFO "步骤2: 检查yum源中是否有字体包"
if ! dnf list available | grep -q "^${FONT_PACKAGE}\."; then
LOG_ERROR "yum源中未找到字体包: ${FONT_PACKAGE}"
exit 255
fi
# 步骤3: 如果未安装,则安装字体包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3: 安装字体包"
dnf install -y ${FONT_PACKAGE}
CHECK_RESULT $? 0 255 "安装字体包失败"
else
LOG_INFO "步骤3: 字体包已安装,跳过安装步骤"
fi
# 步骤4: 验证字体文件是否存在
LOG_INFO "步骤4: 验证字体文件是否存在"
FONT_FILE=$(find /usr/share/fonts -name "*urw-gothic*" -type f | head -1)
if [ -z "$FONT_FILE" ]; then
LOG_ERROR "未找到URW Gothic字体文件"
exit 1
fi
LOG_INFO "找到字体文件: ${FONT_FILE}"
# 步骤5: 检查测试应用是否可用
LOG_INFO "步骤5: 检查测试应用是否可用"
if ! command -v ${TEST_APP} &> /dev/null; then
LOG_ERROR "测试应用 ${TEST_APP} 未安装,跳过应用测试"
# 根据要求,非参数或包不存在导致的失败使用标准退出码
exit 1
fi
# 步骤6: 创建测试文档并应用字体
LOG_INFO "步骤6: 创建测试文档并应用字体"
cat > ${TEST_FILE} << EOF
<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0">
<office:body>
<office:text>
<text:p text:style-name="P1">测试字体渲染</text:p>
</office:text>
</office:body>
</office:document-content>
EOF
# 注意实际字体应用需通过LibreOffice API或命令行这里简化检查字体列表
if ${TEST_APP} --headless --convert-to pdf --outdir /tmp ${TEST_FILE} 2>&1 | grep -i "font" | grep -q "${EXPECTED_FONT}"; then
LOG_INFO "字体 ${EXPECTED_FONT} 在应用中可用"
else
LOG_ERROR "字体 ${EXPECTED_FONT} 在应用中不可用或未找到"
# 清理测试文件
rm -f ${TEST_FILE} /tmp/test_font.pdf
exit 1
fi
# 步骤7: 清理测试文件
LOG_INFO "步骤7: 清理测试文件"
rm -f ${TEST_FILE} /tmp/test_font.pdf
# 步骤8: 环境恢复
LOG_INFO "步骤8: 环境恢复"
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载字体包"
dnf remove -y ${FONT_PACKAGE}
CHECK_RESULT $? 0 1 "卸载字体包失败"
else
LOG_INFO "保持字体包安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,93 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-16
# @License : Mulan PSL v2
# @Desc : 验证安装后,软件包提供的字体文件(如*.ttf, *.otf已正确安装到系统字体目录如/usr/share/fonts/并可通过fc-list命令查询到相关字体。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="urw-base35-gothic-fonts"
FONT_DIR="/usr/share/fonts"
FC_LIST_CMD="fc-list"
LOG_INFO "测试开始验证安装后软件包提供的字体文件已正确安装到系统字体目录并可通过fc-list命令查询到相关字体。"
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
LOG_INFO "软件包$PACKAGE_NAME已安装,测试结束后将保持安装状态。"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "软件包$PACKAGE_NAME未安装,将在测试步骤中安装。"
INSTALLED_BEFORE_TEST=false
fi
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤3安装软件包$PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包$PACKAGE_NAME失败"
fi
LOG_INFO "步骤4检查软件包安装的字体文件是否存在于系统字体目录。"
rpm -ql $PACKAGE_NAME | grep -E "\.(ttf|otf)$" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "软件包$PACKAGE_NAME未提供字体文件.ttf或.otf"
LOG_INFO "步骤5验证字体文件是否已安装到系统字体目录$FONT_DIR"
FONT_FILES=$(rpm -ql $PACKAGE_NAME | grep -E "\.(ttf|otf)$")
for font_file in $FONT_FILES; do
if [[ $font_file != $FONT_DIR/* ]]; then
LOG_ERROR "字体文件$font_file未安装到系统字体目录$FONT_DIR"
exit 1
fi
done
LOG_INFO "所有字体文件均已正确安装到系统字体目录。"
LOG_INFO "步骤6检查fc-list命令是否可用。"
which $FC_LIST_CMD > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "命令$FC_LIST_CMD不存在或不支持"
exit 255
fi
LOG_INFO "步骤7使用fc-list命令查询相关字体。"
FONT_NAMES=$(rpm -q --provides $PACKAGE_NAME | grep -E "^font\(.*\)" | sed -E "s/font\((.*)\)/\1/")
for font_name in $FONT_NAMES; do
$FC_LIST_CMD | grep -i "$font_name" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "未通过fc-list查询到字体$font_name"
done
LOG_INFO "所有相关字体均可通过fc-list命令查询到。"
LOG_INFO "步骤8清理测试环境。"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "卸载测试安装的软件包$PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包$PACKAGE_NAME失败"
else
LOG_INFO "测试前软件包已安装,保持安装状态,无需卸载。"
fi
LOG_INFO "测试完成:软件包$PACKAGE_NAME的字体文件安装与查询功能验证成功"
}
main "$@"

View File

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

View File

@@ -1,121 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-09
# @License : Mulan PSL v2
# @Desc : 检查配置文件解析功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查配置文件解析功能测试脚本
# 定义日志函数
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 检查软件包是否存在于yum源中
check_package_in_repo() {
local package_name=$1
dnf list available "$package_name" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $package_name 不在yum源中"
exit 255
fi
}
# 安装软件包
install_package() {
local package_name=$1
LOG_INFO "正在安装软件包 $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 "安装软件包 $package_name 失败"
}
# 卸载软件包
uninstall_package() {
local package_name=$1
LOG_INFO "正在卸载软件包 $package_name"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 "卸载软件包 $package_name 失败"
}
# 检查软件包是否已安装
is_package_installed() {
local package_name=$1
rpm -q "$package_name" &>/dev/null
return $?
}
# main函数
main() {
local package_name="uwsgi-devel"
# 检查环境是否已安装
if is_package_installed "$package_name"; then
LOG_INFO "环境已安装 $package_name,脚本结束后保持安装状态"
else
LOG_INFO "环境未安装 $package_name,将在测试后卸载"
# 检查软件包是否在yum源中
check_package_in_repo "$package_name"
# 安装软件包
install_package "$package_name"
# 设置标记,表示需要卸载
need_uninstall=1
# 执行测试步骤(示例)
LOG_INFO "执行配置文件解析功能测试..."
# 示例检查配置文件解析命令是否存在假设为uwsgi --config
command="uwsgi --config"
# 检查命令是否存在或支持
if ! command -v uwsgi &>/dev/null; then
LOG_ERROR "命令 uwsgi 不存在或不支持"
exit 255
fi
#模拟执行命令并验证结果
LOG_INFO "执行命令: uwsgi --config /etc/uwsgi.ini"
uwsgi --config /etc/uwsgi.ini &>/dev/null
CHECK_RESULT $? 0 "配置文件解析失败"
LOG_INFO "配置文件解析功能测试通过"
fi
}
main
#清理环境(如果之前未安装)
if [ "$need_uninstall" == "1" ]; then
uninstall_package "$package_name"
fi
exit0
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-09
# @License : Mulan PSL v2
# @Desc : 测试日志记录功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试日志记录功能
LOG_INFO "开始测试uwsgi-devel的日志记录功能"
# 检查是否已安装uwsgi-devel
if dnf list installed uwsgi-devel &>/dev/null; then
LOG_INFO "uwsgi-devel已安装测试结束后将保持安装状态"
installed=true
else
LOG_INFO "uwsgi-devel未安装将在测试结束后卸载"
installed=false
fi
# 检查yum源中是否有uwsgi-devel软件包
LOG_INFO "检查yum源中是否存在uwsgi-devel软件包"
if ! dnf list available uwsgi-devel &>/dev/null; then
LOG_ERROR "yum源中未找到uwsgi-devel软件包"
exit 255
fi
# 安装uwsgi-devel如果未安装
if [ "$installed" = false ]; then
LOG_INFO "正在安装uwsgi-devel"
dnf install -y uwsgi-devel
CHECK_RESULT $? 0 0 "安装uwsgi-devel失败"
fi
# 测试日志记录功能
LOG_INFO "测试日志记录功能"
uwsgi --logto /tmp/uwsgi_test.log --http :8080 --module dummy_app &>/dev/null &
pid=$!
sleep 2
# 检查日志文件是否生成
if [ ! -f /tmp/uwsgi_test.log ]; then
LOG_ERROR "日志文件未生成"
kill $pid &>/dev/null
exit 1
fi
# 检查日志内容是否正常
LOG_INFO "检查日志内容"
grep -q "starting uWSGI" /tmp/uwsgi_test.log
CHECK_RESULT $? 0 0 "日志内容不符合预期"
# 清理临时文件和服务进程
LOG_INFO "清理临时文件和服务进程"
kill $pid &>/dev/null
rm -f /tmp/uwsgi_test.log
# 卸载uwsgi-devel如果测试前未安装
if [ "$installed" = false ]; then
LOG_INFO "卸载uwsgi-devel"
dnf remove -y uwsgi-devel
CHECK_RESULT $? 0 0 "卸载uwsgi-devel失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,59 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-09
# @License : Mulan PSL v2
# @Desc : 检查 systemd_logger 服务的状态
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查 systemd_logger 服务的状态"
# 检查软件包是否已安装
LOG_INFO "检查 uwsgi-devel 软件包是否已安装"
if ! dnf list installed uwsgi-devel &>/dev/null; then
LOG_INFO "uwsgi-devel 未安装,开始安装"
# 检查 yum 源中是否有该软件包
if ! dnf list available uwsgi-devel &>/dev/null; then
LOG_ERROR "yum 源中未找到 uwsgi-devel 软件包"
exit 255
fi
# 安装软件包
dnf install -y uwsgi-devel
CHECK_RESULT $? 0 0 "安装 uwsgi-devel 失败"
# 标记需要卸载
UNINSTALL_NEEDED=1
else
LOG_INFO "uwsgi-devel 已安装,无需重新安装"
UNINSTALL_NEEDED=0
fi
# 检查 systemd_logger 服务状态
LOG_INFO "检查 systemd_logger 服务状态"
systemctl status systemd_logger &>/dev/null
CHECK_RESULT $? 0 0 "检查 systemd_logger 服务状态失败"
# 清理环境
if [ $UNINSTALL_NEEDED -eq 1 ]; then
LOG_INFO "卸载 uwsgi-devel 软件包"
dnf remove -y uwsgi-devel
CHECK_RESULT $? 0 0 "卸载 uwsgi-devel 失败"
fi
LOG_INFO "测试完成:检查 systemd_logger 服务的状态"
}
main "$@"