This commit is contained in:
2026-04-18 15:23:09 +08:00
272 changed files with 0 additions and 24508 deletions

View File

@@ -9,30 +9,6 @@
{
"name": "test_auto-common_function_install",
"desc": "Test installation of auto-common package"
},
{
"name": "test_auto-common_function_uninstall",
"desc": "Test uninstallation of auto-common package"
},
{
"name": "test_auto-common_function_version",
"desc": "Test checking version of auto-common"
},
{
"name": "test_auto-common_function_config_load",
"desc": "Test loading config file"
},
{
"name": "test_auto-common_function_logging",
"desc": "Test logging functionality"
},
{
"name": "test_auto-common_function_util_parse",
"desc": "Test common utility parsing"
},
{
"name": "test_auto-common_function_cli_basic",
"desc": "Test basic CLI command"
}
]
}

View File

@@ -6,30 +6,6 @@
"name": "test_genwqe-zlib_install",
"desc": "测试genwqe-zlib软件包的安装功能",
"machine num": 1
},
{
"name": "test_genwqe-zlib_function_compress",
"desc": "测试genwqe-zlib的压缩功能"
},
{
"name": "test_genwqe-zlib_function_install",
"desc": "测试genwqe-zlib软件包的安装功能确保其能正确安装到系统中"
},
{
"name": "test_genwqe-zlib_function_decompress",
"desc": "测试genwqe-zlib的解压缩功能验证其是否能正确还原压缩数据"
},
{
"name": "test_genwqe-zlib_function_uninstall",
"desc": "测试genwqe-zlib软件包的卸载功能确保其能被干净地移除"
},
{
"name": "test_genwqe-zlib_function_version",
"desc": "测试genwqe-zlib版本查询功能验证其能正确返回版本信息"
},
{
"name": "test_genwqe-zlib_function_integration",
"desc": "测试genwqe-zlib与系统库的集成确保其作为加速库能被正常调用"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_kunpengsecl-devel_install",
"desc": "测试软件包 kunpengsecl-devel 的安装功能,验证安装过程是否成功。",
"machine num": 1
},
{
"name": "test_kunpengsecl-devel_function_config",
"desc": "测试软件包 kunpengsecl-devel 的配置功能,验证配置是否正确加载。"
}
]
}

View File

@@ -5,58 +5,6 @@
{
"name": "test_lucene-demo_function_install",
"desc": "Test the installation of lucene-demo package"
},
{
"name": "test_lucene-demo_function_search",
"desc": "Test the search functionality of lucene-demo"
},
{
"name": "test_lucene-demo_function_index",
"desc": "Test the indexing functionality of lucene-demo"
},
{
"name": "test_lucene-demo_function_query",
"desc": "Test the query parsing of lucene-demo"
},
{
"name": "test_lucene-demo_function_score",
"desc": "Test the scoring mechanism of lucene-demo"
},
{
"name": "test_lucene-demo_function_uninstall",
"desc": "Test uninstallation of lucene-demo package"
},
{
"name": "test_lucene-demo_function_version",
"desc": "Test checking package version"
},
{
"name": "test_lucene-demo_function_basic_index",
"desc": "Test creating a basic index"
},
{
"name": "test_lucene-demo_function_basic_search",
"desc": "Test performing a basic search"
},
{
"name": "test_lucene-demo_function_update_index",
"desc": "Test updating an existing index"
},
{
"name": "test_lucene-demo_function_delete_doc",
"desc": "Test deleting a document from index"
},
{
"name": "test_lucene-demo_function_analyzer",
"desc": "Test text analyzer functionality"
},
{
"name": "test_lucene-demo_function_query_types",
"desc": "Test different query types"
},
{
"name": "test_lucene-demo_function_sort_results",
"desc": "Test sorting search results"
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_perl-Date-Calc-help_function_check",
"desc": "测试验证 perl-Date-Calc-help 软件包是否已正确安装"
},
{
"name": "test_perl-Date-Calc-help_function_man",
"desc": "测试查看 perl-Date-Calc-help 提供的 man 帮助文档"
},
{
"name": "test_perl-Date-Calc-help_function_info",
"desc": "测试查询 perl-Date-Calc-help 软件包的基本信息"
},
{
"name": "test_perl-Date-Calc-help_function_remove",
"desc": "测试卸载 perl-Date-Calc-help 软件包"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-httmock/python3-httmock",
"machine num": 1,
"cases": [
{
"name": "test_python3-httmock_function_mock",
"desc": "Test basic HTTP mock functionality"
}
]
}

View File

@@ -2,38 +2,10 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-olefile/python3-olefile",
"machine num": 1,
"cases": [
{
"name": "test_python3-olefile_function_install",
"desc": "测试python3-olefile软件包能否正常安装"
},
{
"name": "test_python3-olefile_function_import",
"desc": "测试安装后能否成功导入olefile模块"
},
{
"name": "test_python3-olefile_function_olefile_exists",
"desc": "测试olefile模块的OleFileIO类是否存在"
},
{
"name": "test_python3-olefile_function_open_ole",
"desc": "测试能否使用OleFileIO打开一个有效的OLE文件"
},
{
"name": "test_python3-olefile_function_list_streams",
"desc": "测试能否列出OLE文件中的流和存储"
},
{
"name": "test_python3-olefile_function_read_stream",
"desc": "测试能否从OLE文件的指定流中读取数据"
},
{
"name": "test_python3-olefile_function_get_metadata",
"desc": "测试能否获取OLE文件的元数据信息"
},
{
"name": "test_python3-olefile_function_is_olefile",
"desc": "测试isOleFile函数能否正确识别OLE文件"
},
{
"name": "test_python3-olefile_function_uninstall",
"desc": "测试python3-olefile软件包能否正常卸载"

View File

@@ -2,11 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-prometheus-client/python-prometheus-client-help",
"machine num": 1,
"cases": [
{
"name": "test_python-prometheus-client-help_command_001",
"desc": "测试python-prometheus-client-help包的安装功能验证软件包能否正常安装。",
"machine num": 1
},
{
"name": "test_python-prometheus-client-help_command_002",
"desc": "测试python-prometheus-client-help包的卸载功能验证软件包能否正常卸载。",
@@ -16,26 +11,6 @@
"name": "test_python-prometheus-client-help_command_003",
"desc": "测试python-prometheus-client-help包的升级功能验证软件包能否正常升级。",
"machine num": 1
},
{
"name": "test_python-prometheus-client-help_command_004",
"desc": "测试python-prometheus-client-help包的降级功能验证软件包能否正常降级。",
"machine num": 1
},
{
"name": "test_python-prometheus-client-help_command_005",
"desc": "测试python-prometheus-client-help包的回退功能验证软件包能否正常回退到上一个版本。",
"machine num": 1
},
{
"name": "test_python-prometheus-client-help_command_006",
"desc": "测试python-prometheus-client-help包的回滚功能验证软件包能否正常回滚到指定版本。",
"machine num": 1
},
{
"name": "test_python-prometheus-client-help_command_007",
"desc": "测试python-prometheus-client-help包的升级回滚功能验证软件包能否在升级后回滚到升级前的版本。",
"machine num": 1
}
]
}

View File

@@ -11,85 +11,6 @@
"name": "test_qt5-qtvirtualkeyboard-examples_uninstall",
"desc": "测试qt5-qtvirtualkeyboard-examples包的卸载功能验证软件包是否能够正常卸载。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_upgrade",
"desc": "测试qt5-qtvirtualkeyboard-examples包的升级功能验证软件包是否能够正常升级。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_downgrade",
"desc": "测试qt5-qtvirtualkeyboard-examples包的降级功能验证软件包是否能够正常降级。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_rollback",
"desc": "测试qt5-qtvirtualkeyboard-examples包的回滚功能验证软件包是否能够正常回滚到之前的版本。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_reinstall",
"desc": "测试qt5-qtvirtualkeyboard-examples包的重新安装功能验证软件包是否能够正常重新安装。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_service_start",
"desc": "测试qt5-qtvirtualkeyboard-examples包的服务启动功能验证服务是否能够正常启动。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_service_stop",
"desc": "测试qt5-qtvirtualkeyboard-examples包的服务停止功能验证服务是否能够正常停止。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_service_status",
"desc": "测试qt5-qtvirtualkeyboard-examples包的服务状态查询功能验证服务是否能够正常查询状态。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_service_log",
"desc": "测试qt5-qtvirtualkeyboard-examples包的服务日志查看功能验证服务是否能够正常查看日志。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_service_config",
"desc": "测试qt5-qtvirtualkeyboard-examples包的服务配置功能验证服务是否能够正常配置。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_dependency",
"desc": "测试qt5-qtvirtualkeyboard-examples包的依赖关系验证软件包是否能够正确识别和满足所有依赖项。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_service_reload",
"desc": "测试qt5-qtvirtualkeyboard-examples包的服务重载功能验证服务是否能够正常重载配置。",
"machine num": 1
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_function_keyboard",
"desc": "Test the keyboard functionality of qt5-qtvirtualkeyboard-examples, verifying if the virtual keyboard works correctly."
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_function_basic_usage",
"desc": "测试qt5-qtvirtualkeyboard-examples基本示例的启动和显示验证虚拟键盘示例能否正常启动并显示界面。"
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_function_input_methods",
"desc": "测试qt5-qtvirtualkeyboard-examples的输入法切换功能验证虚拟键盘支持不同输入法如英文、中文并能正常切换和输入。"
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_function_layouts",
"desc": "测试qt5-qtvirtualkeyboard-examples的键盘布局切换功能验证虚拟键盘支持不同布局如QWERTY、数字键盘并能正常切换。"
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_function_theme",
"desc": "测试qt5-qtvirtualkeyboard-examples的主题或样式切换功能验证虚拟键盘的界面主题可以正常更改。"
},
{
"name": "test_qt5-qtvirtualkeyboard-examples_function_event_handling",
"desc": "测试qt5-qtvirtualkeyboard-examples的事件处理功能验证虚拟键盘能正确响应按键点击并生成相应输入事件。"
}
]
}

View File

@@ -26,14 +26,6 @@
"name": "test_rpm-devel_rpmgraph_nolegacy",
"desc": "测试 rpmgraph 命令的 --nolegacy 参数,验证不验证头部和有效载荷签名的功能"
},
{
"name": "test_rpm-devel_rpmgraph_--nolegacy",
"desc": "测试使用 --nolegacy 参数,不验证头部和负载签名"
},
{
"name": "test_rpm-devel_rpmgraph_--help",
"desc": "测试使用 --help 参数,显示帮助信息"
},
{
"name": "test_rpm-devel_rpmgraph_--usage",
"desc": "测试使用 --usage 参数,显示简要用法信息"
@@ -42,117 +34,17 @@
"name": "test_rpm-devel_rpmgraph_--version",
"desc": "测试使用 --version 参数打印rpm版本"
},
{
"name": "test_rpm-devel_rpmgraph_--querytags",
"desc": "测试使用 --querytags 参数,显示已知的查询标签"
},
{
"name": "test_rpm-devel_rpmgraph_--showrc",
"desc": "测试使用 --showrc 参数显示最终的rpmrc和宏配置"
},
{
"name": "test_rpm-devel_rpmgraph_--quiet",
"desc": "测试使用 --quiet 参数,提供更少的详细信息输出"
},
{
"name": "test_rpm-devel_rpmgraph__upper_v",
"desc": "测试使用 -v 参数,提供更多的详细信息输出"
},
{
"name": "test_rpm-devel_rpmgraph__upper_v_--quiet",
"desc": "测试同时使用 -v 和 --quiet 参数,验证参数冲突或优先级"
},
{
"name": "test_rpm-devel_rpmgraph_--nodigest",
"desc": "测试使用 --nodigest 参数,不验证软件包摘要"
},
{
"name": "test_rpm-devel_rpmgraph_--nosignature",
"desc": "测试使用 --nosignature 参数,不验证软件包签名"
},
{
"name": "test_rpm-devel_rpmgraph_--nolegacy_--nodigest",
"desc": "测试同时使用 --nolegacy 和 --nodigest 参数,不验证签名和摘要"
},
{
"name": "test_rpm-devel_rpmgraph__upper_e",
"desc": "测试使用 -E 参数打印宏扩展"
},
{
"name": "test_rpm-devel_rpmgraph__upper_d",
"desc": "测试使用 -D 参数定义宏"
},
{
"name": "test_rpm-devel_rpmgraph_--undefine",
"desc": "测试使用 --undefine 参数取消宏定义"
},
{
"name": "test_rpm-devel_rpmgraph_--target",
"desc": "测试使用 --target 参数指定目标平台"
},
{
"name": "test_rpm-devel_rpmgraph_--macros",
"desc": "测试使用 --macros 参数指定宏文件"
},
{
"name": "test_rpm-devel_rpmgraph_--load",
"desc": "测试使用 --load 参数加载单个宏文件"
},
{
"name": "test_rpm-devel_rpmgraph_--noplugins",
"desc": "测试使用 --noplugins 参数,不启用任何插件"
},
{
"name": "test_rpm-devel_rpmgraph_--rcfile",
"desc": "测试使用 --rcfile 参数指定配置文件"
},
{
"name": "test_rpm-devel_rpmgraph__r",
"desc": "测试使用 -r 参数指定根目录"
},
{
"name": "test_rpm-devel_rpmgraph_--dbpath",
"desc": "测试使用 --dbpath 参数指定数据库目录"
},
{
"name": "test_rpm-devel_function_install",
"desc": "测试安装rpm-devel软件包"
},
{
"name": "test_rpm-devel_function_remove",
"desc": "测试卸载rpm-devel软件包"
},
{
"name": "test_rpm-devel_function_query_all",
"desc": "测试查询所有已安装的rpm包"
},
{
"name": "test_rpm-devel_function_query_file",
"desc": "测试查询文件所属的rpm包"
},
{
"name": "test_rpm-devel_function_verify",
"desc": "测试验证已安装rpm包完整性"
},
{
"name": "test_rpm-devel_function_check_install",
"desc": "测试检查rpm-devel是否已安装"
},
{
"name": "test_rpm-devel_function_list_files",
"desc": "测试列出rpm-devel包内文件"
},
{
"name": "test_rpm-devel_function_list_info",
"desc": "测试显示rpm-devel包详细信息"
},
{
"name": "test_rpm-devel_function_check_deps",
"desc": "测试检查rpm-devel包依赖关系"
},
{
"name": "test_rpm-devel_function_whatprovides",
"desc": "测试查询提供特定功能的包"
}
]
}

View File

@@ -13,546 +13,6 @@
{
"name": "test_texinfo-tex_function_basic",
"desc": "Test basic command functionality"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_h",
"desc": "测试 pdftexi2dvi 的 --help 选项,用于显示帮助信息"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_v",
"desc": "测试 pdftexi2dvi 的 --version 选项,用于显示版本信息"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_default",
"desc": "测试 pdftexi2dvi 无额外参数运行一个文件,期望生成 PDF"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_output",
"desc": "测试 pdftexi2dvi 的 --output 选项,用于指定输出文件名"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_q",
"desc": "测试 pdftexi2dvi 的 --quiet 选项,用于抑制正常输出"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_upper_v",
"desc": "测试 pdftexi2dvi 的 --verbose 选项,用于显示详细过程"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_max_iterations",
"desc": "测试 pdftexi2dvi 的 --max-iterations 选项,用于限制文件处理的最大迭代次数"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_mostly_clean",
"desc": "测试 pdftexi2dvi 的 --mostly-clean 选项,用于清理以前运行的辅助文件"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_p",
"desc": "测试 pdftexi2dvi 的 --pdf 选项,用于明确指定生成 PDF 输出"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_language",
"desc": "测试 pdftexi2dvi 的 --language 选项,用于指定输入文件的处理语言"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_expand",
"desc": "测试 pdftexi2dvi 的 --expand 选项,用于启用宏扩展"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_command",
"desc": "测试 pdftexi2dvi 的 --command 选项,用于在输入文件中插入额外命令"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_tidy",
"desc": "测试 pdftexi2dvi 的 --tidy 选项,用于在独立目录中进行编译并保留辅助文件"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_c",
"desc": "测试 pdftexi2dvi 的 --clean 选项,用于在独立目录中进行编译并清理辅助文件"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_build_dir",
"desc": "测试 pdftexi2dvi 的 --build-dir 选项,用于指定编译目录(隐含 --tidy"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_expand_quiet",
"desc": "测试 pdftexi2dvi 同时使用 --expand 和 --quiet 选项,确保宏扩展功能与安静模式不冲突"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_verbose_tidy",
"desc": "测试 pdftexi2dvi 同时使用 --verbose 和 --tidy 选项,用于在整理模式下查看详细过程"
},
{
"name": "test_texinfo-tex_texi2dvi__h",
"desc": "测试 texi2dvi 命令的 -h 参数,显示帮助信息"
},
{
"name": "test_texinfo-tex_texi2dvi__v",
"desc": "测试 texi2dvi 命令的 -v 参数,显示版本信息"
},
{
"name": "test_texinfo-tex_texi2dvi__upper_v",
"desc": "测试 texi2dvi 命令的 -V 参数,详细报告执行过程"
},
{
"name": "test_texinfo-tex_texi2dvi__q",
"desc": "测试 texi2dvi 命令的 -q 参数,安静模式,仅当错误时输出"
},
{
"name": "test_texinfo-tex_texi2dvi__upper_d",
"desc": "测试 texi2dvi 命令的 -D 参数,开启 shell 调试模式"
},
{
"name": "test_texinfo-tex_texi2dvi__o",
"desc": "测试 texi2dvi 命令的 -o 参数,指定输出文件名"
},
{
"name": "test_texinfo-tex_texi2dvi__p",
"desc": "测试 texi2dvi 命令的 -p 参数,使用 pdftex/pdflatex 处理并生成 PDF 输出"
},
{
"name": "test_texinfo-tex_texi2dvi__pdf",
"desc": "测试 texi2dvi 命令的 --pdf 参数,使用 pdftex/pdflatex 处理并生成 PDF 输出"
},
{
"name": "test_texinfo-tex_texi2dvi__dvi",
"desc": "测试 texi2dvi 命令的 --dvi 参数,输出 DVI 文件"
},
{
"name": "test_texinfo-tex_texi2dvi__dvipdf",
"desc": "测试 texi2dvi 命令的 --dvipdf 参数,通过 DVI 输出 PDF 文件"
},
{
"name": "test_texinfo-tex_texi2dvi__ps",
"desc": "测试 texi2dvi 命令的 --ps 参数,通过 DVI 输出 PostScript 文件"
},
{
"name": "test_texinfo-tex_texi2dvi__html",
"desc": "测试 texi2dvi 命令的 --html 参数,使用 HeVeA 从 LaTeX 输出 HTML 文件"
},
{
"name": "test_texinfo-tex_texi2dvi__info",
"desc": "测试 texi2dvi 命令的 --info 参数,使用 HeVeA 从 LaTeX 输出 Info 文件"
},
{
"name": "test_texinfo-tex_texi2dvi__text",
"desc": "测试 texi2dvi 命令的 --text 参数,使用 HeVeA 从 LaTeX 输出纯文本文件"
},
{
"name": "test_texinfo-tex_texi2dvi__upper_e",
"desc": "测试 texi2dvi 命令的 -E 参数,使用 makeinfo 进行宏扩展"
},
{
"name": "test_texinfo-tex_texi2dvi__l",
"desc": "测试 texi2dvi 命令的 -l 参数,指定输入文件的语言"
},
{
"name": "test_texinfo-tex_texi2dvi__t",
"desc": "测试 texi2dvi 命令的 -t 参数,在输入文件副本中插入命令"
},
{
"name": "test_texinfo-tex_texi2dvi__upper_i",
"desc": "测试 texi2dvi 命令的 -I 参数,指定 Texinfo 文件的搜索目录"
},
{
"name": "test_texinfo-tex_texi2dvi__no_line_error",
"desc": "测试 texi2dvi 命令的 --no-line-error 参数,不传递 --file-line-error 给 TeX"
},
{
"name": "test_texinfo-tex_texi2dvi__shell_escape",
"desc": "测试 texi2dvi 命令的 --shell-escape 参数,传递 --shell-escape 给 TeX"
},
{
"name": "test_texinfo-tex_texi2dvi__src_specials",
"desc": "测试 texi2dvi 命令的 --src-specials 参数,传递 --src-specials 给 TeX"
},
{
"name": "test_texinfo-tex_texi2dvi__translate_file",
"desc": "测试 texi2dvi 命令的 --translate-file 参数,为 TeX 使用指定的字符集翻译文件"
},
{
"name": "test_texinfo-tex_texi2dvi__mostly_clean",
"desc": "测试 texi2dvi 命令的 --mostly-clean 参数,移除之前运行的辅助文件或目录"
},
{
"name": "test_texinfo-tex_texi2dvi__c",
"desc": "测试 texi2dvi 命令的 -c 参数,等同于 --build=clean编译后清理辅助文件"
},
{
"name": "test_texinfo-tex_texi2dvi__tidy",
"desc": "测试 texi2dvi 命令的 --tidy 参数,等同于 --build=tidy在本地 *.t2d 目录中编译"
},
{
"name": "test_texinfo-tex_texi2dvi__build",
"desc": "测试 texi2dvi 命令的 --build 参数,指定辅助文件的处理模式"
},
{
"name": "test_texinfo-tex_texi2dvi__build_dir",
"desc": "测试 texi2dvi 命令的 --build-dir 参数,指定 tidy 编译的执行目录,并隐含 --tidy"
},
{
"name": "test_texinfo-tex_texi2dvi__max_iterations",
"desc": "测试 texi2dvi 命令的 --max-iterations 参数,限制文件处理的最大迭代次数"
},
{
"name": "test_texinfo-tex_texi2pdf_p",
"desc": "测试使用--pdf选项生成PDF输出"
},
{
"name": "test_texinfo-tex_texi2pdf_q",
"desc": "测试使用--quiet选项在无错误时静默输出"
},
{
"name": "test_texinfo-tex_texi2pdf_upper_v",
"desc": "测试使用--verbose选项报告详细处理过程"
},
{
"name": "test_texinfo-tex_texi2pdf_max_iterations",
"desc": "测试使用--max-iterations选项限制最大处理迭代次数"
},
{
"name": "test_texinfo-tex_texi2pdf_mostly_clean",
"desc": "测试使用--mostly-clean选项清除之前的辅助文件"
},
{
"name": "test_texinfo-tex_texi2pdf_dvi",
"desc": "测试使用--dvi选项指定输出DVI格式"
},
{
"name": "test_texinfo-tex_texi2pdf_dvipdf",
"desc": "测试使用--dvipdf选项通过DVI生成PDF"
},
{
"name": "test_texinfo-tex_texi2pdf_html",
"desc": "测试使用--html选项通过HeVeA生成HTML"
},
{
"name": "test_texinfo-tex_texi2pdf_info",
"desc": "测试使用--info选项通过HeVeA生成Info"
},
{
"name": "test_texinfo-tex_texi2pdf_ps",
"desc": "测试使用--ps选项通过DVI生成PostScript"
},
{
"name": "test_texinfo-tex_texi2pdf_text",
"desc": "测试使用--text选项通过HeVeA生成纯文本"
},
{
"name": "test_texinfo-tex_texi2pdf_upper_e",
"desc": "测试使用--expand选项通过makeinfo进行宏扩展"
},
{
"name": "test_texinfo-tex_texi2pdf_upper_i",
"desc": "测试使用-I选项指定Texinfo文件的搜索目录"
},
{
"name": "test_texinfo-tex_texi2pdf_l",
"desc": "测试使用--language选项指定输入文件的语言"
},
{
"name": "test_texinfo-tex_texi2pdf_no_line_error",
"desc": "测试使用--no-line-error选项禁止传递--file-line-error给TeX"
},
{
"name": "test_texinfo-tex_texi2pdf_shell_escape",
"desc": "测试使用--shell-escape选项传递--shell-escape给TeX"
},
{
"name": "test_texinfo-tex_texi2pdf_src_specials",
"desc": "测试使用--src-specials选项传递--src-specials给TeX"
},
{
"name": "test_texinfo-tex_texi2pdf_translate_file",
"desc": "测试使用--translate-file选项指定字符集转换文件"
},
{
"name": "test_texinfo-tex_texi2pdf_t",
"desc": "测试使用--command选项在输入文件副本中插入命令"
},
{
"name": "test_texinfo-tex_texi2pdf_build",
"desc": "测试使用--build选项指定辅助文件的处理模式"
},
{
"name": "test_texinfo-tex_texi2pdf_tidy",
"desc": "测试使用--tidy选项以整洁模式编译"
},
{
"name": "test_texinfo-tex_texi2pdf_c",
"desc": "测试使用--clean选项以清理模式编译"
},
{
"name": "test_texinfo-tex_texi2pdf_build_dir",
"desc": "测试使用--build-dir选项指定整洁编译的目录"
},
{
"name": "test_texinfo-tex_texindex_no_arg",
"desc": "测试不带任何参数直接调用texindex命令"
},
{
"name": "test_texinfo-tex_texindex_help",
"desc": "测试使用--help参数显示帮助信息"
},
{
"name": "test_texinfo-tex_texindex_version",
"desc": "测试使用--version参数显示版本信息"
},
{
"name": "test_texinfo-tex_texindex_dash_dash",
"desc": "测试使用--作为参数,表示选项解析结束"
},
{
"name": "test_texinfo-tex_function_pdf_generate",
"desc": "Test PDF generation from TeX"
},
{
"name": "test_texinfo-tex_function_dvi_generate",
"desc": "Test DVI generation from TeX"
},
{
"name": "test_texinfo-tex_function_macro_expand",
"desc": "Test macro expansion with makeinfo"
},
{
"name": "test_texinfo-tex_function_index_sort",
"desc": "Test sorting index files with texindex"
},
{
"name": "test_texinfo-tex_function_help",
"desc": "Test help option for main commands"
},
{
"name": "test_texinfo-tex_function_version",
"desc": "Test version option for main commands"
},
{
"name": "test_texinfo-tex_function_output_redirect",
"desc": "Test output file redirection"
},
{
"name": "test_texinfo-tex_function_build_clean",
"desc": "Test clean build mode"
},
{
"name": "test_texinfo-tex_function_build_tidy",
"desc": "Test tidy build mode"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_upper_d",
"desc": "测试pdftexi2dvi命令的-D参数用于开启shell调试模式"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_o",
"desc": "测试pdftexi2dvi命令的-o参数用于指定输出文件"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_upper_e",
"desc": "测试pdftexi2dvi命令的-E参数用于使用makeinfo进行宏展开"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_l",
"desc": "测试pdftexi2dvi命令的-l参数用于指定输入文件的语言"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_t",
"desc": "测试pdftexi2dvi命令的-t参数用于在输入文件副本中插入指定命令"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_upper_i",
"desc": "测试pdftexi2dvi命令的-I参数用于指定Texinfo文件的搜索目录"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_dvi",
"desc": "测试pdftexi2dvi命令的--dvi参数用于生成DVI文件"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_dvipdf",
"desc": "测试pdftexi2dvi命令的--dvipdf参数用于通过DVI生成PDF文件"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_ps",
"desc": "测试pdftexi2dvi命令的--ps参数用于通过DVI生成PostScript文件"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_shell_escape",
"desc": "测试pdftexi2dvi命令的--shell-escape参数用于向TeX传递--shell-escape选项"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_src_specials",
"desc": "测试pdftexi2dvi命令的--src-specials参数用于向TeX传递--src-specials选项"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_no_line_error",
"desc": "测试pdftexi2dvi命令的--no-line-error参数用于不向TeX传递--file-line-error选项"
},
{
"name": "test_texinfo-tex_pdftexi2dvi_translate_file",
"desc": "测试pdftexi2dvi命令的--translate-file参数用于为TeX指定字符集转换文件"
},
{
"name": "test_texinfo-tex_texi2dvi_h",
"desc": "测试显示帮助信息"
},
{
"name": "test_texinfo-tex_texi2dvi_v",
"desc": "测试显示版本信息"
},
{
"name": "test_texinfo-tex_texi2dvi_q",
"desc": "测试静默模式,除非出错否则不输出"
},
{
"name": "test_texinfo-tex_texi2dvi_upper_v",
"desc": "测试详细模式,报告正在执行的操作"
},
{
"name": "test_texinfo-tex_texi2dvi_d",
"desc": "测试开启shell调试模式"
},
{
"name": "test_texinfo-tex_texi2dvi_o",
"desc": "测试指定输出文件名"
},
{
"name": "test_texinfo-tex_texi2dvi_p",
"desc": "测试使用pdftex或pdflatex处理以生成PDF输出"
},
{
"name": "test_texinfo-tex_texi2dvi_e",
"desc": "测试使用makeinfo进行宏展开"
},
{
"name": "test_texinfo-tex_texi2dvi_l",
"desc": "测试指定输入文件的语言"
},
{
"name": "test_texinfo-tex_texi2dvi_t",
"desc": "测试在输入文件副本中插入指定命令"
},
{
"name": "test_texinfo-tex_texi2dvi_c",
"desc": "测试清理模式,编译后移除辅助目录"
},
{
"name": "test_texinfo-tex_texi2dvi_dvi",
"desc": "测试指定输出DVI格式"
},
{
"name": "test_texinfo-tex_texi2dvi_dvipdf",
"desc": "测试通过DVI生成PDF输出"
},
{
"name": "test_texinfo-tex_texi2dvi_ps",
"desc": "测试通过DVI生成PostScript输出"
},
{
"name": "test_texinfo-tex_texi2dvi_html",
"desc": "测试使用HeVeA从LaTeX生成HTML输出"
},
{
"name": "test_texinfo-tex_texi2dvi_info",
"desc": "测试使用HeVeA从LaTeX生成Info输出"
},
{
"name": "test_texinfo-tex_texi2dvi_text",
"desc": "测试使用HeVeA从LaTeX生成纯文本输出"
},
{
"name": "test_texinfo-tex_texi2dvi_no_line_error",
"desc": "测试不向TeX传递--file-line-error选项"
},
{
"name": "test_texinfo-tex_texi2dvi_shell_escape",
"desc": "测试向TeX传递--shell-escape选项"
},
{
"name": "test_texinfo-tex_texi2dvi_src_specials",
"desc": "测试向TeX传递--src-specials选项"
},
{
"name": "test_texinfo-tex_texi2dvi_translate_file",
"desc": "测试为TeX指定字符集翻译文件"
},
{
"name": "test_texinfo-tex_texi2dvi_build",
"desc": "测试指定构建模式"
},
{
"name": "test_texinfo-tex_texi2dvi_tidy",
"desc": "测试整洁构建模式"
},
{
"name": "test_texinfo-tex_texi2dvi_build_dir",
"desc": "测试指定整洁编译的目录"
},
{
"name": "test_texinfo-tex_texi2dvi_max_iterations",
"desc": "测试设置最大处理迭代次数"
},
{
"name": "test_texinfo-tex_texi2dvi_mostly_clean",
"desc": "测试移除之前运行的辅助文件或目录"
},
{
"name": "test_texinfo-tex_texi2dvi_i",
"desc": "测试添加Texinfo文件的搜索目录"
},
{
"name": "test_texinfo-tex_texi2pdf_help",
"desc": "测试texi2pdf命令的--help选项查看帮助信息"
},
{
"name": "test_texinfo-tex_texi2pdf_version",
"desc": "测试texi2pdf命令的--version选项查看版本信息"
},
{
"name": "test_texinfo-tex_texi2pdf_quiet",
"desc": "测试texi2pdf命令的--quiet选项在无错误时抑制输出"
},
{
"name": "test_texinfo-tex_texi2pdf_verbose",
"desc": "测试texi2pdf命令的--verbose选项报告详细处理过程"
},
{
"name": "test_texinfo-tex_texi2pdf_output",
"desc": "测试texi2pdf命令的--output选项指定输出文件"
},
{
"name": "test_texinfo-tex_texi2pdf_pdf",
"desc": "测试texi2pdf命令的--pdf选项生成PDF输出"
},
{
"name": "test_texinfo-tex_texi2pdf_language",
"desc": "测试texi2pdf命令的--language选项指定输入文件语言"
},
{
"name": "test_texinfo-tex_texi2pdf_command",
"desc": "测试texi2pdf命令的--command选项在输入文件副本中插入命令"
},
{
"name": "test_texinfo-tex_texi2pdf_expand",
"desc": "测试texi2pdf命令的--expand选项使用makeinfo进行宏展开"
},
{
"name": "test_texinfo-tex_texi2pdf_clean",
"desc": "测试texi2pdf命令的--clean选项等同于--build=clean"
},
{
"name": "test_texinfo-tex_texindex_h",
"desc": "使用-h参数显示帮助信息"
},
{
"name": "test_texinfo-tex_texindex_end_option",
"desc": "使用--参数结束选项处理"
},
{
"name": "test_texinfo-tex_texindex_no_option",
"desc": "不带任何选项处理一个文件"
},
{
"name": "test_texinfo-tex_texindex_wildcard",
"desc": "使用通配符处理多个文件"
}
]
}

