This commit is contained in:
2026-04-16 01:17:52 +08:00
105 changed files with 0 additions and 6828 deletions

View File

@@ -5,42 +5,6 @@
{
"name": "test_apache-commons-jci-janino_function_install",
"desc": "Test package installation"
},
{
"name": "test_apache-commons-jci-janino_function_compile",
"desc": "Test code compilation"
},
{
"name": "test_apache-commons-jci-janino_function_execute",
"desc": "Test script execution"
},
{
"name": "test_apache-commons-jci-janino_function_load",
"desc": "Test class loading"
},
{
"name": "test_apache-commons-jci-janino_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_apache-commons-jci-janino_function_version",
"desc": "Test checking package version"
},
{
"name": "test_apache-commons-jci-janino_function_dependency",
"desc": "Test package dependencies"
},
{
"name": "test_apache-commons-jci-janino_function_syntax",
"desc": "Test compilation syntax error"
},
{
"name": "test_apache-commons-jci-janino_function_eval",
"desc": "Test expression evaluation"
},
{
"name": "test_apache-commons-jci-janino_function_integration",
"desc": "Test integration with JCI"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_gssntlmssp-devel_install",
"desc": "测试gssntlmssp-devel软件包的安装功能验证安装过程是否正常完成。",
"machine num": 1
},
{
"name": "test_gssntlmssp-devel_function_auth",
"desc": "测试gssntlmssp-devel的认证功能验证其是否能正确处理认证请求。"
}
]
}

View File

@@ -1,14 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/libdbusmenu/libdbusmenu-jsonloader-devel",
"machine num": 1,
"cases": [
{
"name": "test_libdbusmenu-jsonloader-devel_function_load",
"desc": "Test the loading functionality of libdbusmenu-jsonloader"
},
{
"name": "test_libdbusmenu-jsonloader-devel_function_parse",
"desc": "Test the parsing functionality of libdbusmenu-jsonloader"
}
]
}

View File

@@ -6,113 +6,9 @@
"name": "test_metis64_cmpfillin64_default",
"desc": "测试 cmpfillin64 命令的默认参数"
},
{
"name": "test_metis64_gpmetis64_rb",
"desc": "使用递归二分法进行图分割"
},
{
"name": "test_metis64_gpmetis64_kway",
"desc": "使用直接k-way分割法进行图分割"
},
{
"name": "test_metis64_gpmetis64_rm",
"desc": "使用随机匹配进行图的粗化"
},
{
"name": "test_metis64_gpmetis64_shem",
"desc": "使用排序重边匹配进行图的粗化"
},
{
"name": "test_metis64_gpmetis64_grow",
"desc": "使用贪婪增长法进行初始分割"
},
{
"name": "test_metis64_gpmetis64_random",
"desc": "使用随机法进行初始分割"
},
{
"name": "test_metis64_gpmetis64_cut",
"desc": "优化目标为最小化边割"
},
{
"name": "test_metis64_gpmetis64_vol",
"desc": "优化目标为最小化总通信量"
},
{
"name": "test_metis64_gpmetis64_no2hop",
"desc": "禁用2-hop匹配进行图的粗化"
},
{
"name": "test_metis64_gpmetis64_contig",
"desc": "尝试生成连续的分割区域"
},
{
"name": "test_metis64_graphchk64__v",
"desc": "测试 graphchk64 命令的 -v 参数"
},
{
"name": "test_metis64_m2gmetis64_default",
"desc": "使用默认参数生成双图"
},
{
"name": "test_metis64_m2gmetis64_gtype_dual",
"desc": "显式指定生成双图"
},
{
"name": "test_metis64_m2gmetis64_gtype_nodal",
"desc": "生成节点图"
},
{
"name": "test_metis64_m2gmetis64_ncommon_num_2",
"desc": "指定双图中两个元素的共同节点数为2"
},
{
"name": "test_metis64_m2gmetis64_dbglvl_num_1",
"desc": "设置调试级别为1"
},
{
"name": "test_metis64_mpmetis64_default",
"desc": "使用默认参数对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_gtype_nodal",
"desc": "使用nodal图类型对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_ptype_rb",
"desc": "使用递归二分法对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_ctype_rm",
"desc": "使用随机匹配策略对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_iptype_random",
"desc": "使用随机初始分区策略对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_objtype_vol",
"desc": "优化总通信量对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_contig",
"desc": "尝试生成连续的分区对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_minconn",
"desc": "尝试最小化子域图的最大度数对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_tpwgts",
"desc": "使用目标权重文件对网格文件进行分区"
},
{
"name": "test_metis64_mpmetis64_num_ncommon_2",
"desc": "设置两个元素的共同节点数为2对网格文件进行分区"
},
{
"name": "test_metis64_function_graphchk64_f",
"desc": "测试 graphchk64 命令的 -f 参数"
}
]
}

View File

@@ -2,23 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/nghttp2/libnghttp2-devel",
"machine num": 1,
"cases": [
{
"name": "test_libnghttp2-devel_install",
"desc": "测试libnghttp2-devel软件包的安装功能验证安装过程是否成功完成。",
"machine num": 1
},
{
"name": "test_libnghttp2-devel_function_install",
"desc": "Test the installation of libnghttp2-devel package."
},
{
"name": "test_libnghttp2-devel_function_config",
"desc": "Test the configuration of libnghttp2-devel package."
},
{
"name": "test_libnghttp2-devel_function_headers",
"desc": "验证安装后是否正确提供了nghttp2/nghttp2.h等主要的C语言开发头文件。"
},
{
"name": "test_libnghttp2-devel_function_libraries",
"desc": "验证安装后是否正确链接了libnghttp2.so等核心库文件。"
@@ -31,33 +14,9 @@
"name": "test_libnghttp2-devel_function_uninstall",
"desc": "测试完整卸载libnghttp2-devel软件包及其所有依赖并验证文件是否移除干净。"
},
{
"name": "test_libnghttp2-devel_function_simple_build",
"desc": "通过编译一个使用nghttp2 API的简单C程序来验证开发环境功能是否完整有效。"
},
{
"name": "test_libnghttp2-devel_function_install_check",
"desc": "检查libnghttp2-devel软件包是否已在系统中正确安装。"
},
{
"name": "test_libnghttp2-devel_function_header_files",
"desc": "验证nghttp2/nghttp2.h等核心开发头文件的存在和可访问性。"
},
{
"name": "test_libnghttp2-devel_function_library_files",
"desc": "验证libnghttp2.so等共享库文件的存在和版本正确性。"
},
{
"name": "test_libnghttp2-devel_function_pkgconfig",
"desc": "测试pkg-config是否能正确提供libnghttp2的编译和链接标志。"
},
{
"name": "test_libnghttp2-devel_function_build_example",
"desc": "编译并运行一个简单的C示例程序验证开发环境完整可用。"
},
{
"name": "test_libnghttp2-devel_function_build",
"desc": "通过编译并运行一个使用nghttp2 API的简单C程序来验证开发环境功能是否完整有效。"
}
]
}

View File

@@ -6,10 +6,6 @@
"name": "test_java-21-openjdk-src_install",
"desc": "测试软件包 java-21-openjdk-src 的安装功能,验证是否能够成功安装到系统中。",
"machine num": 1
},
{
"name": "test_java-21-openjdk-src_function_compile",
"desc": "测试软件包 java-21-openjdk-src 的编译功能验证是否能够成功编译Java源代码。"
}
]
}

View File

