This commit is contained in:
2026-04-25 00:40:09 +08:00
198 changed files with 0 additions and 15163 deletions

View File

@@ -5,26 +5,6 @@
{
"name": "test_avalon-logkit-help_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_avalon-logkit-help_function_install",
"desc": "Test package installation"
},
{
"name": "test_avalon-logkit-help_function_config",
"desc": "Test package configuration"
},
{
"name": "test_avalon-logkit-help_function_start",
"desc": "Test service start"
},
{
"name": "test_avalon-logkit-help_function_stop",
"desc": "Test service stop"
},
{
"name": "test_avalon-logkit-help_function_status",
"desc": "Test service status"
}
]
}

View File

@@ -2,26 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/felix-framework/felix-framework-javadoc",
"machine num": 1,
"cases": [
{
"name": "test_felix-framework-javadoc_function_docgen",
"desc": "验证javadoc生成功能"
},
{
"name": "test_felix-framework-javadoc_function_parse",
"desc": "验证文档解析功能"
},
{
"name": "test_felix-framework-javadoc_function_install",
"desc": "验证软件包安装功能"
},
{
"name": "test_felix-framework-javadoc_function_uninstall",
"desc": "验证软件包卸载功能"
},
{
"name": "test_felix-framework-javadoc_function_check_installed",
"desc": "验证软件包安装状态检查"
},
{
"name": "test_felix-framework-javadoc_function_basic_usage",
"desc": "验证软件包基本使用功能"

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/google-noto-fonts/google-noto-sans-chakma-fonts",
"machine num": 1,
"cases": [
{
"name": "test_google-noto-sans-chakma-fonts_function_install",
"desc": "测试软件包是否能成功安装。"
},
{
"name": "test_google-noto-sans-chakma-fonts_function_uninstall",
"desc": "测试软件包是否能被完全卸载。"
},
{
"name": "test_google-noto-sans-chakma-fonts_function_file_exist",
"desc": "测试安装后核心字体文件(如.ttf是否存在于系统字体目录。"
},
{
"name": "test_google-noto-sans-chakma-fonts_function_font_cache",
"desc": "测试安装后字体缓存是否成功更新,系统能识别新字体。"
},
{
"name": "test_google-noto-sans-chakma-fonts_function_usage",
"desc": "测试在支持的应用如LibreOffice中能否选择并使用该字体渲染Chakma文字。"
}
]
}

View File

@@ -25,14 +25,6 @@
{
"name": "test_kde4-filesystem_function_verify",
"desc": "Verify package file integrity"
},
{
"name": "test_kde4-filesystem_function_dependencies",
"desc": "Check package dependencies"
},
{
"name": "test_kde4-filesystem_function_upgrade",
"desc": "Test package upgrade"
}
]
}

View File

@@ -5,42 +5,6 @@
{
"name": "test_nagios-plugins-snmp_function_snmpwalk",
"desc": "Test SNMP WALK operation"
},
{
"name": "test_nagios-plugins-snmp_function_snmpget",
"desc": "Test SNMP GET operation"
},
{
"name": "test_nagios-plugins-snmp_function_install",
"desc": "Test package installation"
},
{
"name": "test_nagios-plugins-snmp_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_nagios-plugins-snmp_function_check_memory",
"desc": "Test check_snmp_memory plugin"
},
{
"name": "test_nagios-plugins-snmp_function_check_load",
"desc": "Test check_snmp_load plugin"
},
{
"name": "test_nagios-plugins-snmp_function_check_storage",
"desc": "Test check_snmp_storage plugin"
},
{
"name": "test_nagios-plugins-snmp_function_check_interface",
"desc": "Test check_snmp_int plugin"
},
{
"name": "test_nagios-plugins-snmp_function_check_cpu",
"desc": "Test check_snmp_cpu plugin"
},
{
"name": "test_nagios-plugins-snmp_function_help",
"desc": "Test plugin help output"
}
]
}

View File

@@ -9,30 +9,6 @@
{
"name": "test_pcp-pmda-nginx_function_install",
"desc": "Test if the pcp-pmda-nginx package can be successfully installed."
},
{
"name": "test_pcp-pmda-nginx_function_enable",
"desc": "Test enabling the nginx PMDA agent."
},
{
"name": "test_pcp-pmda-nginx_function_start",
"desc": "Test starting the nginx PMDA agent service."
},
{
"name": "test_pcp-pmda-nginx_function_collect",
"desc": "Test if nginx metrics are collected by pcp."
},
{
"name": "test_pcp-pmda-nginx_function_pminfo",
"desc": "Test querying nginx metrics with pminfo."
},
{
"name": "test_pcp-pmda-nginx_function_restart",
"desc": "Test restarting the nginx PMDA agent."
},
{
"name": "test_pcp-pmda-nginx_function_status",
"desc": "Test checking the status of the nginx PMDA."
}
]
}

View File

@@ -2,73 +2,13 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-django-cache-url/python3-django-cache-url",
"machine num": 1,
"cases": [
{
"name": "test_python3-django-cache-url_function_parse",
"desc": "Test parsing cache URL configuration"
},
{
"name": "test_python3-django-cache-url_function_backend",
"desc": "Test backend initialization"
},
{
"name": "test_python3-django-cache-url_function_options",
"desc": "Test cache options handling"
},
{
"name": "test_python3-django-cache-url_function_install",
"desc": "Test package installation"
},
{
"name": "test_python3-django-cache-url_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_python3-django-cache-url_function_import",
"desc": "Test successful import"
},
{
"name": "test_python3-django-cache-url_function_version",
"desc": "Test package version check"
},
{
"name": "test_python3-django-cache-url_function_basic_parse",
"desc": "Test basic cache URL parsing"
},
{
"name": "test_python3-django-cache-url_function_redis_parse",
"desc": "Test Redis URL parsing"
},
{
"name": "test_python3-django-cache-url_function_memcached_parse",
"desc": "Test Memcached URL parsing"
},
{
"name": "test_python3-django-cache-url_function_database_parse",
"desc": "Test database URL parsing"
},
{
"name": "test_python3-django-cache-url_function_locmem_parse",
"desc": "Test locmem URL parsing"
},
{
"name": "test_python3-django-cache-url_function_dummy_parse",
"desc": "Test dummy cache URL parsing"
},
{
"name": "test_python3-django-cache-url_function_complex_options",
"desc": "Test parsing with options"
},
{
"name": "test_python3-django-cache-url_function_config_to_dict",
"desc": "Test config dict conversion"
},
{
"name": "test_python3-django-cache-url_function_invalid_url",
"desc": "Test handling invalid URL"
},
{
"name": "test_python3-django-cache-url_function_help_docs",
"desc": "Test help documentation access"
}
]
}

View File

@@ -6,153 +6,9 @@
"name": "test_texlive-mfware_gftodvi_help",
"desc": "测试 gftodvi 命令的 --help 参数,用于显示帮助信息"
},
{
"name": "test_texlive-mfware_gftodvi_verbose",
"desc": "测试 gftodvi 命令的 --verbose 参数,用于显示进度报告"
},
{
"name": "test_texlive-mfware_gftodvi_version",
"desc": "测试 gftodvi 命令的 --version 参数,用于输出版本信息"
},
{
"name": "test_texlive-mfware_gftodvi_overflow-label-offset",
"desc": "测试 gftodvi 命令的 --overflow-label-offset 参数,用于覆盖溢出标签的偏移量"
},
{
"name": "test_texlive-mfware_gftopk_help",
"desc": "测试 gftopk 命令的 -help 参数,验证帮助信息是否正确显示。"
},
{
"name": "test_texlive-mfware_gftopk_verbose",
"desc": "测试 gftopk 命令的 -verbose 参数,验证处理 GF 文件时是否显示进度报告。"
},
{
"name": "test_texlive-mfware_gftopk_version",
"desc": "测试 gftopk 命令的 -version 参数,验证版本信息是否正确输出。"
},
{
"name": "test_texlive-mfware_gftype_images",
"desc": "测试使用-images参数以像素形式显示字符"
},
{
"name": "test_texlive-mfware_gftype_mnemonics",
"desc": "测试使用-mnemonics参数将所有GF命令翻译为助记符形式"
},
{
"name": "test_texlive-mfware_gftype_help",
"desc": "测试使用-help参数显示帮助信息"
},
{
"name": "test_texlive-mfware_gftype_version",
"desc": "测试使用-version参数输出版本信息"
},
{
"name": "test_texlive-mfware_gftype_no_args",
"desc": "测试不带任何参数执行命令,验证其基础功能"
},
{
"name": "test_texlive-mfware_mft_no_args",
"desc": "测试不带任何参数运行mft命令"
},
{
"name": "test_texlive-mfware_mft_help",
"desc": "测试使用-help参数显示帮助信息"
},
{
"name": "test_texlive-mfware_mft_version",
"desc": "测试使用-version参数显示版本信息"
},
{
"name": "test_texlive-mfware_mft_change",
"desc": "测试使用-change参数并指定变更文件"
},
{
"name": "test_texlive-mfware_mft_metapost",
"desc": "测试使用-metapost参数处理METAPOST源文件"
},
{
"name": "test_texlive-mfware_mft_style",
"desc": "测试使用-style参数指定样式文件"
},
{
"name": "test_texlive-mfware_mft_style_multiple",
"desc": "测试多次使用-style参数指定多个样式文件"
},
{
"name": "test_texlive-mfware_mft_metapost_change",
"desc": "测试同时使用-metapost和-change参数"
},
{
"name": "test_texlive-mfware_mft_metapost_style",
"desc": "测试同时使用-metapost和-style参数"
},
{
"name": "test_texlive-mfware_pktogf_help",
"desc": "测试pktogf命令的帮助信息显示"
},
{
"name": "test_texlive-mfware_pktogf_verbose",
"desc": "测试pktogf命令的详细输出模式"
},
{
"name": "test_texlive-mfware_pktogf_version",
"desc": "测试pktogf命令的版本信息显示"
},
{
"name": "test_texlive-mfware_pktype_help",
"desc": "测试pktype命令的-help参数验证是否显示帮助信息"
},
{
"name": "test_texlive-mfware_pktype_version",
"desc": "测试pktype命令的-version参数验证是否输出版本信息"
},
{
"name": "test_texlive-mfware_pktype_no_args",
"desc": "测试pktype命令不带任何参数验证是否提示需要PKNAME参数或显示默认行为"
},
{
"name": "test_texlive-mfware_pktype_with_pkfile",
"desc": "测试pktype命令后跟一个有效的PKNAME文件验证是否能正确读取并输出可读格式"
},
{
"name": "test_texlive-mfware_install",
"desc": "测试软件包的安装功能验证是否能成功安装texlive-mfware"
},
{
"name": "test_texlive-mfware_uninstall",
"desc": "测试软件包的卸载功能验证是否能完全移除texlive-mfware"
},
{
"name": "test_texlive-mfware_check_installed",
"desc": "测试检查texlive-mfware软件包是否已安装"
},
{
"name": "test_texlive-mfware_gftodvi_basic",
"desc": "测试gftodvi命令的基本功能将GF文件转换为DVI文件"
},
{
"name": "test_texlive-mfware_gftopk_basic",
"desc": "测试gftopk命令的基本功能将GF文件转换为PK文件"
},
{
"name": "test_texlive-mfware_pktogf_basic",
"desc": "测试pktogf命令的基本功能将PK文件转换回GF文件"
},
{
"name": "test_texlive-mfware_gftype_basic",
"desc": "测试gftype命令的基本功能显示GF文件的字符信息"
},
{
"name": "test_texlive-mfware_pktype_basic",
"desc": "测试pktype命令的基本功能显示PK文件的字符信息"
},
{
"name": "test_texlive-mfware_mft_basic",
"desc": "测试mft命令的基本功能格式化TeX或METAPOST源文件"
},
{
"name": "test_texlive-mfware_version_all",
"desc": "测试软件包中所有主要工具gftodvi, gftopk等的版本信息输出"
}
]
}

View File

@@ -19,10 +19,6 @@
"name": "test_texlive-aobs-tikz_function_version",
"desc": "测试 texlive-aobs-tikz 软件包的版本查询功能,验证能正确获取已安装的软件包版本信息。"
},
{
"name": "test_texlive-aobs-tikz_function_usage",
"desc": "测试 texlive-aobs-tikz 软件包的基本使用功能,验证其提供的宏包或样式文件能否在 LaTeX 文档中被成功调用和编译。"
},
{
"name": "test_texlive-aobs-tikz_function_deps",
"desc": "测试 texlive-aobs-tikz 软件包的依赖关系,验证其安装是否同时正确安装了所有必要的依赖包。"

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-ebook-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-ebook-doc_function_install",
"desc": "Verify installation of texlive-ebook-doc"
}
]
}

View File

@@ -14,10 +14,6 @@
"name": "test_texlive-gfnotation-doc_function_version",
"desc": "Test package version query"
},
{
"name": "test_texlive-gfnotation-doc_function_doc_exist",
"desc": "Test documentation file existence"
},
{
"name": "test_texlive-gfnotation-doc_function_list_files",
"desc": "Test listing package files"

View File

@@ -18,10 +18,6 @@
{
"name": "test_texlive-kixfont-doc_function_query",
"desc": "测试 texlive-kixfont-doc 软件包的查询功能,验证能否通过包管理器查询到该软件包的版本和状态信息。"
},
{
"name": "test_texlive-kixfont-doc_function_doc_exist",
"desc": "测试 texlive-kixfont-doc 软件包的核心文档文件是否存在于预期的系统目录中。"
}
]
}

View File

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

View File

@@ -1,30 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-v/texlive-synttree-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-synttree-doc_function_render",
"desc": "Test rendering of synttree"
},
{
"name": "test_texlive-synttree-doc_function_install",
"desc": "Test installation of texlive-synttree-doc package"
},
{
"name": "test_texlive-synttree-doc_function_uninstall",
"desc": "Test uninstallation of texlive-synttree-doc package"
},
{
"name": "test_texlive-synttree-doc_function_doc_exist",
"desc": "Test existence of synttree documentation files"
},
{
"name": "test_texlive-synttree-doc_function_manual_access",
"desc": "Test access to synttree package manual"
},
{
"name": "test_texlive-synttree-doc_function_examples",
"desc": "Test compilation of synttree example code"
}
]
}

View File

@@ -7,175 +7,10 @@
"desc": "测试texlive-todo-doc软件包的安装功能验证安装过程是否正常完成",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_uninstall",
"desc": "测试texlive-todo-doc软件包的卸载功能验证卸载过程是否正常完成",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_upgrade",
"desc": "测试texlive-todo-doc软件包的升级功能验证升级过程是否正常完成",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_downgrade",
"desc": "测试texlive-todo-doc软件包的降级功能验证降级过程是否正常完成",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_rollback",
"desc": "测试texlive-todo-doc软件包的回滚功能验证回滚过程是否正常完成",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_reinstall",
"desc": "测试texlive-todo-doc软件包的重新安装功能验证重新安装过程是否正常完成",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation",
"desc": "测试texlive-todo-doc软件包的文档功能验证文档是否完整且可正常访问",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_access",
"desc": "测试texlive-todo-doc软件包的文档访问功能验证文档是否可正常访问且内容完整",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_search",
"desc": "测试texlive-todo-doc软件包的文档搜索功能验证文档搜索功能是否正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_help",
"desc": "测试texlive-todo-doc软件包的文档帮助功能验证文档中的帮助信息是否完整且准确",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_navigation",
"desc": "测试texlive-todo-doc软件包的文档导航功能验证文档导航是否正常且链接有效",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_print",
"desc": "测试texlive-todo-doc软件包的文档打印功能验证文档是否支持打印且打印内容完整",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_version",
"desc": "测试texlive-todo-doc软件包的文档版本功能验证文档中的版本信息是否准确且与软件包版本一致",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_bookmark",
"desc": "测试texlive-todo-doc软件包的文档书签功能验证文档中的书签是否正常且链接有效",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_offline",
"desc": "测试texlive-todo-doc软件包的文档离线访问功能验证文档是否支持离线访问且内容完整",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_export",
"desc": "测试texlive-todo-doc软件包的文档导出功能验证文档是否支持导出且导出内容完整",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_update",
"desc": "测试texlive-todo-doc软件包的文档更新功能验证文档是否能正常更新且内容保持最新",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_highlight",
"desc": "测试texlive-todo-doc软件包的文档高亮功能验证文档中的代码或关键信息是否支持高亮显示且效果正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_feedback",
"desc": "测试texlive-todo-doc软件包的文档反馈功能验证文档中的反馈功能是否正常且反馈信息可提交",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_index",
"desc": "测试texlive-todo-doc软件包的文档索引功能验证文档索引是否完整且可正常使用",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_zoom",
"desc": "测试texlive-todo-doc软件包的文档缩放功能验证文档是否支持缩放且缩放后内容显示正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_keyword",
"desc": "测试texlive-todo-doc软件包的文档关键字搜索功能验证文档中的关键字搜索是否正常且结果准确",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_theme",
"desc": "测试texlive-todo-doc软件包的文档主题功能验证文档主题是否支持切换且显示正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_language",
"desc": "测试texlive-todo-doc软件包的文档语言功能验证文档是否支持多语言切换且内容显示正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_export_format",
"desc": "测试texlive-todo-doc软件包的文档导出格式功能验证文档是否支持多种格式导出且导出内容完整",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_accessibility",
"desc": "测试texlive-todo-doc软件包的文档可访问性功能验证文档是否符合无障碍标准且易于访问",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_compatibility",
"desc": "测试texlive-todo-doc软件包的文档兼容性功能验证文档在不同浏览器和设备上的显示是否正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_metadata",
"desc": "测试texlive-todo-doc软件包的文档元数据功能验证文档中的元数据是否完整且准确",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_quickstart",
"desc": "测试texlive-todo-doc软件包的文档快速入门功能验证快速入门指南是否完整且易于理解",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_responsive",
"desc": "测试texlive-todo-doc软件包的文档响应式功能验证文档在不同屏幕尺寸下的显示是否正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_toc",
"desc": "测试texlive-todo-doc软件包的文档目录功能验证文档目录是否完整且可正常导航",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_offline_access",
"desc": "测试texlive-todo-doc软件包的文档离线访问功能验证文档在离线状态下是否可正常访问且内容完整",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_bookmark_sync",
"desc": "测试texlive-todo-doc软件包的文档书签同步功能验证文档中的书签是否支持同步且同步内容完整",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_bookmark_edit",
"desc": "测试texlive-todo-doc软件包的文档书签编辑功能验证文档中的书签是否支持编辑且功能正常",
"machine num": 1
},
{
"name": "test_texlive-todo-doc_documentation_quickstart_toc",
"desc": "测试texlive-todo-doc软件包的文档快速入门目录功能验证快速入门指南的目录是否完整且可正常导航",
"machine num": 1
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-haranoaji",
"machine num": 1,
"cases": [
{
"name": "test_texlive-haranoaji_function_fontload",
"desc": "Test loading HaranoAji fonts in TeX documents"
}
]
}

View File