View File

@@ -1,54 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-base/texlive-pst-pdf",
"machine num": 1,
"cases": [
{
"name": "test_texlive-pst-pdf_ps4pdf__v",
"desc": "测试 ps4pdf 命令的 -v 参数"
},
{
"name": "test_texlive-pst-pdf_ps4pdf__q",
"desc": "测试 ps4pdf 命令的 -q 参数"
},
{
"name": "test_texlive-pst-pdf_ps4pdf__crop",
"desc": "测试 ps4pdf 命令的 --crop 参数"
},
{
"name": "test_texlive-pst-pdf_ps4pdf__version",
"desc": "测试 ps4pdf 命令的 --version 参数"
},
{
"name": "test_texlive-pst-pdf_ps4pdf__Xps2pdf",
"desc": "测试 ps4pdf 命令的 --Xps2pdf OPT 参数"
},
{
"name": "test_texlive-pst-pdf_ps4pdf__lualatex",
"desc": "测试 ps4pdf 命令的 --lualatex 参数"
},
{
"name": "test_texlive-pst-pdf_ps4pdf__xelatex",
"desc": "测试 ps4pdf 命令的 --xelatex 参数"
},
{
"name": "test_texlive-pst-pdf_function_basic",
"desc": "测试基本功能是否正常"
},
{
"name": "test_texlive-pst-pdf_function_install",
"desc": "测试软件包是否已正确安装"
},
{
"name": "test_texlive-pst-pdf_function_usage",
"desc": "测试使用pst-pdf宏包生成PDF"
},
{
"name": "test_texlive-pst-pdf_function_compile",
"desc": "测试带pst-pdf的LaTeX编译流程"
},
{
"name": "test_texlive-pst-pdf_function_uninstall",
"desc": "测试软件包卸载功能"
}
]
}

View File

@@ -1,30 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-a/texlive-apptools",
"machine num": 1,
"cases": [
{
"name": "test_texlive-apptools_function_basic",
"desc": "Test basic functionality of texlive-apptools"
},
{
"name": "test_texlive-apptools_function_install",
"desc": "Test installation of texlive-apptools package"
},
{
"name": "test_texlive-apptools_function_uninstall",
"desc": "Test uninstallation of texlive-apptools package"
},
{
"name": "test_texlive-apptools_function_version",
"desc": "Test checking version of texlive-apptools"
},
{
"name": "test_texlive-apptools_function_help",
"desc": "Test displaying help or usage information"
},
{
"name": "test_texlive-apptools_function_basic_cmd",
"desc": "Test execution of basic provided commands"
}
]
}

View File

@@ -17,10 +17,6 @@
{
"name": "test_texlive-canoniclayout_function_listfiles",
"desc": "Test listing package files"
},
{
"name": "test_texlive-canoniclayout_function_usage",
"desc": "Test basic package usage in TeX"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-ecclesiastic",
"machine num": 1,
"cases": [
{
"name": "test_texlive-ecclesiastic_function_install",
"desc": "Test package installation"
}
]
}

View File

@@ -1,14 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-n/texlive-ladder",
"machine num": 1,
"cases": [
{
"name": "test_texlive-ladder_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-ladder_function_basic",
"desc": "Test basic command usage"
}
]
}

View File

@@ -2,25 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-o/texlive-mceinleger",
"machine num": 1,
"cases": [
{
"name": "test_texlive-mceinleger_function_install",
"desc": "Test installation of texlive-mceinleger"
},
{
"name": "test_texlive-mceinleger_function_check_installed",
"desc": "Check if texlive-mceinleger is installed in the system"
},
{
"name": "test_texlive-mceinleger_function_verify_content",
"desc": "Verify the package provides expected LaTeX files"
},
{
"name": "test_texlive-mceinleger_function_basic_usage",
"desc": "Test basic LaTeX document compilation using the package"
},
{
"name": "test_texlive-mceinleger_function_package_removal",
"desc": "Test removal/uninstallation of texlive-mceinleger"
}
]
}

View File

@@ -6,21 +6,9 @@
"name": "test_texlive-steinmetz-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-steinmetz-doc_function_verify_installed",
"desc": "Verify package is correctly installed"
},
{
"name": "test_texlive-steinmetz-doc_function_list_files",
"desc": "List installed documentation files"
},
{
"name": "test_texlive-steinmetz-doc_function_view_doc",
"desc": "Check documentation content accessibility"
},
{
"name": "test_texlive-steinmetz-doc_function_uninstall",
"desc": "Test package removal"
}
]
}

View File

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

View File

@@ -5,18 +5,6 @@
{
"name": "test_texlive-nanicolle_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_texlive-nanicolle_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-nanicolle_function_verify",
"desc": "Test package presence and integrity"
},
{
"name": "test_texlive-nanicolle_function_usage",
"desc": "Test basic package usage in LaTeX"
}
]
}

View File

@@ -1,18 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/xxhash-devel/xxhash-devel",
"machine num": 1,
"cases": [
{
"name": "test_xxhash-devel_function_install",
"desc": "测试xxhash-devel软件包的安装功能是否正常。"
},
{
"name": "test_xxhash-devel_function_header_exist",
"desc": "测试安装后开发头文件如xxhash.h是否已正确安装到系统目录。"
},
{
"name": "test_xxhash-devel_function_uninstall",
"desc": "测试xxhash-devel软件包的卸载功能是否正常确认相关文件被移除。"
}
]
}

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-15
# @License : Mulan PSL v2
# @Desc : Test basic CLI command
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试: Test basic CLI command"
# 检查是否已安装软件包
LOG_INFO "检查是否已安装测试软件包"
if dnf list installed test-package &>/dev/null; then
LOG_INFO "测试软件包已安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "测试软件包未安装,将在测试步骤中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有test-package软件包"
if ! dnf list available test-package &>/dev/null; then
LOG_ERROR "yum源中未找到test-package软件包"
exit 255
fi
# 如果未安装则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装test-package软件包"
dnf install -y test-package
CHECK_RESULT $? 0 0 "安装test-package失败"
fi
# 测试基本CLI命令
LOG_INFO "测试基本CLI命令"
test-command --help
CHECK_RESULT $? 0 0 "test-command --help命令执行失败"
# 测试带参数的命令
LOG_INFO "测试带有效参数的CLI命令"
test-command --version
CHECK_RESULT $? 0 0 "test-command --version命令执行失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
test-command --invalid-param 2>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "不支持的参数导致命令退出码为255"
exit 255
fi
# 测试多服务器场景(如果需要)
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
LOG_INFO "在第二个服务器上执行命令"
SSH_CMD "ls /tmp" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
CHECK_RESULT $? 0 0 "在第二个服务器上执行命令失败"
fi
# 环境清理
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载测试期间安装的软件包"
dnf remove -y test-package
CHECK_RESULT $? 0 0 "卸载test-package失败"
else
LOG_INFO "保持软件包安装状态"
fi
LOG_INFO "测试完成: Test basic CLI command"
}
main "$@"

View File

@@ -1,150 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-15
# @License : Mulan PSL v2
# @Desc : Test loading config file
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
TEST_PACKAGE="auto-common-function-config-load"
CONFIG_FILE="/etc/auto-common-function/config.conf"
LOG_FILE="/var/log/test_auto-common-function-config-load.log"
# 日志函数
LOG_INFO() {
echo "[INFO] $1" | tee -a $LOG_FILE
}
LOG_ERROR() {
echo "[ERROR] $1" | tee -a $LOG_FILE
}
# 检查软件包是否在yum源中存在
check_package_in_repo() {
LOG_INFO "检查yum源中是否存在软件包 $TEST_PACKAGE"
dnf list available $TEST_PACKAGE 2>/dev/null | grep -q $TEST_PACKAGE
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在软件包 $TEST_PACKAGE"
exit 255
fi
LOG_INFO "软件包 $TEST_PACKAGE 存在于yum源中"
}
# 检查命令参数
check_command_param() {
local cmd=$1
local param=$2
LOG_INFO "检查命令 $cmd 是否支持参数 $param"
$cmd --help 2>&1 | grep -q -- "$param"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $cmd 不支持参数 $param"
exit 255
fi
LOG_INFO "命令 $cmd 支持参数 $param"
}
# 安装软件包
install_package() {
LOG_INFO "安装软件包 $TEST_PACKAGE"
dnf install -y $TEST_PACKAGE
CHECK_RESULT $? 0 0 "安装软件包 $TEST_PACKAGE 失败"
LOG_INFO "软件包 $TEST_PACKAGE 安装成功"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载软件包 $TEST_PACKAGE"
dnf remove -y $TEST_PACKAGE
CHECK_RESULT $? 0 0 "卸载软件包 $TEST_PACKAGE 失败"
LOG_INFO "软件包 $TEST_PACKAGE 卸载成功"
}
# 检查配置文件加载
test_config_load() {
LOG_INFO "测试配置文件加载功能"
if [ -f $CONFIG_FILE ]; then
LOG_INFO "配置文件 $CONFIG_FILE 存在,尝试加载"
auto-common-function-config-load --config $CONFIG_FILE
CHECK_RESULT $? 0 0 "加载配置文件 $CONFIG_FILE 失败"
LOG_INFO "配置文件 $CONFIG_FILE 加载成功"
else
LOG_INFO "配置文件 $CONFIG_FILE 不存在,创建测试配置文件"
mkdir -p /etc/auto-common-function
echo "test_key=test_value" > $CONFIG_FILE
auto-common-function-config-load --config $CONFIG_FILE
CHECK_RESULT $? 0 0 "加载新创建的配置文件 $CONFIG_FILE 失败"
LOG_INFO "新创建的配置文件 $CONFIG_FILE 加载成功"
fi
}
# 主函数
main() {
LOG_INFO "开始测试: Test loading config file"
# 检查yum源中是否存在软件包
check_package_in_repo
# 检查命令参数
check_command_param "auto-common-function-config-load" "--config"
# 检查是否已安装软件包
LOG_INFO "检查软件包 $TEST_PACKAGE 是否已安装"
rpm -q $TEST_PACKAGE > /dev/null 2>&1
local installed=$?
if [ $installed -ne 0 ]; then
LOG_INFO "软件包 $TEST_PACKAGE 未安装,将进行安装"
install_package
local need_uninstall=1
else
LOG_INFO "软件包 $TEST_PACKAGE 已安装"
local need_uninstall=0
fi
# 执行测试
test_config_load
# 清理环境
LOG_INFO "清理测试环境"
if [ -f $CONFIG_FILE ] && [ $installed -eq 0 ]; then
# 如果之前已安装,保留配置文件
LOG_INFO "保留配置文件 $CONFIG_FILE"
else
# 如果之前未安装,删除测试创建的配置文件
if [ -f $CONFIG_FILE ]; then
rm -f $CONFIG_FILE
LOG_INFO "删除测试配置文件 $CONFIG_FILE"
fi
if [ -d /etc/auto-common-function ]; then
rmdir /etc/auto-common-function 2>/dev/null
fi
fi
# 如果测试前未安装,测试后卸载软件包
if [ $need_uninstall -eq 1 ]; then
uninstall_package
fi
LOG_INFO "测试完成: Test loading config file"
}
# 执行主函数
main
}
main "$@"

View File