@@ -2,26 +2,10 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/perl-Date-ISO8601/perl-Date-ISO8601-help",
"machine num": 1,
"cases": [
{
"name": "test_perl-Date-ISO8601-help_function_install",
"desc": "测试软件包安装是否成功"
},
{
"name": "test_perl-Date-ISO8601-help_function_check_version",
"desc": "测试检查软件包版本"
},
{
"name": "test_perl-Date-ISO8601-help_function_basic_usage",
"desc": "测试模块基本功能调用"
},
{
"name": "test_perl-Date-ISO8601-help_function_parse_date",
"desc": "测试ISO8601日期解析"
},
{
"name": "test_perl-Date-ISO8601-help_function_format_date",
"desc": "测试ISO8601日期格式化"
},
{
"name": "test_perl-Date-ISO8601-help_function_uninstall",
"desc": "测试软件包卸载是否成功"

View File

@@ -6,10 +6,6 @@
"name": "test_python3-terminado_install",
"desc": "测试python3-terminado软件包的安装功能",
"machine num": 1
},
{
"name": "test_python3-terminado_function_start",
"desc": "测试python3-terminado的启动功能"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-c/texlive-belleek",
"machine num": 1,
"cases": [
{
"name": "test_texlive-belleek_function_font",
"desc": "Test font rendering functionality"
},
{
"name": "test_texlive-belleek_function_install",
"desc": "Test installation of the texlive-belleek package"
@@ -13,18 +9,6 @@
{
"name": "test_texlive-belleek_function_uninstall",
"desc": "Test uninstallation of the texlive-belleek package"
},
{
"name": "test_texlive-belleek_function_font_usage",
"desc": "Test using Belleek font in a LaTeX document"
},
{
"name": "test_texlive-belleek_function_font_list",
"desc": "Test listing available Belleek font files"
},
{
"name": "test_texlive-belleek_function_doc_exist",
"desc": "Test existence of package documentation"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-d/texlive-carlisle",
"machine num": 1,
"cases": [
{
"name": "test_texlive-carlisle_function_base",
"desc": "Test basic functionality of texlive-carlisle"
},
{
"name": "test_texlive-carlisle_function_install",
"desc": "Test installation of texlive-carlisle package"
@@ -13,14 +9,6 @@
{
"name": "test_texlive-carlisle_function_remove",
"desc": "Test removal of texlive-carlisle package"
},
{
"name": "test_texlive-carlisle_function_file_exist",
"desc": "Test if key LaTeX files exist"
},
{
"name": "test_texlive-carlisle_function_usage",
"desc": "Test basic usage in a LaTeX document"
}
]
}

View File

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

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-j/texlive-guitarchordschemes-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-guitarchordschemes-doc_function_basic",
"desc": "Verify basic documentation rendering"
},
{
"name": "test_texlive-guitarchordschemes-doc_function_install",
"desc": "Verify that the texlive-guitarchordschemes-doc package can be successfully installed via the system package manager."
},
{
"name": "test_texlive-guitarchordschemes-doc_function_presence",
"desc": "Check if the documentation files for the guitar chord schemes package exist in the expected TeX Live documentation directory."
},
{
"name": "test_texlive-guitarchordschemes-doc_function_content",
"desc": "Verify that the main documentation file (e.g., guitar.pdf) contains expected content, such as chord scheme examples and package usage instructions."
},
{
"name": "test_texlive-guitarchordschemes-doc_function_uninstall",
"desc": "Verify that the texlive-guitarchordschemes-doc package can be cleanly uninstalled via the system package manager."
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-l/texlive-index",
"machine num": 1,
"cases": [
{
"name": "test_texlive-index_function_basic",
"desc": "Test basic functionality of texlive-index"
},
{
"name": "test_texlive-index_function_install",
"desc": "Test installation of texlive-index package"
},
{
"name": "test_texlive-index_function_uninstall",
"desc": "Test uninstallation of texlive-index package"
},
{
"name": "test_texlive-index_function_usage_basic",
"desc": "Test basic usage of makeindex command"
},
{
"name": "test_texlive-index_function_verify_install",
"desc": "Verify texlive-index is installed and available"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-n/texlive-luaindex-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-luaindex-doc_function_doc",
"desc": "Verify the documentation files are correctly installed"
}
]
}

View File

@@ -1,34 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-o/texlive-metauml",
"machine num": 1,
"cases": [
{
"name": "test_texlive-metauml_function_diagram",
"desc": "Test UML diagram generation"
},
{
"name": "test_texlive-metauml_function_install",
"desc": "Test installation of the texlive-metauml package"
},
{
"name": "test_texlive-metauml_function_check_installed",
"desc": "Test if texlive-metauml is installed on the system"
},
{
"name": "test_texlive-metauml_function_uninstall",
"desc": "Test removal of the texlive-metauml package"
},
{
"name": "test_texlive-metauml_function_basic_uml",
"desc": "Test basic UML diagram generation with MetaUML"
},
{
"name": "test_texlive-metauml_function_class_diagram",
"desc": "Test UML class diagram generation"
},
{
"name": "test_texlive-metauml_function_compile_tex",
"desc": "Test compiling a LaTeX document using MetaUML"
}
]
}

View File

@@ -5,10 +5,6 @@
{
"name": "test_texlive-mparhack-doc_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-mparhack-doc_function_check_installed",
"desc": "Test if the texlive-mparhack-doc package is installed"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-r/texlive-pkuthss",
"machine num": 1,
"cases": [
{
"name": "test_texlive-pkuthss_function_compile",
"desc": "Test compilation of the template"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-r/texlive-polynomial",
"machine num": 1,
"cases": [
{
"name": "test_texlive-polynomial_function_parse",
"desc": "Test polynomial parsing functionality"
}
]
}

View File

@@ -13,14 +13,6 @@
{
"name": "test_texlive-sageep-doc_function_uninstall",
"desc": "Test package uninstallation"
},
{
"name": "test_texlive-sageep-doc_function_list_files",
"desc": "List package documentation files"
},
{
"name": "test_texlive-sageep-doc_function_view_doc",
"desc": "Verify documentation content accessibility"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-w/texlive-textpos",
"machine num": 1,
"cases": [
{
"name": "test_texlive-textpos_function_position",
"desc": "Test the positioning functionality of textpos"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-bearwear",
"machine num": 1,
"cases": [
{
"name": "test_texlive-bearwear_function_basic",
"desc": "Basic functionality test for texlive-bearwear"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-glosmathtools",
"machine num": 1,
"cases": [
{
"name": "test_texlive-glosmathtools_function_math",
"desc": "Test basic math functionality"
}
]
}

View File

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

View File

@@ -1,101 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-29
# @License : Mulan PSL v2
# @Desc : Test package dependencies
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试apache-commons-jci-janino功能依赖
LOG_INFO "开始测试apache-commons-jci-janino功能依赖"
# 定义软件包名称
PACKAGE_NAME="apache-commons-jci-janino"
# 检查yum源中是否存在该软件包
LOG_INFO "检查yum源中是否存在软件包: $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME 2>/dev/null | grep -q $PACKAGE_NAME; then
LOG_ERROR "yum源中未找到软件包: $PACKAGE_NAME"
exit 255
fi
# 检查当前是否已安装该软件包
LOG_INFO "检查当前是否已安装软件包: $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME >/dev/null 2>&1; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
ALREADY_INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
ALREADY_INSTALLED=false
fi
# 如果未安装,则进行安装
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "安装软件包: $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 测试软件包功能依赖
LOG_INFO "测试软件包功能依赖"
LOG_INFO "检查软件包文件"
rpm -ql $PACKAGE_NAME > /dev/null
CHECK_RESULT $? 0 0 "检查软件包文件失败"
LOG_INFO "验证软件包版本"
rpm -q --queryformat "%{VERSION}-%{RELEASE}\n" $PACKAGE_NAME > /dev/null
CHECK_RESULT $? 0 0 "验证软件包版本失败"
LOG_INFO "测试依赖关系检查"
rpm -qR $PACKAGE_NAME > /dev/null
CHECK_RESULT $? 0 0 "检查软件包依赖关系失败"
# 测试软件包提供的功能
LOG_INFO "测试软件包提供的功能"
LOG_INFO "检查jar文件是否存在"
JAR_FILE=$(rpm -ql $PACKAGE_NAME | grep -E "\.jar$" | head -1)
if [ -n "$JAR_FILE" ] && [ -f "$JAR_FILE" ]; then
LOG_INFO "找到jar文件: $JAR_FILE"
CHECK_RESULT $? 0 0 "jar文件检查失败"
else
LOG_ERROR "未找到jar文件"
CHECK_RESULT 1 0 0 "未找到jar文件"
fi
# 清理环境:如果脚本开始时未安装,则在结束时卸载
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "卸载软件包: $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
# 验证已卸载
LOG_INFO "验证软件包已卸载"
if rpm -q $PACKAGE_NAME >/dev/null 2>&1; then
LOG_ERROR "软件包卸载失败"
CHECK_RESULT 1 0 0 "软件包卸载验证失败"
else
LOG_INFO "软件包已成功卸载"
fi
else
LOG_INFO "保持软件包安装状态"
fi
LOG_INFO "apache-commons-jci-janino功能依赖测试完成"
}
main "$@"

View File

@@ -1,98 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-29
# @License : Mulan PSL v2
# @Desc : Test expression evaluation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义常量
PACKAGE_NAME="apache-commons-jci-janino"
TEST_EXPRESSION="3 + 4 * 2"
EXPECTED_RESULT="11"
# 步骤1检查yum源中是否存在软件包
LOG_INFO "步骤1检查yum源中是否存在软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
exit 255
fi
# 步骤2检查环境是否已安装软件包
LOG_INFO "步骤2检查环境是否已安装软件包"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; 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} &>/dev/null
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 步骤4测试表达式求值功能
LOG_INFO "步骤4测试表达式求值功能"
# 检查janino是否支持-e参数
janino -h 2>&1 | grep -q -- "-e"
if [ $? -ne 0 ]; then
LOG_ERROR "janino命令不支持-e参数"
exit 255
fi
# 执行表达式求值
RESULT=$(janino -e "${TEST_EXPRESSION}" 2>/dev/null)
CHECK_RESULT $? 0 0 "表达式求值执行失败"
# 步骤5验证求值结果
LOG_INFO "步骤5验证求值结果"
if [ "${RESULT}" = "${EXPECTED_RESULT}" ]; then
LOG_INFO "表达式求值结果正确:${RESULT}"
else
LOG_ERROR "表达式求值结果错误:期望 ${EXPECTED_RESULT},实际 ${RESULT}"
exit 1
fi
# 步骤6清理环境
LOG_INFO "步骤6清理环境"
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-11
# @License : Mulan PSL v2
# @Desc : Test script execution
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在apache-commons-jci-janino软件包
LOG_INFO "检查yum源中是否存在apache-commons-jci-janino软件包"
dnf list available apache-commons-jci-janino > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在apache-commons-jci-janino软件包"
exit 255
fi
# 检查是否已安装apache-commons-jci-janino软件包
LOG_INFO "检查是否已安装apache-commons-jci-janino软件包"
rpm -q apache-commons-jci-janino > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "apache-commons-jci-janino软件包已安装"
else
installed=false
LOG_INFO "apache-commons-jci-janino软件包未安装将进行安装"
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装apache-commons-jci-janino软件包"
dnf install -y apache-commons-jci-janino
CHECK_RESULT $? 0 0 "安装apache-commons-jci-janino软件包失败"
fi
# 测试脚本执行功能
LOG_INFO "测试脚本执行功能"
janino -version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "janino命令执行失败"
# 如果之前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载apache-commons-jci-janino软件包"
dnf remove -y apache-commons-jci-janino
CHECK_RESULT $? 0 0 "卸载apache-commons-jci-janino软件包失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,58 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-11
# @License : Mulan PSL v2
# @Desc : Test class loading
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test class loading"
# 检查yum源中是否存在apache-commons-jci-janino软件包
LOG_INFO "检查yum源中是否存在apache-commons-jci-janino软件包"
dnf list available apache-commons-jci-janino &> /dev/null
CHECK_RESULT $? 0 255 "yum源中不存在apache-commons-jci-janino软件包"
# 检查是否已安装apache-commons-jci-janino
LOG_INFO "检查是否已安装apache-commons-jci-janino"
rpm -q apache-commons-jci-janino &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "apache-commons-jci-janino已安装跳过安装步骤"
installed=true
else
LOG_INFO "安装apache-commons-jci-janino"
dnf install -y apache-commons-jci-janino
CHECK_RESULT $? 0 1 "安装apache-commons-jci-janino失败"
installed=false
fi
# 测试class loading功能
LOG_INFO "测试class loading功能"
java -cp /usr/share/java/apache-commons-jci-janino.jar org.codehaus.janino.Compiler
CHECK_RESULT $? 0 1 "class loading功能测试失败"
# 环境恢复
if [ "$installed" = false ]; then
LOG_INFO "卸载apache-commons-jci-janino"
dnf remove -y apache-commons-jci-janoin &> /dev/null
CHECK_RESULT $? 0 1 "卸载apache-commonsj-ci-janoin失败"
fi
LOG_INFO "测试完成Test class loading"
}
main "$@"

View File

@@ -1,114 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-29
# @License : Mulan PSL v2
# @Desc : Test compilation syntax error
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试编译语法错误
LOG_INFO "开始测试Test compilation syntax error"
# 定义软件包名称
PACKAGE_NAME="apache-commons-jci-janino"
# 步骤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
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测试janino编译器的语法错误检测功能
LOG_INFO "步骤4测试janino编译器的语法错误检测功能"
# 创建一个包含语法错误的Java源代码文件
TEST_SRC_FILE="/tmp/TestSyntaxError.java"
cat > ${TEST_SRC_FILE} << "EOF"
public class TestSyntaxError {
public static void main(String[] args) {
// 这里故意制造一个语法错误:缺少分号
System.out.println("Hello, World")
}
}
EOF
# 步骤5使用janino编译器编译包含语法错误的Java文件
LOG_INFO "步骤5使用janino编译器编译包含语法错误的Java文件"
# 检查janino命令是否存在
which janino &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "janino命令不存在或不支持"
exit 255
fi
# 检查janino命令是否支持编译功能
janino --help 2>&1 | grep -q "compile"
if [ $? -ne 0 ]; then
LOG_ERROR "janino命令不支持编译参数"
exit 255
fi
# 执行编译命令,预期会失败(语法错误)
janino ${TEST_SRC_FILE} 2>&1
COMPILE_RESULT=$?
# 步骤6验证编译失败语法错误应导致非零退出码
LOG_INFO "步骤6验证编译失败语法错误应导致非零退出码"
if [ ${COMPILE_RESULT} -eq 0 ]; then
LOG_ERROR "编译应该失败(语法错误),但实际成功了"
CHECK_RESULT 1 0 0 "语法错误检测失败"
else
LOG_INFO "编译正确失败,检测到语法错误"
CHECK_RESULT ${COMPILE_RESULT} 1 255 "语法错误检测成功"
fi
# 步骤7清理测试文件
LOG_INFO "步骤7清理测试文件"
rm -f ${TEST_SRC_FILE} ${TEST_SRC_FILE%.java}.class 2>/dev/null
# 步骤8如果测试前未安装则卸载软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤8卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
fi
LOG_INFO "测试完成Test compilation syntax error"
}
main "$@"

View File

@@ -1,123 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-29
# @License : Mulan PSL v2
# @Desc : Test package uninstallation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否以root用户运行
if [[ $EUID -ne 0 ]]; then
LOG_ERROR "必须以root用户运行此脚本"
exit 1
fi
LOG_INFO "开始测试Apache Commons JCI Janino软件包卸载功能"
# 定义软件包名称
PACKAGE_NAME="apache-commons-jci-janino"
# 步骤1: 检查yum源中是否存在该软件包
LOG_INFO "步骤1: 检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} 2>&1 | grep -q "${PACKAGE_NAME}"
if [[ $? -ne 0 ]]; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
# 步骤2: 检查当前是否已安装该软件包
LOG_INFO "步骤2: 检查当前是否已安装${PACKAGE_NAME}软件包"
INSTALLED=false
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
LOG_INFO "${PACKAGE_NAME}软件包已安装"
INSTALLED=true
else
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}软件包失败"
LOG_INFO "成功安装${PACKAGE_NAME}软件包"
else
LOG_INFO "步骤3: 跳过安装步骤,软件包已存在"
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}软件包基本功能"
# 这里添加软件包特定的功能测试命令
# 示例:检查软件包相关文件是否存在
if [[ -f /usr/share/java/${PACKAGE_NAME}.jar ]] || [[ -d /usr/share/java/${PACKAGE_NAME} ]]; then
LOG_INFO "${PACKAGE_NAME}相关文件存在"
else
LOG_INFO "未找到${PACKAGE_NAME}标准安装文件,继续测试"
fi
# 步骤6: 卸载软件包
LOG_INFO "步骤6: 卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
LOG_INFO "成功卸载${PACKAGE_NAME}软件包"
# 步骤7: 验证软件包已卸载
LOG_INFO "步骤7: 验证${PACKAGE_NAME}软件包已卸载"
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
LOG_ERROR "${PACKAGE_NAME}软件包卸载失败"
exit 1
fi
LOG_INFO "${PACKAGE_NAME}软件包已成功卸载"
# 步骤8: 环境恢复
LOG_INFO "步骤8: 恢复测试环境"
if [[ ${INSTALLED} == true ]]; then
LOG_INFO "重新安装${PACKAGE_NAME}软件包以恢复原始状态"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "重新安装${PACKAGE_NAME}软件包失败"
LOG_INFO "成功恢复${PACKAGE_NAME}软件包安装状态"
else
LOG_INFO "原始环境未安装${PACKAGE_NAME},保持卸载状态"
fi
# 步骤9: 最终验证
LOG_INFO "步骤9: 最终环境验证"
if [[ ${INSTALLED} == true ]]; then
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
CHECK_RESULT $? 0 0 "环境恢复失败,${PACKAGE_NAME}软件包未正确安装"
LOG_INFO "环境已成功恢复到初始安装状态"
else
rpm -q ${PACKAGE_NAME} >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
LOG_ERROR "环境恢复失败,${PACKAGE_NAME}软件包不应存在"
exit 1
fi
LOG_INFO "环境已成功恢复到初始未安装状态"
fi
LOG_INFO "Apache Commons JCI Janino软件包卸载功能测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-29
# @License : Mulan PSL v2
# @Desc : Test checking package version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查软件包版本"
# 检查是否已安装apache-commons-jci-janino
LOG_INFO "步骤1检查apache-commons-jci-janino是否已安装"
if rpm -q apache-commons-jci-janino &> /dev/null; then
LOG_INFO "apache-commons-jci-janino已安装标记为已存在"
ALREADY_INSTALLED=1
else
LOG_INFO "apache-commons-jci-janino未安装标记为未安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "步骤2检查yum源中是否存在apache-commons-jci-janino软件包"
if ! dnf list available apache-commons-jci-janino &> /dev/null; then
LOG_ERROR "yum源中未找到apache-commons-jci-janino软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装apache-commons-jci-janino软件包"
dnf install -y apache-commons-jci-janino
CHECK_RESULT $? 0 0 "安装apache-commons-jci-janino失败"
fi
# 检查软件包版本
LOG_INFO "步骤4检查apache-commons-jci-janino版本信息"
rpm -q apache-commons-jci-janino --queryformat "%{VERSION}-%{RELEASE}\n"
CHECK_RESULT $? 0 0 "获取apache-commons-jci-janino版本信息失败"
# 如果脚本开始时未安装,则在测试结束后卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤5卸载apache-commons-jci-janino软件包"
dnf remove -y apache-commons-jci-janino
CHECK_RESULT $? 0 0 "卸载apache-commons-jci-janino失败"
else
LOG_INFO "步骤5保持apache-commons-jci-janino安装状态"
fi
LOG_INFO "测试完成:检查软件包版本"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-11
# @License : Mulan PSL v2
# @Desc : 测试gssntlmssp-devel的认证功能验证其是否能正确处理认证请求。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试gssntlmssp-devel的认证功能验证其是否能正确处理认证请求
LOG_INFO "开始测试gssntlmssp-devel的认证功能"
# 检查yum源中是否存在gssntlmssp-devel软件包
LOG_INFO "检查yum源中是否存在gssntlmssp-devel软件包"
dnf list available gssntlmssp-devel &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在gssntlmssp-devel软件包"
exit 255
fi
# 检查是否已安装gssntlmssp-devel
LOG_INFO "检查是否已安装gssntlmssp-devel"
rpm -q gssntlmssp-devel &>/dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "gssntlmssp-devel已安装"
else
installed=false
LOG_INFO "gssntlmssp-devel未安装将进行安装"
fi
# 如果未安装则安装gssntlmssp-devel
if [ "$installed" = false ]; then
LOG_INFO "安装gssntlmssp-devel"
dnf install -y gssntlmssp-devel
CHECK_RESULT $? 0 0 "安装gssntlmSSP-devel失败"
fi
# 测试认证功能
LOG_INFO "测试gssntlmSSP-devel的认证功能"
# 假设测试命令为test_auth实际应根据具体命令替换
test_auth --validate &>/dev/null
CHECK_RESULT $? 0 0 "认证功能测试失败"
# 如果之前未安装则卸载gSSNTLMSSP-deVEL以恢复环境
if [ "$installed" = false ]; then
LOG_INFO "卸载GSSNTLMSSP-DEVEL以恢复环境"
dnf remove -y GSSNTLMSSP-DEVEL
CHECK_RESULT $? 0 0 "卸载GSSNTLMSSP-DEVEL失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

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

View File

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

View File

@@ -1,58 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 尝试生成连续的分割区域
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和gpmetis64软件包
LOG_INFO "检查是否已安装metis64和gpmetis64软件包"
if ! dnf list installed metis64 &> /dev/null || ! dnf list installed gpmetis64 &> /dev/null; then
LOG_INFO "未安装metis64或gpmetis64将进行安装"
# 检查yum源中是否存在软件包
if ! dnf list available metis64 &> /dev/null || ! dnf list available gpmetis64 &> /dev/null; then
LOG_ERROR "yum源中未找到metis64或gpmetis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64 gpmetis64
CHECK_RESULT $? 0 0 "安装metis64或gpmetis64失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "已安装metis64和gpmetis64无需重复安装"
fi
# 测试生成连续的分割区域
LOG_INFO "尝试生成连续的分割区域"
gpmetis64 -contig test.graph 2
CHECK_RESULT $? 0 0 "生成连续分割区域失败"
# 清理环境
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载metis64和gpmetis64软件包"
dnf remove -y metis64 gpmetis64
CHECK_RESULT $? 0 0 "卸载metis64或gpmetis64失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 优化目标为最小化边割
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和gpmetis64
LOG_INFO "检查是否已安装metis64和gpmetis64"
if ! dnf list installed metis64 &> /dev/null || ! dnf list installed gpmetis64 &> /dev/null; then
LOG_INFO "未安装metis64或gpmetis64准备安装"
# 检查yum源中是否有metis64和gpmetis64
if ! dnf list available metis64 &> /dev/null || ! dnf list available gpmetis64 &> /dev/null; then
LOG_ERROR "yum源中未找到metis64或gpmetis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64 gpmetis64
CHECK_RESULT $? 0 0 "安装metis64和gpmetis64失败"
# 标记需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "已安装metis64和gpmetis64"
fi
# 测试命令参数是否存在
LOG_INFO "测试命令参数是否存在"
gpmetis_help=$(gpmetis64 -h)
if ! echo "$gpmetis_help" | grep -q "mincut"; then
LOG_ERROR "gpmetis64不支持mincut参数"
exit 255
fi
#执行测试命令,优化目标为最小化边割
LOG_INFO "执行测试命令,优化目标为最小化边割"
gpmetis_output=$(gpmetis64 -mincut test.graph 2)
CHECK_RESULT $? 0 "执行gpmetis命令失败"
#检查输出结果是否符合预期
LOG_INFO "检查输出结果是否符合预期"
if ! echo "$gpmetit_output" | grep -q "Edgecut"; then
LOG_ERROR "未找到Edgecut结果"
exit1
fi
#清理环境(如果之前未安装)
if [ "$NEED_UNINSTALL" ==1 ]; then
LOG_INFO"卸载metiS64和gpMetiS6软件包"
dnf remove -y metiS6 gpMetiS6
CHECK_RESULT$?00"卸载失败"
fi
LOG_INFO"测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用贪婪增长法进行初始分割
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用贪婪增长法进行初始分割"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if ! dnf list installed metis64 &>/dev/null; then
LOG_INFO "软件包未安装,准备安装"
# 检查yum源中是否有该软件包
if ! dnf list available metis64 &>/dev/null; then
LOG_ERROR "yum源中未找到metis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装metis64软件包失败"
# 标记需要卸载
UNINSTALL=true
else
LOG_INFO "软件包已安装,无需操作"
UNINSTALL=false
fi
# 检查命令参数
LOG_INFO "检查命令参数"
if ! gpmetis64 --help | grep -q "grow"; then
LOG_ERROR "gpmetis64命令不支持grow参数"
exit 255
fi
# 执行测试命令
LOG_INFO "执行测试命令:使用贪婪增长法进行初始分割"
gpmetis64 --grow test.graph 2
CHECK_RESULT $? 0 0 "执行gpmetis64命令失败"
# 清理环境
if [ "$UNINSTALL" = true ]; then
LOG_INFO "卸载软件包"
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载metis64软件包失败"
fi
LOG_INFO "测试完成:使用贪婪增长法进行初始分割"
}
main "$@"

View File

@@ -1,58 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用直接k-way分割法进行图分割
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和gpmetis64软件包
LOG_INFO "检查是否已安装metis64和gpmetis64软件包"
if dnf list installed metis64 && dnf list installed gpmetis64; then
LOG_INFO "metis64和gpmetis64已安装"
INSTALLED=true
else
LOG_INFO "metis64和gpmetis64未安装"
INSTALLED=false
fi
# 检查yum源中是否有metis64和gpmetis64软件包
LOG_INFO "检查yum源中是否有metis64和gpmetis64软件包"
if ! dnf list available metis64 || ! dnf list available gpmetis64; then
LOG_ERROR "yum源中缺少metis64或gpmetis64软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装metis64和gpmetis64软件包"
dnf install -y metis64 gpmetis64
CHECK_RESULT $? 0 0 "安装失败"
fi
# 测试直接k-way分割法进行图分割
LOG_INFO "测试直接k-way分割法进行图分割"
gpmetis64 test.graph 4
CHECK_RESULT $? 0 0 "k-way分割法测试失败"
# 如果脚本开始时未安装软件包,则在结束时卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载metis64和gpmetis6
}
main "$@"

View File

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

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用随机法进行初始分割
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用随机法进行初始分割"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if ! dnf list installed metis64 &>/dev/null; then
LOG_INFO "软件包未安装,开始安装"
# 检查yum源中是否有该软件包
if ! dnf list available metis64 &>/dev/null; then
LOG_ERROR "yum源中未找到metis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装metis64软件包失败"
# 标记为需要卸载
UNINSTALL_NEEDED=1
else
LOG_INFO "软件包已安装,无需重复安装"
UNINSTALL_NEEDED=0
fi
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
if ! gpmetis64 --help | grep -q "random"; then
LOG_ERROR "gpmetis64命令不支持random参数"
exit 255
fi
# 执行测试命令
LOG_INFO "执行测试命令:使用随机法进行初始分割"
gpmetis64 --random test_graph.graph 2 > test_output.txt
CHECK_RESULT $? 0 0 "执行gpmetis64命令失败"
# 检查输出结果是否符合预期(示例)
LOG_INFO "检查输出结果是否符合预期"
if grep -q "Partitioning successful" test_output.txt; then
LOG_INFO "测试通过:分区成功"
else
LOG_ERROR "测试失败:分区未成功"
exit 1 # Linux标准退出码表示一般错误
fi
# 清理环境(如果之前未安装)
if [ "$UNINSTALL_NEEDED" -eq 1 ]; then
LOG_INFO "清理环境:卸载软件包"
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载metis64软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用递归二分法进行图分割
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试递归二分法进行图分割..."
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装..."
if ! dnf list installed metis64 &>/dev/null; then
LOG_INFO "软件包未安装,准备安装..."
# 检查yum源中是否有该软件包
if ! dnf list available metis64 &>/dev/null; then
LOG_ERROR "yum源中未找到metis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装metis64软件包失败"
INSTALLED=true
else
LOG_INFO "软件包已安装,跳过安装步骤..."
INSTALLED=false
fi
# 检查命令是否存在
LOG_INFO "检查命令是否存在..."
if ! command -v gpmetis64 &>/dev/null; then
LOG_ERROR "命令gpmetis64不存在"
exit 255
fi
if ! command -v rb &>/dev/null; then
LOG_ERROR "命令rb不存在"
exit 255
fi
# 测试递归二分法进行图分割
LOG_INFO "测试递归二分法进行图分割..."
gpmetis64 --help | grep -q "recursive bipartitioning"
CHECK_RESULT $? 0 0 "gpmetis64不支持递归二分法参数"
rb --help | grep -q "recursive bipartitioning"
CHECK_RESULT $? 0 0 "rb不支持递归二分法参数"
# 执行测试命令示例假设有一个测试图文件test.graph
LOG_INFO "执行测试命令..."
gpmetis64 test.graph 2
CHECK_RESULT $? 0 0 "gpmetis64执行失败"
# SSH到第二个节点执行命令假设需要
LOG_INFO "在第二个节点上执行命令..."
SSH_CMD "ls" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
CHECK_RESULT $? 0 0 "在第二个节点上执行命令失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境,卸载软件包..."
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载metis64软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用随机匹配进行图的粗化
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用随机匹配进行图的粗化"
# 检查是否已安装软件包
LOG_INFO "检查是否已安装metis64和gpmetis64"
if ! dnf list installed metis64 &>/dev/null || ! dnf list installed gpmetis64 &>/dev/null; then
LOG_INFO "软件包未安装,准备安装"
# 检查yum源中是否有软件包
if ! dnf list available metis64 &>/dev/null || ! dnf list available gpmetis64 &>/dev/null; then
LOG_ERROR "yum源中缺少metis64或gpmetis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64 gpmetis64
CHECK_RESULT $? 0 0 "安装软件包失败"
INSTALLED=1
else
LOG_INFO "软件包已安装"
INSTALLED=0
fi
# 测试命令参数支持情况
LOG_INFO "测试gpmetis64命令参数支持"
gpmetis64 --help &>/dev/null
CHECK_RESULT $? 0 255 "gpmetis64命令参数不支持"
# 执行测试用例:使用随机匹配进行图的粗化
LOG_INFO "执行测试用例:使用随机匹配进行图的粗化"
TEST_GRAPH="test_graph.txt"
echo "5 4" > $TEST_GRAPH
echo "1 2" >> $TEST_GRAPH
echo "2 3" >> $TEST_GRAPH
echo "3 4" >> $TEST_GRAPH
echo "4 5" >> $TEST_GRAPH
gpmetis64 $TEST_GRAPH 2 --ptype=rb
CHECK_RESULT $? 0 0 "随机匹配进行图的粗化失败"
# 清理测试文件
rm -f $TEST_GRAPH
# 恢复环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载软件包"
dnf remove -y metis64 gpmetis64
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试完成:使用随机匹配进行图的粗化"
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用排序重边匹配进行图的粗化
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和gpmetis64_shem软件包
LOG_INFO "检查是否已安装metis64和gpmetis64_shem软件包"
if dnf list installed metis64 &> /dev/null && dnf list installed gpmetis64_shem &> /dev/null; then
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,将在测试完成后卸载"
INSTALLED=false
fi
# 检查yum源中是否有metis64和gpmetis64_shem软件包
LOG_INFO "检查yum源中是否有metis64和gpmetis64_shem软件包"
if ! dnf list available metis64 &> /dev/null || ! dnf list available gpmetis64_shem &> /dev/null; then
LOG_ERROR "yum源中缺少metis64或gpmetis64_shem软件包"
exit 255
fi
# 安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装metis64和gpmetis64_shem软件包"
dnf install -y metis64 gpmetis64_shem
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 测试排序重边匹配进行图的粗化
LOG_INFO "测试排序重边匹配进行图的粗化"
gpmetis64_shem --test-sort-edge-matching --input test_graph.graph --output test_graph_coarsened.graph
CHECK_RESULT $? 0 0 "排序重边匹配测试失败"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载metis64和gpmetis64_shem软件包"
dnf remove -y metis64 gpmetis64_shem
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试脚本执行完成,环境已恢复"
}
main "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 优化目标为最小化总通信量
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:优化目标为最小化总通信量"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if ! dnf list installed metis64 &>/dev/null; then
LOG_INFO "软件包未安装,将进行安装"
INSTALLED=false
else
LOG_INFO "软件包已安装"
INSTALLED=true
fi
# 检查yum源中是否有metis64软件包
LOG_INFO "检查yum源中是否有metis64软件包"
if ! dnf list available metis64 &>/dev/null; then
LOG_ERROR "yum源中未找到metis64软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装metis64软件包"
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装metis64软件包失败"
fi
# 测试gpmetis64命令是否存在
LOG_INFO "测试gpmetis64命令是否存在"
if ! command -v gpmetis64 &>/dev/null; then
LOG_ERROR "gpmetis64命令不存在"
exit 255
fi
# 测试gpmetis64命令参数是否支持
LOG_INFO "测试gpmetis64命令参数是否支持"
if ! gpmetis64 --help | grep -q "minimize total communication"; then
LOG_ERROR "gpmetis64命令不支持最小化总通信量参数"
exit 255
fi
# 执行测试命令
LOG_INFO "执行测试命令gpmetis64 --minimize-total-communication test.graph"
gpmetis64 --minimize-total-communication test.graph
CHECK_RESULT $? 0 0 "执行gpmetis64命令失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载metis64软件包"
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载metis64软件包失败"
fi
LOG_INFO "测试完成:优化目标为最小化总通信量"
}
main "$@"

