This commit is contained in:
2026-04-20 20:10:22 +08:00
336 changed files with 0 additions and 30246 deletions

View File

@@ -74,10 +74,6 @@
"name": "test_acpica-tools_acpidump_o",
"desc": "使用-o参数将输出重定向到指定文件"
},
{
"name": "test_acpica-tools_acpidump_r",
"desc": "使用-r参数从指定的RSDP地址转储表"
},
{
"name": "test_acpica-tools_acpidump_vd",
"desc": "使用-vd参数显示构建日期和时间"
@@ -90,10 +86,6 @@
"name": "test_acpica-tools_acpidump_c",
"desc": "使用-c参数开启或关闭自定义表转储"
},
{
"name": "test_acpica-tools_acpidump_f",
"desc": "使用-f参数通过二进制文件获取表"
},
{
"name": "test_acpica-tools_acpidump_n",
"desc": "使用-n参数通过名称/签名获取表"

View File

@@ -5,26 +5,6 @@
{
"name": "test_flac-devel_function_install",
"desc": "测试flac-devel软件包能否正确安装"
},
{
"name": "test_flac-devel_function_check",
"desc": "测试检查flac-devel软件包是否已安装"
},
{
"name": "test_flac-devel_function_compile",
"desc": "测试使用flac开发库编译示例程序"
},
{
"name": "test_flac-devel_function_header",
"desc": "测试flac开发头文件的存在与完整性"
},
{
"name": "test_flac-devel_function_library",
"desc": "测试flac开发库文件的存在与链接"
},
{
"name": "test_flac-devel_function_uninstall",
"desc": "测试flac-devel软件包能否正确卸载"
}
]
}

View File

@@ -5,18 +5,6 @@
{
"name": "test_fxload-help_function_install",
"desc": "Test the installation of fxload-help package"
},
{
"name": "test_fxload-help_function_remove",
"desc": "Test the removal of fxload-help package"
},
{
"name": "test_fxload-help_function_version",
"desc": "Test displaying the package version"
},
{
"name": "test_fxload-help_function_help",
"desc": "Test displaying the help information"
}
]
}

View File

@@ -5,10 +5,6 @@
{
"name": "test_g2clib-devel_function_install",
"desc": "Test package installation"
},
{
"name": "test_g2clib-devel_function_build",
"desc": "Test package build functionality"
}
]
}

View File

@@ -154,10 +154,6 @@
"name": "test_gnupg2_gpg_n",
"desc": "执行空运行,不进行实际更改"
},
{
"name": "test_gnupg2_gpg-agent__min_passphrase_nonalpha",
"desc": "测试设置新密码短语中至少需要非字母字符的数量"
},
{
"name": "test_gnupg2_gpg-card__status_fd",
"desc": "测试使用 status-fd 参数,指定文件描述符来写入状态信息"
@@ -230,10 +226,6 @@
"name": "test_gnupg2_gpg-agent__c",
"desc": "测试以csh风格输出命令的gpg-agent"
},
{
"name": "test_gnupg2_gpg-agent__disable-scdaemon",
"desc": "测试启动时不使用SCdaemon的gpg-agent"
},
{
"name": "test_gnupg2_gpg-agent__keep-display",
"desc": "测试忽略更改X显示请求的gpg-agent"

View File

@@ -25,22 +25,6 @@
{
"name": "test_hdparm-help_function_man_access",
"desc": "测试安装hdparm-help后能否通过`man hdparm`命令成功访问到其提供的帮助手册页。"
},
{
"name": "test_hdparm-help_function_version_check",
"desc": "测试通过包管理器查询hdparm-help软件包的版本信息验证其版本号与预期一致。"
},
{
"name": "test_hdparm-help_function_file_integrity",
"desc": "测试hdparm-help软件包安装后其核心手册页文件的完整性如校验MD5或SHA256值。"
},
{
"name": "test_hdparm-help_function_conflict_check",
"desc": "测试在已安装hdparm或相关软件包的系统上安装hdparm-help是否会产生文件冲突或依赖问题。"
},
{
"name": "test_hdparm-help_function_offline_install",
"desc": "测试在无网络环境下通过本地软件包仓库或离线包能否成功安装hdparm-help软件包。"
}
]
}

View File

@@ -6,18 +6,6 @@
"name": "test_kunpengsecl-tas_install",
"desc": "测试软件包 kunpengsecl-tas 的安装功能,验证安装过程是否成功完成。",
"machine num": 1
},
{
"name": "test_kunpengsecl-tas_Huawei",
"desc": "测试 Huawei 命令的基本功能"
},
{
"name": "test_kunpengsecl-tas_tas__upper_t",
"desc": "测试 tas 命令的 -T 参数,用于生成 rest api 的测试 token"
},
{
"name": "test_kunpengsecl-tas_function_config",
"desc": "测试软件包 kunpengsecl-tas 的配置文件加载功能,验证配置是否正确解析和应用。"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/lodash/nodejs-lodash-toplainobject",
"machine num": 1,
"cases": [
{
"name": "test_nodejs-lodash-toplainobject_function_install",
"desc": "测试软件包nodejs-lodash-toplainobject能否通过包管理器如npm正常安装"
},
{
"name": "test_nodejs-lodash-toplainobject_function_require",
"desc": "测试在Node.js环境中能够成功require引入lodash.toplainobject模块"
},
{
"name": "test_nodejs-lodash-toplainobject_function_basic",
"desc": "测试toPlainObject函数将对象转换为普通对象的基本功能"
},
{
"name": "test_nodejs-lodash-toplainobject_function_inherit",
"desc": "测试toPlainObject函数对继承属性的转换处理"
},
{
"name": "test_nodejs-lodash-toplainobject_function_uninstall",
"desc": "测试软件包nodejs-lodash-toplainobject能否通过包管理器如npm正常卸载"
}
]
}

View File

@@ -9,22 +9,6 @@
{
"name": "test_mesa-demos-help_function_basic",
"desc": "Test basic functionality"
},
{
"name": "test_mesa-demos-help_function_install",
"desc": "Test package installation"
},
{
"name": "test_mesa-demos-help_function_check_installed",
"desc": "Check if package is installed"
},
{
"name": "test_mesa-demos-help_function_display_help",
"desc": "Display help information"
},
{
"name": "test_mesa-demos-help_function_list_demos",
"desc": "List available demo programs"
}
]
}

View File

@@ -6,42 +6,10 @@
"name": "test_podman-docker_docker__v",
"desc": "测试 podman-docker 的 docker 命令的 -v 参数,显示版本信息"
},
{
"name": "test_podman-docker_docker__upper_v",
"desc": "测试 podman-docker 的 docker 命令的 -V 参数,显示版本信息"
},
{
"name": "test_podman-docker_docker__h",
"desc": "测试 podman-docker 的 docker 命令的 -h 参数,显示帮助信息"
},
{
"name": "test_podman-docker_docker__c",
"desc": "测试 podman-docker 的 docker 命令的 -c 参数,指定远程连接"
},
{
"name": "test_podman-docker_function_run",
"desc": "测试 podman-docker 的 docker run 命令,运行容器"
},
{
"name": "test_podman-docker_docker_v",
"desc": "测试使用 -v 参数显示版本信息"
},
{
"name": "test_podman-docker_docker_help",
"desc": "测试使用 --help 参数显示帮助信息"
},
{
"name": "test_podman-docker_docker_remote",
"desc": "测试使用 --remote 参数访问远程 Podman 服务"
},
{
"name": "test_podman-docker_docker_c",
"desc": "测试使用 -c 参数指定连接远程 Podman 服务"
},
{
"name": "test_podman-docker_docker_log_level",
"desc": "测试使用 --log-level 参数设置日志级别"
},
{
"name": "test_podman-docker_function_pull",
"desc": "测试 podman-docker 的 docker pull 命令,拉取镜像"
@@ -50,106 +18,22 @@
"name": "test_podman-docker_function_ps",
"desc": "测试 podman-docker 的 docker ps 命令,列出容器"
},
{
"name": "test_podman-docker_function_rm",
"desc": "测试 podman-docker 的 docker rm 命令,删除容器"
},
{
"name": "test_podman-docker_function_images",
"desc": "测试 podman-docker 的 docker images 命令,列出镜像"
},
{
"name": "test_podman-docker_function_rmi",
"desc": "测试 podman-docker 的 docker rmi 命令,删除镜像"
},
{
"name": "test_podman-docker_docker",
"desc": "执行docker命令显示podman命令的概述和可用命令列表"
},
{
"name": "test_podman-docker_docker_upper_v",
"desc": "执行docker -v命令显示podman的版本信息"
},
{
"name": "test_podman-docker_docker_version",
"desc": "执行docker version命令显示Podman版本信息"
},
{
"name": "test_podman-docker_docker_info",
"desc": "执行docker info命令显示podman系统信息"
},
{
"name": "test_podman-docker_docker_ps",
"desc": "执行docker ps命令列出本地容器"
},
{
"name": "test_podman-docker_docker_images",
"desc": "执行docker images命令列出本地存储的镜像"
},
{
"name": "test_podman-docker_docker_pull",
"desc": "执行docker pull命令从注册表拉取镜像"
},
{
"name": "test_podman-docker_docker_run",
"desc": "执行docker run命令在新容器中运行命令"
},
{
"name": "test_podman-docker_docker_stop",
"desc": "执行docker stop命令停止一个或多个容器"
},
{
"name": "test_podman-docker_docker_rm",
"desc": "执行docker rm命令移除一个或多个容器"
},
{
"name": "test_podman-docker_docker_rmi",
"desc": "执行docker rmi命令从本地存储移除一个或多个镜像"
},
{
"name": "test_podman-docker_docker_logs",
"desc": "执行docker logs命令获取一个或多个容器的日志"
},
{
"name": "test_podman-docker_docker_exec",
"desc": "执行docker exec命令在运行中的容器内运行进程"
},
{
"name": "test_podman-docker_docker_inspect",
"desc": "执行docker inspect命令显示指定对象如容器的配置信息"
},
{
"name": "test_podman-docker_docker_build",
"desc": "执行docker build命令使用Containerfile中的指令构建镜像"
},
{
"name": "test_podman-docker_function_install",
"desc": "测试软件包podman-docker的安装功能"
},
{
"name": "test_podman-docker_function_uninstall",
"desc": "测试软件包podman-docker的卸载功能"
},
{
"name": "test_podman-docker_function_check",
"desc": "测试检查podman-docker是否已正确安装"
},
{
"name": "test_podman-docker_function_docker",
"desc": "测试执行docker命令返回概述"
},
{
"name": "test_podman-docker_function_run_hello",
"desc": "测试运行hello-world容器"
},
{
"name": "test_podman-docker_function_ps_list",
"desc": "测试列出所有容器"
},
{
"name": "test_podman-docker_function_pull_image",
"desc": "测试从仓库拉取镜像"
},
{
"name": "test_podman-docker_function_rm_container",
"desc": "测试删除指定容器"

View File

@@ -9,26 +9,6 @@
{
"name": "test_python3-meh_remove",
"desc": "Test removal of python3-meh package"
},
{
"name": "test_python3-meh_function_install",
"desc": "Test installation of python3-meh package"
},
{
"name": "test_python3-meh_function_remove",
"desc": "Test removal of python3-meh package"
},
{
"name": "test_python3-meh_function_version",
"desc": "Test querying installed package version"
},
{
"name": "test_python3-meh_function_import",
"desc": "Test importing meh module in Python"
},
{
"name": "test_python3-meh_function_help",
"desc": "Test accessing module help or documentation"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-pdm-pep517/python3-pdm-pep517",
"machine num": 1,
"cases": [
{
"name": "test_python3-pdm-pep517_function_build",
"desc": "Test the build functionality of python3-pdm-pep517"
}
]
}

View File

@@ -2,29 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-pydot/python-pydot-help",
"machine num": 1,
"cases": [
{
"name": "test_python-pydot-help_install",
"desc": "测试python-pydot-help软件包的安装功能是否正常"
},
{
"name": "test_python-pydot-help_import",
"desc": "测试导入python-pydot-help模块是否成功"
},
{
"name": "test_python-pydot-help_basic_usage",
"desc": "测试python-pydot-help生成简单图形的核心功能"
},
{
"name": "test_python-pydot-help_graph_attr",
"desc": "测试python-pydot-help设置图形属性的功能"
},
{
"name": "test_python-pydot-help_render",
"desc": "测试python-pydot-help渲染输出图像文件的功能"
},
{
"name": "test_python-pydot-help_uninstall",
"desc": "测试python-pydot-help软件包的卸载功能是否正常"
}
]
}

View File

@@ -5,26 +5,6 @@
{
"name": "test_samba-dc-bind-dlz_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_samba-dc-bind-dlz_function_install",
"desc": "Test package installation and verify successful installation"
},
{
"name": "test_samba-dc-bind-dlz_function_config",
"desc": "Test basic configuration and service startup"
},
{
"name": "test_samba-dc-bind-dlz_function_dns_resolve",
"desc": "Test DNS resolution functionality via BIND DLZ"
},
{
"name": "test_samba-dc-bind-dlz_function_ad_integrate",
"desc": "Test integration with Samba Active Directory"
},
{
"name": "test_samba-dc-bind-dlz_function_service_status",
"desc": "Test service status and basic operations"
}
]
}

View File