@@ -1,186 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-15
# @License : Mulan PSL v2
# @Desc : Test logging functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试日志功能
LOG_INFO "开始测试日志功能"
# 定义软件包名称
PACKAGE_NAME="auto-common-function-logging"
TEST_PACKAGE_NAME="auto-common-function-logging-test"
# 检查软件包是否在yum源中
LOG_INFO "检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
# 检查测试软件包是否在yum源中
dnf list available $TEST_PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $TEST_PACKAGE_NAME 不在yum源中"
exit 255
fi
# 检查当前是否已安装软件包
LOG_INFO "检查软件包是否已安装"
rpm -q $PACKAGE_NAME &>/dev/null
PACKAGE_INSTALLED=$?
rpm -q $TEST_PACKAGE_NAME &>/dev/null
TEST_PACKAGE_INSTALLED=$?
# 记录初始安装状态
INITIAL_INSTALL=0
if [ $PACKAGE_INSTALLED -eq 0 ] && [ $TEST_PACKAGE_INSTALLED -eq 0 ]; then
INITIAL_INSTALL=1
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
else
LOG_INFO "软件包未安装,将进行安装测试"
fi
# 如果未安装,则安装软件包
if [ $INITIAL_INSTALL -eq 0 ]; then
LOG_INFO "安装软件包"
dnf install -y $PACKAGE_NAME $TEST_PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包失败"
# 验证安装
rpm -q $PACKAGE_NAME
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 未正确安装"
rpm -q $TEST_PACKAGE_NAME
CHECK_RESULT $? 0 0 "软件包 $TEST_PACKAGE_NAME 未正确安装"
fi
# 测试日志功能
LOG_INFO "测试基本日志功能"
# 检查日志命令是否存在
LOG_INFO "检查日志命令是否可用"
which logtest &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "日志测试命令不存在"
if [ $INITIAL_INSTALL -eq 0 ]; then
LOG_INFO "清理环境:卸载软件包"
dnf remove -y $PACKAGE_NAME $TEST_PACKAGE_NAME
fi
exit 255
fi
# 测试日志命令的基本功能
LOG_INFO "执行日志测试命令"
logtest --help &>/dev/null
CHECK_RESULT $? 0 0 "日志测试命令帮助信息获取失败"
# 测试日志级别参数
LOG_INFO "测试日志级别参数"
logtest --level info "测试信息日志" &>/dev/null
CHECK_RESULT $? 0 0 "信息日志级别测试失败"
logtest --level error "测试错误日志" &>/dev/null
CHECK_RESULT $? 0 0 "错误日志级别测试失败"
# 测试无效参数
LOG_INFO "测试无效参数处理"
logtest --invalid-param &>/dev/null
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
LOG_ERROR "无效参数处理不符合预期"
if [ $INITIAL_INSTALL -eq 0 ]; then
LOG_INFO "清理环境:卸载软件包"
dnf remove -y $PACKAGE_NAME $TEST_PACKAGE_NAME
fi
exit 255
fi
# 测试日志文件输出
LOG_INFO "测试日志文件输出"
TEST_LOG_FILE="/tmp/test_log_$(date +%s).log"
logtest --level info --output $TEST_LOG_FILE "测试文件输出" &>/dev/null
CHECK_RESULT $? 0 0 "日志文件输出测试失败"
# 检查日志文件是否存在且包含内容
if [ -f "$TEST_LOG_FILE" ]; then
LOG_INFO "日志文件创建成功"
FILE_SIZE=$(stat -c%s "$TEST_LOG_FILE" 2>/dev/null || stat -f%z "$TEST_LOG_FILE" 2>/dev/null)
if [ $FILE_SIZE -gt 0 ]; then
LOG_INFO "日志文件包含内容"
else
LOG_ERROR "日志文件为空"
fi
# 清理测试日志文件
rm -f $TEST_LOG_FILE
else
LOG_ERROR "日志文件未创建"
fi
# 在多节点环境下测试(如果定义了相关变量)
LOG_INFO "测试多节点日志功能"
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
SSH_CMD "which logtest" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
if [ $? -eq 0 ]; then
LOG_INFO "在节点2上测试日志功能"
SSH_CMD "logtest --level info "远程节点测试"" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "远程节点日志测试失败"
else
LOG_INFO "节点2未安装日志测试工具跳过远程测试"
fi
else
LOG_INFO "未配置多节点环境,跳过远程测试"
fi
# 环境清理
LOG_INFO "开始环境清理"
# 如果测试前未安装,则卸载软件包
if [ $INITIAL_INSTALL -eq 0 ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y $PACKAGE_NAME $TEST_PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包失败"
# 验证卸载
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 卸载失败"
exit 1
fi
rpm -q $TEST_PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 $TEST_PACKAGE_NAME 卸载失败"
exit 1
fi
LOG_INFO "软件包卸载成功,环境已恢复"
else
LOG_INFO "保持软件包安装状态,不进行卸载"
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/test_log_*.log 2>/dev/null
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-03-15
# @License : Mulan PSL v2
# @Desc : Test uninstallation of auto-common package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试卸载auto-common软件包"
# 检查yum源中是否存在auto-common软件包
LOG_INFO "检查yum源中是否存在auto-common软件包"
dnf list available auto-common > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在auto-common软件包"
exit 255
fi
# 检查当前环境是否已安装auto-common
LOG_INFO "检查当前环境是否已安装auto-common"
rpm -q auto-common > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装auto-common测试结束后保持安装状态"
INSTALLED=1
else
LOG_INFO "环境未安装auto-common将进行安装和卸载测试"
INSTALLED=0
# 安装auto-common软件包
LOG_INFO "安装auto-common软件包"
dnf install -y auto-common
CHECK_RESULT $? 0 0 "安装auto-common失败"
fi
# 模拟测试场景检查auto-common的某个命令或功能
LOG_INFO "测试auto-common的某个功能"
# 假设auto-common提供了一个命令auto-common-version这里检查其是否存在
LOG_INFO "检查auto-common-version命令是否存在"
auto-common-version --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "auto-common-version命令不存在或不支持"
exit 255
fi
# 执行命令并检查结果
LOG_INFO "执行auto-common-version命令"
auto-common-version
CHECK_RESULT $? 0 0 "执行auto-common-version失败"
# 如果需要第二个服务器操作,示例:
# LOG_INFO "在第二个服务器上执行命令"
# SSH_CMD "ls" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
# CHECK_RESULT $? 0 0 "在第二个服务器上执行命令失败"
# 环境清理:如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载auto-common软件包"
dnf remove -y auto-common
CHECK_RESULT $? 0 0 "卸载auto-common失败"
LOG_INFO "环境已恢复到未安装auto-common的状态"
else
LOG_INFO "环境保持已安装auto-common的状态"
fi
LOG_INFO "测试完成卸载auto-common软件包"
}
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-15
# @License : Mulan PSL v2
# @Desc : Test common utility parsing
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test common utility parsing"
# 检查环境是否已安装
LOG_INFO "检查环境是否已安装"
rpm -qa | grep -q "auto-common-function-util-parse"
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装,测试结束后将保持安装状态"
ENV_INSTALLED=true
else
LOG_INFO "环境未安装,将在测试过程中安装"
ENV_INSTALLED=false
fi
# 检查软件包是否在yum源中
LOG_INFO "检查软件包是否在yum源中"
dnf list available "auto-common-function-util-parse" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 auto-common-function-util-parse 不在yum源中"
exit 255
fi
# 检查命令参数
LOG_INFO "检查命令参数"
if [ -z "$1" ]; then
LOG_ERROR "缺少必要参数"
exit 255
fi
# 执行安装(如果环境未安装)
if [ "$ENV_INSTALLED" = false ]; then
LOG_INFO "安装软件包 auto-common-function-util-parse"
dnf install -y "auto-common-function-util-parse"
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 执行测试命令
LOG_INFO "执行测试命令"
auto-common-function-util-parse "$1"
CHECK_RESULT $? 0 0 "执行命令失败"
# 清理环境(如果测试前未安装)
if [ "$ENV_INSTALLED" = false ]; then
LOG_INFO "卸载软件包 auto-common-function-util-parse"
dnf remove -y "auto-common-function-util-parse"
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试完成Test common utility parsing"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-15
# @License : Mulan PSL v2
# @Desc : Test checking version of auto-common
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查auto-common版本"
# 检查是否已安装auto-common
LOG_INFO "步骤1检查是否已安装auto-common软件包"
if rpm -q auto-common &> /dev/null; then
LOG_INFO "auto-common已安装跳过安装步骤"
INSTALLED_BEFORE="true"
else
LOG_INFO "auto-common未安装将在测试过程中安装"
INSTALLED_BEFORE="false"
fi
# 检查yum源中是否存在auto-common软件包
LOG_INFO "步骤2检查yum源中是否存在auto-common软件包"
if ! dnf list available auto-common &> /dev/null; then
LOG_ERROR "yum源中未找到auto-common软件包"
exit 255
fi
# 如果未安装则安装auto-common
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤3安装auto-common软件包"
dnf install -y auto-common
CHECK_RESULT $? 0 0 "安装auto-common失败"
fi
# 测试检查版本命令
LOG_INFO "步骤4执行auto-common版本检查命令"
auto-common --version
CHECK_RESULT $? 0 0 "执行auto-common --version命令失败"
# 测试不支持的参数
LOG_INFO "步骤5测试不支持的参数"
auto-common --invalid-param 2>&1 | grep -q "invalid option"
if [ $? -eq 0 ]; then
LOG_INFO "参数检查正常:不支持--invalid-param参数"
else
LOG_ERROR "参数检查失败:--invalid-param参数未被正确识别为无效"
exit 255
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤6清理环境卸载auto-common软件包"
dnf remove -y auto-common
CHECK_RESULT $? 0 0 "卸载auto-common失败"
fi
LOG_INFO "测试完成auto-common版本检查测试通过"
}
main "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-08
# @License : Mulan PSL v2
# @Desc : 测试genwqe-zlib的压缩功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查genwqe-zlib软件包是否已安装
LOG_INFO "检查genwqe-zlib软件包是否已安装"
if rpm -q genwqe-zlib &>/dev/null; then
LOG_INFO "genwqe-zlib软件包已安装"
INSTALLED=true
else
LOG_INFO "genwqe-zlib软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在genwqe-zlib软件包
LOG_INFO "检查yum源中是否存在genwqe-zlib软件包"
if ! dnf list available genwqe-zlib &>/dev/null; then
LOG_ERROR "yum源中未找到genwqe-zlib软件包"
exit 255
fi
# 如果未安装则安装genwqe-zlib软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装genwqe-zlib软件包"
dnf install -y genwqe-zlib
CHECK_RESULT $? 0 0 "安装genwqe-zlib软件包失败"
LOG_INFO "genwqe-zlib软件包安装成功"
fi
# 测试genwqe-zlib的压缩功能
LOG_INFO "测试genwqe-zlib的压缩功能"
if ! genzpipe --help &>/dev/null; then
LOG_ERROR "genzpipe命令不存在或不支持"
exit 255
fi
# 创建一个测试文件
LOG_INFO "创建测试文件"
echo "This is a test file for genwqe-zlib compression." > testfile.txt
# 压缩测试文件
LOG_INFO "压缩测试文件"
genzpipe -c < testfile.txt > testfile.txt.gz 2>/dev/null
CHECK_RESULT $? 0 0 "压缩测试文件失败"
# 解压缩测试文件并验证内容一致性
LOG_INFO "解压缩测试文件并验证内容一致性"
genzpipe -d < testfile.txt.gz > testfile_decompressed.txt 2>/dev/null
CHECK_RESULT $? 0 0 "解压缩测试文件失败"
cmp testfile.txt testfile_decompressed.txt
CHECK_RESULT $? 0 0 "解压缩后的文件内容与原始文件不一致"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f testfile.txt testfile.txt.gz testfile_decompressed.txt
# 如果脚本开始时未安装genwqe-zlib则在结束时卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载genwqe-zlib软件包"
dnf remove -y genwqe-zlib &>/dev/null
CHECK_RESULT $? 0 0 "卸载genwqe-zlib软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,133 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 测试genwqe-zlib的解压缩功能验证其是否能正确还原压缩数据
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(如果未定义)
type LOG_INFO >/dev/null 2>&1 || LOG_INFO() { echo "[INFO] $*"; }
type LOG_ERROR >/dev/null 2>&1 || LOG_ERROR() { echo "[ERROR] $*"; }
# 定义检查结果函数(如果未定义)
type CHECK_RESULT >/dev/null 2>&1 || CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -eq $expect ]; then
LOG_INFO "$message 成功"
else
LOG_ERROR "$message 失败"
exit $actual
fi
fi
}
# 定义SSH命令函数如果未定义
type SSH_CMD >/dev/null 2>&1 || SSH_CMD() {
local cmd=$1
local ip=$2
local password=$3
local user=$4
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
}
# 测试genwqe-zlib的解压缩功能
LOG_INFO "开始测试genwqe-zlib的解压缩功能"
# 检查是否已安装genwqe-zlib
LOG_INFO "检查genwqe-zlib是否已安装"
if rpm -q genwqe-zlib >/dev/null 2>&1; then
LOG_INFO "genwqe-zlib已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "genwqe-zlib未安装将在测试过程中安装"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有genwqe-zlib软件包
LOG_INFO "检查yum源中是否有genwqe-zlib软件包"
dnf list available genwqe-zlib >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到genwqe-zlib软件包"
exit 255
fi
# 如果未安装则安装genwqe-zlib
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "安装genwqe-zlib软件包"
dnf install -y genwqe-zlib >/dev/null 2>&1
CHECK_RESULT $? 0 0 "安装genwqe-zlib"
fi
# 创建测试文件
LOG_INFO "创建测试文件"
echo "This is a test file for genwqe-zlib decompression function testing." > test_input.txt
CHECK_RESULT $? 0 0 "创建测试文件"
# 使用genwqe-zlib压缩测试文件
LOG_INFO "使用genwqe-zlib压缩测试文件"
genwqe_zlib -c test_input.txt > test_compressed.gz 2>/dev/null
CHECK_RESULT $? 0 0 "压缩测试文件"
# 检查压缩文件是否存在
LOG_INFO "检查压缩文件是否存在"
if [ -f test_compressed.gz ]; then
LOG_INFO "压缩文件创建成功"
else
LOG_ERROR "压缩文件创建失败"
exit 1
fi
# 使用genwqe-zlib解压缩文件
LOG_INFO "使用genwqe-zlib解压缩文件"
genwqe_zlib -d test_compressed.gz > test_decompressed.txt 2>/dev/null
CHECK_RESULT $? 0 0 "解压缩文件"
# 检查解压缩文件是否存在
LOG_INFO "检查解压缩文件是否存在"
if [ -f test_decompressed.txt ]; then
LOG_INFO "解压缩文件创建成功"
else
LOG_ERROR "解压缩文件创建失败"
exit 1
fi
# 比较原始文件和解压缩后的文件
LOG_INFO "比较原始文件和解压缩后的文件"
cmp test_input.txt test_decompressed.txt >/dev/null 2>&1
CHECK_RESULT $? 0 0 "比较文件内容"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_input.txt test_compressed.gz test_decompressed.txt
CHECK_RESULT $? 0 0 "清理测试文件"
# 如果测试前未安装则卸载genwqe-zlib
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载genwqe-zlib软件包"
dnf remove -y genwqe-zlib >/dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载genwqe-zlib"
fi
LOG_INFO "genwqe-zlib解压缩功能测试完成"
}
main "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 测试genwqe-zlib软件包的安装功能确保其能正确安装到系统中
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了genwqe-zlib软件包
LOG_INFO "检查genwqe-zlib软件包是否已经安装"
rpm -q genwqe-zlib > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "genwqe-zlib软件包已经安装脚本结束时将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "genwqe-zlib软件包未安装将在测试过程中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否存在genwqe-zlib软件包
LOG_INFO "检查yum源中是否存在genwqe-zlib软件包"
dnf list available genwqe-zlib > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到genwqe-zlib软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装genwqe-zlib软件包"
dnf install -y genwqe-zlib
CHECK_RESULT $? 0 0 "安装genwqe-zlib软件包失败"
LOG_INFO "genwqe-zlib软件包安装成功"
fi
# 验证软件包是否正确安装
LOG_INFO "验证genwqe-zlib软件包是否正确安装"
rpm -q genwqe-zlib > /dev/null 2>&1
CHECK_RESULT $? 0 0 "genwqe-zlib软件包未正确安装"
# 测试软件包的基本功能
LOG_INFO "测试genwqe-zlib软件包的基本功能"
# 这里可以根据实际软件包功能添加测试命令,例如检查相关文件是否存在
# 示例:检查是否安装了库文件
ls /usr/lib*/libz* > /dev/null 2>&1
CHECK_RESULT $? 0 0 "genwqe-zlib相关文件未找到"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载genwqe-zlib软件包"
dnf remove -y genwqe-zlib
CHECK_RESULT $? 0 0 "卸载genwqe-zlib软件包失败"
LOG_INFO "genwqe-zlib软件包已成功卸载"
else
LOG_INFO "测试前已安装genwqe-zlib保持安装状态"
fi
LOG_INFO "genwqe-zlib软件包安装功能测试完成"
}
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-04-01
# @License : Mulan PSL v2
# @Desc : 测试genwqe-zlib与系统库的集成确保其作为加速库能被正常调用
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否以root用户运行
if [[ $EUID -ne 0 ]]; then
LOG_ERROR "此脚本必须以root用户身份运行"
exit 1
fi
# 定义软件包名称
PACKAGE_NAME="genwqe-zlib"
# 步骤1检查yum源中是否存在genwqe-zlib软件包
LOG_INFO "步骤1检查yum源中是否存在${PACKAGE_NAME}软件包"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
# 步骤2检查系统是否已安装genwqe-zlib
LOG_INFO "步骤2检查系统是否已安装${PACKAGE_NAME}"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "${PACKAGE_NAME}已安装,脚本结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "${PACKAGE_NAME}未安装,将在测试步骤中安装"
ALREADY_INSTALLED=0
fi
# 步骤3安装genwqe-zlib如果未安装
if [[ ${ALREADY_INSTALLED} -eq 0 ]]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
LOG_INFO "${PACKAGE_NAME}安装成功"
fi
# 步骤4检查genwqe-zlib命令是否可用
LOG_INFO "步骤4检查genwqe-zlib命令是否可用"
if ! command -v genwqe_memcopy &>/dev/null; then
LOG_ERROR "genwqe_memcopy命令不存在"
exit 255
fi
LOG_INFO "genwqe_memcopy命令可用"
# 步骤5测试genwqe-zlib与系统库的集成
LOG_INFO "步骤5测试genwqe-zlib与系统库的集成"
# 创建一个测试文件
TEST_FILE="/tmp/test_genwqe_zlib.txt"
echo "This is a test file for genwqe-zlib integration." > ${TEST_FILE}
COMPRESSED_FILE="${TEST_FILE}.gz"
# 使用genwqe加速的gzip压缩
LOG_INFO "使用genwqe加速的gzip压缩测试文件"
GENWQE_GZIP_CMD="genwqe_gzip"
if ! command -v ${GENWQE_GZIP_CMD} &>/dev/null; then
LOG_ERROR "${GENWQE_GZIP_CMD}命令不存在或不支持"
exit 255
fi
${GENWQE_GZIP_CMD} -c ${TEST_FILE} > ${COMPRESSED_FILE}
CHECK_RESULT $? 0 0 "genwqe_gzip压缩失败"
# 检查压缩文件是否存在且非空
if [[ -s ${COMPRESSED_FILE} ]]; then
LOG_INFO "压缩文件创建成功"
else
LOG_ERROR "压缩文件创建失败"
exit 1
fi
# 使用genwqe加速的gunzip解压
LOG_INFO "使用genwqe加速的gunzip解压测试文件"
GENWQE_GUNZIP_CMD="genwqe_gunzip"
if ! command -v ${GENWQE_GUNZIP_CMD} &>/dev/null; then
LOG_ERROR "${GENWQE_GUNZIP_CMD}命令不存在或不支持"
exit 255
fi
DECOMPRESSED_FILE="/tmp/test_genwqe_zlib_decompressed.txt"
${GENWQE_GUNZIP_CMD} -c ${COMPRESSED_FILE} > ${DECOMPRESSED_FILE}
CHECK_RESULT $? 0 0 "genwqe_gunzip解压失败"
# 检查解压后的文件内容是否一致
LOG_INFO "检查解压后的文件内容是否与原始文件一致"
if cmp -s ${TEST_FILE} ${DECOMPRESSED_FILE}; then
LOG_INFO "文件内容一致genwqe-zlib与系统库集成正常"
else
LOG_ERROR "文件内容不一致genwqe-zlib与系统库集成可能存在问题"
exit 1
fi
# 步骤6清理测试文件
LOG_INFO "步骤6清理测试文件"
rm -f ${TEST_FILE} ${COMPRESSED_FILE} ${DECOMPRESSED_FILE}
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 步骤7如果测试前未安装则卸载genwqe-zlib
if [[ ${ALREADY_INSTALLED} -eq 0 ]]; then
LOG_INFO "步骤7卸载${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
LOG_INFO "${PACKAGE_NAME}卸载成功"
else
LOG_INFO "步骤7保持${PACKAGE_NAME}安装状态"
fi
LOG_INFO "测试完成genwqe-zlib与系统库的集成测试通过"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : 测试genwqe-zlib软件包的卸载功能确保其能被干净地移除
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="genwqe-zlib"
LOG_INFO "开始测试 $PACKAGE_NAME 软件包的卸载功能"
LOG_INFO "步骤1: 检查当前系统是否已安装 $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装,测试结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "$PACKAGE_NAME 未安装,将在测试前安装,并在测试后卸载"
ALREADY_INSTALLED=0
fi
LOG_INFO "步骤2: 检查 yum 源中是否存在 $PACKAGE_NAME 软件包"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum 源中未找到 $PACKAGE_NAME 软件包"
exit 255
fi
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3: 安装 $PACKAGE_NAME 软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
LOG_INFO "步骤4: 验证 $PACKAGE_NAME 软件包是否安装成功"
rpm -q $PACKAGE_NAME
CHECK_RESULT $? 0 0 "$PACKAGE_NAME 未正确安装"
LOG_INFO "步骤5: 卸载 $PACKAGE_NAME 软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
LOG_INFO "步骤6: 验证 $PACKAGE_NAME 软件包是否已卸载"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "$PACKAGE_NAME 卸载后仍存在于系统中"
CHECK_RESULT 1 0 0 "$PACKAGE_NAME 卸载不干净"
else
LOG_INFO "$PACKAGE_NAME 已成功卸载"
CHECK_RESULT 0 0 0 "$PACKAGE_NAME 卸载验证失败"
fi
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤7: 清理环境恢复原始状态无需操作已在步骤5卸载"
else
LOG_INFO "步骤7: 恢复环境,重新安装 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "重新安装 $PACKAGE_NAME 失败"
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-04-01
# @License : Mulan PSL v2
# @Desc : 测试genwqe-zlib版本查询功能验证其能正确返回版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试genwqe-zlib版本查询功能验证其能正确返回版本信息
LOG_INFO "开始测试genwqe-zlib版本查询功能"
# 定义软件包名称
PACKAGE_NAME="genwqe-zlib"
# 步骤1检查yum源中是否存在genwqe-zlib软件包
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检查系统是否已安装genwqe-zlib
LOG_INFO "步骤2检查系统是否已安装${PACKAGE_NAME}"
rpm -q ${PACKAGE_NAME} &>/dev/null
IS_INSTALLED=$?
NEED_CLEANUP=0
# 步骤3如果未安装则安装软件包
if [ $IS_INSTALLED -ne 0 ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
NEED_CLEANUP=1
else
LOG_INFO "步骤3${PACKAGE_NAME}已安装,跳过安装步骤"
fi
# 步骤4验证genwqe-zlib版本查询功能
LOG_INFO "步骤4验证genwqe-zlib版本查询功能"
# 检查genwqe-zlib命令是否支持版本参数
genwqe-zlib --help 2>&1 | grep -q -- "--version"
if [ $? -ne 0 ]; then
LOG_ERROR "genwqe-zlib命令不支持--version参数"
exit 255
fi
# 执行版本查询命令
VERSION_OUTPUT=$(genwqe-zlib --version 2>&1)
CHECK_RESULT $? 0 0 "执行genwqe-zlib --version失败"
# 检查版本输出是否包含有效信息
if [ -z "$VERSION_OUTPUT" ]; then
LOG_ERROR "genwqe-zlib版本查询返回空结果"
exit 1
fi
LOG_INFO "genwqe-zlib版本信息$VERSION_OUTPUT"
# 步骤5清理环境
LOG_INFO "步骤5清理环境"
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
else
LOG_INFO "${PACKAGE_NAME}为预安装软件包,保持安装状态"
fi
LOG_INFO "测试genwqe-zlib版本查询功能完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-03
# @License : Mulan PSL v2
# @Desc : 测试软件包 kunpengsecl-devel 的配置功能,验证配置是否正确加载。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 kunpengsecl-devel 软件包
LOG_INFO "检查 kunpengsecl-devel 软件包是否已安装"
rpm -q kunpengsecl-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "kunpengsecl-devel 软件包已安装"
INSTALLED=true
else
LOG_INFO "kunpengsecl-devel 软件包未安装"
INSTALLED=false
fi
# 检查 yum 源中是否存在 kunpengsecl-devel 软件包
LOG_INFO "检查 yum 源中是否存在 kunpengsecl-devel 软件包"
dnf list available kunpengsecl-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中不存在 kunpengsecl-devel 软件包"
exit 255
fi
# 如果未安装,则安装 kunpengsecl-devel 软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装 kunpengsecl-devel 软件包"
dnf install -y kunpengsecl-devel
CHECK_RESULT $? 0 0 "安装 kunpengsecl-devel 软件包失败"
fi
# 验证配置是否正确加载
LOG_INFO "验证 kunpengsecl-devel 配置是否正确加载"
kunpengsecl-config --test > /dev/null 2>&1
CHECK_RESULT $? 0 0 "kunpengsecl-config 配置加载失败"
# 如果最初未安装,则在脚本结束前卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 kunpengsecl-devel 软件包"
dnf remove -y kunpengsecl-devel
CHECK_RESULT $? 0 0 "卸载kun p engs ecl- de vel软 件 失 败 "
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-02-21
# @License : Mulan PSL v2
# @Desc : Test text analyzer functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出可选但通常LOG_INFO/LOG_ERROR会处理
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 测试用例描述Test text analyzer functionality
LOG_INFO "开始测试Test text analyzer functionality"
# 步骤1: 检查环境中是否已安装lucene-demo软件包
LOG_INFO "步骤1: 检查lucene-demo软件包是否已安装"
if rpm -q lucene-demo &>/dev/null; then
LOG_INFO "lucene-demo软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "lucene-demo软件包未安装将在测试中安装"
INSTALLED_BEFORE_TEST=false
fi
# 步骤2: 检查yum源中是否有lucene-demo软件包
LOG_INFO "步骤2: 检查yum源中是否有lucene-demo软件包"
if ! dnf list available lucene-demo &>/dev/null; then
LOG_ERROR "yum源中未找到lucene-demo软件包"
exit 255
fi
# 步骤3: 如果未安装则安装lucene-demo软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "步骤3: 安装lucene-demo软件包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo软件包失败"
fi
# 步骤4: 测试text analyzer功能
LOG_INFO "步骤4: 测试text analyzer功能"
# 假设lucene-demo提供了一个命令行工具"analyze-text"来测试analyzer功能
# 检查analyze-text命令是否存在
if ! command -v analyze-text &>/dev/null; then
LOG_ERROR "analyze-text命令不存在或不支持"
exit 255
fi
# 测试analyze-text命令的基本参数
LOG_INFO "步骤4.1: 测试analyze-text命令的--help参数"
analyze-text --help
CHECK_RESULT $? 0 0 "analyze-text --help 执行失败"
# 测试analyze-text命令的必需参数假设--input是必需参数
LOG_INFO "步骤4.2: 测试analyze-text命令的--input参数"
if analyze-text --input "test text" 2>&1 | grep -q "error"; then
LOG_ERROR "analyze-text --input 参数不支持或执行失败"
exit 255
fi
CHECK_RESULT $? 0 0 "analyze-text --input 执行失败"
# 步骤5: 清理环境,恢复到之前的状态
LOG_INFO "步骤5: 清理测试环境"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载lucene-demo软件包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo软件包失败"
else
LOG_INFO "测试前已安装lucene-demo保持安装状态"
fi
LOG_INFO "测试完成Test text analyzer functionality"
}
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-21
# @License : Mulan PSL v2
# @Desc : Test creating a basic index
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test creating a basic index"
# 定义软件包名称
PACKAGE_NAME="lucene-demo"
LOG_INFO "检查yum源中是否存在软件包: $PACKAGE_NAME"
# 检查软件包是否在yum源中
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中未找到软件包: $PACKAGE_NAME"
exit 255
fi
# 判断软件包是否已安装
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试完成后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将进行安装"
INSTALLED_BEFORE=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装软件包: $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 测试创建基本索引的功能
LOG_INFO "执行创建基本索引的命令"
# 假设创建索引的命令为 lucene-demo create-index这里根据实际情况调整命令和参数
COMMAND="lucene-demo"
PARAM="create-index"
# 检查命令是否存在
if ! command -v "$COMMAND" &>/dev/null; then
LOG_ERROR "命令 $COMMAND 不存在"
exit 255
fi
# 检查参数是否支持,这里假设通过 --help 检查
if ! "$COMMAND" --help 2>&1 | grep -q "$PARAM"; then
LOG_ERROR "命令 $COMMAND 不支持参数 $PARAM"
exit 255
fi
# 执行命令
"$COMMAND" "$PARAM"
CHECK_RESULT $? 0 0 "创建基本索引失败"
# 环境恢复:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载软件包: $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "测试前软件包已安装,保持安装状态"
fi
LOG_INFO "测试完成Test creating a basic index"
}
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-21
# @License : Mulan PSL v2
# @Desc : Test performing a basic search
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试:执行基本搜索功能测试"
# 步骤1检查软件包是否在yum源中
LOG_INFO "步骤1检查lucene-demo软件包是否在yum源中"
if ! dnf list lucene-demo &>/dev/null; then
LOG_ERROR "lucene-demo软件包不在yum源中"
exit 255
fi
# 步骤2检查当前环境是否已安装lucene-demo
LOG_INFO "步骤2检查当前环境是否已安装lucene-demo"
if rpm -q lucene-demo &>/dev/null; then
INSTALLED=true
LOG_INFO "lucene-demo已安装测试结束后将保持安装状态"
else
INSTALLED=false
LOG_INFO "lucene-demo未安装将进行安装"
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装lucene-demo软件包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo失败"
fi
# 步骤4检查lucene-demo命令是否支持基本搜索参数
LOG_INFO "步骤4检查lucene-demo命令是否支持基本搜索参数"
lucene-demo --help | grep -q "\-\-search"
CHECK_RESULT $? 0 0 "lucene-demo命令不支持--search参数"
lucene-demo --help | grep -q "\-\-query"
CHECK_RESULT $? 0 0 "lucene-demo命令不支持--query参数"
# 步骤5执行基本搜索命令
LOG_INFO "步骤5执行基本搜索命令"
lucene-demo --search --query "test query"
CHECK_RESULT $? 0 0 "执行基本搜索失败"
# 步骤6验证搜索结果
LOG_INFO "步骤6验证搜索结果"
SEARCH_RESULT=$(lucene-demo --search --query "test query" | wc -l)
if [ "$SEARCH_RESULT" -gt 0 ]; then
LOG_INFO "搜索成功,返回结果行数:$SEARCH_RESULT"
else
LOG_ERROR "搜索失败,未返回结果"
exit 1
fi
# 步骤7清理环境
LOG_INFO "步骤7清理环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载lucene-demo软件包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo失败"
else
LOG_INFO "保持lucene-demo安装状态"
fi
LOG_INFO "测试完成:基本搜索功能测试通过"
}
main "$@"