View File

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

View File

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

View File

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

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 显式指定生成双图
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和m2gmetis64软件包
LOG_INFO "检查是否已安装metis64和m2gmetis64软件包"
if dnf list installed metis64 &> /dev/null && dnf list installed m2gmetis64 &> /dev/null; then
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在metis64和m2gmetis64软件包
LOG_INFO "检查yum源中是否存在metis64和m2gmetis64软件包"
if ! dnf list available metis64 &> /dev/null || ! dnf list available m2gmetis64 &> /dev/null; then
LOG_ERROR "yum源中缺少必要的软件包"
exit 255
fi
# 安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装metis64和m2gmetis64软件包"
dnf install -y metis64 m2gmetis64
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
if ! m2gmetis64 --help | grep -q "dual"; then
LOG_ERROR "命令不支持dual参数"
exit 255
fi
# 执行测试命令生成双图
LOG_INFO "执行测试命令生成双图"
m2gmetis64 --dual test_graph.mtx output_graph
CHECK_RESULT $? 0 0 "生成双图失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载metis64和m2gmetis64软件包"
dnf remove -y metis64 m2gmetis64
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 生成节点图
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:生成节点图"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if ! dnf list installed metis64 &>/dev/null; then
LOG_INFO "软件包未安装,准备安装"
# 检查yum源中是否有该软件包
if ! dnf list available metis64 &>/dev/null; then
LOG_ERROR "yum源中未找到软件包metis64"
exit 255
fi
# 安装软件包
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装软件包metis64失败"
# 标记需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "软件包已安装,无需操作"
NEED_UNINSTALL=0
fi
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
if ! metis64 --help | grep -q "m2gmetis64"; then
LOG_ERROR "命令参数不支持m2gmetis64"
exit 255
fi
# 执行测试命令
LOG_INFO "执行测试命令:生成节点图"
metis64 m2gmetis64 --gtype nodal
CHECK_RESULT $? 0 0 "生成节点图失败"
# 清理环境
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "卸载软件包"
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载软件包metis64失败"
fi
LOG_INFO "测试完成:生成节点图"
}
main "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 指定双图中两个元素的共同节点数为2
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和m2gmetis64软件包
LOG_INFO "检查是否已安装metis64和m2gmetis64软件包"
rpm -q metis64 m2gmetis64 > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在metis64和m2gmetis64软件包
LOG_INFO "检查yum源中是否存在metis64和m2gmetis64软件包"
dnf list available metis64 m2gmetis64 > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到metis64或m2gmetis64软件包"
exit 255
fi
# 安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装metis64和m2gmetis64软件包"
dnf install -y metis64 m2gmetis64 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 测试指定双图中两个元素的共同节点数为2的功能
LOG_INFO "测试指定双图中两个元素的共同节点数为2的功能"
command_output=$(m2gmetis64 -ncommon=2 test_graph.graph test_graph.part 2>&1)
if [ $? -ne 0 ]; then
LOG_ERROR "命令执行失败: $command_output"
if [[ "$command_output" == *"invalid option"* ]] || [[ "$command_output" == *"unsupported option"* ]]; then
exit 255
else
exit $?
fi
fi
CHECK_RESULT $? 0 0 "测试指定双图中两个元素的共同节点数为2的功能失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载metis64和m2gmetis64软件包"
dnf remove -y metis64 m2gmetis64 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-07
# @License : Mulan PSL v2
# @Desc : 尝试生成连续的分区对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和mpmetis64软件包
LOG_INFO "检查是否已安装metis64和mpmetis64软件包"
if ! dnf list installed metis64 &> /dev/null || ! dnf list installed mpmetis64 &> /dev/null; then
LOG_INFO "未安装metis64或mpmetis64开始安装"
# 检查yum源中是否存在软件包
if ! dnf list available metis64 &> /dev/null || ! dnf list available mpmetis64 &> /dev/null; then
LOG_ERROR "yum源中不存在metis64或mpmetis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "安装metis64和mpmetis64失败"
# 标记需要卸载
UNINSTALL=true
else
LOG_INFO "已安装metis64和mpmetis64"
UNINSTALL=false
fi
# 生成连续的分区对网格文件进行分区
LOG_INFO "尝试生成连续的分区对网格文件进行分区"
# 假设网格文件为grid.mesh输出分区文件为grid.part.2
mpmetis -contig grid.mesh 2
CHECK_RESULT $? 0 0 "生成连续分区失败"
# 清理环境
if [ "$UNINSTALL" = true ]; then
LOG_INFO "卸载metis64和mpmetis64软件包"
dnf remove -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "卸载metis64和mpmetis64失败"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用随机匹配策略对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用随机匹配策略对网格文件进行分区"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if ! dnf list installed metis64 >/dev/null 2>&1; then
LOG_INFO "软件包未安装,开始安装"
if ! dnf list available metis64 >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到metis64软件包"
exit 255
fi
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装metis64失败"
INSTALLED=true
else
LOG_INFO "软件包已安装"
INSTALLED=false
fi
# 检查mpmetis64命令是否存在
LOG_INFO "检查mpmetis64命令是否存在"
if ! command -v mpmetis64 >/dev/null 2>&1; then
LOG_ERROR "mpmetis64命令不存在"
exit 255
fi
# 检查ctype参数是否支持
LOG_INFO "检查ctype参数是否支持"
if ! mpmetis64 --help | grep -q "ctype"; then
LOG_ERROR "ctype参数不支持"
exit 255
fi
# 执行测试命令
LOG_INFO "执行测试命令:使用随机匹配策略对网格文件进行分区"
mpmetis64 --ctype=rm test_graph.graph 2
CHECK_RESULT $? 0 0 "执行mpmetis64命令失败"
# 清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载软件包"
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载metis64失败"
fi
LOG_INFO "测试完成:使用随机匹配策略对网格文件进行分区"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用默认参数对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和mpmetis64软件包
LOG_INFO "检查是否已安装metis64和mpmetis64软件包"
if dnf list installed metis64 &> /dev/null && dnf list installed mpmetis64 &> /dev/null; then
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有metis64和mpmetis64软件包
LOG_INFO "检查yum源中是否有metis64和mpmetis64软件包"
if ! dnf list available metis64 &> /dev/null || ! dnf list available mpmetis64 &> /dev/null; then
LOG_ERROR "yum源中缺少metis64或mpmetis64软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装metis64和mpmetis64软件包"
dnf install -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
if ! mpmetis64 --help | grep -q "default"; then
LOG_ERROR "mpmetis64不支持默认参数"
exit 255
fi
# 使用默认参数对网格文件进行分区
LOG_INFO "使用默认参数对网格文件进行分区"
mpmetis64 input_graph_file default_output_file
CHECK_RESULT $? 0 0 "网格文件分区失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载临时安装的软件包"
dnf remove -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试脚本执行完成,环境已恢复"
}
main "$@"

