Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": "验证软件包基本使用功能"
|
||||
|
||||
@@ -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文字。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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等)的版本信息输出"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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 软件包的依赖关系,验证其安装是否同时正确安装了所有必要的依赖包。"
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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 软件包的核心文档文件是否存在于预期的系统目录中。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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
Reference in New Issue
Block a user