View File

@@ -1,124 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-21
# @License : Mulan PSL v2
# @Desc : Test deleting a document from index
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试删除索引中的文档功能
LOG_INFO "开始测试:删除索引中的文档"
# 检查环境是否已安装
LOG_INFO "步骤1检查环境是否已安装"
rpm -q lucene-demo > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到lucene-demo已安装"
already_installed=true
else
LOG_INFO "未检测到lucene-demo安装"
already_installed=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "步骤2检查yum源中是否有lucene-demo软件包"
dnf list available lucene-demo > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到lucene-demo软件包"
exit 255
fi
# 如果未安装则进行安装
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3安装lucene-demo软件包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo失败"
fi
# 检查lucene-demo命令是否支持delete_doc参数
LOG_INFO "步骤4检查lucene-demo命令是否支持delete_doc参数"
lucene-demo --help 2>&1 | grep -q "delete_doc"
if [ $? -ne 0 ]; then
LOG_ERROR "lucene-demo命令不支持delete_doc参数"
# 清理环境
if [ "$already_installed" = false ]; then
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo失败"
fi
exit 255
fi
# 创建测试索引和文档
LOG_INFO "步骤5创建测试索引和文档"
lucene-demo create_index test_index
CHECK_RESULT $? 0 0 "创建索引失败"
lucene-demo add_doc test_index doc1 "测试文档内容1"
CHECK_RESULT $? 0 0 "添加文档失败"
lucene-demo add_doc test_index doc2 "测试文档内容2"
CHECK_RESULT $? 0 0 "添加文档失败"
# 验证文档已添加
LOG_INFO "步骤6验证文档已成功添加"
lucene-demo search test_index "测试文档" | grep -q "doc1"
CHECK_RESULT $? 0 0 "未找到添加的文档doc1"
lucene-demo search test_index "测试文档" | grep -q "doc2"
CHECK_RESULT $? 0 0 "未找到添加的文档doc2"
# 删除文档
LOG_INFO "步骤7删除文档doc1"
lucene-demo delete_doc test_index doc1
CHECK_RESULT $? 0 0 "删除文档失败"
# 验证文档已删除
LOG_INFO "步骤8验证文档已成功删除"
lucene-demo search test_index "测试文档" | grep -q "doc1"
if [ $? -eq 0 ]; then
LOG_ERROR "文档doc1未被成功删除"
CHECK_RESULT 1 0 0 "文档删除验证失败"
else
LOG_INFO "文档doc1已成功删除"
CHECK_RESULT 0 0 0 "文档删除验证成功"
fi
# 验证其他文档仍然存在
LOG_INFO "步骤9验证其他文档仍然存在"
lucene-demo search test_index "测试文档" | grep -q "doc2"
CHECK_RESULT $? 0 0 "文档doc2在删除后不应消失"
# 清理测试索引
LOG_INFO "步骤10清理测试索引"
lucene-demo delete_index test_index
CHECK_RESULT $? 0 0 "删除索引失败"
# 恢复环境状态
LOG_INFO "步骤11恢复环境状态"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo失败"
else
LOG_INFO "保持原有安装状态"
fi
LOG_INFO "测试完成:删除索引中的文档功能测试成功"
}
main "$@"

View File

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

View File

@@ -1,130 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-21
# @License : Mulan PSL v2
# @Desc : Test different query types
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(根据要求直接使用,无需重新定义)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查结果函数(根据要求直接使用,无需重新定义)
CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -ne $expect ]; then
LOG_ERROR "$message"
exit $actual
fi
elif [ $mode -eq 1 ]; then
if [ $actual -eq $expect ]; then
LOG_ERROR "$message"
exit 1
fi
fi
}
# 定义SSH_CMD函数根据要求直接使用无需重新定义
SSH_CMD() {
local cmd=$1
local ip=$2
local password=$3
local user=$4
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
}
# 定义软件包名称
PACKAGE_NAME="lucene-demo"
LOG_INFO "开始测试不同查询类型"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在$PACKAGE_NAME软件包"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在$PACKAGE_NAME软件包"
exit 255
fi
# 检查当前环境是否已安装软件包
LOG_INFO "检查当前环境是否已安装$PACKAGE_NAME软件包"
if rpm -q $PACKAGE_NAME &>/dev/null; then
INSTALLED=true
LOG_INFO "$PACKAGE_NAME软件包已安装,测试结束后将保持安装状态"
else
INSTALLED=false
LOG_INFO "$PACKAGE_NAME软件包未安装,将在测试前安装并在测试后卸载"
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装$PACKAGE_NAME软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME软件包失败"
fi
# 测试不同查询类型
LOG_INFO "测试查询类型1基础查询"
lucene-demo --query-type basic --query "test query"
CHECK_RESULT $? 0 0 "基础查询测试失败"
LOG_INFO "测试查询类型2范围查询"
lucene-demo --query-type range --start 1 --end 10
CHECK_RESULT $? 0 0 "范围查询测试失败"
LOG_INFO "测试查询类型3模糊查询"
lucene-demo --query-type fuzzy --query "test"
CHECK_RESULT $? 0 0 "模糊查询测试失败"
LOG_INFO "测试查询类型4通配符查询"
lucene-demo --query-type wildcard --query "test*"
CHECK_RESULT $? 0 0 "通配符查询测试失败"
LOG_INFO "测试查询类型5短语查询"
lucene-demo --query-type phrase --query "test query"
CHECK_RESULT $? 0 0 "短语查询测试失败"
# 测试不支持的查询类型(预期失败)
LOG_INFO "测试不支持的查询类型(预期失败)"
lucene-demo --query-type unsupported --query "test"
if [ $? -eq 255 ]; then
LOG_INFO "不支持的查询类型测试通过按预期退出码255"
else
LOG_ERROR "不支持的查询类型测试失败未按预期退出码255退出"
exit 1
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载$PACKAGE_NAME软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载$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-09
# @License : Mulan PSL v2
# @Desc : Test the scoring mechanism of lucene-demo
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 lucene-demo 的评分机制"
# 检查软件包是否已安装
LOG_INFO "检查 lucene-demo 是否已安装"
if dnf list installed lucene-demo &>/dev/null; then
LOG_INFO "lucene-demo 已安装,脚本结束时将保持安装状态"
installed=true
else
LOG_INFO "lucene-demo 未安装,将在测试结束后卸载"
installed=false
fi
# 检查 yum 源中是否存在 lucene-demo 软件包
LOG_INFO "检查 yum 源中是否存在 lucene-demo"
if ! dnf list available lucene-demo &>/dev/null; then
LOG_ERROR "yum 源中未找到 lucene-demo 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 lucene-demo"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装 lucene-demo 失败"
fi
# 测试评分机制
LOG_INFO "测试 lucene-demo 的评分机制"
lucene-demo --score-test
CHECK_RESULT $? 0 0 "评分机制测试失败"
# 如果需要清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载 lucene-demo"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载 lucene-demo 失败"
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-09
# @License : Mulan PSL v2
# @Desc : Test the search functionality of lucene-demo
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查lucene-demo软件包是否已安装
LOG_INFO "检查lucene-demo软件包是否已安装"
if rpm -q lucene-demo &>/dev/null; then
LOG_INFO "lucene-demo软件包已安装"
INSTALLED=true
else
LOG_INFO "lucene-demo软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在lucene-demo软件包
LOG_INFO "检查yum源中是否存在lucene-demo软件包"
if ! dnf list available lucene-demo &>/dev/null; then
LOG_ERROR "yum源中不存在lucene-demo软件包"
exit 255
fi
# 如果未安装则安装lucene-demo软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装lucene-demo软件包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo软件包失败"
fi
# 测试lucene-demo的搜索功能
LOG_INFO "测试lucene-demo的搜索功能"
lucene-demo search --query "test"
CHECK_RESULT $? 0 0 "lucene-demo搜索功能测试失败"
# 如果脚本开始时未安装则卸载lucene-demo软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载lucene-demo软件包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo软件包失败"
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-02-21
# @License : Mulan PSL v2
# @Desc : Test sorting search results
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test sorting search results"
# 检查是否已安装lucene-demo包
LOG_INFO "检查lucene-demo包是否已安装"
if dnf list installed lucene-demo &>/dev/null; then
LOG_INFO "lucene-demo包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "lucene-demo包未安装将在测试步骤中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有lucene-demo包
LOG_INFO "检查yum源中是否有lucene-demo包"
if ! dnf list available lucene-demo &>/dev/null; then
LOG_ERROR "yum源中未找到lucene-demo包"
exit 255
fi
# 如果未安装则安装lucene-demo包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装lucene-demo包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo包失败"
fi
# 检查lucene-demo命令是否存在
LOG_INFO "检查lucene-demo命令是否存在"
if ! command -v lucene-demo &>/dev/null; then
LOG_ERROR "lucene-demo命令不存在"
exit 255
fi
# 检查lucene-demo命令是否支持sort参数
LOG_INFO "检查lucene-demo命令是否支持sort参数"
if ! lucene-demo --help | grep -q "sort"; then
LOG_ERROR "lucene-demo命令不支持sort参数"
exit 255
fi
# 执行排序搜索测试
LOG_INFO "执行排序搜索测试"
lucene-demo search --query "test" --sort "field1"
CHECK_RESULT $? 0 0 "排序搜索测试失败"
# 如果需要第二个服务器执行命令,示例:
# LOG_INFO "在第二个服务器上执行命令"
# SSH_CMD "ls" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
# CHECK_RESULT $? 0 0 "在第二个服务器上执行命令失败"
# 清理环境如果测试前未安装则卸载lucene-demo包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载lucene-demo包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo包失败"
else
LOG_INFO "测试前已安装lucene-demo包测试结束后保持安装状态"
fi
LOG_INFO "测试完成Test sorting search results"
}
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-21
# @License : Mulan PSL v2
# @Desc : Test uninstallation of lucene-demo package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test uninstallation of lucene-demo package"
LOG_INFO "步骤1检查lucene-demo软件包是否已在yum源中"
if ! dnf list available lucene-demo &>/dev/null; then
LOG_ERROR "yum源中未找到lucene-demo软件包"
exit 255
fi
LOG_INFO "yum源中存在lucene-demo软件包"
LOG_INFO "步骤2检查当前是否已安装lucene-demo"
if rpm -q lucene-demo &>/dev/null; then
LOG_INFO "lucene-demo已安装测试结束前保持安装状态"
INSTALLED_BEFORE_TEST=1
else
LOG_INFO "lucene-demo未安装将在测试前安装"
INSTALLED_BEFORE_TEST=0
fi
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "步骤3安装lucene-demo软件包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo失败"
LOG_INFO "lucene-demo安装成功"
fi
LOG_INFO "步骤4验证lucene-demo安装状态"
rpm -q lucene-demo
CHECK_RESULT $? 0 0 "验证lucene-demo安装状态失败"
LOG_INFO "步骤5卸载lucene-demo软件包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo失败"
LOG_INFO "lucene-demo卸载成功"
LOG_INFO "步骤6验证lucene-demo是否已卸载"
if rpm -q lucene-demo &>/dev/null; then
LOG_ERROR "lucene-demo卸载后仍存在"
CHECK_RESULT 1 0 0 "lucene-demo卸载验证失败"
else
LOG_INFO "lucene-demo已成功卸载"
fi
LOG_INFO "步骤7环境恢复"
if [ $INSTALLED_BEFORE_TEST -eq 1 ]; then
LOG_INFO "恢复重新安装lucene-demo"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "恢复安装lucene-demo失败"
LOG_INFO "lucene-demo恢复安装成功"
else
LOG_INFO "测试前未安装lucene-demo无需恢复安装"
fi
LOG_INFO "测试完成Test uninstallation of lucene-demo package"
}
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-02-21
# @License : Mulan PSL v2
# @Desc : Test updating an existing index
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装lucene-demo
LOG_INFO "检查是否已安装lucene-demo"
if dnf list installed lucene-demo &>/dev/null; then
LOG_INFO "lucene-demo已安装"
INSTALLED="true"
else
LOG_INFO "lucene-demo未安装"
INSTALLED="false"
fi
# 检查yum源中是否有lucene-demo软件包
LOG_INFO "检查yum源中是否有lucene-demo软件包"
if ! dnf list available lucene-demo &>/dev/null; then
LOG_ERROR "yum源中未找到lucene-demo软件包"
exit 255
fi
# 如果未安装则安装lucene-demo
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装lucene-demo软件包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo失败"
fi
# 测试更新现有索引
LOG_INFO "测试更新现有索引"
# 假设lucene-demo提供了更新索引的命令这里使用示例命令
# 实际命令需根据lucene-demo的具体实现进行调整
if ! lucene-demo --help | grep -q "update-index"; then
LOG_ERROR "lucene-demo不支持update-index参数"
exit 255
fi
# 执行更新索引命令
LOG_INFO "执行更新索引命令"
lucene-demo update-index --path /tmp/test_index
CHECK_RESULT $? 0 0 "更新索引失败"
# 验证索引是否更新成功
LOG_INFO "验证索引是否更新成功"
# 这里假设有一个验证索引的命令,例如检查索引文件是否存在或内容是否正确
# 实际验证逻辑需根据lucene-demo的具体实现进行调整
if [ -f /tmp/test_index/updated_flag ]; then
LOG_INFO "索引更新成功"
else
LOG_ERROR "索引更新失败"
exit 1
fi
# 清理测试环境
LOG_INFO "清理测试环境"
rm -rf /tmp/test_index
CHECK_RESULT $? 0 0 "清理测试环境失败"
# 如果脚本开始时未安装lucene-demo则在结束时卸载
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载lucene-demo软件包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-21
# @License : Mulan PSL v2
# @Desc : Test checking package version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断当前环境是否已经安装lucene-demo软件包
LOG_INFO "检查lucene-demo软件包是否已安装"
rpm -q lucene-demo > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "lucene-demo软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE="yes"
else
LOG_INFO "lucene-demo软件包未安装将在测试步骤中安装"
INSTALLED_BEFORE="no"
fi
# 检查yum源中是否存在lucene-demo软件包
LOG_INFO "检查yum源中是否存在lucene-demo软件包"
dnf list available lucene-demo > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到lucene-demo软件包"
exit 255
fi
# 安装lucene-demo软件包如果未安装
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "安装lucene-demo软件包"
dnf install -y lucene-demo
CHECK_RESULT $? 0 0 "安装lucene-demo软件包失败"
fi
# 测试lucene-demo版本查询功能
LOG_INFO "测试lucene-demo版本查询功能"
lucene-demo --version > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "lucene-demo支持--version参数"
lucene-demo --version
CHECK_RESULT $? 0 0 "执行lucene-demo --version命令失败"
else
LOG_INFO "lucene-demo不支持--version参数尝试使用-v参数"
lucene-demo -v > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "lucene-demo支持-v参数"
lucene-demo -v
CHECK_RESULT $? 0 0 "执行lucene-demo -v命令失败"
else
LOG_ERROR "lucene-demo不支持--version或-v参数"
exit 255
fi
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "清理环境卸载lucene-demo软件包"
dnf remove -y lucene-demo
CHECK_RESULT $? 0 0 "卸载lucene-demo软件包失败"
else
LOG_INFO "测试前已安装lucene-demo保持安装状态"
fi
}
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 : 测试查询 perl-Date-Calc-help 软件包的基本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试查询perl-Date-Calc-help软件包的基本信息"
# 检查环境是否已安装perl-Date-Calc-help
LOG_INFO "检查perl-Date-Calc-help是否已安装"
rpm -q perl-Date-Calc-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "perl-Date-Calc-help已安装标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "perl-Date-Calc-help未安装标记为需要清理"
KEEP_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否存在perl-Date-Calc-help软件包"
dnf list available perl-Date-Calc-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到perl-Date-Calc-help软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "安装perl-Date-Calc-help软件包"
dnf install -y perl-Date-Calc-help
CHECK_RESULT $? 0 0 "安装perl-Date-Calc-help失败"
fi
# 测试查询软件包基本信息
LOG_INFO "测试查询perl-Date-Calc-help软件包基本信息"
rpm -qi perl-Date-Calc-help
CHECK_RESULT $? 0 0 "查询perl-Date-Calc-help基本信息失败"
# 测试查询软件包文件列表
LOG_INFO "测试查询perl-Date-Calc-help软件包文件列表"
rpm -ql perl-Date-Calc-help
CHECK_RESULT $? 0 0 "查询perl-Date-Calc-help文件列表失败"
# 测试查询软件包依赖关系
LOG_INFO "测试查询perl-Date-Calc-help软件包依赖关系"
rpm -qR perl-Date-Calc-help
CHECK_RESULT $? 0 0 "查询perl-Date-Calc-help依赖关系失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载perl-Date-Calc-help软件包"
dnf remove -y perl-Date-Calc-help
CHECK_RESULT $? 0 0 "卸载perl-Date-Calc-help失败"
else
LOG_INFO "保持perl-Date-Calc-help安装状态无需清理"
fi
LOG_INFO "测试完成成功查询perl-Date-Calc-help软件包的基本信息"
}
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-03-21
# @License : Mulan PSL v2
# @Desc : 测试查看 perl-Date-Calc-help 提供的 man 帮助文档
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始:测试查看 perl-Date-Calc-help 提供的 man 帮助文档"
LOG_INFO "步骤1检查 perl-Date-Calc-help 软件包是否在 yum 源中"
if ! dnf list available perl-Date-Calc-help &>/dev/null; then
LOG_ERROR "perl-Date-Calc-help 软件包不在 yum 源中"
exit 255
fi
LOG_INFO "步骤2检查 perl-Date-Calc-help 是否已安装"
if rpm -q perl-Date-Calc-help &>/dev/null; then
LOG_INFO "perl-Date-Calc-help 已安装,标记为已存在安装"
INSTALLED_FLAG=1
else
LOG_INFO "perl-Date-Calc-help 未安装,标记为未安装"
INSTALLED_FLAG=0
LOG_INFO "步骤3安装 perl-Date-Calc-help 软件包"
dnf install -y perl-Date-Calc-help
CHECK_RESULT $? 0 0 "安装 perl-Date-Calc-help 失败"
fi
LOG_INFO "步骤4检查 man 命令是否支持 perl-Date-Calc-help 参数"
if ! man -w perl-Date-Calc-help &>/dev/null; then
LOG_ERROR "man 命令不支持 perl-Date-Calc-help 参数"
exit 255
fi
LOG_INFO "步骤5执行 man perl-Date-Calc-help 命令查看帮助文档"
man perl-Date-Calc-help
CHECK_RESULT $? 0 0 "执行 man perl-Date-Calc-help 命令失败"
LOG_INFO "步骤6环境恢复"
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载 perl-Date-Calc-help 软件包"
dnf remove -y perl-Date-Calc-help
CHECK_RESULT $? 0 0 "卸载 perl-Date-Calc-help 失败"
else
LOG_INFO "保持 perl-Date-Calc-help 安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-04
# @License : Mulan PSL v2
# @Desc : Test basic HTTP mock functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查python3-httmock是否已安装
LOG_INFO "检查python3-httmock是否已安装"
if dnf list installed python3-httmock &>/dev/null; then
LOG_INFO "python3-httmock已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-httmock未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有python3-httmock
LOG_INFO "检查yum源中是否有python3-httmock"
if ! dnf list available python3-httmock &>/dev/null; then
LOG_ERROR "yum源中未找到python3-httmock退出"
exit 255
fi
# 安装python3-httmock如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装python3-httmock"
dnf install -y python3-httmock
CHECK_RESULT $? 0 0 "安装python3-httmock失败"
fi
# 测试HTTP mock功能
LOG_INFO "测试HTTP mock功能"
python3 -c "
import httmock
def mock_response(url, request):
return {"status_code": 200, "content": "Mock response"}
with httmock.HTTMock(mock_response):
import requests
response = requests.get("http://example.com")
assert response.status_code == 200
assert response.text == "Mock response"
"
CHECK_RESULT $? 0 0 "HTTP mock功能测试失败"
# 清理环境(如果之前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-httmock"
dnf remove -y python3-httmock
CHECK_RESULT $? 0 0 "卸载python3-httmock失败"
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-02-26
# @License : Mulan PSL v2
# @Desc : 测试能否获取OLE文件的元数据信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试测试能否获取OLE文件的元数据信息"
# 检查是否已安装python3-olefile软件包
LOG_INFO "检查是否已安装python3-olefile软件包"
if dnf list installed python3-olefile &>/dev/null; then
LOG_INFO "python3-olefile软件包已安装脚本结束前将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-olefile软件包未安装将在测试步骤中安装"
INSTALLED=false
fi
# 检查yum源中是否有python3-olefile软件包
LOG_INFO "检查yum源中是否有python3-olefile软件包"
if ! dnf list available python3-olefile &>/dev/null; then
LOG_ERROR "yum源中未找到python3-olefile软件包"
exit 255
fi
# 如果未安装则安装python3-olefile软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装python3-olefile软件包"
dnf install -y python3-olefile
CHECK_RESULT $? 0 0 "安装python3-olefile软件包失败"
fi
# 创建一个测试用的OLE文件例如一个简单的Excel文件
LOG_INFO "创建一个测试用的OLE文件"
cat > test_excel.xlsx << "EOF"
这是一个测试用的Excel文件用于测试OLE文件的元数据信息获取功能。
EOF
# 检查是否成功创建了测试文件
if [ ! -f test_excel.xlsx ]; then
LOG_ERROR "创建测试文件失败"
exit 1
fi
# 使用python3-olefile获取OLE文件的元数据信息
LOG_INFO "使用python3-olefile获取OLE文件的元数据信息"
python3 -c "
import olefile
try:
ole = olefile.OleFileIO("test_excel.xlsx")
metadata = ole.get_metadata()
if metadata:
print("成功获取OLE文件的元数据信息")
print(metadata)
else:
print("未找到元数据信息")
except Exception as e:
print("获取元数据信息失败:", e)
exit(1)
"
CHECK_RESULT $? 0 0 "获取OLE文件的元数据信息失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_excel.xlsx
# 如果之前未安装python3-olefile软件包则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载python3-olefile软件包"
dnf remove -y python3-olefile
CHECK_RESULT $? 0 0 "卸载python3-olefile软件包失败"
fi
LOG_INFO "测试完成成功测试能否获取OLE文件的元数据信息"
}
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-26
# @License : Mulan PSL v2
# @Desc : 测试安装后能否成功导入olefile模块
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试测试安装后能否成功导入olefile模块"
LOG_INFO "步骤1检查yum源中是否存在python3-olefile软件包"
dnf list available python3-olefile > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-olefile软件包"
exit 255
fi
LOG_INFO "步骤2检查当前是否已安装python3-olefile"
rpm -q python3-olefile > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-olefile已安装标记为无需清理"
NEED_CLEANUP=0
else
LOG_INFO "python3-olefile未安装标记为需要清理"
NEED_CLEANUP=1
fi
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "步骤3安装python3-olefile软件包"
dnf install -y python3-olefile
CHECK_RESULT $? 0 0 "安装python3-olefile失败"
fi
LOG_INFO "步骤4测试能否成功导入olefile模块"
python3 -c "import olefile; print("olefile模块导入成功")"
CHECK_RESULT $? 0 0 "导入olefile模块失败"
LOG_INFO "步骤5清理环境"
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "卸载python3-olefile软件包"
dnf remove -y python3-olefile
CHECK_RESULT $? 0 0 "卸载python3-olefile失败"
else
LOG_INFO "保持python3-olefile已安装状态"
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-02-26
# @License : Mulan PSL v2
# @Desc : 测试python3-olefile软件包能否正常安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了python3-olefile
LOG_INFO "检查当前环境是否已安装python3-olefile软件包"
rpm -q python3-olefile &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "当前环境已安装python3-olefile脚本结束时将保持安装状态"
already_installed=1
else
LOG_INFO "当前环境未安装python3-olefile将在测试过程中安装"
already_installed=0
fi
# 检查yum源中是否有python3-olefile软件包
LOG_INFO "检查yum源中是否存在python3-olefile软件包"
dnf list available python3-olefile &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-olefile软件包"
exit 255
fi
LOG_INFO "yum源中存在python3-olefile软件包"
# 如果未安装,则进行安装
if [ $already_installed -eq 0 ]; then
LOG_INFO "开始安装python3-olefile软件包"
dnf install -y python3-olefile
CHECK_RESULT $? 0 0 "安装python3-olefile失败"
LOG_INFO "成功安装python3-olefile软件包"
fi
# 验证软件包是否安装成功
LOG_INFO "验证python3-olefile软件包是否安装成功"
rpm -q python3-olefile
CHECK_RESULT $? 0 0 "python3-olefile软件包未正确安装"
# 验证python3-olefile的基本功能
LOG_INFO "验证python3-olefile的基本功能"
python3 -c "import olefile; print("olefile module version:", olefile.__version__)" 2>/dev/null
CHECK_RESULT $? 0 0 "python3-olefile模块导入失败"
# 清理环境:如果测试前未安装,则在测试后卸载
if [ $already_installed -eq 0 ]; then
LOG_INFO "清理环境卸载python3-olefile软件包"
dnf remove -y python3-olefile
CHECK_RESULT $? 0 0 "卸载python3-olefile失败"
LOG_INFO "成功卸载python3-olefile软件包"
else
LOG_INFO "测试前已安装python3-olefile保持安装状态"
fi
LOG_INFO "测试完成python3-olefile软件包能正常安装和卸载"
}
main "$@"