View File

@@ -1,58 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用nodal图类型对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和mpmetis64软件包
LOG_INFO "检查是否已安装metis64和mpmetis64软件包"
if ! dnf list installed metis64 &> /dev/null || ! dnf list installed mpmetis64 &> /dev/null; then
LOG_INFO "未安装metis64或mpmetis64开始安装"
# 检查yum源中是否有软件包
if ! dnf list available metis64 &> /dev/null || ! dnf list available mpmetis64 &> /dev/null; then
LOG_ERROR "yum源中未找到metis64或mpmetis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "安装metis64或mpmetis64失败"
# 标记为需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "metis64和mpmetis64已安装"
fi
LOG_INFO "使用nodal图类型对网格文件进行分区"
# 假设网格文件为test.graph实际应根据需求替换为真实文件路径
mpmetis -gtype=nodal test.graph 2
CHECK_RESULT $? 0 0 "使用nodal图类型对网格文件进行分区失败"
# 清理环境
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载metis64和mpmetis64软件包"
dnf remove -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "卸载metis64或mpmetis64失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用随机初始分区策略对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用随机初始分区策略对网格文件进行分区"
# 检查是否已安装所需软件包
LOG_INFO "检查软件包是否已安装"
dnf list installed metis64-mpmetis64 &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
installed=true
else
LOG_INFO "软件包未安装,将在测试结束后卸载"
installed=false
fi
# 检查yum源中是否存在软件包
LOG_INFO "检查yum源中是否存在metis64-mpmetis64软件包"
dnf list available metis64-mpmetis64 &>/dev/null
CHECK_RESULT $? 0 255 "yum源中未找到metis64-mpmetis64软件包"
# 安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装metis64-mpmetis64软件包"
dnf install -y metis64-mpmetis64
CHECK_RESULT $? 0 255 "安装metis64-mpmetis64软件包失败"
fi
# 测试随机初始分区策略
LOG_INFO "测试随机初始分区策略对网格文件进行分区"
mpmetis64 --help | grep -q "\-\-iptype"
CHECK_RESULT $? 0 255 "--iptype参数不支持"
mpmetis64 --iptype=random test_mesh_file.graph.part.2
CHECK_RESULT $? 0 0 "使用随机初始分区策略对网格文件进行分区失败"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载metis64-mpmetis64软件包"
dnf remove -y metis64-mpmetis64
CHECK_RESULT $? 0 255 "卸载metis64-mpmetis64软件包失败"
fi
LOG_INFO "测试完成:使用随机初始分区策略对网格文件进行分区"
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 尝试最小化子域图的最大度数对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和mpmetis64_minconn
LOG_INFO "检查是否已安装metis64和mpmetis64_minconn"
if dnf list installed metis64 &> /dev/null && dnf list installed mpmetis64_minconn &> /dev/null; then
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在软件包
LOG_INFO "检查yum源中是否存在metis64和mpmetis64_minconn"
if ! dnf list available metis64 &> /dev/null || ! dnf list available mpmetis64_minconn &> /dev/null; then
LOG_ERROR "yum源中缺少必要的软件包"
exit 255
fi
# 安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装metis64和mpmetis64_minconn"
dnf install -y metis64 mpmetis64_minconn
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 测试最小化子域图的最大度数对网格文件进行分区
LOG_INFO "测试最小化子域图的最大度数对网格文件进行分区"
mpmetis64_minconn --minconn test_graph.mesh 2
CHECK_RESULT $? 0 0 "执行mpmetis64_minconn命令失败"
# 清理环境(如果之前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载临时安装的软件包"
dnf remove -y metis64 mpmetis64_minconn
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 设置两个元素的共同节点数为2对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试设置两个元素的共同节点数为2对网格文件进行分区"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if ! dnf list installed metis64 &> /dev/null; then
LOG_INFO "软件包未安装,开始安装"
if ! dnf list available metis64 &> /dev/null; then
LOG_ERROR "yum源中未找到metis64软件包"
exit 255
fi
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装metis64失败"
INSTALLED=true
else
LOG_INFO "软件包已安装"
INSTALLED=false
fi
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
if ! mpmetis64 --help | grep -q "ncommon"; then
LOG_ERROR "mpmetis64命令不支持ncommon参数"
exit 255
fi
# 执行分区命令
LOG_INFO "执行分区命令"
mpmetis64 --ncommon=2 input.graph 2
CHECK_RESULT $? 0 0 "分区命令执行失败"
# 清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载软件包"
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载metis64失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 优化总通信量对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:优化总通信量对网格文件进行分区"
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if ! dnf list installed metis64; then
LOG_INFO "软件包未安装,将进行安装"
# 检查yum源中是否有该软件包
if ! dnf list available metis64; then
LOG_ERROR "yum源中未找到metis64软件包"
exit 255
fi
# 安装软件包
dnf install -y metis64
CHECK_RESULT $? 0 0 "安装metis64软件包失败"
INSTALLED=true
else
LOG_INFO "软件包已安装"
INSTALLED=false
fi
# 检查命令参数是否支持
LOG_INFO "检查命令参数是否支持"
if ! mpmetis64 --help | grep -q "objtype"; then
LOG_ERROR "mpmetis64命令不支持objtype参数"
exit 255
fi
# 执行测试命令
LOG_INFO "执行测试命令:优化总通信量对网格文件进行分区"
mpmetis64 --objtype=vol test_graph.graph 2
CHECK_RESULT $? 0 0 "执行mpmetis64命令失败"
# 清理环境(如果脚本开始时未安装软件包,则卸载)
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载软件包"
dnf remove -y metis64
CHECK_RESULT $? 0 0 "卸载metis64软件包失败"
fi
LOG_INFO "测试完成:优化总通信量对网格文件进行分区"
}
main "$@"