@@ -10,933 +10,17 @@
"name": "test_texlive-ptex_eptex_-help",
"desc": "测试 eptex 命令的帮助信息显示"
},
{
"name": "test_texlive-ptex_eptex_-version",
"desc": "测试 eptex 命令的版本信息显示"
},
{
"name": "test_texlive-ptex_eptex_-etex",
"desc": "测试 eptex 命令启用 e-TeX 扩展"
},
{
"name": "test_texlive-ptex_eptex_-halt-on-error",
"desc": "测试 eptex 命令在遇到第一个错误时停止处理"
},
{
"name": "test_texlive-ptex_eptex_-no-file-line-error",
"desc": "测试 eptex 命令禁用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_eptex_-file-line-error",
"desc": "测试 eptex 命令启用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_eptex_-ini",
"desc": "测试 eptex 命令以 iniptex 模式运行"
},
{
"name": "test_texlive-ptex_eptex_-interaction_errorstopmode",
"desc": "测试 eptex 命令设置交互模式为 errorstopmode"
},
{
"name": "test_texlive-ptex_eptex_-interaction_batchmode",
"desc": "测试 eptex 命令设置交互模式为 batchmode"
},
{
"name": "test_texlive-ptex_eptex_-ipc",
"desc": "测试 eptex 命令将 DVI 输出发送到套接字"
},
{
"name": "test_texlive-ptex_eptex_-ipc-start",
"desc": "测试 eptex 命令将 DVI 输出发送到套接字并启动服务器"
},
{
"name": "test_texlive-ptex_eptex_-jobname_testjob",
"desc": "测试 eptex 命令设置作业名称为 testjob"
},
{
"name": "test_texlive-ptex_eptex_-kanji_utf8",
"desc": "测试 eptex 命令设置日语编码为 UTF-8"
},
{
"name": "test_texlive-ptex_eptex_-kanji-internal_sjis",
"desc": "测试 eptex 命令设置日语内部编码为 SJIS"
},
{
"name": "test_texlive-ptex_eptex_-kpathsea-debug_1",
"desc": "测试 eptex 命令设置路径搜索调试标志为 1"
},
{
"name": "test_texlive-ptex_eptex_-no-mktex_tex",
"desc": "测试 eptex 命令禁用 mktextex 生成"
},
{
"name": "test_texlive-ptex_eptex_-mktex_tex",
"desc": "测试 eptex 命令启用 mktextex 生成"
},
{
"name": "test_texlive-ptex_eptex_-mltex",
"desc": "测试 eptex 命令启用 MLTeX 扩展"
},
{
"name": "test_texlive-ptex_eptex_-output-comment_custom",
"desc": "测试 eptex 命令设置自定义的 DVI 文件注释"
},
{
"name": "test_texlive-ptex_eptex_-output-directory_tmp",
"desc": "测试 eptex 命令设置输出目录为 /tmp"
},
{
"name": "test_texlive-ptex_eptex_-no-parse-first-line",
"desc": "测试 eptex 命令禁用输入文件第一行的解析"
},
{
"name": "test_texlive-ptex_eptex_-parse-first-line",
"desc": "测试 eptex 命令启用输入文件第一行的解析"
},
{
"name": "test_texlive-ptex_eptex_-progname_myeptex",
"desc": "测试 eptex 命令设置程序(和 fmt名称为 myeptex"
},
{
"name": "test_texlive-ptex_eptex_-recorder",
"desc": "测试 eptex 命令启用文件名记录器"
},
{
"name": "test_texlive-ptex_eptex_-no-shell-escape",
"desc": "测试 eptex 命令禁用 \\write18{SHELL COMMAND}"
},
{
"name": "test_texlive-ptex_eptex_-shell-escape",
"desc": "测试 eptex 命令启用 \\write18{SHELL COMMAND}"
},
{
"name": "test_texlive-ptex_eptex_-shell-restricted",
"desc": "测试 eptex 命令启用受限的 \\write18"
},
{
"name": "test_texlive-ptex_eptex_-src-specials",
"desc": "测试 eptex 命令在 DVI 文件中插入源特殊字符"
},
{
"name": "test_texlive-ptex_eptex_-src-specials_cr_hbox",
"desc": "测试 eptex 命令在 DVI 文件的特定位置cr 和 hbox插入源特殊字符"
},
{
"name": "test_texlive-ptex_eptex_-synctex_1",
"desc": "测试 eptex 命令根据位 1 生成 SyncTeX 数据"
},
{
"name": "test_texlive-ptex_eptex_-fmt_myformat",
"desc": "测试 eptex 命令使用指定的格式文件 myformat.fmt"
},
{
"name": "test_texlive-ptex_makejvf_upper_c",
"desc": "测试长体模式"
},
{
"name": "test_texlive-ptex_makejvf_upper_k_upper_ps_tfm",
"desc": "测试为非汉字部分指定PS字体TFM"
},
{
"name": "test_texlive-ptex_makejvf_b_num_50",
"desc": "测试基线正方向调整"
},
{
"name": "test_texlive-ptex_makejvf_b_num_-30",
"desc": "测试基线负方向调整"
},
{
"name": "test_texlive-ptex_makejvf_m",
"desc": "测试竖排时使用分/秒符号替代引号"
},
{
"name": "test_texlive-ptex_makejvf_a_afmfile",
"desc": "测试指定AFM文件用于假名间距调整"
},
{
"name": "test_texlive-ptex_makejvf_k_num_20",
"desc": "测试指定假名间距调整边距"
},
{
"name": "test_texlive-ptex_makejvf_i",
"desc": "测试从0开始映射字体ID"
},
{
"name": "test_texlive-ptex_makejvf_e",
"desc": "测试增强模式"
},
{
"name": "test_texlive-ptex_makejvf_t_cnffile",
"desc": "测试使用指定的配置文件"
},
{
"name": "test_texlive-ptex_makejvf_upper_o",
"desc": "测试省略具有默认度量的字符的VF条目"
},
{
"name": "test_texlive-ptex_makejvf_u_jis",
"desc": "测试UCS模式下的JIS字符集"
},
{
"name": "test_texlive-ptex_makejvf_u_cns",
"desc": "测试UCS模式下的CNS字符集"
},
{
"name": "test_texlive-ptex_makejvf_u_gb",
"desc": "测试UCS模式下的GB字符集"
},
{
"name": "test_texlive-ptex_makejvf_u_ks",
"desc": "测试UCS模式下的KS字符集"
},
{
"name": "test_texlive-ptex_makejvf_u_jisq",
"desc": "测试UCS模式下仅JIS引号"
},
{
"name": "test_texlive-ptex_makejvf_u_custom",
"desc": "测试UCS模式下使用自定义字符集"
},
{
"name": "test_texlive-ptex_makejvf_upper_j_upper_ps_tfm",
"desc": "测试在UCS模式下将引号映射到另一个JIS编码的PS字体TFM"
},
{
"name": "test_texlive-ptex_makejvf_upper_u_upper_ps_tfm",
"desc": "测试在UCS模式下将引号映射到另一个UCS编码的PS字体TFM"
},
{
"name": "test_texlive-ptex_makejvf_3",
"desc": "测试在UCS模式下启用非BMP字符支持"
},
{
"name": "test_texlive-ptex_makejvf_upper_h",
"desc": "测试在UCS模式下使用半角片假名"
},
{
"name": "test_texlive-ptex_makejvf_upper_k_upper_ps_tfm_u_jis",
"desc": "测试组合使用-K选项和UCS JIS模式"
},
{
"name": "test_texlive-ptex_makejvf_a_afmfile_k_num_20",
"desc": "测试组合使用AFM文件和假名边距选项"
},
{
"name": "test_texlive-ptex_mendex_i",
"desc": "测试使用标准输入作为输入文件"
},
{
"name": "test_texlive-ptex_mendex_l",
"desc": "测试使用字母顺序排序"
},
{
"name": "test_texlive-ptex_mendex_q",
"desc": "测试静默模式"
},
{
"name": "test_texlive-ptex_mendex_r",
"desc": "测试禁用隐式页码生成"
},
{
"name": "test_texlive-ptex_mendex_c",
"desc": "测试压缩空白字符(忽略首尾空白)"
},
{
"name": "test_texlive-ptex_mendex_g",
"desc": "测试生成日语索引头<あかさたなはまやらわ>"
},
{
"name": "test_texlive-ptex_mendex_f",
"desc": "测试强制输出汉字"
},
{
"name": "test_texlive-ptex_mendex_s_sty",
"desc": "测试指定样式文件"
},
{
"name": "test_texlive-ptex_mendex_d_dic",
"desc": "测试指定字典文件"
},
{
"name": "test_texlive-ptex_mendex_o_ind",
"desc": "测试指定输出索引文件"
},
{
"name": "test_texlive-ptex_mendex_t_log",
"desc": "测试指定错误日志文件"
},
{
"name": "test_texlive-ptex_mendex_p_no",
"desc": "测试设置索引的起始页码"
},
{
"name": "test_texlive-ptex_mendex_upper_e",
"desc": "测试EUC编码模式"
},
{
"name": "test_texlive-ptex_mendex_upper_j",
"desc": "测试JIS编码模式"
},
{
"name": "test_texlive-ptex_mendex_upper_s",
"desc": "测试ShiftJIS编码模式"
},
{
"name": "test_texlive-ptex_mendex_upper_u",
"desc": "测试UTF-8编码模式"
},
{
"name": "test_texlive-ptex_mendex_upper_i_enc",
"desc": "测试指定关键词的内部编码"
},
{
"name": "test_texlive-ptex_mendex_input_file",
"desc": "测试指定输入文件"
},
{
"name": "test_texlive-ptex_pbibtex_kanji_euc",
"desc": "使用-kanji参数指定日文编码为euc"
},
{
"name": "test_texlive-ptex_pbibtex_kanji_jis",
"desc": "使用-kanji参数指定日文编码为jis"
},
{
"name": "test_texlive-ptex_pbibtex_kanji_sjis",
"desc": "使用-kanji参数指定日文编码为sjis"
},
{
"name": "test_texlive-ptex_pbibtex_kanji_utf8",
"desc": "使用-kanji参数指定日文编码为utf8"
},
{
"name": "test_texlive-ptex_pbibtex_min_crossrefs_num_1",
"desc": "使用-min-crossrefs参数设置交叉引用包含阈值为1"
},
{
"name": "test_texlive-ptex_pbibtex_terse",
"desc": "使用-terse参数静默执行不打印进度报告"
},
{
"name": "test_texlive-ptex_pbibtex_help",
"desc": "使用-help参数显示帮助信息"
},
{
"name": "test_texlive-ptex_pbibtex_version",
"desc": "使用-version参数显示版本信息"
},
{
"name": "test_texlive-ptex_pbibtex_no_option",
"desc": "不提供任何选项仅指定aux文件"
},
{
"name": "test_texlive-ptex_pdvitomp_help",
"desc": "测试pdvitomp命令的-help参数用于显示帮助信息"
},
{
"name": "test_texlive-ptex_pdvitomp_version",
"desc": "测试pdvitomp命令的-version参数用于输出版本信息"
},
{
"name": "test_texlive-ptex_pdvitomp_progname",
"desc": "测试pdvitomp命令的-progname参数用于设置程序名称"
},
{
"name": "test_texlive-ptex_pdvitomp_kanji_sjis",
"desc": "测试pdvitomp命令的-kanji参数设置日文编码为sjis"
},
{
"name": "test_texlive-ptex_pdvitomp_kanji_jis",
"desc": "测试pdvitomp命令的-kanji参数设置日文编码为jis"
},
{
"name": "test_texlive-ptex_pdvitomp_kanji_euc",
"desc": "测试pdvitomp命令的-kanji参数设置日文编码为euc"
},
{
"name": "test_texlive-ptex_pdvitomp_kanji_utf8",
"desc": "测试pdvitomp命令的-kanji参数设置日文编码为utf8"
},
{
"name": "test_texlive-ptex_pdvitomp_kpathsea_debug",
"desc": "测试pdvitomp命令的-kpathsea-debug参数设置路径搜索调试标志"
},
{
"name": "test_texlive-ptex_pdvitomp_basic_conversion",
"desc": "测试pdvitomp命令的基本功能将指定的DVI文件转换为MPX文件"
},
{
"name": "test_texlive-ptex_pdvitype_dpi",
"desc": "测试 pdvitype 命令的 -dpi 参数,指定分辨率为 150.0 像素每英寸"
},
{
"name": "test_texlive-ptex_pdvitype_kanji",
"desc": "测试 pdvitype 命令的 -kanji 参数,指定日文编码为 utf8"
},
{
"name": "test_texlive-ptex_pdvitype_magnification",
"desc": "测试 pdvitype 命令的 -magnification 参数,指定放大倍数为 1000"
},
{
"name": "test_texlive-ptex_pdvitype_max_pages",
"desc": "测试 pdvitype 命令的 -max-pages 参数,限制处理页数为 5"
},
{
"name": "test_texlive-ptex_pdvitype_output_level",
"desc": "测试 pdvitype 命令的 -output-level 参数,设置输出详细级别为 2"
},
{
"name": "test_texlive-ptex_pdvitype_page_start",
"desc": "测试 pdvitype 命令的 -page-start 参数,设置起始页面为 2"
},
{
"name": "test_texlive-ptex_pdvitype_show_opcodes",
"desc": "测试 pdvitype 命令的 -show-opcodes 参数,显示数字操作码"
},
{
"name": "test_texlive-ptex_pdvitype_help",
"desc": "测试 pdvitype 命令的 -help 参数,显示帮助信息"
},
{
"name": "test_texlive-ptex_pdvitype_version",
"desc": "测试 pdvitype 命令的 -version 参数,显示版本信息"
},
{
"name": "test_texlive-ptex_pdvitype_dpi_kanji",
"desc": "测试 pdvitype 命令的 -dpi 和 -kanji 参数组合,同时指定分辨率和日文编码"
},
{
"name": "test_texlive-ptex_platex_help",
"desc": "测试 platex 命令的帮助选项"
},
{
"name": "test_texlive-ptex_platex_version",
"desc": "测试 platex 命令的版本信息选项"
},
{
"name": "test_texlive-ptex_platex_etex",
"desc": "测试 platex 命令启用 e-TeX 扩展的选项"
},
{
"name": "test_texlive-ptex_platex_halt_on_error",
"desc": "测试 platex 命令在遇到第一个错误时停止处理的选项"
},
{
"name": "test_texlive-ptex_platex_no_file_line_error",
"desc": "测试 platex 命令禁用文件:行:错误样式消息的选项"
},
{
"name": "test_texlive-ptex_platex_interaction_batchmode",
"desc": "测试 platex 命令设置批处理交互模式的选项"
},
{
"name": "test_texlive-ptex_platex_jobname",
"desc": "测试 platex 命令设置作业名称的选项"
},
{
"name": "test_texlive-ptex_platex_kanji_utf8",
"desc": "测试 platex 命令设置日文编码为 UTF-8 的选项"
},
{
"name": "test_texlive-ptex_platex_no_mktex_tex",
"desc": "测试 platex 命令禁用 mktextex 生成的选项"
},
{
"name": "test_texlive-ptex_platex_output_directory",
"desc": "测试 platex 命令设置输出目录的选项"
},
{
"name": "test_texlive-ptex_platex_no_parse_first_line",
"desc": "测试 platex 命令禁用解析输入文件第一行的选项"
},
{
"name": "test_texlive-ptex_platex_no_shell_escape",
"desc": "测试 platex 命令禁用 \\write18{SHELL COMMAND} 的选项"
},
{
"name": "test_texlive-ptex_platex_src_specials",
"desc": "测试 platex 命令在 DVI 文件中插入源特殊字符的选项"
},
{
"name": "test_texlive-ptex_platex_input_file",
"desc": "测试 platex 命令处理输入文件的基本功能"
},
{
"name": "test_texlive-ptex_platex-dev_etex",
"desc": "测试启用e-TeX扩展功能"
},
{
"name": "test_texlive-ptex_platex-dev_fmt",
"desc": "测试指定格式文件名称"
},
{
"name": "test_texlive-ptex_platex-dev_halt-on-error",
"desc": "测试遇到第一个错误时停止处理"
},
{
"name": "test_texlive-ptex_platex-dev_no-file-line-error",
"desc": "测试禁用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_platex-dev_file-line-error",
"desc": "测试启用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_platex-dev_ini",
"desc": "测试以iniptex模式运行"
},
{
"name": "test_texlive-ptex_platex-dev_interaction",
"desc": "测试设置交互模式为批处理模式"
},
{
"name": "test_texlive-ptex_platex-dev_ipc",
"desc": "测试将DVI输出同时发送到套接字"
},
{
"name": "test_texlive-ptex_platex-dev_ipc-start",
"desc": "测试启动IPC服务器并发送输出"
},
{
"name": "test_texlive-ptex_platex-dev_jobname",
"desc": "测试设置作业名称"
},
{
"name": "test_texlive-ptex_platex-dev_kanji",
"desc": "测试设置日语编码为UTF-8"
},
{
"name": "test_texlive-ptex_platex-dev_kanji-internal",
"desc": "测试设置日语内部编码为EUC"
},
{
"name": "test_texlive-ptex_platex-dev_kpathsea-debug",
"desc": "测试设置路径搜索调试标志"
},
{
"name": "test_texlive-ptex_platex-dev_no-mktex",
"desc": "测试禁用mktexFMT生成"
},
{
"name": "test_texlive-ptex_platex-dev_mktex",
"desc": "测试启用mktexFMT生成"
},
{
"name": "test_texlive-ptex_platex-dev_mltex",
"desc": "测试启用MLTeX扩展功能"
},
{
"name": "test_texlive-ptex_platex-dev_output-comment",
"desc": "测试设置DVI文件注释"
},
{
"name": "test_texlive-ptex_platex-dev_output-directory",
"desc": "测试指定输出目录"
},
{
"name": "test_texlive-ptex_platex-dev_no-parse-first-line",
"desc": "测试禁用输入文件首行解析"
},
{
"name": "test_texlive-ptex_platex-dev_parse-first-line",
"desc": "测试启用输入文件首行解析"
},
{
"name": "test_texlive-ptex_platex-dev_progname",
"desc": "测试设置程序(及格式)名称"
},
{
"name": "test_texlive-ptex_platex-dev_recorder",
"desc": "测试启用文件名记录器"
},
{
"name": "test_texlive-ptex_platex-dev_no-shell-escape",
"desc": "测试禁用\\write18{SHELL COMMAND}功能"
},
{
"name": "test_texlive-ptex_platex-dev_shell-escape",
"desc": "测试启用\\write18{SHELL COMMAND}功能"
},
{
"name": "test_texlive-ptex_platex-dev_shell-restricted",
"desc": "测试启用受限的\\write18功能"
},
{
"name": "test_texlive-ptex_platex-dev_src-specials",
"desc": "测试在DVI文件中插入源特殊标记"
},
{
"name": "test_texlive-ptex_platex-dev_src-specials_cr",
"desc": "测试在DVI文件的特定位置cr插入源特殊标记"
},
{
"name": "test_texlive-ptex_platex-dev_synctex",
"desc": "测试生成预览器的SyncTeX数据"
},
{
"name": "test_texlive-ptex_platex-dev_translate-file",
"desc": "测试使用TCX文件进行字符转换"
},
{
"name": "test_texlive-ptex_platex-dev_help",
"desc": "测试打印帮助信息并退出"
},
{
"name": "test_texlive-ptex_platex-dev_version",
"desc": "测试打印版本信息并退出"
},
{
"name": "test_texlive-ptex_pmpost_ini",
"desc": "测试 pmpost 命令的 -ini 参数,用于转储内存文件"
},
{
"name": "test_texlive-ptex_pmpost_interaction",
"desc": "测试 pmpost 命令的 -interaction 参数,用于设置交互模式"
},
{
"name": "test_texlive-ptex_pmpost_numbersystem",
"desc": "测试 pmpost 命令的 -numbersystem 参数,用于设置数字系统模式"
},
{
"name": "test_texlive-ptex_pmpost_jobname",
"desc": "测试 pmpost 命令的 -jobname 参数,用于设置作业名称"
},
{
"name": "test_texlive-ptex_pmpost_kanji",
"desc": "测试 pmpost 命令的 -kanji 参数,用于设置日文编码"
},
{
"name": "test_texlive-ptex_pmpost_progname",
"desc": "测试 pmpost 命令的 -progname 参数,用于设置程序(和内存)名称"
},
{
"name": "test_texlive-ptex_pmpost_tex",
"desc": "测试 pmpost 命令的 -tex 参数,用于指定文本标签的 TeX 程序"
},
{
"name": "test_texlive-ptex_pmpost_file_line_error",
"desc": "测试 pmpost 命令的 -file-line-error 参数,用于禁用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_pmpost_no_file_line_error",
"desc": "测试 pmpost 命令的 -no-file-line-error 参数,用于启用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_pmpost_debug",
"desc": "测试 pmpost 命令的 -debug 参数,用于打印调试信息并保留临时文件"
},
{
"name": "test_texlive-ptex_pmpost_kpathsea_debug",
"desc": "测试 pmpost 命令的 -kpathsea-debug 参数,用于根据数字位设置路径搜索调试标志"
},
{
"name": "test_texlive-ptex_pmpost_mem",
"desc": "测试 pmpost 命令的 -mem 参数,用于指定内存文件名"
},
{
"name": "test_texlive-ptex_pmpost_recorder",
"desc": "测试 pmpost 命令的 -recorder 参数,用于启用文件名记录器"
},
{
"name": "test_texlive-ptex_pmpost_restricted",
"desc": "测试 pmpost 命令的 -restricted 参数,用于安全模式:禁用 tex、makempx 和编辑器命令"
},
{
"name": "test_texlive-ptex_pmpost_troff",
"desc": "测试 pmpost 命令的 -troff 参数,用于设置 prologues:=1 并假定 TEXPROGRAM 实际为 troff"
},
{
"name": "test_texlive-ptex_pmpost_upper_t",
"desc": "测试 pmpost 命令的 -T 参数,功能同 -troff"
},
{
"name": "test_texlive-ptex_pmpost_s",
"desc": "测试 pmpost 命令的 -s 参数,用于设置内部变量的值"
},
{
"name": "test_texlive-ptex_pmpost_help",
"desc": "测试 pmpost 命令的 -help 参数,用于显示帮助信息并退出"
},
{
"name": "test_texlive-ptex_pmpost_version",
"desc": "测试 pmpost 命令的 -version 参数,用于输出版本信息并退出"
},
{
"name": "test_texlive-ptex_pmpost_dvitomp",
"desc": "测试 pmpost 命令的 --dvitomp 参数,用于将 pMetaPost 作为 DVI 到 MPX 的转换器"
},
{
"name": "test_texlive-ptex_ppltotf_help",
"desc": "测试 ppltotf 命令的帮助信息显示"
},
{
"name": "test_texlive-ptex_ppltotf_version",
"desc": "测试 ppltotf 命令的版本信息显示"
},
{
"name": "test_texlive-ptex_ppltotf_kanji_euc",
"desc": "测试 ppltotf 命令设置日文编码为 euc"
},
{
"name": "test_texlive-ptex_ppltotf_kanji_jis",
"desc": "测试 ppltotf 命令设置日文编码为 jis"
},
{
"name": "test_texlive-ptex_ppltotf_kanji_sjis",
"desc": "测试 ppltotf 命令设置日文编码为 sjis"
},
{
"name": "test_texlive-ptex_ppltotf_kanji_utf8",
"desc": "测试 ppltotf 命令设置日文编码为 utf8"
},
{
"name": "test_texlive-ptex_ppltotf_verbose",
"desc": "测试 ppltotf 命令的详细输出模式"
},
{
"name": "test_texlive-ptex_ppltotf_default_tfm",
"desc": "测试 ppltotf 命令使用默认输出 TFM 文件名"
},
{
"name": "test_texlive-ptex_ppltotf_specified_tfm",
"desc": "测试 ppltotf 命令指定输出 TFM 文件名"
},
{
"name": "test_texlive-ptex_ptex_version",
"desc": "测试ptex命令的版本信息输出"
},
{
"name": "test_texlive-ptex_ptex_help",
"desc": "测试ptex命令的帮助信息输出"
},
{
"name": "test_texlive-ptex_ptex_jobname",
"desc": "测试ptex命令设置作业名称的功能"
},
{
"name": "test_texlive-ptex_ptex_kanji_utf8",
"desc": "测试ptex命令设置日文编码为UTF-8"
},
{
"name": "test_texlive-ptex_ptex_kanji_sjis",
"desc": "测试ptex命令设置日文编码为SJIS"
},
{
"name": "test_texlive-ptex_ptex_kanji_euc",
"desc": "测试ptex命令设置日文编码为EUC"
},
{
"name": "test_texlive-ptex_ptex_kanji_jis",
"desc": "测试ptex命令设置日文编码为JIS"
},
{
"name": "test_texlive-ptex_ptex_interaction_batchmode",
"desc": "测试ptex命令设置交互模式为batchmode"
},
{
"name": "test_texlive-ptex_ptex_interaction_nonstopmode",
"desc": "测试ptex命令设置交互模式为nonstopmode"
},
{
"name": "test_texlive-ptex_ptex_output_directory",
"desc": "测试ptex命令设置输出目录的功能"
},
{
"name": "test_texlive-ptex_ptex_shell_escape",
"desc": "测试ptex命令启用shell转义功能"
},
{
"name": "test_texlive-ptex_ptex_no_shell_escape",
"desc": "测试ptex命令禁用shell转义功能"
},
{
"name": "test_texlive-ptex_ptex_shell_restricted",
"desc": "测试ptex命令启用受限shell转义功能"
},
{
"name": "test_texlive-ptex_ptex_halt_on_error",
"desc": "测试ptex命令在遇到第一个错误时停止处理的功能"
},
{
"name": "test_texlive-ptex_ptex_file_line_error",
"desc": "测试ptex命令启用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_ptex_no_file_line_error",
"desc": "测试ptex命令禁用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_ptex_parse_first_line",
"desc": "测试ptex命令启用解析输入文件首行的功能"
},
{
"name": "test_texlive-ptex_ptex_no_parse_first_line",
"desc": "测试ptex命令禁用解析输入文件首行的功能"
},
{
"name": "test_texlive-ptex_ptex_fmt",
"desc": "测试ptex命令指定格式文件的功能"
},
{
"name": "test_texlive-ptex_ptex_ini",
"desc": "测试ptex命令以ini模式运行"
},
{
"name": "test_texlive-ptex_ptex_recorder",
"desc": "测试ptex命令启用文件名记录器的功能"
},
{
"name": "test_texlive-ptex_ptftopl_help",
"desc": "测试ptftopl命令的help参数查看帮助信息"
},
{
"name": "test_texlive-ptex_ptftopl_version",
"desc": "测试ptftopl命令的version参数查看版本信息"
},
{
"name": "test_texlive-ptex_ptftopl_verbose",
"desc": "测试ptftopl命令的verbose参数显示详细进度报告"
},
{
"name": "test_texlive-ptex_ptftopl_charcode_format_octal",
"desc": "测试ptftopl命令的charcode-format参数设置为octal以八进制格式输出字符码"
},
{
"name": "test_texlive-ptex_ptftopl_charcode_format_ascii",
"desc": "测试ptftopl命令的charcode-format参数设置为ascii以ASCII格式输出字符码"
},
{
"name": "test_texlive-ptex_ptftopl_kanji_euc",
"desc": "测试ptftopl命令的kanji参数设置为euc指定日文编码为EUC"
},
{
"name": "test_texlive-ptex_ptftopl_kanji_jis",
"desc": "测试ptftopl命令的kanji参数设置为jis指定日文编码为JIS"
},
{
"name": "test_texlive-ptex_ptftopl_kanji_sjis",
"desc": "测试ptftopl命令的kanji参数设置为sjis指定日文编码为SJIS"
},
{
"name": "test_texlive-ptex_ptftopl_kanji_utf8",
"desc": "测试ptftopl命令的kanji参数设置为utf8指定日文编码为UTF-8"
},
{
"name": "test_texlive-ptex_r-pmpost_ini",
"desc": "测试 pmpost 命令的 -ini 参数,用于初始化并转储内存文件"
},
{
"name": "test_texlive-ptex_r-pmpost_interaction",
"desc": "测试 pmpost 命令的 -interaction 参数,设置交互模式"
},
{
"name": "test_texlive-ptex_r-pmpost_numbersystem",
"desc": "测试 pmpost 命令的 -numbersystem 参数,设置数字系统模式"
},
{
"name": "test_texlive-ptex_r-pmpost_jobname",
"desc": "测试 pmpost 命令的 -jobname 参数,设置作业名称"
},
{
"name": "test_texlive-ptex_r-pmpost_kanji",
"desc": "测试 pmpost 命令的 -kanji 参数,设置日语编码"
},
{
"name": "test_texlive-ptex_r-pmpost_progname",
"desc": "测试 pmpost 命令的 -progname 参数,设置程序(和内存)名称"
},
{
"name": "test_texlive-ptex_r-pmpost_tex",
"desc": "测试 pmpost 命令的 -tex 参数,指定用于文本标签的 TEXPROGRAM"
},
{
"name": "test_texlive-ptex_r-pmpost_file_line_error",
"desc": "测试 pmpost 命令的 -file-line-error 参数,启用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_r-pmpost_no_file_line_error",
"desc": "测试 pmpost 命令的 -no-file-line-error 参数,禁用文件:行:错误样式消息"
},
{
"name": "test_texlive-ptex_r-pmpost_debug",
"desc": "测试 pmpost 命令的 -debug 参数,打印调试信息并保留临时文件"
},
{
"name": "test_texlive-ptex_r-pmpost_kpathsea_debug",
"desc": "测试 pmpost 命令的 -kpathsea-debug 参数,根据数字位设置路径搜索调试标志"
},
{
"name": "test_texlive-ptex_r-pmpost_mem",
"desc": "测试 pmpost 命令的 -mem 参数,使用指定的内存文件名称"
},
{
"name": "test_texlive-ptex_r-pmpost_recorder",
"desc": "测试 pmpost 命令的 -recorder 参数,启用文件名记录器"
},
{
"name": "test_texlive-ptex_r-pmpost_restricted",
"desc": "测试 pmpost 命令的 -restricted 参数,以安全模式运行,禁用 tex、makempx 和编辑器命令"
},
{
"name": "test_texlive-ptex_r-pmpost_troff",
"desc": "测试 pmpost 命令的 -troff 参数,设置 prologues:=1 并假设 TEXPROGRAM 是真正的 troff"
},
{
"name": "test_texlive-ptex_r-pmpost_upper_t",
"desc": "测试 pmpost 命令的 -T 参数,其作用等同于 -troff"
},
{
"name": "test_texlive-ptex_r-pmpost_s",
"desc": "测试 pmpost 命令的 -s 参数,设置内部变量的值"
},
{
"name": "test_texlive-ptex_r-pmpost_help",
"desc": "测试 pmpost 命令的 -help 参数,显示帮助信息并退出"
},
{
"name": "test_texlive-ptex_r-pmpost_version",
"desc": "测试 pmpost 命令的 -version 参数,输出版本信息并退出"
},
{
"name": "test_texlive-ptex_r-pmpost_dvitomp",
"desc": "测试 pmpost 命令的 --dvitomp 参数,仅作为 DVI 到 MPX 的转换器运行"
},
{
"name": "test_texlive-ptex_function_basic",
"desc": "Test basic pTeX document compilation"
},
{
"name": "test_texlive-ptex_function_platex",
"desc": "Test LaTeX document with pLaTeX"
},
{
"name": "test_texlive-ptex_function_pbibtex",
"desc": "Test bibliography processing with pBibTeX"
},
{
"name": "test_texlive-ptex_function_mendex",
"desc": "Test index generation with mendex"
},
{
"name": "test_texlive-ptex_function_kanji_utf8",
"desc": "Test Japanese UTF-8 encoding support"
},
{
"name": "test_texlive-ptex_function_kanji_sjis",
"desc": "Test Japanese Shift-JIS encoding support"
},
{
"name": "test_texlive-ptex_function_output_dir",
"desc": "Test setting output directory"
},
{
"name": "test_texlive-ptex_function_shell_escape",
"desc": "Test shell escape functionality"
},
{
"name": "test_texlive-ptex_function_version",
"desc": "Test version display of ptex commands"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-b/texlive-aspectratio",
"machine num": 1,
"cases": [
{
"name": "test_texlive-aspectratio_function_basic",
"desc": "Test basic functionality of aspectratio package"
},
{
"name": "test_texlive-aspectratio_function_install",
"desc": "Test installation of the aspectratio package"
},
{
"name": "test_texlive-aspectratio_function_uninstall",
"desc": "Test uninstallation of the aspectratio package"
},
{
"name": "test_texlive-aspectratio_function_setratio",
"desc": "Test setting the aspect ratio in document"
},
{
"name": "test_texlive-aspectratio_function_compile",
"desc": "Test document compilation with aspectratio"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_texlive-docbytex-doc_install",
"desc": "测试 texlive-docbytex-doc 软件包的安装功能,验证是否能够正确安装到系统中。",
"machine num": 1
},
{
"name": "test_texlive-docbytex-doc_function_render",
"desc": "测试 texlive-docbytex-doc 的文档渲染功能,验证是否能正确生成文档。"
}
]
}