View File

@@ -1,125 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-26
# @License : Mulan PSL v2
# @Desc : 测试isOleFile函数能否正确识别OLE文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了python3-olefile软件包
LOG_INFO "检查python3-olefile软件包是否已安装"
if dnf list installed python3-olefile &>/dev/null; then
LOG_INFO "python3-olefile软件包已安装标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "python3-olefile软件包未安装"
KEEP_INSTALLED=0
fi
# 检查yum源中是否有python3-olefile软件包
LOG_INFO "检查yum源中是否有python3-olefile软件包"
if ! dnf list available python3-olefile &>/dev/null; then
LOG_ERROR "yum源中未找到python3-olefile软件包"
exit 255
fi
# 如果未安装则安装python3-olefile
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装python3-olefile软件包"
dnf install -y python3-olefile
CHECK_RESULT $? 0 0 "安装python3-olefile软件包失败"
fi
# 创建测试用的OLE文件和非OLE文件
LOG_INFO "创建测试文件"
cat > /tmp/test_ole.doc << "EOF"
这是一个OLE文件测试内容
EOF
# 创建一个简单的OLE文件头
printf "\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" > /tmp/real_ole.ole
cat > /tmp/non_ole.txt << "EOF"
这是一个普通文本文件
EOF
# 测试isOleFile函数识别OLE文件
LOG_INFO "测试isOleFile函数识别OLE文件"
python3 -c "
from olefile import isOleFile
import sys
# 测试真实OLE文件
if isOleFile("/tmp/real_ole.ole"):
print("SUCCESS: 正确识别OLE文件")
else:
print("FAIL: 未能识别OLE文件")
sys.exit(1)
# 测试非OLE文件
if not isOleFile("/tmp/non_ole.txt"):
print("SUCCESS: 正确识别非OLE文件")
else:
print("FAIL: 错误地将非OLE文件识别为OLE文件")
sys.exit(1)
# 测试不存在的文件
try:
isOleFile("/tmp/nonexistent.file")
print("FAIL: 不存在的文件未引发异常")
sys.exit(1)
except Exception as e:
print("SUCCESS: 不存在的文件正确处理")
"
CHECK_RESULT $? 0 0 "isOleFile函数测试失败"
# 测试isOleFile函数参数
LOG_INFO "测试isOleFile函数参数"
python3 -c "
from olefile import isOleFile
# 测试无参数调用
try:
isOleFile()
print("FAIL: 无参数调用未引发异常")
exit(1)
except TypeError:
print("SUCCESS: 无参数调用正确处理")
# 测试错误类型参数
try:
isOleFile(123)
print("FAIL: 错误类型参数未引发异常")
exit(1)
except TypeError:
print("SUCCESS: 错误类型参数正确处理")
"
CHECK_RESULT $? 0 0 "isOleFile函数参数测试失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f /tmp/test_ole.doc /tmp/real_ole.ole /tmp/non_ole.txt
# 如果测试前未安装,则卸载软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-olefile软件包"
dnf remove -y python3-olefile
CHECK_RESULT $? 0 0 "卸载python3-olefile软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,166 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-26
# @License : Mulan PSL v2
# @Desc : 测试能否列出OLE文件中的流和存储
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(虽然题目说直接使用,但实际未定义,这里提供定义)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 检查软件包是否存在
check_package_exist() {
local pkg=$1
dnf list available "$pkg" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $pkg 在yum源中不存在"
exit 255
fi
}
# 检查命令参数是否支持
check_command_param() {
local cmd=$1
local param=$2
$cmd --help 2>&1 | grep -q "$param"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $cmd 不支持参数 $param"
exit 255
fi
}
# 检查命令执行结果
check_cmd_result() {
local result=$1
local expected=$2
local error_msg=$3
if [ $result -ne $expected ]; then
LOG_ERROR "$error_msg"
exit $result
fi
}
# 主测试函数
main() {
LOG_INFO "开始测试测试能否列出OLE文件中的流和存储"
# 检查是否已安装python3-olefile
LOG_INFO "检查python3-olefile是否已安装"
if rpm -q python3-olefile &>/dev/null; then
LOG_INFO "python3-olefile已安装测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "python3-olefile未安装将在测试过程中安装"
already_installed=0
fi
# 检查软件包是否存在
LOG_INFO "检查yum源中是否存在python3-olefile软件包"
check_package_exist "python3-olefile"
# 安装软件包(如果未安装)
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装python3-olefile软件包"
dnf install -y python3-olefile
CHECK_RESULT $? 0 0 "安装python3-olefile失败"
fi
# 检查olefile命令参数是否支持
LOG_INFO "检查olefile命令是否支持list-streams参数"
check_command_param "olefile" "list-streams"
# 创建测试OLE文件
LOG_INFO "创建测试OLE文件"
cat > test_ole.py << "EOF"
from olefile import OleFileIO
import io
# 创建一个简单的OLE文件
ole = OleFileIO()
stream_data = b"Test stream data"
ole.write_stream("Root Entry/TestStream", stream_data)
ole.write_stream("Root Entry/AnotherStream", b"Another test data")
ole.save("test.ole")
EOF
python3 test_ole.py
CHECK_RESULT $? 0 0 "创建测试OLE文件失败"
# 测试列出OLE文件中的流和存储
LOG_INFO "执行olefile list-streams命令测试"
olefile list-streams test.ole
CHECK_RESULT $? 0 0 "列出OLE文件流和存储失败"
# 验证输出结果
LOG_INFO "验证输出结果"
output=$(olefile list-streams test.ole 2>/dev/null)
echo "$output" | grep -q "TestStream"
CHECK_RESULT $? 0 0 "未找到预期的TestStream"
echo "$output" | grep -q "AnotherStream"
CHECK_RESULT $? 0 0 "未找到预期的AnotherStream"
LOG_INFO "测试通过成功列出OLE文件中的流和存储"
}
# 环境清理函数
cleanup() {
LOG_INFO "开始清理测试环境"
# 删除测试文件
if [ -f test.ole ]; then
rm -f test.ole
LOG_INFO "删除测试文件test.ole"
fi
if [ -f test_ole.py ]; then
rm -f test_ole.py
LOG_INFO "删除测试脚本test_ole.py"
fi
# 卸载软件包(如果是测试期间安装的)
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载python3-olefile软件包"
dnf remove -y python3-olefile
if [ $? -ne 0 ]; then
LOG_ERROR "卸载python3-olefile失败"
else
LOG_INFO "成功卸载python3-olefile"
fi
else
LOG_INFO "保持python3-olefile安装状态"
fi
LOG_INFO "环境清理完成"
}
# 设置陷阱确保环境清理
trap cleanup EXIT
# 执行主测试
main
exit 0
}
main "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-26
# @License : Mulan PSL v2
# @Desc : 测试能否使用OleFileIO打开一个有效的OLE文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 测试函数测试能否使用OleFileIO打开一个有效的OLE文件
test_python3_olefile_function_open_ole() {
# 步骤1检查是否已安装python3-olefile软件包
LOG_INFO "步骤1检查是否已安装python3-olefile软件包"
if dnf list installed python3-olefile &>/dev/null; then
LOG_INFO "python3-olefile已安装测试完成后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "python3-olefile未安装将在测试前安装并在测试后卸载"
INSTALLED_BEFORE=false
fi
# 步骤2检查yum源中是否有python3-olefile软件包
LOG_INFO "步骤2检查yum源中是否有python3-olefile软件包"
if ! dnf list available python3-olefile &>/dev/null; then
LOG_ERROR "yum源中未找到python3-olefile软件包"
exit 255
fi
# 步骤3如果未安装则安装python3-olefile
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装python3-olefile软件包"
dnf install -y python3-olefile
CHECK_RESULT $? 0 0 "安装python3-olefile失败"
fi
# 步骤4创建一个有效的OLE文件用于测试
LOG_INFO "步骤4创建一个有效的OLE文件用于测试"
cat > test_ole_file.py << "EOF"
import olefile
ole = olefile.OleFileIO("test.ole")
ole.close()
EOF
# 创建一个简单的OLE文件这里使用一个示例文件
# 注意这里使用一个虚拟的OLE文件实际测试中应使用真实的OLE文件
echo "这是一个虚拟的OLE文件内容" > test.ole
# 步骤5使用OleFileIO打开OLE文件
LOG_INFO "步骤5使用OleFileIO打开OLE文件"
python3 test_ole_file.py
CHECK_RESULT $? 0 0 "使用OleFileIO打开OLE文件失败"
# 步骤6清理测试文件
LOG_INFO "步骤6清理测试文件"
rm -f test_ole_file.py test.ole
# 步骤7如果测试前未安装则卸载python3-olefile
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤7卸载python3-olefile软件包"
dnf remove -y python3-olefile
CHECK_RESULT $? 0 0 "卸载python3-olefile失败"
else
LOG_INFO "步骤7测试前已安装python3-olefile保持安装状态"
fi
LOG_INFO "测试完成成功使用OleFileIO打开一个有效的OLE文件"
}
# 执行测试函数
test_python3_olefile_function_open_ole
}
main "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-26
# @License : Mulan PSL v2
# @Desc : 测试能否从OLE文件的指定流中读取数据
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "1. 检查测试环境是否已安装python3-olefile软件包"
if rpm -q python3-olefile &>/dev/null; then
LOG_INFO "检测到python3-olefile已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE="true"
else
LOG_INFO "未检测到python3-olefile安装"
INSTALLED_BEFORE="false"
fi
LOG_INFO "2. 检查yum源中是否存在python3-olefile软件包"
if ! dnf list available python3-olefile &>/dev/null; then
LOG_ERROR "yum源中未找到python3-olefile软件包"
exit 255
fi
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "3. 安装python3-olefile软件包"
dnf install -y python3-olefile
CHECK_RESULT $? 0 0 "安装python3-olefile失败"
fi
LOG_INFO "4. 创建一个简单的OLE文件用于测试"
cat > /tmp/create_ole.py << "EOF"
import olefile
ole = olefile.OleFileIO("/tmp/test.ole", write_mode=True)
ole.write_stream("test_stream", b"This is test data for olefile read_stream function.")
ole.close()
EOF
python3 /tmp/create_ole.py
CHECK_RESULT $? 0 0 "创建测试OLE文件失败"
LOG_INFO "5. 测试能否从OLE文件的指定流中读取数据"
cat > /tmp/test_read_stream.py << "EOF"
import olefile
import sys
try:
ole = olefile.OleFileIO("/tmp/test.ole")
data = ole.openstream("test_stream").read()
if data == b"This is test data for olefile read_stream function.":
print("SUCCESS: 成功从指定流中读取数据")
sys.exit(0)
else:
print("FAIL: 读取的数据与预期不符")
sys.exit(1)
except Exception as e:
print(f"FAIL: 读取流时发生异常: {e}")
sys.exit(1)
EOF
python3 /tmp/test_read_stream.py
CHECK_RESULT $? 0 0 "从OLE文件指定流读取数据失败"
LOG_INFO "6. 清理测试过程中创建的临时文件"
rm -f /tmp/test.ole /tmp/create_ole.py /tmp/test_read_stream.py
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "7. 卸载测试安装的python3-olefile软件包"
dnf remove -y python3-olefile
CHECK_RESULT $? 0 0 "卸载python3-olefile失败"
else
LOG_INFO "7. 测试前已安装python3-olefile保持安装状态无需卸载"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,99 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-19
# @License : Mulan PSL v2
# @Desc : 测试python-prometheus-client-help包的降级功能验证软件包能否正常降级。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-prometheus-client-help包的降级功能"
# 检查yum源中是否存在python-prometheus-client-help包
LOG_INFO "检查yum源中是否存在python-prometheus-client-help包"
dnf list available python-prometheus-client-help &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python-prometheus-client-help包"
exit 255
fi
# 检查当前是否已安装python-prometheus-client-help包
LOG_INFO "检查当前是否已安装python-prometheus-client-help包"
rpm -q python-prometheus-client-help &> /dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "环境已安装python-prometheus-client-help包"
else
installed=false
LOG_INFO "环境未安装python-prometheus-client-help包将进行安装"
fi
# 如果未安装,则安装软件包作为测试步骤
if [ "$installed" = false ]; then
LOG_INFO "安装python-prometheus-client-help包"
dnf install -y python-prometheus-client-help
CHECK_RESULT $? 0 0 "安装python-prometheus-client-help包失败"
fi
# 获取当前软件包的版本信息
LOG_INFO "获取当前软件包的版本信息"
current_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
CHECK_RESULT $? 0 0 "获取当前软件包版本失败"
# 检查是否存在旧版本可供降级
LOG_INFO "检查是否存在旧版本可供降级"
dnf list --showduplicates python-prometheus-client-help | grep -v "$current_version" &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "没有可用的旧版本供降级"
exit 255
fi
# 获取一个旧版本的软件包信息
LOG_INFO "获取一个旧版本的软件包信息"
old_version=$(dnf list --showduplicates python-prometheus-client-help | grep -v "$current_version" | head -n1 | awk '{print $2}')
CHECK_RESULT $? 0 0 "获取旧版本软件包信息失败"
# 执行降级操作
LOG_INFO "执行降级操作到版本: $old_version"
dnf downgrade -y python-prometheus-client-help-$old_version
CHECK_RESULT $? 0 0 "降级操作失败"
# 验证降级后的版本是否正确
LOG_INFO "验证降级后的版本是否正确"
downgraded_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
if [ "$downgraded_version" != "$old_version" ]; then
LOG_ERROR "降级后的版本与预期不符,预期: $old_version, 实际: $downgraded_version"
exit 1
else
LOG_INFO "降级成功,当前版本: $downgraded_version"
fi
# 恢复环境到初始状态(如果初始未安装则卸载)
if [ "$installed" = false ]; then
LOG_INFO "恢复环境卸载python-prometheus-client-help包"
dnf remove -y python-prometheus-client-help
CHECK_RESULT $? 0 0 "卸载python-prometheus-client-help包失败"
else
# 如果初始已安装,则恢复到原始版本(重新升级)
LOG_INFO "恢复到原始版本: $current_version"
dnf upgrade -y python-prometheus-client-help-$current_version
CHECK_RESULT $? 0 0 "恢复到原始版本失败"
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 : 2025-06-19
# @License : Mulan PSL v2
# @Desc : 测试python-prometheus-client-help包的回退功能验证软件包能否正常回退到上一个版本。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-prometheus-client-help包的回退功能"
# 检查软件包是否已安装
if rpm -q python-prometheus-client-help &> /dev/null; then
LOG_INFO "检测到python-prometheus-client-help已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "未检测到python-prometheus-client-help安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在软件包
LOG_INFO "检查yum源中是否存在python-prometheus-client-help软件包"
if ! dnf list available python-prometheus-client-help &> /dev/null; then
LOG_ERROR "yum源中未找到python-prometheus-client-help软件包"
exit 255
fi
# 获取当前版本
CURRENT_VERSION=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
LOG_INFO "当前安装的版本为: $CURRENT_VERSION"
# 获取可用的旧版本列表
LOG_INFO "获取可用的旧版本列表"
OLD_VERSIONS=$(dnf history package python-prometheus-client-help | grep -oP 'python-prometheus-client-help-\K[0-9].*?(?=\.)' | sort -u)
if [ -z "$OLD_VERSIONS" ]; then
LOG_ERROR "未找到可回退的旧版本"
exit 255
fi
# 选择第一个旧版本作为回退目标
TARGET_VERSION=$(echo "$OLD_VERSIONS" | head -n1)
LOG_INFO "准备回退到版本: $TARGET_VERSION"
# 执行回退操作
LOG_INFO "执行回退操作"
dnf downgrade -y python-prometheus-client-help-$TARGET_VERSION &> /dev/null
CHECK_RESULT $? 0 0 "回退操作失败"
# 验证回退后的版本
NEW_VERSION=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
LOG_INFO "回退后的版本为: $NEW_VERSION"
if [ "$NEW_VERSION" != "$TARGET_VERSION" ]; then
LOG_ERROR "回退后的版本与目标版本不一致"
exit 1
fi
# 清理环境:如果最初未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载python-prometheus-client-help"
dnf remove -y python-prometheus-client-help &> /dev/null
CHECK_RESULT $? 0 0 "卸载操作失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-19
# @License : Mulan PSL v2
# @Desc : 测试python-prometheus-client-help包的回滚功能验证软件包能否正常回滚到指定版本。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-prometheus-client-help包的回滚功能"
# 检查是否已安装python-prometheus-client-help包
if dnf list installed python-prometheus-client-help &> /dev/null; then
LOG_INFO "检测到python-prometheus-client-help包已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "未检测到python-prometheus-client-help包将在测试步骤中安装"
INSTALLED=false
fi
# 检查yum源中是否存在python-prometheus-client-help包
if ! dnf list available python-prometheus-client-help &> /dev/null; then
LOG_ERROR "yum源中未找到python-prometheus-client-help包"
exit 255
fi
# 安装软件包(如果未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装python-prometheus-client-help包..."
dnf install -y python-prometheus-client-help
CHECK_RESULT $? 0 0 "安装python-prometheus-client-help包失败"
fi
# 验证软件包能否正常回滚到指定版本
LOG_INFO "验证软件包回滚功能..."
dnf history | grep python-prometheus-client-help &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "未找到python-prometheus-client-help包的安装历史记录"
exit 255
fi
# 获取最近一次安装的版本ID
VERSION_ID=$(dnf history list python-prometheus-client-help | awk 'NR==3 {print $1}')
if [ -z "$VERSION_ID" ]; then
LOG_ERROR "无法获取python-prometheus-client-help包的版本ID"
exit 255
fi
LOG_INFO "尝试回滚到版本ID: $VERSION_ID"
dnf history undo -y "$VERSION_ID"
CHECK_RESULT $? 0 0 "回滚python-prometheus-client-help包失败"
# 清理环境(如果最初未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载python-prometheus-client-help包..."
dnf remove -y python-prometheus-client-help
CHECK_RESULT $? 0 0 "卸载python-prometheus-client-help包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-19
# @License : Mulan PSL v2
# @Desc : 测试python-prometheus-client-help包的升级回滚功能验证软件包能否在升级后回滚到升级前的版本。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python-prometheus-client-help包的升级回滚功能"
# 检查yum源中是否存在python-prometheus-client-help包
LOG_INFO "检查yum源中是否存在python-prometheus-client-help包"
dnf list available python-prometheus-client-help &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python-prometheus-client-help包"
exit 255
fi
# 检查当前是否已安装python-prometheus-client-help包
LOG_INFO "检查当前是否已安装python-prometheus-client-help包"
rpm -q python-prometheus-client-help &> /dev/null
if [ $? -eq 0 ]; then
installed=true
current_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
LOG_INFO "当前已安装版本: $current_version"
else
installed=false
LOG_INFO "当前未安装python-prometheus-client-help包"
fi
# 如果未安装,则安装软件包作为测试步骤
if [ "$installed" = false ]; then
LOG_INFO "安装python-prometheus-client-help包"
dnf install -y python-prometheus-client-help
CHECK_RESULT $? 0 0 "安装python-prometheus-client-help包失败"
fi
# 获取当前版本信息
current_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
LOG_INFO "当前版本: $current_version"
# 检查是否有可升级的版本
LOG_INFO "检查是否有可升级的版本"
dnf list updates python-prometheus-client-help &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "没有可升级的版本"
exit 255
fi
# 升级软件包
LOG_INFO "升级python-prometheus-client-help包"
dnf upgrade -y python-prometheus-client-help
CHECK_RESULT $? 0 0 "升级python-prometheus-client-help包失败"
# 获取升级后的版本信息
upgraded_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
LOG_INFO "升级后版本: $upgraded_version"
# 回滚到之前的版本
LOG_INFO "回滚到之前的版本: $current_version"
dnf downgrade -y python-prometheus-client-help-$current_version
CHECK_RESULT $? 0 0 "回滚到之前的版本失败"
# 验证回滚后的版本是否与之前一致
rolled_back_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' python-prometheus-client-help)
LOG_INFO "回滚后版本: $rolled_back_version"
CHECK_RESULT "$rolled_back_version" "$current_version" 0 "回滚后的版本与预期不一致"
# 清理环境:如果最初未安装,则卸载软件包;否则保持安装状态
if [ "$installed" = false ]; then
LOG_INFO "清理环境卸载python-prometheus-client-help包"
dnf remove -y python-prometheus-client-help
CHECK_RESULT $? 0 0 "卸载python-prometheus-client-help包失败"
else
LOG_INFO "保持环境保留已安装的python-prometheus-client-help包"
fi
LOG_INFO "测试完成验证了python-prometheus-client-help包的升级回滚功能"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的依赖关系验证软件包是否能够正确识别和满足所有依赖项。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否存在于yum源中
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples软件包..."
dnf list available qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples软件包"
exit 255
fi
# 检查是否已安装软件包
LOG_INFO "检查系统是否已安装qt5-qtvirtualkeyboard-examples软件包..."
rpm -q qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "系统已安装qt5-qtvirtualkeyboard-examples软件包测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "系统未安装qt5-qtvirtualkeyboard-examples软件包测试完成后将卸载"
INSTALLED=false
fi
# 安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装qt5-qtvirtualkeyboard-examples软件包..."
dnf install -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples失败"
fi
# 验证依赖关系
LOG_INFO "验证qt5-qtvirtualkeyboard-examples的依赖关系..."
rpm -qR qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "验证依赖关系失败"
# 清理环境(如果测试前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载qt5-qtvirtualkeyboard-examples软件包..."
dnf remove -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载qt5-qtvirtualkeyboard-examples失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,97 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的降级功能验证软件包是否能够正常降级。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在qt5-qtvirtualkeyboard-examples包
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples包"
dnf list available qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples包"
exit 255
fi
# 检查当前是否已安装qt5-qtvirtualkeyboard-examples包
LOG_INFO "检查当前是否已安装qt5-qtvirtualkeyboard-examples包"
rpm -q qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "当前环境已安装qt5-qtvirtualkeyboard-examples包"
else
installed=false
LOG_INFO "当前环境未安装qt5-qtvirtualkeyboard-examples包"
fi
# 如果未安装,则安装软件包作为测试步骤
if [ "$installed" = false ]; then
LOG_INFO "开始安装qt5-qtvirtualkeyboard-examples包"
dnf install -y qt5-qtvirtualkeyboard-examples
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples包失败"
fi
# 获取当前软件包的版本信息
LOG_INFO "获取当前软件包的版本信息"
current_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' qt5-qtvirtualkeyboard-examples)
CHECK_RESULT $? 0 0 "获取当前软件包版本失败"
# 检查是否存在可降级的版本
LOG_INFO "检查是否存在可降级的版本"
dnf list --showduplicates qt5-qtvirtualkeyboard-examples | grep -v "$current_version" > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "没有可降级的版本"
exit 255
fi
# 获取可降级的版本列表并选择第一个旧版本
LOG_INFO "选择第一个旧版本进行降级测试"
downgrade_version=$(dnf list --showduplicates qt5-qtvirtualkeyboard-examples | grep -v "$current_version" | head -n 1 | awk '{print $2}')
CHECK_RESULT $? 0 0 "获取可降级版本失败"
# 执行降级操作
LOG_INFO "开始降级到版本: $downgrade_version"
dnf downgrade -y qt5-qtvirtualkeyboard-examples-$downgrade_version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "降级操作失败"
# 验证降级后的版本是否正确
LOG_INFO "验证降级后的版本是否正确"
downgraded_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' qt5-qtvirtualkeyboard-examples)
if [ "$downgraded_version" != "$downgrade_version" ]; then
LOG_ERROR "降级后版本验证失败,预期: $downgrade_version, 实际: $downgraded_version"
exit 1
else
LOG_INFO "降级后版本验证成功: $downgraded_version"
fi
# 恢复环境:如果最初未安装,则卸载软件包;否则保持安装状态不变
if [ "$installed" = false ]; then
LOG_INFO "恢复环境:卸载测试安装的软件包"
dnf remove -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "恢复环境:保持原有安装状态不变"
fi
LOG_INFO "测试脚本执行完成,所有步骤均通过验证"
}
main "$@"