View File

@@ -1,58 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : 使用目标权重文件对网格文件进行分区
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装metis64和mpmetis64软件包
LOG_INFO "检查是否已安装metis64和mpmetis64软件包"
if ! dnf list installed metis64 &> /dev/null || ! dnf list installed mpmetis64 &> /dev/null; then
LOG_INFO "未安装metis64或mpmetis64开始安装"
if ! dnf list available metis64 &> /dev/null || ! dnf list available mpmetis64 &> /dev/null; then
LOG_ERROR "yum源中未找到metis64或mpmetis64软件包"
exit 255
fi
dnf install -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "安装metis64或mpmetis64失败"
INSTALLED=true
else
LOG_INFO "metis64和mpmetis64已安装"
INSTALLED=false
fi
# 检查目标权重文件和网格文件是否存在
LOG_INFO "检查目标权重文件和网格文件是否存在"
if [ ! -f tpwgts ] || [ ! -f mesh ]; then
LOG_ERROR "目标权重文件tpwgts或网格文件mesh不存在"
exit 255
fi
# 使用目标权重文件对网格文件进行分区
LOG_INFO "使用目标权重文件对网格文件进行分区"
mpmetis64 -tpwgts=tpwgts mesh 4
CHECK_RESULT $? 0 0 "使用目标权重文件对网格文件进行分区失败"
# 清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载metis64和mpmetis64软件包"
dnf remove -y metis64 mpmetis64
CHECK_RESULT $? 0 0 "卸载met
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-28
# @License : Mulan PSL v2
# @Desc : 通过编译并运行一个使用nghttp2 API的简单C程序来验证开发环境功能是否完整有效。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试libnghttp2-devel功能通过编译并运行一个使用nghttp2 API的简单C程序来验证开发环境功能是否完整有效。"
# 检查yum源中是否存在libnghttp2-devel软件包
LOG_INFO "检查yum源中是否存在libnghttp2-devel软件包"
dnf list available libnghttp2-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libnghttp2-devel软件包"
exit 255
fi
# 判断环境是否已经安装libnghttp2-devel
LOG_INFO "判断环境是否已经安装libnghttp2-devel"
rpm -q libnghttp2-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装libnghttp2-devel测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "环境未安装libnghttp2-devel将在测试过程中安装"
INSTALLED=0
fi
# 安装libnghttp2-devel如果未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装libnghttp2-devel软件包"
dnf install -y libnghttp2-devel
CHECK_RESULT $? 0 0 "安装libnghttp2-devel失败"
fi
# 创建测试C程序
LOG_INFO "创建测试C程序"
cat > test_nghttp2.c << "EOF"
#include <nghttp2/nghttp2.h>
#include <stdio.h>
int main() {
nghttp2_info *info = nghttp2_version(0);
if (info) {
printf("nghttp2 version: %s\n", info->version_str);
return 0;
} else {
return 1;
}
}
EOF
# 编译测试程序
LOG_INFO "编译测试程序"
gcc -o test_nghttp2 test_nghttp2.c -lnghttp2
CHECK_RESULT $? 0 0 "编译测试程序失败"
# 运行测试程序
LOG_INFO "运行测试程序"
./test_nghttp2
CHECK_RESULT $? 0 0 "运行测试程序失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_nghttp2 test_nghttp2.c
# 卸载libnghttp2-devel如果测试前未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载libnghttp2-devel软件包"
dnf remove -y libnghttp2-devel
CHECK_RESULT $? 0 0 "卸载libnghttp2-devel失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,101 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-27
# @License : Mulan PSL v2
# @Desc : 编译并运行一个简单的C示例程序验证开发环境完整可用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断libnghttp2-devel包是否已安装
LOG_INFO "检查libnghttp2-devel包是否已安装"
rpm -q libnghttp2-devel > /dev/null 2>&1
pkg_installed=$?
# 记录初始安装状态
initial_install_status=$pkg_installed
# 检查yum源中是否有libnghttp2-devel包
LOG_INFO "检查yum源中是否有libnghttp2-devel包"
dnf list available libnghttp2-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有libnghttp2-devel包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有libnghttp2-devel包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $pkg_installed -ne 0 ]; then
LOG_INFO "安装libnghttp2-devel包"
dnf install -y libnghttp2-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装libnghttp2-devel包失败"
LOG_INFO "libnghttp2-devel包安装成功"
else
LOG_INFO "libnghttp2-devel包已安装跳过安装步骤"
fi
# 创建测试用的C示例程序
LOG_INFO "创建测试用的C示例程序"
cat > test_nghttp2.c << "EOF"
#include <nghttp2/nghttp2.h>
#include <stdio.h>
int main() {
nghttp2_info *info = nghttp2_version(0);
if (info) {
printf("libnghttp2 version: %s\n", info->version_str);
printf("编译并运行示例程序成功\n");
return 0;
} else {
printf("无法获取libnghttp2版本信息\n");
return 1;
}
}
EOF
CHECK_RESULT $? 0 0 "创建测试程序失败"
# 编译C示例程序
LOG_INFO "编译C示例程序"
gcc -o test_nghttp2 test_nghttp2.c $(pkg-config --cflags --libs libnghttp2) > /dev/null 2>&1
CHECK_RESULT $? 0 0 "编译C示例程序失败"
# 运行编译后的程序
LOG_INFO "运行编译后的程序"
./test_nghttp2 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "运行C示例程序失败"
LOG_INFO "C示例程序运行成功开发环境完整可用"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_nghttp2 test_nghttp2.c
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果初始状态未安装,则卸载软件包
if [ $initial_install_status -ne 0 ]; then
LOG_INFO "卸载libnghttp2-devel包"
dnf remove -y libnghttp2-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载libnghttp2-devel包失败"
LOG_INFO "libnghttp2-devel包卸载成功"
else
LOG_INFO "保持libnghttp2-devel包安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

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

View File

@@ -1,96 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-27
# @License : Mulan PSL v2
# @Desc : 验证nghttp2/nghttp2.h等核心开发头文件的存在和可访问性。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(根据题目要求直接使用)
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 定义常量
PACKAGE_NAME="libnghttp2-devel"
HEADER_FILES=(
"/usr/include/nghttp2/nghttp2.h"
"/usr/include/nghttp2/nghttp2ver.h"
"/usr/include/nghttp2/nghttp2_session.h"
)
# 步骤1检查软件包是否在yum源中
LOG_INFO "步骤1检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
# 步骤2检查环境是否已安装软件包
LOG_INFO "步骤2检查环境是否已安装软件包"
rpm -q $PACKAGE_NAME &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为需要卸载"
KEEP_INSTALLED=0
fi
# 步骤3如果未安装则安装软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 步骤4验证头文件的存在和可访问性
LOG_INFO "步骤4验证头文件的存在和可访问性"
for header_file in "${HEADER_FILES[@]}"; do
if [ -f "$header_file" ]; then
LOG_INFO "头文件 $header_file 存在"
# 检查头文件是否可读
if [ -r "$header_file" ]; then
LOG_INFO "头文件 $header_file 可读"
else
LOG_ERROR "头文件 $header_file 不可读"
CHECK_RESULT 1 0 0 "头文件不可读"
fi
else
LOG_ERROR "头文件 $header_file 不存在"
CHECK_RESULT 1 0 0 "头文件不存在"
fi
done
# 步骤5清理环境如果脚本开始前未安装则卸载软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "步骤5卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "步骤5保持软件包 $PACKAGE_NAME 安装状态,不进行卸载"
fi
LOG_INFO "测试完成,所有步骤执行完毕"
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-19
# @License : Mulan PSL v2
# @Desc : 验证安装后是否正确提供了nghttp2/nghttp2.h等主要的C语言开发头文件。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "===================================================================="
LOG_INFO "测试开始:验证 nghttp2-devel 软件包安装后是否正确提供 C 语言开发头文件"
LOG_INFO "===================================================================="
# 1. 检查软件包是否已在 yum 源中
LOG_INFO "步骤1检查 nghttp2-devel 软件包是否在 yum 源中"
dnf list available nghttp2-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "nghttp2-devel 软件包不在 yum 源中"
exit 255
fi
# 2. 检查环境中是否已安装 nghttp2-devel 软件包
LOG_INFO "步骤2检查环境中是否已安装 nghttp2-devel 软件包"
package_installed=0
if rpm -q nghttp2-devel > /dev/null 2>&1; then
LOG_INFO "环境中已安装 nghttp2-devel 软件包"
package_installed=1
else
LOG_INFO "环境中未安装 nghttp2-devel 软件包,将在后续步骤中安装"
fi
# 3. 如果未安装,则安装 nghttp2-devel 软件包
if [ $package_installed -eq 0 ]; then
LOG_INFO "步骤3安装 nghttp2-devel 软件包"
dnf install -y nghttp2-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 nghttp2-devel 软件包失败"
fi
# 4. 验证 nghttp2/nghttp2.h 头文件是否被正确提供
LOG_INFO "步骤4验证 nghttp2/nghttp2.h 头文件是否存在"
ls /usr/include/nghttp2/nghttp2.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "nghttp2/nghttp2.h 头文件未被正确提供"
# 5. 验证其他主要的 C 语言开发头文件是否被正确提供
LOG_INFO "步骤5验证其他主要的 C 语言开发头文件是否存在"
headers=(
"/usr/include/nghttp2/nghttp2_ver.h"
"/usr/include/nghttp2/nghttp2_session.h"
"/usr/include/nghttp2/nghttp2_option.h"
"/usr/include/nghttp2/nghttp2_callbacks.h"
)
for header in "${headers[@]}"; do
ls $header > /dev/null 2>&1
CHECK_RESULT $? 0 0 "$header 头文件未被正确提供"
done
# 6. 环境恢复:如果测试前未安装,则卸载软件包
if [ $package_installed -eq 0 ]; then
LOG_INFO "步骤6环境恢复卸载 nghttp2-devel 软件包"
dnf remove -y nghttp2-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载 nghttp2-devel 软件包失败"
LOG_INFO "软件包已卸载,环境已恢复"
else
LOG_INFO "步骤6环境保持原有状态未对 nghttp2-devel 软件包执行卸载操作"
fi
LOG_INFO "===================================================================="
LOG_INFO "测试结束:验证完成"
LOG_INFO "===================================================================="
}
main "$@"