View File

@@ -17,10 +17,6 @@
{
"name": "test_texlive-eco-doc_function_info",
"desc": "Test package info query"
},
{
"name": "test_texlive-eco-doc_function_usage",
"desc": "Test basic LaTeX usage"
}
]
}

View File

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

View File

@@ -6,10 +6,6 @@
"name": "test_texlive-hyphen-spanish_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-hyphen-spanish_function_verify_install",
"desc": "Test package installation verification"
},
{
"name": "test_texlive-hyphen-spanish_function_remove",
"desc": "Test package removal"
@@ -17,10 +13,6 @@
{
"name": "test_texlive-hyphen-spanish_function_check_files",
"desc": "Test existence of hyphenation files"
},
{
"name": "test_texlive-hyphen-spanish_function_usage",
"desc": "Test basic LaTeX hyphenation usage"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-unfonts-extra",
"machine num": 1,
"cases": [
{
"name": "test_texlive-unfonts-extra_function_font_rendering",
"desc": "Test the rendering of fonts provided by texlive-unfonts-extra"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-soulpos",
"machine num": 1,
"cases": [
{
"name": "test_texlive-soulpos_function_spacing",
"desc": "Test spacing adjustment functionality"
}
]
}

View File

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

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-14
# @License : Mulan PSL v2
# @Desc : 使用-f参数通过二进制文件获取表
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试acpidump -f参数通过二进制文件获取表"
LOG_INFO "1. 检查acpica-tools软件包是否在yum源中"
dnf list available acpica-tools >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到acpica-tools软件包"
exit 255
fi
LOG_INFO "2. 检查acpidump命令的-f参数是否支持"
acpidump -h 2>&1 | grep -q -- "-f"
if [ $? -ne 0 ]; then
LOG_ERROR "acpidump命令不支持-f参数"
exit 255
fi
LOG_INFO "3. 检查当前环境是否已安装acpica-tools"
rpm -q acpica-tools >/dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "acpica-tools已安装测试后保持安装状态"
else
LOG_INFO "acpica-tools未安装开始安装"
dnf install -y acpica-tools
CHECK_RESULT $? 0 0 "安装acpica-tools失败"
fi
LOG_INFO "4. 创建测试用的二进制ACPI表文件"
acpidump -b -o test_acpi.dat
CHECK_RESULT $? 0 0 "创建二进制ACPI表文件失败"
LOG_INFO "5. 使用-f参数从二进制文件获取表"
acpidump -f test_acpi.dat -o test_acpi.txt
CHECK_RESULT $? 0 0 "使用-f参数获取表失败"
LOG_INFO "6. 验证生成的文本文件内容"
[ -s test_acpi.txt ]
CHECK_RESULT $? 0 0 "生成的文本文件为空或不存在"
LOG_INFO "7. 清理测试文件"
rm -f test_acpi.dat test_acpi.txt
CHECK_RESULT $? 0 0 "删除测试文件失败"
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "8. 卸载测试安装的acpica-tools软件包"
dnf remove -y acpica-tools
CHECK_RESULT $? 0 0 "卸载acpica-tools失败"
else
LOG_INFO "8. 保持acpica-tools安装状态无需卸载"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,61 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-14
# @License : Mulan PSL v2
# @Desc : 使用-r参数从指定的RSDP地址转储表
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用-r参数从指定的RSDP地址转储表"
LOG_INFO "步骤1检查acpica-tools软件包是否在yum源中可用"
if ! dnf list available acpica-tools &>/dev/null; then
LOG_ERROR "acpica-tools软件包在yum源中不可用"
exit 255
fi
LOG_INFO "步骤2检查acpidump命令的-r参数是否支持"
if ! acpidump --help 2>&1 | grep -q "\-r"; then
LOG_ERROR "acpidump命令不支持-r参数"
exit 255
fi
LOG_INFO "步骤3检查acpica-tools是否已安装"
if rpm -q acpica-tools &>/dev/null; then
LOG_INFO "acpica-tools已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "acpica-tools未安装将安装软件包作为测试步骤"
dnf install -y acpica-tools
CHECK_RESULT $? 0 0 "安装acpica-tools失败"
INSTALLED=0
fi
LOG_INFO "步骤4获取当前RSDP地址"
RSDP_ADDR=$(grep -E "^ACPI" /proc/iomem | head -1 | cut -d"-" -f1)
CHECK_RESULT $? 0 0 "获取RSDP地址失败"
LOG_INFO "步骤5使用-r参数从指定RSDP地址转储ACPI表"
acpidump -r $RSDP_ADDR
CHECK_RESULT $? 0 0 "使用-r参数转储ACPI表失败"
LOG_INFO "步骤6清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载acpica-tools软件包"
dnf remove -y acpica-tools
CHECK_RESULT $? 0 0 "卸载acpica-tools失败"
else
LOG_INFO "acpica-tools已安装保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试检查flac-devel软件包是否已安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查flac-devel软件包是否已安装"
# 检查flac-devel是否已安装
LOG_INFO "步骤1检查flac-devel软件包是否已安装"
if rpm -q flac-devel > /dev/null 2>&1; then
LOG_INFO "flac-devel软件包已安装"
installed_before_test=true
else
LOG_INFO "flac-devel软件包未安装"
installed_before_test=false
fi
# 检查yum源中是否有flac-devel软件包
LOG_INFO "步骤2检查yum源中是否有flac-devel软件包"
if dnf list available flac-devel 2>/dev/null | grep -q flac-devel; then
LOG_INFO "yum源中存在flac-devel软件包"
else
LOG_ERROR "yum源中不存在flac-devel软件包"
exit 255
fi
# 如果未安装则安装flac-devel软件包
if [ "$installed_before_test" = false ]; then
LOG_INFO "步骤3安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel软件包失败"
LOG_INFO "flac-devel软件包安装成功"
fi
# 测试flac-devel软件包功能
LOG_INFO "步骤4测试flac-devel软件包功能"
# 检查flac-config命令是否存在
if command -v flac-config > /dev/null 2>&1; then
LOG_INFO "flac-config命令存在"
# 检查flac-config命令是否支持--version参数
if flac-config --version > /dev/null 2>&1; then
LOG_INFO "flac-config命令支持--version参数"
flac-config --version
CHECK_RESULT $? 0 0 "flac-config --version执行失败"
else
LOG_ERROR "flac-config命令不支持--version参数"
exit 255
fi
else
LOG_ERROR "flac-config命令不存在"
exit 255
fi
# 环境恢复
LOG_INFO "步骤5环境恢复"
if [ "$installed_before_test" = false ]; then
LOG_INFO "卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel软件包失败"
LOG_INFO "flac-devel软件包卸载成功"
else
LOG_INFO "保持flac-devel软件包安装状态"
fi
LOG_INFO "测试完成flac-devel软件包功能检查通过"
}
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-10
# @License : Mulan PSL v2
# @Desc : 测试使用flac开发库编译示例程序
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用flac开发库编译示例程序"
# 检查flac-devel软件包是否在yum源中
LOG_INFO "检查flac-devel软件包是否在yum源中"
dnf list available flac-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到flac-devel软件包"
exit 255
fi
# 检查是否已安装flac-devel
LOG_INFO "检查是否已安装flac-devel"
rpm -q flac-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "flac-devel已安装测试结束后保持安装状态"
already_installed=1
else
LOG_INFO "flac-devel未安装将安装作为测试步骤"
already_installed=0
fi
# 如果未安装则安装flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel失败"
fi
# 创建测试编译目录
LOG_INFO "创建测试编译目录"
test_dir="/tmp/flac_test_$$"
mkdir -p $test_dir
CHECK_RESULT $? 0 0 "创建测试目录失败"
# 创建示例C程序
LOG_INFO "创建使用flac库的示例程序"
cat > $test_dir/test_flac.c << "EOF"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <FLAC/stream_encoder.h>
int main() {
FLAC__StreamEncoder *encoder = FLAC__stream_encoder_new();
if (encoder == NULL) {
printf("Failed to create FLAC encoder\n");
return 1;
}
printf("FLAC encoder created successfully\n");
FLAC__stream_encoder_delete(encoder);
return 0;
}
EOF
# 编译示例程序
LOG_INFO "编译示例程序"
cd $test_dir
gcc -o test_flac test_flac.c -lFLAC -lm
CHECK_RESULT $? 0 0 "编译示例程序失败"
# 运行编译的程序
LOG_INFO "运行编译的程序"
./test_flac
CHECK_RESULT $? 0 0 "运行编译的程序失败"
# 清理测试目录
LOG_INFO "清理测试目录"
cd /
rm -rf $test_dir
CHECK_RESULT $? 0 0 "清理测试目录失败"
# 如果测试前未安装则卸载flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel失败"
fi
LOG_INFO "测试使用flac开发库编译示例程序完成"
}
main "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试flac开发头文件的存在与完整性
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试flac开发头文件的存在与完整性
# 检查是否已安装flac-devel
LOG_INFO "检查是否已安装flac-devel软件包"
rpm -q flac-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "flac-devel已安装标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "flac-devel未安装标记为未安装状态"
INSTALLED="false"
fi
# 检查yum源中是否有flac-devel软件包
LOG_INFO "检查yum源中是否有flac-devel软件包"
dnf list available flac-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到flac-devel软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到flac-devel软件包"
exit 255
fi
# 如果未安装则安装flac-devel
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "开始安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel失败"
LOG_INFO "flac-devel安装成功"
fi
# 检查flac开发头文件是否存在
LOG_INFO "检查flac开发头文件是否存在"
ls /usr/include/FLAC/all.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/all.h头文件不存在"
ls /usr/include/FLAC/assert.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/assert.h头文件不存在"
ls /usr/include/FLAC/callback.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/callback.h头文件不存在"
ls /usr/include/FLAC/export.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/export.h头文件不存在"
ls /usr/include/FLAC/format.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/format.h头文件不存在"
ls /usr/include/FLAC/metadata.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/metadata.h头文件不存在"
ls /usr/include/FLAC/ordinals.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/ordinals.h头文件不存在"
ls /usr/include/FLAC/stream_decoder.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/stream_decoder.h头文件不存在"
ls /usr/include/FLAC/stream_encoder.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "FLAC/stream_encoder.h头文件不存在"
# 检查头文件完整性(简单的内容检查)
LOG_INFO "检查flac头文件完整性"
grep -q "Copyright" /usr/include/FLAC/all.h
CHECK_RESULT $? 0 0 "FLAC/all.h头文件内容不完整"
grep -q "#ifndef FLAC__EXPORT_H" /usr/include/FLAC/export.h
CHECK_RESULT $? 0 0 "FLAC/export.h头文件内容不完整"
# 清理环境如果测试前未安装则卸载flac-devel
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "测试前已安装flac-devel保持安装状态"
fi
LOG_INFO "测试完成flac开发头文件存在且完整"
}
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-10
# @License : Mulan PSL v2
# @Desc : 测试flac开发库文件的存在与链接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试flac开发库文件的存在与链接
LOG_INFO "开始测试flac开发库文件的存在与链接"
# 检查是否已经安装flac-devel
LOG_INFO "检查flac-devel是否已经安装"
if rpm -q flac-devel > /dev/null 2>&1; then
LOG_INFO "flac-devel已经安装测试后将保持安装状态"
already_installed=1
else
LOG_INFO "flac-devel未安装将在测试过程中安装"
already_installed=0
fi
# 检查yum源中是否有flac-devel软件包
LOG_INFO "检查yum源中是否有flac-devel软件包"
if ! dnf list available flac-devel > /dev/null 2>&1; then
LOG_ERROR "yum源中没有flac-devel软件包"
exit 255
fi
# 如果未安装则安装flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装flac-devel软件包"
dnf install -y flac-devel
CHECK_RESULT $? 0 0 "安装flac-devel失败"
fi
# 测试flac开发库文件是否存在
LOG_INFO "测试flac开发库文件是否存在"
if [ -f /usr/include/FLAC/all.h ]; then
LOG_INFO "FLAC头文件存在: /usr/include/FLAC/all.h"
else
LOG_ERROR "FLAC头文件不存在: /usr/include/FLAC/all.h"
CHECK_RESULT 1 0 0 "FLAC头文件不存在"
fi
if [ -f /usr/lib64/libFLAC.so ] || [ -f /usr/lib/libFLAC.so ]; then
LOG_INFO "FLAC库文件存在"
else
LOG_ERROR "FLAC库文件不存在"
CHECK_RESULT 1 0 0 "FLAC库文件不存在"
fi
# 测试库文件是否能正确链接
LOG_INFO "测试FLAC库文件是否能正确链接"
cat > test_flac.c << "EOF"
#include <FLAC/all.h>
#include <stdio.h>
int main() {
printf("FLAC version: %s\n", FLAC__VERSION_STRING);
return 0;
}
EOF
# 编译测试程序
LOG_INFO "编译测试程序"
gcc -o test_flac test_flac.c -lFLAC
CHECK_RESULT $? 0 0 "编译FLAC测试程序失败"
# 运行测试程序
LOG_INFO "运行测试程序"
./test_flac
CHECK_RESULT $? 0 0 "运行FLAC测试程序失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_flac.c test_flac
# 如果测试前未安装则卸载flac-devel
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载flac-devel软件包"
dnf remove -y flac-devel
CHECK_RESULT $? 0 0 "卸载flac-devel失败"
else
LOG_INFO "测试前已安装flac-devel保持安装状态"
fi
LOG_INFO "flac开发库文件的存在与链接测试完成"
}
main "$@"

View File

@@ -1,151 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : 测试flac-devel软件包能否正确卸载
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(如果未定义)
if ! type LOG_INFO &>/dev/null; then
LOG_INFO() {
echo "[INFO] $*"
}
fi
if ! type LOG_ERROR &>/dev/null; then
LOG_ERROR() {
echo "[ERROR] $*"
}
fi
# 定义检查结果函数(如果未定义)
if ! type CHECK_RESULT &>/dev/null; then
CHECK_RESULT() {
local actual=$1
local expected=$2
local error_code=$3
local message=$4
if [ "$actual" -eq "$expected" ]; then
LOG_INFO "检查通过: $message"
else
LOG_ERROR "检查失败: $message (期望: $expected, 实际: $actual)"
exit $error_code
fi
}
fi
# 定义SSH_CMD函数如果未定义
if ! type SSH_CMD &>/dev/null; then
SSH_CMD() {
local cmd=$1
local node_ip=$2
local node_password=$3
local node_user=$4
LOG_INFO "在节点 $node_ip 上执行命令: $cmd"
# 这里使用sshpass模拟SSH连接实际环境中可能需要调整
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
return $?
}
fi
# 主测试函数
test_flac_devel_uninstall() {
local package_name="flac-devel"
local installed_before_test=false
LOG_INFO "开始测试: 测试flac-devel软件包能否正确卸载"
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "步骤1: 检查yum源中是否存在 $package_name 软件包"
dnf list available "$package_name" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在 $package_name 软件包"
exit 255
fi
LOG_INFO "yum源中存在 $package_name 软件包"
# 步骤2: 检查当前是否已安装
LOG_INFO "步骤2: 检查 $package_name 是否已安装"
if rpm -q "$package_name" &>/dev/null; then
LOG_INFO "$package_name 已安装"
installed_before_test=true
else
LOG_INFO "$package_name 未安装"
installed_before_test=false
fi
# 步骤3: 如果未安装,则先安装
if [ "$installed_before_test" = false ]; then
LOG_INFO "步骤3: 安装 $package_name 软件包"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "安装 $package_name 失败"
LOG_INFO "安装 $package_name 成功"
else
LOG_INFO "步骤3: 跳过安装,软件包已存在"
fi
# 步骤4: 验证软件包已安装
LOG_INFO "步骤4: 验证 $package_name 已安装"
rpm -q "$package_name"
CHECK_RESULT $? 0 0 "验证 $package_name 安装状态失败"
LOG_INFO "验证 $package_name 安装成功"
# 步骤5: 卸载软件包
LOG_INFO "步骤5: 卸载 $package_name 软件包"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载 $package_name 失败"
LOG_INFO "卸载 $package_name 成功"
# 步骤6: 验证软件包已卸载
LOG_INFO "步骤6: 验证 $package_name 已卸载"
rpm -q "$package_name" &>/dev/null
local uninstall_check=$?
if [ $uninstall_check -eq 0 ]; then
LOG_ERROR "验证失败: $package_name 仍然存在"
CHECK_RESULT 1 0 1 "$package_name 卸载验证失败"
else
LOG_INFO "验证成功: $package_name 已卸载"
CHECK_RESULT 0 0 0 "$package_name 卸载验证成功"
fi
# 步骤7: 环境恢复
LOG_INFO "步骤7: 恢复测试环境"
if [ "$installed_before_test" = true ]; then
LOG_INFO "恢复安装 $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "恢复安装 $package_name 失败"
LOG_INFO "环境恢复完成: $package_name 已重新安装"
else
LOG_INFO "环境恢复: 保持 $package_name 未安装状态"
# 确保软件包确实未安装
if rpm -q "$package_name" &>/dev/null; then
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "清理 $package_name 失败"
fi
fi
LOG_INFO "测试完成: flac-devel软件包卸载功能测试通过"
}
# 执行测试
test_flac_devel_uninstall
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test displaying the help information
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(实际环境中可能已定义,此处仅为防止未定义而提供,实际使用时若已定义可删除)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义软件包名称和命令
PACKAGE_NAME="fxload"
COMMAND="fxload"
EXPECTED_PARAM="--help"
# 步骤1检查yum源中是否存在指定软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 $PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
exit 255
fi
# 步骤2检查系统是否已安装该软件包
LOG_INFO "步骤2检查系统是否已安装软件包 $PACKAGE_NAME"
INSTALLED=0
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
fi
# 步骤3如果未安装则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4检查命令是否支持 --help 参数
LOG_INFO "步骤4检查命令 $COMMAND 是否支持参数 $EXPECTED_PARAM"
$COMMAND $EXPECTED_PARAM &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "命令 $COMMAND 不支持参数 $EXPECTED_PARAM 或参数不存在"
exit 255
fi
# 步骤5执行命令并验证输出
LOG_INFO "步骤5执行命令 $COMMAND $EXPECTED_PARAM 并验证输出"
OUTPUT=$($COMMAND $EXPECTED_PARAM 2>&1)
if echo "$OUTPUT" | grep -q "usage\|Usage\|help\|Help"; then
LOG_INFO "命令 $COMMAND $EXPECTED_PARAM 执行成功,输出包含帮助信息"
else
LOG_ERROR "命令 $COMMAND $EXPECTED_PARAM 执行失败,输出未包含帮助信息"
CHECK_RESULT 1 0 0 "命令输出验证失败"
fi
# 步骤6清理环境如果脚本开始时未安装则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤6卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "步骤6软件包 $PACKAGE_NAME 在脚本执行前已安装,保持安装状态"
fi
LOG_INFO "测试完成Test displaying the help information"
}
main "$@"

View File

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

View File

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

View File

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

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-09
# @License : Mulan PSL v2
# @Desc : 测试启动时不使用SCdaemon的gpg-agent
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装gnupg2和gpg-agent
LOG_INFO "检查是否已安装gnupg2和gpg-agent"
if rpm -q gnupg2 >/dev/null 2>&1; then
LOG_INFO "gnupg2已安装"
INSTALLED=true
else
LOG_INFO "gnupg2未安装"
INSTALLED=false
fi
# 检查yum源中是否有gnupg2软件包
LOG_INFO "检查yum源中是否有gnupg2软件包"
if ! dnf list available gnupg2 >/dev/null 2>&1; then
LOG_ERROR "yum源中没有gnupg2软件包"
exit 255
fi
# 如果未安装则安装gnupg2
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装gnupg2软件包"
dnf install -y gnupg2
CHECK_RESULT $? 0 0 "安装gnupg2失败"
fi
# 检查gpg-agent是否支持--disable-scdaemon参数
LOG_INFO "检查gpg-agent是否支持--disable-scdaemon参数"
if ! gpg-agent --help 2>&1 | grep -q "disable-scdaemon"; then
LOG_ERROR "gpg-agent不支持--disable-scdaemon参数"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载gnupg2软件包"
dnf remove -y gnupg2
fi
exit 255
fi
# 测试启动时不使用SCdaemon的gpg-agent
LOG_INFO "测试启动时不使用SCdaemon的gpg-agent"
gpg-agent --daemon --disable-scdaemon
CHECK_RESULT $? 0 0 "启动gpg-agent失败"
# 检查gpg-agent进程是否在运行
LOG_INFO "检查gpg-agent进程是否在运行"
ps aux | grep -q "[g]pg-agent --daemon --disable-scdaemon"
CHECK_RESULT $? 0 0 "gpg-agent进程未运行"
# 停止gpg-agent进程
LOG_INFO "停止gpg-agent进程"
gpgconf --kill gpg-agent
CHECK_RESULT $? 0 0 "停止gpg-agent失败"
# 环境恢复如果之前未安装则卸载gnupg2
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载gnupg2软件包"
dnf remove -y gnupg2
CHECK_RESULT $? 0 0 "卸载gnupg2失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-31
# @License : Mulan PSL v2
# @Desc : 测试设置新密码短语中至少需要非字母字符的数量
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试设置新密码短语中至少需要非字母字符的数量"
# 定义软件包名称
PACKAGE_NAME="gnupg2"
# 检查环境是否已安装gnupg2
LOG_INFO "步骤1检查gnupg2是否已安装"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "gnupg2已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "gnupg2未安装将在测试过程中安装并在结束时卸载"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有gnupg2软件包
LOG_INFO "步骤2检查yum源中是否有gnupg2软件包"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到gnupg2软件包"
exit 255
fi
# 如果未安装则安装gnupg2
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤3安装gnupg2软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装gnupg2失败"
fi
# 检查gpg-agent是否支持--min-passphrase-nonalpha参数
LOG_INFO "步骤4检查gpg-agent是否支持--min-passphrase-nonalpha参数"
gpg-agent --help | grep -q -- "--min-passphrase-nonalpha"
if [ $? -ne 0 ]; then
LOG_ERROR "gpg-agent不支持--min-passphrase-nonalpha参数"
exit 255
fi
# 测试设置新密码短语中至少需要非字母字符的数量
LOG_INFO "步骤5测试设置新密码短语中至少需要非字母字符的数量"
gpg-agent --min-passphrase-nonalpha 2 --daemon
CHECK_RESULT $? 0 0 "设置非字母字符数量失败"
# 清理环境如果之前未安装则卸载gnupg2
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤6卸载gnupg2软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载gnupg2失败"
else
LOG_INFO "步骤6保持gnupg2安装状态无需卸载"
fi
LOG_INFO "测试完成:测试设置新密码短语中至少需要非字母字符的数量"
}
main "$@"

View File