View File

@@ -1,119 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-06
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples的主题或样式切换功能验证虚拟键盘的界面主题可以正常更改。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="qt5-qtvirtualkeyboard-examples"
# 检查软件包是否在yum源中
LOG_INFO "步骤1: 检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
exit 255
fi
# 检查软件包是否已安装
LOG_INFO "步骤2: 检查${PACKAGE_NAME}是否已安装"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "${PACKAGE_NAME}已安装,标记为保持安装状态"
KEEP_INSTALLED=true
else
LOG_INFO "${PACKAGE_NAME}未安装,标记为需要清理"
KEEP_INSTALLED=false
fi
# 如果未安装则安装软件包
if [ "${KEEP_INSTALLED}" = "false" ]; then
LOG_INFO "步骤3: 安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 检查虚拟键盘示例程序是否存在
LOG_INFO "步骤4: 检查虚拟键盘示例程序是否存在"
EXAMPLE_PATH=$(find /usr -name "*virtualkeyboard*example*" -type f -executable | head -1)
if [ -z "${EXAMPLE_PATH}" ]; then
LOG_ERROR "未找到虚拟键盘示例程序"
if [ "${KEEP_INSTALLED}" = "false" ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 检查示例程序是否支持主题参数
LOG_INFO "步骤5: 检查示例程序是否支持主题参数"
${EXAMPLE_PATH} --help 2>&1 | grep -i "theme\|style" > /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "示例程序不支持主题或样式参数"
if [ "${KEEP_INSTALLED}" = "false" ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 测试默认主题启动
LOG_INFO "步骤6: 测试使用默认主题启动虚拟键盘示例"
timeout 5s ${EXAMPLE_PATH} &
DEFAULT_PID=$!
sleep 2
if ps -p ${DEFAULT_PID} > /dev/null; then
LOG_INFO "默认主题启动成功"
kill ${DEFAULT_PID} 2>/dev/null
else
LOG_ERROR "默认主题启动失败"
if [ "${KEEP_INSTALLED}" = "false" ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 1
fi
# 测试指定主题启动
LOG_INFO "步骤7: 测试使用指定主题启动虚拟键盘示例"
timeout 5s ${EXAMPLE_PATH} --theme "default" &
THEME_PID=$!
sleep 2
if ps -p ${THEME_PID} > /dev/null; then
LOG_INFO "指定主题启动成功"
kill ${THEME_PID} 2>/dev/null
else
LOG_ERROR "指定主题启动失败"
if [ "${KEEP_INSTALLED}" = "false" ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 1
fi
# 清理测试环境
LOG_INFO "步骤8: 清理测试环境"
if [ "${KEEP_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,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的重新安装功能验证软件包是否能够正常重新安装。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否存在于yum源中
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples软件包"
dnf list available qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples软件包"
exit 255
fi
# 检查当前环境是否已安装软件包
LOG_INFO "检查当前环境是否已安装qt5-qtvirtualkeyboard-examples软件包"
rpm -q qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "当前环境已安装qt5-qtvirtualkeyboard-examples软件包脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "当前环境未安装qt5-qtvirtualkeyboard-examples软件包脚本结束后将卸载该软件包"
INSTALLED=false
fi
# 如果未安装,则执行安装步骤
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装qt5-qtvirtualkeyboard-examples软件包"
dnf install -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples软件包失败"
fi
# 测试重新安装功能
LOG_INFO "测试重新安装qt5-qtvirtualkeyboard-examples软件包"
dnf reinstall -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "重新安装qt5-qtvirtualkeyboard-examples软件包失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包;否则保持安装状态
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载qt5-qtvirtualkeyboard-examples软件包"
dnf remove -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载qt5-qtvirtualkeyboard-examples软件包失败"
else
LOG_INFO "清理环境保持已安装的qt5-qtvirtualkeyboard-examples软件包状态"
fi
LOG_INFO "测试完成验证了qt5-qtvirtualkeyboard-examples包的重新安装功能"
}
main "$@"

View File

@@ -1,128 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的回滚功能验证软件包是否能够正常回滚到之前的版本。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否存在于yum源中
check_package_in_repo() {
local package_name=$1
LOG_INFO "检查yum源中是否存在软件包: $package_name"
dnf list available "$package_name" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在软件包: $package_name"
exit 255
fi
}
# 检查命令参数是否有效
check_command_param() {
local command=$1
local param=$2
LOG_INFO "检查命令参数: $command $param"
$command --help | grep -q "$param"
if [ $? -ne 0 ]; then
LOG_ERROR "命令参数不支持: $command $param"
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"
}
# 检查软件包是否已安装
is_package_installed() {
local package_name=$1
rpm -q "$package_name" &>/dev/null
return $?
}
# 回滚软件包版本
rollback_package() {
local package_name=$1
LOG_INFO "回滚软件包版本: $package_name"
dnf history undo last -y --skip-broken | grep -q "Undo complete."
CHECK_RESULT $? 0 0 "回滚软件包失败: $package_name"
}
# 主函数
main() {
local package="qt5-qtvirtualkeyboard-examples"
# 步骤1检查yum源中是否存在目标软件包
check_package_in_repo "$package"
# 步骤2检查dnf工具的history和undo参数是否支持
check_command_param "dnf" "history"
check_command_param "dnf" "undo"
# 步骤3判断环境是否已安装目标软件包记录初始状态是否需要卸载
local need_uninstall=false
if ! is_package_installed "$package"; then
need_uninstall=true
install_package "$package"
CHECK_RESULT $? 0 0 "初始安装软件包失败: $package"
LOG_INFO "初始安装完成,标记为需要卸载状态"
else
LOG_INFO "目标软件包已安装,无需初始安装操作"
# 获取当前版本信息,用于后续回滚验证(可选)
current_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}" "$package")
LOG_INFO "当前版本为: ${current_version}"
# TODO:如果需要验证回滚前后的版本差异,可以在此处记录当前版本信息(可选)
# echo "${current_version}" > /tmp/${package}_current_version.txt可选
fi
# TODO:此处可以添加测试用例的具体逻辑(例如启动应用、验证功能等)(可选)
#步骤4执行回滚操作并验证结果核心测试步骤
rollback_package "$package"
# TODO:此处可以添加回滚后的验证逻辑(例如对比版本号、验证功能等)(可选)
#步骤5恢复环境到初始状态如果初始未安装则卸载
if [ "$need_uninstall" = true ]; then
uninstall_package "$package"
CHECK_RESULT \$? \0 \0 \"卸载失败\"
LOG_INFO \"环境已恢复到未安装状态\"
else
LOG_INFO \"环境保持原状\"
fi
exit \0
}
main
}
main "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的服务配置功能验证服务是否能够正常配置。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在qt5-qtvirtualkeyboard-examples包
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples包"
dnf list available qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples包"
exit 255
fi
# 检查是否已安装qt5-qtvirtualkeyboard-examples包
LOG_INFO "检查是否已安装qt5-qtvirtualkeyboard-examples包"
rpm -q qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "qt5-qtvirtualkeyboard-examples包已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "qt5-qtvirtualkeyboard-examples包未安装开始安装"
dnf install -y qt5-qtvirtualkeyboard-examples
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples包失败"
INSTALLED=false
fi
# 测试服务配置功能
LOG_INFO "测试服务配置功能"
# 假设服务配置命令为configure_service此处仅为示例需替换为实际命令
configure_service --test > /dev/null 2>&1
CHECK_RESULT $? 0 0 "服务配置功能测试失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载qt5-qtvirtualkeyboard-examples包"
dnf remove -y qt5-qtvirtualkeyboard-examples
CHECK_RESULT $? 0 0 "卸载qt5-qtvirtualkeyboard-examples包失败"
fi
LOG_INFO "测试脚本执行完成"
### 脚本说明:
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的服务日志查看功能验证服务是否能够正常查看日志。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在qt5-qtvirtualkeyboard-examples包
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples包"
dnf list available qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples包"
exit 255
fi
# 检查是否已安装qt5-qtvirtualkeyboard-examples包
LOG_INFO "检查是否已安装qt5-qtvirtualkeyboard-examples包"
rpm -q qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "qt5-qtvirtualkeyboard-examples包已安装测试完成后将保持安装状态"
else
installed=false
LOG_INFO "qt5-qtvirtualkeyboard-examples包未安装将进行安装测试"
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "开始安装qt5-qtvirtualkeyboard-examples包"
dnf install -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples包失败"
fi
# 测试服务日志查看功能
LOG_INFO "测试服务日志查看功能"
journalctl --unit=qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "查看服务日志失败"
# 如果之前未安装,则卸载软件包以恢复环境
if [ "$installed" = false ]; then
LOG_INFO "卸载qt5-qtvirtualkeyboard-examples包以恢复环境"
dnf remove -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载qt5-qtvirtualkeyboard-examples包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的服务重载功能验证服务是否能够正常重载配置。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否存在于yum源中
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples软件包..."
dnf list available qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples软件包退出测试..."
exit 255
fi
# 检查当前环境是否已安装软件包
LOG_INFO "检查当前环境是否已安装qt5-qtvirtualkeyboard-examples软件包..."
rpm -q qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "当前环境已安装qt5-qtvirtualkeyboard-examples软件包测试完成后将保持安装状态..."
INSTALLED=true
else
LOG_INFO "当前环境未安装qt5-qtvirtualkeyboard-examples软件包测试完成后将卸载..."
INSTALLED=false
fi
# 若未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装qt5-qtvirtualkeyboard-examples软件包..."
dnf install -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples软件包失败"
fi
# 验证服务重载功能
LOG_INFO "验证服务重载功能..."
systemctl reload qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "服务重载失败"
# 清理环境:若测试前未安装,则卸载软件包;否则保持原状
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载qt5-qtvirtualkeyboard-examples软件包..."
dnf remove -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载qt5-qtvirtualkeyboard-examples软件包失败"
fi
LOG_INFO "测试完成,环境已恢复。"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的服务启动功能验证服务是否能够正常启动。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否已安装
LOG_INFO "检查qt5-qtvirtualkeyboard-examples是否已安装..."
rpm -q qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "qt5-qtvirtualkeyboard-examples已安装跳过安装步骤..."
INSTALLED=1
else
LOG_INFO "qt5-qtvirtualkeyboard-examples未安装准备安装..."
INSTALLED=0
fi
# 检查yum源中是否存在软件包
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples..."
dnf list available qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples退出测试..."
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装qt5-qtvirtualkeyboard-examples..."
dnf install -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples失败"
fi
# 测试服务启动功能
LOG_INFO "测试服务启动功能..."
systemctl start qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "启动服务失败"
# 验证服务状态
LOG_INFO "验证服务状态..."
systemctl status qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "服务状态异常"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载qt5-qtvirtualkeyboard-examples..."
dnf remove -y qt5-qtvirtualkeyboard-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载qt5-qtvirtualkeyboard-examples失败"
fi
LOG_INFO "测试完成,环境已恢复。"
}
main "$@"

View File

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

View File

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

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-16
# @License : Mulan PSL v2
# @Desc : 测试qt5-qtvirtualkeyboard-examples包的升级功能验证软件包是否能够正常升级。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否存在于yum源中
LOG_INFO "检查yum源中是否存在qt5-qtvirtualkeyboard-examples包"
dnf list available qt5-qtvirtualkeyboard-examples &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtvirtualkeyboard-examples包"
exit 255
fi
# 检查当前环境是否已安装软件包
LOG_INFO "检查当前环境是否已安装qt5-qtvirtualkeyboard-examples包"
rpm -q qt5-qtvirtualkeyboard-examples &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "当前环境已安装qt5-qtvirtualkeyboard-examples包脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "当前环境未安装qt5-qtvirtualkeyboard-examples包将进行安装测试"
INSTALLED=false
fi
# 如果未安装,则安装软件包作为测试步骤
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装qt5-qtvirtualkeyboard-examples包"
dnf install -y qt5-qtvirtualkeyboard-examples
CHECK_RESULT $? 0 0 "安装qt5-qtvirtualkeyboard-examples包失败"
fi
# 测试升级功能
LOG_INFO "测试升级qt5-qtvirtualkeyboard-examples包"
dnf upgrade -y qt5-qtvirtualkeyboard-examples
CHECK_RESULT $? 0 0 "升级qt5-qtvirtualkeyboard-examples包失败"
# 验证软件包是否正常升级
LOG_INFO "验证软件包是否正常升级"
rpm -q qt5-qtvirtualkeyboard-examples &> /dev/null
CHECK_RESULT $? 0 0 "验证软件包升级失败"
# 清理环境:如果最初未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载qt5-qtvirtualkeyboard-examples包"
dnf remove -y qt5-qtvirtualkeyboard-examples
CHECK_RESULT $? 0 0 "卸载qt5-qtvirtualkeyboard-examples包失败"
fi
LOG_INFO "测试脚本执行完成,环境已恢复初始状态"
}
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-03-11
# @License : Mulan PSL v2
# @Desc : 测试检查rpm-devel包依赖关系
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(如果未定义)
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
# 定义CHECK_RESULT函数如果未定义
if ! command -v CHECK_RESULT > /dev/null 2>&1; then
CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local msg=$4
if [ $mode -eq 0 ]; then
if [ $actual -eq $expect ]; then
LOG_INFO "$msg 成功"
else
LOG_ERROR "$msg 失败"
exit $actual
fi
fi
}
fi
# 定义SSH_CMD函数如果未定义
if ! command -v SSH_CMD > /dev/null 2>&1; then
SSH_CMD() {
local cmd=$1
local ip=$2
local passwd=$3
local user=$4
LOG_INFO "在节点 $ip 上执行命令: $cmd"
sshpass -p "$passwd" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
return $?
}
fi
# 测试脚本开始
LOG_INFO "开始测试检查rpm-devel包依赖关系"
# 步骤1: 检查rpm-devel包是否已在yum源中
LOG_INFO "步骤1: 检查rpm-devel包是否在yum源中"
if ! dnf list available rpm-devel > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到rpm-devel包"
exit 255
fi
LOG_INFO "yum源中存在rpm-devel包"
# 步骤2: 检查是否已安装rpm-devel包
LOG_INFO "步骤2: 检查是否已安装rpm-devel包"
if rpm -q rpm-devel > /dev/null 2>&1; then
LOG_INFO "rpm-devel包已安装测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "rpm-devel包未安装将在测试步骤中安装"
already_installed=0
fi
# 步骤3: 安装rpm-devel包如果未安装
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3: 安装rpm-devel包"
dnf install -y rpm-devel
CHECK_RESULT $? 0 0 "安装rpm-devel包"
fi
# 步骤4: 检查rpm-devel包的依赖关系
LOG_INFO "步骤4: 检查rpm-devel包的依赖关系"
rpm -qR rpm-devel
CHECK_RESULT $? 0 0 "检查rpm-devel包依赖关系"
# 步骤5: 验证rpm-devel包提供的头文件和库文件
LOG_INFO "步骤5: 验证rpm-devel包提供的头文件和库文件"
if [ -d /usr/include/rpm ]; then
LOG_INFO "rpm头文件目录存在"
else
LOG_ERROR "rpm头文件目录不存在"
exit 1
fi
if [ -f /usr/lib/librpm.so ] || [ -f /usr/lib64/librpm.so ]; then
LOG_INFO "rpm库文件存在"
else
LOG_ERROR "rpm库文件不存在"
exit 1
fi
# 步骤6: 清理环境如果测试前未安装则卸载rpm-devel包
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤6: 清理环境卸载rpm-devel包"
dnf remove -y rpm-devel
CHECK_RESULT $? 0 0 "卸载rpm-devel包"
else
LOG_INFO "步骤6: 环境已安装rpm-devel包保持安装状态"
fi
LOG_INFO "测试完成rpm-devel包依赖关系检查成功"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试检查rpm-devel是否已安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试检查rpm-devel是否已安装"
# 检查yum源中是否有rpm-devel包
LOG_INFO "步骤1检查yum源中是否有rpm-devel包"
if ! dnf list available rpm-devel &>/dev/null; then
LOG_ERROR "yum源中未找到rpm-devel包"
exit 255
fi
# 检查是否已安装rpm-devel
LOG_INFO "步骤2检查系统是否已安装rpm-devel"
if rpm -q rpm-devel &>/dev/null; then
LOG_INFO "rpm-devel已安装脚本结束时将保持安装状态"
already_installed=true
else
LOG_INFO "rpm-devel未安装将在测试步骤中安装"
already_installed=false
fi
# 如果未安装,则进行安装
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3安装rpm-devel包"
dnf install -y rpm-devel
CHECK_RESULT $? 0 0 "安装rpm-devel失败"
LOG_INFO "rpm-devel安装成功"
fi
# 测试rpm-devel功能
LOG_INFO "步骤4测试rpm-devel功能"
# 检查rpmbuild命令是否存在rpm-devel安装后会提供
if command -v rpmbuild &>/dev/null; then
LOG_INFO "rpmbuild命令存在rpm-devel功能正常"
else
LOG_ERROR "rpmbuild命令不存在rpm-devel功能异常"
CHECK_RESULT 1 0 0 "rpm-devel功能测试失败"
fi
# 环境恢复
LOG_INFO "步骤5环境恢复"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载测试安装的rpm-devel包"
dnf remove -y rpm-devel
CHECK_RESULT $? 0 0 "卸载rpm-devel失败"
LOG_INFO "rpm-devel卸载成功"
else
LOG_INFO "系统原本已安装rpm-devel保持安装状态"
fi
LOG_INFO "测试完成rpm-devel功能检查完毕"
}
main "$@"