@@ -5,18 +5,6 @@
{
"name": "test_texlive-verifica_function_install",
"desc": "Test the installation of texlive-verifica package"
},
{
"name": "test_texlive-verifica_function_verify",
"desc": "Test the basic verification command"
},
{
"name": "test_texlive-verifica_function_uninstall",
"desc": "Test the removal of texlive-verifica package"
},
{
"name": "test_texlive-verifica_function_help",
"desc": "Test the help or version information"
}
]
}

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-01
# @License : Mulan PSL v2
# @Desc : Test package configuration
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试包配置功能"
# 检查yum源中是否存在avalon-logkit-help包
LOG_INFO "检查yum源中是否存在avalon-logkit-help包"
dnf list available avalon-logkit-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到avalon-logkit-help包"
exit 255
fi
# 检查是否已安装avalon-logkit-help
LOG_INFO "检查是否已安装avalon-logkit-help"
rpm -q avalon-logkit-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "avalon-logkit-help已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "avalon-logkit-help未安装测试结束后将卸载"
INSTALLED=false
fi
# 若未安装则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装avalon-logkit-help包"
dnf install -y avalon-logkit-help
CHECK_RESULT $? 0 0 "安装avalon-logkit-help失败"
fi
# 测试配置功能
LOG_INFO "测试配置功能"
avalon-logkit-help --config-test > /dev/null 2>&1
CHECK_RESULT $? 0 0 "配置功能测试失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载avalon-logkit-help包"
dnf remove -y avalon-logkit-help
CHECK_RESULT $? 0 0 "卸载avalon-logkit-help失败"
fi
LOG_INFO "测试包配置功能完成"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-01
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装avalon-logkit-help软件包
LOG_INFO "检查是否已安装avalon-logkit-help软件包"
rpm -q avalon-logkit-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "avalon-logkit-help已安装脚本结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "avalon-logkit-help未安装脚本结束后将卸载"
INSTALLED=false
fi
# 检查yum源中是否有avalon-logkit-help软件包
LOG_INFO "检查yum源中是否有avalon-logkit-help软件包"
dnf list available avalon-logkit-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到avalon-logkit-help软件包"
exit 255
fi
# 安装avalon-logkit-help软件包
LOG_INFO "安装avalon-logkit-help软件包"
dnf install -y avalon-logkit-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装avalon-logkit-help失败"
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
avalon-logkit-help --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "avalon-logkit-help命令参数不支持"
exit 255
fi
# 执行测试命令
LOG_INFO "执行测试命令"
avalon-logkit-help test > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行测试命令失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载avalon-logkit-help软件包"
dnf remove -y avalon-logkit-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载avalon-logkit-help失败"
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-01
# @License : Mulan PSL v2
# @Desc : Test service start
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装avalon-logkit
LOG_INFO "检查avalon-logkit是否已安装"
rpm -q avalon-logkit > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "avalon-logkit已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "avalon-logkit未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有avalon-logkit
LOG_INFO "检查yum源中是否有avalon-logkit"
dnf list available avalon-logkit > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到avalon-logkit退出测试"
exit 255
fi
# 如果未安装则安装avalon-logkit
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装avalon-logkit"
dnf install -y avalon-logkit > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装avalon-logkit失败"
fi
# 测试service start功能
LOG_INFO "测试service start功能"
systemctl start avalon-logkit > /dev/null 2>&1
CHECK_RESULT $? 0 0 "启动avalon-logkit服务失败"
# 检查服务状态是否为active (running)
LOG_INFO "检查服务状态是否为active (running)"
systemctl is-active avalon-logkit > /dev/null 2>&1
CHECK_RESULT $? 0 0 "服务未处于active状态"
# 如果最初未安装则在测试结束后卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载avalon-logkit"
dnf remove -y avalon-logkit > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载avalon-logkit失败"
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-01
# @License : Mulan PSL v2
# @Desc : Test service status
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试服务状态功能"
# 检查软件包是否已安装
LOG_INFO "检查avalon-logkit软件包是否已安装"
if rpm -q avalon-logkit >/dev/null 2>&1; then
LOG_INFO "avalon-logkit已安装测试结束后将保持安装状态"
installed=true
else
LOG_INFO "avalon-logkit未安装测试结束后将卸载"
installed=false
fi
# 检查yum源中是否有avalon-logkit软件包
LOG_INFO "检查yum源中是否有avalon-logkit软件包"
if ! dnf list available avalon-logkit >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到avalon-logkit软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装avalon-logkit软件包"
dnf install -y avalon-logkit
CHECK_RESULT $? 0 0 "安装avalon-logkit失败"
fi
# 测试服务状态功能
LOG_INFO "测试服务状态功能"
systemctl status avalon-logkit
CHECK_RESULT $? 0 0 "获取avalon-logkit服务状态失败"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载avalon-logkit软件包"
dnf remove -y avalon-logkit
CHECK_RESULT $? 0 0 "卸载avalon-logkit失败"
fi
LOG_INFO "测试服务状态功能完成"
}
main "$@"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,123 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-25
# @License : Mulan PSL v2
# @Desc : 测试在支持的应用如LibreOffice中能否选择并使用该字体渲染Chakma文字。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本验证Noto Sans Chakma字体在LibreOffice中的渲染功能
LOG_INFO "开始测试Noto Sans Chakma字体在LibreOffice中的渲染功能"
# 定义字体包名和测试应用
FONT_PACKAGE="google-noto-sans-chakma-fonts"
TEST_APP="libreoffice"
# 检查yum源中是否存在字体包
LOG_INFO "检查yum源中是否存在${FONT_PACKAGE}软件包"
if ! dnf list available ${FONT_PACKAGE} &>/dev/null; then
LOG_ERROR "yum源中未找到${FONT_PACKAGE}软件包"
exit 255
fi
# 检查是否已安装字体包
LOG_INFO "检查系统是否已安装${FONT_PACKAGE}"
if rpm -q ${FONT_PACKAGE} &>/dev/null; then
LOG_INFO "${FONT_PACKAGE}已安装,测试结束后将保持安装状态"
PRE_INSTALLED=true
else
LOG_INFO "${FONT_PACKAGE}未安装,将进行安装测试"
PRE_INSTALLED=false
fi
# 检查LibreOffice是否安装
LOG_INFO "检查LibreOffice是否安装"
if ! command -v ${TEST_APP} &>/dev/null; then
LOG_ERROR "LibreOffice未安装无法进行字体渲染测试"
exit 1
fi
# 如果未安装字体包,则安装
if [ "${PRE_INSTALLED}" = "false" ]; then
LOG_INFO "安装${FONT_PACKAGE}"
dnf install -y ${FONT_PACKAGE}
CHECK_RESULT $? 0 0 "安装${FONT_PACKAGE}失败"
fi
# 验证字体文件是否存在
LOG_INFO "验证Noto Sans Chakma字体文件"
FONT_FILE="/usr/share/fonts/google-noto-sans-chakma/NotoSansChakma-Regular.ttf"
if [ ! -f "${FONT_FILE}" ]; then
LOG_ERROR "未找到Noto Sans Chakma字体文件"
if [ "${PRE_INSTALLED}" = "false" ]; then
dnf remove -y ${FONT_PACKAGE}
fi
exit 1
fi
# 检查字体是否被系统识别
LOG_INFO "检查字体是否被系统识别"
fc-list | grep -i "Noto Sans Chakma" &>/dev/null
CHECK_RESULT $? 0 0 "系统未识别Noto Sans Chakma字体"
# 创建测试文档
LOG_INFO "创建测试文档验证字体渲染"
TEST_TEXT="𑄃𑄬𑄚𑄴𑄓𑄧𑄢𑄴 𑄌𑄇𑄴𑄟𑄳𑄠𑄴"
TEST_FILE="/tmp/test_chakma.odt"
# 使用LibreOffice命令行创建测试文档
libreoffice --headless --convert-to odt --outdir /tmp <(echo "${TEST_TEXT}") &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "创建测试文档失败"
# 清理环境
if [ "${PRE_INSTALLED}" = "false" ]; then
dnf remove -y ${FONT_PACKAGE}
fi
rm -f ${TEST_FILE} /tmp/test_chakma.txt
exit 1
fi
# 检查文档是否创建成功
if [ -f "${TEST_FILE}" ]; then
LOG_INFO "测试文档创建成功"
# 验证文档内容(简化验证)
file "${TEST_FILE}" | grep -q "OpenDocument Text"
CHECK_RESULT $? 0 0 "测试文档格式不正确"
else
LOG_ERROR "测试文档未创建"
# 清理环境
if [ "${PRE_INSTALLED}" = "false" ]; then
dnf remove -y ${FONT_PACKAGE}
fi
exit 1
fi
# 清理测试文档
LOG_INFO "清理测试文档"
rm -f ${TEST_FILE} /tmp/test_chakma.txt
# 如果测试前未安装字体包,则卸载
if [ "${PRE_INSTALLED}" = "false" ]; then
LOG_INFO "卸载${FONT_PACKAGE}"
dnf remove -y ${FONT_PACKAGE}
CHECK_RESULT $? 0 0 "卸载${FONT_PACKAGE}失败"
fi
LOG_INFO "Noto Sans Chakma字体在LibreOffice中的渲染功能测试完成"
}
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-14
# @License : Mulan PSL v2
# @Desc : Check package dependencies
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本Check package dependencies
LOG_INFO "开始测试kde4-filesystem包依赖关系"
# 检查是否已安装kde4-filesystem
LOG_INFO "步骤1检查kde4-filesystem是否已安装"
rpm -q kde4-filesystem > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "kde4-filesystem已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "kde4-filesystem未安装将在测试过程中安装"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有kde4-filesystem包
LOG_INFO "步骤2检查yum源中是否有kde4-filesystem包"
dnf list available kde4-filesystem > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到kde4-filesystem包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在kde4-filesystem包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤3安装kde4-filesystem包"
dnf install -y kde4-filesystem
CHECK_RESULT $? 0 0 "安装kde4-filesystem包失败"
fi
# 检查包依赖关系
LOG_INFO "步骤4检查kde4-filesystem包的依赖关系"
rpm -qR kde4-filesystem > /dev/null 2>&1
CHECK_RESULT $? 0 0 "获取kde4-filesystem包依赖关系失败"
# 验证依赖包是否都能正常安装
LOG_INFO "步骤5验证依赖包是否都能正常安装"
DEPENDENCIES=$(rpm -qR kde4-filesystem | grep -E "^[a-zA-Z0-9_\-\.]+" | head -5)
for dep in $DEPENDENCIES; do
LOG_INFO "检查依赖包: $dep"
dnf list available $dep > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "依赖包 $dep 在yum源中不存在"
exit 255
fi
done
# 测试rpm命令参数
LOG_INFO "步骤6测试rpm命令参数有效性"
rpm -qi kde4-filesystem > /dev/null 2>&1
CHECK_RESULT $? 0 0 "rpm -qi命令执行失败"
# 测试不支持的参数
LOG_INFO "步骤7测试不支持的参数"
rpm --invalid-option kde4-filesystem > /dev/null 2>&1
if [ $? -ne 255 ] && [ $? -ne 2 ]; then
LOG_ERROR "不支持的参数未正确处理"
exit 255
fi
# 清理环境
LOG_INFO "步骤8清理测试环境"
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载测试安装的kde4-filesystem包"
dnf remove -y kde4-filesystem
CHECK_RESULT $? 0 0 "卸载kde4-filesystem包失败"
LOG_INFO "已恢复到测试前的环境状态"
else
LOG_INFO "保持kde4-filesystem包安装状态"
fi
LOG_INFO "测试完成kde4-filesystem包依赖关系检查成功"
}
main "$@"

View File

@@ -1,112 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-14
# @License : Mulan PSL v2
# @Desc : Test package upgrade
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否以root用户运行
if [ "$(id -u)" -ne 0 ]; then
LOG_ERROR "该脚本需要root权限运行"
exit 1
fi
# 定义软件包名称
PACKAGE_NAME="kde4-filesystem"
# 步骤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
CHECK_RESULT $? 0 0 "检查yum源中是否存在${PACKAGE_NAME}软件包失败"
# 步骤2: 检查系统是否已安装该软件包
LOG_INFO "步骤2: 检查系统是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
INSTALLED=$?
# 步骤3: 如果未安装,则安装软件包作为测试步骤
if [ ${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}软件包已安装,跳过安装步骤"
NEED_CLEANUP=0
fi
# 步骤4: 验证软件包安装成功
LOG_INFO "步骤4: 验证${PACKAGE_NAME}软件包安装成功"
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
CHECK_RESULT $? 0 0 "${PACKAGE_NAME}软件包未正确安装"
# 步骤5: 检查软件包版本信息
LOG_INFO "步骤5: 检查${PACKAGE_NAME}软件包版本信息"
rpm -qi ${PACKAGE_NAME} | grep -q "Version"
CHECK_RESULT $? 0 0 "获取${PACKAGE_NAME}软件包版本信息失败"
# 步骤6: 测试软件包升级功能
LOG_INFO "步骤6: 测试${PACKAGE_NAME}软件包升级功能"
dnf check-update ${PACKAGE_NAME} >/dev/null 2>&1
if [ $? -eq 100 ]; then
LOG_INFO "检测到${PACKAGE_NAME}软件包有可用更新"
# 这里不实际执行升级,只检查升级功能是否正常
dnf --assumeno upgrade ${PACKAGE_NAME} 2>&1 | grep -q "Transaction Summary"
CHECK_RESULT $? 0 0 "${PACKAGE_NAME}软件包升级功能检查失败"
else
LOG_INFO "${PACKAGE_NAME}软件包已是最新版本,无需升级"
# 即使没有更新,也检查升级命令的参数支持
dnf --help | grep -q "upgrade"
CHECK_RESULT $? 0 0 "dnf upgrade命令参数不支持"
fi
# 步骤7: 检查dnf命令参数支持
LOG_INFO "步骤7: 检查dnf命令参数支持"
dnf --help | grep -q "\-\-assumeno"
if [ $? -ne 0 ]; then
LOG_ERROR "dnf命令不支持--assumeno参数"
exit 255
fi
# 步骤8: 清理环境
LOG_INFO "步骤8: 清理测试环境"
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "卸载测试安装的${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
# 验证软件包已卸载
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "${PACKAGE_NAME}软件包卸载失败"
exit 1
fi
else
LOG_INFO "测试前已安装${PACKAGE_NAME}软件包,保持安装状态"
fi
LOG_INFO "测试完成: ${PACKAGE_NAME}软件包升级功能测试通过"
}
main "$@"

View File

@@ -1,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-22
# @License : Mulan PSL v2
# @Desc : Test check_snmp_cpu plugin
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始: Test check_snmp_cpu plugin"
# 定义软件包名称
PACKAGE_NAME="nagios-plugins-snmp"
PLUGIN_NAME="check_snmp_cpu"
# 步骤1: 检查软件包是否已在yum源中
LOG_INFO "步骤1: 检查yum源中是否存在软件包 $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 步骤2: 检查软件包是否已安装
LOG_INFO "步骤2: 检查软件包 $PACKAGE_NAME 是否已安装"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装"
INSTALLED_BEFORE=0
fi
# 步骤3: 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4: 检查插件命令是否存在
LOG_INFO "步骤4: 检查插件命令 $PLUGIN_NAME 是否存在"
if ! command -v $PLUGIN_NAME &>/dev/null; then
LOG_ERROR "插件命令 $PLUGIN_NAME 不存在"
exit 255
fi
# 步骤5: 检查插件命令是否支持必要参数
LOG_INFO "步骤5: 检查插件命令 $PLUGIN_NAME 是否支持必要参数"
if ! $PLUGIN_NAME --help 2>&1 | grep -q "\-\-hostname"; then
LOG_ERROR "插件命令 $PLUGIN_NAME 不支持 --hostname 参数"
exit 255
fi
# 步骤6: 模拟测试插件功能这里假设有一个SNMP服务器可用
LOG_INFO "步骤6: 执行插件命令 $PLUGIN_NAME 进行测试"
$PLUGIN_NAME --hostname=127.0.0.1 --community=public --warning=80 --critical=90
# 注意这里假设测试成功实际应根据SNMP服务器情况调整
CHECK_RESULT $? 0 0 "插件命令 $PLUGIN_NAME 执行失败"
# 步骤7: 清理环境
LOG_INFO "步骤7: 清理测试环境"
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "软件包 $PACKAGE_NAME 在测试前已安装,保持安装状态"
fi
LOG_INFO "测试结束: Test check_snmp_cpu plugin"
}
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-22
# @License : Mulan PSL v2
# @Desc : Test check_snmp_int plugin
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装nagios-plugins-snmp
LOG_INFO "检查nagios-plugins-snmp是否已安装"
if dnf list installed nagios-plugins-snmp > /dev/null 2>&1; then
LOG_INFO "nagios-plugins-snmp已安装测试后保持安装状态"
already_installed=true
else
LOG_INFO "nagios-plugins-snmp未安装将在测试前安装"
already_installed=false
fi
# 检查yum源中是否有nagios-plugins-snmp
LOG_INFO "检查yum源中是否有nagios-plugins-snmp"
if ! dnf list available nagios-plugins-snmp > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到nagios-plugins-snmp"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装nagios-plugins-snmp"
dnf install -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "安装nagios-plugins-snmp失败"
fi
# 检查check_snmp_int插件是否存在
LOG_INFO "检查check_snmp_int插件是否存在"
if ! command -v check_snmp_int > /dev/null 2>&1; then
LOG_ERROR "check_snmp_int插件不存在"
exit 255
fi
# 测试check_snmp_int插件基本参数
LOG_INFO "测试check_snmp_int插件基本参数"
check_snmp_int --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "check_snmp_int插件不支持--help参数"
# 测试无效参数
LOG_INFO "测试check_snmp_int插件无效参数"
check_snmp_int --invalid-parameter > /dev/null 2>&1
CHECK_RESULT $? 255 0 "check_snmp_int插件错误处理无效参数"
# 测试必需参数缺失
LOG_INFO "测试check_snmp_int插件必需参数缺失"
check_snmp_int > /dev/null 2>&1
CHECK_RESULT $? 3 0 "check_snmp_int插件错误处理必需参数缺失"
# 清理环境
LOG_INFO "清理测试环境"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载nagios-plugins-snmp"
dnf remove -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "卸载nagios-plugins-snmp失败"
else
LOG_INFO "保持nagios-plugins-snmp安装状态"
fi
LOG_INFO "Test check_snmp_int plugin测试完成"
}
main "$@"

View File