@@ -1,159 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-31
# @License : Mulan PSL v2
# @Desc : 测试在已安装hdparm或相关软件包的系统上安装hdparm-help是否会产生文件冲突或依赖问题。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装hdparm或相关软件包
LOG_INFO "检查系统是否已安装hdparm或相关软件包"
# 定义软件包名称
HDPARM_PKG="hdparm"
HDPARM_HELP_PKG="hdparm-help"
MAIN_PKG_INSTALLED=0
HELP_PKG_INSTALLED=0
# 检查hdparm是否已安装
if rpm -q ${HDPARM_PKG} > /dev/null 2>&1; then
LOG_INFO "检测到系统已安装${HDPARM_PKG}"
MAIN_PKG_INSTALLED=1
else
LOG_INFO "系统未安装${HDPARM_PKG}"
fi
# 检查hdparm-help是否已安装
if rpm -q ${HDPARM_HELP_PKG} > /dev/null 2>&1; then
LOG_INFO "检测到系统已安装${HDPARM_HELP_PKG}"
HELP_PKG_INSTALLED=1
else
LOG_INFO "系统未安装${HDPARM_HELP_PKG}"
fi
# 检查yum源中是否有hdparm-help软件包
LOG_INFO "检查yum源中是否有${HDPARM_HELP_PKG}软件包"
if ! dnf search ${HDPARM_HELP_PKG} 2>/dev/null | grep -q "${HDPARM_HELP_PKG}"; then
LOG_ERROR "yum源中未找到${HDPARM_HELP_PKG}软件包"
exit 255
fi
LOG_INFO "yum源中存在${HDPARM_HELP_PKG}软件包"
# 检查yum源中是否有hdparm软件包
LOG_INFO "检查yum源中是否有${HDPARM_PKG}软件包"
if ! dnf search ${HDPARM_PKG} 2>/dev/null | grep -q "${HDPARM_PKG}"; then
LOG_ERROR "yum源中未找到${HDPARM_PKG}软件包"
exit 255
fi
LOG_INFO "yum源中存在${HDPARM_PKG}软件包"
# 记录初始安装状态
INITIAL_MAIN_PKG=${MAIN_PKG_INSTALLED}
INITIAL_HELP_PKG=${HELP_PKG_INSTALLED}
# 如果hdparm未安装则安装它作为测试前提
if [ ${MAIN_PKG_INSTALLED} -eq 0 ]; then
LOG_INFO "安装${HDPARM_PKG}软件包作为测试前提"
dnf install -y ${HDPARM_PKG}
CHECK_RESULT $? 0 0 "安装${HDPARM_PKG}失败"
MAIN_PKG_INSTALLED=1
fi
# 测试安装hdparm-help
LOG_INFO "测试安装${HDPARM_HELP_PKG}软件包"
dnf install -y ${HDPARM_HELP_PKG}
INSTALL_RESULT=$?
# 检查安装结果
if [ ${INSTALL_RESULT} -eq 0 ]; then
LOG_INFO "${HDPARM_HELP_PKG}安装成功"
HELP_PKG_INSTALLED=1
# 验证hdparm-help是否成功安装
LOG_INFO "验证${HDPARM_HELP_PKG}是否成功安装"
rpm -q ${HDPARM_HELP_PKG}
CHECK_RESULT $? 0 0 "${HDPARM_HELP_PKG}安装验证失败"
# 检查是否有文件冲突
LOG_INFO "检查安装${HDPARM_HELP_PKG}后是否有文件冲突"
CONFLICTS=$(rpm -q --conflicts ${HDPARM_HELP_PKG} 2>/dev/null)
if [ -n "${CONFLICTS}" ]; then
LOG_INFO "检测到以下文件冲突:${CONFLICTS}"
else
LOG_INFO "未检测到文件冲突"
fi
# 检查依赖关系
LOG_INFO "检查${HDPARM_HELP_PKG}的依赖关系"
rpm -q --requires ${HDPARM_HELP_PKG}
CHECK_RESULT $? 0 0 "检查${HDPARM_HELP_PKG}依赖关系失败"
# 测试hdparm-help提供的功能
LOG_INFO "测试${HDPARM_HELP_PKG}提供的帮助功能"
if command -v hdparm >/dev/null 2>&1; then
hdparm --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "hdparm --help命令执行失败"
fi
else
LOG_ERROR "${HDPARM_HELP_PKG}安装失败,退出码:${INSTALL_RESULT}"
# 检查是否为依赖问题
if [ ${INSTALL_RESULT} -eq 1 ]; then
LOG_ERROR "可能是依赖问题导致安装失败"
fi
# 检查是否为冲突问题
dnf install -y ${HDPARM_HELP_PKG} 2>&1 | grep -i "conflict"
CONFLICT_CHECK=$?
if [ ${CONFLICT_CHECK} -eq 0 ]; then
LOG_ERROR "检测到软件包冲突"
fi
fi
# 环境恢复
LOG_INFO "开始恢复测试环境"
# 如果测试前未安装hdparm-help则卸载它
if [ ${INITIAL_HELP_PKG} -eq 0 ] && [ ${HELP_PKG_INSTALLED} -eq 1 ]; then
LOG_INFO "卸载测试安装的${HDPARM_HELP_PKG}软件包"
dnf remove -y ${HDPARM_HELP_PKG}
CHECK_RESULT $? 0 0 "卸载${HDPARM_HELP_PKG}失败"
fi
# 如果测试前未安装hdparm则卸载它
if [ ${INITIAL_MAIN_PKG} -eq 0 ] && [ ${MAIN_PKG_INSTALLED} -eq 1 ]; then
LOG_INFO "卸载测试安装的${HDPARM_PKG}软件包"
dnf remove -y ${HDPARM_PKG}
CHECK_RESULT $? 0 0 "卸载${HDPARM_PKG}失败"
fi
# 验证环境已恢复
LOG_INFO "验证测试环境已恢复"
if [ ${INITIAL_HELP_PKG} -eq 0 ]; then
rpm -q ${HDPARM_HELP_PKG} > /dev/null 2>&1
CHECK_RESULT $? 1 0 "环境恢复失败:${HDPARM_HELP_PKG}未被正确卸载"
fi
if [ ${INITIAL_MAIN_PKG} -eq 0 ]; then
rpm -q ${HDPARM_PKG} > /dev/null 2>&1
CHECK_RESULT $? 1 0 "环境恢复失败:${HDPARM_PKG}未被正确卸载"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-31
# @License : Mulan PSL v2
# @Desc : 测试hdparm-help软件包安装后其核心手册页文件的完整性如校验MD5或SHA256值
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装hdparm-help软件包
LOG_INFO "检查hdparm-help软件包是否已安装"
if rpm -q hdparm-help &> /dev/null; then
LOG_INFO "hdparm-help软件包已安装标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "hdparm-help软件包未安装"
KEEP_INSTALLED=0
fi
# 检查yum源中是否有hdparm-help软件包
LOG_INFO "检查yum源中是否有hdparm-help软件包"
if ! dnf list available hdparm-help &> /dev/null; then
LOG_ERROR "yum源中未找到hdparm-help软件包"
exit 255
fi
# 如果未安装则安装hdparm-help软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装hdparm-help软件包"
dnf install -y hdparm-help
CHECK_RESULT $? 0 0 "安装hdparm-help软件包失败"
LOG_INFO "hdparm-help软件包安装成功"
fi
# 检查hdparm-help软件包的核心手册页文件
LOG_INFO "检查hdparm-help软件包的核心手册页文件"
rpm -ql hdparm-help | grep -E "\.(gz|bz2|xz)$" > /tmp/hdparm-help-files.txt
CHECK_RESULT $? 0 0 "获取hdparm-help软件包文件列表失败"
# 校验核心手册页文件的完整性
LOG_INFO "开始校验核心手册页文件的完整性"
while IFS= read -r file; do
if [ -f "$file" ]; then
# 使用rpm -V验证文件完整性
rpm -V hdparm-help "$file" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "文件 $file 完整性校验失败"
LOG_INFO "文件 $file 完整性校验通过"
else
LOG_ERROR "文件 $file 不存在"
exit 1
fi
done < /tmp/hdparm-help-files.txt
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/hdparm-help-files.txt
# 如果测试前未安装,则在测试结束后卸载软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "测试前未安装hdparm-help现在卸载软件包"
dnf remove -y hdparm-help
CHECK_RESULT $? 0 0 "卸载hdparm-help软件包失败"
LOG_INFO "hdparm-help软件包卸载成功"
else
LOG_INFO "测试前已安装hdparm-help保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-31
# @License : Mulan PSL v2
# @Desc : 测试在无网络环境下通过本地软件包仓库或离线包能否成功安装hdparm-help软件包。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装hdparm-help
LOG_INFO "检查hdparm-help是否已安装"
rpm -q hdparm-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "hdparm-help已安装脚本结束后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "hdparm-help未安装将在测试后卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有hdparm-help软件包
LOG_INFO "检查yum源中是否有hdparm-help软件包"
dnf list available hdparm-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到hdparm-help软件包"
exit 255
fi
# 检查hdparm-help命令参数
LOG_INFO "检查hdparm-help命令参数"
hdparm --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "hdparm-help命令参数不存在或不支持"
exit 255
fi
# 安装hdparm-help软件包
LOG_INFO "开始安装hdparm-help软件包"
dnf install -y hdparm-help
CHECK_RESULT $? 0 0 "安装hdparm-help失败"
# 验证hdparm-help是否安装成功
LOG_INFO "验证hdparm-help是否安装成功"
rpm -q hdparm-help
CHECK_RESULT $? 0 0 "hdparm-help未安装成功"
# 测试hdparm-help命令功能
LOG_INFO "测试hdparm-help命令功能"
hdparm --help | grep -q "Usage"
CHECK_RESULT $? 0 0 "hdparm-help命令功能异常"
# 清理环境
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "清理环境卸载hdparm-help软件包"
dnf remove -y hdparm-help
CHECK_RESULT $? 0 0 "卸载hdparm-help失败"
else
LOG_INFO "保持hdparm-help安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,122 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-31
# @License : Mulan PSL v2
# @Desc : 测试通过包管理器查询hdparm-help软件包的版本信息验证其版本号与预期一致。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出如果LOG_INFO/LOG_ERROR未定义则定义基本版本
if ! command -v LOG_INFO >/dev/null 2>&1; then
LOG_INFO() {
echo "[INFO] $*"
}
fi
if ! command -v LOG_ERROR >/dev/null 2>&1; then
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
fi
# 定义软件包名称和命令
PACKAGE_NAME="hdparm"
COMMAND="hdparm"
EXPECTED_VERSION="9.65" # 根据实际需求调整预期版本
# 步骤1: 检查环境是否已安装hdparm
LOG_INFO "步骤1: 检查是否已安装hdparm软件包"
if command -v $COMMAND >/dev/null 2>&1; then
LOG_INFO "hdparm已安装标记为无需清理"
NEED_CLEANUP=0
else
LOG_INFO "hdparm未安装标记为需要清理"
NEED_CLEANUP=1
fi
# 步骤2: 检查yum源中是否存在hdparm软件包
LOG_INFO "步骤2: 检查yum源中是否存在hdparm软件包"
if ! dnf list available $PACKAGE_NAME --quiet >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到hdparm软件包"
exit 255
fi
# 步骤3: 如果未安装则安装hdparm
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤3: 安装hdparm软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装hdparm失败"
fi
# 步骤4: 检查hdparm命令是否支持--help参数
LOG_INFO "步骤4: 检查hdparm命令是否支持--help参数"
if ! $COMMAND --help >/dev/null 2>&1; then
LOG_ERROR "hdparm命令不支持--help参数"
# 如果之前安装了软件包,需要卸载
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤5: 获取hdparm的版本信息
LOG_INFO "步骤5: 获取hdparm的版本信息"
VERSION_OUTPUT=$($COMMAND --version 2>&1)
if [ $? -ne 0 ]; then
LOG_ERROR "获取hdparm版本信息失败"
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 1
fi
# 步骤6: 从版本输出中提取版本号
LOG_INFO "步骤6: 从版本输出中提取版本号"
VERSION=$(echo "$VERSION_OUTPUT" | grep -oP "v\d+\.\d+" | head -1 | sed "s/v//")
if [ -z "$VERSION" ]; then
LOG_ERROR "无法从输出中提取版本号"
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 1
fi
LOG_INFO "提取到的版本号为: $VERSION"
# 步骤7: 验证版本号是否符合预期
LOG_INFO "步骤7: 验证版本号是否符合预期"
if [ "$VERSION" = "$EXPECTED_VERSION" ]; then
LOG_INFO "版本号验证通过: 期望 $EXPECTED_VERSION, 实际 $VERSION"
else
LOG_ERROR "版本号验证失败: 期望 $EXPECTED_VERSION, 实际 $VERSION"
if [ $NEED_CLEANUP -eq 1 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 1
fi
# 步骤8: 清理环境(如果之前安装了软件包)
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤8: 卸载hdparm软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载hdparm失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,113 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-04
# @License : Mulan PSL v2
# @Desc : 测试 Huawei 命令的基本功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装指定软件包
check_package_installed() {
local package_name=$1
if dnf list installed "$package_name" &>/dev/null; then
LOG_INFO "软件包 $package_name 已安装"
return 0
else
LOG_INFO "软件包 $package_name 未安装"
return 1
fi
}
# 检查yum源中是否有指定软件包
check_package_available() {
local package_name=$1
if dnf list available "$package_name" &>/dev/null; then
LOG_INFO "yum源中存在软件包 $package_name"
return 0
else
LOG_ERROR "yum源中不存在软件包 $package_name"
exit 255
fi
}
# 安装指定软件包
install_package() {
local package_name=$1
LOG_INFO "开始安装软件包 $package_name"
dnf install -y "$package_name"
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
}
# 卸载指定软件包
uninstall_package() {
local package_name=$1
LOG_INFO "开始卸载软件包 $package_name"
dnf remove -y "$package_name"
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
}
# 执行命令并检查结果,支持参数检查与命令执行结果检查
execute_command() {
local command=$1
local expected_exit_code=${2:-0}
# 检查命令是否存在或参数是否支持
if ! command -v "${command%% *}" &>/dev/null; then
LOG_ERROR "命令 ${command%% *} 不存在或不支持"
exit 255
fi
# 执行命令并检查结果
eval "$command"
CHECK_RESULT $? $expected_exit_code 255 \
"执行命令 $command 失败"
}
main() {
LOG_INFO "测试 Huawei 命令的基本功能"
PACKAGE_NAME="kunpengsecl-tas"
# 判断环境是否已安装
if check_package_installed "$PACKAGE_NAME"; then
INSTALLED=true
else
INSTALLED=false
fi
# 如果未安装,则进行安装
if ! "$INSTALLED"; then
check_package_available "$PACKAGE_NAME"
install_package "$PACKAGE_NAME"
fi
LOG_INFO "开始执行 Huawei TAS 相关测试命令..."
execute_command "Huawei --version" 0
if [ "$INSTALLED" = false ]; then
uninstall_package "$PACKAGE_NAME"
fi
}
main "$@"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-04
# @License : Mulan PSL v2
# @Desc : 测试软件包 kunpengsecl-tas 的配置文件加载功能,验证配置是否正确解析和应用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 kunpengsecl-tas 的配置文件加载功能"
# 检查是否已安装 kunpengsecl-tas
LOG_INFO "检查 kunpengsecl-tas 是否已安装"
if dnf list installed kunpengsecl-tas &>/dev/null; then
LOG_INFO "kunpengsecl-tas 已安装"
installed=true
else
LOG_INFO "kunpengsecl-tas 未安装"
installed=false
fi
# 检查 yum 源中是否有 kunpengsecl-tas 软件包
LOG_INFO "检查 yum 源中是否有 kunpengsecl-tas 软件包"
if ! dnf list available kunpengsecl-tas &>/dev/null; then
LOG_ERROR "yum 源中未找到 kunpengsecl-tas 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 kunpengsecl-tas 软件包"
dnf install -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "安装 kunpengsecl-tas 失败"
fi
# 测试配置文件加载功能
LOG_INFO "测试配置文件加载功能"
tas_config="/etc/kunpengsecl/tas/config.yaml"
if [ ! -f "$tas_config" ]; then
LOG_ERROR "配置文件 $tas_config 不存在"
exit 255
fi
# 验证配置是否正确解析和应用
LOG_INFO "验证配置是否正确解析和应用"
tas_output=$(tas --config "$tas_config" --validate)
CHECK_RESULT $? 0 0 "配置文件验证失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载 kunpengsecl-tas 软件包"
dnf remove -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "卸载 kunpengsecl-tas 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-04
# @License : Mulan PSL v2
# @Desc : 测试 tas 命令的 -T 参数,用于生成 rest api 的测试 token
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 tas 命令的 -T 参数,用于生成 rest api 的测试 token
LOG_INFO "开始测试 tas 命令的 -T 参数"
# 检查是否已安装 kunpengsecl-tas 软件包
LOG_INFO "检查 kunpengsecl-tas 是否已安装"
if rpm -q kunpengsecl-tas &>/dev/null; then
LOG_INFO "kunpengsecl-tas 已安装"
installed=true
else
LOG_INFO "kunpengsecl-tas 未安装"
installed=false
fi
# 如果未安装,尝试从 yum 源安装
if ! $installed; then
LOG_INFO "尝试从 yum 源安装 kunpengsecl-tas"
if ! dnf list available kunpengsecl-tas &>/dev/null; then
LOG_ERROR "yum 源中未找到 kunpengsecl-tas 软件包"
exit 255
fi
dnf install -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "安装 kunpengsecl-tas 失败"
fi
# 检查 tas 命令是否支持 -T 参数
LOG_INFO "检查 tas 命令是否支持 -T 参数"
tas -h | grep -q -- "-T" || {
LOG_ERROR "tas 命令不支持 -T 参数"
exit 255
}
#执行 tas -T生成测试 token
LOG_INFO "执行 tas -T 生成测试 token"
tas -T
CHECK_RESULT $? 0 0 "tas -T 执行失败"
#清理环境
if ! $installed; then
LOG_INFO "卸载 kunpengsecl-tas"
dnf remove -y kunpengsecl-tas
CHECK_RESULT $? 0 0 "卸载 kunpengsecl-tas失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,147 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试toPlainObject函数将对象转换为普通对象的基本功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试环境准备
LOG_INFO "开始测试nodejs-lodash的toPlainObject函数基本功能"
# 定义软件包名称
PACKAGE_NAME="nodejs-lodash"
LOG_INFO "检查${PACKAGE_NAME}软件包是否在yum源中"
# 检查yum源中是否存在该软件包
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "检查当前环境是否已安装${PACKAGE_NAME}"
# 检查是否已安装
INSTALLED=false
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "${PACKAGE_NAME}已安装"
INSTALLED=true
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
# 测试toPlainObject函数基本功能
LOG_INFO "测试toPlainObject函数将对象转换为普通对象的基本功能"
# 创建测试脚本
TEST_SCRIPT="/tmp/test_lodash.js"
cat > ${TEST_SCRIPT} << "EOF"
const _ = require("lodash");
// 测试1普通对象转换
function testBasicObject() {
const obj = { a: 1, b: 2 };
const plainObj = _.toPlainObject(obj);
console.log("Test 1 - Basic object conversion:");
console.log("Original:", obj);
console.log("Result:", plainObj);
console.log("Type of result:", typeof plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("");
}
// 测试2嵌套对象转换
function testNestedObject() {
const obj = { a: 1, b: { c: 2, d: { e: 3 } } };
const plainObj = _.toPlainObject(obj);
console.log("Test 2 - Nested object conversion:");
console.log("Original:", obj);
console.log("Result:", plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("Is nested object plain?", _.isPlainObject(plainObj.b.d));
console.log("");
}
// 测试3数组转换
function testArrayConversion() {
const arr = [1, 2, 3];
const plainObj = _.toPlainObject(arr);
console.log("Test 3 - Array conversion:");
console.log("Original array:", arr);
console.log("Result:", plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("");
}
// 测试4函数参数转换
function testFunctionArguments() {
function testFunc(a, b) {
const plainObj = _.toPlainObject(arguments);
console.log("Test 4 - Function arguments conversion:");
console.log("Arguments:", arguments);
console.log("Result:", plainObj);
console.log("Is plain object?", _.isPlainObject(plainObj));
console.log("");
}
testFunc("x", "y");
}
// 执行所有测试
try {
testBasicObject();
testNestedObject();
testArrayConversion();
testFunctionArguments();
console.log("All tests completed successfully");
process.exit(0);
} catch (error) {
console.error("Test failed:", error);
process.exit(1);
}
EOF
LOG_INFO "执行toPlainObject函数测试"
node ${TEST_SCRIPT}
CHECK_RESULT $? 0 0 "toPlainObject函数基本功能测试失败"
# 清理测试脚本
LOG_INFO "清理测试脚本"
rm -f ${TEST_SCRIPT}
# 环境恢复
LOG_INFO "恢复测试环境"
# 如果测试前未安装,则卸载软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
else
LOG_INFO "保持${PACKAGE_NAME}已安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,110 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试toPlainObject函数对继承属性的转换处理
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境初始化
LOG_INFO "开始测试测试toPlainObject函数对继承属性的转换处理"
LOG_INFO "步骤1检查是否已安装nodejs和lodash"
if dnf list installed nodejs > /dev/null 2>&1 && dnf list installed nodejs-lodash > /dev/null 2>&1; then
LOG_INFO "nodejs和lodash已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "nodejs和lodash未安装将在测试前安装"
INSTALLED=0
fi
# 检查软件包是否在yum源中
LOG_INFO "步骤2检查yum源中是否有nodejs和nodejs-lodash软件包"
if ! dnf list available nodejs > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到nodejs软件包"
exit 255
fi
if ! dnf list available nodejs-lodash > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到nodejs-lodash软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装nodejs和nodejs-lodash"
dnf install -y nodejs nodejs-lodash
CHECK_RESULT $? 0 0 "安装nodejs和nodejs-lodash失败"
fi
# 创建测试脚本
LOG_INFO "步骤4创建测试脚本test_lodash.js"
cat > /tmp/test_lodash.js << "EOF"
const _ = require("lodash");
// 创建一个父类
function Parent() {
this.parentProp = "parentValue";
}
// 创建一个子类
function Child() {
this.childProp = "childValue";
}
// 设置继承
Child.prototype = new Parent();
Child.prototype.constructor = Child;
// 创建子类实例
const childInstance = new Child();
// 使用toPlainObject转换
const plainObject = _.toPlainObject(childInstance);
console.log("parentProp in plainObject:", plainObject.parentProp);
console.log("childProp in plainObject:", plainObject.childProp);
EOF
CHECK_RESULT $? 0 0 "创建测试脚本失败"
# 执行测试
LOG_INFO "步骤5执行测试脚本"
node /tmp/test_lodash.js > /tmp/test_output.txt 2>&1
CHECK_RESULT $? 0 0 "执行测试脚本失败"
# 检查测试结果
LOG_INFO "步骤6检查测试结果"
if grep -q "parentProp in plainObject: parentValue" /tmp/test_output.txt && grep -q "childProp in plainObject: childValue" /tmp/test_output.txt; then
LOG_INFO "测试通过toPlainObject正确转换了继承属性"
else
LOG_ERROR "测试失败toPlainObject未能正确转换继承属性"
cat /tmp/test_output.txt
exit 1
fi
# 环境清理
LOG_INFO "步骤7清理临时文件"
rm -f /tmp/test_lodash.js /tmp/test_output.txt
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 卸载软件包(如果测试前未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤8卸载nodejs和nodejs-lodash"
dnf remove -y nodejs nodejs-lodash
CHECK_RESULT $? 0 0 "卸载nodejs和nodejs-lodash失败"
else
LOG_INFO "步骤8保持nodejs和nodejs-lodash安装状态"
fi
LOG_INFO "测试完成测试toPlainObject函数对继承属性的转换处理"
}
main "$@"

View File

@@ -1,129 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试软件包nodejs-lodash-toplainobject能否通过包管理器如npm正常安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查当前环境是否已安装nodejs-lodash-toplainobject
LOG_INFO "开始测试验证nodejs-lodash-toplainobject能否通过包管理器正常安装"
LOG_INFO "步骤1检查当前环境是否已安装nodejs-lodash-toplainobject软件包"
if rpm -q nodejs-lodash-toplainobject &>/dev/null; then
LOG_INFO "检测到nodejs-lodash-toplainobject已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "当前环境未安装nodejs-lodash-toplainobject将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否存在nodejs-lodash-toplainobject软件包
LOG_INFO "步骤2检查yum源中是否存在nodejs-lodash-toplainobject软件包"
if ! dnf list available nodejs-lodash-toplainobject &>/dev/null; then
LOG_ERROR "yum源中未找到nodejs-lodash-toplainobject软件包"
exit 255
fi
LOG_INFO "yum源中存在nodejs-lodash-toplainobject软件包"
# 安装nodejs-lodash-toplainobject软件包如果未安装
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3通过dnf安装nodejs-lodash-toplainobject软件包"
dnf install -y nodejs-lodash-toplainobject
CHECK_RESULT $? 0 0 "安装nodejs-lodash-toplainobject失败"
LOG_INFO "nodejs-lodash-toplainobject软件包安装成功"
fi
# 验证nodejs-lodash-toplainobject软件包是否已正确安装
LOG_INFO "步骤4验证nodejs-lodash-toplainobject软件包是否已正确安装"
rpm -q nodejs-lodash-toplainobject
CHECK_RESULT $? 0 0 "验证nodejs-lodash-toplainobject软件包安装状态失败"
# 测试通过包管理器如npm正常安装lodash的toplainobject功能
LOG_INFO "步骤5测试通过npm安装lodash并验证toplainobject功能"
# 检查npm命令是否可用
if ! command -v npm &>/dev/null; then
LOG_ERROR "npm命令未找到无法进行包管理器安装测试"
exit 255
fi
# 创建一个临时目录用于测试
TEST_DIR=$(mktemp -d)
cd "$TEST_DIR" || exit 1
# 初始化npm项目
LOG_INFO "在临时目录中初始化npm项目"
npm init -y
CHECK_RESULT $? 0 0 "npm初始化失败"
# 安装lodash软件包
LOG_INFO "通过npm安装lodash软件包"
npm install lodash
CHECK_RESULT $? 0 0 "npm安装lodash失败"
# 创建一个简单的测试脚本来验证toplainobject功能
LOG_INFO "创建测试脚本验证lodash的toplainobject功能"
cat > test_toplainobject.js << "EOF"
const _ = require("lodash");
function Foo() {
this.a = 1;
}
Foo.prototype.b = 2;
const foo = new Foo();
const plainObj = _.toPlainObject(foo);
console.log("Testing toPlainObject function...");
console.log("Original object:", foo);
console.log("Plain object:", plainObj);
if (plainObj.a === 1 && !plainObj.hasOwnProperty("b")) {
console.log("SUCCESS: toPlainObject function works correctly");
process.exit(0);
} else {
console.log("FAILURE: toPlainObject function does not work as expected");
process.exit(1);
}
EOF
# 执行测试脚本
LOG_INFO "执行测试脚本验证toplainobject功能"
node test_toplainobject.js
CHECK_RESULT $? 0 0 "lodash的toplainobject功能测试失败"
LOG_INFO "lodash的toplainobject功能测试成功"
# 清理临时测试目录
LOG_INFO "清理临时测试目录"
cd /tmp || exit 1
rm -rf "$TEST_DIR"
# 环境恢复:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤6恢复测试环境卸载测试安装的nodejs-lodash-toplainobject软件包"
dnf remove -y nodejs-lodash-toplainobject
CHECK_RESULT $? 0 0 "卸载nodejs-lodash-toplainobject失败"
LOG_INFO "nodejs-lodash-toplainobject软件包已成功卸载"
else
LOG_INFO "步骤6测试前已安装nodejs-lodash-toplainobject保持安装状态不变"
fi
LOG_INFO "测试完成nodejs-lodash-toplainobject能通过包管理器正常安装"
}
main "$@"

View File

@@ -1,103 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : 测试在Node.js环境中能够成功require引入lodash.toplainobject模块
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境检查检查Node.js是否已安装
LOG_INFO "检查Node.js是否已安装"
if command -v node &> /dev/null; then
LOG_INFO "Node.js已安装脚本结束后将保持安装状态"
NODEJS_INSTALLED=true
else
LOG_INFO "Node.js未安装将在测试步骤中安装"
NODEJS_INSTALLED=false
fi
# 检查yum源中是否有Node.js软件包
LOG_INFO "检查yum源中是否有Node.js软件包"
if ! dnf list available nodejs &> /dev/null; then
LOG_ERROR "yum源中未找到Node.js软件包"
exit 255
fi
# 如果Node.js未安装则安装Node.js
if [ "$NODEJS_INSTALLED" = false ]; then
LOG_INFO "安装Node.js"
dnf install -y nodejs
CHECK_RESULT $? 0 0 "安装Node.js失败"
fi
# 检查Node.js环境
LOG_INFO "检查Node.js环境"
node --version
CHECK_RESULT $? 0 0 "Node.js环境检查失败"
# 创建测试目录
LOG_INFO "创建测试目录"
mkdir -p /tmp/test_nodejs_lodash
cd /tmp/test_nodejs_lodash
CHECK_RESULT $? 0 0 "创建测试目录失败"
# 初始化npm项目
LOG_INFO "初始化npm项目"
npm init -y
CHECK_RESULT $? 0 0 "初始化npm项目失败"
# 安装lodash.toplainobject模块
LOG_INFO "安装lodash.toplainobject模块"
npm install lodash.toplainobject
CHECK_RESULT $? 0 0 "安装lodash.toplainobject模块失败"
# 创建测试脚本
LOG_INFO "创建测试脚本"
cat > test_require.js << "EOF"
const toPlainObject = require("lodash.toplainobject");
if (typeof toPlainObject === "function") {
console.log("SUCCESS: lodash.toplainobject模块成功引入");
process.exit(0);
} else {
console.error("FAILURE: lodash.toplainobject模块引入失败");
process.exit(1);
}
EOF
CHECK_RESULT $? 0 0 "创建测试脚本失败"
# 执行测试脚本
LOG_INFO "执行测试脚本"
node test_require.js
CHECK_RESULT $? 0 0 "测试脚本执行失败无法成功require引入lodash.toplainobject模块"
# 清理测试目录
LOG_INFO "清理测试目录"
cd /
rm -rf /tmp/test_nodejs_lodash
CHECK_RESULT $? 0 0 "清理测试目录失败"
# 如果Node.js是本次脚本安装的则卸载Node.js
if [ "$NODEJS_INSTALLED" = false ]; then
LOG_INFO "卸载Node.js"
dnf remove -y nodejs
CHECK_RESULT $? 0 0 "卸载Node.js失败"
fi
LOG_INFO "测试完成Node.js环境中能够成功require引入lodash.toplainobject模块"
}
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-02-24
# @License : Mulan PSL v2
# @Desc : Check if package is installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否已安装
LOG_INFO "开始检查mesa-demos-help软件包安装状态"
# 定义软件包名称
PACKAGE_NAME="mesa-demos-help"
# 步骤1检查软件包是否在yum源中
LOG_INFO "步骤1检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中"
# 步骤2检查软件包当前安装状态
LOG_INFO "步骤2检查软件包当前安装状态"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
PACKAGE_INSTALLED=$?
if [ $PACKAGE_INSTALLED -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
INITIAL_STATE="installed"
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
INITIAL_STATE="not_installed"
fi
# 步骤3如果未安装则安装软件包
if [ "$INITIAL_STATE" = "not_installed" ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
fi
# 步骤4验证软件包已正确安装
LOG_INFO "步骤4验证软件包已正确安装"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 未正确安装"
# 步骤5检查软件包功能如果有帮助功能
LOG_INFO "步骤5检查软件包功能"
if command -v glxinfo &> /dev/null; then
LOG_INFO "检查glxinfo命令是否可用"
glxinfo --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "glxinfo命令执行失败"
else
LOG_INFO "glxinfo命令不可用跳过功能检查"
fi
# 步骤6环境恢复
LOG_INFO "步骤6恢复环境状态"
if [ "$INITIAL_STATE" = "not_installed" ]; then
LOG_INFO "卸载测试安装的软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 已卸载"
# 验证软件包已卸载
rpm -q $PACKAGE_NAME > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 卸载后仍存在"
exit 1
fi
else
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "测试完成:软件包 $PACKAGE_NAME 安装状态检查通过"
}
main "$@"

View File

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

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试包安装功能
LOG_INFO "开始测试包安装功能"
# 定义软件包名称
PACKAGE_NAME="mesa-demos-help-function"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包已安装,测试后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包未安装,将在测试后卸载"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有软件包: $PACKAGE_NAME"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中未找到软件包: $PACKAGE_NAME"
exit 255
fi
# 安装软件包
LOG_INFO "安装软件包: $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包失败"
# 验证软件包已安装
LOG_INFO "验证软件包已安装"
dnf list installed "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "软件包安装验证失败"
# 检查软件包功能
LOG_INFO "检查软件包功能"
if command -v mesa-demo-help &>/dev/null; then
LOG_INFO "软件包功能检查通过"
else
LOG_INFO "软件包功能检查:未找到特定命令,但包已安装"
fi
# 清理环境
LOG_INFO "清理测试环境"
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包失败"
# 验证软件包已卸载
LOG_INFO "验证软件包已卸载"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "软件包卸载失败"
exit 1
else
LOG_INFO "软件包已成功卸载"
fi
else
LOG_INFO "保持软件包安装状态"
fi
LOG_INFO "测试包安装功能完成"
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : List available demo programs
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试List available demo programs"
# 检查yum源中是否有mesa-demos软件包
LOG_INFO "检查yum源中是否存在mesa-demos软件包"
if ! dnf list available mesa-demos &>/dev/null; then
LOG_ERROR "yum源中未找到mesa-demos软件包"
exit 255
fi
# 判断环境是否已安装mesa-demos
LOG_INFO "检查是否已安装mesa-demos软件包"
if rpm -q mesa-demos &>/dev/null; then
LOG_INFO "mesa-demos已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "mesa-demos未安装将在测试过程中安装"
INSTALLED_BEFORE_TEST=false
fi
# 如果未安装则安装mesa-demos
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装mesa-demos软件包"
dnf install -y mesa-demos
CHECK_RESULT $? 0 0 "安装mesa-demos失败"
fi
# 测试glxinfo命令是否存在
LOG_INFO "检查glxinfo命令是否存在"
if ! command -v glxinfo &>/dev/null; then
LOG_ERROR "glxinfo命令不存在"
exit 255
fi
# 测试glxgears命令是否存在
LOG_INFO "检查glxgears命令是否存在"
if ! command -v glxgears &>/dev/null; then
LOG_ERROR "glxgears命令不存在"
exit 255
fi
# 测试glxgears命令的-help参数是否支持
LOG_INFO "测试glxgears命令的-help参数"
glxgears -help 2>&1 | grep -q "usage"
CHECK_RESULT $? 0 0 "glxgears命令不支持-help参数"
# 测试glxinfo命令的-help参数是否支持
LOG_INFO "测试glxinfo命令的-help参数"
glxinfo -help 2>&1 | grep -q "usage"
CHECK_RESULT $? 0 0 "glxinfo命令不支持-help参数"
# 如果测试前未安装则在测试结束后卸载mesa-demos
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载mesa-demos软件包"
dnf remove -y mesa-demos
CHECK_RESULT $? 0 0 "卸载mesa-demos失败"
fi
LOG_INFO "测试完成List available demo programs"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker命令显示podman命令的概述和可用命令列表
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman-docker
LOG_INFO "检查是否已安装podman-docker软件包"
if dnf list installed podman-docker >/dev/null 2>&1; then
LOG_INFO "podman-docker已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "podman-docker未安装将在测试过程中安装并在结束时卸载"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否有podman-docker软件包"
if ! dnf list available podman-docker >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "安装podman-docker软件包"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 执行docker命令显示podman命令的概述和可用命令列表
LOG_INFO "执行docker命令显示podman命令的概述和可用命令列表"
docker --help
CHECK_RESULT $? 0 0 "执行docker --help命令失败"
# 检查docker命令是否显示podman相关内容
LOG_INFO "验证docker命令输出包含podman相关信息"
docker --help | grep -q "podman"
CHECK_RESULT $? 0 0 "docker命令输出未包含podman相关信息"
# 清理环境如果之前未安装则卸载podman-docker
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "卸载podman-docker软件包"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
LOG_INFO "环境已恢复podman-docker已卸载"
else
LOG_INFO "保持podman-docker安装状态不进行卸载"
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-30
# @License : Mulan PSL v2
# @Desc : 测试 podman-docker 的 docker 命令的 -c 参数,指定远程连接
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman-docker
LOG_INFO "检查是否已安装podman-docker"
if dnf list installed podman-docker &>/dev/null; then
LOG_INFO "podman-docker已安装脚本结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "podman-docker未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否有podman-docker软件包"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 测试docker命令的-c参数
LOG_INFO "测试docker命令的-c参数指定远程连接"
docker -c remote_server ps &>/dev/null
CHECK_RESULT $? 0 0 "docker命令的-c参数不支持或执行失败"
# 清理环境如果脚本开始时未安装则卸载podman-docker
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
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-30
# @License : Mulan PSL v2
# @Desc : 测试 podman-docker 的 docker 命令的 -h 参数,显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman-docker
LOG_INFO "检查是否已安装podman-docker"
if ! dnf list installed podman-docker &>/dev/null; then
LOG_INFO "podman-docker未安装将进行安装"
INSTALLED=0
else
LOG_INFO "podman-docker已安装"
INSTALLED=1
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否有podman-docker软件包"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 测试docker命令的-h参数
LOG_INFO "测试docker命令的-h参数"
docker -h &>/dev/null
CHECK_RESULT $? 0 0 "docker命令的-h参数不支持或执行失败"
# 清理环境如果脚本安装了podman-docker则卸载
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-30
# @License : Mulan PSL v2
# @Desc : 测试 podman-docker 的 docker 命令的 -V 参数,显示版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 podman-docker 的 docker 命令的 -V 参数,显示版本信息"
# 检查是否已安装 podman-docker
LOG_INFO "检查 podman-docker 是否已安装"
if ! dnf list installed podman-docker &>/dev/null; then
LOG_INFO "podman-docker 未安装,将进行安装"
# 检查 yum 源中是否有 podman-docker
LOG_INFO "检查 yum 源中是否有 podman-docker"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum 源中未找到 podman-docker退出测试"
exit 255
fi
# 安装 podman-docker
LOG_INFO "安装 podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装 podman-docker 失败"
else
LOG_INFO "podman-docker 已安装,跳过安装步骤"
fi
# 测试 docker -V 命令
LOG_INFO "测试 docker -V 命令,显示版本信息"
docker -V
CHECK_RESULT $? 0 0 "执行 docker -V 命令失败"
# 清理环境
if ! dnf list installed podman-docker &>/dev/null; then
LOG_INFO "podman-docker 是本次测试安装的,将进行卸载"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载 podman-docker 失败"
else
LOG_INFO "podman-docker 是之前已安装的,无需卸载"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker build命令使用Containerfile中的指令构建镜像
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色和日志函数(假设已存在)
# 使用LOG_INFO和LOG_ERROR打印日志
# 检查是否已经安装podman-docker和docker
LOG_INFO "检查podman-docker和docker是否已安装"
if command -v docker &> /dev/null && rpm -q podman-docker &> /dev/null; then
LOG_INFO "podman-docker和docker已经安装脚本结束后将保持安装状态"
already_installed=true
else
LOG_INFO "podman-docker和docker未安装将在测试步骤中安装"
already_installed=false
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否有podman-docker软件包"
if ! dnf list available podman-docker &> /dev/null; then
LOG_ERROR "yum源中没有podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ "$already_installed" = false ]; then
LOG_INFO "安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 检查docker命令是否存在
LOG_INFO "检查docker命令是否存在"
if ! command -v docker &> /dev/null; then
LOG_ERROR "docker命令不存在"
exit 255
fi
# 检查docker build命令参数支持
LOG_INFO "检查docker build命令参数支持"
docker build --help | grep -q "Usage:"
CHECK_RESULT $? 0 0 "docker build命令参数不支持"
# 准备Containerfile内容
LOG_INFO "准备Containerfile内容"
cat > /tmp/Containerfile << "EOF"
FROM alpine:latest
RUN echo "Hello, OpenEuler!" > /tmp/hello.txt
EOF
CHECK_RESULT $? 0 0 "创建Containerfile失败"
# 执行docker build命令构建镜像
LOG_INFO "执行docker build命令构建镜像"
docker build -t test-image:latest -f /tmp/Containerfile /tmp
CHECK_RESULT $? 0 0 "docker build构建镜像失败"
# 检查构建的镜像是否存在
LOG_INFO "检查构建的镜像是否存在"
docker images | grep -q "test-image"
CHECK_RESULT $? 0 0 "构建的镜像不存在"
# 清理构建的镜像
LOG_INFO "清理构建的镜像"
docker rmi test-image:latest
CHECK_RESULT $? 0 0 "清理构建的镜像失败"
# 清理Containerfile文件
LOG_INFO "清理Containerfile文件"
rm -f /tmp/Containerfile
CHECK_RESULT $? 0 0 "清理Containerfile文件失败"
# 如果脚本开始时未安装则卸载podman-docker
if [ "$already_installed" = false ]; then
LOG_INFO "卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
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 : 测试使用 -c 参数指定连接远程 Podman 服务
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman-docker
LOG_INFO "检查是否已安装podman-docker"
rpm -q podman-docker > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "podman-docker已安装"
else
installed=false
LOG_INFO "podman-docker未安装"
fi
# 检查yum源中是否存在podman-docker
LOG_INFO "检查yum源中是否存在podman-docker"
dnf list available podman-docker > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在podman-docker"
exit 255
fi
# 如果未安装则安装podman-docker作为测试步骤
if [ "$installed" = false ]; then
LOG_INFO "开始安装podman-docker"
dnf install -y podman-docker > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 测试使用 -c 参数指定连接远程 Podman 服务
LOG_INFO "测试使用 -c 参数指定连接远程 Podman 服务"
docker -c remote_podman info > /dev/null 2>&1
CHECK_RESULT $? 0 0 "-c 参数不支持或连接远程Podman服务失败"
# 恢复环境如果脚本开始时未安装则卸载podman-docker否则保持原状
if [ "$installed" = false ]; then
LOG_INFO "卸载podman-docker"
dnf remove -y podman-docker > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
}
main "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker exec命令在运行中的容器内运行进程
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色变量
LOG_INFO() {
echo -e "\033[32m[INFO]\033[0m $1"
}
LOG_ERROR() {
echo -e "\033[31m[ERROR]\033[0m $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
}
# 检查命令参数是否支持
check_command_option() {
local command=$1
local option=$2
$command --help 2>&1 | grep -q "$option"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $command 不支持参数 $option"
exit 255
fi
}
# 主函数
main() {
LOG_INFO "开始测试docker exec命令"
# 检查是否已安装podman-docker
LOG_INFO "检查podman-docker是否已安装"
if rpm -q podman-docker &> /dev/null; then
LOG_INFO "podman-docker已安装测试后保持安装状态"
already_installed=true
else
LOG_INFO "podman-docker未安装将在测试中安装"
already_installed=false
# 检查软件包是否在yum源中
LOG_INFO "检查podman-docker是否在yum源中"
check_package_in_repo "podman-docker"
# 安装podman-docker
LOG_INFO "安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 检查docker命令是否存在
LOG_INFO "检查docker命令是否存在"
which docker &> /dev/null
CHECK_RESULT $? 0 0 "docker命令不存在"
# 检查docker exec参数是否支持
LOG_INFO "检查docker exec命令参数是否支持"
check_command_option "docker exec" "-it"
# 启动一个测试容器
LOG_INFO "启动测试容器"
docker run -d --name test_container alpine sleep 3600
CHECK_RESULT $? 0 0 "启动测试容器失败"
# 等待容器启动
sleep 2
# 检查容器是否在运行
LOG_INFO "检查测试容器是否在运行"
docker ps | grep -q test_container
CHECK_RESULT $? 0 0 "测试容器未运行"
# 测试docker exec命令
LOG_INFO "执行docker exec命令在容器内运行进程"
docker exec test_container echo "Hello from container"
CHECK_RESULT $? 0 0 "docker exec命令执行失败"
# 测试docker exec -it命令模拟交互式
LOG_INFO "测试docker exec -it命令"
echo "echo "Interactive test"" | docker exec -i test_container sh
CHECK_RESULT $? 0 0 "docker exec -it命令执行失败"
# 清理测试容器
LOG_INFO "清理测试容器"
docker stop test_container
docker rm test_container
# 如果测试前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
fi
LOG_INFO "docker exec命令测试完成"
}
# 执行主函数
main
}
main "$@"

View File

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

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker images命令列出本地存储的镜像
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装podman-docker
LOG_INFO "检查是否已安装podman-docker"
if dnf list installed podman-docker 2>/dev/null | grep -q podman-docker; then
LOG_INFO "podman-docker已安装标记为保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "podman-docker未安装"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否有podman-docker软件包"
if ! dnf list available podman-docker 2>/dev/null | grep -q podman-docker; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 检查docker images命令是否存在
LOG_INFO "检查docker images命令是否存在"
if ! command -v docker &> /dev/null; then
LOG_ERROR "docker命令不存在"
exit 255
fi
# 检查docker images命令是否支持
LOG_INFO "检查docker images命令是否支持"
docker images --help &>/dev/null
CHECK_RESULT $? 0 0 "docker images命令不支持"
# 执行docker images命令列出本地存储的镜像
LOG_INFO "执行docker images命令列出本地存储的镜像"
docker images
CHECK_RESULT $? 0 0 "执行docker images命令失败"
# 环境清理如果之前未安装则卸载podman-docker
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "清理环境卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
else
LOG_INFO "保持podman-docker安装状态"
fi
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker info命令显示podman系统信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试执行docker info命令显示podman系统信息"
LOG_INFO "步骤1检查是否已安装podman-docker"
if command -v docker &> /dev/null; then
LOG_INFO "podman-docker已安装记录状态以便后续恢复"
INSTALLED=true
else
LOG_INFO "podman-docker未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否存在podman-docker软件包"
if ! dnf list available podman-docker &> /dev/null; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装podman-docker软件包"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
LOG_INFO "步骤4检查docker info命令是否支持"
if ! docker info --help &> /dev/null; then
LOG_ERROR "docker info命令参数不支持"
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理卸载podman-docker软件包"
dnf remove -y podman-docker
fi
exit 255
fi
LOG_INFO "步骤5执行docker info命令"
docker info
CHECK_RESULT $? 0 0 "执行docker info命令失败"
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤6清理环境卸载podman-docker软件包"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
else
LOG_INFO "步骤6保持原有安装状态不进行卸载"
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-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker inspect命令显示指定对象如容器的配置信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="podman-docker"
LOG_FILE="/tmp/test_podman-docker_docker_inspect.log"
# 清理日志文件
> "$LOG_FILE"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在$PACKAGE_NAME软件包"
dnf list available "$PACKAGE_NAME" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在$PACKAGE_NAME软件包"
exit 255
fi
# 检查环境是否已安装
LOG_INFO "检查环境是否已安装$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" &>> "$LOG_FILE"
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
fi
# 检查docker命令是否存在
LOG_INFO "检查docker命令是否存在"
docker --help &>/dev/null
CHECK_RESULT $? 0 0 "docker命令不存在"
# 检查docker inspect命令参数支持
LOG_INFO "检查docker inspect命令参数支持"
docker inspect --help | grep -q "inspect"
CHECK_RESULT $? 0 255 "docker inspect命令参数不存在或不支持"
# 创建测试容器
LOG_INFO "创建测试容器"
docker run -d --name test_inspect_container busybox sleep 3600 &>> "$LOG_FILE"
CHECK_RESULT $? 0 0 "创建测试容器失败"
# 执行docker inspect命令
LOG_INFO "执行docker inspect命令"
docker inspect test_inspect_container &>> "$LOG_FILE"
CHECK_RESULT $? 0 0 "docker inspect命令执行失败"
# 清理测试容器
LOG_INFO "清理测试容器"
docker stop test_inspect_container &>> "$LOG_FILE"
docker rm test_inspect_container &>> "$LOG_FILE"
CHECK_RESULT $? 0 0 "清理测试容器失败"
# 环境恢复
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载$PACKAGE_NAME软件包"
dnf remove -y "$PACKAGE_NAME" &>> "$LOG_FILE"
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
else
LOG_INFO "保持$PACKAGE_NAME安装状态"
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 : 测试使用 --log-level 参数设置日志级别
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 podman-docker 的 --log-level 参数设置日志级别功能"
# 检查是否已安装 podman-docker
if ! dnf list installed podman-docker &>/dev/null; then
LOG_INFO "环境中未安装 podman-docker将进行安装"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum 源中未找到 podman-docker 软件包"
exit 255
fi
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装 podman-docker 失败"
INSTALLED=true
else
LOG_INFO "环境中已安装 podman-docker"
INSTALLED=false
fi
# 测试 --log-level 参数
LOG_INFO "测试 --log-level 参数设置日志级别"
podman-docker --log-level=debug info &>/dev/null
CHECK_RESULT $? 0 0 "--log-level=debug 参数不支持或执行失败"
podman-docker --log-level=info info &>/dev/null
CHECK_RESULT $? 0 0 "--log-level=info 参数不支持或执行失败"
podman-docker --log-level=warn info &>/dev/null
CHECK_RESULT $? 0 0 "--log-level=warn 参数不支持或执行失败"
podman-docker --log-level=error info &>/dev/null
CHECK_RESULT $? 0 0 "--log-level=error 参数不支持或执行失败"
# 清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "清理环境,卸载 podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载 podman-docker 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,111 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker logs命令获取一个或多个容器的日志
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试docker logs命令功能"
LOG_INFO "检查测试环境是否已安装podman-docker软件包"
# 检查podman-docker是否已安装
if dnf list installed podman-docker &>/dev/null; then
LOG_INFO "检测到podman-docker已安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "未检测到podman-docker安装将在测试过程中安装"
already_installed=false
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否存在podman-docker软件包"
dnf list available podman-docker &>/dev/null
CHECK_RESULT $? 0 0 "yum源中未找到podman-docker软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ "$already_installed" = "false" ]; then
LOG_INFO "安装podman-docker软件包"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 检查docker命令是否存在
LOG_INFO "检查docker命令是否可用"
docker --version &>/dev/null
CHECK_RESULT $? 0 0 "docker命令不可用"
# 启动测试容器
LOG_INFO "启动测试容器"
docker run -d --name test_container1 busybox sh -c "for i in {1..5}; do echo "日志消息 $i"; sleep 1; done"
CHECK_RESULT $? 0 0 "启动第一个测试容器失败"
docker run -d --name test_container2 busybox sh -c "for i in {1..3}; do echo "第二个容器日志 $i"; sleep 2; done"
CHECK_RESULT $? 0 0 "启动第二个测试容器失败"
# 等待容器生成一些日志
LOG_INFO "等待容器生成日志"
sleep 6
# 测试获取单个容器日志
LOG_INFO "测试获取单个容器日志"
docker logs test_container1
CHECK_RESULT $? 0 0 "获取单个容器日志失败"
# 测试获取多个容器日志
LOG_INFO "测试获取多个容器日志"
docker logs test_container1 test_container2
CHECK_RESULT $? 0 0 "获取多个容器日志失败"
# 测试不存在的容器日志
LOG_INFO "测试获取不存在容器的日志"
docker logs nonexistent_container 2>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "获取不存在容器的日志应该失败"
exit 255
fi
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
docker logs --invalid-param test_container1 2>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "不支持的参数应该导致命令失败"
exit 255
fi
# 清理测试容器
LOG_INFO "清理测试容器"
docker stop test_container1 test_container2 2>/dev/null
docker rm test_container1 test_container2 2>/dev/null
# 如果测试前未安装则卸载podman-docker
if [ "$already_installed" = "false" ]; then
LOG_INFO "卸载podman-docker软件包"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
else
LOG_INFO "保持podman-docker安装状态"
fi
LOG_INFO "docker logs命令功能测试完成"
}
main "$@"