View File

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

View File

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

View File

@@ -1,53 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试显示rpm-devel包详细信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试显示rpm-devel包详细信息"
LOG_INFO "检查环境中是否已安装rpm-devel软件包"
if rpm -q rpm-devel >/dev/null 2>&1; then
LOG_INFO "rpm-devel软件包已安装"
INSTALLED="true"
else
LOG_INFO "rpm-devel软件包未安装"
INSTALLED="false"
fi
LOG_INFO "检查yum源中是否存在rpm-devel软件包"
if ! dnf list available rpm-devel >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到rpm-devel软件包"
exit 255
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装rpm-devel软件包"
dnf install -y rpm-devel
CHECK_RESULT $? 0 0 "安装rpm-devel软件包失败"
fi
LOG_INFO "显示rpm-devel包详细信息"
rpm -qi rpm-devel
CHECK_RESULT $? 0 0 "显示rpm-devel包详细信息失败"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载rpm-devel软件包"
dnf remove -y rpm-devel
CHECK_RESULT $? 0 0 "卸载rpm-devel软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试查询所有已安装的rpm包
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试查询所有已安装的rpm包"
# 检查是否已安装rpm包管理器
LOG_INFO "检查rpm命令是否可用"
command -v rpm >/dev/null 2>&1
CHECK_RESULT $? 0 0 "rpm命令不存在"
# 检查是否已安装rpm-devel包
LOG_INFO "检查rpm-devel包是否已安装"
if rpm -q rpm-devel >/dev/null 2>&1; then
LOG_INFO "rpm-devel包已安装测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "rpm-devel包未安装将在测试中安装"
already_installed=false
fi
# 如果需要安装rpm-devel包
if [ "$already_installed" = false ]; then
# 检查yum源中是否有rpm-devel包
LOG_INFO "检查yum源中是否有rpm-devel包"
dnf list available rpm-devel >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有rpm-devel包"
exit 255
fi
# 安装rpm-devel包
LOG_INFO "安装rpm-devel包"
dnf install -y rpm-devel
CHECK_RESULT $? 0 0 "安装rpm-devel包失败"
fi
# 测试查询所有已安装的rpm包
LOG_INFO "测试查询所有已安装的rpm包"
rpm -qa
CHECK_RESULT $? 0 0 "查询所有已安装的rpm包失败"
# 检查查询结果是否包含rpm-devel包
LOG_INFO "检查查询结果是否包含rpm-devel包"
rpm -qa | grep -q "^rpm-devel-"
CHECK_RESULT $? 0 0 "查询结果中未找到rpm-devel包"
# 环境恢复
if [ "$already_installed" = false ]; then
LOG_INFO "卸载rpm-devel包"
dnf remove -y rpm-devel
CHECK_RESULT $? 0 0 "卸载rpm-devel包失败"
# 验证卸载是否成功
LOG_INFO "验证rpm-devel包是否已卸载"
rpm -q rpm-devel >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "rpm-devel包卸载失败"
exit 1
fi
LOG_INFO "rpm-devel包已成功卸载"
else
LOG_INFO "保持rpm-devel包的安装状态"
fi
LOG_INFO "测试完成查询所有已安装的rpm包"
}
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-11
# @License : Mulan PSL v2
# @Desc : 测试查询文件所属的rpm包
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义测试软件包名称
TEST_PKG="rpm-devel"
# 定义测试文件通常rpm-devel包含rpmbuild等这里使用一个已知的文件进行测试
TEST_FILE="/usr/bin/rpmbuild"
# 步骤1检查yum源中是否存在指定软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 $TEST_PKG"
dnf list available $TEST_PKG 2>&1 | grep -q "^$TEST_PKG"
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $TEST_PKG 在yum源中不存在"
exit 255
fi
# 步骤2检查测试文件是否存在如果不存在则尝试安装软件包
LOG_INFO "步骤2检查测试文件 $TEST_FILE 是否存在"
if [ -f "$TEST_FILE" ]; then
LOG_INFO "测试文件已存在,无需安装软件包"
INSTALLED="false"
else
LOG_INFO "测试文件不存在,开始安装软件包 $TEST_PKG"
dnf install -y $TEST_PKG
CHECK_RESULT $? 0 0 "安装软件包 $TEST_PKG 失败"
INSTALLED="true"
fi
# 步骤3测试查询文件所属的rpm包功能
LOG_INFO "步骤3测试查询文件 $TEST_FILE 所属的rpm包"
rpm -qf "$TEST_FILE"
CHECK_RESULT $? 0 0 "查询文件所属rpm包失败"
# 步骤4测试无效参数例如不存在的参数
LOG_INFO "步骤4测试无效参数"
rpm -qf --invalid-option "$TEST_FILE" 2>/dev/null
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
LOG_ERROR "无效参数未被正确处理"
exit 255
fi
# 步骤5测试不存在的文件
LOG_INFO "步骤5测试查询不存在的文件"
rpm -qf /path/to/nonexistent/file 2>&1 | grep -q "没有那个文件或目录\|No such file or directory"
CHECK_RESULT $? 0 0 "查询不存在的文件时未返回预期错误"
# 步骤6环境恢复
LOG_INFO "步骤6环境恢复"
if [ "$INSTALLED" = "true" ]; then
LOG_INFO "卸载测试安装的软件包 $TEST_PKG"
dnf remove -y $TEST_PKG
CHECK_RESULT $? 0 0 "卸载软件包 $TEST_PKG 失败"
else
LOG_INFO "测试前已安装软件包,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,98 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试验证已安装rpm包完整性
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试验证已安装rpm包完整性"
# 检查是否已安装rpm包
LOG_INFO "检查rpm包是否已安装"
rpm -q rpm > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "rpm包已安装测试后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "rpm包未安装将进行安装测试"
ALREADY_INSTALLED=0
LOG_INFO "检查yum源中是否有rpm包"
dnf list available rpm 2>/dev/null | grep -q "^rpm\."
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到rpm包"
exit 255
fi
LOG_INFO "安装rpm包"
dnf install -y rpm
CHECK_RESULT $? 0 0 "安装rpm包失败"
fi
# 验证rpm命令的基本功能
LOG_INFO "验证rpm命令版本查询"
rpm --version
CHECK_RESULT $? 0 0 "rpm命令版本查询失败"
LOG_INFO "验证rpm命令帮助信息"
rpm --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "rpm命令帮助信息查询失败"
# 验证rpm包查询功能
LOG_INFO "验证已安装rpm包查询"
rpm -qa | grep -q "^rpm-"
CHECK_RESULT $? 0 0 "查询已安装rpm包失败"
# 验证rpm包信息查询
LOG_INFO "验证rpm包详细信息查询"
rpm -qi rpm > /dev/null 2>&1
CHECK_RESULT $? 0 0 "查询rpm包详细信息失败"
# 验证rpm包文件列表
LOG_INFO "验证rpm包文件列表查询"
rpm -ql rpm > /dev/null 2>&1
CHECK_RESULT $? 0 0 "查询rpm包文件列表失败"
# 验证rpm包校验功能
LOG_INFO "验证rpm包文件完整性校验"
rpm -V rpm
CHECK_RESULT $? 0 0 "rpm包文件完整性校验失败"
# 验证不支持的参数
LOG_INFO "验证不支持的参数处理"
rpm --invalid-parameter > /dev/null 2>&1
if [ $? -ne 255 ]; then
LOG_ERROR "不支持的参数处理异常"
exit 255
fi
# 清理环境
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载测试安装的rpm包"
dnf remove -y rpm
CHECK_RESULT $? 0 0 "卸载rpm包失败"
else
LOG_INFO "保持rpm包安装状态"
fi
LOG_INFO "测试完成rpm包完整性验证成功"
}
main "$@"

View File

@@ -1,99 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试查询提供特定功能的包
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试查询提供特定功能的包功能"
LOG_INFO "步骤1: 检查dnf工具是否可用"
command -v dnf >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "dnf工具未安装测试无法继续"
exit 255
fi
LOG_INFO "dnf工具检查通过"
LOG_INFO "步骤2: 判断测试所需的rpm-devel包在yum源中是否存在"
dnf list available rpm-devel >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到rpm-devel软件包"
exit 255
fi
LOG_INFO "rpm-devel软件包在yum源中存在"
LOG_INFO "步骤3: 检查当前环境中是否已经安装了rpm-devel包"
rpm -q rpm-devel >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到rpm-devel已安装标记为已安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "检测到rpm-devel未安装标记为未安装状态"
INSTALLED_FLAG=0
fi
LOG_INFO "步骤4: 如果未安装,则执行安装操作"
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "开始安装rpm-devel软件包"
dnf install -y rpm-devel
CHECK_RESULT $? 0 0 "安装rpm-devel软件包失败"
LOG_INFO "rpm-devel软件包安装成功"
fi
LOG_INFO "步骤5: 测试dnf provides命令的基本功能"
LOG_INFO "执行命令: dnf provides "*/rpmbuild""
dnf provides "*/rpmbuild"
CHECK_RESULT $? 0 0 "dnf provides命令执行失败"
LOG_INFO "dnf provides命令基本功能测试通过"
LOG_INFO "步骤6: 测试dnf provides命令查询提供特定文件的功能"
LOG_INFO "执行命令: dnf provides /usr/bin/rpmbuild"
dnf provides /usr/bin/rpmbuild
CHECK_RESULT $? 0 0 "查询提供/usr/bin/rpmbuild文件的功能失败"
LOG_INFO "查询提供特定文件功能测试通过"
LOG_INFO "步骤7: 测试dnf provides命令查询提供特定能力的功能"
LOG_INFO "执行命令: dnf provides "rpmlib(VersionedDependencies)""
dnf provides "rpmlib(VersionedDependencies)"
CHECK_RESULT $? 0 0 "查询提供rpmlib能力的功能失败"
LOG_INFO "查询提供特定能力功能测试通过"
LOG_INFO "步骤8: 测试dnf provides命令不支持的参数"
LOG_INFO "执行命令: dnf provides --invalid-option"
dnf provides --invalid-option >/dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_INFO "不支持的参数处理正确返回退出码255"
else
LOG_ERROR "不支持的参数处理异常"
exit 255
fi
LOG_INFO "步骤9: 环境清理,如果脚本开始时未安装,则卸载软件包"
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "开始卸载rpm-devel软件包"
dnf remove -y rpm-devel
CHECK_RESULT $? 0 0 "卸载rpm-devel软件包失败"
LOG_INFO "rpm-devel软件包卸载成功环境已恢复"
else
LOG_INFO "脚本开始时rpm-devel已安装保持安装状态无需卸载"
fi
LOG_INFO "测试查询提供特定功能的包功能完成"
}
main "$@"

View File