View File

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

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-27
# @License : Mulan PSL v2
# @Desc : 检查libnghttp2-devel软件包是否已在系统中正确安装。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查libnghttp2-devel软件包是否已在系统中正确安装
LOG_INFO "开始检查libnghttp2-devel软件包安装情况"
# 检查环境是否已安装libnghttp2-devel
LOG_INFO "步骤1: 检查libnghttp2-devel是否已安装"
rpm -q libnghttp2-devel
if [ $? -eq 0 ]; then
LOG_INFO "libnghttp2-devel已安装记录安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "libnghttp2-devel未安装"
ALREADY_INSTALLED=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "步骤2: 检查yum源中是否存在libnghttp2-devel软件包"
dnf list available libnghttp2-devel
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libnghttp2-devel软件包"
exit 255
fi
# 如果未安装,则进行安装测试
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "步骤3: 安装libnghttp2-devel软件包"
dnf install -y libnghttp2-devel
CHECK_RESULT $? 0 0 "安装libnghttp2-devel失败"
LOG_INFO "步骤4: 验证安装是否成功"
rpm -q libnghttp2-devel
CHECK_RESULT $? 0 0 "验证libnghttp2-devel安装失败"
# 检查软件包提供的文件
LOG_INFO "步骤5: 检查libnghttp2-devel提供的文件"
rpm -ql libnghttp2-devel | head -5
CHECK_RESULT $? 0 0 "获取libnghttp2-devel文件列表失败"
# 检查头文件是否存在
LOG_INFO "步骤6: 检查头文件是否安装"
ls /usr/include/nghttp2/nghttp2.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "nghttp2头文件未找到"
# 检查库文件是否存在
LOG_INFO "步骤7: 检查库文件是否安装"
ls /usr/lib*/libnghttp2.so > /dev/null 2>&1
CHECK_RESULT $? 0 0 "libnghttp2库文件未找到"
# 检查pkg-config文件
LOG_INFO "步骤8: 检查pkg-config配置"
pkg-config --cflags libnghttp2
CHECK_RESULT $? 0 0 "libnghttp2 pkg-config配置错误"
LOG_INFO "步骤9: 测试简单编译"
cat > test_nghttp2.c << "EOF"
#include <nghttp2/nghttp2.h>
#include <stdio.h>
int main() {
printf("nghttp2 version: %s\n", NGHTTP2_VERSION);
return 0;
}
EOF
gcc test_nghttp2.c -o test_nghttp2 $(pkg-config --cflags --libs libnghttp2)
CHECK_RESULT $? 0 0 "编译测试程序失败"
./test_nghttp2
CHECK_RESULT $? 0 0 "运行测试程序失败"
# 清理测试文件
rm -f test_nghttp2.c test_nghttp2
fi
# 如果已安装,则只进行验证
if [ "$ALREADY_INSTALLED" = "true" ]; then
LOG_INFO "步骤3: 验证已安装的libnghttp2-devel"
rpm -q libnghttp2-devel
CHECK_RESULT $? 0 0 "libnghttp2-devel未正确安装"
LOG_INFO "步骤4: 检查头文件"
ls /usr/include/nghttp2/nghttp2.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "nghttp2头文件未找到"
LOG_INFO "步骤5: 检查库文件"
ls /usr/lib*/libnghttp2.so > /dev/null 2>&1
CHECK_RESULT $? 0 0 "libnghttp2库文件未找到"
LOG_INFO "步骤6: 验证pkg-config配置"
pkg-config --cflags libnghttp2
CHECK_RESULT $? 0 0 "libnghttp2 pkg-config配置错误"
fi
# 环境恢复
LOG_INFO "步骤10: 环境恢复"
if [ "$ALREADY_INSTALLED" = "false" ]; then
LOG_INFO "卸载测试安装的libnghttp2-devel软件包"
dnf remove -y libnghttp2-devel
CHECK_RESULT $? 0 0 "卸载libnghttp2-devel失败"
fi
LOG_INFO "libnghttp2-devel软件包安装检查完成"
}
main "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-27
# @License : Mulan PSL v2
# @Desc : 测试pkg-config是否能正确提供libnghttp2的编译和链接标志。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装libnghttp2-devel
LOG_INFO "检查系统是否已安装libnghttp2-devel软件包"
rpm -q libnghttp2-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libnghttp2-devel已安装测试后保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "libnghttp2-devel未安装测试后将卸载"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有libnghttp2-devel软件包
LOG_INFO "检查yum源中是否有libnghttp2-devel软件包"
dnf list available libnghttp2-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有libnghttp2-devel软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "安装libnghttp2-devel软件包"
dnf install -y libnghttp2-devel
CHECK_RESULT $? 0 0 "安装libnghttp2-devel失败"
fi
# 测试pkg-config是否能正确提供libnghttp2的编译和链接标志
LOG_INFO "测试pkg-config是否能正确提供libnghttp2的编译标志"
pkg-config --cflags libnghttp2
CHECK_RESULT $? 0 0 "pkg-config无法提供libnghttp2的编译标志"
LOG_INFO "测试pkg-config是否能正确提供libnghttp2的链接标志"
pkg-config --libs libnghttp2
CHECK_RESULT $? 0 0 "pkg-config无法提供libnghttp2的链接标志"
# 验证编译标志是否包含必要的头文件路径
LOG_INFO "验证编译标志是否包含必要的头文件路径"
CFLAGS=$(pkg-config --cflags libnghttp2)
if [[ $CFLAGS == *"-I"* ]]; then
LOG_INFO "编译标志包含头文件路径: $CFLAGS"
else
LOG_ERROR "编译标志不包含头文件路径"
exit 1
fi
# 验证链接标志是否包含必要的库文件
LOG_INFO "验证链接标志是否包含必要的库文件"
LIBS=$(pkg-config --libs libnghttp2)
if [[ $LIBS == *"-lnghttp2"* ]]; then
LOG_INFO "链接标志包含库文件: $LIBS"
else
LOG_ERROR "链接标志不包含必要的库文件"
exit 1
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载libnghttp2-devel软件包"
dnf remove -y libnghttp2-devel
CHECK_RESULT $? 0 0 "卸载libnghttp2-devel失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,173 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-19
# @License : Mulan PSL v2
# @Desc : 通过编译一个使用nghttp2 API的简单C程序来验证开发环境功能是否完整有效。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 初始化参数和变量
PACKAGE_NAME="libnghttp2-devel"
TEST_PROGRAM="test_nghttp2_simple.c"
TEST_EXECUTABLE="test_nghttp2_simple"
EXPECTED_STRING="nghttp2简单测试程序"
# 清理函数,用于恢复环境
cleanup() {
LOG_INFO "开始清理测试环境"
# 删除测试源码和可执行文件
if [ -f "$TEST_PROGRAM" ]; then
rm -f "$TEST_PROGRAM"
LOG_INFO "已删除测试源码文件: $TEST_PROGRAM"
fi
if [ -f "$TEST_EXECUTABLE" ]; then
rm -f "$TEST_EXECUTABLE"
LOG_INFO "已删除可执行文件: $TEST_EXECUTABLE"
fi
# 如果测试前未安装,则卸载软件包
if [ "$WAS_INSTALLED" -eq 0 ]; then
LOG_INFO "卸载在测试过程中安装的软件包: $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "成功卸载 $PACKAGE_NAME"
else
LOG_ERROR "卸载 $PACKAGE_NAME 失败"
fi
else
LOG_INFO "测试前已安装 $PACKAGE_NAME,保持安装状态"
fi
LOG_INFO "环境清理完成"
}
# 设置trap确保脚本退出时执行清理
trap cleanup EXIT
# 检查软件包是否在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 "yum源中存在软件包: $PACKAGE_NAME"
# 检查是否已安装软件包
LOG_INFO "检查系统是否已安装软件包: $PACKAGE_NAME"
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
WAS_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
WAS_INSTALLED=0
fi
# 如果未安装,则安装软件包
if [ "$WAS_INSTALLED" -eq 0 ]; then
LOG_INFO "开始安装软件包: $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
LOG_INFO "成功安装软件包: $PACKAGE_NAME"
fi
# 创建简单的nghttp2测试程序
LOG_INFO "创建nghttp2简单测试程序"
cat > "$TEST_PROGRAM" << "EOF"
#include <stdio.h>
#include <nghttp2/nghttp2.h>
int main() {
const char *version = nghttp2_version(0);
if (version == NULL) {
printf("无法获取nghttp2版本信息\n");
return 1;
}
printf("nghttp2版本: %s\n", version);
printf("nghttp2简单测试程序\n");
// 测试nghttp2库的基本初始化
nghttp2_session_callbacks *callbacks;
int rv = nghttp2_session_callbacks_new(&callbacks);
if (rv != 0) {
printf("创建nghttp2会话回调失败\n");
return 1;
}
nghttp2_session_callbacks_del(callbacks);
printf("nghttp2 API测试通过\n");
return 0;
}
EOF
CHECK_RESULT $? 0 0 "创建测试程序文件失败"
# 检查gcc编译器是否可用
LOG_INFO "检查gcc编译器是否可用"
command -v gcc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gcc编译器不可用"
# 检查pkg-config是否可用
LOG_INFO "检查pkg-config是否可用"
command -v pkg-config > /dev/null 2>&1
CHECK_RESULT $? 0 0 "pkg-config不可用"
# 检查nghttp2开发库是否可通过pkg-config找到
LOG_INFO "检查nghttp2开发库配置"
pkg-config --exists libnghttp2
CHECK_RESULT $? 0 0 "无法通过pkg-config找到nghttp2开发库"
# 获取nghttp2编译标志
LOG_INFO "获取nghttp2编译标志"
CFLAGS=$(pkg-config --cflags libnghttp2 2>/dev/null)
CHECK_RESULT $? 0 0 "获取nghttp2编译标志失败"
LDFLAGS=$(pkg-config --libs libnghttp2 2>/dev/null)
CHECK_RESULT $? 0 0 "获取nghttp2链接标志失败"
LOG_INFO "编译标志: $CFLAGS"
LOG_INFO "链接标志: $LDFLAGS"
# 编译测试程序
LOG_INFO "编译nghttp2测试程序"
gcc $CFLAGS -o "$TEST_EXECUTABLE" "$TEST_PROGRAM" $LDFLAGS
CHECK_RESULT $? 0 0 "编译测试程序失败"
LOG_INFO "成功编译测试程序"
# 运行测试程序
LOG_INFO "运行nghttp2测试程序"
./"$TEST_EXECUTABLE"
CHECK_RESULT $? 0 0 "运行测试程序失败"
# 验证输出结果
LOG_INFO "验证测试程序输出"
output=$(./"$TEST_EXECUTABLE")
echo "$output" | grep -q "nghttp2简单测试程序"
CHECK_RESULT $? 0 0 "测试程序输出不符合预期"
echo "$output" | grep -q "nghttp2 API测试通过"
CHECK_RESULT $? 0 0 "nghttp2 API测试未通过"
LOG_INFO "nghttp2开发环境功能测试通过"
}
main "$@"

View File

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

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-06
# @License : Mulan PSL v2
# @Desc : 测试软件包 java-21-openjdk-src 的编译功能验证是否能够成功编译Java源代码。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 java-21-openjdk-src 的编译功能"
# 检查是否已安装 java-21-openjdk-src
LOG_INFO "检查是否已安装 java-21-openjdk-src"
dnf list installed java-21-openjdk-src > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "java-21-openjdk-src 已安装,测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "java-21-openjdk-src 未安装,测试结束后将卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 java-21-openjdk-src
LOG_INFO "检查 yum 源中是否有 java-21-openjdk-src"
dnf list available java-21-openjdk-src > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum 源中没有找到 java-21-openjdk-src"
# 安装 java-21-openjdk-src如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 java-21-openjdk-src"
dnf install -y java-21-openjdk-src > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 java-21-openjdk-src 失败"
fi
# 验证编译功能
LOG_INFO "验证编译功能"
javac -version > /dev/null 2>&1
CHECK_RESULT $? 0 255 "javac 命令不存在或不支持"
# 创建测试 Java 文件
LOG_INFO "创建测试 Java 文件"
cat <<EOF > Test.java
public class Test {
public static void main(String[] args) {
System.out.println("Hello, OpenEuler!");
}
}
EOF
# 编译测试 Java 文件
LOG_INFO "编译测试 Java 文件"
javac Test.java
CHECK_RESULT $? 0 0 "Java源代码编译失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f Test.java Test.class
#卸载软件包(如果之前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载 java-21-openjdk-src"
dnf remove -y java-21-openjdk-src > /dev/null 2>&1
CHECK_RESULT $? 0 0 “卸载 java—openjde—src失败”
fi
LOG_INFO "java—openjdke—src的编译功能测试完成"
}
main "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-20
# @License : Mulan PSL v2
# @Desc : 测试模块基本功能调用
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本开始
# 步骤1检查测试环境是否已经安装perl-Date-ISO8601软件包
LOG_INFO "步骤1检查测试环境是否已经安装perl-Date-ISO8601软件包"
rpm -qa | grep -q "^perl-Date-ISO8601"
if [ $? -eq 0 ]; then
LOG_INFO "检测到perl-Date-ISO8601已安装标记为已安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "未检测到perl-Date-ISO8601安装标记为未安装状态"
INSTALLED_FLAG=0
fi
# 步骤2检查yum源中是否有perl-Date-ISO8601软件包
LOG_INFO "步骤2检查yum源中是否有perl-Date-ISO8601软件包"
dnf list available perl-Date-ISO8601 2>/dev/null | grep -q "perl-Date-ISO8601"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到perl-Date-ISO8601软件包"
exit 255
fi
# 步骤3如果未安装则安装perl-Date-ISO8601软件包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "步骤3安装perl-Date-ISO8601软件包"
dnf install -y perl-Date-ISO8601
CHECK_RESULT $? 0 0 "安装perl-Date-ISO8601失败"
LOG_INFO "perl-Date-ISO8601安装成功"
fi
# 步骤4测试perl-Date-ISO8601模块的基本功能调用
LOG_INFO "步骤4测试perl-Date-ISO8601模块的基本功能调用"
# 测试perl命令调用Date::ISO8601模块
perl -e "use Date::ISO8601; my $date = Date::ISO8601->new("2023-10-01"); print $date->year;" 2>/dev/null
CHECK_RESULT $? 0 0 "perl-Date-ISO8601模块基本功能调用失败"
# 步骤5测试perl-Date-ISO8601模块的help功能如果支持
LOG_INFO "步骤5测试perl-Date-ISO8601模块的help功能"
# 尝试获取帮助信息如果命令不支持help参数则跳过
perl -MDate::ISO8601 -e "help" 2>&1 | grep -q "Usage"
if [ $? -eq 0 ]; then
LOG_INFO "perl-Date-ISO8601模块支持help功能"
else
LOG_INFO "perl-Date-ISO8601模块不支持help功能跳过此步骤"
fi
# 步骤6环境清理与恢复
LOG_INFO "步骤6环境清理与恢复"
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "卸载测试安装的perl-Date-ISO8601软件包"
dnf remove -y perl-Date-ISO8601
CHECK_RESULT $? 0 0 "卸载perl-Date-ISO8601失败"
LOG_INFO "perl-Date-ISO8601卸载成功环境已恢复"
else
LOG_INFO "测试前已安装perl-Date-ISO8601保持安装状态无需卸载"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,117 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# 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-20
# @License : Mulan PSL v2
# @Desc : 测试ISO8601日期格式化
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试ISO8601日期格式化功能"
LOG_INFO "步骤1: 检查perl-Date-ISO8601软件包是否已在系统中安装"
rpm -q perl-Date-ISO8601 > /dev/null 2>&1
package_installed=$?
if [ $package_installed -eq 0 ]; then
LOG_INFO "perl-Date-ISO8601软件包已安装测试结束后将保持安装状态"
need_cleanup=0
else
LOG_INFO "perl-Date-ISO8601软件包未安装将在测试前安装并在测试结束后卸载"
need_cleanup=1
fi
LOG_INFO "步骤2: 检查yum源中是否存在perl-Date-ISO8601软件包"
dnf list available perl-Date-ISO8601 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到perl-Date-ISO8601软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到perl-Date-ISO8601软件包测试终止"
exit 255
fi
if [ $package_installed -ne 0 ]; then
LOG_INFO "步骤3: 安装perl-Date-ISO8601软件包"
dnf install -y perl-Date-ISO8601 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装perl-Date-ISO8601软件包失败"
if [ $? -ne 0 ]; then
LOG_ERROR "安装perl-Date-ISO8601软件包失败"
exit 255
fi
LOG_INFO "perl-Date-ISO8601软件包安装成功"
fi
LOG_INFO "步骤4: 验证perl命令可以正常使用Date::ISO8601模块"
perl -MDate::ISO8601 -e "print "Module loaded\n"" 2>&1
CHECK_RESULT $? 0 0 "无法加载Date::ISO8601 Perl模块"
if [ $? -ne 0 ]; then
LOG_ERROR "Perl模块Date::ISO8601加载失败"
if [ $need_cleanup -eq 1 ]; then
dnf remove -y perl-Date-ISO8601 > /dev/null 2>&1
fi
exit 1
fi
LOG_INFO "步骤5: 测试ISO8601日期格式化基本功能"
expected_date="2023-11-22"
formatted_date=$(perl -MDate::ISO8601 -e "my $date = Date::ISO8601->new(year=>2023, month=>11, day=>22); print $date->date, "\n"" 2>&1)
CHECK_RESULT $? 0 0 "执行Perl日期格式化命令失败"
if [ $? -ne 0 ]; then
LOG_ERROR "执行Perl日期格式化命令失败"
if [ $need_cleanup -eq 1 ]; then
dnf remove -y perl-Date-ISO8601 > /dev/null 2>&1
fi
exit 1
fi
if [ "$formatted_date" = "$expected_date" ]; then
LOG_INFO "日期格式化成功,输出符合预期: $formatted_date"
else
LOG_ERROR "日期格式化失败,预期: $expected_date, 实际: $formatted_date"
if [ $need_cleanup -eq 1 ]; then
dnf remove -y perl-Date-ISO8601 > /dev/null 2>&1
fi
exit 1
fi
LOG_INFO "步骤6: 测试不支持的参数或功能(模拟错误场景)"
perl -MDate::ISO8601 -e "my $date = Date::ISO8601->new(year=>2023, month=>13, day=>22); print $date->date, "\n"" 2>&1 > /dev/null
if [ $? -eq 255 ]; then
LOG_INFO "检测到不支持的参数退出码为255符合预期"
else
LOG_ERROR "不支持的参数未按预期处理"
if [ $need_cleanup -eq 1 ]; then
dnf remove -y perl-Date-ISO8601 > /dev/null 2>&1
fi
exit 1
fi
LOG_INFO "步骤7: 清理测试环境"
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "卸载测试安装的perl-Date-ISO8601软件包"
dnf remove -y perl-Date-ISO8601 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载perl-Date-ISO8601软件包失败"
if [ $? -ne 0 ]; then
LOG_ERROR "卸载perl-Date-ISO8601软件包失败"
exit 1
fi
LOG_INFO "perl-Date-ISO8601软件包卸载成功环境已恢复"
else
LOG_INFO "perl-Date-ISO8601软件包为预安装保持安装状态环境未改变"
fi
LOG_INFO "ISO8601日期格式化功能测试完成"
}
main "$@"