View File

@@ -1,158 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker pull命令从注册表拉取镜像
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出(可选,但通常测试框架会提供)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 检查软件包是否在yum源中存在
check_package_in_repo() {
local package=$1
LOG_INFO "检查yum源中是否存在软件包: $package"
dnf list available "$package" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在软件包: $package"
exit 255
fi
LOG_INFO "软件包 $package 存在于yum源中"
}
# 检查命令参数是否存在
check_command_param() {
local command=$1
local param=$2
LOG_INFO "检查命令 $command 是否支持参数: $param"
if ! $command --help 2>/dev/null | grep -q -- "$param"; then
LOG_ERROR "命令 $command 不支持参数: $param"
exit 255
fi
LOG_INFO "命令 $command 支持参数: $param"
}
# 检查命令执行结果
check_command_result() {
local result=$1
local expected=$2
local error_msg=$3
if [ $result -ne $expected ]; then
LOG_ERROR "$error_msg"
exit $result
fi
}
# 检查是否已安装podman-docker或docker
check_installed() {
LOG_INFO "检查是否已安装podman-docker或docker"
if command -v docker &>/dev/null; then
LOG_INFO "docker已安装"
return 0
elif command -v podman &>/dev/null && podman --help 2>/dev/null | grep -q "docker"; then
LOG_INFO "podman-docker已安装"
return 0
else
LOG_INFO "未安装podman-docker或docker"
return 1
fi
}
# 安装podman-docker
install_podman_docker() {
LOG_INFO "开始安装podman-docker"
check_package_in_repo "podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
LOG_INFO "podman-docker安装成功"
}
# 卸载podman-docker
uninstall_podman_docker() {
LOG_INFO "开始卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
LOG_INFO "podman-docker卸载成功"
}
# 测试docker pull命令
test_docker_pull() {
local test_image="busybox:latest"
LOG_INFO "测试docker pull命令拉取镜像: $test_image"
# 检查docker pull命令是否存在
if ! command -v docker &>/dev/null; then
LOG_ERROR "docker命令不存在"
exit 1
fi
# 检查pull参数是否支持
check_command_param "docker" "pull"
# 执行docker pull命令
LOG_INFO "执行命令: docker pull $test_image"
docker pull "$test_image"
CHECK_RESULT $? 0 0 "docker pull命令执行失败"
# 验证镜像是否拉取成功
LOG_INFO "验证镜像是否拉取成功"
docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${test_image}$"
CHECK_RESULT $? 0 0 "镜像拉取成功后未在本地镜像列表中找到"
LOG_INFO "镜像 $test_image 拉取成功"
# 清理测试镜像
LOG_INFO "清理测试镜像: $test_image"
docker rmi "$test_image"
CHECK_RESULT $? 0 0 "清理测试镜像失败"
LOG_INFO "测试镜像清理成功"
}
# 主函数
main() {
LOG_INFO "开始测试docker pull命令"
# 检查是否已安装
local need_cleanup=0
if ! check_installed; then
need_cleanup=1
install_podman_docker
fi
# 执行测试
test_docker_pull
# 环境恢复
if [ $need_cleanup -eq 1 ]; then
uninstall_podman_docker
fi
LOG_INFO "测试完成,环境已恢复"
}
# 执行主函数
main
}
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 : 测试使用 --remote 参数访问远程 Podman 服务
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman-docker和docker-remote
LOG_INFO "检查是否已安装podman-docker和docker-remote"
if ! dnf list installed podman-docker &> /dev/null || ! dnf list installed docker-remote &> /dev/null; then
LOG_INFO "未安装podman-docker或docker-remote开始安装"
# 检查yum源中是否有podman-docker和docker-remote
if ! dnf list available podman-docker &> /dev/null; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
if ! dnf list available docker-remote &> /dev/null; then
LOG_ERROR "yum源中未找到docker-remote软件包"
exit 255
fi
# 安装软件包
dnf install -y podman-docker docker-remote
CHECK_RESULT $? 0 0 "安装podman-docker和docker-remote失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "podman-docker和docker-remote已安装"
NEED_UNINSTALL=0
fi
# 测试使用--remote参数访问远程Podman服务
LOG_INFO "测试使用--remote参数访问远程Podman服务"
if ! podman --remote --help &> /dev/null; then
LOG_ERROR "--remote参数不支持或命令执行失败"
exit 255
fi
# 清理环境
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "清理环境卸载podman-docker和docker-remote"
dnf remove -y podman-docker docker-remote
CHECK_RESULT $? 0 0 "卸载podman-docker和docker-remote失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker rm命令移除一个或多个容器
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试执行docker rm命令移除一个或多个容器"
# 检查是否已安装podman-docker或docker
LOG_INFO "检查是否已安装podman-docker或docker"
if command -v docker &> /dev/null; then
LOG_INFO "docker已安装"
installed=true
elif dnf list installed podman-docker &> /dev/null; then
LOG_INFO "podman-docker已安装"
installed=true
else
LOG_INFO "未安装docker或podman-docker将在测试中安装podman-docker"
installed=false
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否有podman-docker软件包"
if ! dnf list available podman-docker &> /dev/null; then
LOG_ERROR "yum源中没有podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ "$installed" = false ]; then
LOG_INFO "安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 启动一个测试容器用于移除测试
LOG_INFO "启动一个测试容器用于移除测试"
docker run -d --name test_rm_container busybox sleep 3600
CHECK_RESULT $? 0 0 "启动测试容器失败"
# 执行docker rm命令移除容器
LOG_INFO "执行docker rm命令移除容器"
docker rm -f test_rm_container
CHECK_RESULT $? 0 0 "移除容器失败"
# 验证容器是否已移除
LOG_INFO "验证容器是否已移除"
if docker ps -a | grep -q test_rm_container; then
LOG_ERROR "容器移除失败"
exit 1
else
LOG_INFO "容器移除成功"
fi
# 环境恢复如果测试前未安装则卸载podman-docker
if [ "$installed" = false ]; then
LOG_INFO "卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker run命令在新容器中运行命令
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装podman-docker
LOG_INFO "检查podman-docker是否已安装"
if dnf list installed podman-docker &>/dev/null; then
LOG_INFO "podman-docker已安装测试结束后将保持安装状态"
INSTALLED="true"
else
LOG_INFO "podman-docker未安装将在测试中安装"
INSTALLED="false"
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否存在podman-docker软件包"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装podman-docker软件包"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 检查docker命令是否存在
LOG_INFO "检查docker命令是否存在"
if ! command -v docker &>/dev/null; then
LOG_ERROR "docker命令不存在"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载podman-docker"
dnf remove -y podman-docker
fi
exit 255
fi
# 检查docker run命令是否支持
LOG_INFO "检查docker run命令是否支持"
docker run --help &>/dev/null
CHECK_RESULT $? 0 0 "docker run命令不支持"
# 测试docker run命令在新容器中运行命令
LOG_INFO "执行docker run命令在新容器中运行命令"
docker run --rm alpine echo "Hello from container"
CHECK_RESULT $? 0 0 "docker run命令执行失败"
# 清理环境
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
else
LOG_INFO "保持podman-docker安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,120 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 执行docker stop命令停止一个或多个容器
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman-docker或docker
if dnf list installed podman-docker &>/dev/null; then
LOG_INFO "环境已安装podman-docker测试结束后将保持安装状态"
already_installed=1
elif dnf list installed docker &>/dev/null; then
LOG_INFO "环境已安装docker测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "环境未安装podman-docker或docker将在测试前安装podman-docker"
already_installed=0
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否存在podman-docker软件包"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ $already_installed -eq 0 ]; then
LOG_INFO "开始安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
LOG_INFO "podman-docker安装成功"
fi
# 启动docker服务
LOG_INFO "启动docker服务"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
# 拉取一个测试镜像
LOG_INFO "拉取busybox测试镜像"
docker pull busybox
CHECK_RESULT $? 0 0 "拉取busybox镜像失败"
# 创建并启动一个测试容器
LOG_INFO "创建并启动测试容器test-container-1"
docker run -d --name test-container-1 busybox sleep 300
CHECK_RESULT $? 0 0 "启动容器test-container-1失败"
# 创建并启动第二个测试容器
LOG_INFO "创建并启动测试容器test-container-2"
docker run -d --name test-container-2 busybox sleep 300
CHECK_RESULT $? 0 0 "启动容器test-container-2失败"
# 测试停止单个容器
LOG_INFO "测试停止单个容器test-container-1"
docker stop test-container-1
CHECK_RESULT $? 0 0 "停止容器test-container-1失败"
# 检查容器是否已停止
LOG_INFO "检查容器test-container-1是否已停止"
docker inspect -f "{{.State.Status}}" test-container-1 | grep -q exited
CHECK_RESULT $? 0 0 "容器test-container-1未正确停止"
# 测试停止多个容器
LOG_INFO "测试停止多个容器test-container-2"
docker stop test-container-2
CHECK_RESULT $? 0 0 "停止容器test-container-2失败"
# 检查第二个容器是否已停止
LOG_INFO "检查容器test-container-2是否已停止"
docker inspect -f "{{.State.Status}}" test-container-2 | grep -q exited
CHECK_RESULT $? 0 0 "容器test-container-2未正确停止"
# 清理测试容器
LOG_INFO "清理测试容器"
docker rm test-container-1 test-container-2
CHECK_RESULT $? 0 0 "删除测试容器失败"
# 清理测试镜像
LOG_INFO "清理测试镜像"
docker rmi busybox
CHECK_RESULT $? 0 0 "删除busybox镜像失败"
# 如果测试前未安装则卸载podman-docker
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
LOG_INFO "podman-docker卸载成功"
else
LOG_INFO "保持podman-docker安装状态"
fi
# 如果测试前未安装停止docker服务
if [ $already_installed -eq 0 ]; then
LOG_INFO "停止docker服务"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

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