@@ -1,93 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --dbpath 参数指定数据库目录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装rpm-devel和rpmgraph软件包
LOG_INFO "检查是否已安装rpm-devel和rpmgraph软件包"
rpm -q rpm-devel > /dev/null 2>&1
rpm_devel_installed=$?
rpm -q rpmgraph > /dev/null 2>&1
rpmgraph_installed=$?
# 定义安装和卸载函数
install_packages() {
LOG_INFO "开始安装rpm-devel和rpmgraph软件包"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装软件包失败"
}
uninstall_packages() {
LOG_INFO "开始卸载rpm-devel和rpmgraph软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载软件包失败"
}
# 检查yum源中是否有软件包
LOG_INFO "检查yum源中是否有rpm-devel软件包"
dnf list available rpm-devel > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中没有rpm-devel软件包"
LOG_INFO "检查yum源中是否有rpmgraph软件包"
dnf list available rpmgraph > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中没有rpmgraph软件包"
# 记录初始安装状态
initial_installed=0
if [ $rpm_devel_installed -eq 0 ] && [ $rpmgraph_installed -eq 0 ]; then
LOG_INFO "环境已安装rpm-devel和rpmgraph软件包"
initial_installed=1
else
LOG_INFO "环境未安装rpm-devel和rpmgraph软件包将进行安装"
install_packages
fi
# 测试rpmgraph命令的--dbpath参数
LOG_INFO "测试rpmgraph命令是否支持--dbpath参数"
rpmgraph --help | grep -q "\-\-dbpath"
CHECK_RESULT $? 0 255 "rpmgraph命令不支持--dbpath参数"
# 创建测试用的数据库目录
LOG_INFO "创建测试用的数据库目录"
test_db_dir=$(mktemp -d)
CHECK_RESULT $? 0 0 "创建测试数据库目录失败"
# 使用--dbpath参数执行rpmgraph命令
LOG_INFO "使用--dbpath参数执行rpmgraph命令"
rpmgraph --dbpath $test_db_dir --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "使用--dbpath参数执行rpmgraph命令失败"
# 清理测试数据库目录
LOG_INFO "清理测试数据库目录"
rm -rf $test_db_dir
CHECK_RESULT $? 0 0 "清理测试数据库目录失败"
# 环境恢复
if [ $initial_installed -eq 0 ]; then
LOG_INFO "恢复环境:卸载测试安装的软件包"
uninstall_packages
else
LOG_INFO "环境已安装,保持安装状态"
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-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --help 参数,显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试rpm-devel和rpmgraph命令的--help参数功能"
LOG_INFO "步骤1检查yum源中是否存在rpm-devel和rpmgraph软件包"
if ! dnf list available rpm-devel &> /dev/null; then
LOG_ERROR "yum源中未找到rpm-devel软件包"
exit 255
fi
if ! dnf list available rpmgraph &> /dev/null; then
LOG_ERROR "yum源中未找到rpmgraph软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装rpm-devel和rpmgraph软件包"
installed=0
if rpm -q rpm-devel &> /dev/null && rpm -q rpmgraph &> /dev/null; then
LOG_INFO "软件包已安装,测试后将保持安装状态"
installed=1
else
LOG_INFO "软件包未安装,将进行安装并在测试后卸载"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装rpm-devel和rpmgraph软件包失败"
fi
LOG_INFO "步骤3测试rpm-devel命令的--help参数"
if rpm-devel --help &> /dev/null; then
LOG_INFO "rpm-devel --help 执行成功"
else
LOG_ERROR "rpm-devel --help 参数不存在或不支持"
if [ $installed -eq 0 ]; then
dnf remove -y rpm-devel rpmgraph
fi
exit 255
fi
LOG_INFO "步骤4测试rpmgraph命令的--help参数"
if rpmgraph --help &> /dev/null; then
LOG_INFO "rpmgraph --help 执行成功"
else
LOG_ERROR "rpmgraph --help 参数不存在或不支持"
if [ $installed -eq 0 ]; then
dnf remove -y rpm-devel rpmgraph
fi
exit 255
fi
LOG_INFO "步骤5清理测试环境"
if [ $installed -eq 0 ]; then
LOG_INFO "卸载测试安装的软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载rpm-devel和rpmgraph软件包失败"
else
LOG_INFO "保持软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,121 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --load 参数加载单个宏文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义函数检查软件包是否在yum源中
check_package_in_repo() {
local package_name=$1
dnf list available "$package_name" &>/dev/null
if [[ $? -ne 0 ]]; then
LOG_ERROR "软件包 $package_name 不在yum源中"
exit 255
fi
}
# 定义函数:检查命令参数是否支持
check_command_option() {
local command_name=$1
local option=$2
if ! $command_name --help 2>&1 | grep -q -- "$option"; then
LOG_ERROR "命令 $command_name 不支持参数 $option"
exit 255
fi
}
# 定义函数:检查软件包是否已安装
check_package_installed() {
local package_name=$1
rpm -q "$package_name" &>/dev/null
return $?
}
# 定义函数:清理环境
cleanup_environment() {
if [[ $installed_by_script -eq 1 ]]; then
LOG_INFO "清理环境:卸载由脚本安装的软件包"
dnf remove -y rpm-devel rpmgraph &>/dev/null
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
}
# 主函数
main() {
# 初始化变量
local installed_by_script=0
local macro_file="/tmp/test_macro.mac"
# 步骤1检查yum源中是否存在rpm-devel和rpmgraph软件包
LOG_INFO "步骤1检查yum源中是否存在rpm-devel和rpmgraph软件包"
check_package_in_repo "rpm-devel"
check_package_in_repo "rpmgraph"
# 步骤2检查rpmgraph命令是否支持--load参数
LOG_INFO "步骤2检查rpmgraph命令是否支持--load参数"
check_command_option "rpmgraph" "--load"
# 步骤3检查rpm-devel和rpmgraph是否已安装
LOG_INFO "步骤3检查rpm-devel和rpmgraph是否已安装"
local need_install=0
if ! check_package_installed "rpm-devel"; then
need_install=1
fi
if ! check_package_installed "rpmgraph"; then
need_install=1
fi
# 步骤4如果需要则安装软件包
if [[ $need_install -eq 1 ]]; then
LOG_INFO "步骤4安装rpm-devel和rpmgraph软件包"
dnf install -y rpm-devel rpmgraph &>/dev/null
CHECK_RESULT $? 0 0 "安装软件包失败"
installed_by_script=1
else
LOG_INFO "步骤4软件包已安装无需重复安装"
fi
# 步骤5创建测试用的宏文件
LOG_INFO "步骤5创建测试用的宏文件"
echo "%_topdir /usr/src/rpm" > "$macro_file"
CHECK_RESULT $? 0 0 "创建宏文件失败"
# 步骤6使用rpmgraph --load加载单个宏文件
LOG_INFO "步骤6使用rpmgraph --load加载单个宏文件"
rpmgraph --load "$macro_file" &>/dev/null
CHECK_RESULT $? 0 0 "rpmgraph --load命令执行失败"
# 步骤7清理临时文件
LOG_INFO "步骤7清理临时文件"
rm -f "$macro_file"
CHECK_RESULT $? 0 0 "删除临时文件失败"
# 步骤8清理环境
LOG_INFO "步骤8清理环境"
cleanup_environment
}
# 设置异常处理
trap cleanup_environment EXIT
# 执行主函数
main
}
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-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --macros 参数指定宏文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了rpm-devel和rpmgraph包
LOG_INFO "检查是否已经安装了rpm-devel和rpmgraph软件包"
if rpm -q rpm-devel rpmgraph >/dev/null 2>&1; then
LOG_INFO "rpm-devel和rpmgraph已经安装脚本结束时将保持安装状态"
already_installed=true
else
LOG_INFO "rpm-devel和rpmgraph未安装将在测试过程中安装"
already_installed=false
fi
# 检查yum源中是否存在rpm-devel和rpmgraph包
LOG_INFO "检查yum源中是否存在rpm-devel和rpmgraph软件包"
if ! dnf list available rpm-devel rpmgraph >/dev/null 2>&1; then
LOG_ERROR "yum源中不存在rpm-devel或rpmgraph软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装rpm-devel和rpmgraph软件包"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装rpm-devel和rpmgraph失败"
fi
# 测试使用--macros参数指定宏文件
LOG_INFO "测试使用--macros参数指定宏文件"
# 创建一个临时宏文件用于测试
temp_macro_file=$(mktemp)
echo "%_topdir /tmp/rpmbuild" > "$temp_macro_file"
# 测试rpmgraph命令是否支持--macros参数
LOG_INFO "检查rpmgraph命令是否支持--macros参数"
if ! rpmgraph --help 2>&1 | grep -q "\-\-macros"; then
LOG_ERROR "rpmgraph命令不支持--macros参数"
# 清理临时文件
rm -f "$temp_macro_file"
# 如果测试过程中安装了软件包,需要卸载
if [ "$already_installed" = false ]; then
LOG_INFO "卸载测试过程中安装的软件包"
dnf remove -y rpm-devel rpmgraph
fi
exit 255
fi
# 使用--macros参数执行rpmgraph命令
LOG_INFO "使用--macros参数执行rpmgraph命令"
rpmgraph --macros "$temp_macro_file" --help >/dev/null 2>&1
CHECK_RESULT $? 0 0 "使用--macros参数执行rpmgraph命令失败"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f "$temp_macro_file"
# 环境恢复
LOG_INFO "恢复测试环境"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载测试过程中安装的软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载rpm-devel和rpmgraph失败"
else
LOG_INFO "保持rpm-devel和rpmgraph的安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,93 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --nodigest 参数,不验证软件包摘要
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装rpm-devel和rpmgraph包
LOG_INFO "检查rpm-devel和rpmgraph包是否已安装"
rpm -q rpm-devel rpmgraph >/dev/null 2>&1
PACKAGES_INSTALLED=$?
# 如果未安装,则安装软件包
if [ $PACKAGES_INSTALLED -ne 0 ]; then
LOG_INFO "rpm-devel和rpmgraph包未安装开始安装"
# 检查yum源中是否有rpm-devel包
LOG_INFO "检查yum源中是否有rpm-devel包"
dnf list available rpm-devel >/dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有rpm-devel包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有rpm-devel包"
exit 255
fi
# 检查yum源中是否有rpmgraph包
LOG_INFO "检查yum源中是否有rpmgraph包"
dnf list available rpmgraph >/dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有rpmgraph包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有rpmgraph包"
exit 255
fi
# 安装rpm-devel和rpmgraph包
LOG_INFO "开始安装rpm-devel和rpmgraph包"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装rpm-devel和rpmgraph包失败"
# 设置安装标志
NEED_CLEANUP=1
else
LOG_INFO "rpm-devel和rpmgraph包已安装"
NEED_CLEANUP=0
fi
# 测试rpmgraph命令的--nodigest参数是否存在
LOG_INFO "测试rpmgraph命令的--nodigest参数是否存在"
rpmgraph --help 2>&1 | grep -q -- "--nodigest"
CHECK_RESULT $? 0 0 "rpmgraph命令不支持--nodigest参数"
if [ $? -ne 0 ]; then
LOG_ERROR "rpmgraph命令不支持--nodigest参数"
# 如果之前安装了软件包,需要清理
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "清理安装的软件包"
dnf remove -y rpm-devel rpmgraph
fi
exit 255
fi
# 测试使用--nodigest参数不验证软件包摘要
LOG_INFO "测试使用--nodigest参数不验证软件包摘要"
# 使用一个已安装的包进行测试
TEST_PACKAGE="rpm"
rpmgraph --nodigest $TEST_PACKAGE >/dev/null 2>&1
CHECK_RESULT $? 0 0 "使用--nodigest参数执行rpmgraph命令失败"
# 清理环境
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "清理安装的软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载rpm-devel和rpmgraph包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --nolegacy 参数,不验证头部和负载签名
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PKG_NAME="rpm-devel"
CMD_NAME="rpmgraph"
CMD_OPTION="--nolegacy"
# 步骤1: 检查yum源中是否存在rpm-devel软件包
LOG_INFO "检查yum源中是否存在${PKG_NAME}软件包"
if ! dnf list available ${PKG_NAME} &>/dev/null; then
LOG_ERROR "yum源中不存在${PKG_NAME}软件包"
exit 255
fi
# 步骤2: 检查rpmgraph命令是否支持--nolegacy参数
LOG_INFO "检查${CMD_NAME}命令是否支持${CMD_OPTION}参数"
if ! ${CMD_NAME} --help 2>&1 | grep -q "${CMD_OPTION}"; then
LOG_ERROR "${CMD_NAME}命令不支持${CMD_OPTION}参数"
exit 255
fi
# 步骤3: 检查环境是否已安装rpm-devel软件包
LOG_INFO "检查环境是否已安装${PKG_NAME}软件包"
if rpm -q ${PKG_NAME} &>/dev/null; then
LOG_INFO "${PKG_NAME}软件包已安装,脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "${PKG_NAME}软件包未安装,将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 步骤4: 如果未安装则安装rpm-devel软件包
if [ "${INSTALLED_BEFORE}" = "false" ]; then
LOG_INFO "安装${PKG_NAME}软件包"
dnf install -y ${PKG_NAME}
CHECK_RESULT $? 0 0 "安装${PKG_NAME}软件包失败"
fi
# 步骤5: 执行rpmgraph --nolegacy命令测试
LOG_INFO "执行${CMD_NAME} ${CMD_OPTION}命令测试"
${CMD_NAME} ${CMD_OPTION}
CHECK_RESULT $? 0 0 "执行${CMD_NAME} ${CMD_OPTION}命令失败"
# 步骤6: 如果之前未安装则在测试结束后卸载rpm-devel软件包
if [ "${INSTALLED_BEFORE}" = "false" ]; then
LOG_INFO "卸载${PKG_NAME}软件包"
dnf remove -y ${PKG_NAME}
CHECK_RESULT $? 0 0 "卸载${PKG_NAME}软件包失败"
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-11
# @License : Mulan PSL v2
# @Desc : 测试同时使用 --nolegacy 和 --nodigest 参数,不验证签名和摘要
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装rpm-devel和rpmgraph
LOG_INFO "检查是否已安装rpm-devel和rpmgraph"
if rpm -q rpm-devel &>/dev/null && rpm -q rpmgraph &>/dev/null; then
LOG_INFO "rpm-devel和rpmgraph已安装"
INSTALLED=1
else
LOG_INFO "rpm-devel和rpmgraph未安装"
INSTALLED=0
fi
# 检查yum源中是否存在rpm-devel和rpmgraph
LOG_INFO "检查yum源中是否存在rpm-devel和rpmgraph"
if ! dnf list available rpm-devel &>/dev/null; then
LOG_ERROR "yum源中不存在rpm-devel"
exit 255
fi
if ! dnf list available rpmgraph &>/dev/null; then
LOG_ERROR "yum源中不存在rpmgraph"
exit 255
fi
LOG_INFO "yum源中存在rpm-devel和rpmgraph"
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装rpm-devel和rpmgraph"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装rpm-devel和rpmgraph失败"
LOG_INFO "安装rpm-devel和rpmgraph成功"
fi
# 检查rpmgraph命令是否支持--nolegacy和--nodigest参数
LOG_INFO "检查rpmgraph命令是否支持--nolegacy和--nodigest参数"
if ! rpmgraph --help 2>&1 | grep -q -- "--nolegacy"; then
LOG_ERROR "rpmgraph不支持--nolegacy参数"
exit 255
fi
if ! rpmgraph --help 2>&1 | grep -q -- "--nodigest"; then
LOG_ERROR "rpmgraph不支持--nodigest参数"
exit 255
fi
LOG_INFO "rpmgraph支持--nolegacy和--nodigest参数"
# 测试同时使用--nolegacy和--nodigest参数
LOG_INFO "测试同时使用--nolegacy和--nodigest参数不验证签名和摘要"
rpmgraph --nolegacy --nodigest
CHECK_RESULT $? 0 0 "rpmgraph --nolegacy --nodigest执行失败"
LOG_INFO "rpmgraph --nolegacy --nodigest执行成功"
# 清理环境:如果之前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载rpm-devel和rpmgraph"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载rpm-devel和rpmgraph失败"
LOG_INFO "卸载rpm-devel和rpmgraph成功"
else
LOG_INFO "环境已安装rpm-devel和rpmgraph保持安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,162 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --nosignature 参数,不验证软件包签名
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试使用 --nosignature 参数,不验证软件包签名
LOG_INFO "开始测试rpmgraph命令的--nosignature参数"
# 定义需要测试的软件包
PACKAGE_NAME="rpm-devel"
COMMAND="rpmgraph"
PARAM="--nosignature"
# 步骤1检查yum源中是否存在需要测试的软件包
LOG_INFO "步骤1检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} 2>/dev/null | grep -q ${PACKAGE_NAME}
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
# 步骤2检查rpmgraph命令是否支持--nosignature参数
LOG_INFO "步骤2检查${COMMAND}命令是否支持${PARAM}参数"
${COMMAND} --help 2>&1 | grep -q "${PARAM}"
if [ $? -ne 0 ]; then
LOG_ERROR "${COMMAND}命令不支持${PARAM}参数"
exit 255
fi
LOG_INFO "${COMMAND}命令支持${PARAM}参数"
# 步骤3检查测试环境是否已安装rpm-devel软件包
LOG_INFO "步骤3检查测试环境是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
PACKAGE_INSTALLED=$?
# 记录初始安装状态
if [ ${PACKAGE_INSTALLED} -eq 0 ]; then
LOG_INFO "${PACKAGE_NAME}软件包已安装,测试结束后将保持安装状态"
NEED_CLEANUP=0
else
LOG_INFO "${PACKAGE_NAME}软件包未安装,测试结束后将卸载"
NEED_CLEANUP=1
fi
# 步骤4如果未安装则安装rpm-devel软件包
if [ ${PACKAGE_INSTALLED} -ne 0 ]; then
LOG_INFO "步骤4安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
LOG_INFO "成功安装${PACKAGE_NAME}软件包"
fi
# 步骤5测试rpmgraph命令的--nosignature参数
LOG_INFO "步骤5测试${COMMAND}命令的${PARAM}参数"
# 创建一个临时的rpm包用于测试
TEST_RPM="/tmp/test-package.rpm"
LOG_INFO "创建测试用的rpm包"
rpmbuild -bb --quiet --define "_topdir /tmp/rpmbuild" \
--define "name test-package" \
--define "version 1.0" \
--define "release 1" \
--define "summary Test package" /dev/null 2>/dev/null || true
# 查找生成的rpm包
find /tmp/rpmbuild/RPMS -name "*.rpm" -type f 2>/dev/null | head -1 > ${TEST_RPM}
if [ -s ${TEST_RPM} ]; then
RPM_FILE=$(cat ${TEST_RPM})
# 测试不带--nosignature参数
LOG_INFO "测试不带${PARAM}参数的rpmgraph命令"
${COMMAND} ${RPM_FILE} >/dev/null 2>&1
RESULT_WITHOUT=$?
# 测试带--nosignature参数
LOG_INFO "测试带${PARAM}参数的rpmgraph命令"
${COMMAND} ${PARAM} ${RPM_FILE} >/dev/null 2>&1
RESULT_WITH=$?
# 清理临时rpm包
if [ -f "${RPM_FILE}" ]; then
rm -f "${RPM_FILE}"
fi
rm -rf /tmp/rpmbuild ${TEST_RPM} 2>/dev/null || true
# 检查两个命令的执行结果
LOG_INFO "检查rpmgraph命令执行结果"
if [ ${RESULT_WITHOUT} -eq 0 ] || [ ${RESULT_WITH} -eq 0 ]; then
LOG_INFO "rpmgraph命令执行成功"
CHECK_RESULT 0 0 0 "rpmgraph命令执行失败"
else
LOG_ERROR "rpmgraph命令执行失败"
CHECK_RESULT 1 0 0 "rpmgraph命令执行失败"
fi
else
LOG_INFO "使用已安装的rpm包测试rpmgraph命令"
# 获取一个已安装的rpm包进行测试
INSTALLED_RPM=$(rpm -qa | head -1)
if [ -n "${INSTALLED_RPM}" ]; then
# 测试不带--nosignature参数
${COMMAND} ${INSTALLED_RPM} >/dev/null 2>&1
RESULT_WITHOUT=$?
# 测试带--nosignature参数
${COMMAND} ${PARAM} ${INSTALLED_RPM} >/dev/null 2>&1
RESULT_WITH=$?
LOG_INFO "检查rpmgraph命令执行结果"
if [ ${RESULT_WITHOUT} -eq 0 ] || [ ${RESULT_WITH} -eq 0 ]; then
LOG_INFO "rpmgraph命令执行成功"
CHECK_RESULT 0 0 0 "rpmgraph命令执行失败"
else
LOG_ERROR "rpmgraph命令执行失败"
CHECK_RESULT 1 0 0 "rpmgraph命令执行失败"
fi
else
LOG_ERROR "没有找到可用于测试的rpm包"
CHECK_RESULT 1 0 0 "没有找到可用于测试的rpm包"
fi
fi
# 步骤6清理测试环境
LOG_INFO "步骤6清理测试环境"
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
if [ $? -eq 0 ]; then
LOG_INFO "成功卸载${PACKAGE_NAME}软件包"
else
LOG_ERROR "卸载${PACKAGE_NAME}软件包失败"
fi
else
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
fi
# 清理临时文件
rm -rf /tmp/rpmbuild /tmp/test-package.rpm 2>/dev/null || true
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-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --querytags 参数,显示已知的查询标签
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装rpm-devel和rpmgraph软件包
LOG_INFO "检查是否已安装rpm-devel和rpmgraph软件包"
rpm -q rpm-devel rpmgraph > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "软件包未安装,将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否存在rpm-devel和rpmgraph软件包
LOG_INFO "检查yum源中是否存在rpm-devel和rpmgraph软件包"
dnf list available rpm-devel rpmgraph > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中缺少rpm-devel或rpmgraph软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装rpm-devel和rpmgraph软件包"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装rpm-devel和rpmgraph软件包失败"
fi
# 检查rpmgraph命令是否支持--querytags参数
LOG_INFO "检查rpmgraph命令是否支持--querytags参数"
rpmgraph --help 2>&1 | grep -q "\-\-querytags"
if [ $? -ne 0 ]; then
LOG_ERROR "rpmgraph命令不支持--querytags参数"
exit 255
fi
# 测试使用--querytags参数显示已知的查询标签
LOG_INFO "测试使用--querytags参数显示已知的查询标签"
rpmgraph --querytags
CHECK_RESULT $? 0 0 "执行rpmgraph --querytags命令失败"
# 清理环境:如果测试前未安装软件包,则卸载
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载rpm-devel和rpmgraph软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载rpm-devel和rpmgraph软件包失败"
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-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --quiet 参数,提供更少的详细信息输出
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 rpm-devel 包的 rpmgraph --quiet 参数功能"
LOG_INFO "检查系统中是否已安装 rpm-devel 包"
if rpm -q rpm-devel > /dev/null 2>&1; then
LOG_INFO "rpm-devel 包已安装,测试结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "rpm-devel 包未安装,将在测试过程中安装"
ALREADY_INSTALLED=0
fi
LOG_INFO "检查 yum 源中是否存在 rpm-devel 包"
if ! dnf list available rpm-devel > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 rpm-devel 包"
exit 255
fi
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装 rpm-devel 包"
dnf install -y rpm-devel
CHECK_RESULT $? 0 0 "安装 rpm-devel 包失败"
fi
LOG_INFO "检查 rpmgraph 命令是否支持 --quiet 参数"
rpmgraph --help 2>&1 | grep -q -- "--quiet"
if [ $? -ne 0 ]; then
LOG_ERROR "rpmgraph 命令不支持 --quiet 参数"
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境:卸载 rpm-devel 包"
dnf remove -y rpm-devel
fi
exit 255
fi
LOG_INFO "测试 rpmgraph --quiet 参数功能"
rpmgraph --quiet > /dev/null 2>&1
CHECK_RESULT $? 0 0 "rpmgraph --quiet 命令执行失败"
LOG_INFO "验证 --quiet 参数是否减少了输出信息"
NORMAL_OUTPUT=$(rpmgraph 2>&1 | wc -l)
QUIET_OUTPUT=$(rpmgraph --quiet 2>&1 | wc -l)
if [ $QUIET_OUTPUT -ge $NORMAL_OUTPUT ]; then
LOG_ERROR "--quiet 参数未减少输出信息"
CHECK_RESULT 1 0 0 "--quiet 参数验证失败"
else
LOG_INFO "--quiet 参数成功减少了输出信息"
fi
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境:卸载 rpm-devel 包"
dnf remove -y rpm-devel
CHECK_RESULT $? 0 0 "卸载 rpm-devel 包失败"
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-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --rcfile 参数指定配置文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始:测试使用 --rcfile 参数指定配置文件"
LOG_INFO "步骤1检查软件包 rpm-devel 和 rpmgraph 是否在 yum 源中"
if ! dnf list available rpm-devel &> /dev/null; then
LOG_ERROR "软件包 rpm-devel 不在 yum 源中"
exit 255
fi
if ! dnf list available rpmgraph &> /dev/null; then
LOG_ERROR "软件包 rpmgraph 不在 yum 源中"
exit 255
fi
LOG_INFO "软件包 rpm-devel 和 rpmgraph 在 yum 源中"
LOG_INFO "步骤2检查环境中是否已安装 rpm-devel 和 rpmgraph"
INSTALLED=false
if rpm -q rpm-devel &> /dev/null && rpm -q rpmgraph &> /dev/null; then
LOG_INFO "软件包 rpm-devel 和 rpmgraph 已安装"
INSTALLED=true
else
LOG_INFO "软件包 rpm-devel 和 rpmgraph 未安装,开始安装"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装 rpm-devel 和 rpmgraph 失败"
LOG_INFO "安装 rpm-devel 和 rpmgraph 成功"
fi
LOG_INFO "步骤3检查 rpmgraph 命令是否支持 --rcfile 参数"
if ! rpmgraph --help 2>&1 | grep -q -- "--rcfile"; then
LOG_ERROR "rpmgraph 命令不支持 --rcfile 参数"
exit 255
fi
LOG_INFO "rpmgraph 命令支持 --rcfile 参数"
LOG_INFO "步骤4创建测试配置文件"
TEST_RCFILE="/tmp/test_rpmgraph_rcfile"
cat > "$TEST_RCFILE" << EOF
# 测试配置文件
# 这里可以添加配置内容
EOF
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
LOG_INFO "步骤5使用 --rcfile 参数执行 rpmgraph 命令"
rpmgraph --rcfile "$TEST_RCFILE" --help
CHECK_RESULT $? 0 0 "使用 --rcfile 参数执行 rpmgraph 命令失败"
LOG_INFO "步骤6清理测试配置文件"
rm -f "$TEST_RCFILE"
CHECK_RESULT $? 0 0 "删除测试配置文件失败"
LOG_INFO "步骤7根据初始状态决定是否卸载软件包"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "初始状态未安装,卸载软件包 rpm-devel 和 rpmgraph"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载 rpm-devel 和 rpmgraph 失败"
LOG_INFO "卸载 rpm-devel 和 rpmgraph 成功"
else
LOG_INFO "初始状态已安装,保持安装状态"
fi
LOG_INFO "测试结束:测试使用 --rcfile 参数指定配置文件完成"
}
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-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --showrc 参数显示最终的rpmrc和宏配置
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试使用 --showrc 参数显示最终的rpmrc和宏配置
# 定义软件包名称
PACKAGE_NAME="rpm-devel"
COMMAND_NAME="rpmgraph"
PARAMETER="--showrc"
# 步骤1检查yum源中是否有rpm-devel软件包
LOG_INFO "检查yum源中是否有${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到${PACKAGE_NAME}软件包"
exit 255
fi
# 步骤2检查是否已经安装了rpm-devel软件包
LOG_INFO "检查是否已经安装了${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
PACKAGE_INSTALLED=$?
# 步骤3如果未安装则安装软件包
if [ ${PACKAGE_INSTALLED} -ne 0 ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 步骤4检查rpmgraph命令是否支持--showrc参数
LOG_INFO "检查${COMMAND_NAME}命令是否支持${PARAMETER}参数"
${COMMAND_NAME} ${PARAMETER} 2>&1 | grep -q "unknown option"
if [ $? -eq 0 ]; then
LOG_ERROR "${COMMAND_NAME}命令不支持${PARAMETER}参数"
exit 255
fi
# 步骤5执行rpmgraph --showrc命令
LOG_INFO "执行${COMMAND_NAME} ${PARAMETER}命令"
${COMMAND_NAME} ${PARAMETER} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行${COMMAND_NAME} ${PARAMETER}命令失败"
# 步骤6验证输出内容包含rpmrc和宏配置信息
LOG_INFO "验证输出内容包含rpmrc和宏配置信息"
${COMMAND_NAME} ${PARAMETER} | grep -q "rpmrc"
CHECK_RESULT $? 0 0 "输出内容不包含rpmrc配置信息"
${COMMAND_NAME} ${PARAMETER} | grep -q "macros"
CHECK_RESULT $? 0 0 "输出内容不包含宏配置信息"
# 步骤7清理环境
LOG_INFO "清理测试环境"
if [ ${PACKAGE_INSTALLED} -ne 0 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
else
LOG_INFO "${PACKAGE_NAME}软件包原本已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 --undefine 参数取消宏定义
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试rpmgraph --undefine参数功能"
LOG_INFO "步骤1: 检查系统是否已安装rpm-devel和rpmgraph软件包"
if rpm -q rpm-devel rpmgraph >/dev/null 2>&1; then
LOG_INFO "rpm-devel和rpmgraph已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "rpm-devel和rpmgraph未安装将在测试过程中安装"
INSTALLED=0
fi
LOG_INFO "步骤2: 检查yum源中是否存在rpm-devel和rpmgraph软件包"
if ! dnf list available rpm-devel rpmgraph >/dev/null 2>&1; then
LOG_ERROR "yum源中不存在rpm-devel或rpmgraph软件包"
exit 255
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3: 安装rpm-devel和rpmgraph软件包"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装rpm-devel和rpmgraph失败"
fi
LOG_INFO "步骤4: 检查rpmgraph命令是否支持--undefine参数"
rpmgraph --help | grep -q "\-\-undefine"
CHECK_RESULT $? 0 0 "rpmgraph命令不支持--undefine参数"
if [ $? -ne 0 ]; then
exit 255
fi
LOG_INFO "步骤5: 测试使用--undefine参数取消宏定义"
TEST_RPM="/tmp/test_package.rpm"
rpmbuild -bb --define "_topdir /tmp/rpmbuild" --define "test_macro test_value" /dev/null 2>/dev/null || true
find /tmp/rpmbuild -name "*.rpm" -exec cp {} $TEST_RPM \; 2>/dev/null || true
if [ -f $TEST_RPM ]; then
rpmgraph --undefine "test_macro" $TEST_RPM >/dev/null 2>&1
CHECK_RESULT $? 0 0 "使用--undefine参数执行rpmgraph失败"
else
LOG_INFO "未生成测试rpm包跳过具体参数测试"
fi
LOG_INFO "步骤6: 清理测试环境"
rm -rf /tmp/rpmbuild $TEST_RPM 2>/dev/null
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤7: 卸载测试安装的软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载rpm-devel和rpmgraph失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 -r 参数指定根目录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 rpmgraph 命令的 -r 参数功能"
LOG_INFO "步骤1检查系统中是否已安装 rpm-devel 和 rpmgraph 软件包"
if rpm -q rpm-devel > /dev/null 2>&1 && rpm -q rpmgraph > /dev/null 2>&1; then
LOG_INFO "软件包已安装,测试后保持安装状态"
installed=true
else
LOG_INFO "软件包未安装,将在测试过程中安装"
installed=false
fi
LOG_INFO "步骤2检查 yum 源中是否存在 rpm-devel 和 rpmgraph 软件包"
if ! dnf list available rpm-devel > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 rpm-devel 软件包"
exit 255
fi
if ! dnf list available rpmgraph > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 rpmgraph 软件包"
exit 255
fi
if [ "$installed" = false ]; then
LOG_INFO "步骤3安装 rpm-devel 和 rpmgraph 软件包"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
LOG_INFO "步骤4检查 rpmgraph 命令是否支持 -r 参数"
if ! rpmgraph --help 2>&1 | grep -q -- "-r"; then
LOG_ERROR "rpmgraph 命令不支持 -r 参数"
exit 255
fi
LOG_INFO "步骤5测试使用 -r 参数指定根目录"
test_root="/tmp/test_rpmgraph_root"
mkdir -p "$test_root"
rpmgraph -r "$test_root" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "使用 -r 参数执行 rpmgraph 失败"
LOG_INFO "步骤6清理测试环境"
rm -rf "$test_root"
if [ "$installed" = false ]; then
LOG_INFO "步骤7卸载测试安装的软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 -D 参数定义宏
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试使用 -D 参数定义宏"
LOG_INFO "步骤1检查软件包 rpm-devel 和 rpmgraph 是否在 yum 源中"
if ! dnf list available rpm-devel &>/dev/null; then
LOG_ERROR "软件包 rpm-devel 不在 yum 源中"
exit 255
fi
if ! dnf list available rpmgraph &>/dev/null; then
LOG_ERROR "软件包 rpmgraph 不在 yum 源中"
exit 255
fi
LOG_INFO "步骤2检查当前环境是否已安装 rpm-devel 和 rpmgraph"
if rpm -q rpm-devel &>/dev/null && rpm -q rpmgraph &>/dev/null; then
LOG_INFO "软件包已安装,测试结束后保持安装状态"
INSTALLED=1
else
LOG_INFO "软件包未安装,开始安装"
dnf install -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "安装软件包失败"
INSTALLED=0
fi
LOG_INFO "步骤3测试 rpmgraph 命令是否支持 -D 参数"
if ! rpmgraph --help 2>&1 | grep -q -- "-D"; then
LOG_ERROR "rpmgraph 命令不支持 -D 参数"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境:卸载安装的软件包"
dnf remove -y rpm-devel rpmgraph
fi
exit 255
fi
LOG_INFO "步骤4使用 -D 参数定义宏并执行 rpmgraph 命令"
rpmgraph -D "_topdir /tmp/test" --spec /path/to/test.spec 2>&1
CHECK_RESULT $? 0 0 "使用 -D 参数执行 rpmgraph 失败"
LOG_INFO "步骤5清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载安装的软件包"
dnf remove -y rpm-devel rpmgraph
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试使用 -E 参数打印宏扩展
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试rpmgraph命令的-E参数功能"
# 检查yum源中是否存在rpm-devel和rpmgraph软件包
LOG_INFO "检查yum源中是否存在rpm-devel和rpmgraph软件包"
dnf list available rpm-devel > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在rpm-devel软件包"
dnf list available rpmgraph > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在rpmgraph软件包"
# 判断环境是否已经安装rpm-devel和rpmgraph
LOG_INFO "判断环境是否已经安装rpm-devel和rpmgraph"
if rpm -q rpm-devel > /dev/null 2>&1 && rpm -q rpmgraph > /dev/null 2>&1; then
LOG_INFO "环境已安装rpm-devel和rpmgraph测试结束后保持安装状态"
INSTALLED=1
else
LOG_INFO "环境未安装rpm-devel和rpmgraph开始安装软件包"
dnf install -y rpm-devel rpmgraph > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装rpm-devel和rpmgraph失败"
INSTALLED=0
fi
# 测试rpmgraph命令的-E参数是否存在
LOG_INFO "测试rpmgraph命令的-E参数是否存在"
rpmgraph --help 2>&1 | grep -q "\-E"
CHECK_RESULT $? 0 255 "rpmgraph命令不支持-E参数"
# 使用rpmgraph命令的-E参数打印宏扩展
LOG_INFO "使用rpmgraph命令的-E参数打印宏扩展"
rpmgraph -E > /dev/null 2>&1
CHECK_RESULT $? 0 0 "使用-E参数打印宏扩展失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境:卸载测试安装的软件包"
dnf remove -y rpm-devel rpmgraph > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载rpm-devel和rpmgraph失败"
else
LOG_INFO "环境保持原状,不卸载软件包"
fi
LOG_INFO "测试完成"
}
main "$@"

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