@@ -1,111 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test check_snmp_load plugin
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境检查判断是否已安装nagios-plugins-snmp
LOG_INFO "检查是否已安装nagios-plugins-snmp软件包"
rpm -q nagios-plugins-snmp > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "nagios-plugins-snmp已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "nagios-plugins-snmp未安装将在测试步骤中安装并在脚本结束前卸载"
INSTALLED=0
fi
# 检查yum源中是否存在nagios-plugins-snmp软件包
LOG_INFO "检查yum源中是否存在nagios-plugins-snmp软件包"
dnf list available nagios-plugins-snmp > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在nagios-plugins-snmp软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装nagios-plugins-snmp软件包"
dnf install -y nagios-plugins-snmp > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装nagios-plugins-snmp软件包失败"
fi
# 检查check_snmp_load命令是否存在
LOG_INFO "检查check_snmp_load命令是否存在"
command -v check_snmp_load > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "check_snmp_load命令不存在"
# 如果是测试过程中安装的,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
dnf remove -y nagios-plugins-snmp > /dev/null 2>&1
fi
exit 255
fi
# 测试check_snmp_load命令的基本参数
LOG_INFO "测试check_snmp_load命令的基本参数"
check_snmp_load --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "check_snmp_load命令不支持--help参数"
# 测试check_snmp_load命令的必需参数
LOG_INFO "测试check_snmp_load命令的必需参数"
check_snmp_load > /dev/null 2>&1
if [ $? -ne 3 ]; then
LOG_ERROR "check_snmp_load命令缺少必需参数时未正确退出"
# 如果是测试过程中安装的,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
dnf remove -y nagios-plugins-snmp > /dev/null 2>&1
fi
exit 255
fi
# 测试check_snmp_load命令的无效参数
LOG_INFO "测试check_snmp_load命令的无效参数"
check_snmp_load --invalid-arg > /dev/null 2>&1
if [ $? -ne 3 ]; then
LOG_ERROR "check_snmp_load命令支持无效参数"
# 如果是测试过程中安装的,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
dnf remove -y nagios-plugins-snmp > /dev/null 2>&1
fi
exit 255
fi
# 模拟远程服务器测试(如果存在第二个服务器)
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
LOG_INFO "在第二个服务器上测试check_snmp_load命令"
SSH_CMD "command -v check_snmp_load" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "第二个服务器上check_snmp_load命令不存在"
else
LOG_INFO "未配置第二个服务器,跳过远程测试"
fi
# 清理环境:如果测试过程中安装了软件包,则卸载
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载nagios-plugins-snmp软件包"
dnf remove -y nagios-plugins-snmp > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载nagios-plugins-snmp软件包失败"
else
LOG_INFO "保持nagios-plugins-snmp软件包安装状态"
fi
LOG_INFO "Test check_snmp_load plugin测试完成"
}
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-22
# @License : Mulan PSL v2
# @Desc : Test check_snmp_memory plugin
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test check_snmp_memory plugin"
LOG_INFO "步骤1检查yum源中是否存在nagios-plugins-snmp软件包"
dnf list available nagios-plugins-snmp 2>/dev/null | grep -q nagios-plugins-snmp
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到nagios-plugins-snmp软件包"
exit 255
fi
LOG_INFO "步骤2检查环境是否已安装nagios-plugins-snmp"
rpm -q nagios-plugins-snmp >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装nagios-plugins-snmp脚本结束时保持安装状态"
INSTALLED=1
else
LOG_INFO "环境未安装nagios-plugins-snmp开始安装"
INSTALLED=0
dnf install -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "安装nagios-plugins-snmp失败"
fi
LOG_INFO "步骤3检查check_snmp_memory命令是否存在"
which check_snmp_memory >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "check_snmp_memory命令不存在"
if [ $INSTALLED -eq 0 ]; then
dnf remove -y nagios-plugins-snmp
fi
exit 255
fi
LOG_INFO "步骤4测试check_snmp_memory命令的基本参数"
check_snmp_memory --help >/dev/null 2>&1
CHECK_RESULT $? 0 0 "check_snmp_memory命令不支持--help参数"
LOG_INFO "步骤5模拟测试check_snmp_memory命令执行"
check_snmp_memory -H localhost -C public -w 80 -c 90 >/dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "check_snmp_memory命令参数不支持"
if [ $INSTALLED -eq 0 ]; then
dnf remove -y nagios-plugins-snmp
fi
exit 255
fi
LOG_INFO "步骤6清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载nagios-plugins-snmp软件包"
dnf remove -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "卸载nagios-plugins-snmp失败"
else
LOG_INFO "保持nagios-plugins-snmp安装状态"
fi
LOG_INFO "测试完成Test check_snmp_memory plugin"
}
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-22
# @License : Mulan PSL v2
# @Desc : Test check_snmp_storage plugin
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 check_snmp_storage 插件功能"
LOG_INFO "检查是否已安装 nagios-plugins-snmp 软件包"
if dnf list installed nagios-plugins-snmp &>/dev/null; then
LOG_INFO "nagios-plugins-snmp 已安装,测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "nagios-plugins-snmp 未安装,将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "检查 yum 源中是否存在 nagios-plugins-snmp 软件包"
if ! dnf list available nagios-plugins-snmp &>/dev/null; then
LOG_ERROR "yum 源中未找到 nagios-plugins-snmp 软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 nagios-plugins-snmp 软件包"
dnf install -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "安装 nagios-plugins-snmp 失败"
fi
LOG_INFO "检查 check_snmp_storage 命令是否存在"
if ! command -v check_snmp_storage &>/dev/null; then
LOG_ERROR "check_snmp_storage 命令不存在"
exit 255
fi
LOG_INFO "测试 check_snmp_storage 命令的基本参数"
check_snmp_storage --help &>/dev/null
CHECK_RESULT $? 0 0 "check_snmp_storage 命令不支持 --help 参数"
LOG_INFO "模拟测试 check_snmp_storage 命令执行(使用无效参数)"
check_snmp_storage --invalid-parameter &>/dev/null
if [ $? -eq 255 ]; then
LOG_INFO "无效参数处理正确,返回退出码 255"
else
LOG_ERROR "无效参数处理不正确"
exit 255
fi
LOG_INFO "模拟测试 check_snmp_storage 命令执行(使用必要参数)"
check_snmp_storage -H 127.0.0.1 -C public -m &>/dev/null
CHECK_RESULT $? 3 0 "check_snmp_storage 命令执行失败,但非参数错误"
LOG_INFO "清理测试环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 nagios-plugins-snmp 软件包"
dnf remove -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "卸载 nagios-plugins-snmp 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test plugin help output
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义测试的插件名称
PLUGIN_NAME="check_snmp"
PACKAGE_NAME="nagios-plugins-snmp"
# 步骤1: 检查yum源中是否存在指定的软件包
LOG_INFO "步骤1: 检查yum源中是否存在 ${PACKAGE_NAME} 软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到 ${PACKAGE_NAME} 软件包"
exit 255
fi
# 步骤2: 检查是否已经安装了软件包
LOG_INFO "步骤2: 检查是否已经安装了 ${PACKAGE_NAME} 软件包"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
INSTALLED="true"
LOG_INFO "软件包已经安装,脚本结束时将保持安装状态"
else
INSTALLED="false"
LOG_INFO "软件包未安装,将在测试步骤中安装"
fi
# 步骤3: 如果未安装,则安装软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤3: 安装 ${PACKAGE_NAME} 软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 软件包失败"
fi
# 步骤4: 检查插件是否存在
LOG_INFO "步骤4: 检查插件 ${PLUGIN_NAME} 是否存在"
which ${PLUGIN_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "插件 ${PLUGIN_NAME} 不存在"
# 步骤5: 测试插件的help输出
LOG_INFO "步骤5: 测试插件 ${PLUGIN_NAME} 的help输出"
${PLUGIN_NAME} --help &>/dev/null
CHECK_RESULT $? 0 0 "插件 ${PLUGIN_NAME} 的help输出测试失败"
# 步骤6: 测试插件是否支持--help参数
LOG_INFO "步骤6: 测试插件 ${PLUGIN_NAME} 是否支持--help参数"
${PLUGIN_NAME} --help 2>&1 | grep -q "Usage:"
CHECK_RESULT $? 0 0 "插件 ${PLUGIN_NAME} 不支持--help参数"
# 步骤7: 清理环境,如果之前未安装则卸载软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤7: 清理环境,卸载 ${PACKAGE_NAME} 软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 软件包失败"
else
LOG_INFO "步骤7: 保持环境不变,不卸载 ${PACKAGE_NAME} 软件包"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 设置环境变量
NODE2_IPV4=""
NODE2_PASSWORD=""
NODE2_USER=""
# 测试包名称
PACKAGE_NAME="nagios-plugins-snmp"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME 软件包"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在 $PACKAGE_NAME 软件包"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查 $PACKAGE_NAME 是否已安装"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
INSTALLED=$?
# 记录初始状态
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "$PACKAGE_NAME 已安装,测试完成后将保持安装状态"
else
LOG_INFO "$PACKAGE_NAME 未安装,将在测试完成后卸载"
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "安装 $PACKAGE_NAME 软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
# 测试软件包基本功能
LOG_INFO "测试 $PACKAGE_NAME 基本功能"
# 检查check_snmp命令是否存在
which check_snmp > /dev/null 2>&1
CHECK_RESULT $? 0 0 "check_snmp命令不存在"
# 测试check_snmp命令参数
LOG_INFO "测试check_snmp命令参数"
check_snmp --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "check_snmp命令不支持--help参数"
# 测试无效参数
LOG_INFO "测试无效参数处理"
check_snmp --invalid-param > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_INFO "无效参数正确处理返回码为255"
else
LOG_ERROR "无效参数处理异常"
exit 255
fi
# 如果需要在第二个服务器上执行测试
if [ -n "$NODE2_IPV4" ]; then
LOG_INFO "在第二个服务器上测试 $PACKAGE_NAME"
SSH_CMD "rpm -q $PACKAGE_NAME" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "第二个服务器上 $PACKAGE_NAME 状态检查失败"
fi
# 清理环境
LOG_INFO "清理测试环境"
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "卸载 $PACKAGE_NAME 软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
LOG_INFO "已恢复到测试前的未安装状态"
else
LOG_INFO "保持 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "$PACKAGE_NAME 软件包安装测试完成"
}
main "$@"

View File

@@ -1,56 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-05
# @License : Mulan PSL v2
# @Desc : Test SNMP GET operation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装nagios-plugins-snmp
LOG_INFO "检查是否已安装nagios-plugins-snmp"
if ! dnf list installed nagios-plugins-snmp &>/dev/null; then
LOG_INFO "nagios-plugins-snmp未安装准备安装"
# 检查yum源中是否有该软件包
if ! dnf list available nagios-plugins-snmp &>/dev/null; then
LOG_ERROR "yum源中未找到nagios-plugins-snmp软件包"
exit 255
fi
# 安装软件包
dnf install -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "安装nagios-plugins-snmp失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "nagios-plugins-snmp已安装"
fi
# 测试SNMP GET操作
LOG_INFO "开始测试SNMP GET操作"
snmpget -v 2c -c public localhost sysDescr.0
CHECK_RESULT $? 0 0 "SNMP GET操作失败"
# 清理环境(如果之前未安装)
if [[ $NEED_UNINSTALL -eq 1 ]]; then
LOG_INFO "卸载nagios-plugins-snmp"
dnf remove -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "卸载nagios-plugins-snmp失败"
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-22
# @License : Mulan PSL v2
# @Desc : Test package removal
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test package removal"
LOG_INFO "步骤1检查是否已安装nagios-plugins-snmp软件包"
rpm -q nagios-plugins-snmp > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "nagios-plugins-snmp已安装测试前状态为已安装"
INSTALLED_BEFORE=true
else
LOG_INFO "nagios-plugins-snmp未安装测试前状态为未安装"
INSTALLED_BEFORE=false
fi
LOG_INFO "步骤2检查yum源中是否存在nagios-plugins-snmp软件包"
dnf list available nagios-plugins-snmp > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在nagios-plugins-snmp软件包"
exit 255
fi
LOG_INFO "步骤3如果未安装则安装nagios-plugins-snmp软件包"
if [ "$INSTALLED_BEFORE" = "false" ]; then
dnf install -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "安装nagios-plugins-snmp失败"
LOG_INFO "安装nagios-plugins-snmp成功"
fi
LOG_INFO "步骤4验证软件包安装成功"
rpm -q nagios-plugins-snmp > /dev/null 2>&1
CHECK_RESULT $? 0 0 "验证nagios-plugins-snmp安装失败"
LOG_INFO "步骤5卸载nagios-plugins-snmp软件包"
dnf remove -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "卸载nagios-plugins-snmp失败"
LOG_INFO "卸载nagios-plugins-snmp成功"
LOG_INFO "步骤6验证软件包已卸载"
rpm -q nagios-plugins-snmp > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "nagios-plugins-snmp卸载后仍存在"
exit 1
else
LOG_INFO "验证nagios-plugins-snmp已卸载成功"
fi
LOG_INFO "步骤7环境恢复"
if [ "$INSTALLED_BEFORE" = "true" ]; then
LOG_INFO "恢复原始状态重新安装nagios-plugins-snmp"
dnf install -y nagios-plugins-snmp
CHECK_RESULT $? 0 0 "重新安装nagios-plugins-snmp失败"
LOG_INFO "重新安装nagios-plugins-snmp成功"
else
LOG_INFO "原始状态为未安装,无需恢复"
fi
LOG_INFO "测试完成Test package removal"
}
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-29
# @License : Mulan PSL v2
# @Desc : Test if nginx metrics are collected by pcp.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始验证pcp-pmda-nginx是否能够收集nginx指标"
# 检查软件包是否可用
LOG_INFO "检查yum源中是否存在pcp-pmda-nginx软件包"
dnf list available pcp-pmda-nginx &>/dev/null
CHECK_RESULT $? 0 0 "软件包pcp-pmda-nginx在yum源中不存在"
if [ $? -eq 255 ]; then
LOG_ERROR "软件包pcp-pmda-nginx在yum源中不存在退出测试"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查pcp-pmda-nginx是否已安装"
if rpm -q pcp-pmda-nginx &>/dev/null; then
INSTALLED=1
LOG_INFO "pcp-pmda-nginx已安装测试完成后将保持安装状态"
else
INSTALLED=0
LOG_INFO "pcp-pmda-nginx未安装将在测试步骤中安装"
fi
# 若未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装pcp-pmda-nginx软件包"
dnf install -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "安装pcp-pmda-nginx失败"
fi
# 检查pcp-pmda-nginx命令是否支持所需参数
LOG_INFO "检查pcp-pmda-nginx命令是否支持所需参数"
pcp-pmda-nginx --help 2>&1 | grep -q "collect"
CHECK_RESULT $? 0 0 "pcp-pmda-nginx命令不支持collect参数"
if [ $? -eq 255 ]; then
LOG_ERROR "pcp-pmda-nginx命令不支持collect参数退出测试"
exit 255
fi
# 启动nginx服务如果未运行
LOG_INFO "检查nginx服务状态"
systemctl is-active nginx &>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "启动nginx服务"
systemctl start nginx
CHECK_RESULT $? 0 0 "启动nginx服务失败"
fi
# 执行pcp-pmda-nginx收集指标
LOG_INFO "执行pcp-pmda-nginx收集nginx指标"
pcp-pmda-nginx collect 2>&1 | tee /tmp/nginx_metrics.log
CHECK_RESULT $? 0 0 "pcp-pmda-nginx收集指标失败"
# 验证收集的指标是否包含预期内容
LOG_INFO "验证收集的指标是否包含nginx相关信息"
grep -q "nginx" /tmp/nginx_metrics.log
CHECK_RESULT $? 0 0 "收集的指标中未找到nginx相关信息"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/nginx_metrics.log
# 若测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载pcp-pmda-nginx软件包"
dnf remove -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "卸载pcp-pmda-nginx失败"
fi
LOG_INFO "测试完成pcp-pmda-nginx能够成功收集nginx指标"
}
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-29
# @License : Mulan PSL v2
# @Desc : Test enabling the nginx PMDA agent.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试启用nginx PMDA代理功能"
# 检查是否已安装pcp-pmda-nginx软件包
LOG_INFO "检查pcp-pmda-nginx是否已安装"
if dnf list installed pcp-pmda-nginx &>/dev/null; then
LOG_INFO "pcp-pmda-nginx已安装测试结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "pcp-pmda-nginx未安装将在测试过程中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否存在pcp-pmda-nginx软件包
LOG_INFO "检查yum源中是否存在pcp-pmda-nginx"
if ! dnf list available pcp-pmda-nginx &>/dev/null; then
LOG_ERROR "yum源中未找到pcp-pmda-nginx软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装pcp-pmda-nginx软件包"
dnf install -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "安装pcp-pmda-nginx失败"
fi
# 检查nginx PMDA代理是否已启用
LOG_INFO "检查nginx PMDA代理是否已启用"
if pmda-nginx --check &>/dev/null; then
LOG_INFO "nginx PMDA代理已启用"
else
LOG_INFO "启用nginx PMDA代理"
pmda-nginx --enable
CHECK_RESULT $? 0 0 "启用nginx PMDA代理失败"
fi
# 验证nginx PMDA代理功能是否正常工作
LOG_INFO "验证nginx PMDA代理功能"
pmprobe nginx.connections.active &>/dev/null
CHECK_RESULT $? 0 0 "nginx PMDA代理功能验证失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载pcp-pmda-nginx软件包"
dnf remove -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "卸载pcp-pmda-nginx失败"
else
LOG_INFO "测试前已安装pcp-pmda-nginx保持安装状态"
fi
LOG_INFO "测试完成nginx PMDA代理功能启用成功"
}
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-29
# @License : Mulan PSL v2
# @Desc : Test querying nginx metrics with pminfo.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用pminfo查询nginx指标"
LOG_INFO "步骤1检查是否已安装pcp-pmda-nginx软件包"
if dnf list installed pcp-pmda-nginx &>/dev/null; then
LOG_INFO "pcp-pmda-nginx已安装标记为已存在"
installed_before_test=true
else
LOG_INFO "pcp-pmda-nginx未安装标记为未存在"
installed_before_test=false
fi
LOG_INFO "步骤2检查yum源中是否有pcp-pmda-nginx软件包"
if ! dnf list available pcp-pmda-nginx &>/dev/null; then
LOG_ERROR "yum源中未找到pcp-pmda-nginx软件包"
exit 255
fi
if [ "$installed_before_test" = "false" ]; then
LOG_INFO "步骤3安装pcp-pmda-nginx软件包"
dnf install -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "安装pcp-pmda-nginx失败"
fi
LOG_INFO "步骤4检查pminfo命令是否存在"
if ! command -v pminfo &>/dev/null; then
LOG_ERROR "pminfo命令不存在"
exit 255
fi
LOG_INFO "步骤5检查pminfo是否支持nginx指标"
if ! pminfo -t nginx &>/dev/null; then
LOG_ERROR "pminfo不支持nginx指标"
exit 255
fi
LOG_INFO "步骤6使用pminfo查询nginx指标"
pminfo nginx
CHECK_RESULT $? 0 0 "查询nginx指标失败"
LOG_INFO "步骤7清理测试环境"
if [ "$installed_before_test" = "false" ]; then
LOG_INFO "卸载测试安装的pcp-pmda-nginx软件包"
dnf remove -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "卸载pcp-pmda-nginx失败"
else
LOG_INFO "保持原有pcp-pmda-nginx安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,108 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-29
# @License : Mulan PSL v2
# @Desc : Test restarting the nginx PMDA agent.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装pcp-pmda-nginx
LOG_INFO "检查pcp-pmda-nginx是否已安装"
if rpm -q pcp-pmda-nginx &>/dev/null; then
LOG_INFO "pcp-pmda-nginx已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "pcp-pmda-nginx未安装将在测试过程中安装"
INSTALLED=false
fi
# 检查yum源中是否有pcp-pmda-nginx软件包
LOG_INFO "检查yum源中是否有pcp-pmda-nginx软件包"
if ! dnf list available pcp-pmda-nginx &>/dev/null; then
LOG_ERROR "yum源中未找到pcp-pmda-nginx软件包"
exit 255
fi
# 如果未安装则安装pcp-pmda-nginx
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装pcp-pmda-nginx软件包"
dnf install -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "安装pcp-pmda-nginx失败"
fi
# 检查nginx PMDA是否已配置
LOG_INFO "检查nginx PMDA是否已配置"
if [ -d /var/lib/pcp/pmdas/nginx ]; then
LOG_INFO "nginx PMDA已配置"
CONFIGURED=true
else
LOG_INFO "nginx PMDA未配置开始配置"
CONFIGURED=false
fi
# 如果未配置则配置nginx PMDA
if [ "$CONFIGURED" = false ]; then
LOG_INFO "配置nginx PMDA"
cd /var/lib/pcp/pmdas/nginx || exit 1
./Install
CHECK_RESULT $? 0 0 "配置nginx PMDA失败"
fi
# 检查nginx服务状态
LOG_INFO "检查nginx服务状态"
systemctl status nginx &>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "nginx服务未运行启动nginx服务"
systemctl start nginx
CHECK_RESULT $? 0 0 "启动nginx服务失败"
else
LOG_INFO "nginx服务正在运行"
fi
# 重启nginx PMDA agent
LOG_INFO "重启nginx PMDA agent"
cd /var/lib/pcp/pmdas/nginx || exit 1
./Remove
CHECK_RESULT $? 0 0 "移除nginx PMDA失败"
./Install
CHECK_RESULT $? 0 0 "重新安装nginx PMDA失败"
# 验证nginx PMDA agent是否正常运行
LOG_INFO "验证nginx PMDA agent是否正常运行"
sleep 2
pmprobe nginx.connections.active &>/dev/null
CHECK_RESULT $? 0 0 "nginx PMDA agent未正常运行"
# 清理环境
LOG_INFO "清理测试环境"
if [ "$CONFIGURED" = false ]; then
LOG_INFO "移除nginx PMDA配置"
cd /var/lib/pcp/pmdas/nginx || exit 1
./Remove
CHECK_RESULT $? 0 0 "移除nginx PMDA配置失败"
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载pcp-pmda-nginx软件包"
dnf remove -y pcp-pmda-nginx
CHECK_RESULT $? 0 0 "卸载pcp-pmda-nginx失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,182 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-29
# @License : Mulan PSL v2
# @Desc : Test starting the nginx PMDA agent service.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="pcp-pmda-nginx"
SERVICE_NAME="pmda-nginx"
PMDA_PATH="/var/lib/pcp/pmdas/nginx"
# 检查yum源中是否存在指定软件包
check_package_in_repo() {
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
}
# 检查命令参数是否支持
check_command_option() {
LOG_INFO "检查$1命令是否支持$2参数"
$1 $2 > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "$1命令不支持$2参数"
exit 255
fi
}
# 检查软件包是否已安装
check_package_installed() {
LOG_INFO "检查${PACKAGE_NAME}软件包是否已安装"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
return $?
}
# 安装软件包
install_package() {
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
}
# 检查PMDA是否已安装
check_pmda_installed() {
LOG_INFO "检查nginx PMDA是否已安装"
[ -f ${PMDA_PATH}/Install ] && [ -f ${PMDA_PATH}/Remove ]
return $?
}
# 安装PMDA
install_pmda() {
LOG_INFO "安装nginx PMDA"
cd ${PMDA_PATH}
./Install > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装nginx PMDA失败"
}
# 移除PMDA
remove_pmda() {
LOG_INFO "移除nginx PMDA"
cd ${PMDA_PATH}
./Remove > /dev/null 2>&1
CHECK_RESULT $? 0 0 "移除nginx PMDA失败"
}
# 启动PMDA服务
start_pmda_service() {
LOG_INFO "启动nginx PMDA服务"
systemctl start ${SERVICE_NAME}
CHECK_RESULT $? 0 0 "启动nginx PMDA服务失败"
}
# 停止PMDA服务
stop_pmda_service() {
LOG_INFO "停止nginx PMDA服务"
systemctl stop ${SERVICE_NAME}
CHECK_RESULT $? 0 0 "停止nginx PMDA服务失败"
}
# 检查服务状态
check_service_status() {
LOG_INFO "检查nginx PMDA服务状态"
systemctl status ${SERVICE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "nginx PMDA服务未正常运行"
}
# 主测试函数
main_test() {
LOG_INFO "开始测试启动nginx PMDA代理服务"
# 检查软件包是否在yum源中
check_package_in_repo
# 检查dnf命令是否支持install和remove参数
check_command_option dnf install
check_command_option dnf remove
# 记录初始安装状态
check_package_installed
local initial_install_status=$?
# 记录初始PMDA安装状态
check_pmda_installed
local initial_pmda_status=$?
# 如果软件包未安装,则安装
if [ ${initial_install_status} -ne 0 ]; then
install_package
local need_uninstall_package=1
else
local need_uninstall_package=0
LOG_INFO "${PACKAGE_NAME}软件包已安装,跳过安装步骤"
fi
# 如果PMDA未安装则安装
if [ ${initial_pmda_status} -ne 0 ]; then
install_pmda
local need_remove_pmda=1
else
local need_remove_pmda=0
LOG_INFO "nginx PMDA已安装跳过安装步骤"
fi
# 启动PMDA服务
start_pmda_service
# 检查服务状态
check_service_status
# 停止PMDA服务
stop_pmda_service
LOG_INFO "测试步骤执行完成"
# 环境恢复
LOG_INFO "开始环境恢复"
# 如果测试前PMDA未安装则移除
if [ ${need_remove_pmda} -eq 1 ]; then
remove_pmda
fi
# 如果测试前软件包未安装,则卸载
if [ ${need_uninstall_package} -eq 1 ]; then
uninstall_package
fi
LOG_INFO "环境恢复完成"
LOG_INFO "测试结束启动nginx PMDA代理服务测试完成"
}
# 执行主测试
main_test
}
main "$@"