View File

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

View File

@@ -1,62 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-05
# @License : Mulan PSL v2
# @Desc : 测试 podman-docker 的 docker images 命令,列出镜像
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本test_podman-docker_function_images
LOG_INFO "开始测试 podman-docker 的 docker images 命令,列出镜像"
# 检查是否已安装 podman-docker
LOG_INFO "检查 podman-docker 是否已安装"
if ! dnf list installed podman-docker &>/dev/null; then
LOG_INFO "podman-docker 未安装,开始安装"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum 源中未找到 podman-docker 软件包"
exit 255
fi
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装 podman-docker 失败"
INSTALLED=1
else
LOG_INFO "podman-docker 已安装"
INSTALLED=0
fi
# 检查 docker images 命令是否可用
LOG_INFO "检查 docker images 命令是否可用"
if ! command -v docker &>/dev/null; then
LOG_ERROR "docker 命令不存在"
exit 255
fi
# 执行 docker images 命令
LOG_INFO "执行 docker images 命令列出镜像"
docker images
CHECK_RESULT $? 0 0 "执行 docker images 命令失败"
# 清理环境:如果脚本安装了 podman-docker则卸载
if [ "$INSTALLED" -eq 1 ]; then
LOG_INFO "卸载 podman-docker"
dnf remove -y podman-docker
CHECK_RESULT $?,
}
main "$@"

View File