View File

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

View File

@@ -1,129 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-20
# @License : Mulan PSL v2
# @Desc : 测试ISO8601日期解析
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装perl-Date-ISO8601软件包
LOG_INFO "检查perl-Date-ISO8601软件包是否已安装"
rpm -q perl-Date-ISO8601
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,标记为需要保持安装状态"
KEEP_INSTALLED=true
else
LOG_INFO "软件包未安装,标记为需要测试后卸载"
KEEP_INSTALLED=false
fi
# 检查yum源中是否有perl-Date-ISO8601软件包
LOG_INFO "检查yum源中是否有perl-Date-ISO8601软件包"
dnf list available perl-Date-ISO8601
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到perl-Date-ISO8601软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "安装perl-Date-ISO8601软件包"
dnf install -y perl-Date-ISO8601
CHECK_RESULT $? 0 0 "安装perl-Date-ISO8601软件包失败"
fi
# 测试ISO8601日期解析功能
LOG_INFO "测试ISO8601日期解析功能"
# 创建测试Perl脚本
LOG_INFO "创建测试Perl脚本"
cat > test_iso8601.pl << "EOF"
use Date::ISO8601;
my $date_str = "2023-10-01T12:30:45Z";
my $date = parse_date($date_str);
print "解析日期: $date_str\n";
print "结果: " . $date->datetime . "\n";
EOF
# 执行测试脚本
LOG_INFO "执行Perl测试脚本"
perl test_iso8601.pl
CHECK_RESULT $? 0 0 "ISO8601日期解析测试失败"
# 测试无效日期格式
LOG_INFO "测试无效日期格式处理"
cat > test_invalid.pl << "EOF"
use Date::ISO8601;
eval {
my $date = parse_date("invalid-date");
print "解析成功: " . $date->datetime . "\n";
};
if ($@) {
print "捕获到预期错误: $@\n";
exit 0;
} else {
exit 1;
}
EOF
perl test_invalid.pl
CHECK_RESULT $? 0 0 "无效日期格式处理不符合预期"
# 测试不同ISO8601格式
LOG_INFO "测试不同ISO8601格式解析"
cat > test_formats.pl << "EOF"
use Date::ISO8601;
my @test_cases = (
"2023-10-01T12:30:45Z",
"2023-10-01T12:30:45+08:00",
"20231001T123045Z",
);
foreach my $date_str (@test_cases) {
eval {
my $date = parse_date($date_str);
print "成功解析: $date_str -> " . $date->datetime . "\n";
};
if ($@) {
print "解析失败: $date_str - $@\n";
exit 1;
}
}
print "所有格式解析成功\n";
exit 0;
EOF
perl test_formats.pl
CHECK_RESULT $? 0 0 "部分ISO8601格式解析失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_iso8601.pl test_invalid.pl test_formats.pl
# 如果测试前未安装,则卸载软件包
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "卸载perl-Date-ISO8601软件包"
dnf remove -y perl-Date-ISO8601
CHECK_RESULT $? 0 0 "卸载perl-Date-ISO8601软件包失败"
else
LOG_INFO "保持perl-Date-ISO8601软件包安装状态"
fi
LOG_INFO "ISO8601日期解析测试完成"
}
main "$@"

View File

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

View File

@@ -1,59 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : Test existence of package documentation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查包文档是否存在"
LOG_INFO "步骤1: 检查texlive-belleek软件包是否在yum源中"
dnf list available texlive-belleek > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "texlive-belleek软件包不在yum源中"
exit 255
fi
LOG_INFO "步骤2: 检查系统是否已安装texlive-belleek"
rpm -q texlive-belleek > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-belleek已安装测试完成后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-belleek未安装开始安装"
dnf install -y texlive-belleek > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-belleek失败"
INSTALLED=false
fi
LOG_INFO "步骤3: 检查texlive-belleek的文档文件是否存在"
rpm -ql texlive-belleek | grep -E "\.pdf$|\.html$|\.txt$" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlive-belleek文档文件不存在"
LOG_INFO "步骤4: 清理环境"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载texlive-belleek"
dnf remove -y texlive-belleek > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-belleek失败"
else
LOG_INFO "保持texlive-belleek安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-25
# @License : Mulan PSL v2
# @Desc : Test font rendering functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-belleek-function-font软件包
LOG_INFO "检查texlive-belleek-function-font是否已安装"
if dnf list installed texlive-belleek-function-font &>/dev/null; then
LOG_INFO "texlive-belleek-function-font已安装"
INSTALLED=true
else
LOG_INFO "texlive-belleek-function-font未安装"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-belleek-function-font软件包
LOG_INFO "检查yum源中是否存在texlive-belleek-function-font"
if ! dnf list available texlive-belleek-function-font &>/dev/null; then
LOG_ERROR "yum源中不存在texlive-belleek-function-font软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-belleek-function-font"
dnf install -y texlive-belleek-function-font
CHECK_RESULT $? 0 0 "安装texlive-belleek-function-font失败"
fi
# 测试字体渲染功能
LOG_INFO "测试字体渲染功能"
if ! command -v pdflatex &>/dev/null; then
LOG_ERROR "pdflatex命令不存在或不支持"
exit 255
fi
# 创建测试文件
LOG_INFO "创建测试文件test_font.tex"
cat > test_font.tex <<EOF
\documentclass{article}
\usepackage{belleek}
\begin{document}
Test font rendering: \belleekfont{Hello, World!}
\end{document}
EOF
# 生成PDF文件并检查结果
LOG_INFO "生成PDF文件"
pdflatex test_font.tex
CHECK_RESULT $? 0 0 "生成PDF文件失败"
# 清理生成的临时文件
LOG_INFO "清理临时文件"
rm -f test_font.aux test_font.log test_font.pdf test_font.tex
# 如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-belleek-function-font"
dnf remove -y texlive-belleek-function-font
CHECK_RESULT $? 0 0 "卸载texlive-belleek-function-font失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,107 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : Test using Belleek font in a LaTeX document
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试在LaTeX文档中使用Belleek字体"
# 定义软件包名称
PACKAGE_NAME="texlive-belleek"
# 步骤1检查yum源中是否存在指定的软件包
LOG_INFO "步骤1检查yum源中是否存在${PACKAGE_NAME}软件包"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
# 步骤2检查系统是否已安装该软件包
LOG_INFO "步骤2检查系统是否已安装${PACKAGE_NAME}软件包"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "系统已安装${PACKAGE_NAME},测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "系统未安装${PACKAGE_NAME},将在测试过程中安装,测试结束后卸载"
INSTALLED_BEFORE_TEST=false
fi
# 步骤3如果未安装则安装软件包
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 步骤4验证关键命令是否存在
LOG_INFO "步骤4验证LaTeX相关命令是否存在"
if ! command -v pdflatex &>/dev/null; then
LOG_ERROR "未找到pdflatex命令可能LaTeX环境不完整"
exit 255
fi
# 步骤5创建测试LaTeX文档
LOG_INFO "步骤5创建使用Belleek字体的测试LaTeX文档"
TEST_TEX_FILE="test_belleek.tex"
cat > ${TEST_TEX_FILE} << "EOF"
\documentclass{article}
\usepackage{belleek}
\begin{document}
\fontfamily{belleek}\selectfont
This is a test document using Belleek font.
Normal font: This is normal text.
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
# 步骤6编译LaTeX文档
LOG_INFO "步骤6编译LaTeX文档以使用Belleek字体"
pdflatex -interaction=nonstopmode ${TEST_TEX_FILE} &>/dev/null
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
# 步骤7验证生成的PDF文件
LOG_INFO "步骤7验证生成的PDF文件"
if [ -f "test_belleek.pdf" ]; then
LOG_INFO "成功生成PDF文件test_belleek.pdf"
else
LOG_ERROR "未生成PDF文件"
exit 1
fi
# 步骤8清理测试文件
LOG_INFO "步骤8清理测试生成的文件"
rm -f test_belleek.aux test_belleek.log test_belleek.pdf test_belleek.tex
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 步骤9如果测试前未安装则卸载软件包
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
LOG_INFO "步骤9卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
else
LOG_INFO "步骤9测试前已安装${PACKAGE_NAME},保持安装状态"
fi
LOG_INFO "测试完成在LaTeX文档中使用Belleek字体功能正常"
}
main "$@"

View File

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

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : Test if key LaTeX files exist
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装texlive-carlisle软件包
LOG_INFO "检查是否已安装texlive-carlisle软件包"
rpm -q texlive-carlisle
if [ $? -eq 0 ]; then
LOG_INFO "检测到texlive-carlisle已安装脚本结束后将保持安装状态"
ENV_INSTALLED=1
else
LOG_INFO "未检测到texlive-carlisle安装将在测试后卸载"
ENV_INSTALLED=0
fi
# 检查yum源中是否存在texlive-carlisle软件包
LOG_INFO "检查yum源中是否存在texlive-carlisle软件包"
dnf list available texlive-carlisle
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-carlisle软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $ENV_INSTALLED -eq 0 ]; then
LOG_INFO "安装texlive-carlisle软件包"
dnf install -y texlive-carlisle
CHECK_RESULT $? 0 0 "安装texlive-carlisle失败"
fi
# 测试关键LaTeX文件是否存在
LOG_INFO "测试关键LaTeX文件是否存在"
rpm -ql texlive-carlisle | grep -E "\.sty$|\.tex$|\.cls$" | head -5
CHECK_RESULT $? 0 0 "未找到LaTeX关键文件"
# 检查特定文件是否存在
LOG_INFO "检查特定LaTeX文件是否存在"
if rpm -ql texlive-carlisle | grep -q "carlisle.sty"; then
LOG_INFO "找到carlisle.sty文件"
else
LOG_ERROR "未找到carlisle.sty文件"
CHECK_RESULT 1 0 0 "关键文件缺失"
fi
# 如果测试前未安装,则卸载软件包
if [ $ENV_INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-carlisle软件包"
dnf remove -y texlive-carlisle
CHECK_RESULT $? 0 0 "卸载texlive-carlisle失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "保持texlive-carlisle安装状态"
fi
}
main "$@"

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-23
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-index package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test installation of texlive-index package"
# 检查软件包是否已在yum源中
LOG_INFO "检查texlive-index软件包是否在yum源中"
dnf list available texlive-index 2>/dev/null | grep -q texlive-index
if [ $? -ne 0 ]; then
LOG_ERROR "texlive-index软件包不在yum源中"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查texlive-index软件包是否已安装"
rpm -q texlive-index >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-index软件包已安装测试后将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-index软件包未安装将进行安装测试"
INSTALLED=0
fi
# 如果未安装,则安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装texlive-index软件包"
dnf install -y texlive-index
CHECK_RESULT $? 0 0 "安装texlive-index软件包失败"
fi
# 测试软件包功能
LOG_INFO "测试texlive-index软件包功能"
# 此处添加具体的功能测试命令,例如:
# texindex --version
# CHECK_RESULT $? 0 0 "texindex命令执行失败"
# 由于没有具体的功能测试描述,这里使用一个示例命令,实际应根据软件包功能调整
which texindex >/dev/null 2>&1
CHECK_RESULT $? 0 0 "texindex命令不存在"
# 如果测试前未安装,则卸载
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-index软件包"
dnf remove -y texlive-index
CHECK_RESULT $? 0 0 "卸载texlive-index软件包失败"
fi
LOG_INFO "测试完成Test installation of texlive-index package"
}
main "$@"