View File

@@ -1,114 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-29
# @License : Mulan PSL v2
# @Desc : Test checking the status of the nginx PMDA.
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 初始化变量
PACKAGE_NAME="pcp-pmda-nginx"
TEST_DIR="/var/lib/pcp/pmdas/nginx"
PMDA_NAME="nginx"
# 步骤1: 检查yum源中是否存在指定软件包
LOG_INFO "步骤1: 检查yum源中是否存在 ${PACKAGE_NAME} 软件包"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到 ${PACKAGE_NAME} 软件包"
exit 255
fi
# 步骤2: 检查当前环境是否已安装软件包
LOG_INFO "步骤2: 检查当前环境是否已安装 ${PACKAGE_NAME}"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
INSTALLED="true"
LOG_INFO "检测到 ${PACKAGE_NAME} 已安装,脚本结束后将保持安装状态"
else
INSTALLED="false"
LOG_INFO "检测到 ${PACKAGE_NAME} 未安装,将在测试过程中安装"
fi
# 步骤3: 如果未安装则安装软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤3: 安装 ${PACKAGE_NAME} 软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 失败"
fi
# 步骤4: 检查nginx PMDA是否已安装并配置
LOG_INFO "步骤4: 检查nginx PMDA是否已安装并配置"
if [ -d "${TEST_DIR}" ]; then
LOG_INFO "nginx PMDA目录存在: ${TEST_DIR}"
else
LOG_ERROR "nginx PMDA目录不存在: ${TEST_DIR}"
exit 1
fi
# 步骤5: 检查pmdanginx命令是否存在
LOG_INFO "步骤5: 检查pmdanginx命令是否存在"
if ! command -v pmdanginx &>/dev/null; then
LOG_ERROR "pmdanginx命令不存在"
exit 255
fi
# 步骤6: 检查pmdanginx命令支持的参数
LOG_INFO "步骤6: 检查pmdanginx命令是否支持 -V 参数"
if ! pmdanginx -V &>/dev/null; then
LOG_ERROR "pmdanginx命令不支持 -V 参数"
exit 255
fi
# 步骤7: 获取nginx PMDA状态
LOG_INFO "步骤7: 获取nginx PMDA状态"
pmdanginx status
CHECK_RESULT $? 0 0 "获取nginx PMDA状态失败"
# 步骤8: 检查nginx PMDA是否在运行
LOG_INFO "步骤8: 检查nginx PMDA是否在运行"
if pgrep -f "pmda${PMDA_NAME}" &>/dev/null; then
LOG_INFO "nginx PMDA正在运行"
else
LOG_ERROR "nginx PMDA未运行"
exit 1
fi
# 步骤9: 通过pminfo检查nginx指标
LOG_INFO "步骤9: 通过pminfo检查nginx指标"
if command -v pminfo &>/dev/null; then
pminfo nginx
CHECK_RESULT $? 0 0 "获取nginx指标失败"
else
LOG_INFO "pminfo命令不存在跳过指标检查"
fi
# 步骤10: 环境恢复
LOG_INFO "步骤10: 环境恢复"
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载 ${PACKAGE_NAME} 软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
LOG_INFO "已恢复测试前环境状态"
else
LOG_INFO "保持 ${PACKAGE_NAME} 安装状态"
fi
LOG_INFO "测试完成: 成功检查nginx PMDA状态"
}
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-05
# @License : Mulan PSL v2
# @Desc : Test backend initialization
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在python3-django-cache-url软件包
LOG_INFO "检查yum源中是否存在python3-django-cache-url软件包"
dnf list available python3-django-cache-url > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python3-django-cache-url软件包"
exit 255
fi
# 检查是否已安装python3-django-cache-url
LOG_INFO "检查是否已安装python3-django-cache-url"
rpm -q python3-django-cache-url > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-django-cache-url已安装测试结束后将保持安装状态"
installed=true
else
LOG_INFO "python3-django-cache-url未安装测试结束后将卸载"
installed=false
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装python3-django-cache-url"
dnf install -y python3-django-cache-url
CHECK_RESULT $? 0 0 "安装python3-django-cache-url失败"
fi
# 测试backend初始化功能
LOG_INFO "测试backend初始化功能"
django-admin test_backend_init > /dev/null 2>&1
CHECK_RESULT $? 0 0 "backend初始化失败"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载python3-django-cache-url"
dnf remove -y python3-django-cache-url
CHECK_RESULT $? 0 0 "卸载python3-django-cache-url失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,99 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : Test basic cache URL parsing
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始Test basic cache URL parsing"
LOG_INFO "步骤1检查python3-django-cache-url软件包是否在yum源中"
dnf list python3-django-cache-url 2>/dev/null | grep -q "python3-django-cache-url"
if [ $? -ne 0 ]; then
LOG_ERROR "软件包python3-django-cache-url不在yum源中"
exit 255
fi
LOG_INFO "步骤2检查python3-django-cache-url是否已安装"
rpm -q python3-django-cache-url
if [ $? -eq 0 ]; then
LOG_INFO "python3-django-cache-url已安装标记为已存在"
PKG_INSTALLED=1
else
LOG_INFO "python3-django-cache-url未安装标记为未安装"
PKG_INSTALLED=0
fi
if [ $PKG_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装python3-django-cache-url软件包"
dnf install -y python3-django-cache-url
CHECK_RESULT $? 0 0 "安装python3-django-cache-url失败"
fi
LOG_INFO "步骤4测试cache URL基本解析功能"
python3 -c "
import django_cache_url
url = "memcached://127.0.0.1:11211/?timeout=3600"
result = django_cache_url.parse(url)
print("Parsed URL:", result)
if result["BACKEND"] == "django.core.cache.backends.memcached.MemcachedCache" and result["LOCATION"] == "127.0.0.1:11211" and result["OPTIONS"]["timeout"] == 3600:
print("PASS")
else:
print("FAIL")
exit(1)
"
CHECK_RESULT $? 0 0 "cache URL基本解析测试失败"
LOG_INFO "步骤5测试不支持的cache URL协议"
python3 -c "
import django_cache_url
try:
result = django_cache_url.parse("unknown://127.0.0.1:11211/")
print("Should not reach here")
exit(1)
except ValueError as e:
print("Expected error:", e)
exit(0)
"
CHECK_RESULT $? 0 0 "不支持的cache URL协议测试失败"
LOG_INFO "步骤6测试无效的cache URL格式"
python3 -c "
import django_cache_url
try:
result = django_cache_url.parse("invalid_url")
print("Should not reach here")
exit(1)
except Exception as e:
print("Expected error:", e)
exit(0)
"
CHECK_RESULT $? 0 0 "无效的cache URL格式测试失败"
if [ $PKG_INSTALLED -eq 0 ]; then
LOG_INFO "步骤7卸载python3-django-cache-url软件包"
dnf remove -y python3-django-cache-url
CHECK_RESULT $? 0 0 "卸载python3-django-cache-url失败"
else
LOG_INFO "步骤7保持python3-django-cache-url安装状态"
fi
LOG_INFO "测试结束Test basic cache URL parsing"
}
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-22
# @License : Mulan PSL v2
# @Desc : Test dummy cache URL parsing
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了python3-django-cache-url
LOG_INFO "检查是否已安装python3-django-cache-url软件包"
rpm -q python3-django-cache-url > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-django-cache-url已经安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "python3-django-cache-url未安装将在测试过程中安装测试结束后卸载"
INSTALLED=0
fi
# 检查yum源中是否有python3-django-cache-url软件包
LOG_INFO "检查yum源中是否有python3-django-cache-url软件包"
dnf list available python3-django-cache-url > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有python3-django-cache-url软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-django-cache-url软件包"
dnf install -y python3-django-cache-url
CHECK_RESULT $? 0 0 "安装python3-django-cache-url失败"
fi
# 测试dummy cache URL解析功能
LOG_INFO "测试dummy cache URL解析功能"
python3 -c "import django_cache_url; print(django_cache_url.parse("dummy://"))" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "dummy cache URL解析功能测试失败"
# 测试带参数的dummy cache URL解析
LOG_INFO "测试带参数的dummy cache URL解析"
python3 -c "import django_cache_url; result = django_cache_url.parse("dummy://localhost:11211/?timeout=30"); print(result)" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "带参数的dummy cache URL解析测试失败"
# 测试无效的dummy cache URL解析
LOG_INFO "测试无效的dummy cache URL解析"
python3 -c "import django_cache_url; django_cache_url.parse("invalid://")" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "无效的dummy cache URL解析测试应该失败"
exit 255
fi
LOG_INFO "无效的dummy cache URL解析测试通过"
# 清理环境,如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-django-cache-url软件包"
dnf remove -y python3-django-cache-url
CHECK_RESULT $? 0 0 "卸载python3-django-cache-url失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : Test help documentation access
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test help documentation access"
# 检查是否已安装python3-django-cache-url
LOG_INFO "步骤1检查python3-django-cache-url是否已安装"
rpm -q python3-django-cache-url > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-django-cache-url已安装标记为已安装状态"
INSTALLED=true
else
LOG_INFO "python3-django-cache-url未安装标记为未安装状态"
INSTALLED=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "步骤2检查yum源中是否存在python3-django-cache-url软件包"
dnf list available python3-django-cache-url > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中不存在python3-django-cache-url软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python3-django-cache-url软件包退出测试"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装python3-django-cache-url软件包"
dnf install -y python3-django-cache-url
CHECK_RESULT $? 0 0 "安装python3-django-cache-url失败"
if [ $? -ne 0 ]; then
LOG_ERROR "安装python3-django-cache-url失败"
exit $?
fi
fi
# 测试帮助文档访问
LOG_INFO "步骤4测试python3-django-cache-url的帮助文档访问"
rpm -qd python3-django-cache-url > /dev/null 2>&1
CHECK_RESULT $? 0 0 "python3-django-cache-url的帮助文档不存在"
if [ $? -ne 0 ]; then
LOG_ERROR "python3-django-cache-url的帮助文档不存在"
exit $?
fi
# 查看帮助文档内容
LOG_INFO "步骤5查看帮助文档内容"
rpm -qd python3-django-cache-url | head -5
CHECK_RESULT $? 0 0 "查看帮助文档内容失败"
if [ $? -ne 0 ]; then
LOG_ERROR "查看帮助文档内容失败"
exit $?
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤6清理环境卸载python3-django-cache-url软件包"
dnf remove -y python3-django-cache-url
CHECK_RESULT $? 0 0 "卸载python3-django-cache-url失败"
if [ $? -ne 0 ]; then
LOG_ERROR "卸载python3-django-cache-url失败"
exit $?
fi
else
LOG_INFO "步骤6环境已安装保持安装状态无需清理"
fi
LOG_INFO "测试完成Test help documentation access"
}
main "$@"

View File

@@ -1,58 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : Test successful import
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test successful import"
LOG_INFO "步骤1检查yum源中是否有python3-django-cache-url软件包"
if ! dnf list available python3-django-cache-url &> /dev/null; then
LOG_ERROR "yum源中未找到python3-django-cache-url软件包"
exit 255
fi
LOG_INFO "步骤2检查是否已安装python3-django-cache-url软件包"
if rpm -q python3-django-cache-url &> /dev/null; then
LOG_INFO "python3-django-cache-url已安装将保持安装状态"
already_installed=true
else
LOG_INFO "python3-django-cache-url未安装将在测试中安装"
already_installed=false
fi
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3安装python3-django-cache-url软件包"
dnf install -y python3-django-cache-url
CHECK_RESULT $? 0 0 "安装python3-django-cache-url失败"
fi
LOG_INFO "步骤4测试python3-django-cache-url功能导入"
python3 -c "import django_cache_url"
CHECK_RESULT $? 0 0 "导入django_cache_url模块失败"
if [ "$already_installed" = false ]; then
LOG_INFO "步骤5清理环境卸载python3-django-cache-url软件包"
dnf remove -y python3-django-cache-url
CHECK_RESULT $? 0 0 "卸载python3-django-cache-url失败"
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-22
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试: Test package installation"
# 检查是否已安装python3-django-cache-url
LOG_INFO "检查python3-django-cache-url是否已安装"
rpm -q python3-django-cache-url >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-django-cache-url已安装测试后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "python3-django-cache-url未安装将在测试过程中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有python3-django-cache-url软件包"
dnf list available python3-django-cache-url >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有python3-django-cache-url软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-django-cache-url软件包"
dnf install -y python3-django-cache-url
CHECK_RESULT $? 0 0 "安装python3-django-cache-url失败"
fi
# 验证软件包功能
LOG_INFO "验证python3-django-cache-url功能"
python3 -c "import django_cache_url" 2>/dev/null
CHECK_RESULT $? 0 0 "python3-django-cache-url功能验证失败"
# 清理环境(如果测试前未安装)
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-django-cache-url软件包"
dnf remove -y python3-django-cache-url
CHECK_RESULT $? 0 0 "卸载python3-django-cache-url失败"
fi
LOG_INFO "测试完成: Test package installation"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : Test handling invalid URL
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test handling invalid URL"
LOG_INFO "步骤1检查yum源中是否存在python3-django-cache-url软件包"
if ! dnf list available python3-django-cache-url &>/dev/null; then
LOG_ERROR "yum源中未找到python3-django-cache-url软件包"
exit 255
fi
LOG_INFO "步骤2检查当前环境是否已安装python3-django-cache-url"
if rpm -q python3-django-cache-url &>/dev/null; then
LOG_INFO "软件包已安装,标记为无需清理"
NEED_CLEANUP=0
else
LOG_INFO "软件包未安装,标记为需要清理"
NEED_CLEANUP=1
fi
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤3安装python3-django-cache-url软件包"
dnf install -y python3-django-cache-url
CHECK_RESULT $? 0 0 "安装python3-django-cache-url失败"
fi
LOG_INFO "步骤4测试无效URL处理功能"
python3 -c "
import sys
try:
from django.core.cache.backends.locmem import LocMemCache
from django.core.cache import cache
from django.conf import settings
settings.configure(CACHES={
"default": {
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
"LOCATION": "unique-snowflake",
}
})
cache.set("test_key", "test_value", 10)
result = cache.get("test_key")
if result != "test_value":
sys.exit(1)
# 测试无效URL场景
invalid_url = "http://invalid-url-that-should-not-exist.local"
import requests
try:
response = requests.get(invalid_url, timeout=2)
sys.exit(1) # 如果请求成功,说明测试失败
except requests.exceptions.RequestException:
pass # 预期中的异常,测试通过
sys.exit(0)
except Exception as e:
print(f"测试异常: {e}")
sys.exit(1)
"
CHECK_RESULT $? 0 0 "无效URL处理功能测试失败"
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤5清理环境卸载python3-django-cache-url软件包"
dnf remove -y python3-django-cache-url
CHECK_RESULT $? 0 0 "卸载python3-django-cache-url失败"
fi
LOG_INFO "步骤6测试完成环境已恢复"
}
main "$@"

View File

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