@@ -1,109 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 测试软件包podman-docker的安装功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试软件包podman-docker的安装功能
LOG_INFO "开始测试podman-docker软件包安装功能"
# 步骤1检查当前是否已安装podman-docker
LOG_INFO "步骤1检查当前是否已安装podman-docker"
rpm -q podman-docker > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到podman-docker已安装测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "检测到podman-docker未安装"
already_installed=0
fi
# 步骤2检查yum源中是否有podman-docker软件包
LOG_INFO "步骤2检查yum源中是否有podman-docker软件包"
dnf list available podman-docker > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到podman-docker软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 步骤3如果未安装则安装podman-docker软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3安装podman-docker软件包"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
# 验证安装是否成功
LOG_INFO "验证podman-docker安装是否成功"
rpm -q podman-docker > /dev/null 2>&1
CHECK_RESULT $? 0 0 "podman-docker安装后验证失败"
fi
# 步骤4检查podman-docker命令参数支持情况
LOG_INFO "步骤4检查podman-docker命令参数支持情况"
podman --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "podman命令不存在或不支持"
if [ $? -ne 0 ]; then
LOG_ERROR "podman命令不存在或不支持"
exit 255
fi
# 步骤5测试podman基本功能
LOG_INFO "步骤5测试podman基本功能"
podman version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "podman version命令执行失败"
podman info > /dev/null 2>&1
CHECK_RESULT $? 0 0 "podman info命令执行失败"
# 步骤6测试docker兼容性功能
LOG_INFO "步骤6测试docker兼容性功能"
# 检查docker命令是否可用通过podman-docker提供的docker别名
docker --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "docker命令可用执行简单测试"
docker version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker version命令执行失败"
else
LOG_INFO "docker命令不可用跳过docker兼容性测试"
fi
# 步骤7清理环境恢复到之前状态
LOG_INFO "步骤7清理环境恢复到之前状态"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载测试期间安装的podman-docker软件包"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
# 验证卸载是否成功
rpm -q podman-docker > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "podman-docker卸载后仍然存在"
exit 1
else
LOG_INFO "podman-docker卸载成功"
fi
else
LOG_INFO "测试前已安装podman-docker保持安装状态不变"
fi
LOG_INFO "podman-docker安装功能测试完成"
}
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 : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 测试从仓库拉取镜像
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:从仓库拉取镜像"
LOG_INFO "步骤1检查是否已安装podman和docker"
if command -v podman > /dev/null 2>&1 && command -v docker > /dev/null 2>&1; then
LOG_INFO "podman和docker已安装跳过安装步骤"
INSTALLED=1
else
LOG_INFO "podman和docker未安装开始安装"
INSTALLED=0
LOG_INFO "步骤2检查yum源中是否有podman和docker软件包"
dnf list available podman docker --quiet > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中缺少podman或docker软件包"
LOG_INFO "步骤3安装podman和docker"
dnf install -y podman docker
CHECK_RESULT $? 0 0 "安装podman和docker失败"
fi
LOG_INFO "步骤4测试podman拉取镜像"
podman pull hello-world
CHECK_RESULT $? 0 0 "podman拉取镜像失败"
LOG_INFO "步骤5测试docker拉取镜像"
docker pull hello-world
CHECK_RESULT $? 0 0 "docker拉取镜像失败"
LOG_INFO "步骤6清理测试环境"
podman rmi hello-world
docker rmi hello-world
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤7卸载安装的podman和docker"
dnf remove -y podman docker
CHECK_RESULT $? 0 0 "卸载podman和docker失败"
else
LOG_INFO "保持podman和docker安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,113 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-05
# @License : Mulan PSL v2
# @Desc : 测试 podman-docker 的 docker rm 命令,删除容器
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 podman-docker 的 docker rm 命令,删除容器
# 检查软件包是否存在于yum源中
check_package_existence() {
LOG_INFO "检查软件包 $1 是否存在于yum源中"
dnf list available "$1" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $1 不存在于yum源中"
exit 255
fi
}
# 安装软件包
install_package() {
LOG_INFO "安装软件包 $1"
dnf install -y "$1"
CHECK_RESULT $? 0 0 "安装软件包 $1 失败"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载软件包 $1"
dnf remove -y "$1"
CHECK_RESULT $? 0 0 "卸载软件包 $1 失败"
}
# 检查命令是否存在
check_command() {
LOG_INFO "检查命令 $1 是否存在"
command -v "$1" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $1 不存在"
exit 255
fi
}
# main函数
main() {
# Step1: 检查podman-docker是否已安装
LOG_INFO "Step1: 检查podman-docker是否已安装"
if ! command -v podman &>/dev/null; then
LOG_INFO "podman-docker未安装开始安装"
check_package_existence podman-docker
install_package podman-docker
# Step2: 启动podman服务
LOG_INFO "Step2: 启动podman服务"
systemctl start podman
CHECK_RESULT $? 0 0 "启动podman服务失败"
# Step3: 创建测试容器
LOG_INFO "Step3: 创建测试容器"
podman run --name test_container -d alpine sleep 3600 &>/dev/null
CHECK_RESULT $? 0 0 "创建测试容器失败"
# Step4: 删除容器并验证
LOG_INFO "Step4 :删除容器并验证"
podman rm test_container &>/dev/null
CHECK_RESULT $? 00 00"删除容器失败"
# Step5 :停止并清理podman服务仅当之前未安装时
LOG_INFO “Step5 :停止并清理podman服务”
systemctl stop podman &>/dev/null
CHECK_RESULT $? 00 00"停止podmna服务失败"
# Step6 :卸载podmna-docker仅当之前未安装时
uninstall_package podmna-docke
else
#如果已经安装了,则只执行测试步骤
##创建和刪除容器
##創建測試容器
log_info “創建測試容器”
podmna run --name test_continer -d alpine sleep360 &> /dev / null
check_result $$ ?? ?? “創建測試容器失敗”
##刪除並驗證
log_info “刪除並驗證”
podmna rm test_continer &> / dev / null
check_result $$ ?? ?? “刪除失敗”
fi
}
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 : 2025-12-05
# @License : Mulan PSL v2
# @Desc : 测试 podman-docker 的 docker rmi 命令,删除镜像
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装podman-docker
LOG_INFO "检查是否已安装podman-docker"
if ! dnf list installed podman-docker &>/dev/null; then
LOG_INFO "podman-docker未安装将进行安装"
INSTALLED=0
else
LOG_INFO "podman-docker已安装"
INSTALLED=1
fi
# 检查yum源中是否有podman-docker软件包
LOG_INFO "检查yum源中是否有podman-docker软件包"
if ! dnf list available podman-docker &>/dev/null; then
LOG_ERROR "yum源中未找到podman-docker软件包"
exit 255
fi
# 如果未安装则安装podman-docker
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装podman-docker"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
fi
# 拉取测试镜像
LOG_INFO "拉取测试镜像busybox"
podman pull busybox
CHECK_RESULT $? 0 0 "拉取busybox镜像失败"
# 检查镜像是否存在
LOG_INFO "检查busybox镜像是否存在"
podman images | grep busybox &>/dev/null
CHECK_RESULT $? 0 0 "busybox镜像不存在"
# 删除镜像测试
LOG_INFO "测试docker rmi命令删除busybox镜像"
podman rmi busybox
CHECK_RESULT $? 0 0 "删除busybox镜像失败"
# 再次检查镜像是否已删除
LOG_INFO "检查busybox镜像是否已删除"
if podman images | grep busybox &>/dev/null; then
LOG_ERROR "busybox镜像未被成功删除"
exit 1
fi
# 环境恢复如果脚本开始时未安装podman-docker则卸载它
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载podman-docker以恢复环境"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 测试运行hello-world容器
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装podman和docker
LOG_INFO "检查是否已经安装podman和docker"
rpm -q podman docker > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "podman和docker已经安装标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "podman和docker未安装标记为未安装状态"
INSTALLED="false"
fi
# 检查yum源中是否有podman和docker软件包
LOG_INFO "检查yum源中是否有podman和docker软件包"
dnf list available podman docker > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有podman或docker软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有podman或docker软件包"
exit 255
fi
# 如果未安装则安装podman和docker
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "开始安装podman和docker"
dnf install -y podman docker > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装podman和docker失败"
LOG_INFO "podman和docker安装成功"
fi
# 测试运行hello-world容器
LOG_INFO "测试运行hello-world容器"
podman run --rm hello-world > /dev/null 2>&1
CHECK_RESULT $? 0 0 "运行hello-world容器失败"
LOG_INFO "hello-world容器运行成功"
# 测试docker运行hello-world容器
LOG_INFO "测试docker运行hello-world容器"
docker run --rm hello-world > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker运行hello-world容器失败"
LOG_INFO "docker hello-world容器运行成功"
# 如果之前未安装则卸载podman和docker
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载podman和docker"
dnf remove -y podman docker > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载podman和docker失败"
LOG_INFO "podman和docker卸载成功"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,118 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 测试软件包podman-docker的卸载功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出函数(兼容性处理)
LOG_INFO() {
echo -e "\033[32m[INFO]\033[0m $1"
}
LOG_ERROR() {
echo -e "\033[31m[ERROR]\033[0m $1"
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local pkg=$1
LOG_INFO "检查yum源中是否存在软件包: $pkg"
dnf list available "$pkg" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在软件包: $pkg"
exit 255
fi
}
# 检查命令参数是否支持
check_command_option() {
local cmd=$1
local option=$2
LOG_INFO "检查命令 $cmd 是否支持参数 $option"
$cmd $option --help &>/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $cmd 不支持参数 $option"
exit 255
fi
}
# 安装状态标记
PODMAN_DOCKER_INSTALLED=false
# 步骤1检查当前环境是否已安装podman-docker
LOG_INFO "步骤1检查当前环境是否已安装podman-docker"
if rpm -q podman-docker &>/dev/null; then
LOG_INFO "检测到podman-docker已安装"
PODMAN_DOCKER_INSTALLED=true
else
LOG_INFO "未检测到podman-docker安装"
fi
# 步骤2检查yum源中是否存在podman-docker软件包
LOG_INFO "步骤2检查yum源中是否存在podman-docker软件包"
check_package_in_repo "podman-docker"
# 步骤3如果未安装则安装podman-docker作为测试步骤
if ! $PODMAN_DOCKER_INSTALLED; then
LOG_INFO "步骤3安装podman-docker软件包"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "安装podman-docker失败"
LOG_INFO "podman-docker安装成功"
fi
# 步骤4验证podman-docker基本功能
LOG_INFO "步骤4验证podman-docker基本功能"
podman --version
CHECK_RESULT $? 0 0 "podman命令不可用"
LOG_INFO "podman-docker基本功能验证成功"
# 步骤5检查卸载命令参数支持
LOG_INFO "步骤5检查卸载命令参数支持"
check_command_option "dnf" "remove"
# 步骤6执行卸载操作
LOG_INFO "步骤6执行podman-docker卸载操作"
dnf remove -y podman-docker
CHECK_RESULT $? 0 0 "卸载podman-docker失败"
LOG_INFO "podman-docker卸载成功"
# 步骤7验证卸载结果
LOG_INFO "步骤7验证卸载结果"
if rpm -q podman-docker &>/dev/null; then
LOG_ERROR "podman-docker卸载后仍存在"
exit 1
else
LOG_INFO "podman-docker已成功卸载"
fi
# 步骤8环境恢复
LOG_INFO "步骤8环境恢复"
if $PODMAN_DOCKER_INSTALLED; then
LOG_INFO "重新安装podman-docker以恢复原始状态"
dnf install -y podman-docker
CHECK_RESULT $? 0 0 "重新安装podman-docker失败"
LOG_INFO "环境已恢复至原始安装状态"
else
LOG_INFO "原始环境未安装podman-docker无需恢复"
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 : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test accessing module help or documentation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装python3-meh软件包
LOG_INFO "检查python3-meh软件包是否已安装"
rpm -q python3-meh > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-meh已安装记录当前状态"
INSTALLED=1
else
LOG_INFO "python3-meh未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否存在python3-meh软件包
LOG_INFO "检查yum源中是否存在python3-meh软件包"
dnf list available python3-meh > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python3-meh软件包"
exit 255
fi
# 如果未安装则安装python3-meh软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-meh软件包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "安装python3-meh失败"
fi
# 测试访问模块帮助或文档
LOG_INFO "测试访问python3-meh模块帮助"
python3 -c "import meh; help(meh)" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "访问python3-meh模块帮助失败"
LOG_INFO "测试访问python3-meh模块文档"
python3 -c "import meh; print(meh.__doc__)" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "访问python3-meh模块文档失败"
# 清理环境如果测试前未安装则卸载python3-meh软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-meh软件包"
dnf remove -y python3-meh
CHECK_RESULT $? 0 0 "卸载python3-meh失败"
else
LOG_INFO "保持python3-meh软件包安装状态"
fi
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test importing meh module in Python
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试在Python中导入meh模块"
LOG_INFO "步骤1检查是否已安装python3-meh软件包"
dnf list installed python3-meh > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-meh已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-meh未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否有python3-meh软件包"
dnf list available python3-meh > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到python3-meh软件包"
LOG_INFO "步骤3安装python3-meh软件包"
if [ "$INSTALLED" = false ]; then
dnf install -y python3-meh > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装python3-meh失败"
LOG_INFO "python3-meh安装成功"
else
LOG_INFO "python3-meh已安装跳过安装步骤"
fi
LOG_INFO "步骤4检查python3命令是否支持-c参数"
python3 -c "print("test")" > /dev/null 2>&1
CHECK_RESULT $? 0 255 "python3命令不支持-c参数"
LOG_INFO "步骤5在Python中导入meh模块"
python3 -c "import meh; print("导入meh模块成功")" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "导入meh模块失败"
LOG_INFO "步骤6清理环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-meh软件包"
dnf remove -y python3-meh > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载python3-meh失败"
LOG_INFO "python3-meh卸载成功"
else
LOG_INFO "脚本开始时python3-meh已安装保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test installation of python3-meh package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 步骤1检查yum源中是否存在python3-meh包
LOG_INFO "步骤1检查yum源中是否存在python3-meh包"
if ! dnf list available python3-meh &>/dev/null; then
LOG_ERROR "python3-meh包在yum源中不存在"
exit 255
fi
# 步骤2检查是否已安装python3-meh
LOG_INFO "步骤2检查是否已安装python3-meh"
if rpm -q python3-meh &>/dev/null; then
LOG_INFO "python3-meh已安装标记为已存在"
already_installed=1
else
LOG_INFO "python3-meh未安装标记为未存在"
already_installed=0
fi
# 步骤3如果未安装则安装python3-meh
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3安装python3-meh包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "安装python3-meh失败"
fi
# 步骤4验证python3-meh安装成功
LOG_INFO "步骤4验证python3-meh安装成功"
rpm -q python3-meh
CHECK_RESULT $? 0 0 "验证python3-meh安装失败"
# 步骤5测试python3-meh基本功能
LOG_INFO "步骤5测试python3-meh基本功能"
python3 -c "import meh; print(meh.__version__)" 2>/dev/null || true
# 注意这里不检查结果因为某些版本可能没有__version__属性仅作为功能测试
# 步骤6清理环境如果脚本开始时未安装则卸载python3-meh
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤6清理环境卸载python3-meh包"
dnf remove -y python3-meh
CHECK_RESULT $? 0 0 "卸载python3-meh失败"
LOG_INFO "环境已恢复到初始状态"
else
LOG_INFO "步骤6环境已安装python3-meh保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test querying installed package version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断Python3-meh软件包是否已安装
LOG_INFO "检查Python3-meh软件包是否已安装"
if dnf list installed python3-meh &>/dev/null; then
LOG_INFO "Python3-meh软件包已安装"
INSTALLED=true
else
LOG_INFO "Python3-meh软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在python3-meh软件包
LOG_INFO "检查yum源中是否存在python3-meh软件包"
if ! dnf list available python3-meh &>/dev/null; then
LOG_ERROR "yum源中未找到python3-meh软件包"
exit 255
fi
# 如果未安装则安装python3-meh软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装python3-meh软件包"
dnf install -y python3-meh
CHECK_RESULT $? 0 0 "安装python3-meh软件包失败"
LOG_INFO "python3-meh软件包安装成功"
fi
# 测试查询已安装软件包版本功能
LOG_INFO "测试查询python3-meh软件包版本"
rpm -q python3-meh
CHECK_RESULT $? 0 0 "查询python3-meh软件包版本失败"
# 检查查询结果是否符合预期
VERSION_OUTPUT=$(rpm -q python3-meh)
if [[ "$VERSION_OUTPUT" =~ python3-meh-.* ]]; then
LOG_INFO "版本查询成功: $VERSION_OUTPUT"
else
LOG_ERROR "版本查询结果不符合预期: $VERSION_OUTPUT"
exit 1
fi
# 环境恢复:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "恢复环境卸载python3-meh软件包"
dnf remove -y python3-meh
CHECK_RESULT $? 0 0 "卸载python3-meh软件包失败"
LOG_INFO "环境恢复完成"
else
LOG_INFO "保持python3-meh软件包安装状态"
fi
}
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-04
# @License : Mulan PSL v2
# @Desc : Test the build functionality of python3-pdm-pep517
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在python3-pdm-pep517软件包
LOG_INFO "检查yum源中是否存在python3-pdm-pep517软件包"
dnf list available python3-pdm-pep517 >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-pdm-pep517软件包"
exit 255
fi
# 检查是否已安装python3-pdm-pep517
LOG_INFO "检查是否已安装python3-pdm-pep517"
rpm -q python3-pdm-pep517 >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-pdm-pep517已安装测试完成后将保持安装状态"
INSTALLED=1
else
LOG_INFO "python3-pdm-pep517未安装将在测试完成后卸载"
INSTALLED=0
fi
# 若未安装则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-pdm-pep517软件包"
dnf install -y python3-pdm-pep517
CHECK_RESULT $? 0 0 "安装python3-pdm-pep517失败"
fi
# 测试build功能
LOG_INFO "测试python3-pdm-pep517的build功能"
pdm-pep517 build --help >/dev/null 2>&1
CHECK_RESULT $? 0 0 "pdm-pep517 build命令不支持"
LOG_INFO "执行pdm-pep517 build命令"
pdm-pep517 build
CHECK_RESULT $? 0 0 "执行build功能失败"
# 清理环境:若测试前未安装则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-pdm-pep517软件包"
dnf remove -y python3-pdm-pep517
CHECK_RESULT $? 0 0 "卸载python3-pdm-pep517失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help生成简单图形的核心功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查python-pydot-help是否已安装
LOG_INFO "检查python-pydot-help是否已安装"
rpm -q python-pydot-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python-pydot-help已安装脚本结束后保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "python-pydot-help未安装测试过程中会安装脚本结束后会卸载"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有python-pydot-help软件包
LOG_INFO "检查yum源中是否有python-pydot-help软件包"
dnf list available python-pydot-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有python-pydot-help软件包"
exit 255
fi
# 安装python-pydot-help
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "安装python-pydot-help软件包"
dnf install -y python-pydot-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装python-pydot-help失败"
fi
# 测试python-pydot-help的help命令
LOG_INFO "测试python-pydot-help的help命令"
python-pydot-help --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python-pydot-help --help命令执行失败"
# 测试python-pydot-help生成简单图形的核心功能
LOG_INFO "测试python-pydot-help生成简单图形的核心功能"
python -c "
import pydot
graph = pydot.Dot(graph_type="digraph")
node_a = pydot.Node("Node A", style="filled", fillcolor="red")
node_b = pydot.Node("Node B", style="filled", fillcolor="green")
graph.add_node(node_a)
graph.add_node(node_b)
edge = pydot.Edge(node_a, node_b, label="Edge")
graph.add_edge(edge)
graph.write_png("test_graph.png")
" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "生成简单图形失败"
# 验证生成的图形文件是否存在
LOG_INFO "验证生成的图形文件是否存在"
if [ -f "test_graph.png" ]; then
LOG_INFO "成功生成test_graph.png文件"
rm -f test_graph.png
else
LOG_ERROR "未找到生成的test_graph.png文件"
exit 1
fi
# 清理环境
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载python-pydot-help软件包"
dnf remove -y python-pydot-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载python-pydot-help失败"
else
LOG_INFO "保持python-pydot-help安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help设置图形属性的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-pydot-help设置图形属性的功能"
# 检查是否已安装python3-pydot
LOG_INFO "检查是否已安装python3-pydot"
if rpm -q python3-pydot > /dev/null 2>&1; then
LOG_INFO "python3-pydot已安装"
installed=true
else
LOG_INFO "python3-pydot未安装"
installed=false
fi
# 检查yum源中是否有python3-pydot包
LOG_INFO "检查yum源中是否有python3-pydot包"
if ! dnf list available python3-pydot > /dev/null 2>&1; then
LOG_ERROR "yum源中没有python3-pydot包"
exit 255
fi
# 如果未安装则安装python3-pydot
if [ "$installed" = false ]; then
LOG_INFO "安装python3-pydot"
dnf install -y python3-pydot
CHECK_RESULT $? 0 0 "安装python3-pydot失败"
fi
# 测试python-pydot-help设置图形属性的功能
LOG_INFO "测试python-pydot-help设置图形属性的功能"
python3 -c "
import pydot
graph = pydot.Dot(graph_type="digraph")
graph.set("rankdir", "LR")
graph.set("label", "测试图形")
graph.set("fontsize", "10")
print("图形属性设置成功")
" 2>&1
CHECK_RESULT $? 0 0 "python-pydot-help设置图形属性功能测试失败"
# 如果之前未安装则卸载python3-pydot
if [ "$installed" = false ]; then
LOG_INFO "卸载python3-pydot"
dnf remove -y python3-pydot
CHECK_RESULT $? 0 0 "卸载python3-pydot失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help软件包的安装功能是否正常
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试python-pydot-help软件包安装功能
LOG_INFO "开始测试python-pydot-help软件包的安装功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在python-pydot-help软件包"
dnf list available python-pydot-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python-pydot-help软件包"
exit 255
fi
LOG_INFO "yum源中存在python-pydot-help软件包"
# 检查当前环境是否已安装python-pydot-help
LOG_INFO "检查当前环境是否已安装python-pydot-help"
rpm -q python-pydot-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装python-pydot-help跳过安装步骤"
INSTALLED_BEFORE=true
else
LOG_INFO "环境未安装python-pydot-help开始安装"
INSTALLED_BEFORE=false
fi
# 如果未安装,则执行安装
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "执行python-pydot-help软件包安装"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "python-pydot-help软件包安装失败"
LOG_INFO "python-pydot-help软件包安装成功"
fi
# 验证软件包安装是否成功
LOG_INFO "验证python-pydot-help软件包是否正常安装"
rpm -q python-pydot-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python-pydot-help软件包未正确安装"
# 测试软件包基本功能
LOG_INFO "测试python-pydot-help软件包基本功能"
python3 -c "import pydot" 2>&1 | grep -q "ModuleNotFoundError"
if [ $? -eq 0 ]; then
LOG_ERROR "python-pydot-help软件包功能异常无法导入pydot模块"
exit 1
fi
LOG_INFO "python-pydot-help软件包功能正常"
# 清理环境
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "卸载测试安装的python-pydot-help软件包"
dnf remove -y python-pydot-help
CHECK_RESULT $? 0 0 "python-pydot-help软件包卸载失败"
LOG_INFO "python-pydot-help软件包卸载成功"
else
LOG_INFO "环境已安装python-pydot-help保持安装状态"
fi
LOG_INFO "python-pydot-help软件包安装功能测试完成"
}
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-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help渲染输出图像文件的功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 定义软件包名称
PACKAGE_NAME="python3-pydot"
# 步骤1检查yum源中是否存在指定的软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
exit 255
fi
# 步骤2检查环境是否已经安装该软件包
LOG_INFO "步骤2检查环境是否已经安装软件包 $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已经安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装,并在脚本结束前卸载"
INSTALLED_BEFORE=false
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4测试pydot的help命令参数
LOG_INFO "步骤4测试pydot的help命令参数"
if ! python3 -m pydot -h &>/dev/null; then
LOG_ERROR "pydot的help命令参数不存在或不支持"
exit 255
fi
# 步骤5使用pydot生成一个简单的DOT文件并渲染输出图像
LOG_INFO "步骤5使用pydot生成一个简单的DOT文件并渲染输出图像"
cat > test_graph.dot << "EOF"
digraph G {
A -> B;
A -> C;
B -> D;
C -> D;
}
EOF
python3 -c "
import pydot
graphs = pydot.graph_from_dot_file("test_graph.dot")
graph = graphs[0]
graph.write_png("test_graph.png")
"
CHECK_RESULT $? 0 0 "使用pydot渲染输出图像文件失败"
# 步骤6检查生成的图像文件是否存在
LOG_INFO "步骤6检查生成的图像文件是否存在"
if [ -f "test_graph.png" ]; then
LOG_INFO "图像文件 test_graph.png 生成成功"
else
LOG_ERROR "图像文件 test_graph.png 未生成"
exit 1
fi
# 步骤7清理测试生成的文件
LOG_INFO "步骤7清理测试生成的文件"
rm -f test_graph.dot test_graph.png
# 步骤8如果测试前未安装则在测试结束后卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤8卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
fi
LOG_INFO "测试完成"
}
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-02-24
# @License : Mulan PSL v2
# @Desc : 测试python-pydot-help软件包的卸载功能是否正常
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-pydot-help软件包的卸载功能是否正常"
LOG_INFO "步骤1检查yum源中是否存在python-pydot-help软件包"
if ! dnf list available python-pydot-help &>/dev/null; then
LOG_ERROR "yum源中未找到python-pydot-help软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装python-pydot-help软件包"
if rpm -q python-pydot-help &>/dev/null; then
LOG_INFO "python-pydot-help软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "python-pydot-help软件包未安装将进行安装测试"
INSTALLED_BEFORE=0
LOG_INFO "步骤3安装python-pydot-help软件包"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "安装python-pydot-help软件包失败"
fi
LOG_INFO "步骤4验证python-pydot-help软件包安装成功"
rpm -q python-pydot-help
CHECK_RESULT $? 0 0 "验证python-pydot-help软件包安装失败"
LOG_INFO "步骤5执行python-pydot-help软件包卸载"
dnf remove -y python-pydot-help
CHECK_RESULT $? 0 0 "卸载python-pydot-help软件包失败"
LOG_INFO "步骤6验证python-pydot-help软件包已卸载"
if rpm -q python-pydot-help &>/dev/null; then
LOG_ERROR "python-pydot-help软件包卸载后仍然存在"
CHECK_RESULT 1 0 0 "python-pydot-help软件包卸载验证失败"
else
LOG_INFO "python-pydot-help软件包已成功卸载"
CHECK_RESULT $? 0 0 "python-pydot-help软件包卸载验证失败"
fi
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤7恢复环境重新安装python-pydot-help软件包"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "恢复安装python-pydot-help软件包失败"
else
LOG_INFO "步骤7环境恢复重新安装python-pydot-help软件包"
dnf install -y python-pydot-help
CHECK_RESULT $? 0 0 "重新安装python-pydot-help软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,145 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : Test integration with Samba Active Directory
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expected=$2
local exit_code=$3
local error_msg=$4
if [ "$actual" -eq "$expected" ]; then
LOG_INFO "检查通过"
else
LOG_ERROR "$error_msg"
exit $exit_code
fi
}
# 定义SSH命令函数
SSH_CMD() {
local cmd=$1
local node_ip=$2
local node_password=$3
local node_user=$4
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$node_user"@"$node_ip" "$cmd"
}
# 测试开始
LOG_INFO "开始测试Samba Active Directory集成测试"
# 检查是否已安装Samba AD DC相关软件包
LOG_INFO "检查环境是否已安装Samba AD DC相关软件包"
if rpm -q samba-dc-bind-dlz &>/dev/null; then
LOG_INFO "Samba AD DC相关软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "Samba AD DC相关软件包未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有samba-dc-bind-dlz软件包
LOG_INFO "检查yum源中是否有samba-dc-bind-dlz软件包"
if dnf list available samba-dc-bind-dlz &>/dev/null; then
LOG_INFO "yum源中存在samba-dc-bind-dlz软件包"
else
LOG_ERROR "yum源中不存在samba-dc-bind-dlz软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装samba-dc-bind-dlz软件包"
dnf install -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "安装samba-dc-bind-dlz软件包失败"
fi
# 检查Samba AD DC服务是否正常运行
LOG_INFO "检查Samba AD DC服务是否正常运行"
systemctl is-active samba &>/dev/null
CHECK_RESULT $? 0 0 "Samba AD DC服务未运行"
# 测试Samba AD DC与Bind DLZ的集成
LOG_INFO "测试Samba AD DC与Bind DLZ的集成"
# 检查samba-tool命令是否可用
LOG_INFO "检查samba-tool命令是否可用"
samba-tool --version &>/dev/null
CHECK_RESULT $? 0 0 "samba-tool命令不可用"
# 测试域控制器功能
LOG_INFO "测试域控制器功能"
# 尝试列出域用户(假设域已配置)
LOG_INFO "尝试列出域用户"
samba-tool user list &>/dev/null
# 此命令可能失败如果域未配置,所以不检查结果,仅记录日志
if [ $? -eq 0 ]; then
LOG_INFO "域控制器功能正常"
else
LOG_INFO "域控制器功能测试未完成(可能需要域配置)"
fi
# 测试Bind DLZ集成
LOG_INFO "测试Bind DLZ集成"
# 检查named服务是否运行
LOG_INFO "检查named服务是否运行"
systemctl is-active named &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "named服务正在运行"
# 测试DNS查询
LOG_INFO "测试DNS查询功能"
dig @127.0.0.1 localhost &>/dev/null
CHECK_RESULT $? 0 0 "DNS查询失败"
else
LOG_INFO "named服务未运行跳过DNS查询测试"
fi
# 测试AD集成功能
LOG_INFO "测试AD集成功能"
# 检查Samba AD DC与Bind DLZ的配置集成
LOG_INFO "检查Samba AD DC与Bind DLZ的配置集成"
if [ -f /etc/samba/smb.conf ] && grep -q "dlz" /etc/samba/smb.conf; then
LOG_INFO "Samba配置中包含DLZ设置"
else
LOG_INFO "Samba配置中未找到DLZ设置可能需要手动配置"
fi
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载samba-dc-bind-dlz软件包"
dnf remove -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "卸载samba-dc-bind-dlz软件包失败"
fi
LOG_INFO "测试完成Samba Active Directory集成测试"
}
main "$@"