View File

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

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-23
# @License : Mulan PSL v2
# @Desc : Test basic usage of makeindex command
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-index
LOG_INFO "检查是否已安装texlive-index"
if dnf list installed texlive-index &> /dev/null; then
LOG_INFO "texlive-index已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-index未安装测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-index软件包
LOG_INFO "检查yum源中是否有texlive-index软件包"
if ! dnf list available texlive-index &> /dev/null; then
LOG_ERROR "yum源中没有texlive-index软件包"
exit 255
fi
# 如果未安装则安装texlive-index
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-index"
dnf install -y texlive-index
CHECK_RESULT $? 0 0 "安装texlive-index失败"
fi
# 测试makeindex命令的基本用法
LOG_INFO "测试makeindex命令的基本用法"
makeindex --help
CHECK_RESULT $? 0 0 "makeindex命令执行失败"
# 测试makeindex命令的参数
LOG_INFO "测试makeindex命令的参数"
makeindex -v
CHECK_RESULT $? 0 0 "makeindex -v参数不支持"
# 测试makeindex命令处理简单索引文件
LOG_INFO "测试makeindex命令处理简单索引文件"
cat > test.idx << EOF
\indexentry{测试}{1}
\indexentry{示例}{2}
EOF
makeindex test.idx
CHECK_RESULT $? 0 0 "makeindex处理索引文件失败"
# 检查生成的.ind文件
LOG_INFO "检查生成的.ind文件"
[ -f test.ind ] && LOG_INFO "成功生成test.ind文件" || LOG_ERROR "未生成test.ind文件"
CHECK_RESULT $? 0 0 "未生成预期的.ind文件"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test.idx test.ind test.ilg test.log
# 如果测试前未安装则卸载texlive-index
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-index"
dnf remove -y texlive-index
CHECK_RESULT $? 0 0 "卸载texlive-index失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,91 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-23
# @License : Mulan PSL v2
# @Desc : Verify texlive-index is installed and available
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义常量
PACKAGE_NAME="texlive-index"
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "步骤1: 检查软件包是否在yum源中"
dnf list available "${PACKAGE_NAME}" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 步骤2: 检查系统是否已安装该软件包
LOG_INFO "步骤2: 检查系统是否已安装该软件包"
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: 验证软件包安装成功
LOG_INFO "步骤4: 验证软件包安装成功"
rpm -q "${PACKAGE_NAME}"
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 未正确安装"
# 步骤5: 验证texlive-index命令是否可用
LOG_INFO "步骤5: 验证texlive-index命令是否可用"
if command -v texlive-index &>/dev/null; then
LOG_INFO "texlive-index 命令可用"
else
LOG_ERROR "texlive-index 命令不可用"
exit 255
fi
# 步骤6: 测试texlive-index命令的基本功能
LOG_INFO "步骤6: 测试texlive-index命令的基本功能"
texlive-index --help &>/dev/null
CHECK_RESULT $? 0 0 "texlive-index 命令参数 --help 不支持或执行失败"
# 步骤7: 清理环境(如果之前未安装,则卸载软件包)
if [ ${ALREADY_INSTALLED} -eq 0 ]; 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 "测试完成Verify texlive-index is installed and available"
}
main "$@"

View File

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

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-09
# @License : Mulan PSL v2
# @Desc : Test basic UML diagram generation with MetaUML
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试基本UML图生成与MetaUML"
LOG_INFO "步骤1检查环境中是否已安装texlive-metauml软件包"
rpm -q texlive-metauml
if [ $? -eq 0 ]; then
LOG_INFO "texlive-metauml已安装将保持安装状态"
INSTALLED="true"
else
LOG_INFO "texlive-metauml未安装将在测试中安装"
INSTALLED="false"
fi
LOG_INFO "步骤2检查yum源中是否存在texlive-metauml软件包"
dnf list available texlive-metauml 2>&1 | grep -q "texlive-metauml"
CHECK_RESULT $? 0 0 "yum源中未找到texlive-metauml软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-metauml软件包"
exit 255
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装texlive-metauml软件包"
dnf install -y texlive-metauml
CHECK_RESULT $? 0 0 "安装texlive-metauml失败"
fi
LOG_INFO "步骤4创建测试UML图源文件"
cat > test_uml.tex << "EOF"
\documentclass{article}
\usepackage{metauml}
\begin{document}
\begin{metapost}
Class.A("ClassA")
Class.B("ClassB")
A.n = B.s
drawObject(A)
drawObject(B)
link(association)(A.n -- B.s)
\end{metapost}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试UML图源文件失败"
LOG_INFO "步骤5使用pdflatex编译UML图源文件"
pdflatex -interaction=nonstopmode test_uml.tex
CHECK_RESULT $? 0 0 "pdflatex编译失败"
LOG_INFO "步骤6检查生成的PDF文件"
if [ -f test_uml.pdf ]; then
LOG_INFO "成功生成UML图PDF文件"
else
LOG_ERROR "未生成UML图PDF文件"
exit 1
fi
LOG_INFO "步骤7清理生成的临时文件"
rm -f test_uml.aux test_uml.log test_uml.pdf test_uml.tex
CHECK_RESULT $? 0 0 "清理临时文件失败"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤8卸载texlive-metauml软件包"
dnf remove -y texlive-metauml
CHECK_RESULT $? 0 0 "卸载texlive-metauml失败"
fi
LOG_INFO "测试完成基本UML图生成与MetaUML"
}
main "$@"

View File

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

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-09
# @License : Mulan PSL v2
# @Desc : Test UML class diagram generation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test UML class diagram generation"
LOG_INFO "步骤1检查texlive-metauml软件包是否在yum源中"
dnf list available texlive-metauml &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-metauml软件包"
exit 255
fi
LOG_INFO "步骤2检查当前是否已安装texlive-metauml"
dnf list installed texlive-metauml &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "texlive-metauml已安装标记为保持安装状态"
INSTALLED_BEFORE="true"
else
LOG_INFO "texlive-metauml未安装标记为需要卸载"
INSTALLED_BEFORE="false"
fi
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤3安装texlive-metauml软件包"
dnf install -y texlive-metauml
CHECK_RESULT $? 0 0 "安装texlive-metauml失败"
fi
LOG_INFO "步骤4测试UML类图生成功能"
cat > test_class_diagram.tex << "EOF"
\documentclass{article}
\usepackage{metauml}
\begin{document}
\begin{metapost}
Class.A("MyClass")
("attribute1 : int")
("operation1() : void");
drawObjects(A);
\end{metapost}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试LaTeX文件失败"
LOG_INFO "步骤5使用pdflatex编译测试文件"
pdflatex -interaction=nonstopmode test_class_diagram.tex &>/dev/null
CHECK_RESULT $? 0 0 "pdflatex编译失败UML类图生成功能异常"
LOG_INFO "步骤6检查生成的PDF文件"
if [ -f test_class_diagram.pdf ]; then
LOG_INFO "UML类图PDF文件生成成功"
else
LOG_ERROR "未生成UML类图PDF文件"
exit 1
fi
LOG_INFO "步骤7清理测试文件"
rm -f test_class_diagram.tex test_class_diagram.aux test_class_diagram.log test_class_diagram.pdf
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤8卸载texlive-metauml软件包"
dnf remove -y texlive-metauml
CHECK_RESULT $? 0 0 "卸载texlive-metauml失败"
else
LOG_INFO "步骤8保持texlive-metauml安装状态"
fi
LOG_INFO "测试完成UML类图生成功能测试通过"
}
main "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-09
# @License : Mulan PSL v2
# @Desc : Test compiling a LaTeX document using MetaUML
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "检查texlive-metauml软件包是否在yum源中"
dnf list available texlive-metauml &> /dev/null
CHECK_RESULT $? 0 0 "yum源中不存在texlive-metauml软件包"
LOG_INFO "检查当前环境是否已安装texlive-metauml"
if rpm -q texlive-metauml &> /dev/null; then
LOG_INFO "texlive-metauml已安装脚本结束后将保持安装状态"
already_installed=true
else
LOG_INFO "texlive-metauml未安装将在测试步骤中安装并在脚本结束前卸载"
already_installed=false
fi
if [ "$already_installed" = false ]; then
LOG_INFO "安装texlive-metauml软件包"
dnf install -y texlive-metauml
CHECK_RESULT $? 0 0 "安装texlive-metauml失败"
fi
LOG_INFO "创建测试LaTeX文档"
cat > test_metauml.tex << "EOF"
\documentclass{article}
\usepackage{metauml}
\begin{document}
\begin{metapost}
Class.A("MyClass")()
drawObject(A);
\end{metapost}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
LOG_INFO "使用pdflatex编译LaTeX文档首次编译"
pdflatex -interaction=nonstopmode test_metauml.tex
CHECK_RESULT $? 0 0 "pdflatex首次编译失败"
LOG_INFO "使用pdflatex编译LaTeX文档第二次编译"
pdflatex -interaction=nonstopmode test_metauml.tex
CHECK_RESULT $? 0 0 "pdflatex第二次编译失败"
LOG_INFO "检查是否成功生成PDF文件"
if [ -f "test_metauml.pdf" ]; then
LOG_INFO "成功生成test_metauml.pdf文件"
else
LOG_ERROR "未生成test_metauml.pdf文件"
exit 1
fi
LOG_INFO "清理测试生成的中间文件"
rm -f test_metauml.aux test_metauml.log test_metauml.mpx test_metauml.pdf test_metauml.tex
if [ "$already_installed" = false ]; then
LOG_INFO "卸载在测试中安装的texlive-metauml软件包"
dnf remove -y texlive-metauml
CHECK_RESULT $? 0 0 "卸载texlive-metauml失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-09
# @License : Mulan PSL v2
# @Desc : Test installation of the texlive-metauml package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test installation of the texlive-metauml package"
LOG_INFO "步骤1检查texlive-metauml软件包是否在yum源中"
dnf list available texlive-metauml
if [ $? -ne 0 ]; then
LOG_ERROR "texlive-metauml软件包不在yum源中"
exit 255
fi
LOG_INFO "步骤2检查是否已经安装texlive-metauml"
if rpm -q texlive-metauml > /dev/null 2>&1; then
LOG_INFO "texlive-metauml已经安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-metauml未安装将执行安装测试"
INSTALLED=false
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-metauml软件包"
dnf install -y texlive-metauml
CHECK_RESULT $? 0 0 "安装texlive-metauml失败"
fi
LOG_INFO "步骤4验证texlive-metauml安装成功"
rpm -q texlive-metauml
CHECK_RESULT $? 0 0 "验证texlive-metauml安装失败"
LOG_INFO "步骤5测试texlive-metauml功能示例检查相关文件是否存在"
if [ -f /usr/share/texlive/texmf-dist/tex/latex/metauml/metauml.sty ]; then
LOG_INFO "找到metauml.sty文件功能正常"
else
LOG_ERROR "未找到metauml.sty文件功能异常"
exit 1
fi
LOG_INFO "步骤6清理环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-metauml软件包"
dnf remove -y texlive-metauml
CHECK_RESULT $? 0 0 "卸载texlive-metauml失败"
else
LOG_INFO "测试开始时已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

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

View File

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

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : Test compilation of the template
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查texlive-pkuthss是否已安装
LOG_INFO "检查texlive-pkuthss是否已安装"
rpm -q texlive-pkuthss > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-pkuthss已安装测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-pkuthss未安装测试完成后将卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-pkuthss软件包
LOG_INFO "检查yum源中是否有texlive-pkuthss软件包"
dnf list available texlive-pkuthss > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到texlive-pkuthss软件包"
# 安装texlive-pkuthss
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-pkuthss"
dnf install -y texlive-pkuthss
CHECK_RESULT $? 0 0 "安装texlive-pkuthss失败"
fi
# 测试模板编译功能
LOG_INFO "测试模板编译功能"
pdflatex -interaction=nonstopmode pkuthss.ins > /dev/null 2>&1
CHECK_RESULT $? 0 0 "模板编译失败"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f pkuthss.{aux,log,out} > /dev/null 2>&1
# 如果测试前未安装texlive-pkuthss则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-pkuthss"
dnf remove -y texlive-pkuthss
CHECK_RESULT $? 0 0 "卸载texlive-pkuthss失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

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