View File

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

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : Test Redis URL parsing
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 初始化变量
TEST_PACKAGE="python3-django-cache-url"
LOG_INFO "测试开始测试Redis URL解析功能"
# 步骤1检查测试包是否已在yum源中
LOG_INFO "步骤1检查测试包是否在yum源中"
dnf list available $TEST_PACKAGE 2>/dev/null | grep -q $TEST_PACKAGE
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包: $TEST_PACKAGE"
exit 255
fi
# 步骤2检查当前环境中是否已安装测试包
LOG_INFO "步骤2检查当前环境中是否已安装测试包"
rpm -q $TEST_PACKAGE >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "测试包已安装,标记为已存在"
PACKAGE_INSTALLED=1
else
LOG_INFO "测试包未安装,将在测试过程中安装"
PACKAGE_INSTALLED=0
fi
# 步骤3如果未安装则安装测试包
if [ $PACKAGE_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装测试包"
dnf install -y $TEST_PACKAGE
CHECK_RESULT $? 0 0 "安装测试包失败"
fi
# 步骤4验证Redis URL解析功能
LOG_INFO "步骤4验证Redis URL解析功能"
# 使用python3-django-cache-url的redis解析功能进行测试
# 这里假设有一个测试命令或脚本,具体根据实际软件包功能调整
TEST_COMMAND="python3 -c \"import sys; sys.path.append("/usr/lib/python3.9/site-packages"); from django_cache_url import parse; result = parse("redis://localhost:6379/0"); print("Redis URL解析成功" if result else "解析失败")\""
eval $TEST_COMMAND
CHECK_RESULT $? 0 0 "Redis URL解析功能测试失败"
# 步骤5验证不支持参数的情况
LOG_INFO "步骤5验证不支持参数的情况"
# 假设测试包有一个命令,检查是否支持某个参数
# 这里使用一个不存在的参数进行测试
TEST_COMMAND_WITH_INVALID_ARG="python3 -c \"import sys; sys.path.append("/usr/lib/python3.9/site-packages"); from django_cache_url import parse; parse("redis://localhost:6379/0", invalid_arg=True)\" 2>&1 | grep -q "invalid_arg""
if eval $TEST_COMMAND_WITH_INVALID_ARG; then
LOG_ERROR "测试包支持了不存在的参数"
exit 255
else
LOG_INFO "测试包正确处理了不支持的参数"
fi
# 步骤6清理环境
LOG_INFO "步骤6清理环境"
if [ $PACKAGE_INSTALLED -eq 0 ]; then
LOG_INFO "卸载测试包"
dnf remove -y $TEST_PACKAGE
CHECK_RESULT $? 0 0 "卸载测试包失败"
else
LOG_INFO "测试包为预安装,保持安装状态"
fi
LOG_INFO "测试结束Redis URL解析功能测试完成"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试检查texlive-mfware软件包是否已安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查texlive-mfware软件包是否已安装"
# 检查是否已安装texlive-mfware
LOG_INFO "步骤1检查texlive-mfware是否已安装"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware已安装将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-mfware未安装"
INSTALLED=false
fi
# 检查yum源中是否有texlive-mfware软件包
LOG_INFO "步骤2检查yum源中是否有texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 如果未安装则安装texlive-mfware
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
LOG_INFO "texlive-mfware安装成功"
fi
# 测试检查texlive-mfware是否已安装
LOG_INFO "步骤4验证texlive-mfware是否已安装"
rpm -q texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-mfware未正确安装"
# 环境恢复如果测试前未安装则卸载texlive-mfware
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤5恢复环境卸载texlive-mfware"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
LOG_INFO "环境恢复完成"
else
LOG_INFO "步骤5环境已安装无需恢复"
fi
LOG_INFO "测试完成texlive-mfware软件包检查测试通过"
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试gftodvi命令的基本功能将GF文件转换为DVI文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 检查软件包是否可用
LOG_INFO "检查texlive-mfware软件包是否在yum源中"
dnf list available texlive-mfware 2>/dev/null | grep -q texlive-mfware
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查texlive-mfware是否已安装"
rpm -q texlive-mfware >/dev/null 2>&1
installed=$?
if [ $installed -ne 0 ]; then
LOG_INFO "安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 检查gftodvi命令是否存在
LOG_INFO "检查gftodvi命令是否存在"
command -v gftodvi >/dev/null 2>&1
CHECK_RESULT $? 0 0 "gftodvi命令不存在"
# 检查gftodvi命令参数
LOG_INFO "检查gftodvi命令是否支持基本参数"
gftodvi --help >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gftodvi命令不支持--help参数"
exit 255
fi
# 创建测试用的GF文件
LOG_INFO "创建测试GF文件"
cat > test.gf << "EOF"
GFfile test
EOF
CHECK_RESULT $? 0 0 "创建GF文件失败"
# 测试gftodvi基本功能
LOG_INFO "测试gftodvi命令将GF文件转换为DVI文件"
gftodvi test.gf -o test.dvi
CHECK_RESULT $? 0 0 "gftodvi转换失败"
# 检查生成的DVI文件
LOG_INFO "检查生成的DVI文件"
[ -f test.dvi ]
CHECK_RESULT $? 0 0 "未生成DVI文件"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test.gf test.dvi
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装,则卸载软件包
if [ $installed -ne 0 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试 gftodvi 命令的 --overflow-label-offset 参数,用于覆盖溢出标签的偏移量
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试 gftodvi 命令的 --overflow-label-offset 参数"
LOG_INFO "步骤1检查测试环境是否已安装 texlive-metafont-bin 软件包"
if rpm -q texlive-metafont-bin &>/dev/null; then
LOG_INFO "texlive-metafont-bin 软件包已安装,测试完成后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "texlive-metafont-bin 软件包未安装,将在测试过程中安装"
INSTALLED_BEFORE_TEST=false
fi
LOG_INFO "步骤2检查 yum 源中是否存在 texlive-metafont-bin 软件包"
if ! dnf list available texlive-metafont-bin &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-metafont-bin 软件包"
exit 255
fi
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤3安装 texlive-metafont-bin 软件包"
dnf install -y texlive-metafont-bin
CHECK_RESULT $? 0 0 "安装 texlive-metafont-bin 软件包失败"
fi
LOG_INFO "步骤4检查 gftodvi 命令是否支持 --overflow-label-offset 参数"
if ! gftodvi --help 2>&1 | grep -q -- "--overflow-label-offset"; then
LOG_ERROR "gftodvi 命令不支持 --overflow-label-offset 参数"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "清理环境:卸载 texlive-metafont-bin 软件包"
dnf remove -y texlive-metafont-bin
fi
exit 255
fi
LOG_INFO "步骤5创建一个简单的 GF 文件用于测试"
cat > test_font.gf << "EOF"
% This is a minimal GF file for testing
headline: This is a test GF file.
EOF
CHECK_RESULT $? 0 0 "创建测试 GF 文件失败"
LOG_INFO "步骤6执行 gftodvi 命令并使用 --overflow-label-offset 参数"
gftodvi --overflow-label-offset=10 test_font.gf -o test_output.dvi 2>&1
CHECK_RESULT $? 0 0 "gftodvi 命令执行失败,可能由于测试文件不标准,但命令本身应能解析参数"
LOG_INFO "步骤7验证输出文件是否生成"
if [ -f "test_output.dvi" ]; then
LOG_INFO "成功生成输出文件 test_output.dvi"
else
LOG_ERROR "未生成输出文件 test_output.dvi"
CHECK_RESULT 1 0 0 "输出文件未生成"
fi
LOG_INFO "步骤8清理测试生成的文件"
rm -f test_font.gf test_output.dvi
CHECK_RESULT $? 0 0 "清理测试文件失败"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤9卸载测试安装的 texlive-metafont-bin 软件包"
dnf remove -y texlive-metafont-bin
CHECK_RESULT $? 0 0 "卸载 texlive-metafont-bin 软件包失败"
else
LOG_INFO "测试前已安装 texlive-metafont-bin保持安装状态无需卸载"
fi
LOG_INFO "gftodvi 命令 --overflow-label-offset 参数测试完成"
}
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-03-13
# @License : Mulan PSL v2
# @Desc : 测试 gftodvi 命令的 --verbose 参数,用于显示进度报告
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(根据要求直接使用,这里仅为说明)
# LOG_INFO和LOG_ERROR函数假设已定义这里仅作示例
# LOG_INFO() { echo "[INFO] $*"; }
# LOG_ERROR() { echo "[ERROR] $*"; exit 255; }
# 检查软件包是否在yum源中
check_package_in_repo() {
local pkg=$1
if ! dnf list available "$pkg" &>/dev/null; then
LOG_ERROR "软件包 $pkg 不在yum源中"
exit 255
fi
}
# 检查命令参数是否支持
check_command_param() {
local cmd=$1
local param=$2
if ! $cmd --help 2>&1 | grep -q -- "$param"; then
LOG_ERROR "命令 $cmd 不支持参数 $param"
exit 255
fi
}
# 检查环境是否已安装
check_installed() {
if rpm -q texlive-mfware &>/dev/null; then
LOG_INFO "texlive-mfware 已安装"
return 0
else
LOG_INFO "texlive-mfware 未安装"
return 1
fi
}
# 安装软件包
install_package() {
local pkg=$1
LOG_INFO "正在安装 $pkg"
dnf install -y "$pkg"
CHECK_RESULT $? 0 0 "安装 $pkg 失败"
}
# 卸载软件包
uninstall_package() {
local pkg=$1
LOG_INFO "正在卸载 $pkg"
dnf remove -y "$pkg"
CHECK_RESULT $? 0 0 "卸载 $pkg 失败"
}
# 主测试函数
test_gftodvi_verbose() {
local pkg="texlive-mfware"
local cmd="gftodvi"
local param="--verbose"
local test_file="test.gf"
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "步骤1: 检查软件包 $pkg 是否在yum源中"
check_package_in_repo "$pkg"
# 步骤2: 检查环境是否已安装
LOG_INFO "步骤2: 检查环境是否已安装"
local installed_before=0
if check_installed; then
installed_before=1
else
# 步骤3: 安装软件包
install_package "$pkg"
fi
# 步骤4: 检查命令参数是否支持
LOG_INFO "步骤4: 检查命令 $cmd 是否支持参数 $param"
check_command_param "$cmd" "$param"
# 步骤5: 创建测试文件
LOG_INFO "步骤5: 创建测试文件"
echo "这是一个测试文件" > "$test_file"
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 步骤6: 执行命令测试
LOG_INFO "步骤6: 执行命令 $cmd $param"
$cmd "$param" "$test_file" 2>&1 | grep -q "verbose"
CHECK_RESULT $? 0 0 "命令 $cmd $param 执行失败或未显示进度报告"
# 步骤7: 清理测试文件
LOG_INFO "步骤7: 清理测试文件"
rm -f "$test_file"
CHECK_RESULT $? 0 0 "删除测试文件失败"
# 步骤8: 环境恢复
LOG_INFO "步骤8: 环境恢复"
if [[ $installed_before -eq 0 ]]; then
uninstall_package "$pkg"
else
LOG_INFO "保持软件包 $pkg 安装状态"
fi
LOG_INFO "测试完成"
}
# 执行测试
test_gftodvi_verbose
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试 gftodvi 命令的 --version 参数,用于输出版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 gftodvi 命令的 --version 参数"
LOG_INFO "步骤1检查是否已安装 texlive-mfware 软件包"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware 已安装,记录安装状态"
INSTALLED=1
else
LOG_INFO "texlive-mfware 未安装,记录安装状态"
INSTALLED=0
fi
LOG_INFO "步骤2检查 yum 源中是否存在 texlive-mfware 软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-mfware 软件包"
exit 255
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装 texlive-mfware 软件包"
dnf install -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 texlive-mfware 失败"
fi
LOG_INFO "步骤4检查 gftodvi 命令是否存在"
which gftodvi > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gftodvi 命令不存在"
LOG_INFO "步骤5测试 gftodvi --version 参数"
gftodvi --version > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gftodvi --version 执行成功"
else
LOG_ERROR "gftodvi --version 参数不存在或不支持"
if [ $INSTALLED -eq 0 ]; then
dnf remove -y texlive-mfware > /dev/null 2>&1
fi
exit 255
fi
LOG_INFO "步骤6验证 gftodvi --version 输出包含版本信息"
gftodvi --version 2>&1 | grep -i "version" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gftodvi --version 未输出版本信息"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤7清理环境卸载 texlive-mfware 软件包"
dnf remove -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载 texlive-mfware 失败"
else
LOG_INFO "步骤7保持环境不卸载 texlive-mfware 软件包"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,126 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试gftopk命令的基本功能将GF文件转换为PK文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装texlive-mfware软件包
LOG_INFO "1. 检查texlive-mfware软件包是否已经安装"
rpm -q texlive-mfware &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware软件包已安装测试完成后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "texlive-mfware软件包未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有texlive-mfware软件包
LOG_INFO "2. 检查yum源中是否有texlive-mfware软件包"
dnf list available texlive-mfware &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有texlive-mfware软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "3. 安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
# 检查gftopk命令是否存在
LOG_INFO "4. 检查gftopk命令是否存在"
which gftopk &> /dev/null
CHECK_RESULT $? 0 0 "gftopk命令不存在"
# 测试gftopk命令的基本功能将GF文件转换为PK文件
LOG_INFO "5. 测试gftopk命令的基本功能将GF文件转换为PK文件"
# 创建一个简单的GF文件用于测试
LOG_INFO "5.1 创建测试GF文件"
cat > test.gf << "EOF"
% This is a minimal GF file for testing
font_identifier: testfont
checksum: 0
design_size: 10
design_units: 1
coding_scheme: "TeX text"
font_type: METAFONT
seven_bit_safe_flag: false
font_name: "Test Font"
extra_header: ""
character 0: 0 0 0 0 0 0
EOF
# 检查gftopk命令是否支持基本参数
LOG_INFO "5.2 检查gftopk命令是否支持基本参数"
gftopk --help &> /dev/null
if [ $? -ne 0 ]; then
# 如果--help不支持尝试-h参数
gftopk -h &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "gftopk命令不支持--help或-h参数"
# 清理测试文件
rm -f test.gf test.pk
# 如果之前未安装,需要卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
dnf remove -y texlive-mfware
fi
exit 255
fi
fi
# 执行gftopk命令将GF文件转换为PK文件
LOG_INFO "5.3 执行gftopk命令将test.gf转换为test.pk"
gftopk test.gf test.pk
CHECK_RESULT $? 0 0 "gftopk命令执行失败"
# 检查是否生成了PK文件
LOG_INFO "5.4 检查是否生成了PK文件"
if [ -f "test.pk" ]; then
LOG_INFO "成功生成PK文件: test.pk"
# 检查PK文件的基本属性
file test.pk | grep -q "PK"
CHECK_RESULT $? 0 0 "生成的PK文件格式不正确"
else
LOG_ERROR "未生成PK文件"
CHECK_RESULT 1 0 0 "未生成PK文件"
fi
# 清理测试文件
LOG_INFO "6. 清理测试文件"
rm -f test.gf test.pk
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装,则在测试后卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "7. 卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
LOG_INFO "环境已恢复到测试前的状态"
else
LOG_INFO "7. 保持texlive-mfware软件包安装状态"
fi
LOG_INFO "测试完成gftopk命令基本功能测试通过"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试 gftopk 命令的 -help 参数,验证帮助信息是否正确显示。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 gftopk 命令的 -help 参数"
# 检查系统中是否已安装 texlive-mfware 软件包
LOG_INFO "检查 texlive-mfware 软件包是否已安装"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware 软件包已安装"
INSTALLED="true"
else
LOG_INFO "texlive-mfware 软件包未安装"
INSTALLED="false"
fi
# 检查 yum 源中是否有 texlive-mfware 软件包
LOG_INFO "检查 yum 源中是否有 texlive-mfware 软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中没有 texlive-mfware 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装 texlive-mfware 软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装 texlive-mfware 软件包失败"
fi
# 测试 gftopk 命令的 -help 参数
LOG_INFO "测试 gftopk 命令的 -help 参数"
gftopk -help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gftopk 命令的 -help 参数不存在或不支持"
# 验证帮助信息是否正确显示
LOG_INFO "验证 gftopk 命令的帮助信息是否正确显示"
gftopk -help | grep -q "Usage:"
CHECK_RESULT $? 0 0 "gftopk 命令的帮助信息显示不正确"
# 环境恢复:如果之前未安装,则卸载软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载 texlive-mfware 软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载 texlive-mfware 软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,99 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试 gftopk 命令的 -verbose 参数,验证处理 GF 文件时是否显示进度报告。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装texlive-mfware软件包
LOG_INFO "检查是否已安装texlive-mfware软件包"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-mfware未安装将在测试前安装测试后卸载"
INSTALLED=0
fi
# 检查yum源中是否存在texlive-mfware软件包
LOG_INFO "检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "安装texlive-mfware软件包"
dnf install -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
# 检查gftopk命令是否存在
LOG_INFO "检查gftopk命令是否存在"
which gftopk > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gftopk命令不存在"
if [ ${INSTALLED} -eq 0 ]; then
dnf remove -y texlive-mfware > /dev/null 2>&1
fi
exit 255
fi
# 检查gftopk命令是否支持-verbose参数
LOG_INFO "检查gftopk命令是否支持-verbose参数"
gftopk --help 2>&1 | grep -q "\-verbose"
if [ $? -ne 0 ]; then
LOG_ERROR "gftopk命令不支持-verbose参数"
if [ ${INSTALLED} -eq 0 ]; then
dnf remove -y texlive-mfware > /dev/null 2>&1
fi
exit 255
fi
# 创建一个简单的GF文件用于测试
LOG_INFO "创建测试用的GF文件"
cat > test_font.gf << "EOF"
% This is a minimal GF file for testing
header: 0 0 0 0 0 0 0 0 0 0
EOF
CHECK_RESULT $? 0 0 "创建测试GF文件失败"
# 测试gftopk命令的-verbose参数
LOG_INFO "测试gftopk命令的-verbose参数验证处理GF文件时是否显示进度报告"
gftopk -verbose test_font.gf test_font.pk 2>&1 | grep -q "verbose"
CHECK_RESULT $? 0 0 "gftopk命令的-verbose参数未显示进度报告"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_font.gf test_font.pk
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装,则卸载软件包
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
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-13
# @License : Mulan PSL v2
# @Desc : 测试 gftopk 命令的 -version 参数,验证版本信息是否正确输出。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 gftopk 命令的 -version 参数,验证版本信息是否正确输出
# 定义软件包名称
PACKAGE_NAME="texlive-mfware"
# 步骤1检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在软件包 ${PACKAGE_NAME}"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 步骤2检查当前环境中是否已安装软件包
LOG_INFO "检查当前环境是否已安装软件包 ${PACKAGE_NAME}"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试完成后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,测试完成后将卸载"
INSTALLED_BEFORE=0
fi
# 步骤3如果未安装则安装软件包
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 步骤4检查 gftopk 命令是否存在
LOG_INFO "检查 gftopk 命令是否存在"
which gftopk &>/dev/null
CHECK_RESULT $? 0 0 "gftopk 命令不存在"
# 步骤5检查 -version 参数是否支持
LOG_INFO "检查 gftopk 命令是否支持 -version 参数"
gftopk -version &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "gftopk 命令不支持 -version 参数"
exit 255
fi
# 步骤6执行 gftopk -version 命令并验证输出
LOG_INFO "执行 gftopk -version 命令并验证版本信息"
VERSION_OUTPUT=$(gftopk -version 2>&1)
if [ $? -ne 0 ]; then
LOG_ERROR "gftopk -version 命令执行失败"
exit 1
fi
# 步骤7验证版本信息输出是否包含预期内容
LOG_INFO "验证版本信息输出"
echo "${VERSION_OUTPUT}" | grep -i "version" &>/dev/null
CHECK_RESULT $? 0 0 "版本信息输出不正确"
# 步骤8清理环境
LOG_INFO "清理测试环境"
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
else
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,109 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试gftype命令的基本功能显示GF文件的字符信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试gftype命令的基本功能显示GF文件的字符信息"
# 定义软件包名称
PACKAGE_NAME="texlive-mfware"
# 步骤1检查yum源中是否存在软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 ${PACKAGE_NAME}"
dnf list available ${PACKAGE_NAME} &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
exit 255
fi
# 步骤2检查是否已安装软件包
LOG_INFO "步骤2检查是否已安装软件包 ${PACKAGE_NAME}"
if rpm -q ${PACKAGE_NAME} &> /dev/null; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试后保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将在测试过程中安装"
INSTALLED=false
fi
# 步骤3如果未安装则安装软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤3安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 步骤4检查gftype命令是否存在
LOG_INFO "步骤4检查gftype命令是否存在"
which gftype &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "gftype命令不存在"
if [ "${INSTALLED}" = "false" ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 步骤5检查gftype命令是否支持基本参数
LOG_INFO "步骤5检查gftype命令是否支持基本参数"
gftype --help &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "gftype命令不支持--help参数"
if [ "${INSTALLED}" = "false" ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 步骤6创建一个简单的GF文件用于测试
LOG_INFO "步骤6创建一个简单的GF文件用于测试"
cat > test.gf << "EOF"
% This is a test GF file
font_size 10pt;
character 65 "A";
EOF
# 步骤7使用gftype命令显示GF文件的字符信息
LOG_INFO "步骤7使用gftype命令显示GF文件的字符信息"
gftype test.gf > output.txt 2>&1
CHECK_RESULT $? 0 0 "执行gftype命令失败"
# 步骤8验证输出是否包含预期的字符信息
LOG_INFO "步骤8验证输出是否包含预期的字符信息"
grep -q "character.*65.*A" output.txt
CHECK_RESULT $? 0 0 "输出中未找到预期的字符信息"
# 步骤9清理测试文件
LOG_INFO "步骤9清理测试文件"
rm -f test.gf output.txt
# 步骤10如果测试前未安装则卸载软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤10卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
else
LOG_INFO "步骤10保持软件包 ${PACKAGE_NAME} 的安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,102 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-help参数显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-mfware软件包
LOG_INFO "检查texlive-mfware软件包是否已安装"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware已安装记录当前状态"
installed_flag=1
else
LOG_INFO "texlive-mfware未安装记录当前状态"
installed_flag=0
fi
# 检查yum源中是否存在texlive-mfware软件包
LOG_INFO "检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-mfware软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $installed_flag -eq 0 ]; then
LOG_INFO "开始安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 测试gftype命令的-help参数
LOG_INFO "测试gftype命令的-help参数"
gftype --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gftype命令支持--help参数"
gftype --help | head -5 > /tmp/gftype_help_output.txt
CHECK_RESULT $? 0 0 "获取gftype帮助信息失败"
else
LOG_INFO "尝试使用-help参数"
gftype -help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gftype命令支持-help参数"
gftype -help | head -5 > /tmp/gftype_help_output.txt
CHECK_RESULT $? 0 0 "获取gftype帮助信息失败"
else
LOG_ERROR "gftype命令不支持-help或--help参数"
# 清理临时文件
rm -f /tmp/gftype_help_output.txt
# 如果脚本开始时未安装,则卸载软件包
if [ $installed_flag -eq 0 ]; then
LOG_INFO "清理环境卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
fi
exit 255
fi
fi
# 验证帮助信息内容
LOG_INFO "验证帮助信息内容"
if [ -s /tmp/gftype_help_output.txt ]; then
LOG_INFO "gftype帮助信息显示成功"
cat /tmp/gftype_help_output.txt
else
LOG_ERROR "gftype帮助信息为空"
CHECK_RESULT 1 0 0 "gftype帮助信息为空"
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/gftype_help_output.txt
# 环境恢复:如果脚本开始时未安装,则卸载软件包
if [ $installed_flag -eq 0 ]; then
LOG_INFO "恢复环境卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
else
LOG_INFO "保持texlive-mfware安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-images参数以像素形式显示字符
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境检查检查是否已安装texlive-mfware包
LOG_INFO "检查是否已安装texlive-mfware包"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "texlive-mfware未安装测试过程中将安装脚本结束前会卸载"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有texlive-mfware包
LOG_INFO "检查yum源中是否有texlive-mfware包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware包"
exit 255
fi
# 如果未安装则安装texlive-mfware
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "安装texlive-mfware包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 测试使用-images参数以像素形式显示字符
LOG_INFO "测试使用-images参数以像素形式显示字符"
# 首先检查gftype命令是否支持-images参数
gftype --help | grep -q "\-images"
if [ $? -ne 0 ]; then
LOG_ERROR "gftype命令不支持-images参数"
exit 255
fi
# 创建一个简单的测试字体文件使用mf-ware自带的测试文件
LOG_INFO "创建测试字体文件"
cat > test_font.mf << "EOF"
mode:=ljfour;
fontmaking
end
EOF
# 生成测试字体文件
LOG_INFO "生成测试字体文件"
mf "\mode=ljfour; input test_font.mf" </dev/null
CHECK_RESULT $? 0 0 "生成测试字体文件失败"
# 使用gftype命令的-images参数显示字符
LOG_INFO "使用gftype -images显示字符"
gftype -images test_font.2602gf > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gftype -images命令执行失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_font.* log.*
# 环境恢复如果之前未安装则卸载texlive-mfware
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载texlive-mfware包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,112 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-mnemonics参数将所有GF命令翻译为助记符形式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-mfware软件包
LOG_INFO "检查texlive-mfware软件包是否已安装"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "texlive-mfware未安装测试中将安装并最终卸载"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有texlive-mfware软件包
LOG_INFO "检查yum源中是否有texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 检查gftype命令是否存在
LOG_INFO "检查gftype命令是否存在"
which gftype > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gftype命令不存在"
exit 255
fi
# 检查gftype命令是否支持-mnemonics参数
LOG_INFO "检查gftype命令是否支持-mnemonics参数"
gftype --help 2>&1 | grep -q "\-mnemonics"
if [ $? -ne 0 ]; then
LOG_ERROR "gftype命令不支持-mnemonics参数"
exit 255
fi
# 创建一个简单的GF文件用于测试
LOG_INFO "创建测试用的GF文件"
cat > test_font.gf << "EOF"
% This is a minimal GF file for testing
HEADER
checksum: 12345
design_size: 10.0
directory: 0
first_char: 0
font_name: testfont
hppp: 300
mag: 1000
max_char: 255
min_char: 0
nw: 0
vppp: 300
BOC 0
xxx: 0
EOC
EOF
CHECK_RESULT $? 0 0 "创建测试GF文件失败"
# 使用-mnemonics参数执行gftype命令
LOG_INFO "使用-mnemonics参数执行gftype命令将GF命令翻译为助记符形式"
gftype -mnemonics test_font.gf > output.txt 2>&1
CHECK_RESULT $? 0 0 "gftype命令执行失败"
# 检查输出是否包含助记符形式的命令
LOG_INFO "检查输出是否包含助记符形式的命令"
grep -q "xxx" output.txt
CHECK_RESULT $? 0 0 "输出中未找到助记符形式的命令"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_font.gf output.txt
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果之前未安装,则卸载软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试不带任何参数执行命令,验证其基础功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境初始化检查
LOG_INFO "开始测试texlive-mfware包的gftype命令基础功能"
# 检查软件包是否已安装
if rpm -q texlive-mfware &>/dev/null; then
LOG_INFO "检测到texlive-mfware已安装测试后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "未检测到texlive-mfware安装将在测试过程中安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
LOG_INFO "yum源中存在texlive-mfware软件包"
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
LOG_INFO "texlive-mfware软件包安装成功"
fi
# 检查gftype命令是否存在
LOG_INFO "检查gftype命令是否存在"
command -v gftype &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "gftype命令不存在"
# 如果之前未安装,需要清理环境
if [ $ALREADY_INSTALLED -eq 0 ]; then
dnf remove -y texlive-mfware
fi
exit 255
fi
LOG_INFO "gftype命令存在"
# 测试不带任何参数执行gftype命令
LOG_INFO "测试不带任何参数执行gftype命令"
gftype 2>&1
EXIT_CODE=$?
# 检查命令执行结果
# gftype不带参数会显示使用帮助并返回非0退出码这是正常行为
if [ $EXIT_CODE -eq 1 ]; then
LOG_INFO "gftype命令不带参数执行成功显示使用帮助"
CHECK_RESULT 0 0 0 "gftype命令基础功能测试通过"
else
LOG_ERROR "gftype命令不带参数执行异常退出码: $EXIT_CODE"
CHECK_RESULT 1 0 0 "gftype命令基础功能测试失败"
fi
# 环境清理
LOG_INFO "开始环境清理"
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载测试安装的texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
LOG_INFO "texlive-mfware软件包卸载成功"
else
LOG_INFO "保持texlive-mfware软件包安装状态"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,123 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-version参数输出版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 定义常量
PACKAGE_NAME="texlive-mfware-gftype"
COMMAND_NAME="gftype"
TEST_PARAM="-version"
# 步骤1检查软件包是否在yum源中
LOG_INFO "步骤1检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
exit 255
fi
# 步骤2检查是否已安装
LOG_INFO "步骤2检查${PACKAGE_NAME}是否已安装"
rpm -q ${PACKAGE_NAME} &>/dev/null
PACKAGE_INSTALLED=$?
# 记录初始安装状态
INITIAL_INSTALL_STATE=$PACKAGE_INSTALLED
# 步骤3如果未安装则进行安装
if [ $PACKAGE_INSTALLED -ne 0 ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
# 重新检查安装状态
rpm -q ${PACKAGE_NAME} &>/dev/null
PACKAGE_INSTALLED=$?
CHECK_RESULT $PACKAGE_INSTALLED 0 0 "安装后检查${PACKAGE_NAME}状态失败"
fi
# 步骤4检查命令是否存在
LOG_INFO "步骤4检查${COMMAND_NAME}命令是否存在"
which ${COMMAND_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "${COMMAND_NAME}命令不存在"
exit 255
fi
# 步骤5测试-version参数是否存在
LOG_INFO "步骤5测试${COMMAND_NAME}命令是否支持${TEST_PARAM}参数"
${COMMAND_NAME} ${TEST_PARAM} &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "${COMMAND_NAME}命令不支持${TEST_PARAM}参数"
exit 255
fi
# 步骤6执行测试用例 - 使用-version参数输出版本信息
LOG_INFO "步骤6执行测试用例 - 使用${TEST_PARAM}参数输出版本信息"
VERSION_OUTPUT=$(${COMMAND_NAME} ${TEST_PARAM} 2>&1)
EXIT_CODE=$?
# 步骤7检查命令执行结果
LOG_INFO "步骤7检查${COMMAND_NAME} ${TEST_PARAM}命令执行结果"
CHECK_RESULT $EXIT_CODE 0 0 "${COMMAND_NAME} ${TEST_PARAM}执行失败"
# 步骤8检查版本信息输出是否有效
LOG_INFO "步骤8检查版本信息输出是否有效"
if [ -z "$VERSION_OUTPUT" ]; then
LOG_ERROR "版本信息输出为空"
CHECK_RESULT 1 0 0 "版本信息输出为空"
else
LOG_INFO "版本信息输出: $VERSION_OUTPUT"
CHECK_RESULT 0 0 0 "版本信息输出检查"
fi
# 步骤9环境恢复
LOG_INFO "步骤9环境恢复"
if [ $INITIAL_INSTALL_STATE -ne 0 ]; then
# 初始状态未安装,需要卸载
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
# 验证卸载结果
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "卸载${PACKAGE_NAME}后检查失败,软件包仍存在"
CHECK_RESULT 1 0 0 "卸载验证失败"
else
LOG_INFO "环境已恢复到初始未安装状态"
fi
else
LOG_INFO "保持初始安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试软件包的安装功能验证是否能成功安装texlive-mfware
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色和日志函数(虽然题目说直接使用,但实际环境中可能没有,这里简单定义)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 测试用例描述测试软件包的安装功能验证是否能成功安装texlive-mfware
LOG_INFO "开始测试texlive-mfware安装功能"
# 步骤1检查yum源中是否有texlive-mfware软件包
LOG_INFO "步骤1检查yum源中是否有texlive-mfware软件包"
dnf list available texlive-mfware &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 步骤2检查当前环境是否已经安装texlive-mfware
LOG_INFO "步骤2检查当前环境是否已经安装texlive-mfware"
rpm -q texlive-mfware &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware已经安装脚本结束时将保持安装状态"
INSTALLED="true"
else
LOG_INFO "texlive-mfware未安装将进行安装测试"
INSTALLED="false"
fi
# 步骤3如果未安装则安装texlive-mfware
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装texlive-mfware"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
LOG_INFO "texlive-mfware安装成功"
fi
# 步骤4验证安装是否成功
LOG_INFO "步骤4验证texlive-mfware安装是否成功"
rpm -q texlive-mfware
CHECK_RESULT $? 0 0 "验证texlive-mfware安装失败"
# 步骤5测试texlive-mfware基本命令例如mfware --version
LOG_INFO "步骤5测试texlive-mfware基本命令"
if command -v mfware &>/dev/null; then
mfware --version &>/dev/null
CHECK_RESULT $? 0 0 "mfware命令执行失败"
LOG_INFO "mfware命令执行成功"
else
LOG_ERROR "未找到mfware命令可能安装不完整"
exit 1
fi
# 步骤6环境恢复如果测试前未安装则卸载
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤6环境恢复卸载texlive-mfware"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
LOG_INFO "texlive-mfware卸载成功"
else
LOG_INFO "步骤6环境恢复保持texlive-mfware安装状态"
fi
LOG_INFO "测试完成,所有步骤执行成功"
}
main "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试mft命令的基本功能格式化TeX或METAPOST源文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试mft命令的基本功能格式化TeX或METAPOST源文件"
# 定义软件包名称
PACKAGE_NAME="texlive-mfware"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在软件包$PACKAGE_NAME"
dnf list available $PACKAGE_NAME &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 检查当前是否已安装软件包
LOG_INFO "检查当前是否已安装软件包:$PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &> /dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装软件包:$PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 检查mft命令是否可用
LOG_INFO "检查mft命令是否可用"
command -v mft &> /dev/null
CHECK_RESULT $? 0 0 "mft命令未找到"
# 测试mft命令的基本功能格式化TeX或METAPOST源文件
LOG_INFO "测试mft命令的基本功能格式化TeX源文件"
cat > test_input.tex << "EOF"
\input plain
\def\test{Hello, TeX!}
\test
\bye
EOF
mft test_input.tex > test_output.txt 2>&1
CHECK_RESULT $? 0 0 "mft格式化TeX源文件失败"
LOG_INFO "测试mft命令的基本功能格式化METAPOST源文件"
cat > test_input.mp << "EOF"
beginfig(1);
draw (0,0)--(100,100);
endfig;
end.
EOF
mft test_input.mp > test_output_mp.txt 2>&1
CHECK_RESULT $? 0 0 "mft格式化METAPOST源文件失败"
# 检查输出文件是否存在且非空
LOG_INFO "检查生成的格式化文件"
[ -s test_output.txt ]
CHECK_RESULT $? 0 0 "TeX格式化输出文件不存在或为空"
[ -s test_output_mp.txt ]
CHECK_RESULT $? 0 0 "METAPOST格式化输出文件不存在或为空"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_input.tex test_input.mp test_output.txt test_output_mp.txt
# 如果测试前未安装软件包,则在测试后卸载
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载软件包:$PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,123 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-change参数并指定变更文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了texlive-mfware软件包
LOG_INFO "开始测试texlive-mfware的-change参数功能"
# 检查yum源中是否存在texlive-mfware软件包
LOG_INFO "检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware 2>/dev/null | grep -q texlive-mfware
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-mfware软件包"
exit 255
fi
# 检查是否已经安装了texlive-mfware
LOG_INFO "检查当前是否已安装texlive-mfware软件包"
if rpm -q texlive-mfware >/dev/null 2>&1; then
LOG_INFO "检测到texlive-mfware已安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "texlive-mfware未安装将在测试过程中安装"
already_installed=false
fi
# 检查mft命令是否支持-change参数
LOG_INFO "检查mft命令是否支持-change参数"
if $already_installed; then
mft --help 2>&1 | grep -q -- "-change"
CHECK_RESULT $? 0 0 "mft命令不支持-change参数"
else
# 先安装软件包以检查参数支持
LOG_INFO "临时安装texlive-mfware以检查参数支持"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
mft --help 2>&1 | grep -q -- "-change"
param_check_result=$?
# 检查完后如果原本未安装,则卸载
if [ "$already_installed" = "false" ]; then
LOG_INFO "卸载临时安装的texlive-mfware"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
fi
CHECK_RESULT $param_check_result 0 0 "mft命令不支持-change参数"
fi
# 如果未安装,现在正式安装用于测试
if [ "$already_installed" = "false" ]; then
LOG_INFO "安装texlive-mfware软件包用于测试"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 创建测试文件
LOG_INFO "创建测试文件"
test_file="test_font.mf"
echo "font_identifier test_font;" > $test_file
echo "design_size 10pt;" >> $test_file
echo "font_coding_scheme \"Test Font\";" >> $test_file
# 创建变更文件
LOG_INFO "创建变更文件"
change_file="font_changes.mft"
echo "design_size := 12pt;" > $change_file
echo "font_coding_scheme := \"Modified Test Font\";" >> $change_file
# 测试使用-change参数并指定变更文件
LOG_INFO "测试使用-change参数并指定变更文件"
mft -change=$change_file $test_file output.mf
CHECK_RESULT $? 0 0 "使用-change参数执行mft命令失败"
# 验证输出文件是否生成
LOG_INFO "验证输出文件是否生成"
[ -f "output.mf" ]
CHECK_RESULT $? 0 0 "输出文件未生成"
# 验证变更是否生效
LOG_INFO "验证变更是否在输出文件中生效"
grep -q "design_size 12pt" output.mf
CHECK_RESULT $? 0 0 "design_size变更未生效"
grep -q "font_coding_scheme \"Modified Test Font\"" output.mf
CHECK_RESULT $? 0 0 "font_coding_scheme变更未生效"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f $test_file $change_file output.mf
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试开始时未安装,测试结束后卸载软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "测试完成卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
else
LOG_INFO "测试完成保持texlive-mfware安装状态"
fi
LOG_INFO "texlive-mfware的-change参数功能测试完成"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-help参数显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试使用-help参数显示帮助信息"
LOG_INFO "步骤1检查texlive-mfware软件包是否在yum源中"
dnf list available texlive-mfware 2>/dev/null | grep -q texlive-mfware
if [ $? -ne 0 ]; then
LOG_ERROR "texlive-mfware软件包不在yum源中"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装texlive-mfware"
if dnf list installed texlive-mfware 2>/dev/null | grep -q texlive-mfware; then
LOG_INFO "texlive-mfware已安装测试完成后将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-mfware未安装将安装软件包作为测试步骤"
INSTALLED=0
LOG_INFO "步骤3安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
LOG_INFO "步骤4检查mft命令是否存在"
command -v mft >/dev/null 2>&1
CHECK_RESULT $? 0 0 "mft命令不存在"
LOG_INFO "步骤5检查mft命令是否支持-help参数"
mft --help >/dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "mft命令不支持-help参数"
exit 255
fi
LOG_INFO "步骤6执行mft --help命令并检查输出"
mft --help | grep -q "Usage\|用法"
CHECK_RESULT $? 0 0 "mft --help命令未显示帮助信息"
LOG_INFO "步骤7环境清理"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
else
LOG_INFO "测试开始前已安装texlive-mfware保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-metapost参数处理METAPOST源文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试使用-metapost参数处理METAPOST源文件
LOG_INFO "1. 检查texlive-mfware软件包是否在yum源中"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "texlive-mfware软件包不在yum源中"
exit 255
fi
LOG_INFO "2. 检查当前环境是否已安装texlive-mfware"
rpm -q texlive-mfware > /dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "texlive-mfware已安装测试后保持安装状态"
NEED_UNINSTALL=0
else
LOG_INFO "texlive-mfware未安装将进行安装测试"
NEED_UNINSTALL=1
LOG_INFO "3. 安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
LOG_INFO "4. 检查mft命令是否支持-metapost参数"
mft --help 2>&1 | grep -q "\-metapost"
CHECK_RESULT $? 0 0 "mft命令不支持-metapost参数"
LOG_INFO "5. 创建一个简单的METAPOST源文件进行测试"
cat > test_metapost.mp << "EOF"
beginfig(1);
draw (0,0)--(100,100);
endfig;
end.
EOF
CHECK_RESULT $? 0 0 "创建METAPOST测试文件失败"
LOG_INFO "6. 使用mft命令的-metapost参数处理METAPOST源文件"
mft -metapost test_metapost.mp > /dev/null 2>&1
CHECK_RESULT $? 0 0 "使用-metapost参数处理METAPOST文件失败"
LOG_INFO "7. 验证生成的输出文件"
if [ -f "test_metapost.log" ]; then
LOG_INFO "成功生成输出文件test_metapost.log"
grep -q "beginfig\|endfig" test_metapost.log
CHECK_RESULT $? 0 0 "输出文件内容不符合预期"
else
LOG_ERROR "未生成预期的输出文件"
exit 1
fi
LOG_INFO "8. 清理测试文件"
rm -f test_metapost.mp test_metapost.log
CHECK_RESULT $? 0 0 "清理测试文件失败"
LOG_INFO "9. 环境恢复"
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "卸载测试安装的texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "保持texlive-mfware安装状态"
fi
LOG_INFO "10. 测试完成"
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试同时使用-metapost和-change参数
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试同时使用-metapost和-change参数"
LOG_INFO "步骤1检查环境中是否已安装texlive-mfware软件包"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境中已安装texlive-mfware软件包测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "环境中未安装texlive-mfware软件包将在测试过程中安装"
INSTALLED=0
fi
LOG_INFO "步骤2检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
LOG_INFO "步骤3如果环境未安装则安装texlive-mfware软件包"
if [ $INSTALLED -eq 0 ]; then
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
LOG_INFO "步骤4执行mft命令同时使用-metapost和-change参数"
mft -metapost -change test.mf > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "mft命令不支持-metapost或-change参数"
exit 255
fi
CHECK_RESULT $? 0 0 "执行mft命令失败"
LOG_INFO "步骤5清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载测试过程中安装的texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
else
LOG_INFO "环境中原本已安装texlive-mfware软件包保持安装状态"
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-13
# @License : Mulan PSL v2
# @Desc : 测试同时使用-metapost和-style参数
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware 2>&1 | grep -q "texlive-mfware"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
LOG_INFO "检查是否已安装texlive-mfware"
rpm -q texlive-mfware > /dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "texlive-mfware已安装测试后将保持安装状态"
NEED_CLEANUP=0
else
LOG_INFO "texlive-mfware未安装将执行安装和卸载步骤"
NEED_CLEANUP=1
fi
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
LOG_INFO "检查mft命令是否支持-metapost参数"
mft --help 2>&1 | grep -q -- "-metapost"
CHECK_RESULT $? 0 0 "mft命令不支持-metapost参数"
LOG_INFO "检查mft命令是否支持-style参数"
mft --help 2>&1 | grep -q -- "-style"
CHECK_RESULT $? 0 0 "mft命令不支持-style参数"
LOG_INFO "测试同时使用-metapost和-style参数执行mft命令"
mft -metapost -style=plain test.mf 2>&1
CMD_RESULT=$?
if [ $CMD_RESULT -eq 255 ]; then
LOG_ERROR "命令参数不存在或不支持"
exit 255
elif [ $CMD_RESULT -ne 0 ]; then
LOG_ERROR "mft命令执行失败退出码: $CMD_RESULT"
exit $CMD_RESULT
else
LOG_INFO "mft命令执行成功"
fi
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
LOG_INFO "环境已恢复至测试前状态"
fi
LOG_INFO "测试完成"
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试不带任何参数运行mft命令
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试不带任何参数运行mft命令"
# 检查yum源中是否存在texlive-mfware软件包
LOG_INFO "检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware 2>/dev/null | grep -q texlive-mfware
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-mfware软件包"
exit 255
fi
# 检查当前环境是否已安装texlive-mfware
LOG_INFO "检查当前环境是否已安装texlive-mfware"
rpm -q texlive-mfware > /dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "环境未安装texlive-mfware开始安装"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 测试不带任何参数运行mft命令
LOG_INFO "测试不带任何参数运行mft命令"
mft
CHECK_RESULT $? 0 0 "不带参数运行mft命令失败"
# 环境恢复:如果测试前未安装,则卸载软件包
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "测试前未安装texlive-mfware卸载软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,101 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-style参数指定样式文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本:测试使用-style参数指定样式文件
# 定义变量
PACKAGE_NAME="texlive-mfware"
COMMAND="mft"
STYLE_PARAM="-style"
TEST_STYLE_FILE="/tmp/test_style.mft"
EXPECTED_OUTPUT_PATTERN="This is a test style file"
# 步骤1检查yum源中是否存在指定的软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 ${PACKAGE_NAME}"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
exit 255
fi
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中存在"
# 步骤2检查环境是否已安装软件包
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如果未安装则安装软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "步骤3安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 步骤4检查命令是否支持 -style 参数
LOG_INFO "步骤4检查命令 ${COMMAND} 是否支持参数 ${STYLE_PARAM}"
${COMMAND} --help 2>&1 | grep -q "${STYLE_PARAM}"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${COMMAND} 不支持参数 ${STYLE_PARAM}"
exit 255
fi
LOG_INFO "命令 ${COMMAND} 支持参数 ${STYLE_PARAM}"
# 步骤5创建测试样式文件
LOG_INFO "步骤5创建测试样式文件 ${TEST_STYLE_FILE}"
cat > ${TEST_STYLE_FILE} << EOF
% This is a test style file
\input plain
\input mftmac
\def\testoutput{This is a test style file}
\testoutput
\bye
EOF
CHECK_RESULT $? 0 0 "创建测试样式文件失败"
# 步骤6使用 -style 参数执行命令并验证输出
LOG_INFO "步骤6使用 -style 参数执行命令 ${COMMAND} 并验证输出"
OUTPUT=$(${COMMAND} ${STYLE_PARAM} ${TEST_STYLE_FILE} 2>&1)
CHECK_RESULT $? 0 0 "执行命令 ${COMMAND} ${STYLE_PARAM} ${TEST_STYLE_FILE} 失败"
echo "${OUTPUT}" | grep -q "${EXPECTED_OUTPUT_PATTERN}"
CHECK_RESULT $? 0 0 "命令输出不符合预期,未找到 "${EXPECTED_OUTPUT_PATTERN}""
# 步骤7清理测试文件
LOG_INFO "步骤7清理测试样式文件"
rm -f ${TEST_STYLE_FILE}
CHECK_RESULT $? 0 0 "删除测试样式文件失败"
# 步骤8如果测试前未安装则卸载软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "步骤8卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
fi
LOG_INFO "测试完成:使用 -style 参数指定样式文件测试成功"
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试多次使用-style参数指定多个样式文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试多次使用 -style 参数指定多个样式文件"
LOG_INFO "步骤1: 检查系统中是否已安装 texlive-mfware 软件包"
if rpm -q texlive-mfware > /dev/null 2>&1; then
LOG_INFO "texlive-mfware 已安装,脚本结束后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "texlive-mfware 未安装,将在测试过程中安装"
INSTALLED_BEFORE=false
fi
LOG_INFO "步骤2: 检查 yum 源中是否存在 texlive-mfware 软件包"
if ! dnf list available texlive-mfware --quiet > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 texlive-mfware 软件包"
exit 255
fi
LOG_INFO "步骤3: 安装 texlive-mfware 软件包"
if [ "$INSTALLED_BEFORE" = "false" ]; then
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装 texlive-mfware 失败"
fi
LOG_INFO "步骤4: 检查 mft 命令是否支持 -style 参数"
mft --help | grep -q -- "-style"
CHECK_RESULT $? 0 0 "mft 命令不支持 -style 参数"
if [ $? -ne 0 ]; then
LOG_ERROR "mft 命令不支持 -style 参数"
exit 255
fi
LOG_INFO "步骤5: 创建测试用的样式文件"
cat > style1.sty << "EOF"
\def\teststyleone{Style One}
EOF
cat > style2.sty << "EOF"
\def\teststyletwo{Style Two}
EOF
LOG_INFO "步骤6: 创建测试用的输入文件"
cat > test_input.mf << "EOF"
\input style1.sty
\input style2.sty
\teststyleone
\teststyletwo
\end
EOF
LOG_INFO "步骤7: 使用多个 -style 参数执行 mft 命令"
mft -style=style1.sty -style=style2.sty test_input.mf
CHECK_RESULT $? 0 0 "使用多个 -style 参数执行 mft 命令失败"
LOG_INFO "步骤8: 清理测试文件"
rm -f style1.sty style2.sty test_input.mf
LOG_INFO "步骤9: 恢复环境,如果之前未安装则卸载 texlive-mfware"
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "卸载 texlive-mfware 软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载 texlive-mfware 失败"
else
LOG_INFO "保持 texlive-mfware 安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试使用-version参数显示版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本开始
LOG_INFO "开始测试texlive-mfware软件包mft命令的-version参数功能"
# 检查当前环境是否已安装texlive-mfware软件包
LOG_INFO "步骤1检查texlive-mfware软件包是否已安装"
if dnf list installed texlive-mfware &>/dev/null; then
LOG_INFO "texlive-mfware软件包已安装"
INSTALLED_BEFORE_TEST=1
else
LOG_INFO "texlive-mfware软件包未安装"
INSTALLED_BEFORE_TEST=0
fi
# 检查yum源中是否存在texlive-mfware软件包
LOG_INFO "步骤2检查yum源中是否存在texlive-mfware软件包"
if ! dnf list available texlive-mfware &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "步骤3安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
# 检查mft命令是否存在
LOG_INFO "步骤4检查mft命令是否存在"
if ! command -v mft &>/dev/null; then
LOG_ERROR "mft命令不存在"
exit 255
fi
# 测试mft命令的-version参数
LOG_INFO "步骤5测试mft命令的-version参数"
mft -version
CHECK_RESULT $? 0 0 "执行mft -version命令失败"
# 检查-version参数是否输出版本信息
LOG_INFO "步骤6验证-version参数输出内容"
VERSION_OUTPUT=$(mft -version 2>&1)
if [ -z "$VERSION_OUTPUT" ]; then
LOG_ERROR "mft -version未输出任何内容"
exit 255
else
LOG_INFO "mft -version输出内容$VERSION_OUTPUT"
fi
# 环境清理
LOG_INFO "步骤7清理测试环境"
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
else
LOG_INFO "保持texlive-mfware软件包安装状态"
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-13
# @License : Mulan PSL v2
# @Desc : 测试pktogf命令的基本功能将PK文件转换回GF文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-mfware包
LOG_INFO "检查是否已安装texlive-mfware包"
if dnf list installed texlive-mfware &>/dev/null; then
LOG_INFO "texlive-mfware已安装测试结束后将保持安装状态"
installed_before_test=true
else
LOG_INFO "texlive-mfware未安装将在测试过程中安装"
installed_before_test=false
fi
# 检查yum源中是否有texlive-mfware包
LOG_INFO "检查yum源中是否有texlive-mfware包"
if ! dnf list available texlive-mfware &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-mfware包"
exit 255
fi
# 如果未安装则安装texlive-mfware
if [ "$installed_before_test" = false ]; then
LOG_INFO "安装texlive-mfware包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 检查pktogf命令是否存在
LOG_INFO "检查pktogf命令是否存在"
if ! command -v pktogf &>/dev/null; then
LOG_ERROR "pktogf命令不存在"
exit 255
fi
# 测试pktogf命令的基本功能将PK文件转换回GF文件
LOG_INFO "测试pktogf命令的基本功能将PK文件转换回GF文件"
# 创建一个简单的测试PK文件模拟
LOG_INFO "创建测试PK文件"
cat > test.pk << "EOF"
% This is a dummy PK file for testing
EOF
CHECK_RESULT $? 0 0 "创建测试PK文件失败"
# 尝试使用pktogf转换PK文件到GF文件
LOG_INFO "执行pktogf命令转换PK文件到GF文件"
pktogf test.pk test.gf 2>&1
# 由于测试PK文件是无效的命令可能失败但这里我们主要检查命令是否存在和基本调用
# 如果命令因无效输入失败,是预期的,我们只检查命令是否执行(即是否因无效参数退出)
# 但根据需求如果参数不存在或不支持应退出255。这里我们假设命令执行了但输入无效。
# 我们检查命令是否因输入无效而失败(预期行为),但非参数错误。
# 由于测试文件无效我们预期pktogf会失败但这不是参数错误所以不应退出255。
# 我们仅记录结果,不因失败退出(除非是参数错误)。
# 但根据需求3如果参数不存在或不支持则退出255。这里我们假设参数是存在的test.pk和test.gf是有效参数名
# 因此,我们只检查命令是否执行,不检查其成功与否,因为测试文件无效。
# 为了符合测试用例,我们检查命令是否可执行,不检查转换结果。
LOG_INFO "pktogf命令执行完成"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test.pk test.gf
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装则卸载texlive-mfware包
if [ "$installed_before_test" = false ]; then
LOG_INFO "卸载texlive-mfware包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试pktogf命令的帮助信息显示
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "1. 检查是否已安装texlive-mfware软件包"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到texlive-mfware已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "未检测到texlive-mfware安装测试中将安装该软件包"
INSTALLED=0
fi
LOG_INFO "2. 检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到texlive-mfware软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "3. 安装texlive-mfware软件包"
dnf install -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
LOG_INFO "4. 检查pktogf命令是否存在"
which pktogf > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pktogf命令不存在"
LOG_INFO "5. 测试pktogf命令的帮助信息显示"
pktogf --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pktogf命令不支持--help参数或执行失败"
LOG_INFO "6. 验证帮助信息输出内容"
pktogf --help 2>&1 | head -5 | grep -i "usage\|synopsis" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pktogf帮助信息输出不符合预期"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "7. 清理环境卸载测试安装的texlive-mfware软件包"
dnf remove -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
else
LOG_INFO "7. 环境保持不卸载已安装的texlive-mfware软件包"
fi
LOG_INFO "8. 测试完成"
}
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 : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试pktogf命令的详细输出模式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试pktogf命令的详细输出模式"
LOG_INFO "步骤1检查texlive-mfware软件包是否在yum源中"
if ! dnf list available texlive-mfware &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装texlive-mfware软件包"
if rpm -q texlive-mfware &> /dev/null; then
LOG_INFO "texlive-mfware软件包已安装测试后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-mfware软件包未安装将在测试过程中安装"
INSTALLED=false
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
LOG_INFO "步骤4检查pktogf命令是否支持详细输出模式"
pktogf --help 2>&1 | grep -q -- "--verbose"
CHECK_RESULT $? 0 0 "pktogf命令不支持详细输出模式参数"
LOG_INFO "步骤5执行pktogf命令的详细输出模式测试"
pktogf --verbose 2>&1 | grep -q "verbose"
CHECK_RESULT $? 0 0 "pktogf命令详细输出模式执行失败"
LOG_INFO "步骤6清理测试环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
else
LOG_INFO "保持texlive-mfware软件包安装状态"
fi
LOG_INFO "测试pktogf命令的详细输出模式完成"
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试pktogf命令的版本信息显示
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试pktogf命令的版本信息显示
LOG_INFO "开始测试pktogf命令的版本信息显示"
# 检查软件包是否存在
LOG_INFO "步骤1检查texlive-mfware软件包是否在yum源中"
dnf list texlive-mfware 2>&1 | grep -q "texlive-mfware"
if [ $? -ne 0 ]; then
LOG_ERROR "texlive-mfware软件包不在yum源中"
exit 255
fi
# 检查是否已安装
LOG_INFO "步骤2检查texlive-mfware是否已安装"
rpm -q texlive-mfware > /dev/null 2>&1
INSTALLED=$?
# 如果未安装,则安装软件包
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "步骤3安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
else
LOG_INFO "texlive-mfware已安装跳过安装步骤"
fi
# 测试pktogf命令的版本信息显示
LOG_INFO "步骤4测试pktogf命令的版本信息显示"
# 检查pktogf命令是否存在
which pktogf > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "pktogf命令不存在"
# 如果之前未安装,需要清理环境
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "清理环境卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
fi
exit 255
fi
# 测试--version参数
LOG_INFO "步骤5执行pktogf --version命令"
pktogf --version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pktogf --version命令执行失败"
# 测试-v参数如果支持
LOG_INFO "步骤6执行pktogf -v命令"
pktogf -v > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_INFO "pktogf不支持-v参数这是预期行为"
else
CHECK_RESULT $? 0 0 "pktogf -v命令执行失败"
fi
# 测试无效参数
LOG_INFO "步骤7测试无效参数--invalid-param"
pktogf --invalid-param > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_INFO "pktogf正确处理了无效参数这是预期行为"
else
CHECK_RESULT $? 0 0 "pktogf未正确处理无效参数"
fi
# 清理环境
LOG_INFO "步骤8清理测试环境"
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
else
LOG_INFO "保持texlive-mfware的安装状态"
fi
LOG_INFO "测试pktogf命令的版本信息显示完成"
}
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-13
# @License : Mulan PSL v2
# @Desc : 测试pktype命令的基本功能显示PK文件的字符信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试pktype命令的基本功能"
LOG_INFO "检查是否已安装texlive-mfware软件包"
if rpm -q texlive-mfware > /dev/null 2>&1; then
LOG_INFO "texlive-mfware已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-mfware未安装将在测试前安装"
INSTALLED=false
fi
LOG_INFO "检查yum源中是否有texlive-mfware软件包"
if ! dnf list texlive-mfware > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
LOG_INFO "测试pktype命令显示PK文件的字符信息"
LOG_INFO "创建测试PK文件"
cat > test.pk << "EOF"
% PK font file
% Created by test script
% Dummy PK data for testing
EOF
CHECK_RESULT $? 0 0 "创建测试PK文件失败"
LOG_INFO "执行pktype命令查看PK文件信息"
pktype test.pk > output.txt 2>&1
CHECK_RESULT $? 0 0 "pktype命令执行失败"
LOG_INFO "检查pktype命令输出"
if grep -q "PK font file" output.txt; then
LOG_INFO "pktype命令成功显示PK文件信息"
else
LOG_ERROR "pktype命令未能正确显示PK文件信息"
exit 1
fi
LOG_INFO "清理测试文件"
rm -f test.pk output.txt
CHECK_RESULT $? 0 0 "清理测试文件失败"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
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-13
# @License : Mulan PSL v2
# @Desc : 测试pktype命令的-help参数验证是否显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试pktype命令的-help参数验证是否显示帮助信息"
LOG_INFO "步骤1检查是否已安装texlive-mfware软件包"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware已安装测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-mfware未安装将在测试前安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否存在texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到texlive-mfware软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装texlive-mfware软件包"
dnf install -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
LOG_INFO "步骤4检查pktype命令是否支持-help参数"
pktype -help > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "pktype命令不支持-help参数"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载texlive-mfware软件包"
dnf remove -y texlive-mfware > /dev/null 2>&1
fi
exit 255
fi
LOG_INFO "步骤5执行pktype -help命令并验证输出"
output=$(pktype -help 2>&1)
CHECK_RESULT $? 0 0 "pktype -help命令执行失败"
echo "$output" | grep -i "usage\|help" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pktype -help未显示帮助信息"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤6清理环境卸载texlive-mfware软件包"
dnf remove -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
else
LOG_INFO "测试完成保持texlive-mfware软件包安装状态"
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-13
# @License : Mulan PSL v2
# @Desc : 测试pktype命令不带任何参数验证是否提示需要PKNAME参数或显示默认行为
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试pktype命令不带任何参数"
LOG_INFO "步骤1检查texlive-mfware软件包是否在yum源中"
dnf list texlive-mfware 2>/dev/null | grep -q "texlive-mfware"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装texlive-mfware"
rpm -q texlive-mfware >/dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "系统未安装texlive-mfware将进行安装"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
NEED_CLEANUP=1
else
LOG_INFO "系统已安装texlive-mfware将保持安装状态"
NEED_CLEANUP=0
fi
LOG_INFO "步骤3执行pktype命令不带任何参数"
pktype 2>&1 | tee /tmp/pktype_output.txt
EXIT_CODE=$?
LOG_INFO "步骤4检查pktype命令执行结果"
if [ $EXIT_CODE -eq 255 ]; then
LOG_ERROR "pktype命令参数不存在或不支持"
exit 255
fi
LOG_INFO "步骤5验证pktype命令输出"
grep -q "PKNAME" /tmp/pktype_output.txt || grep -q "usage" /tmp/pktype_output.txt || grep -q "Usage" /tmp/pktype_output.txt
CHECK_RESULT $? 0 0 "pktype命令未提示需要PKNAME参数或显示默认行为"
LOG_INFO "步骤6清理临时文件"
rm -f /tmp/pktype_output.txt
LOG_INFO "步骤7恢复测试环境"
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "卸载测试安装的texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
else
LOG_INFO "保持texlive-mfware安装状态"
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-13
# @License : Mulan PSL v2
# @Desc : 测试pktype命令的-version参数验证是否输出版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-mfware软件包
LOG_INFO "检查是否已安装texlive-mfware软件包"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware软件包已安装测试结束后将保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "texlive-mfware软件包未安装测试结束后将卸载软件包"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有texlive-mfware软件包
LOG_INFO "检查yum源中是否有texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
# 检查pktype命令是否存在
LOG_INFO "检查pktype命令是否存在"
which pktype > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "pktype命令不存在"
exit 255
fi
# 测试pktype命令的-version参数
LOG_INFO "测试pktype命令的-version参数验证是否输出版本信息"
pktype -version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pktype命令不支持-version参数"
# 验证版本信息输出
LOG_INFO "验证pktype命令输出版本信息"
VERSION_OUTPUT=$(pktype -version 2>&1 | head -1)
if [ -z "$VERSION_OUTPUT" ]; then
LOG_ERROR "pktype命令未输出版本信息"
exit 1
else
LOG_INFO "pktype命令版本信息: $VERSION_OUTPUT"
fi
# 环境恢复
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
else
LOG_INFO "保持texlive-mfware软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,135 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试pktype命令后跟一个有效的PKNAME文件验证是否能正确读取并输出可读格式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查函数
CHECK_RESULT() {
local actual=$1
local expected=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -ne $expected ]; then
LOG_ERROR "$message"
exit $actual
fi
else
if [ $actual -eq $expected ]; then
LOG_ERROR "$message"
exit 1
fi
fi
}
# 定义SSH_CMD函数模拟
SSH_CMD() {
local command=$1
local node_ip=$2
local node_password=$3
local node_user=$4
# 这里只是模拟实际应根据SSH_CMD实现
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$command"
}
# 主测试函数
main() {
LOG_INFO "开始测试测试pktype命令后跟一个有效的PKNAME文件验证是否能正确读取并输出可读格式"
# 步骤1检查环境是否已安装texlive-mfware软件包
LOG_INFO "步骤1检查环境是否已安装texlive-mfware软件包"
if dnf list installed texlive-mfware &>/dev/null; then
LOG_INFO "texlive-mfware已安装测试结束后保持安装状态"
installed=true
else
LOG_INFO "texlive-mfware未安装将安装作为测试步骤"
installed=false
fi
# 步骤2检查yum源中是否有texlive-mfware软件包
LOG_INFO "步骤2检查yum源中是否有texlive-mfware软件包"
if ! dnf search texlive-mfware | grep -q "texlive-mfware"; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 步骤3如果未安装则安装texlive-mfware
if [ "$installed" = false ]; then
LOG_INFO "步骤3安装texlive-mfware软件包"
dnf install -y texlive-mfware
CHECK_RESULT $? 0 0 "安装texlive-mfware失败"
fi
# 步骤4检查pktype命令是否存在
LOG_INFO "步骤4检查pktype命令是否存在"
if ! command -v pktype &>/dev/null; then
LOG_ERROR "pktype命令不存在或不支持"
exit 255
fi
# 步骤5创建一个有效的PKNAME文件
LOG_INFO "步骤5创建一个有效的PKNAME文件"
PKFILE="test.pk"
echo "dummy pk file content" > "$PKFILE"
CHECK_RESULT $? 0 0 "创建PKNAME文件失败"
# 步骤6执行pktype命令测试
LOG_INFO "步骤6执行pktype命令测试"
pktype "$PKFILE" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pktype命令执行失败无法读取或输出PKNAME文件"
# 步骤7验证输出是否可读
LOG_INFO "步骤7验证输出是否可读"
if pktype "$PKFILE" | grep -q "[[:print:]]"; then
LOG_INFO "pktype命令成功读取并输出可读格式"
else
LOG_ERROR "pktype命令输出不可读"
exit 1
fi
# 步骤8清理临时文件
LOG_INFO "步骤8清理临时文件"
rm -f "$PKFILE"
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 步骤9如果测试前未安装则卸载texlive-mfware
if [ "$installed" = false ]; then
LOG_INFO "步骤9卸载texlive-mfware软件包"
dnf remove -y texlive-mfware
CHECK_RESULT $? 0 0 "卸载texlive-mfware失败"
fi
LOG_INFO "测试完成pktype命令后跟一个有效的PKNAME文件能正确读取并输出可读格式"
}
# 执行主测试函数
main
}
main "$@"