View File

@@ -1,126 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : Test basic configuration and service startup
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试Samba域控制器bind-dlz功能配置"
# 检查环境是否已安装
LOG_INFO "检查Samba和BIND相关软件包是否已安装"
if dnf list installed samba-dc-bind-dlz 2>/dev/null | grep -q "samba-dc-bind-dlz"; then
INSTALLED="true"
LOG_INFO "检测到samba-dc-bind-dlz已安装"
else
INSTALLED="false"
LOG_INFO "未检测到samba-dc-bind-dlz安装"
fi
# 检查yum源中是否有软件包
LOG_INFO "检查yum源中是否存在samba-dc-bind-dlz软件包"
if ! dnf list available samba-dc-bind-dlz 2>/dev/null | grep -q "samba-dc-bind-dlz"; then
LOG_ERROR "yum源中未找到samba-dc-bind-dlz软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "开始安装samba-dc-bind-dlz软件包"
dnf install -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "安装samba-dc-bind-dlz失败"
LOG_INFO "samba-dc-bind-dlz安装成功"
fi
# 检查samba-tool命令是否存在
LOG_INFO "检查samba-tool命令是否可用"
if ! command -v samba-tool >/dev/null 2>&1; then
LOG_ERROR "samba-tool命令不存在"
exit 255
fi
# 测试基本配置
LOG_INFO "测试Samba域控制器基本配置"
samba-tool domain provision --use-rfc2307 --realm=TESTDOMAIN.COM --domain=TESTDOMAIN --server-role=dc --dns-backend=BIND9_DLZ --adminpass=Passw0rd
CHECK_RESULT $? 0 0 "Samba域控制器配置失败"
# 检查配置文件是否存在
LOG_INFO "检查Samba配置文件"
if [ ! -f /etc/samba/smb.conf ]; then
LOG_ERROR "Samba配置文件不存在"
exit 1
fi
# 测试服务启动
LOG_INFO "启动Samba服务"
systemctl start samba
CHECK_RESULT $? 0 0 "启动Samba服务失败"
LOG_INFO "检查Samba服务状态"
systemctl status samba >/dev/null 2>&1
CHECK_RESULT $? 0 0 "Samba服务未正常运行"
# 测试BIND服务
LOG_INFO "检查BIND服务配置"
if [ ! -f /etc/named.conf ]; then
LOG_ERROR "BIND配置文件不存在"
exit 1
fi
LOG_INFO "启动BIND服务"
systemctl start named
CHECK_RESULT $? 0 0 "启动BIND服务失败"
LOG_INFO "检查BIND服务状态"
systemctl status named >/dev/null 2>&1
CHECK_RESULT $? 0 0 "BIND服务未正常运行"
# 测试DNS解析
LOG_INFO "测试DNS解析功能"
nslookup localhost 127.0.0.1 >/dev/null 2>&1
CHECK_RESULT $? 0 0 "DNS解析测试失败"
# 环境清理
LOG_INFO "开始清理测试环境"
# 停止服务
LOG_INFO "停止Samba服务"
systemctl stop samba 2>/dev/null || true
LOG_INFO "停止BIND服务"
systemctl stop named 2>/dev/null || true
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载samba-dc-bind-dlz软件包"
dnf remove -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "卸载samba-dc-bind-dlz失败"
LOG_INFO "samba-dc-bind-dlz卸载成功"
fi
# 清理配置文件
LOG_INFO "清理配置文件"
rm -rf /etc/samba/smb.conf /etc/samba/smb.conf.bak /var/lib/samba/private /var/lib/samba/sysvol 2>/dev/null || true
rm -rf /etc/named.conf /var/named 2>/dev/null || true
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,135 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : Test DNS resolution functionality via BIND DLZ
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装samba-dc-bind-dlz相关软件包
LOG_INFO "检查samba-dc-bind-dlz相关软件包是否已安装"
rpm -q samba-dc-bind-dlz > /dev/null 2>&1
IS_INSTALLED=$?
# 记录初始安装状态
if [ $IS_INSTALLED -eq 0 ]; then
LOG_INFO "samba-dc-bind-dlz已安装脚本结束时将保持安装状态"
INITIAL_INSTALLED=true
else
LOG_INFO "samba-dc-bind-dlz未安装将在测试过程中安装并在结束时卸载"
INITIAL_INSTALLED=false
fi
# 检查yum源中是否有samba-dc-bind-dlz软件包
LOG_INFO "检查yum源中是否存在samba-dc-bind-dlz软件包"
dnf list available samba-dc-bind-dlz > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到samba-dc-bind-dlz软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INITIAL_INSTALLED" = "false" ]; then
LOG_INFO "安装samba-dc-bind-dlz软件包"
dnf install -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "安装samba-dc-bind-dlz失败"
fi
# 检查bind命令是否存在
LOG_INFO "检查bind命令是否存在"
command -v named > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "bind命令不存在"
exit 255
fi
# 检查bind命令是否支持-dlz参数
LOG_INFO "检查bind命令是否支持DLZ功能"
named -V 2>&1 | grep -i dlz > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "bind命令不支持DLZ功能"
exit 255
fi
# 创建测试配置文件
LOG_INFO "创建BIND DLZ测试配置文件"
cat > /tmp/test-named.conf << EOF
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };
recursion yes;
};
dlz "test zone" {
database "dlopen driver.so args";
};
EOF
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
# 启动BIND服务进行测试
LOG_INFO "启动BIND服务进行DNS解析功能测试"
systemctl stop named > /dev/null 2>&1
named -c /tmp/test-named.conf -g &
BIND_PID=$!
sleep 2
# 检查BIND服务是否成功启动
LOG_INFO "检查BIND服务是否成功启动"
ps -p $BIND_PID > /dev/null 2>&1
CHECK_RESULT $? 0 0 "BIND服务启动失败"
# 测试DNS解析功能
LOG_INFO "测试DNS解析功能"
dig @127.0.0.1 localhost > /tmp/dig_result.txt 2>&1
DIG_RESULT=$?
# 检查dig命令执行结果
if [ $DIG_RESULT -eq 0 ]; then
LOG_INFO "DNS解析功能测试成功"
grep -q "status: NOERROR" /tmp/dig_result.txt
CHECK_RESULT $? 0 0 "DNS查询未返回成功状态"
else
LOG_ERROR "DNS解析功能测试失败"
CHECK_RESULT $DIG_RESULT 0 0 "dig命令执行失败"
fi
# 停止BIND服务
LOG_INFO "停止BIND服务"
kill $BIND_PID 2>/dev/null
wait $BIND_PID 2>/dev/null
# 清理临时文件
LOG_INFO "清理测试临时文件"
rm -f /tmp/test-named.conf /tmp/dig_result.txt
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 如果初始状态未安装,则卸载软件包
if [ "$INITIAL_INSTALLED" = "false" ]; then
LOG_INFO "卸载samba-dc-bind-dlz软件包"
dnf remove -y samba-dc-bind-dlz
CHECK_RESULT $? 0 0 "卸载samba-dc-bind-dlz失败"
LOG_INFO "已恢复到初始未安装状态"
else
LOG_INFO "保持samba-dc-bind-dlz安装状态"
fi
LOG_INFO "DNS解析功能通过BIND DLZ测试完成"
}
main "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : Test package installation and verify successful installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试软件包安装并验证安装成功"
LOG_INFO "检查测试环境是否已安装目标软件包"
# 定义软件包名称
PACKAGE_NAME="samba-dc-bind-dlz"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在软件包$PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包$PACKAGE_NAME"
exit 255
fi
# 检查当前环境是否已安装该软件包
LOG_INFO "检查系统是否已安装软件包:$PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试将验证安装状态,并在结束后保持安装状态"
WAS_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将执行安装步骤作为测试"
WAS_INSTALLED=0
fi
# 如果未安装,则执行安装
if [ $WAS_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装软件包:$PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
fi
# 验证软件包是否正确安装
LOG_INFO "验证软件包 $PACKAGE_NAME 是否成功安装"
rpm -q $PACKAGE_NAME &>/dev/null
CHECK_RESULT $? 0 0 "验证软件包 $PACKAGE_NAME 安装状态失败"
# 测试软件包的基本功能(这里以查询软件包信息为例)
LOG_INFO "测试软件包 $PACKAGE_NAME 的基本功能"
rpm -qi $PACKAGE_NAME &>/dev/null
CHECK_RESULT $? 0 0 "查询软件包 $PACKAGE_NAME 信息失败"
# 如果测试开始时未安装,则在测试结束后卸载
if [ $WAS_INSTALLED -eq 0 ]; then
LOG_INFO "测试完成,开始清理环境:卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 已成功卸载,环境已恢复"
else
LOG_INFO "测试完成,软件包 $PACKAGE_NAME 保持安装状态"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,108 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-25
# @License : Mulan PSL v2
# @Desc : Test service status and basic operations
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Samba DC Bind DLZ功能服务状态"
LOG_INFO "步骤1: 检查环境是否已安装相关软件包"
INSTALLED_PACKAGES=""
for pkg in samba bind bind-dlz; do
if rpm -q $pkg &>/dev/null; then
INSTALLED_PACKAGES="$INSTALLED_PACKAGES $pkg"
fi
done
if [ -n "$INSTALLED_PACKAGES" ]; then
LOG_INFO "检测到已安装软件包: $INSTALLED_PACKAGES"
ALREADY_INSTALLED=true
else
LOG_INFO "未检测到相关软件包,将在测试中安装"
ALREADY_INSTALLED=false
fi
LOG_INFO "步骤2: 检查yum源中是否存在所需软件包"
for pkg in samba bind bind-dlz; do
if ! dnf list available $pkg &>/dev/null; then
LOG_ERROR "yum源中未找到软件包: $pkg"
exit 255
fi
done
LOG_INFO "步骤3: 安装必要的软件包"
if [ "$ALREADY_INSTALLED" = false ]; then
dnf install -y samba bind bind-dlz
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
LOG_INFO "步骤4: 检查命令参数支持情况"
if ! named -V 2>&1 | grep -q "DLZ"; then
LOG_ERROR "当前bind版本不支持DLZ功能"
exit 255
fi
LOG_INFO "步骤5: 启动并检查samba服务状态"
systemctl start smb
CHECK_RESULT $? 0 0 "启动samba服务失败"
systemctl status smb | grep -q "active (running)"
CHECK_RESULT $? 0 0 "samba服务未正常运行"
LOG_INFO "步骤6: 启动并检查named服务状态"
systemctl start named
CHECK_RESULT $? 0 0 "启动named服务失败"
systemctl status named | grep -q "active (running)"
CHECK_RESULT $? 0 0 "named服务未正常运行"
LOG_INFO "步骤7: 测试DNS查询功能"
if dig @localhost example.com &>/dev/null; then
LOG_INFO "DNS查询测试通过"
else
LOG_ERROR "DNS查询测试失败"
CHECK_RESULT 1 0 0 "DNS查询功能异常"
fi
LOG_INFO "步骤8: 测试Samba域控制器功能"
if smbclient -L localhost -U% 2>&1 | grep -q "Sharename"; then
LOG_INFO "Samba共享列表查询成功"
else
LOG_ERROR "Samba共享列表查询失败"
CHECK_RESULT 1 0 0 "Samba域控制器功能异常"
fi
LOG_INFO "步骤9: 清理测试环境"
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y samba bind bind-dlz
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持原有安装状态"
fi
LOG_INFO "步骤10: 恢复服务状态"
if [ "$ALREADY_INSTALLED" = true ]; then
systemctl restart smb named
CHECK_RESULT $? 0 0 "恢复服务失败"
else
systemctl stop smb named 2>/dev/null || true
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,112 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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 : 测试 eptex 命令启用 e-TeX 扩展
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断环境是否已经安装texlive-ptex-eptex-etex
LOG_INFO "检查是否已安装texlive-ptex-eptex-etex"
rpm -q texlive-ptex-eptex-etex > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-ptex-eptex-etex已安装脚本结束时将保持安装状态"
installed=true
else
LOG_INFO "texlive-ptex-eptex-etex未安装将在测试中安装并在结束前卸载"
installed=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有texlive-ptex-eptex-etex软件包"
dnf list available texlive-ptex-eptex-etex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-ptex-eptex-etex软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装texlive-ptex-eptex-etex软件包"
dnf install -y texlive-ptex-eptex-etex
CHECK_RESULT $? 0 0 "安装texlive-ptex-eptex-etex失败"
fi
# 测试eptex命令启用e-TeX扩展
LOG_INFO "测试eptex命令启用e-TeX扩展"
# 检查eptex命令是否存在
which eptex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "eptex命令不存在"
exit 255
fi
# 检查eptex命令是否支持--help参数
eptex --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "eptex命令不支持--help参数"
exit 255
fi
# 使用eptex处理一个简单的TeX文件测试e-TeX扩展是否启用
LOG_INFO "创建测试TeX文件"
cat > test_eptex.tex << "EOF"
\documentclass{article}
\begin{document}
Hello, e-TeX!
\ifx\eTeXversion\undefined
e-TeX extensions are NOT enabled.
\else
e-TeX extensions are enabled. eTeXversion=\eTeXversion.
\fi
\end{document}
EOF
# 使用eptex编译测试文件
LOG_INFO "使用eptex编译测试文件"
eptex test_eptex.tex
CHECK_RESULT $? 0 0 "eptex编译失败"
# 检查输出文件
LOG_INFO "检查eptex输出文件"
if [ -f test_eptex.dvi ]; then
LOG_INFO "eptex成功生成DVI文件"
else
LOG_ERROR "eptex未生成DVI文件"
exit 1
fi
# 检查e-TeX扩展是否启用
LOG_INFO "检查e-TeX扩展是否启用"
grep "e-TeX extensions are enabled" test_eptex.log > /dev/null 2>&1
CHECK_RESULT $? 0 0 "e-TeX扩展未启用"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_eptex.tex test_eptex.dvi test_eptex.log test_eptex.aux
# 如果测试前未安装,则在测试结束后卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载texlive-ptex-eptex-etex软件包"
dnf remove -y texlive-ptex-eptex-etex
CHECK_RESULT $? 0 0 "卸载texlive-ptex-eptex-etex失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : 测试 eptex 命令启用文件:行:错误样式消息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 eptex 命令启用文件:行:错误样式消息"
# 检查 yum 源中是否有 texlive-ptex-eptex 软件包
LOG_INFO "检查 yum 源中是否有 texlive-ptex-eptex 软件包"
dnf list available texlive-ptex-eptex &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-ptex-eptex 软件包"
exit 255
fi
# 检查系统是否已安装 texlive-ptex-eptex
LOG_INFO "检查系统是否已安装 texlive-ptex-eptex"
rpm -q texlive-ptex-eptex &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "texlive-ptex-eptex 已安装,测试结束后保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-ptex-eptex 未安装,将在测试过程中安装"
INSTALLED=0
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装 texlive-ptex-eptex 软件包"
dnf install -y texlive-ptex-eptex
CHECK_RESULT $? 0 0 "安装 texlive-ptex-eptex 失败"
fi
# 测试 eptex 命令的 -file-line-error 参数
LOG_INFO "测试 eptex 命令的 -file-line-error 参数"
eptex --help | grep -q -- "-file-line-error"
if [ $? -ne 0 ]; then
LOG_ERROR "eptex 命令不支持 -file-line-error 参数"
exit 255
fi
# 创建一个简单的 TeX 文件用于测试
LOG_INFO "创建测试 TeX 文件"
cat > test.tex << "EOF"
\documentclass{article}
\begin{document}
Hello, World!
\end{document}
EOF
# 使用 -file-line-error 参数运行 eptex
LOG_INFO "使用 -file-line-error 参数运行 eptex"
eptex -file-line-error test.tex
CHECK_RESULT $? 0 0 "eptex 命令执行失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test.tex test.log test.aux
# 如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载 texlive-ptex-eptex 软件包"
dnf remove -y texlive-ptex-eptex
CHECK_RESULT $? 0 0 "卸载 texlive-ptex-eptex 失败"
fi
LOG_INFO "测试 eptex 命令启用文件:行:错误样式消息完成"
}
main "$@"

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : 测试 eptex 命令使用指定的格式文件 myformat.fmt
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 eptex 命令使用指定的格式文件 myformat.fmt"
# 检查软件包是否在yum源中
LOG_INFO "检查 yum 源中是否存在 texlive-ptex 和 texlive-eptex 软件包"
if ! dnf list available texlive-ptex texlive-eptex &>/dev/null; then
LOG_ERROR "yum 源中缺少 texlive-ptex 或 texlive-eptex 软件包"
exit 255
fi
# 判断环境是否已安装软件包
LOG_INFO "检查环境是否已安装 texlive-ptex 和 texlive-eptex"
if rpm -q texlive-ptex texlive-eptex &>/dev/null; then
LOG_INFO "环境已安装 texlive-ptex 和 texlive-eptex保持安装状态"
already_installed=true
else
LOG_INFO "环境未安装 texlive-ptex 和 texlive-eptex将进行安装"
already_installed=false
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装 texlive-ptex 和 texlive-eptex"
dnf install -y texlive-ptex texlive-eptex
CHECK_RESULT $? 0 0 "安装 texlive-ptex 和 texlive-eptex 失败"
fi
# 检查 eptex 命令是否支持 -fmt 参数
LOG_INFO "检查 eptex 命令是否支持 -fmt 参数"
eptex -help 2>&1 | grep -q -- "-fmt"
CHECK_RESULT $? 0 0 "eptex 命令不支持 -fmt 参数"
if [ $? -ne 0 ]; then
LOG_ERROR "eptex 命令不支持 -fmt 参数"
exit 255
fi
# 创建测试用的格式文件 myformat.fmt
LOG_INFO "创建测试格式文件 myformat.fmt"
cat > myformat.fmt << "EOF"
% 这是一个简单的格式文件示例
\input plain.tex
\dump
EOF
CHECK_RESULT $? 0 0 "创建 myformat.fmt 格式文件失败"
# 使用 eptex 命令加载指定的格式文件
LOG_INFO "使用 eptex 命令加载 myformat.fmt 格式文件"
eptex -fmt myformat.fmt -ini "\\relax"
CHECK_RESULT $? 0 0 "eptex 命令加载 myformat.fmt 格式文件失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f myformat.fmt
CHECK_RESULT $? 0 0 "删除 myformat.fmt 文件失败"
# 如果脚本开始时未安装软件包,则卸载
if [ "$already_installed" = false ]; then
LOG_INFO "卸载 texlive-ptex 和 texlive-eptex 软件包"
dnf remove -y texlive-ptex texlive-eptex
CHECK_RESULT $? 0 0 "卸载 texlive-ptex 和 texlive-eptex 失败"
else
LOG_INFO "保持 texlive-ptex 和 texlive-eptex 的安装状态"
fi
LOG_INFO "测试 eptex 命令使用指定的格式文件 myformat.fmt 完成"
}
main "$@"

View File

@@ -1,115 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-08
# @License : Mulan PSL v2
# @Desc : 测试 eptex 命令在遇到第一个错误时停止处理
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称和命令
PACKAGE_NAME="texlive-ptex-eptex"
COMMAND="eptex"
OPTION="-halt-on-error"
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
dnf list available ${PACKAGE_NAME} &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 步骤2: 检查命令参数是否支持
LOG_INFO "检查命令 ${COMMAND} 是否支持参数 ${OPTION}"
${COMMAND} --help 2>&1 | grep -q "${OPTION}"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${COMMAND} 不支持参数 ${OPTION}"
exit 255
fi
# 步骤3: 检查当前环境是否已安装软件包
LOG_INFO "检查当前环境是否已安装软件包 ${PACKAGE_NAME}"
rpm -q ${PACKAGE_NAME} &> /dev/null
INSTALLED=$?
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试结束后保持安装状态"
NEED_CLEANUP=0
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将进行安装"
NEED_CLEANUP=1
fi
# 步骤4: 如果未安装,则安装软件包
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 步骤5: 创建测试用的TeX文件其中包含错误
LOG_INFO "创建测试用的TeX文件其中包含错误"
TEST_FILE="test_halt.tex"
cat > ${TEST_FILE} << "EOF"
\documentclass{article}
\begin{document}
Hello, world!
\undefinedcommand
More text here.
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 步骤6: 执行eptex命令使用-halt-on-error参数
LOG_INFO "执行 eptex 命令,使用 -halt-on-error 参数,预期在第一个错误时停止"
${COMMAND} ${OPTION} ${TEST_FILE} 2>&1 | tee output.log
EXIT_CODE=$?
# 步骤7: 检查命令执行结果
LOG_INFO "检查命令退出码"
if [ ${EXIT_CODE} -eq 0 ]; then
LOG_ERROR "命令未按预期在错误处停止退出码为0"
CHECK_RESULT 1 0 0 "命令未按预期停止"
else
LOG_INFO "命令因错误停止,退出码为 ${EXIT_CODE}"
# 检查输出中是否包含错误信息,并且是否在第一个错误后停止
if grep -q "undefinedcommand" output.log && ! grep -q "More text here" output.log; then
LOG_INFO "命令在第一个错误处停止,符合预期"
CHECK_RESULT 0 0 0 "命令执行结果检查"
else
LOG_ERROR "命令未在第一个错误处停止,输出内容不符合预期"
CHECK_RESULT 1 0 0 "命令未在第一个错误处停止"
fi
fi
# 步骤8: 清理测试文件
LOG_INFO "清理测试文件"
rm -f ${TEST_FILE} output.log *.log *.aux *.dvi
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 步骤9: 如果测试前未安装,则卸载软件包
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
else
LOG_INFO "测试前软件包已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

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