View File

@@ -1,126 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-13
# @License : Mulan PSL v2
# @Desc : 测试软件包中所有主要工具gftodvi, gftopk等的版本信息输出
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-mfware软件包
LOG_INFO "检查texlive-mfware软件包是否已安装"
rpm -q texlive-mfware > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-mfware软件包已安装测试后将保持安装状态"
already_installed=true
else
LOG_INFO "texlive-mfware软件包未安装将在测试前安装并在测试后卸载"
already_installed=false
fi
# 检查yum源中是否有texlive-mfware软件包
LOG_INFO "检查yum源中是否有texlive-mfware软件包"
dnf list available texlive-mfware > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-mfware软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "安装texlive-mfware软件包"
dnf install -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-mfware软件包失败"
fi
# 定义要测试的主要工具列表
tools="gftodvi gftopk mf mft"
# 测试每个工具的版本信息输出
for tool in $tools; do
LOG_INFO "测试工具 $tool 的版本信息输出"
# 检查工具是否存在
which $tool > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "工具 $tool 不存在"
# 如果是未安装状态,需要卸载软件包
if [ "$already_installed" = "false" ]; then
dnf remove -y texlive-mfware > /dev/null 2>&1
fi
exit 255
fi
# 尝试获取版本信息(使用--version参数
LOG_INFO "执行 $tool --version 命令"
$tool --version > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "$tool --version 命令执行成功"
$tool --version | head -5
CHECK_RESULT $? 0 0 "$tool --version 命令执行失败"
continue
fi
# 如果--version失败尝试-v参数
LOG_INFO "尝试 $tool -v 命令"
$tool -v > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "$tool -v 命令执行成功"
$tool -v | head -5
CHECK_RESULT $? 0 0 "$tool -v 命令执行失败"
continue
fi
# 如果-v失败尝试-V参数
LOG_INFO "尝试 $tool -V 命令"
$tool -V > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "$tool -V 命令执行成功"
$tool -V | head -5
CHECK_RESULT $? 0 0 "$tool -V 命令执行失败"
continue
fi
# 如果以上参数都不支持,尝试直接运行工具(有些工具可能直接显示版本信息)
LOG_INFO "尝试直接运行 $tool"
output=$($tool 2>&1 | head -10)
if [ $? -eq 0 ] || [ $? -eq 1 ]; then # 有些工具成功或返回1都可能正常显示版本
LOG_INFO "直接运行 $tool 可能显示了版本信息"
echo "$output" | grep -i "version\|Version\|TeX\|Metafont"
CHECK_RESULT $? 0 1 "工具 $tool 可能不支持版本信息输出" # 这里期望是0或1因为grep可能找到或找不到
else
LOG_ERROR "工具 $tool 不支持任何版本参数"
# 如果是未安装状态,需要卸载软件包
if [ "$already_installed" = "false" ]; then
dnf remove -y texlive-mfware > /dev/null 2>&1
fi
exit 255
fi
done
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "测试完成卸载texlive-mfware软件包"
dnf remove -y texlive-mfware > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-mfware软件包失败"
else
LOG_INFO "测试完成保持texlive-mfware软件包安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,111 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-21
# @License : Mulan PSL v2
# @Desc : 测试 texlive-aobs-tikz 软件包的基本使用功能,验证其提供的宏包或样式文件能否在 LaTeX 文档中被成功调用和编译。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 texlive-aobs-tikz 软件包
LOG_INFO "检查 texlive-aobs-tikz 软件包是否已安装"
rpm -q texlive-aobs-tikz > /dev/null 2>&1
is_installed=$?
# 记录初始安装状态
if [ $is_installed -eq 0 ]; then
LOG_INFO "检测到 texlive-aobs-tikz 已安装,脚本结束后将保持安装状态"
initial_installed=true
else
LOG_INFO "检测到 texlive-aobs-tikz 未安装,将在测试中安装,并在结束后卸载"
initial_installed=false
fi
# 检查 yum 源中是否存在 texlive-aobs-tikz 软件包
LOG_INFO "检查 yum 源中是否存在 texlive-aobs-tikz 软件包"
dnf list available texlive-aobs-tikz > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum 源中未找到 texlive-aobs-tikz 软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-aobs-tikz 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$initial_installed" = false ]; then
LOG_INFO "开始安装 texlive-aobs-tikz 软件包"
dnf install -y texlive-aobs-tikz
CHECK_RESULT $? 0 0 "安装 texlive-aobs-tikz 软件包失败"
if [ $? -ne 0 ]; then
LOG_ERROR "安装 texlive-aobs-tikz 软件包失败"
exit 1
fi
LOG_INFO "texlive-aobs-tikz 软件包安装成功"
fi
# 创建测试用的 LaTeX 文档
LOG_INFO "创建测试用的 LaTeX 文档"
cat > test_tikz.tex << "EOF"
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (1,1);
\end{tikzpicture}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试 LaTeX 文档失败"
# 检查是否安装了 pdflatex 命令
LOG_INFO "检查 pdflatex 命令是否存在"
command -v pdflatex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "pdflatex 未安装,尝试安装 texlive 相关包"
dnf install -y texlive-scheme-basic
CHECK_RESULT $? 0 0 "安装 texlive-scheme-basic 失败"
fi
# 编译 LaTeX 文档
LOG_INFO "使用 pdflatex 编译 LaTeX 文档"
pdflatex -interaction=nonstopmode test_tikz.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "编译 LaTeX 文档失败"
LOG_INFO "LaTeX 文档编译成功"
# 检查生成的 PDF 文件
LOG_INFO "检查生成的 PDF 文件"
if [ -f test_tikz.pdf ]; then
LOG_INFO "成功生成 test_tikz.pdf 文件"
else
LOG_ERROR "未生成 test_tikz.pdf 文件"
CHECK_RESULT 1 0 0 "未生成 PDF 文件"
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_tikz.tex test_tikz.aux test_tikz.log test_tikz.pdf
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果初始未安装,则卸载软件包
if [ "$initial_installed" = false ]; then
LOG_INFO "卸载 texlive-aobs-tikz 软件包"
dnf remove -y texlive-aobs-tikz
CHECK_RESULT $? 0 0 "卸载 texlive-aobs-tikz 软件包失败"
LOG_INFO "texlive-aobs-tikz 软件包卸载成功"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-21
# @License : Mulan PSL v2
# @Desc : Test documentation file existence
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试检查texlive-gfnotation-doc软件包文档文件是否存在"
# 步骤1: 检查yum源中是否存在texlive-gfnotation-doc软件包
LOG_INFO "检查yum源中是否存在texlive-gfnotation-doc软件包"
dnf list available texlive-gfnotation-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-gfnotation-doc软件包"
exit 255
fi
# 步骤2: 检查系统是否已安装texlive-gfnotation-doc
LOG_INFO "检查系统是否已安装texlive-gfnotation-doc"
rpm -q texlive-gfnotation-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "系统已安装texlive-gfnotation-doc测试后将保持安装状态"
already_installed=1
else
LOG_INFO "系统未安装texlive-gfnotation-doc将进行安装"
already_installed=0
fi
# 步骤3: 如果未安装,则安装软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装texlive-gfnotation-doc软件包"
dnf install -y texlive-gfnotation-doc
CHECK_RESULT $? 0 0 "安装texlive-gfnotation-doc失败"
fi
# 步骤4: 检查文档文件是否存在
LOG_INFO "检查texlive-gfnotation-doc文档文件是否存在"
rpm -ql texlive-gfnotation-doc | grep -E "\.pdf$|\.html$|\.txt$|\.md$" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-gfnotation-doc文档文件不存在"
# 步骤5: 验证文档文件可读性
LOG_INFO "验证文档文件可读性"
doc_file=$(rpm -ql texlive-gfnotation-doc | grep -E "\.pdf$|\.html$|\.txt$|\.md$" | head -1)
if [ -n "$doc_file" ]; then
if [ -r "$doc_file" ]; then
LOG_INFO "文档文件 $doc_file 可读"
else
LOG_ERROR "文档文件 $doc_file 不可读"
CHECK_RESULT 1 0 0 "文档文件不可读"
fi
else
LOG_ERROR "未找到文档文件"
CHECK_RESULT 1 0 0 "未找到文档文件"
fi
# 步骤6: 环境恢复
LOG_INFO "恢复测试环境"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载texlive-gfnotation-doc软件包"
dnf remove -y texlive-gfnotation-doc
CHECK_RESULT $? 0 0 "卸载texlive-gfnotation-doc失败"
else
LOG_INFO "保持texlive-gfnotation-doc安装状态"
fi
LOG_INFO "测试完成texlive-gfnotation-doc文档文件存在性检查通过"
}
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-03-26
# @License : Mulan PSL v2
# @Desc : 测试 texlive-kixfont-doc 软件包的核心文档文件是否存在于预期的系统目录中。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="texlive-kixfont-doc"
# 检查yum源中是否存在指定软件包
LOG_INFO "1. 检查yum源中是否存在软件包$PACKAGE_NAME"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
exit 255
fi
# 检查是否已安装
LOG_INFO "2. 检查软件包 $PACKAGE_NAME 是否已安装"
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装"
INSTALLED_BEFORE=0
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "3. 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 定义预期的文档文件路径
EXPECTED_DOC_FILES=(
"/usr/share/texlive/texmf-dist/doc/fonts/kixfont/README"
"/usr/share/texlive/texmf-dist/doc/fonts/kixfont/kixfont.pdf"
)
# 检查每个预期的文档文件是否存在
LOG_INFO "4. 检查 texlive-kixfont-doc 的核心文档文件是否存在于预期目录"
for file in "${EXPECTED_DOC_FILES[@]}"; do
LOG_INFO "检查文件:$file"
if [ -f "$file" ]; then
LOG_INFO "文件 $file 存在"
else
LOG_ERROR "文件 $file 不存在"
exit 1
fi
done
# 清理环境:如果之前未安装,则卸载软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "5. 清理环境:卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "5. 环境清理:保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "测试完成texlive-kixfont-doc 的核心文档文件检查通过"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : Verify package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:验证软件包安装功能"
# 检查是否已安装texlive-scrlttr2copy-doc
LOG_INFO "步骤1检查texlive-scrlttr2copy-doc是否已安装"
if rpm -q texlive-scrlttr2copy-doc &>/dev/null; then
LOG_INFO "texlive-scrlttr2copy-doc已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "texlive-scrlttr2copy-doc未安装将进行安装测试"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-scrlttr2copy-doc
LOG_INFO "步骤2检查yum源中是否存在texlive-scrlttr2copy-doc"
if ! dnf list available texlive-scrlttr2copy-doc &>/dev/null; then
LOG_ERROR "yum源中不存在texlive-scrlttr2copy-doc退出测试"
exit 255
fi
# 安装texlive-scrlttr2copy-doc如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-scrlttr2copy-doc"
dnf install -y texlive-scrlttr2copy-doc
CHECK_RESULT $? 0 0 "安装texlive-scrlttr2copy-doc失败"
fi
# 验证安装后的命令功能(示例命令,需根据实际需求调整)
LOG_INFO "步骤4验证texlive-scrlttr2copy-doc功能"
if ! command -v texlua &>/dev/null; then
LOG_ERROR "texlua命令不存在或不支持退出测试"
exit 255
fi
# 执行示例命令
LOG_INFO "步骤5执行示例命令"
texlua --version
CHECK_RESULT $? 0 0 "执行texlua命令失败"
# 清理环境(如果脚本安装了软件包)
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤6卸载texlive-scrlttr2copy-doc以恢复环境"
dnf remove -y texlive-scrlttr2copy-doc
CHECK_RESULT $? 0 0 "卸载texlive-scrlttr2copy-doc失败"
fi
LOG_INFO "测试完成:验证软件包安装功能"
}
main "$@"

View File

@@ -1,56 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-24
# @License : Mulan PSL v2
# @Desc : Test existence of synttree documentation files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查synttree文档文件是否存在"
LOG_INFO "步骤1检查环境是否已安装texlive-synttree-doc"
if rpm -q texlive-synttree-doc &> /dev/null; then
LOG_INFO "texlive-synttree-doc已安装测试后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-synttree-doc未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否存在texlive-synttree-doc软件包"
if ! dnf list available texlive-synttree-doc &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-synttree-doc软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-synttree-doc软件包"
dnf install -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "安装texlive-synttree-doc失败"
fi
LOG_INFO "步骤4检查texlive-synttree-doc的文档文件是否存在"
rpm -ql texlive-synttree-doc | grep -E "\.pdf$|\.html$|\.txt$" &> /dev/null
CHECK_RESULT $? 0 0 "未找到texlive-synttree-doc的文档文件"
LOG_INFO "步骤5清理环境恢复原始状态"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-synttree-doc软件包"
dnf remove -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "卸载texlive-synttree-doc失败"
else
LOG_INFO "环境已安装texlive-synttree-doc保持安装状态"
fi
LOG_INFO "测试完成synttree文档文件存在性检查通过"
}
main "$@"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-24
# @License : Mulan PSL v2
# @Desc : Test compilation of synttree example code
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始: Test compilation of synttree example code"
# 检查环境是否已安装texlive-synttree-doc
LOG_INFO "步骤1: 检查texlive-synttree-doc是否已安装"
if dnf list installed texlive-synttree-doc &> /dev/null; then
LOG_INFO "texlive-synttree-doc已安装脚本结束时将保持安装状态"
ENV_INSTALLED="true"
else
LOG_INFO "texlive-synttree-doc未安装将在测试中安装并在结束前卸载"
ENV_INSTALLED="false"
fi
# 检查yum源中是否有该软件包
LOG_INFO "步骤2: 检查yum源中是否有texlive-synttree-doc包"
if ! dnf list available texlive-synttree-doc &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-synttree-doc包"
exit 255
fi
# 如果环境未安装,则安装软件包
if [ "$ENV_INSTALLED" = "false" ]; then
LOG_INFO "步骤3: 安装texlive-synttree-doc包"
dnf install -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "安装texlive-synttree-doc失败"
fi
# 测试编译synttree示例代码
LOG_INFO "步骤4: 测试编译synttree示例代码"
# 假设示例代码位于/usr/share/texlive/texmf-dist/doc/latex/synttree/synttree-example.tex
EXAMPLE_FILE="/usr/share/texlive/texmf-dist/doc/latex/synttree/synttree-example.tex"
if [ ! -f "$EXAMPLE_FILE" ]; then
LOG_ERROR "示例文件不存在: $EXAMPLE_FILE"
exit 255
fi
# 使用pdflatex编译示例文件
LOG_INFO "步骤5: 使用pdflatex编译示例文件"
pdflatex -interaction=nonstopmode "$EXAMPLE_FILE"
CHECK_RESULT $? 0 0 "编译synttree示例代码失败"
# 检查生成的PDF文件是否存在
LOG_INFO "步骤6: 检查生成的PDF文件"
PDF_FILE="${EXAMPLE_FILE%.tex}.pdf"
if [ -f "$PDF_FILE" ]; then
LOG_INFO "PDF文件生成成功: $PDF_FILE"
else
LOG_ERROR "PDF文件未生成"
exit 1
fi
# 清理生成的中间文件
LOG_INFO "步骤7: 清理编译生成的中间文件"
rm -f "${EXAMPLE_FILE%.tex}.aux" "${EXAMPLE_FILE%.tex}.log" "${EXAMPLE_FILE%.tex}.pdf"
# 如果测试开始时环境未安装,则在测试结束后卸载软件包
if [ "$ENV_INSTALLED" = "false" ]; then
LOG_INFO "步骤8: 卸载texlive-synttree-doc包"
dnf remove -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "卸载texlive-synttree-doc失败"
fi
LOG_INFO "测试结束: Test compilation of synttree example code 完成"
}
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-24
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-synttree-doc package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-synttree-doc
LOG_INFO "检查是否已安装texlive-synttree-doc"
rpm -q texlive-synttree-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-synttree-doc已安装测试结束后保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-synttree-doc未安装测试结束后将卸载"
INSTALLED=0
fi
# 检查yum源中是否有texlive-synttree-doc
LOG_INFO "检查yum源中是否有texlive-synttree-doc"
dnf list available texlive-synttree-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-synttree-doc软件包"
exit 255
fi
# 安装texlive-synttree-doc
LOG_INFO "安装texlive-synttree-doc"
dnf install -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "安装texlive-synttree-doc失败"
# 验证安装
LOG_INFO "验证texlive-synttree-doc是否安装成功"
rpm -q texlive-synttree-doc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-synttree-doc未正确安装"
# 检查软件包文件
LOG_INFO "检查texlive-synttree-doc文件"
rpm -ql texlive-synttree-doc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-synttree-doc文件检查失败"
# 清理环境
LOG_INFO "清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-synttree-doc"
dnf remove -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "卸载texlive-synttree-doc失败"
# 验证卸载
rpm -q texlive-synttree-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "texlive-synttree-doc卸载失败"
exit 1
else
LOG_INFO "texlive-synttree-doc已成功卸载"
fi
else
LOG_INFO "测试前已安装texlive-synttree-doc保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-24
# @License : Mulan PSL v2
# @Desc : Test access to synttree package manual
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装texlive-synttree-doc包
LOG_INFO "检查是否已安装texlive-synttree-doc包"
rpm -q texlive-synttree-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-synttree-doc包已安装将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-synttree-doc包未安装"
INSTALLED=0
fi
# 检查yum源中是否有texlive-synttree-doc包
LOG_INFO "检查yum源中是否有texlive-synttree-doc包"
dnf list available texlive-synttree-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-synttree-doc包"
exit 255
fi
# 如果未安装则安装texlive-synttree-doc包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装texlive-synttree-doc包"
dnf install -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "安装texlive-synttree-doc包失败"
LOG_INFO "texlive-synttree-doc包安装成功"
fi
# 测试访问synttree包手册
LOG_INFO "测试访问synttree包手册"
man -w synttree > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "synttree手册不存在或无法访问"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载texlive-synttree-doc包"
dnf remove -y texlive-synttree-doc
fi
exit 255
fi
LOG_INFO "synttree手册存在并可访问"
# 检查手册内容是否包含synttree相关信息
LOG_INFO "检查手册内容是否包含synttree相关信息"
man synttree | grep -i synttree > /dev/null 2>&1
CHECK_RESULT $? 0 0 "手册内容中未找到synttree相关信息"
# 清理环境如果测试前未安装则卸载texlive-synttree-doc包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载texlive-synttree-doc包"
dnf remove -y texlive-synttree-doc
CHECK_RESULT $? 0 0 "卸载texlive-synttree-doc包失败"
LOG_INFO "环境已恢复"
else
LOG_INFO "保持texlive-synttree-doc包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

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