Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -13,18 +13,6 @@
|
||||
{
|
||||
"name": "test_apache-commons-jci-core_function_version",
|
||||
"desc": "测试检查已安装的apache-commons-jci-core软件包版本信息是否正确显示。"
|
||||
},
|
||||
{
|
||||
"name": "test_apache-commons-jci-core_function_classload",
|
||||
"desc": "测试在Java程序中能够成功加载并使用apache-commons-jci-core的核心类(如org.apache.commons.jci.compilers.JavaCompiler)。"
|
||||
},
|
||||
{
|
||||
"name": "test_apache-commons-jci-core_function_compile",
|
||||
"desc": "测试使用JCI的Java编译器接口对简单的Java源代码字符串进行动态编译,并验证编译成功。"
|
||||
},
|
||||
{
|
||||
"name": "test_apache-commons-jci-core_function_jar",
|
||||
"desc": "测试将JCI库作为依赖项引入Java项目,项目能够正常编译和运行,验证其基础功能可用。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,10 +5,6 @@
|
||||
{
|
||||
"name": "test_eigen3-devel_function_install",
|
||||
"desc": "Test installation of eigen3-devel package"
|
||||
},
|
||||
{
|
||||
"name": "test_eigen3-devel_function_compile",
|
||||
"desc": "Test compilation with eigen3-devel headers"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,29 +2,9 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/flamegraph/flamegraph-demos",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_flamegraph-demos_function_basic",
|
||||
"desc": "Test basic functionality of flamegraph-demos"
|
||||
},
|
||||
{
|
||||
"name": "test_flamegraph-demos_function_install",
|
||||
"desc": "Test installation of flamegraph-demos package"
|
||||
},
|
||||
{
|
||||
"name": "test_flamegraph-demos_function_uninstall",
|
||||
"desc": "Test uninstallation of flamegraph-demos package"
|
||||
},
|
||||
{
|
||||
"name": "test_flamegraph-demos_function_version",
|
||||
"desc": "Test version display of flamegraph-demos"
|
||||
},
|
||||
{
|
||||
"name": "test_flamegraph-demos_function_basic_demo",
|
||||
"desc": "Test running a basic demo from the package"
|
||||
},
|
||||
{
|
||||
"name": "test_flamegraph-demos_function_help",
|
||||
"desc": "Test help information output"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -17,10 +17,6 @@
|
||||
{
|
||||
"name": "test_fuse3-help_function_help_content",
|
||||
"desc": "测试安装后fuse3-help包提供的帮助文档内容完整可读。"
|
||||
},
|
||||
{
|
||||
"name": "test_fuse3-help_function_man_page",
|
||||
"desc": "测试fuse3-help软件包提供的man手册页可以正常访问和显示。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,22 +6,10 @@
|
||||
"name": "test_hdf5-mpich_function_install",
|
||||
"desc": "测试软件包hdf5-mpich是否可以通过包管理器正常安装"
|
||||
},
|
||||
{
|
||||
"name": "test_hdf5-mpich_function_installed",
|
||||
"desc": "测试系统是否已正确安装hdf5-mpich软件包及其依赖"
|
||||
},
|
||||
{
|
||||
"name": "test_hdf5-mpich_function_version",
|
||||
"desc": "测试可以查询到已安装的hdf5-mpich软件包版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_hdf5-mpich_function_basic_io",
|
||||
"desc": "测试使用h5cc编译并运行一个简单的HDF5文件读写程序"
|
||||
},
|
||||
{
|
||||
"name": "test_hdf5-mpich_function_parallel_io",
|
||||
"desc": "测试使用mpirun运行一个简单的并行HDF5读写程序"
|
||||
},
|
||||
{
|
||||
"name": "test_hdf5-mpich_function_uninstall",
|
||||
"desc": "测试软件包hdf5-mpich可以通过包管理器正常卸载"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/libevdev/libevdev-utils",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_libevdev-utils_uninstall",
|
||||
"desc": "测试 libevdev-utils 软件包的卸载功能",
|
||||
"machine num": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/libguestfs/libguestfs-gobject-devel",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_libguestfs-gobject-devel_function_install",
|
||||
"desc": "测试软件包libguestfs-gobject-devel的安装功能,验证其是否能被成功安装到系统中。"
|
||||
},
|
||||
{
|
||||
"name": "test_libguestfs-gobject-devel_function_check",
|
||||
"desc": "测试软件包libguestfs-gobject-devel的查询功能,验证其是否已安装或可通过包管理器查询到。"
|
||||
},
|
||||
{
|
||||
"name": "test_libguestfs-gobject-devel_function_uninstall",
|
||||
"desc": "测试软件包libguestfs-gobject-devel的卸载功能,验证其是否能被干净地从系统中移除。"
|
||||
},
|
||||
{
|
||||
"name": "test_libguestfs-gobject-devel_function_headers",
|
||||
"desc": "测试软件包libguestfs-gobject-devel提供的头文件,验证关键的开发头文件(如libguestfs-gobject.h)是否存在。"
|
||||
},
|
||||
{
|
||||
"name": "test_libguestfs-gobject-devel_function_pkgconfig",
|
||||
"desc": "测试软件包libguestfs-gobject-devel提供的pkg-config文件,验证是否能通过pkg-config正确获取编译和链接信息。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/lz4-java/lz4-java-javadoc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_lz4-java-javadoc_function_docgen",
|
||||
"desc": "Verify Javadoc generation for lz4-java"
|
||||
},
|
||||
{
|
||||
"name": "test_lz4-java-javadoc_function_docacc",
|
||||
"desc": "Verify Javadoc accessibility for lz4-java"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,22 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/nftables/nftables-devel",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_nftables-devel_function_install",
|
||||
"desc": "测试 nftables-devel 软件包的安装功能,验证开发头文件和库文件是否正确安装到系统标准路径。"
|
||||
},
|
||||
{
|
||||
"name": "test_nftables-devel_function_uninstall",
|
||||
"desc": "测试 nftables-devel 软件包的卸载功能,验证移除后相关开发文件是否被正确清理。"
|
||||
},
|
||||
{
|
||||
"name": "test_nftables-devel_function_headers",
|
||||
"desc": "测试 nftables-devel 提供的头文件(如 libnftables.h)是否存在且可被 C 编译器正常包含。"
|
||||
},
|
||||
{
|
||||
"name": "test_nftables-devel_function_linking",
|
||||
"desc": "测试使用 nftables-devel 的库文件(如 libnftables)进行简单的程序编译和链接,验证开发环境可用性。"
|
||||
},
|
||||
{
|
||||
"name": "test_nftables-devel_function_pkgconfig",
|
||||
"desc": "测试 pkg-config 是否能正确查询 nftables 开发包的版本和编译链接参数。"
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/python-pyvmomi/python-pyvmomi-help",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_python-pyvmomi-help_function_connect",
|
||||
"desc": "Test connection to VMware vSphere"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-base/texlive-adhocfilelist",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__v",
|
||||
"desc": "测试 adhocfilelist 命令的 -v 参数(详细输出模式)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__upper_v",
|
||||
"desc": "测试 adhocfilelist 命令的 -V 参数(显示版本信息)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__h",
|
||||
"desc": "测试 adhocfilelist 命令的 -h 参数(显示帮助信息)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__upper_h",
|
||||
"desc": "测试 adhocfilelist 命令的 -H 参数(显示详细帮助信息)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__upper_q",
|
||||
"desc": "测试 adhocfilelist 命令的 -Q 参数(安静模式,不输出警告)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__upper_q__v",
|
||||
"desc": "测试 adhocfilelist 命令的 -Q 和 -v 参数组合(安静模式与详细输出)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__upper_v__h",
|
||||
"desc": "测试 adhocfilelist 命令的 -V 和 -h 参数组合(版本信息与帮助信息)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_adhocfilelist__upper_h__upper_q",
|
||||
"desc": "测试 adhocfilelist 命令的 -H 和 -Q 参数组合(详细帮助信息与安静模式)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_install",
|
||||
"desc": "测试软件包安装功能"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_uninstall",
|
||||
"desc": "测试软件包卸载功能"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_check_installed",
|
||||
"desc": "测试检查软件包是否已安装"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_basic_usage",
|
||||
"desc": "测试基本命令执行功能"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_generate_list",
|
||||
"desc": "测试生成文件列表功能"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_parse_input",
|
||||
"desc": "测试解析输入文件功能"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_output_format",
|
||||
"desc": "测试输出格式控制功能"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-adhocfilelist_function_error_handling",
|
||||
"desc": "测试错误输入处理功能"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-b/texlive-auncial-new",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-auncial-new_function_font_rendering",
|
||||
"desc": "Test the rendering of auncial-new font"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,10 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-chemcompounds-doc_function_exist",
|
||||
"desc": "Test if package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-chemcompounds-doc_function_doc_access",
|
||||
"desc": "Test documentation file access"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -9,14 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-exsol-doc_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exsol-doc_function_check_doc",
|
||||
"desc": "Check documentation files exist"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exsol-doc_function_verify_content",
|
||||
"desc": "Verify documentation content integrity"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,18 +2,10 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-n/texlive-luatextra-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-luatextra-doc_function_doc",
|
||||
"desc": "Verify the documentation files are installed correctly"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luatextra-doc_function_install",
|
||||
"desc": "Verify the package can be installed successfully via the package manager."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luatextra_doc_function_uninstall",
|
||||
"desc": "Verify the package can be completely removed from the system."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luatextra_doc_function_verify",
|
||||
"desc": "Check if the package and its documentation files are correctly installed."
|
||||
|
||||
@@ -6,21 +6,9 @@
|
||||
"name": "test_texlive-newpx-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-newpx-doc_function_check_installed",
|
||||
"desc": "Test if the documentation package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-newpx-doc_function_list_files",
|
||||
"desc": "Test listing the documentation files"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-newpx-doc_function_view_manual",
|
||||
"desc": "Test accessing the main documentation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-newpx-doc_function_verify_content",
|
||||
"desc": "Test verifying key documentation content exists"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-u/texlive-seealso",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-seealso_function_basic",
|
||||
"desc": "Test basic functionality of texlive-seealso"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-seealso_function_install",
|
||||
"desc": "Test the installation of texlive-seealso package"
|
||||
@@ -17,14 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-seealso_function_check_installed",
|
||||
"desc": "Check if texlive-seealso package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-seealso_function_usage_basic",
|
||||
"desc": "Test basic usage of seealso environment"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-seealso_function_usage_custom",
|
||||
"desc": "Test custom seealso environment styling"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,18 +2,10 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-v/texlive-shadow-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-shadow-doc_function_docgen",
|
||||
"desc": "Test documentation generation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-shadow-doc_function_install",
|
||||
"desc": "Test installation of the package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-shadow-doc_function_uninstall",
|
||||
"desc": "Test uninstallation of the package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-shadow-doc_function_check_installed",
|
||||
"desc": "Test if the package is installed"
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-w/texlive-texlive-it-doc",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-texlive-it-doc_function_doc",
|
||||
"desc": "Verify documentation files existence"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,14 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-numberpt",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-numberpt_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-numberpt_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-numberpt_function_basic",
|
||||
"desc": "Test basic command usage"
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试在Java程序中能够成功加载并使用apache-commons-jci-core的核心类(如org.apache.commons.jci.compilers.JavaCompiler)。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试apache-commons-jci-core的核心类加载功能"
|
||||
|
||||
LOG_INFO "检查yum源中是否有apache-commons-jci-core软件包"
|
||||
dnf list available apache-commons-jci-core 2>/dev/null | grep -q apache-commons-jci-core
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到apache-commons-jci-core软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查当前环境是否已安装apache-commons-jci-core"
|
||||
rpm -q apache-commons-jci-core >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "apache-commons-jci-core已安装,将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "apache-commons-jci-core未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装apache-commons-jci-core软件包"
|
||||
dnf install -y apache-commons-jci-core
|
||||
CHECK_RESULT $? 0 0 "安装apache-commons-jci-core失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "创建一个测试Java程序,用于加载apache-commons-jci-core的核心类"
|
||||
cat > TestJciCore.java << "EOF"
|
||||
import org.apache.commons.jci.compilers.JavaCompiler;
|
||||
public class TestJciCore {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
JavaCompiler compiler = new org.apache.commons.jci.compilers.JavaCompiler();
|
||||
System.out.println("成功加载org.apache.commons.jci.compilers.JavaCompiler类");
|
||||
} catch (Exception e) {
|
||||
System.err.println("加载类失败: " + e.getMessage());
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试Java程序失败"
|
||||
|
||||
LOG_INFO "编译测试Java程序"
|
||||
javac -cp $(rpm -ql apache-commons-jci-core | grep -E "\.jar$" | head -1) TestJciCore.java
|
||||
CHECK_RESULT $? 0 0 "编译测试Java程序失败"
|
||||
|
||||
LOG_INFO "运行测试Java程序"
|
||||
java -cp .:$(rpm -ql apache-commons-jci-core | grep -E "\.jar$" | head -1) TestJciCore
|
||||
CHECK_RESULT $? 0 0 "运行测试Java程序失败,无法加载核心类"
|
||||
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f TestJciCore.java TestJciCore.class
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载apache-commons-jci-core软件包"
|
||||
dnf remove -y apache-commons-jci-core
|
||||
CHECK_RESULT $? 0 0 "卸载apache-commons-jci-core失败"
|
||||
else
|
||||
LOG_INFO "保持apache-commons-jci-core的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用JCI的Java编译器接口对简单的Java源代码字符串进行动态编译,并验证编译成功。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试apache-commons-jci-core的编译功能"
|
||||
LOG_INFO "步骤1: 检查环境是否已安装apache-commons-jci-core"
|
||||
rpm -q apache-commons-jci-core
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "apache-commons-jci-core已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "apache-commons-jci-core未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否有apache-commons-jci-core软件包"
|
||||
dnf list available apache-commons-jci-core
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到apache-commons-jci-core软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到apache-commons-jci-core软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3: 安装apache-commons-jci-core软件包"
|
||||
dnf install -y apache-commons-jci-core
|
||||
CHECK_RESULT $? 0 0 "安装apache-commons-jci-core软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 准备简单的Java源代码字符串"
|
||||
JAVA_CODE="public class HelloWorld { public static void main(String[] args) { System.out.println(\"Hello, World!\"); } }"
|
||||
|
||||
LOG_INFO "步骤5: 使用JCI的Java编译器接口进行动态编译"
|
||||
cat > TestJCICompile.java << "EOF"
|
||||
import org.apache.commons.jci.compilers.JavaCompiler;
|
||||
import org.apache.commons.jci.compilers.JavaCompilerFactory;
|
||||
import org.apache.commons.jci.compilers.CompilationResult;
|
||||
import org.apache.commons.jci.readers.MemoryResourceReader;
|
||||
import org.apache.commons.jci.writers.MemoryResourceWriter;
|
||||
|
||||
public class TestJCICompile {
|
||||
public static void main(String[] args) {
|
||||
JavaCompilerFactory factory = new JavaCompilerFactory();
|
||||
JavaCompiler compiler = factory.createCompiler("eclipse");
|
||||
MemoryResourceReader reader = new MemoryResourceReader();
|
||||
reader.add("HelloWorld.java", "public class HelloWorld { public static void main(String[] args) { System.out.println(\"Hello, World!\"); } }".getBytes());
|
||||
MemoryResourceWriter writer = new MemoryResourceWriter();
|
||||
CompilationResult result = compiler.compile(new String[]{"HelloWorld.java"}, reader, writer);
|
||||
if (result.getErrors().length == 0) {
|
||||
System.out.println("编译成功");
|
||||
System.exit(0);
|
||||
} else {
|
||||
System.out.println("编译失败");
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
javac -cp "/usr/share/java/commons-jci-core.jar:/usr/share/java/commons-jci-commons.jar" TestJCICompile.java
|
||||
CHECK_RESULT $? 0 0 "编译测试Java程序失败"
|
||||
|
||||
LOG_INFO "步骤6: 运行测试程序验证动态编译功能"
|
||||
java -cp ".:/usr/share/java/commons-jci-core.jar:/usr/share/java/commons-jci-commons.jar" TestJCICompile
|
||||
CHECK_RESULT $? 0 0 "使用JCI进行动态编译失败"
|
||||
|
||||
LOG_INFO "步骤7: 清理测试文件"
|
||||
rm -f TestJCICompile.java TestJCICompile.class
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤8: 卸载apache-commons-jci-core软件包"
|
||||
dnf remove -y apache-commons-jci-core
|
||||
CHECK_RESULT $? 0 0 "卸载apache-commons-jci-core软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,139 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试将JCI库作为依赖项引入Java项目,项目能够正常编译和运行,验证其基础功能可用。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试apache-commons-jci-core功能jar包"
|
||||
LOG_INFO "检查yum源中是否存在apache-commons-jci-core软件包"
|
||||
dnf list available apache-commons-jci-core > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到apache-commons-jci-core软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查是否已安装apache-commons-jci-core"
|
||||
rpm -q apache-commons-jci-core > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "未安装,开始安装apache-commons-jci-core"
|
||||
dnf install -y apache-commons-jci-core
|
||||
CHECK_RESULT $? 0 0 "安装apache-commons-jci-core失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "创建测试Java项目目录"
|
||||
mkdir -p test_jci_project/src/main/java
|
||||
CHECK_RESULT $? 0 0 "创建项目目录失败"
|
||||
|
||||
LOG_INFO "创建pom.xml文件"
|
||||
cat > test_jci_project/pom.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.test</groupId>
|
||||
<artifactId>jci-test</artifactId>
|
||||
<version>1.0</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>commons-jci</groupId>
|
||||
<artifactId>commons-jci-core</artifactId>
|
||||
<version>1.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建pom.xml失败"
|
||||
|
||||
LOG_INFO "创建测试Java类"
|
||||
cat > test_jci_project/src/main/java/TestJCI.java << EOF
|
||||
import org.apache.commons.jci.compilers.JavaCompiler;
|
||||
import org.apache.commons.jci.compilers.JavacJavaCompiler;
|
||||
import org.apache.commons.jci.readers.MemoryResourceReader;
|
||||
import org.apache.commons.jci.problems.CompilationProblem;
|
||||
|
||||
public class TestJCI {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
JavaCompiler compiler = new JavacJavaCompiler();
|
||||
MemoryResourceReader reader = new MemoryResourceReader();
|
||||
|
||||
String className = "HelloWorld";
|
||||
String code = "public class HelloWorld { public static void main(String[] args) { System.out.println(\"Hello from JCI!\"); } }";
|
||||
|
||||
reader.add(className + ".java", code.getBytes());
|
||||
|
||||
String[] sources = new String[]{className + ".java"};
|
||||
org.apache.commons.jci.compilers.CompilationResult result = compiler.compile(sources, reader, null);
|
||||
|
||||
if (result.getErrors().length > 0) {
|
||||
System.out.println("编译错误:");
|
||||
for (CompilationProblem problem : result.getErrors()) {
|
||||
System.out.println(problem.getMessage());
|
||||
}
|
||||
System.exit(1);
|
||||
} else {
|
||||
System.out.println("JCI库功能测试成功!");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.err.println("测试失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试Java类失败"
|
||||
|
||||
LOG_INFO "进入项目目录并编译项目"
|
||||
cd test_jci_project
|
||||
mvn compile
|
||||
CHECK_RESULT $? 0 0 "Maven编译失败"
|
||||
|
||||
LOG_INFO "运行测试程序"
|
||||
mvn exec:java -Dexec.mainClass="TestJCI"
|
||||
CHECK_RESULT $? 0 0 "运行测试程序失败"
|
||||
|
||||
LOG_INFO "返回上级目录并清理测试项目"
|
||||
cd ..
|
||||
rm -rf test_jci_project
|
||||
CHECK_RESULT $? 0 0 "清理测试项目失败"
|
||||
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "测试完成,卸载安装的软件包"
|
||||
dnf remove -y apache-commons-jci-core
|
||||
CHECK_RESULT $? 0 0 "卸载apache-commons-jci-core失败"
|
||||
else
|
||||
LOG_INFO "测试完成,保持原有安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "apache-commons-jci-core功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test compilation with eigen3-devel headers
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test compilation with eigen3-devel headers"
|
||||
|
||||
# 检查yum源中是否存在eigen3-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在eigen3-devel软件包"
|
||||
dnf list available eigen3-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到eigen3-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装eigen3-devel
|
||||
LOG_INFO "检查是否已安装eigen3-devel"
|
||||
rpm -q eigen3-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "eigen3-devel已安装,测试结束后保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "eigen3-devel未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 安装eigen3-devel
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装eigen3-devel"
|
||||
dnf install -y eigen3-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装eigen3-devel失败"
|
||||
fi
|
||||
|
||||
# 测试编译eigen3头文件
|
||||
LOG_INFO "测试编译eigen3头文件"
|
||||
cat <<EOF > test_eigen.cpp
|
||||
#include <eigen3/Eigen/Dense>
|
||||
int main() {
|
||||
Eigen::MatrixXd m(2,2);
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
g++ test_eigen.cpp -o test_eigen > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "编译eigen3头文件失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_eigen.cpp test_eigen > /dev/null 2>&1
|
||||
|
||||
# 如果之前未安装,则卸载eigen3-devel
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载eigen3-devel"
|
||||
dnf remove -y eigen3-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载eigen3-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test compilation with eigen3-devel headers"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of flamegraph-demos
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查flamegraph-demos是否已安装
|
||||
LOG_INFO "检查flamegraph-demos是否已安装"
|
||||
if dnf list installed flamegraph-demos &>/dev/null; then
|
||||
LOG_INFO "flamegraph-demos已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "flamegraph-demos未安装,将在测试后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在flamegraph-demos软件包
|
||||
LOG_INFO "检查yum源中是否存在flamegraph-demos软件包"
|
||||
if ! dnf list available flamegraph-demos &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到flamegraph-demos软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装flamegraph-demos(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装flamegraph-demos"
|
||||
dnf install -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "安装flamegraph-demos失败"
|
||||
fi
|
||||
|
||||
# 测试flamegraph-demos基本功能
|
||||
LOG_INFO "测试flamegraph-demos基本功能"
|
||||
# 示例命令,假设flamegraph-demos支持--version参数
|
||||
flamegraph-demos --version &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "flamegraph-demos --version命令执行失败"
|
||||
|
||||
# 检查不支持的参数(示例)
|
||||
LOG_INFO "检查不支持的参数(示例)"
|
||||
if flamegraph-demos --invalid-param &>/dev/null; then
|
||||
LOG_ERROR "flamegraph-demos支持了不应支持的参数--invalid-param"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境(如果脚本开始时未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载flamegraph-demos"
|
||||
dnf remove -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "卸载flamegraph-demos失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复初始状态"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,61 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test running a basic demo from the package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:运行flamegraph-demos包中的基本演示程序"
|
||||
LOG_INFO "步骤1:检查flamegraph-demos软件包是否已安装"
|
||||
if rpm -q flamegraph-demos > /dev/null 2>&1; then
|
||||
LOG_INFO "flamegraph-demos软件包已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "flamegraph-demos软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
LOG_INFO "步骤2:检查yum源中是否存在flamegraph-demos软件包"
|
||||
dnf list available flamegraph-demos > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到flamegraph-demos软件包"
|
||||
LOG_INFO "步骤3:如果未安装,则安装flamegraph-demos软件包"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf install -y flamegraph-demos > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装flamegraph-demos软件包失败"
|
||||
LOG_INFO "flamegraph-demos软件包安装成功"
|
||||
fi
|
||||
LOG_INFO "步骤4:运行flamegraph-demos包中的基本演示程序"
|
||||
LOG_INFO "检查flamegraph-demos命令是否支持基本演示参数"
|
||||
flamegraph-demos --help 2>&1 | grep -q "basic-demo"
|
||||
CHECK_RESULT $? 0 0 "flamegraph-demos命令不支持基本演示参数"
|
||||
LOG_INFO "执行flamegraph-demos basic-demo命令"
|
||||
flamegraph-demos basic-demo
|
||||
CHECK_RESULT $? 0 0 "运行flamegraph-demos基本演示程序失败"
|
||||
LOG_INFO "flamegraph-demos基本演示程序运行成功"
|
||||
LOG_INFO "步骤5:清理环境,恢复到之前的状态"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载flamegraph-demos软件包"
|
||||
dnf remove -y flamegraph-demos > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载flamegraph-demos软件包失败"
|
||||
LOG_INFO "flamegraph-demos软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "flamegraph-demos软件包在脚本执行前已安装,保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,74 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test help information output
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试帮助信息输出"
|
||||
|
||||
# 检查flamegraph-demos软件包是否在yum源中
|
||||
LOG_INFO "检查flamegraph-demos软件包是否在yum源中"
|
||||
dnf list available flamegraph-demos > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到flamegraph-demos软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装flamegraph-demos
|
||||
LOG_INFO "检查是否已安装flamegraph-demos"
|
||||
rpm -q flamegraph-demos > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "flamegraph-demos已安装,将保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "flamegraph-demos未安装,将进行安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装则安装软件包
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装flamegraph-demos软件包"
|
||||
dnf install -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "安装flamegraph-demos失败"
|
||||
fi
|
||||
|
||||
# 测试帮助信息输出
|
||||
LOG_INFO "测试flamegraph-demos帮助信息输出"
|
||||
flamegraph-demos --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "flamegraph-demos帮助信息输出测试失败"
|
||||
|
||||
# 测试无效参数
|
||||
LOG_INFO "测试无效参数"
|
||||
flamegraph-demos --invalid-param > /dev/null 2>&1
|
||||
if [ $? -ne 255 ]; then
|
||||
LOG_ERROR "无效参数处理不符合预期"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$ALREADY_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载flamegraph-demos软件包"
|
||||
dnf remove -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "卸载flamegraph-demos失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test uninstallation of flamegraph-demos package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装flamegraph-demos
|
||||
LOG_INFO "检查flamegraph-demos是否已安装"
|
||||
rpm -q flamegraph-demos > /dev/null 2>&1
|
||||
installed_status=$?
|
||||
|
||||
# 记录初始安装状态
|
||||
if [ $installed_status -eq 0 ]; then
|
||||
LOG_INFO "flamegraph-demos已安装,脚本结束时将保持安装状态"
|
||||
initial_installed=true
|
||||
else
|
||||
LOG_INFO "flamegraph-demos未安装,将在测试后卸载"
|
||||
initial_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有flamegraph-demos软件包
|
||||
LOG_INFO "检查yum源中是否存在flamegraph-demos软件包"
|
||||
dnf list available flamegraph-demos > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到flamegraph-demos软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$initial_installed" = false ]; then
|
||||
LOG_INFO "安装flamegraph-demos软件包"
|
||||
dnf install -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "安装flamegraph-demos失败"
|
||||
fi
|
||||
|
||||
# 验证软件包安装成功
|
||||
LOG_INFO "验证flamegraph-demos已正确安装"
|
||||
rpm -q flamegraph-demos > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "flamegraph-demos未正确安装"
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "执行flamegraph-demos卸载测试"
|
||||
dnf remove -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "卸载flamegraph-demos失败"
|
||||
|
||||
# 验证软件包已卸载
|
||||
LOG_INFO "验证flamegraph-demos已完全卸载"
|
||||
rpm -q flamegraph-demos > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "flamegraph-demos卸载后仍然存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 如果最初未安装,则重新安装以恢复环境
|
||||
if [ "$initial_installed" = false ]; then
|
||||
LOG_INFO "恢复环境:重新安装flamegraph-demos"
|
||||
dnf install -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "恢复安装flamegraph-demos失败"
|
||||
else
|
||||
LOG_INFO "恢复环境:重新安装flamegraph-demos"
|
||||
dnf install -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "重新安装flamegraph-demos失败"
|
||||
fi
|
||||
|
||||
# 最终验证环境状态
|
||||
LOG_INFO "验证环境已恢复到初始状态"
|
||||
rpm -q flamegraph-demos > /dev/null 2>&1
|
||||
if [ "$initial_installed" = true ]; then
|
||||
CHECK_RESULT $? 0 0 "环境未恢复到已安装状态"
|
||||
LOG_INFO "环境已恢复:flamegraph-demos保持安装状态"
|
||||
else
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已恢复:flamegraph-demos已安装(测试后状态)"
|
||||
else
|
||||
LOG_ERROR "环境恢复失败:flamegraph-demos未安装"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test version display of flamegraph-demos
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试flamegraph-demos版本显示功能"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在flamegraph-demos软件包"
|
||||
dnf list available flamegraph-demos &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到flamegraph-demos软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2:检查flamegraph-demos是否已安装"
|
||||
rpm -q flamegraph-demos &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "flamegraph-demos已安装,将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "flamegraph-demos未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
LOG_INFO "步骤3:安装flamegraph-demos"
|
||||
dnf install -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "安装flamegraph-demos失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:检查flamegraph-demos命令是否存在"
|
||||
which flamegraph-demos &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "flamegraph-demos命令不存在"
|
||||
LOG_INFO "步骤5:测试flamegraph-demos版本显示功能"
|
||||
flamegraph-demos --version &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_INFO "尝试使用-v参数"
|
||||
flamegraph-demos -v &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_INFO "尝试使用version参数"
|
||||
flamegraph-demos version &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "flamegraph-demos不支持版本显示参数"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
LOG_INFO "步骤6:验证版本显示输出"
|
||||
VERSION_OUTPUT=$(flamegraph-demos --version 2>/dev/null || flamegraph-demos -v 2>/dev/null || flamegraph-demos version 2>/dev/null)
|
||||
if [ -z "$VERSION_OUTPUT" ]; then
|
||||
LOG_ERROR "版本显示输出为空"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "版本显示输出: $VERSION_OUTPUT"
|
||||
fi
|
||||
LOG_INFO "步骤7:环境清理"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载flamegraph-demos"
|
||||
dnf remove -y flamegraph-demos
|
||||
CHECK_RESULT $? 0 0 "卸载flamegraph-demos失败"
|
||||
LOG_INFO "已恢复环境到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持flamegraph-demos安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-02-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试fuse3-help软件包提供的man手册页可以正常访问和显示。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试环境检查
|
||||
LOG_INFO "检查测试环境是否已安装fuse3-help软件包"
|
||||
rpm -q fuse3-help
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "fuse3-help软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "fuse3-help软件包未安装,将在测试中安装并在测试结束后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在fuse3-help软件包
|
||||
LOG_INFO "检查yum源中是否存在fuse3-help软件包"
|
||||
dnf list available fuse3-help 2>&1 | grep -q fuse3-help
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到fuse3-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "安装fuse3-help软件包"
|
||||
dnf install -y fuse3-help
|
||||
CHECK_RESULT $? 0 0 "安装fuse3-help软件包失败"
|
||||
fi
|
||||
|
||||
# 检查man命令是否存在
|
||||
LOG_INFO "检查man命令是否存在"
|
||||
which man > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "man命令不存在"
|
||||
|
||||
# 检查fuse3-help提供的man手册页是否可以正常访问
|
||||
LOG_INFO "检查fuse3-help提供的man手册页是否可以正常访问"
|
||||
man -w fuse3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "fuse3手册页不存在"
|
||||
|
||||
# 测试man手册页可以正常显示
|
||||
LOG_INFO "测试fuse3手册页可以正常显示"
|
||||
man fuse3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "fuse3手册页无法正常显示"
|
||||
|
||||
# 检查fuse3.conf手册页
|
||||
LOG_INFO "检查fuse3.conf手册页是否可以正常访问"
|
||||
man -w fuse3.conf > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "测试fuse3.conf手册页可以正常显示"
|
||||
man fuse3.conf > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "fuse3.conf手册页无法正常显示"
|
||||
else
|
||||
LOG_INFO "fuse3.conf手册页不存在,跳过此项测试"
|
||||
fi
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "卸载测试中安装的fuse3-help软件包"
|
||||
dnf remove -y fuse3-help
|
||||
CHECK_RESULT $? 0 0 "卸载fuse3-help软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装fuse3-help软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "fuse3-help软件包man手册页测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,169 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# 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-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用h5cc编译并运行一个简单的HDF5文件读写程序
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用h5cc编译并运行一个简单的HDF5文件读写程序"
|
||||
|
||||
# 定义软件包名称
|
||||
HDF5_PKG="hdf5-devel"
|
||||
MPICH_PKG="mpich-devel"
|
||||
COMPILER_PKG="gcc"
|
||||
|
||||
# 步骤1:检查yum源中是否存在所需的软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在所需的软件包"
|
||||
for pkg in $HDF5_PKG $MPICH_PKG $COMPILER_PKG; do
|
||||
if ! dnf list available $pkg &> /dev/null; then
|
||||
LOG_ERROR "软件包 $pkg 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
done
|
||||
|
||||
# 步骤2:检查是否已安装软件包,并记录安装状态
|
||||
LOG_INFO "步骤2:检查是否已安装软件包,并记录安装状态"
|
||||
INSTALLED_PKGS=""
|
||||
for pkg in $HDF5_PKG $MPICH_PKG $COMPILER_PKG; do
|
||||
if rpm -q $pkg &> /dev/null; then
|
||||
LOG_INFO "软件包 $pkg 已安装"
|
||||
INSTALLED_PKGS="$INSTALLED_PKGS $pkg"
|
||||
else
|
||||
LOG_INFO "软件包 $pkg 未安装"
|
||||
fi
|
||||
done
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
LOG_INFO "步骤3:如果未安装,则安装软件包"
|
||||
TO_INSTALL=""
|
||||
for pkg in $HDF5_PKG $MPICH_PKG $COMPILER_PKG; do
|
||||
if ! echo $INSTALLED_PKGS | grep -q $pkg; then
|
||||
TO_INSTALL="$TO_INSTALL $pkg"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$TO_INSTALL" ]; then
|
||||
dnf install -y $TO_INSTALL
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
else
|
||||
LOG_INFO "所有所需软件包均已安装,无需重新安装"
|
||||
fi
|
||||
|
||||
# 步骤4:检查h5cc命令是否可用
|
||||
LOG_INFO "步骤4:检查h5cc命令是否可用"
|
||||
if ! command -v h5cc &> /dev/null; then
|
||||
LOG_ERROR "h5cc命令不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:创建简单的HDF5文件读写程序
|
||||
LOG_INFO "步骤5:创建简单的HDF5文件读写程序"
|
||||
cat > test_hdf5.c << "EOF"
|
||||
#include "hdf5.h"
|
||||
#define FILE_NAME "test_hdf5_file.h5"
|
||||
|
||||
int main() {
|
||||
hid_t file_id, dataset_id, dataspace_id;
|
||||
herr_t status;
|
||||
int data[4] = {1, 2, 3, 4};
|
||||
int read_data[4] = {0};
|
||||
|
||||
// 创建HDF5文件
|
||||
file_id = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (file_id < 0) return 1;
|
||||
|
||||
// 创建数据空间
|
||||
hsize_t dims[1] = {4};
|
||||
dataspace_id = H5Screate_simple(1, dims, NULL);
|
||||
if (dataspace_id < 0) return 1;
|
||||
|
||||
// 创建数据集
|
||||
dataset_id = H5Dcreate2(file_id, "/dataset", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (dataset_id < 0) return 1;
|
||||
|
||||
// 写入数据
|
||||
status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data);
|
||||
if (status < 0) return 1;
|
||||
|
||||
// 关闭资源
|
||||
H5Dclose(dataset_id);
|
||||
H5Sclose(dataspace_id);
|
||||
H5Fclose(file_id);
|
||||
|
||||
// 重新打开文件读取数据
|
||||
file_id = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
if (file_id < 0) return 1;
|
||||
|
||||
dataset_id = H5Dopen2(file_id, "/dataset", H5P_DEFAULT);
|
||||
if (dataset_id < 0) return 1;
|
||||
|
||||
status = H5Dread(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, read_data);
|
||||
if (status < 0) return 1;
|
||||
|
||||
// 验证数据
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (read_data[i] != data[i]) return 1;
|
||||
}
|
||||
|
||||
// 关闭资源
|
||||
H5Dclose(dataset_id);
|
||||
H5Fclose(file_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 步骤6:使用h5cc编译程序
|
||||
LOG_INFO "步骤6:使用h5cc编译程序"
|
||||
h5cc test_hdf5.c -o test_hdf5
|
||||
CHECK_RESULT $? 0 0 "编译HDF5程序失败"
|
||||
|
||||
# 步骤7:运行程序
|
||||
LOG_INFO "步骤7:运行程序"
|
||||
./test_hdf5
|
||||
CHECK_RESULT $? 0 0 "运行HDF5程序失败"
|
||||
|
||||
# 步骤8:验证生成的HDF5文件
|
||||
LOG_INFO "步骤8:验证生成的HDF5文件"
|
||||
if [ -f "test_hdf5_file.h5" ]; then
|
||||
LOG_INFO "HDF5文件创建成功"
|
||||
else
|
||||
LOG_ERROR "HDF5文件创建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤9:清理测试文件
|
||||
LOG_INFO "步骤9:清理测试文件"
|
||||
rm -f test_hdf5.c test_hdf5 test_hdf5_file.h5
|
||||
|
||||
# 步骤10:如果脚本开始时未安装软件包,则在结束时卸载
|
||||
LOG_INFO "步骤10:恢复环境状态"
|
||||
if [ -n "$TO_INSTALL" ]; then
|
||||
LOG_INFO "卸载测试期间安装的软件包"
|
||||
dnf remove -y $TO_INSTALL
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
LOG_INFO "软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "测试期间未安装新软件包,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用h5cc编译并运行一个简单的HDF5文件读写程序成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试系统是否已正确安装hdf5-mpich软件包及其依赖
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试系统是否已正确安装hdf5-mpich软件包及其依赖"
|
||||
|
||||
LOG_INFO "步骤1:检查yum源中是否存在hdf5-mpich软件包"
|
||||
if ! dnf list available hdf5-mpich &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到hdf5-mpich软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在hdf5-mpich软件包"
|
||||
|
||||
LOG_INFO "步骤2:检查当前系统是否已安装hdf5-mpich"
|
||||
if rpm -q hdf5-mpich &> /dev/null; then
|
||||
LOG_INFO "hdf5-mpich软件包已安装,标记为预安装状态"
|
||||
PRE_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "hdf5-mpich软件包未安装,标记为未安装状态"
|
||||
PRE_INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3:安装hdf5-mpich软件包及其依赖"
|
||||
if [[ $PRE_INSTALLED == false ]]; then
|
||||
dnf install -y hdf5-mpich
|
||||
CHECK_RESULT $? 0 0 "安装hdf5-mpich软件包失败"
|
||||
LOG_INFO "hdf5-mpich软件包安装成功"
|
||||
else
|
||||
LOG_INFO "hdf5-mpich已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证hdf5-mpich软件包安装正确性"
|
||||
rpm -V hdf5-mpich
|
||||
CHECK_RESULT $? 0 0 "hdf5-mpich软件包验证失败"
|
||||
|
||||
LOG_INFO "步骤5:检查hdf5-mpich相关命令是否可用"
|
||||
if ! command -v h5cc &> /dev/null; then
|
||||
LOG_ERROR "hdf5-mpich相关命令h5cc未找到"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "hdf5-mpich相关命令h5cc可用"
|
||||
|
||||
LOG_INFO "步骤6:执行一个简单的hdf5-mpich功能测试"
|
||||
cat > test_hdf5.c << "EOF"
|
||||
#include "hdf5.h"
|
||||
#define FILE "test.h5"
|
||||
int main() {
|
||||
hid_t file_id;
|
||||
herr_t status;
|
||||
file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
status = H5Fclose(file_id);
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
h5cc test_hdf5.c -o test_hdf5
|
||||
CHECK_RESULT $? 0 0 "编译hdf5测试程序失败"
|
||||
./test_hdf5
|
||||
CHECK_RESULT $? 0 0 "运行hdf5测试程序失败"
|
||||
LOG_INFO "hdf5-mpich功能测试通过"
|
||||
|
||||
LOG_INFO "步骤7:清理测试临时文件"
|
||||
rm -f test_hdf5.c test_hdf5 test.h5
|
||||
|
||||
LOG_INFO "步骤8:环境恢复"
|
||||
if [[ $PRE_INSTALLED == false ]]; then
|
||||
LOG_INFO "卸载测试安装的hdf5-mpich软件包"
|
||||
dnf remove -y hdf5-mpich
|
||||
CHECK_RESULT $? 0 0 "卸载hdf5-mpich软件包失败"
|
||||
LOG_INFO "hdf5-mpich软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "系统原已安装hdf5-mpich,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:系统已正确安装hdf5-mpich软件包及其依赖"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,207 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# 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-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用mpirun运行一个简单的并行HDF5读写程序
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试使用mpirun运行一个简单的并行HDF5读写程序"
|
||||
|
||||
# 定义软件包列表
|
||||
PACKAGES=("hdf5-devel" "hdf5-mpich-devel" "mpich")
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包是否在yum源中"
|
||||
for pkg in "${PACKAGES[@]}"; do
|
||||
if ! dnf list available "$pkg" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $pkg 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查环境是否已安装所需软件包
|
||||
LOG_INFO "检查环境是否已安装所需软件包"
|
||||
INSTALLED=false
|
||||
for pkg in "${PACKAGES[@]}"; do
|
||||
if rpm -q "$pkg" &>/dev/null; then
|
||||
INSTALLED=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装软件包"
|
||||
dnf install -y "${PACKAGES[@]}"
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 编写简单的并行HDF5读写测试程序
|
||||
LOG_INFO "编写简单的并行HDF5读写测试程序"
|
||||
cat > test_hdf5_parallel.c << "EOF"
|
||||
#include <mpi.h>
|
||||
#include <hdf5.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define FILENAME "test_parallel.h5"
|
||||
#define DATASETNAME "IntArray"
|
||||
#define DIM0 4
|
||||
#define DIM1 6
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int rank, size;
|
||||
hid_t file_id, dataset_id, dataspace_id, memspace_id;
|
||||
herr_t status;
|
||||
hsize_t dims[2] = {DIM0, DIM1};
|
||||
hsize_t count[2], offset[2];
|
||||
int data[DIM0][DIM1];
|
||||
int i, j;
|
||||
|
||||
MPI_Init(&argc, &argv);
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &size);
|
||||
|
||||
// 初始化数据
|
||||
for (i = 0; i < DIM0; i++) {
|
||||
for (j = 0; j < DIM1; j++) {
|
||||
data[i][j] = rank * 100 + i * DIM1 + j;
|
||||
}
|
||||
}
|
||||
|
||||
// 创建HDF5文件
|
||||
file_id = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (file_id < 0) {
|
||||
printf("Failed to create file\n");
|
||||
MPI_Abort(MPI_COMM_WORLD, 1);
|
||||
}
|
||||
|
||||
// 创建数据空间
|
||||
dataspace_id = H5Screate_simple(2, dims, NULL);
|
||||
if (dataspace_id < 0) {
|
||||
printf("Failed to create dataspace\n");
|
||||
MPI_Abort(MPI_COMM_WORLD, 1);
|
||||
}
|
||||
|
||||
// 创建数据集
|
||||
dataset_id = H5Dcreate2(file_id, DATASETNAME, H5T_NATIVE_INT, dataspace_id,
|
||||
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (dataset_id < 0) {
|
||||
printf("Failed to create dataset\n");
|
||||
MPI_Abort(MPI_COMM_WORLD, 1);
|
||||
}
|
||||
|
||||
// 定义每个进程写入的数据块
|
||||
count[0] = DIM0 / size;
|
||||
count[1] = DIM1;
|
||||
offset[0] = rank * count[0];
|
||||
offset[1] = 0;
|
||||
|
||||
// 选择数据集的超平面
|
||||
status = H5Sselect_hyperslab(dataspace_id, H5S_SELECT_SET, offset, NULL, count, NULL);
|
||||
if (status < 0) {
|
||||
printf("Failed to select hyperslab\n");
|
||||
MPI_Abort(MPI_COMM_WORLD, 1);
|
||||
}
|
||||
|
||||
// 创建内存数据空间
|
||||
memspace_id = H5Screate_simple(2, count, NULL);
|
||||
if (memspace_id < 0) {
|
||||
printf("Failed to create memory space\n");
|
||||
MPI_Abort(MPI_COMM_WORLD, 1);
|
||||
}
|
||||
|
||||
// 并行写入数据
|
||||
status = H5Dwrite(dataset_id, H5T_NATIVE_INT, memspace_id, dataspace_id,
|
||||
H5P_DEFAULT, data);
|
||||
if (status < 0) {
|
||||
printf("Failed to write data\n");
|
||||
MPI_Abort(MPI_COMM_WORLD, 1);
|
||||
}
|
||||
|
||||
// 关闭资源
|
||||
H5Sclose(memspace_id);
|
||||
H5Dclose(dataset_id);
|
||||
H5Sclose(dataspace_id);
|
||||
H5Fclose(file_id);
|
||||
|
||||
// 同步所有进程
|
||||
MPI_Barrier(MPI_COMM_WORLD);
|
||||
|
||||
// 读取并验证数据
|
||||
if (rank == 0) {
|
||||
int read_data[DIM0][DIM1];
|
||||
file_id = H5Fopen(FILENAME, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
dataset_id = H5Dopen2(file_id, DATASETNAME, H5P_DEFAULT);
|
||||
status = H5Dread(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL,
|
||||
H5P_DEFAULT, read_data);
|
||||
if (status < 0) {
|
||||
printf("Failed to read data\n");
|
||||
MPI_Abort(MPI_COMM_WORLD, 1);
|
||||
}
|
||||
|
||||
// 验证数据
|
||||
int error = 0;
|
||||
for (i = 0; i < DIM0; i++) {
|
||||
for (j = 0; j < DIM1; j++) {
|
||||
int expected = (i / (DIM0 / size)) * 100 + i * DIM1 + j;
|
||||
if (read_data[i][j] != expected) {
|
||||
printf("Mismatch at [%d][%d]: expected %d, got %d\n",
|
||||
i, j, expected, read_data[i][j]);
|
||||
error = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!error) {
|
||||
printf("Data verification successful\n");
|
||||
}
|
||||
|
||||
H5Dclose(dataset_id);
|
||||
H5Fclose(file_id);
|
||||
}
|
||||
|
||||
MPI_Finalize();
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 编译测试程序
|
||||
LOG_INFO "编译测试程序"
|
||||
mpicc test_hdf5_parallel.c -o test_hdf5_parallel -lhdf5
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败"
|
||||
|
||||
# 运行并行HDF5读写测试
|
||||
LOG_INFO "运行并行HDF5读写测试"
|
||||
mpirun -np 2 ./test_hdf5_parallel
|
||||
CHECK_RESULT $? 0 0 "运行并行HDF5读写测试失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_hdf5_parallel.c test_hdf5_parallel test_parallel.h5
|
||||
|
||||
# 如果测试前未安装软件包,则卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载软件包"
|
||||
dnf remove -y "${PACKAGES[@]}"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-06-23
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 libevdev-utils 软件包的卸载功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查环境是否已安装libevdev-utils软件包
|
||||
LOG_INFO "检查环境是否已安装libevdev-utils软件包"
|
||||
rpm -q libevdev-utils > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装libevdev-utils软件包,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "环境未安装libevdev-utils软件包,将在测试步骤中安装并最终卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在libevdev-utils软件包
|
||||
LOG_INFO "检查yum源中是否存在libevdev-utils软件包"
|
||||
dnf list available libevdev-utils > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在libevdev-utils软件包"
|
||||
|
||||
# 如果未安装,则安装软件包作为测试步骤
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装libevdev-utils软件包"
|
||||
dnf install -y libevdev-utils > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装libevdev-utils软件包失败"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载libevdev-utils软件包功能"
|
||||
dnf remove -y libevdev-utils > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载libevdev-utils软件包失败"
|
||||
|
||||
# 验证卸载是否成功
|
||||
LOG_INFO "验证卸载是否成功"
|
||||
rpm -q libevdev-utils > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "卸载后仍检测到libevdev-utils软件包"
|
||||
|
||||
# 如果初始状态为未安装,则重新安装以恢复环境;否则不处理
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "恢复环境:重新安装libevdev-utils软件包"
|
||||
dnf install -y libevdev-utils > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "恢复环境时重新安装libevdev-utils软件包失败"
|
||||
else
|
||||
LOG_INFO "环境已恢复为初始状态(保持安装)"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-21
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包libguestfs-gobject-devel的查询功能,验证其是否已安装或可通过包管理器查询到。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:验证libguestfs-gobject-devel软件包查询功能"
|
||||
|
||||
# 检查环境是否已安装libguestfs-gobject-devel
|
||||
LOG_INFO "检查libguestfs-gobject-devel是否已安装"
|
||||
if rpm -q libguestfs-gobject-devel > /dev/null 2>&1; then
|
||||
LOG_INFO "libguestfs-gobject-devel已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "libguestfs-gobject-devel未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在libguestfs-gobject-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在libguestfs-gobject-devel软件包"
|
||||
if dnf list available libguestfs-gobject-devel > /dev/null 2>&1; then
|
||||
LOG_INFO "yum源中存在libguestfs-gobject-devel软件包"
|
||||
else
|
||||
LOG_ERROR "yum源中不存在libguestfs-gobject-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试查询功能:通过dnf info命令查询软件包信息
|
||||
LOG_INFO "测试查询功能:通过dnf info命令查询libguestfs-gobject-devel软件包信息"
|
||||
dnf info libguestfs-gobject-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "dnf info命令查询libguestfs-gobject-devel失败"
|
||||
|
||||
# 测试查询功能:通过rpm -qi命令查询已安装软件包信息(如果已安装)
|
||||
if [ "$INSTALLED" = true ]; then
|
||||
LOG_INFO "测试查询功能:通过rpm -qi命令查询已安装的libguestfs-gobject-devel软件包信息"
|
||||
rpm -qi libguestfs-gobject-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "rpm -qi命令查询已安装的libguestfs-gobject-devel失败"
|
||||
else
|
||||
LOG_INFO "软件包未安装,跳过rpm -qi查询步骤"
|
||||
fi
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载安装的软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "环境恢复:卸载测试期间安装的libguestfs-gobject-devel软件包"
|
||||
dnf remove -y libguestfs-gobject-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载libguestfs-gobject-devel失败"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:libguestfs-gobject-devel软件包查询功能验证成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,96 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-21
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包libguestfs-gobject-devel提供的头文件,验证关键的开发头文件(如libguestfs-gobject.h)是否存在。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 定义软件包名称和关键头文件
|
||||
PACKAGE_NAME="libguestfs-gobject-devel"
|
||||
KEY_HEADER="libguestfs-gobject.h"
|
||||
|
||||
# 步骤1: 检查软件包是否已在YUM源中
|
||||
LOG_INFO "步骤1: 检查软件包 $PACKAGE_NAME 是否在YUM源中"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在YUM源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 在YUM源中"
|
||||
|
||||
# 步骤2: 检查当前是否已安装该软件包
|
||||
LOG_INFO "步骤2: 检查当前是否已安装 $PACKAGE_NAME"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,标记为已安装状态"
|
||||
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 失败"
|
||||
LOG_INFO "安装 $PACKAGE_NAME 成功"
|
||||
else
|
||||
LOG_INFO "步骤3: $PACKAGE_NAME 已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4: 查找关键头文件
|
||||
LOG_INFO "步骤4: 查找关键头文件 $KEY_HEADER"
|
||||
HEADER_PATH=$(rpm -ql $PACKAGE_NAME | grep -E "/${KEY_HEADER}$")
|
||||
if [ -z "$HEADER_PATH" ]; then
|
||||
LOG_ERROR "未找到关键头文件 $KEY_HEADER"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "找到关键头文件 $KEY_HEADER: $HEADER_PATH"
|
||||
|
||||
# 步骤5: 验证头文件是否存在并可读
|
||||
LOG_INFO "步骤5: 验证头文件 $HEADER_PATH 是否存在并可读"
|
||||
if [ -f "$HEADER_PATH" ] && [ -r "$HEADER_PATH" ]; then
|
||||
LOG_INFO "头文件 $HEADER_PATH 存在且可读"
|
||||
else
|
||||
LOG_ERROR "头文件 $HEADER_PATH 不存在或不可读"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6: 清理环境,恢复到之前的状态
|
||||
LOG_INFO "步骤6: 清理环境,恢复到之前的状态"
|
||||
if [ "$INSTALLED" == "false" ]; then
|
||||
LOG_INFO "卸载 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "卸载 $PACKAGE_NAME 成功"
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 原本已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-21
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包libguestfs-gobject-devel的安装功能,验证其是否能被成功安装到系统中。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查libguestfs-gobject-devel软件包是否在yum源中"
|
||||
dnf list available libguestfs-gobject-devel 2>&1 | grep -q "libguestfs-gobject-devel"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到libguestfs-gobject-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装该软件包
|
||||
LOG_INFO "检查libguestfs-gobject-devel是否已安装"
|
||||
rpm -q libguestfs-gobject-devel > /dev/null 2>&1
|
||||
already_installed=$?
|
||||
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "libguestfs-gobject-devel已安装,测试后将保持安装状态"
|
||||
need_cleanup=0
|
||||
else
|
||||
LOG_INFO "libguestfs-gobject-devel未安装,将进行安装测试"
|
||||
need_cleanup=1
|
||||
fi
|
||||
|
||||
# 安装软件包
|
||||
LOG_INFO "安装libguestfs-gobject-devel软件包"
|
||||
dnf install -y libguestfs-gobject-devel
|
||||
CHECK_RESULT $? 0 0 "安装libguestfs-gobject-devel失败"
|
||||
|
||||
# 验证软件包已成功安装
|
||||
LOG_INFO "验证libguestfs-gobject-devel是否安装成功"
|
||||
rpm -q libguestfs-gobject-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "libguestfs-gobject-devel未成功安装"
|
||||
|
||||
# 验证软件包文件是否正常
|
||||
LOG_INFO "验证libguestfs-gobject-devel文件完整性"
|
||||
rpm -V libguestfs-gobject-devel
|
||||
CHECK_RESULT $? 0 0 "libguestfs-gobject-devel文件完整性检查失败"
|
||||
|
||||
# 验证开发文件是否存在
|
||||
LOG_INFO "验证libguestfs-gobject-devel开发文件是否存在"
|
||||
if [ -f /usr/include/libguestfs-gobject/libguestfs-gobject.h ]; then
|
||||
LOG_INFO "找到libguestfs-gobject.h头文件"
|
||||
else
|
||||
LOG_ERROR "未找到libguestfs-gobject.h头文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 验证pkg-config文件
|
||||
LOG_INFO "验证pkg-config配置"
|
||||
pkg-config --exists libguestfs-gobject
|
||||
CHECK_RESULT $? 0 0 "pkg-config配置检查失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $need_cleanup -eq 1 ]; then
|
||||
LOG_INFO "清理环境:卸载libguestfs-gobject-devel软件包"
|
||||
dnf remove -y libguestfs-gobject-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libguestfs-gobject-devel失败"
|
||||
|
||||
# 验证软件包已成功卸载
|
||||
LOG_INFO "验证libguestfs-gobject-devel是否已成功卸载"
|
||||
rpm -q libguestfs-gobject-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "libguestfs-gobject-devel卸载失败"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "libguestfs-gobject-devel已成功卸载"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "测试前已安装libguestfs-gobject-devel,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "libguestfs-gobject-devel安装功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,106 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-21
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包libguestfs-gobject-devel提供的pkg-config文件,验证是否能通过pkg-config正确获取编译和链接信息。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量
|
||||
PKG_NAME="libguestfs-gobject-devel"
|
||||
PKG_CONFIG_NAME="libguestfs-gobject-1.0"
|
||||
LOG_INFO "开始测试软件包 ${PKG_NAME} 提供的 pkg-config 文件功能"
|
||||
|
||||
# 步骤1:检查 yum 源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查 yum 源中是否存在软件包 ${PKG_NAME}"
|
||||
if ! dnf list available ${PKG_NAME} &>/dev/null; then
|
||||
LOG_ERROR "软件包 ${PKG_NAME} 在 yum 源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装软件包 ${PKG_NAME}"
|
||||
if rpm -q ${PKG_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包 ${PKG_NAME} 已安装,标记为无需清理"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "软件包 ${PKG_NAME} 未安装,标记为需要清理"
|
||||
NEED_CLEANUP=1
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PKG_NAME}"
|
||||
dnf install -y ${PKG_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PKG_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查 pkg-config 命令是否支持指定参数
|
||||
LOG_INFO "步骤4:检查 pkg-config 命令是否支持所需参数"
|
||||
if ! pkg-config --help | grep -q "\-\-cflags"; then
|
||||
LOG_ERROR "pkg-config 命令不支持 --cflags 参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! pkg-config --help | grep -q "\-\-libs"; then
|
||||
LOG_ERROR "pkg-config 命令不支持 --libs 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:验证 pkg-config 能否正确获取编译信息
|
||||
LOG_INFO "步骤5:验证 pkg-config 能否正确获取编译信息"
|
||||
CFLAGS_OUTPUT=$(pkg-config --cflags ${PKG_CONFIG_NAME} 2>/dev/null)
|
||||
CHECK_RESULT $? 0 0 "获取编译信息失败"
|
||||
if [ -z "${CFLAGS_OUTPUT}" ]; then
|
||||
LOG_ERROR "编译信息为空"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "编译信息: ${CFLAGS_OUTPUT}"
|
||||
|
||||
# 步骤6:验证 pkg-config 能否正确获取链接信息
|
||||
LOG_INFO "步骤6:验证 pkg-config 能否正确获取链接信息"
|
||||
LIBS_OUTPUT=$(pkg-config --libs ${PKG_CONFIG_NAME} 2>/dev/null)
|
||||
CHECK_RESULT $? 0 0 "获取链接信息失败"
|
||||
if [ -z "${LIBS_OUTPUT}" ]; then
|
||||
LOG_ERROR "链接信息为空"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "链接信息: ${LIBS_OUTPUT}"
|
||||
|
||||
# 步骤7:验证 pkg-config 能否正确获取版本信息
|
||||
LOG_INFO "步骤7:验证 pkg-config 能否正确获取版本信息"
|
||||
VERSION_OUTPUT=$(pkg-config --modversion ${PKG_CONFIG_NAME} 2>/dev/null)
|
||||
CHECK_RESULT $? 0 0 "获取版本信息失败"
|
||||
if [ -z "${VERSION_OUTPUT}" ]; then
|
||||
LOG_ERROR "版本信息为空"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "版本信息: ${VERSION_OUTPUT}"
|
||||
|
||||
# 步骤8:清理环境
|
||||
LOG_INFO "步骤8:清理测试环境"
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "卸载软件包 ${PKG_NAME}"
|
||||
dnf remove -y ${PKG_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PKG_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "软件包 ${PKG_NAME} 为预安装状态,保持原状"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:软件包 ${PKG_NAME} 的 pkg-config 文件功能正常"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,119 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-21
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包libguestfs-gobject-devel的卸载功能,验证其是否能被干净地从系统中移除。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(根据需求直接使用,无需重新定义)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 定义检查结果函数(根据需求直接使用,无需重新定义)
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local error_code=$3
|
||||
local error_msg=$4
|
||||
if [ $actual -ne $expected ]; then
|
||||
LOG_ERROR "$error_msg"
|
||||
exit $error_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(根据需求直接使用,无需重新定义)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="libguestfs-gobject-devel"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
dnf list available "$PACKAGE_NAME" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查系统是否已安装该软件包
|
||||
LOG_INFO "步骤2:检查系统是否已安装软件包 $PACKAGE_NAME"
|
||||
rpm -q "$PACKAGE_NAME" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包作为测试步骤
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 1 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包是否成功安装
|
||||
LOG_INFO "步骤4:验证软件包 $PACKAGE_NAME 是否成功安装"
|
||||
rpm -q "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 1 "验证软件包 $PACKAGE_NAME 安装失败"
|
||||
|
||||
# 步骤5:卸载软件包
|
||||
LOG_INFO "步骤5:卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 1 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
|
||||
# 步骤6:验证软件包是否被干净移除
|
||||
LOG_INFO "步骤6:验证软件包 $PACKAGE_NAME 是否被干净移除"
|
||||
rpm -q "$PACKAGE_NAME" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 卸载后仍存在于系统中"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已成功从系统中移除"
|
||||
fi
|
||||
|
||||
# 步骤7:如果之前未安装,则重新安装软件包以恢复环境
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤7:恢复环境,重新安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 1 "恢复环境时安装软件包 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "环境已恢复,软件包 $PACKAGE_NAME 已重新安装"
|
||||
else
|
||||
LOG_INFO "步骤7:环境未变更,保持软件包 $PACKAGE_NAME 的安装状态"
|
||||
fi
|
||||
|
||||
# 步骤8:最终验证环境状态
|
||||
LOG_INFO "步骤8:最终验证环境状态"
|
||||
rpm -q "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 1 "最终验证环境状态失败,软件包 $PACKAGE_NAME 未正确安装"
|
||||
|
||||
LOG_INFO "测试完成:软件包 $PACKAGE_NAME 的卸载功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify Javadoc accessibility for lz4-java
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查yum源中是否存在lz4-java-javadoc软件包
|
||||
LOG_INFO "检查yum源中是否存在lz4-java-javadoc软件包"
|
||||
dnf list available lz4-java-javadoc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到lz4-java-javadoc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装lz4-java-javadoc
|
||||
LOG_INFO "检查是否已安装lz4-java-javadoc"
|
||||
rpm -q lz4-java-javadoc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "lz4-java-javadoc已安装,跳过安装步骤"
|
||||
INSTALLED=true
|
||||
else
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装lz4-java-javadoc"
|
||||
dnf install -y lz4-java-javadoc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装lz4-java-javadoc失败"
|
||||
fi
|
||||
|
||||
# 验证Javadoc可访问性
|
||||
LOG_INFO "验证Javadoc可访问性"
|
||||
javadoc -quiet -J-Dhttp.agent=curl -Xdoclint:none -d /tmp/lz4_java_javadoc https://javadoc.io/doc/net.jpountz.lz4/lz4-java/latest/overview-summary.html > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "Javadoc可访问性验证失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -rf /tmp/lz4_java_javadoc > /dev/null 2>&1
|
||||
|
||||
# 如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载lz4-java-javadoc"
|
||||
dnf remove -y lz4-java-javadoc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载lz4-java-javadoc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-30
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify Javadoc generation for lz4-java
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Verify Javadoc generation for lz4-java"
|
||||
|
||||
LOG_INFO "步骤1:检查lz4-java-javadoc软件包是否在yum源中"
|
||||
dnf list available lz4-java-javadoc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到lz4-java-javadoc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查是否已安装lz4-java-javadoc"
|
||||
rpm -q lz4-java-javadoc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "lz4-java-javadoc已安装,跳过安装步骤"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "步骤3:安装lz4-java-javadoc软件包"
|
||||
dnf install -y lz4-java-javadoc
|
||||
CHECK_RESULT $? 0 0 "安装lz4-java-javadoc失败"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:生成Javadoc"
|
||||
javadoc -d /tmp/lz4-java-docs -sourcepath /usr/share/java/lz4-java -subpackages net.jpountz.lz4 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "生成Javadoc失败"
|
||||
|
||||
LOG_INFO "步骤5:验证Javadoc生成结果"
|
||||
[ -d "/tmp/lz4-java-docs" ] && [ -f "/tmp/lz4-java-docs/index.html" ]
|
||||
CHECK_RESULT $? 0 0 "Javadoc生成结果验证失败"
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤6:卸载lz4-java-javadoc软件包"
|
||||
dnf remove -y lz4-java-javadoc
|
||||
CHECK_RESULT $? 0 0 "卸载lz4-java-javadoc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:清理临时文件"
|
||||
rm -rf /tmp/lz4-java-docs
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
LOG_INFO "测试完成:Verify Javadoc generation for lz4-java"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,112 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-01-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 nftables-devel 提供的头文件(如 libnftables.h)是否存在且可被 C 编译器正常包含。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试 nftables-devel 提供的头文件是否存在且可被 C 编译器正常包含
|
||||
|
||||
LOG_INFO "========================测试开始========================"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="nftables-devel"
|
||||
INSTALL_FLAG=0
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "步骤1: 检查 ${PACKAGE_NAME} 是否已经安装"
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PACKAGE_NAME} 已经安装,测试结束后将保持安装状态"
|
||||
INSTALL_FLAG=1
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME} 未安装,将在测试过程中安装"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤2: 检查yum源中是否存在 ${PACKAGE_NAME} 软件包"
|
||||
if ! dnf list available ${PACKAGE_NAME} > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到 ${PACKAGE_NAME} 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在 ${PACKAGE_NAME} 软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${INSTALL_FLAG} -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装 ${PACKAGE_NAME} 软件包"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "${PACKAGE_NAME} 安装成功"
|
||||
fi
|
||||
|
||||
# 检查主要头文件是否存在
|
||||
LOG_INFO "步骤4: 检查 libnftables.h 头文件是否存在"
|
||||
LIB_NFTABLES_HEADER="/usr/include/libnftables.h"
|
||||
if [ -f "${LIB_NFTABLES_HEADER}" ]; then
|
||||
LOG_INFO "找到 libnftables.h 头文件"
|
||||
else
|
||||
LOG_ERROR "未找到 libnftables.h 头文件"
|
||||
CHECK_RESULT 1 0 0 "libnftables.h 头文件不存在"
|
||||
fi
|
||||
|
||||
# 检查头文件是否可被C编译器正常包含
|
||||
LOG_INFO "步骤5: 检查头文件是否可被C编译器正常包含"
|
||||
TEST_PROGRAM="test_nftables_include.c"
|
||||
cat > ${TEST_PROGRAM} << "EOF"
|
||||
#include <libnftables.h>
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 编译测试程序
|
||||
LOG_INFO "使用gcc编译测试程序"
|
||||
if command -v gcc > /dev/null 2>&1; then
|
||||
gcc -o test_nftables_include ${TEST_PROGRAM} -lnftables 2>&1
|
||||
COMPILE_RESULT=$?
|
||||
if [ ${COMPILE_RESULT} -eq 0 ]; then
|
||||
LOG_INFO "C编译器成功包含 libnftables.h 头文件"
|
||||
rm -f test_nftables_include
|
||||
else
|
||||
LOG_ERROR "C编译器包含 libnftables.h 头文件失败"
|
||||
CHECK_RESULT ${COMPILE_RESULT} 0 0 "编译失败"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到gcc编译器"
|
||||
CHECK_RESULT 1 0 0 "gcc未安装"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
rm -f ${TEST_PROGRAM}
|
||||
LOG_INFO "清理临时测试文件"
|
||||
|
||||
# 恢复环境:如果测试前未安装,则卸载软件包
|
||||
if [ ${INSTALL_FLAG} -eq 0 ]; then
|
||||
LOG_INFO "步骤6: 卸载 ${PACKAGE_NAME} 软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "${PACKAGE_NAME} 卸载成功,环境已恢复"
|
||||
else
|
||||
LOG_INFO "步骤6: 保持 ${PACKAGE_NAME} 安装状态,不进行卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "========================测试结束========================"
|
||||
LOG_INFO "所有测试步骤完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-01-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 nftables-devel 软件包的安装功能,验证开发头文件和库文件是否正确安装到系统标准路径。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 nftables-devel 软件包的安装功能"
|
||||
LOG_INFO "步骤1:检查 yum 源中是否存在 nftables-devel 软件包"
|
||||
dnf list available nftables-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 nftables-devel 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum 源中存在 nftables-devel 软件包"
|
||||
|
||||
LOG_INFO "步骤2:检查当前是否已安装 nftables-devel"
|
||||
rpm -q nftables-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "nftables-devel 已安装,记录安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "nftables-devel 未安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装 nftables-devel 软件包"
|
||||
dnf install -y nftables-devel
|
||||
CHECK_RESULT $? 0 0 "安装 nftables-devel 失败"
|
||||
LOG_INFO "nftables-devel 软件包安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证开发头文件是否正确安装"
|
||||
ls /usr/include/libnftables.h > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "开发头文件 libnftables.h 未找到"
|
||||
LOG_INFO "开发头文件 libnftables.h 已正确安装"
|
||||
|
||||
LOG_INFO "步骤5:验证库文件是否正确安装"
|
||||
ls /usr/lib*/libnftables.so > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "库文件 libnftables.so 未找到"
|
||||
LOG_INFO "库文件 libnftables.so 已正确安装"
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤6:清理环境,卸载 nftables-devel 软件包"
|
||||
dnf remove -y nftables-devel
|
||||
CHECK_RESULT $? 0 0 "卸载 nftables-devel 失败"
|
||||
LOG_INFO "nftables-devel 软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "步骤6:环境已安装,保持安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,116 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# 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 : 测试使用 nftables-devel 的库文件(如 libnftables)进行简单的程序编译和链接,验证开发环境可用性。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置脚本选项
|
||||
set -e
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="nftables-devel"
|
||||
|
||||
# 步骤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}软件包已安装,测试结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME}软件包未安装,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3: 安装软件包(如果未安装)
|
||||
if [ "${ALREADY_INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装${PACKAGE_NAME}软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查nftables开发库文件是否存在
|
||||
LOG_INFO "步骤4: 检查nftables开发库文件是否存在"
|
||||
if [ -f /usr/lib64/libnftables.so ] || [ -f /usr/lib/libnftables.so ]; then
|
||||
LOG_INFO "找到libnftables库文件"
|
||||
else
|
||||
LOG_ERROR "未找到libnftables库文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5: 创建测试C程序
|
||||
LOG_INFO "步骤5: 创建测试C程序"
|
||||
TEST_PROGRAM="test_nftables_linking.c"
|
||||
cat > ${TEST_PROGRAM} << "EOF"
|
||||
#include <nftables/libnftables.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
struct nft_ctx *ctx;
|
||||
|
||||
printf("测试nftables库链接...\n");
|
||||
|
||||
ctx = nft_ctx_new(NFT_CTX_DEFAULT);
|
||||
if (!ctx) {
|
||||
printf("创建nftables上下文失败\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("成功创建nftables上下文\n");
|
||||
nft_ctx_free(ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
CHECK_RESULT $? 0 0 "创建测试C程序失败"
|
||||
|
||||
# 步骤6: 编译测试程序
|
||||
LOG_INFO "步骤6: 编译测试程序"
|
||||
gcc -o test_nftables_program ${TEST_PROGRAM} -lnftables
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败"
|
||||
|
||||
# 步骤7: 运行测试程序
|
||||
LOG_INFO "步骤7: 运行测试程序"
|
||||
./test_nftables_program
|
||||
CHECK_RESULT $? 0 0 "运行测试程序失败"
|
||||
|
||||
# 步骤8: 清理测试文件
|
||||
LOG_INFO "步骤8: 清理测试文件"
|
||||
rm -f ${TEST_PROGRAM} test_nftables_program
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 步骤9: 卸载软件包(如果测试前未安装)
|
||||
if [ "${ALREADY_INSTALLED}" = "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 "测试完成:成功验证nftables-devel开发环境可用性"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-01-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 nftables-devel 软件包的卸载功能,验证移除后相关开发文件是否被正确清理。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装nftables-devel
|
||||
LOG_INFO "检查nftables-devel是否已安装"
|
||||
rpm -q nftables-devel > /dev/null 2>&1
|
||||
initial_install_status=$?
|
||||
|
||||
# 检查yum源中是否有nftables-devel软件包
|
||||
LOG_INFO "检查yum源中是否有nftables-devel软件包"
|
||||
dnf list available nftables-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有nftables-devel软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有nftables-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $initial_install_status -ne 0 ]; then
|
||||
LOG_INFO "安装nftables-devel软件包"
|
||||
dnf install -y nftables-devel
|
||||
CHECK_RESULT $? 0 0 "安装nftables-devel失败"
|
||||
fi
|
||||
|
||||
# 验证安装后相关文件是否存在
|
||||
LOG_INFO "验证安装后相关开发文件是否存在"
|
||||
ls /usr/include/nftables/ > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装后相关开发文件不存在"
|
||||
|
||||
# 卸载nftables-devel软件包
|
||||
LOG_INFO "卸载nftables-devel软件包"
|
||||
dnf remove -y nftables-devel
|
||||
CHECK_RESULT $? 0 0 "卸载nftables-devel失败"
|
||||
|
||||
# 验证卸载后相关文件是否被清理
|
||||
LOG_INFO "验证卸载后相关开发文件是否被清理"
|
||||
ls /usr/include/nftables/ > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "卸载后相关开发文件未被清理"
|
||||
CHECK_RESULT 1 0 0 "卸载后相关开发文件未被清理"
|
||||
else
|
||||
LOG_INFO "卸载后相关开发文件已被清理"
|
||||
CHECK_RESULT 0 0 0 "卸载后相关开发文件已被清理"
|
||||
fi
|
||||
|
||||
# 环境恢复:如果初始未安装,则保持未安装状态;如果初始已安装,则重新安装
|
||||
if [ $initial_install_status -ne 0 ]; then
|
||||
LOG_INFO "环境恢复:初始未安装nftables-devel,保持未安装状态"
|
||||
else
|
||||
LOG_INFO "环境恢复:初始已安装nftables-devel,重新安装"
|
||||
dnf install -y nftables-devel
|
||||
CHECK_RESULT $? 0 0 "环境恢复时重新安装nftables-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test connection to VMware vSphere
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test connection to VMware vSphere"
|
||||
|
||||
# 检查是否已安装python3-pyvmomi
|
||||
LOG_INFO "检查是否已安装python3-pyvmomi"
|
||||
dnf list installed python3-pyvmomi >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-pyvmomi已安装,脚本结束时将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-pyvmomi未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-pyvmomi
|
||||
LOG_INFO "检查yum源中是否有python3-pyvmomi"
|
||||
dnf list available python3-pyvmomi >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-pyvmomi,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-pyvmomi(如果未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装python3-pyvmomi"
|
||||
dnf install -y python3-pyvmomi
|
||||
CHECK_RESULT $? 0 0 "安装python3-pyvmomi失败"
|
||||
fi
|
||||
|
||||
# 测试连接VMware vSphere
|
||||
LOG_INFO "测试连接VMware vSphere"
|
||||
python3 -c "
|
||||
from pyVim.connect import SmartConnectNoSSL, Disconnect
|
||||
import ssl
|
||||
|
||||
try:
|
||||
si = SmartConnectNoSSL(
|
||||
host="vcenter.example.com",
|
||||
user="username",
|
||||
pwd="password",
|
||||
port=443
|
||||
)
|
||||
Disconnect(si)
|
||||
print("连接成功")
|
||||
except Exception as e:
|
||||
print(f"连接失败: {e}")
|
||||
exit(1)
|
||||
" > /tmp/pyvmomi_test.log 2>&1
|
||||
|
||||
CHECK_RESULT $? 0 0 "连接VMware vSphere失败"
|
||||
|
||||
# 清理环境(如果之前未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-pyvmomi"
|
||||
dnf remove -y python3-pyvmomi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-pyvmomi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test connection to VMware vSphere"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 adhocfilelist 命令的 -h 参数(显示帮助信息)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装texlive-adhocfilelist
|
||||
LOG_INFO "检查是否已经安装texlive-adhocfilelist软件包"
|
||||
rpm -q texlive-adhocfilelist
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-adhocfilelist已经安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-adhocfilelist未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-adhocfilelist软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-adhocfilelist软件包"
|
||||
dnf list available texlive-adhocfilelist >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-adhocfilelist软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-adhocfilelist软件包"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-adhocfilelist软件包失败"
|
||||
fi
|
||||
|
||||
# 测试adhocfilelist命令的-h参数
|
||||
LOG_INFO "测试adhocfilelist命令的-h参数(显示帮助信息)"
|
||||
adhocfilelist -h >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "adhocfilelist命令不支持-h参数或参数不存在"
|
||||
|
||||
# 验证-h参数输出包含帮助信息
|
||||
LOG_INFO "验证-h参数输出包含帮助信息"
|
||||
adhocfilelist -h 2>&1 | grep -q "usage\|Usage\|帮助\|选项"
|
||||
CHECK_RESULT $? 0 0 "adhocfilelist命令-h参数未显示帮助信息"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "环境恢复"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的texlive-adhocfilelist软件包"
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-adhocfilelist软件包失败"
|
||||
else
|
||||
LOG_INFO "保持原有的texlive-adhocfilelist安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 adhocfilelist 命令的 -H 参数(显示详细帮助信息)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 adhocfilelist 命令的 -H 参数(显示详细帮助信息)"
|
||||
LOG_INFO "步骤1:检查环境中是否已安装 texlive-adhocfilelist 软件包"
|
||||
rpm -q texlive-adhocfilelist > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-adhocfilelist 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-adhocfilelist 未安装,将在测试步骤中安装,并在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 texlive-adhocfilelist 软件包"
|
||||
dnf list available texlive-adhocfilelist > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum 源中未找到 texlive-adhocfilelist 软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-adhocfilelist 软件包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装 texlive-adhocfilelist 软件包"
|
||||
dnf install -y texlive-adhocfilelist > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-adhocfilelist 软件包失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:检查 adhocfilelist 命令是否存在"
|
||||
which adhocfilelist > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "adhocfilelist 命令不存在"
|
||||
LOG_INFO "步骤5:测试 adhocfilelist 命令的 -H 参数"
|
||||
adhocfilelist -H > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "adhocfilelist 命令不支持 -H 参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "adhocfilelist 命令不支持 -H 参数,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
adhocfilelist -H 2>&1 | grep -q "help"
|
||||
CHECK_RESULT $? 0 0 "adhocfilelist -H 未显示帮助信息"
|
||||
LOG_INFO "步骤6:清理测试环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 texlive-adhocfilelist 软件包"
|
||||
dnf remove -y texlive-adhocfilelist > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-adhocfilelist 软件包失败"
|
||||
else
|
||||
LOG_INFO "测试开始时 texlive-adhocfilelist 已安装,保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,99 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 adhocfilelist 命令的 -Q 参数(安静模式,不输出警告)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称和命令
|
||||
PACKAGE_NAME="texlive-adhocfilelist"
|
||||
COMMAND_NAME="adhocfilelist"
|
||||
PARAMETER="-Q"
|
||||
|
||||
# 步骤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
|
||||
INSTALLED="true"
|
||||
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
|
||||
else
|
||||
INSTALLED="false"
|
||||
LOG_INFO "软件包未安装,将在测试步骤中安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令是否存在
|
||||
LOG_INFO "步骤4:检查命令 ${COMMAND_NAME} 是否存在"
|
||||
command -v ${COMMAND_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "命令 ${COMMAND_NAME} 不存在"
|
||||
|
||||
# 步骤5:检查参数 -Q 是否支持
|
||||
LOG_INFO "步骤5:检查参数 -Q 是否支持"
|
||||
${COMMAND_NAME} --help 2>&1 | grep -q "\-Q"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "参数 -Q 不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:测试 adhocfilelist 命令的 -Q 参数(安静模式,不输出警告)
|
||||
LOG_INFO "步骤6:测试 adhocfilelist 命令的 -Q 参数(安静模式,不输出警告)"
|
||||
# 创建一个临时文件用于测试
|
||||
TEST_FILE=$(mktemp)
|
||||
echo "test content" > ${TEST_FILE}
|
||||
# 执行命令并捕获输出和警告
|
||||
OUTPUT=$(${COMMAND_NAME} ${PARAMETER} ${TEST_FILE} 2>&1)
|
||||
# 检查命令是否成功执行
|
||||
CHECK_RESULT $? 0 0 "执行命令失败"
|
||||
# 检查输出中是否不包含警告(安静模式)
|
||||
if echo "${OUTPUT}" | grep -q -i "warning"; then
|
||||
LOG_ERROR "安静模式下输出了警告"
|
||||
CHECK_RESULT 1 0 0 "安静模式下不应输出警告"
|
||||
else
|
||||
LOG_INFO "安静模式测试通过,未输出警告"
|
||||
fi
|
||||
# 清理临时文件
|
||||
rm -f ${TEST_FILE}
|
||||
|
||||
# 步骤7:清理环境
|
||||
LOG_INFO "步骤7:清理环境"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,74 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 adhocfilelist 命令的 -V 参数(显示版本信息)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 adhocfilelist 命令的 -V 参数(显示版本信息)"
|
||||
|
||||
# 检查环境是否已安装指定软件包
|
||||
LOG_INFO "检查环境是否已安装 texlive-adhocfilelist 软件包"
|
||||
if dnf list installed texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_INFO "texlive-adhocfilelist 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-adhocfilelist 未安装,将在测试步骤中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 texlive-adhocfilelist 软件包
|
||||
LOG_INFO "检查 yum 源中是否有 texlive-adhocfilelist 软件包"
|
||||
if ! dnf list available texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-adhocfilelist 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装 texlive-adhocfilelist 软件包"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-adhocfilelist 软件包失败"
|
||||
fi
|
||||
|
||||
# 检查 adhocfilelist 命令是否支持 -V 参数
|
||||
LOG_INFO "检查 adhocfilelist 命令是否支持 -V 参数"
|
||||
adhocfilelist -V &>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "adhocfilelist 命令不支持 -V 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试 adhocfilelist -V 命令
|
||||
LOG_INFO "执行 adhocfilelist -V 命令显示版本信息"
|
||||
adhocfilelist -V
|
||||
CHECK_RESULT $? 0 0 "执行 adhocfilelist -V 命令失败"
|
||||
|
||||
# 环境恢复:如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 texlive-adhocfilelist 软件包"
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-adhocfilelist 软件包失败"
|
||||
else
|
||||
LOG_INFO "保持 texlive-adhocfilelist 软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 adhocfilelist 命令的 -v 参数(详细输出模式)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查与初始化
|
||||
LOG_INFO "开始测试 adhocfilelist 命令的 -v 参数(详细输出模式)"
|
||||
|
||||
# 检查是否已安装 texlive-adhocfilelist 包
|
||||
LOG_INFO "检查是否已安装 texlive-adhocfilelist 包"
|
||||
rpm -q texlive-adhocfilelist > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到 texlive-adhocfilelist 已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "未检测到 texlive-adhocfilelist 安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 texlive-adhocfilelist 包
|
||||
LOG_INFO "检查 yum 源中是否有 texlive-adhocfilelist 包"
|
||||
dnf list available texlive-adhocfilelist > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-adhocfilelist 包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 texlive-adhocfilelist
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "安装 texlive-adhocfilelist 包"
|
||||
dnf install -y texlive-adhocfilelist > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-adhocfilelist 包失败"
|
||||
fi
|
||||
|
||||
# 检查 adhocfilelist 命令是否存在
|
||||
LOG_INFO "检查 adhocfilelist 命令是否存在"
|
||||
which adhocfilelist > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "adhocfilelist 命令不存在"
|
||||
|
||||
# 测试 adhocfilelist 命令的 -v 参数是否存在
|
||||
LOG_INFO "测试 adhocfilelist 命令的 -v 参数是否存在"
|
||||
adhocfilelist -v > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "adhocfilelist 命令不支持 -v 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试 adhocfilelist -v 命令是否能正常执行
|
||||
LOG_INFO "执行 adhocfilelist -v 命令"
|
||||
adhocfilelist -v
|
||||
CHECK_RESULT $? 0 0 "执行 adhocfilelist -v 命令失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载 texlive-adhocfilelist 包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载 texlive-adhocfilelist 包"
|
||||
dnf remove -y texlive-adhocfilelist > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-adhocfilelist 包失败"
|
||||
LOG_INFO "环境已恢复,texlive-adhocfilelist 包已卸载"
|
||||
else
|
||||
LOG_INFO "环境已恢复,保持 texlive-adhocfilelist 包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试 adhocfilelist 命令的 -v 参数(详细输出模式)完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试基本命令执行功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试基本命令执行功能
|
||||
|
||||
LOG_INFO "开始测试基本命令执行功能"
|
||||
|
||||
# 1. 检查环境是否已安装texlive-adhocfilelist
|
||||
LOG_INFO "步骤1: 检查texlive-adhocfilelist是否已安装"
|
||||
if rpm -q texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_INFO "texlive-adhocfilelist已安装,测试后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-adhocfilelist未安装,测试后将卸载"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 2. 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2: 检查yum源中是否有texlive-adhocfilelist软件包"
|
||||
if ! dnf list available texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-adhocfilelist软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 3. 如果未安装则安装软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装texlive-adhocfilelist软件包"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-adhocfilelist失败"
|
||||
fi
|
||||
|
||||
# 4. 检查命令是否存在
|
||||
LOG_INFO "步骤4: 检查texlive-adhocfilelist命令是否存在"
|
||||
if ! command -v texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_ERROR "texlive-adhocfilelist命令不存在"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 5. 测试基本命令执行(不带参数)
|
||||
LOG_INFO "步骤5: 测试texlive-adhocfilelist基本命令执行"
|
||||
texlive-adhocfilelist --help
|
||||
CHECK_RESULT $? 0 0 "执行texlive-adhocfilelist --help失败"
|
||||
|
||||
# 6. 测试无效参数
|
||||
LOG_INFO "步骤6: 测试无效参数处理"
|
||||
texlive-adhocfilelist --invalid-param 2>/dev/null
|
||||
if [ $? -ne 255 ] && [ $? -ne 0 ]; then
|
||||
LOG_INFO "无效参数被正确处理"
|
||||
else
|
||||
LOG_ERROR "无效参数处理异常"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 7. 测试具体功能
|
||||
LOG_INFO "步骤7: 测试texlive-adhocfilelist具体功能"
|
||||
texlive-adhocfilelist --version
|
||||
CHECK_RESULT $? 0 0 "获取版本信息失败"
|
||||
|
||||
# 8. 清理环境
|
||||
LOG_INFO "步骤8: 清理测试环境"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-adhocfilelist失败"
|
||||
LOG_INFO "已卸载测试安装的软件包"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试基本命令执行功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试错误输入处理功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试错误输入处理功能"
|
||||
|
||||
# 检查是否已经安装 texlive-adhocfilelist
|
||||
LOG_INFO "检查是否已经安装 texlive-adhocfilelist"
|
||||
if dnf list installed texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_INFO "texlive-adhocfilelist 已经安装,测试结束后将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "texlive-adhocfilelist 未安装,将在测试步骤中安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有 texlive-adhocfilelist 软件包
|
||||
LOG_INFO "检查yum源中是否有 texlive-adhocfilelist 软件包"
|
||||
if ! dnf list available texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 texlive-adhocfilelist 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装 texlive-adhocfilelist 软件包"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-adhocfilelist 失败"
|
||||
fi
|
||||
|
||||
# 测试错误输入处理:不存在的参数
|
||||
LOG_INFO "测试 texlive-adhocfilelist 命令不存在的参数"
|
||||
texlive-adhocfilelist --nonexistent-param 2>/dev/null
|
||||
if [ $? -ne 255 ]; then
|
||||
LOG_ERROR "命令未正确处理不存在的参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试错误输入处理:不支持的参数
|
||||
LOG_INFO "测试 texlive-adhocfilelist 命令不支持的参数"
|
||||
texlive-adhocfilelist --unsupported-option 2>/dev/null
|
||||
if [ $? -ne 255 ]; then
|
||||
LOG_ERROR "命令未正确处理不支持的参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试错误输入处理:缺少必要参数
|
||||
LOG_INFO "测试 texlive-adhocfilelist 命令缺少必要参数"
|
||||
texlive-adhocfilelist 2>/dev/null
|
||||
CHECK_RESULT $? 1 0 "命令未正确处理缺少必要参数的情况"
|
||||
|
||||
# 测试错误输入处理:无效文件路径
|
||||
LOG_INFO "测试 texlive-adhocfilelist 命令无效文件路径"
|
||||
texlive-adhocfilelist /invalid/path/to/file 2>/dev/null
|
||||
CHECK_RESULT $? 2 0 "命令未正确处理无效文件路径"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载 texlive-adhocfilelist 软件包"
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-adhocfilelist 失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装 texlive-adhocfilelist,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试错误输入处理功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试生成文件列表功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试生成文件列表功能"
|
||||
|
||||
# 检查是否已安装texlive-adhocfilelist
|
||||
LOG_INFO "步骤1:检查texlive-adhocfilelist是否已安装"
|
||||
if dnf list installed texlive-adhocfilelist &> /dev/null; then
|
||||
LOG_INFO "texlive-adhocfilelist已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "texlive-adhocfilelist未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-adhocfilelist软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在texlive-adhocfilelist软件包"
|
||||
if ! dnf list available texlive-adhocfilelist &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-adhocfilelist软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-adhocfilelist软件包"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-adhocfilelist失败"
|
||||
fi
|
||||
|
||||
# 测试生成文件列表功能
|
||||
LOG_INFO "步骤4:测试生成文件列表功能"
|
||||
# 假设生成文件列表的命令为:texlive-adhocfilelist generate-list [参数]
|
||||
# 这里需要根据实际命令和参数进行调整
|
||||
if ! texlive-adhocfilelist generate-list --help &> /dev/null; then
|
||||
LOG_ERROR "texlive-adhocfilelist命令不支持generate-list参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行生成文件列表的命令
|
||||
LOG_INFO "步骤5:执行生成文件列表命令"
|
||||
texlive-adhocfilelist generate-list --output test_list.txt
|
||||
CHECK_RESULT $? 0 0 "生成文件列表失败"
|
||||
|
||||
# 检查生成的文件列表是否存在
|
||||
LOG_INFO "步骤6:检查生成的文件列表是否存在"
|
||||
if [ -f test_list.txt ]; then
|
||||
LOG_INFO "文件列表生成成功:test_list.txt"
|
||||
else
|
||||
LOG_ERROR "文件列表未生成"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试生成的文件
|
||||
LOG_INFO "步骤7:清理测试生成的文件"
|
||||
rm -f test_list.txt
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果之前未安装,则在测试结束后卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-adhocfilelist软件包"
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-adhocfilelist失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试生成文件列表功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包安装功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 定义常量
|
||||
PACKAGE_NAME="texlive-adhocfilelist"
|
||||
TEST_COMMAND="tex --version"
|
||||
EXPECTED_OUTPUT="TeX"
|
||||
|
||||
# 步骤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:检查当前环境是否已安装软件包"
|
||||
INSTALLED=0
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包安装后命令是否可用
|
||||
LOG_INFO "步骤4:验证软件包安装后命令是否可用"
|
||||
${TEST_COMMAND} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "命令 ${TEST_COMMAND} 执行失败"
|
||||
|
||||
# 步骤5:验证命令输出是否符合预期
|
||||
LOG_INFO "步骤5:验证命令输出是否符合预期"
|
||||
OUTPUT=$(${TEST_COMMAND} 2>&1 | head -1)
|
||||
if echo "${OUTPUT}" | grep -q "${EXPECTED_OUTPUT}"; then
|
||||
LOG_INFO "命令输出符合预期"
|
||||
else
|
||||
LOG_ERROR "命令输出不符合预期,实际输出:${OUTPUT}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤6:清理环境,如果之前未安装则卸载软件包
|
||||
LOG_INFO "步骤6:清理环境"
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,143 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试输出格式控制功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否以root用户运行
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
LOG_ERROR "请以root用户运行此脚本"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-adhocfilelist"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在 ${PACKAGE_NAME} 软件包"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
LOG_ERROR "yum源中未找到 ${PACKAGE_NAME} 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在 ${PACKAGE_NAME} 软件包"
|
||||
|
||||
# 步骤2:检查系统是否已安装指定软件包
|
||||
LOG_INFO "步骤2:检查系统是否已安装 ${PACKAGE_NAME} 软件包"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
INSTALLED=$?
|
||||
if [[ ${INSTALLED} -eq 0 ]]; then
|
||||
LOG_INFO "${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
|
||||
NEED_UNINSTALL=0
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME} 未安装,将在测试结束后卸载"
|
||||
NEED_UNINSTALL=1
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [[ ${INSTALLED} -ne 0 ]]; then
|
||||
LOG_INFO "步骤3:安装 ${PACKAGE_NAME} 软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "${PACKAGE_NAME} 安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:测试输出格式控制功能 - 获取帮助信息
|
||||
LOG_INFO "步骤4:测试输出格式控制功能 - 获取帮助信息"
|
||||
texlive-adhocfilelist --help 2>&1 | grep -q "Usage:"
|
||||
CHECK_RESULT $? 0 0 "获取帮助信息失败"
|
||||
|
||||
# 步骤5:测试输出格式控制功能 - 检查支持的参数
|
||||
LOG_INFO "步骤5:测试输出格式控制功能 - 检查支持的参数"
|
||||
texlive-adhocfilelist --help 2>&1 | grep -q "format"
|
||||
CHECK_RESULT $? 0 0 "未找到format参数说明"
|
||||
|
||||
# 步骤6:测试无效参数处理
|
||||
LOG_INFO "步骤6:测试无效参数处理"
|
||||
texlive-adhocfilelist --invalid-param 2>&1
|
||||
if [[ $? -eq 255 ]]; then
|
||||
LOG_INFO "无效参数正确处理,返回退出码255"
|
||||
else
|
||||
LOG_ERROR "无效参数处理异常"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤7:测试format参数功能
|
||||
LOG_INFO "步骤7:测试format参数功能"
|
||||
# 检查format参数是否存在
|
||||
texlive-adhocfilelist --help 2>&1 | grep -q "\-\-format"
|
||||
if [[ $? -ne 0 ]]; then
|
||||
LOG_ERROR "format参数不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试format参数的基本功能
|
||||
LOG_INFO "测试format参数的基本功能"
|
||||
texlive-adhocfilelist --format=json 2>&1 | head -5
|
||||
CHECK_RESULT $? 0 0 "使用format参数执行失败"
|
||||
|
||||
# 步骤8:测试不同输出格式
|
||||
LOG_INFO "步骤8:测试不同输出格式"
|
||||
# 测试json格式输出
|
||||
texlive-adhocfilelist --format=json 2>&1 | grep -q "{"
|
||||
CHECK_RESULT $? 0 0 "json格式输出测试失败"
|
||||
|
||||
# 测试xml格式输出(如果支持)
|
||||
texlive-adhocfilelist --help 2>&1 | grep -q "xml"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
LOG_INFO "测试xml格式输出"
|
||||
texlive-adhocfilelist --format=xml 2>&1 | grep -q "<?xml"
|
||||
CHECK_RESULT $? 0 0 "xml格式输出测试失败"
|
||||
fi
|
||||
|
||||
# 测试text格式输出(如果支持)
|
||||
texlive-adhocfilelist --help 2>&1 | grep -q "text"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
LOG_INFO "测试text格式输出"
|
||||
texlive-adhocfilelist --format=text 2>&1 | head -1
|
||||
CHECK_RESULT $? 0 0 "text格式输出测试失败"
|
||||
fi
|
||||
|
||||
# 步骤9:测试format参数的边界情况
|
||||
LOG_INFO "步骤9:测试format参数的边界情况"
|
||||
# 测试不支持的格式
|
||||
texlive-adhocfilelist --format=unsupported_format 2>&1
|
||||
if [[ $? -eq 255 ]]; then
|
||||
LOG_INFO "不支持的格式正确处理,返回退出码255"
|
||||
else
|
||||
LOG_ERROR "不支持的格式处理异常"
|
||||
# 如果不是255退出码,按照实际退出码退出
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# 步骤10:清理测试环境
|
||||
LOG_INFO "步骤10:清理测试环境"
|
||||
if [[ ${NEED_UNINSTALL} -eq 1 ]]; then
|
||||
LOG_INFO "卸载 ${PACKAGE_NAME} 软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "${PACKAGE_NAME} 卸载成功"
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME} 已安装,保持原状"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 测试解析输入文件功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试解析输入文件功能"
|
||||
LOG_INFO "步骤1: 检查系统是否已安装texlive-adhocfilelist软件包"
|
||||
if dnf list installed texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_INFO "texlive-adhocfilelist已安装,脚本结束后将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "texlive-adhocfilelist未安装,将在测试后卸载"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否有texlive-adhocfilelist软件包"
|
||||
if ! dnf list available texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-adhocfilelist软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3: 安装texlive-adhocfilelist软件包"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-adhocfilelist失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 测试解析输入文件功能的基本命令"
|
||||
texlive-adhocfilelist --help
|
||||
CHECK_RESULT $? 0 0 "texlive-adhocfilelist命令执行失败"
|
||||
|
||||
LOG_INFO "步骤5: 测试指定输入文件参数"
|
||||
if ! texlive-adhocfilelist --help | grep -q "\-\-input"; then
|
||||
LOG_ERROR "texlive-adhocfilelist不支持--input参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6: 创建测试输入文件"
|
||||
test_input_file="/tmp/test_input.txt"
|
||||
echo "test content" > "$test_input_file"
|
||||
CHECK_RESULT $? 0 0 "创建测试输入文件失败"
|
||||
|
||||
LOG_INFO "步骤7: 执行解析输入文件功能测试"
|
||||
texlive-adhocfilelist --input "$test_input_file"
|
||||
CHECK_RESULT $? 0 0 "解析输入文件功能测试失败"
|
||||
|
||||
LOG_INFO "步骤8: 清理测试文件"
|
||||
rm -f "$test_input_file"
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤9: 卸载texlive-adhocfilelist软件包"
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-adhocfilelist失败"
|
||||
else
|
||||
LOG_INFO "步骤9: 保持texlive-adhocfilelist安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试解析输入文件功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,106 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-11
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包卸载功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试软件包卸载功能"
|
||||
|
||||
LOG_INFO "步骤1: 检查环境是否已安装texlive-adhocfilelist"
|
||||
if dnf list installed texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_INFO "环境已安装texlive-adhocfilelist,脚本结束后将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-adhocfilelist,将在测试过程中安装并在结束时卸载"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否存在texlive-adhocfilelist软件包"
|
||||
if ! dnf list available texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在texlive-adhocfilelist软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3: 安装texlive-adhocfilelist软件包"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-adhocfilelist失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 验证软件包安装成功"
|
||||
dnf list installed texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "验证软件包安装状态失败"
|
||||
|
||||
LOG_INFO "步骤5: 执行卸载命令测试"
|
||||
LOG_INFO "步骤5.1: 测试正常卸载"
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "正常卸载texlive-adhocfilelist失败"
|
||||
|
||||
LOG_INFO "步骤5.2: 验证软件包已卸载"
|
||||
if dnf list installed texlive-adhocfilelist &>/dev/null; then
|
||||
LOG_ERROR "软件包卸载后仍然显示为已安装"
|
||||
CHECK_RESULT 1 0 0 "软件包卸载验证失败"
|
||||
else
|
||||
LOG_INFO "软件包已成功卸载"
|
||||
CHECK_RESULT 0 0 0 "软件包卸载验证成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5.3: 测试卸载不存在的软件包(预期失败)"
|
||||
dnf remove -y texlive-adhocfilelist-nonexistent 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "卸载不存在的软件包不应该成功"
|
||||
CHECK_RESULT 1 0 0 "卸载不存在软件包测试失败"
|
||||
else
|
||||
LOG_INFO "卸载不存在的软件包按预期失败"
|
||||
CHECK_RESULT 0 0 0 "卸载不存在软件包测试成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5.4: 测试无效参数"
|
||||
dnf remove --invalid-param texlive-adhocfilelist 2>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "无效参数按预期处理"
|
||||
CHECK_RESULT 0 0 0 "无效参数测试成功"
|
||||
else
|
||||
LOG_ERROR "无效参数处理异常"
|
||||
CHECK_RESULT 1 0 0 "无效参数测试失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6: 环境恢复"
|
||||
if [ "$already_installed" = true ]; then
|
||||
LOG_INFO "恢复原始安装状态: 重新安装texlive-adhocfilelist"
|
||||
dnf install -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "恢复安装texlive-adhocfilelist失败"
|
||||
|
||||
LOG_INFO "验证恢复后的安装状态"
|
||||
dnf list installed texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "验证恢复后的安装状态失败"
|
||||
else
|
||||
LOG_INFO "清理测试安装的软件包"
|
||||
if dnf list installed texlive-adhocfilelist &>/dev/null; then
|
||||
dnf remove -y texlive-adhocfilelist
|
||||
CHECK_RESULT $? 0 0 "清理测试安装的软件包失败"
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试软件包卸载功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-25
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the rendering of auncial-new font
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装texlive-auncial-new软件包
|
||||
LOG_INFO "检查是否已安装texlive-auncial-new软件包"
|
||||
dnf list installed texlive-auncial-new > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-auncial-new已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-auncial-new未安装,将在测试步骤中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-auncial-new软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-auncial-new软件包"
|
||||
dnf list available texlive-auncial-new > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-auncial-new软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-auncial-new软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-auncial-new软件包"
|
||||
dnf install -y texlive-auncial-new > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-auncial-new软件包失败"
|
||||
fi
|
||||
|
||||
# 测试auncial-new字体渲染功能
|
||||
LOG_INFO "测试auncial-new字体渲染功能"
|
||||
echo "\documentclass{article}
|
||||
\usepackage{auncial}
|
||||
\begin{document}
|
||||
\aunclfamily
|
||||
This is a test of auncial-new font rendering.
|
||||
\end{document}" > test_auncial.tex
|
||||
|
||||
pdflatex test_auncial.tex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "auncial-new字体渲染测试失败"
|
||||
|
||||
# 清理生成的临时文件
|
||||
LOG_INFO "清理生成的临时文件"
|
||||
rm -f test_auncial.tex test_auncial.log test_auncial.aux test_auncial.pdf
|
||||
|
||||
# 如果脚本开始时未安装texlive-aulnial-new,则在结束时卸载它
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-aulnial- new软体包"
|
||||
dnf remove - y texlive- aulnial- new > / dev/ null 2>&1
|
||||
CHECK_RESULT $? 0 0 \ “卸载 tex live- aulnial- new软体包失败”
|
||||
fi
|
||||
|
||||
LOG_ INFO “测试脚本执行完毕”
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,159 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test documentation file access
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出函数(虽然LOG_INFO/LOG_ERROR未定义,但按照要求直接使用)
|
||||
# 这里假设LOG_INFO和LOG_ERROR是已定义的函数,直接调用
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local pkg_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $pkg_name"
|
||||
dnf list available "$pkg_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $pkg_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $pkg_name 在yum源中存在"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_option() {
|
||||
local cmd=$1
|
||||
local option=$2
|
||||
LOG_INFO "检查命令 $cmd 是否支持参数: $option"
|
||||
# 这里以texdoc命令为例,检查是否支持-l参数
|
||||
if [ "$cmd" = "texdoc" ] && [ "$option" = "-l" ]; then
|
||||
texdoc --help 2>&1 | grep -q "\-l"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $cmd 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
LOG_INFO "命令 $cmd 支持参数 $option"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_texlive_chemcompounds_doc_function_doc_access() {
|
||||
local pkg_name="texlive-chemcompounds-doc"
|
||||
local installed_before_test=false
|
||||
|
||||
LOG_INFO "=== 开始测试: Test documentation file access ==="
|
||||
|
||||
# 步骤1: 检查测试环境是否已安装目标软件包
|
||||
LOG_INFO "步骤1: 检查环境是否已安装 $pkg_name"
|
||||
rpm -q "$pkg_name" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装 $pkg_name"
|
||||
installed_before_test=true
|
||||
else
|
||||
LOG_INFO "环境未安装 $pkg_name"
|
||||
fi
|
||||
|
||||
# 步骤2: 检查yum源中是否有该软件包
|
||||
check_package_in_repo "$pkg_name"
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $pkg_name"
|
||||
dnf install -y "$pkg_name"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $pkg_name 失败"
|
||||
LOG_INFO "软件包 $pkg_name 安装成功"
|
||||
else
|
||||
LOG_INFO "步骤3: 软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查texdoc命令是否支持-l参数
|
||||
check_command_option "texdoc" "-l"
|
||||
|
||||
# 步骤5: 使用texdoc命令查找chemcompounds文档
|
||||
LOG_INFO "步骤5: 使用texdoc命令查找chemcompounds文档"
|
||||
texdoc -l chemcompounds 2>&1 | tee /tmp/texdoc_output.txt
|
||||
CHECK_RESULT $? 0 0 "执行texdoc命令失败"
|
||||
|
||||
# 步骤6: 验证文档文件是否存在并可访问
|
||||
LOG_INFO "步骤6: 验证文档文件是否存在并可访问"
|
||||
local doc_file=$(texdoc -l chemcompounds 2>/dev/null | head -1 | awk "{print $2}")
|
||||
if [ -n "$doc_file" ]; then
|
||||
LOG_INFO "找到文档文件: $doc_file"
|
||||
# 检查文件是否存在
|
||||
if [ -f "$doc_file" ]; then
|
||||
LOG_INFO "文档文件存在: $doc_file"
|
||||
# 检查文件是否可读
|
||||
if [ -r "$doc_file" ]; then
|
||||
LOG_INFO "文档文件可读: $doc_file"
|
||||
# 检查文件内容是否包含相关关键词
|
||||
if file "$doc_file" | grep -q "text"; then
|
||||
LOG_INFO "文档文件为文本文件"
|
||||
if grep -q "chemcompounds" "$doc_file" 2>/dev/null; then
|
||||
LOG_INFO "文档文件包含"chemcompounds"关键词"
|
||||
else
|
||||
LOG_WARN "文档文件不包含"chemcompounds"关键词,但文件可访问"
|
||||
fi
|
||||
else
|
||||
# 如果是PDF或其他格式,尝试用file命令识别
|
||||
file "$doc_file"
|
||||
CHECK_RESULT $? 0 0 "无法识别文档文件类型"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文档文件不可读: $doc_file"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文档文件不存在: $doc_file"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到chemcompounds文档"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤7: 测试文档文件访问(读取前几行)
|
||||
LOG_INFO "步骤7: 测试文档文件访问(读取前几行)"
|
||||
if [ -f "$doc_file" ]; then
|
||||
head -5 "$doc_file" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "无法读取文档文件内容"
|
||||
LOG_INFO "成功读取文档文件前5行"
|
||||
fi
|
||||
|
||||
# 步骤8: 清理临时文件
|
||||
LOG_INFO "步骤8: 清理临时文件"
|
||||
rm -f /tmp/texdoc_output.txt
|
||||
|
||||
# 步骤9: 环境恢复
|
||||
LOG_INFO "步骤9: 恢复测试环境"
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "卸载测试安装的软件包: $pkg_name"
|
||||
dnf remove -y "$pkg_name"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $pkg_name 失败"
|
||||
LOG_INFO "软件包 $pkg_name 卸载成功"
|
||||
else
|
||||
LOG_INFO "测试前已安装 $pkg_name,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "=== 测试完成: Test documentation file access ==="
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_texlive_chemcompounds_doc_function_doc_access
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check documentation files exist
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:检查文档文件是否存在"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-exsol-doc"
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查是否已安装 $PACKAGE_NAME"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试结束后卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在该软件包
|
||||
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 检查文档文件是否存在
|
||||
LOG_INFO "检查文档文件是否存在"
|
||||
DOC_PATH="/usr/share/doc/$PACKAGE_NAME"
|
||||
if [ -d "$DOC_PATH" ]; then
|
||||
LOG_INFO "文档目录 $DOC_PATH 存在"
|
||||
# 检查目录是否非空
|
||||
if [ "$(ls -A $DOC_PATH)" ]; then
|
||||
LOG_INFO "文档目录 $DOC_PATH 非空,包含文件:"
|
||||
ls -la $DOC_PATH
|
||||
CHECK_RESULT $? 0 0 "列出文档目录内容失败"
|
||||
else
|
||||
LOG_ERROR "文档目录 $DOC_PATH 为空"
|
||||
CHECK_RESULT 1 0 0 "文档目录为空"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文档目录 $DOC_PATH 不存在"
|
||||
CHECK_RESULT 1 0 0 "文档目录不存在"
|
||||
fi
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:检查文档文件是否存在"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-02
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify documentation content integrity
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Verify documentation content integrity"
|
||||
|
||||
LOG_INFO "步骤1:检查texlive-exsol-doc软件包是否在yum源中"
|
||||
dnf list available texlive-exsol-doc 2>/dev/null | grep -q texlive-exsol-doc
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-exsol-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装texlive-exsol-doc软件包"
|
||||
if rpm -q texlive-exsol-doc >/dev/null 2>&1; then
|
||||
LOG_INFO "texlive-exsol-doc已安装,标记为已存在安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-exsol-doc未安装,标记为未安装状态"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-exsol-doc软件包"
|
||||
dnf install -y texlive-exsol-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-exsol-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证文档内容完整性"
|
||||
# 假设验证文档完整性的命令是检查某个文档文件是否存在并具有特定内容
|
||||
# 这里以检查/usr/share/doc/texlive-exsol-doc/README文件为例
|
||||
DOC_FILE="/usr/share/doc/texlive-exsol-doc/README"
|
||||
if [ -f "$DOC_FILE" ]; then
|
||||
LOG_INFO "找到文档文件:$DOC_FILE"
|
||||
# 检查文件是否非空
|
||||
if [ -s "$DOC_FILE" ]; then
|
||||
LOG_INFO "文档文件非空,内容完整性检查通过"
|
||||
else
|
||||
LOG_ERROR "文档文件为空,内容完整性检查失败"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到预期的文档文件:$DOC_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的texlive-exsol-doc软件包"
|
||||
dnf remove -y texlive-exsol-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-exsol-doc失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装texlive-exsol-doc,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify the documentation files are installed correctly
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luatextra-doc
|
||||
LOG_INFO "检查是否已安装texlive-luatextra-doc"
|
||||
rpm -q texlive-luatextra-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luatextra-doc已安装,脚本结束时将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "texlive-luatextra-doc未安装,将在测试步骤中安装并在结束时卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luatextra-doc软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luatextra-doc软件包"
|
||||
dnf list available texlive-luatextra-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luatextra-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-luatextra-doc软件包(如果未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装texlive-luatextra-doc软件包"
|
||||
dnf install -y texlive-luatextra-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luatextra-doc软件包失败"
|
||||
fi
|
||||
|
||||
# 验证文档文件是否正确安装
|
||||
LOG_INFO "验证文档文件是否正确安装"
|
||||
ls /usr/share/doc/texlive-luatextra* > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "文档文件未正确安装"
|
||||
|
||||
# 清理环境(如果脚本开始时未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-luatextra-doc软件包"
|
||||
dnf remove -y texlive-luatextra-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luatextra-doc软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-16
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify the package can be completely removed from the system.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包 texlive-luatextra-doc 是否在yum源中"
|
||||
dnf list available texlive-luatextra-doc &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 texlive-luatextra-doc 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包 texlive-luatextra-doc"
|
||||
rpm -q texlive-luatextra-doc &>/dev/null
|
||||
installed=$?
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "软件包未安装,开始安装 texlive-luatextra-doc"
|
||||
dnf install -y texlive-luatextra-doc
|
||||
CHECK_RESULT $? 0 0 "安装软件包 texlive-luatextra-doc 失败"
|
||||
else
|
||||
LOG_INFO "软件包 texlive-luatextra-doc 已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包功能是否正常(此处以查询包信息为例)
|
||||
LOG_INFO "验证软件包 texlive-luatextra-doc 功能是否正常"
|
||||
rpm -qi texlive-luatextra-doc &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "查询软件包 texlive-luatextra-doc 信息失败"
|
||||
|
||||
# 步骤5:卸载软件包
|
||||
LOG_INFO "卸载软件包 texlive-luatextra-doc"
|
||||
dnf remove -y texlive-luatextra-doc
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 texlive-luatextra-doc 失败"
|
||||
|
||||
# 步骤6:验证软件包是否完全卸载
|
||||
LOG_INFO "验证软件包 texlive-luatextra-doc 是否完全从系统中移除"
|
||||
rpm -q texlive-luatextra-doc &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "软件包 texlive-luatextra-doc 卸载不彻底"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "软件包 texlive-luatextra-doc 已完全卸载"
|
||||
fi
|
||||
|
||||
# 步骤7:环境恢复 - 如果最初是已安装状态,则重新安装
|
||||
if [ $installed -eq 0 ]; then
|
||||
LOG_INFO "恢复环境,重新安装软件包 texlive-luatextra-doc"
|
||||
dnf install -y texlive-luatextra-doc
|
||||
CHECK_RESULT $? 0 0 "恢复环境时重新安装软件包 texlive-luatextra-doc 失败"
|
||||
else
|
||||
LOG_INFO "环境最初未安装软件包,无需恢复安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if the documentation package is installed
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-newpx-doc文档包
|
||||
LOG_INFO "检查texlive-newpx-doc文档包是否已安装"
|
||||
|
||||
# 检查yum源中是否存在该软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-newpx-doc软件包"
|
||||
dnf list available texlive-newpx-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-newpx-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装
|
||||
LOG_INFO "检查当前系统是否已安装texlive-newpx-doc"
|
||||
dnf list installed texlive-newpx-doc > /dev/null 2>&1
|
||||
was_installed=$?
|
||||
|
||||
if [ $was_installed -eq 0 ]; then
|
||||
LOG_INFO "texlive-newpx-doc已安装,保持安装状态"
|
||||
installed_already=1
|
||||
else
|
||||
LOG_INFO "texlive-newpx-doc未安装,开始安装"
|
||||
installed_already=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则执行安装
|
||||
if [ $installed_already -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-newpx-doc软件包"
|
||||
dnf install -y texlive-newpx-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-newpx-doc失败"
|
||||
LOG_INFO "texlive-newpx-doc安装成功"
|
||||
fi
|
||||
|
||||
# 验证文档包是否已正确安装
|
||||
LOG_INFO "验证texlive-newpx-doc文档包是否已正确安装"
|
||||
rpm -ql texlive-newpx-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-newpx-doc文档包未正确安装"
|
||||
|
||||
# 检查文档文件是否存在
|
||||
LOG_INFO "检查texlive-newpx-doc文档文件"
|
||||
rpm -ql texlive-newpx-doc | grep -E "\.pdf$|\.html$|\.txt$" | head -5 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "未找到texlive-newpx-doc文档文件"
|
||||
|
||||
# 清理环境:如果测试前未安装,则在测试后卸载
|
||||
if [ $installed_already -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-newpx-doc软件包"
|
||||
dnf remove -y texlive-newpx-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-newpx-doc失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持texlive-newpx-doc安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:texlive-newpx-doc文档包安装验证成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test verifying key documentation content exists
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装texlive-newpx-doc
|
||||
LOG_INFO "检查是否已经安装texlive-newpx-doc"
|
||||
rpm -q texlive-newpx-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-newpx-doc已经安装,脚本结束前将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-newpx-doc未安装,将进行安装和测试"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-newpx-doc软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-newpx-doc软件包"
|
||||
dnf list available texlive-newpx-doc
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有texlive-newpx-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-newpx-doc
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装texlive-newpx-doc"
|
||||
dnf install -y texlive-newpx-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-newpx-doc失败"
|
||||
fi
|
||||
|
||||
# 验证关键文档内容是否存在
|
||||
LOG_INFO "验证关键文档内容是否存在"
|
||||
if [ -d "/usr/share/texlive/texmf-dist/doc/fonts/newpx" ]; then
|
||||
LOG_INFO "找到newpx字体文档目录"
|
||||
# 检查目录中是否有文档文件
|
||||
DOC_COUNT=$(find /usr/share/texlive/texmf-dist/doc/fonts/newpx -name "*.pdf" -o -name "*.txt" -o -name "*.tex" | wc -l)
|
||||
if [ $DOC_COUNT -gt 0 ]; then
|
||||
LOG_INFO "找到 $DOC_COUNT 个文档文件"
|
||||
# 检查README或文档说明文件
|
||||
if [ -f "/usr/share/texlive/texmf-dist/doc/fonts/newpx/README" ] || [ -f "/usr/share/texlive/texmf-dist/doc/fonts/newpx/readme.txt" ]; then
|
||||
LOG_INFO "找到README或说明文件"
|
||||
CHECK_RESULT $? 0 0 "文档内容验证失败"
|
||||
else
|
||||
LOG_INFO "未找到README文件,但文档目录存在"
|
||||
CHECK_RESULT $? 0 0 "文档内容验证失败"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文档目录中没有找到任何文档文件"
|
||||
CHECK_RESULT $? 0 1 "文档内容验证失败"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "未找到newpx字体文档目录"
|
||||
CHECK_RESULT $? 0 1 "文档内容验证失败"
|
||||
fi
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则在结束时卸载
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-newpx-doc"
|
||||
dnf remove -y texlive-newpx-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-newpx-doc失败"
|
||||
else
|
||||
LOG_INFO "保持texlive-newpx-doc安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-31
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test accessing the main documentation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-newpx-doc"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中"
|
||||
|
||||
# 步骤2:检查环境是否已安装该软件包
|
||||
LOG_INFO "步骤2:检查环境是否已安装该软件包"
|
||||
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:测试访问主文档
|
||||
LOG_INFO "步骤4:测试访问主文档"
|
||||
# 假设主文档位于 /usr/share/doc/texlive-newpx-doc/ 目录下
|
||||
DOC_DIR="/usr/share/doc/texlive-newpx-doc"
|
||||
if [ -d "$DOC_DIR" ]; then
|
||||
LOG_INFO "文档目录 $DOC_DIR 存在"
|
||||
# 列出文档目录内容
|
||||
ls -la "$DOC_DIR"
|
||||
CHECK_RESULT $? 0 0 "列出文档目录内容失败"
|
||||
# 检查是否有README或index.html等主文档文件
|
||||
if [ -f "$DOC_DIR/README" ] || [ -f "$DOC_DIR/index.html" ] || [ -f "$DOC_DIR/manual.pdf" ]; then
|
||||
LOG_INFO "找到主文档文件"
|
||||
else
|
||||
LOG_ERROR "未找到主文档文件"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文档目录 $DOC_DIR 不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5:清理环境
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 在测试前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of texlive-seealso
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-seealso
|
||||
LOG_INFO "检查是否已安装texlive-seealso"
|
||||
rpm -q texlive-seealso > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-seealready installed, keeping the state"
|
||||
installed=true
|
||||
else
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-seealso软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-seealso软件包"
|
||||
dnf list available texlive-seealso > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到texlive-seealso软件包"
|
||||
|
||||
# 安装texlive-seealso软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装texlive-seealso软件包"
|
||||
dnf install -y texlive-seealso
|
||||
CHECK_RESULT $? 0 0 "安装texlive-seealso软件包失败"
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试texlive-seealso基本功能"
|
||||
command_output=$(texdoc seealso 2>&1)
|
||||
CHECK_RESULT $? 0 255 "texdoc seealso命令执行失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-seealso软件包"
|
||||
dnf remove -y texlive-seealso
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-seealso软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,122 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic usage of seealso environment
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试环境初始化
|
||||
LOG_INFO "开始测试:Test basic usage of seealso environment"
|
||||
LOG_INFO "步骤1:检查测试环境是否已安装texlive-seealso包"
|
||||
|
||||
# 检查是否已安装texlive-seealso
|
||||
if rpm -q texlive-seealso >/dev/null 2>&1; then
|
||||
LOG_INFO "环境已安装texlive-seealso包,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=1
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-seealso包,测试将执行安装和卸载操作"
|
||||
INSTALLED_BEFORE_TEST=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-seealso包
|
||||
LOG_INFO "步骤2:检查yum源中是否有texlive-seealso包"
|
||||
dnf list available texlive-seealso >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-seealso包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在texlive-seealso包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-seealso包"
|
||||
dnf install -y texlive-seealso
|
||||
CHECK_RESULT $? 0 0 "安装texlive-seealso包失败"
|
||||
LOG_INFO "texlive-seealso包安装成功"
|
||||
fi
|
||||
|
||||
# 测试seealso命令的基本用法
|
||||
LOG_INFO "步骤4:测试seealso命令的基本用法"
|
||||
# 检查seealso命令是否存在
|
||||
which seealso >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "seealso命令未找到"
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-seealso包"
|
||||
dnf remove -y texlive-seealso
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 测试不带参数的seealso命令
|
||||
LOG_INFO "步骤5:测试不带参数的seealso命令"
|
||||
seealso
|
||||
CHECK_RESULT $? 0 0 "不带参数的seealso命令执行失败"
|
||||
|
||||
# 测试查看帮助信息
|
||||
LOG_INFO "步骤6:测试查看seealso命令帮助信息"
|
||||
seealso --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "查看seealso命令帮助信息失败"
|
||||
|
||||
# 测试无效参数
|
||||
LOG_INFO "步骤7:测试seealso命令无效参数"
|
||||
seealso --invalid-param >/dev/null 2>&1
|
||||
if [ $? -eq 255 ] || [ $? -eq 1 ]; then
|
||||
LOG_INFO "无效参数被正确识别,退出码为$?"
|
||||
else
|
||||
LOG_ERROR "无效参数未正确处理"
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-seealso包"
|
||||
dnf remove -y texlive-seealso
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "步骤8:测试seealso命令基本功能"
|
||||
# 创建一个测试文件
|
||||
TEST_FILE="/tmp/test_seealso.tex"
|
||||
cat > $TEST_FILE << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
This is a test document.
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用seealso处理测试文件
|
||||
seealso $TEST_FILE >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "seealso处理测试文件失败"
|
||||
|
||||
# 清理测试文件
|
||||
rm -f $TEST_FILE
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "步骤9:恢复测试环境"
|
||||
if [ $INSTALLED_BEFORE_TEST -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-seealso包"
|
||||
dnf remove -y texlive-seealso
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-seealso包失败"
|
||||
LOG_INFO "texlive-seealso包卸载成功"
|
||||
else
|
||||
LOG_INFO "保持texlive-seealso包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic usage of seealso environment"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test custom seealso environment styling
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test custom seealso environment styling"
|
||||
|
||||
# 步骤1:检查yum源中是否存在texlive-seealso软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-seealso软件包"
|
||||
dnf list available texlive-seealso &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-seealso软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:判断环境是否已经安装texlive-seealso
|
||||
LOG_INFO "判断环境是否已经安装texlive-seealso"
|
||||
rpm -q texlive-seealso &> /dev/null
|
||||
installed=$?
|
||||
|
||||
if [ $installed -eq 0 ]; then
|
||||
LOG_INFO "环境已安装texlive-seealso,测试结束后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-seealso,将执行安装步骤"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装texlive-seealso软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "安装texlive-seealso软件包"
|
||||
dnf install -y texlive-seealso
|
||||
CHECK_RESULT $? 0 0 "安装texlive-seealso软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试指定命令的参数是否存在或不支持
|
||||
LOG_INFO "测试指定命令的参数是否存在或不支持"
|
||||
# 这里假设要测试的命令是texlive-seealso的某个命令,例如"seealso",并检查其参数"-v"
|
||||
seealso -v &> /dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "指定命令的参数不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:执行命令并判断是否成功
|
||||
LOG_INFO "执行命令并判断是否成功"
|
||||
# 这里假设要执行的命令是"seealso --help"
|
||||
seealso --help
|
||||
CHECK_RESULT $? 0 0 "执行seealso --help命令失败"
|
||||
|
||||
# 步骤6:清理环境,恢复到之前的状态
|
||||
LOG_INFO "清理环境,恢复到之前的状态"
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "卸载texlive-seealso软件包"
|
||||
dnf remove -y texlive-seealso
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-seealso软件包失败"
|
||||
else
|
||||
LOG_INFO "环境已安装texlive-seealso,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test custom seealso environment styling"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-10-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test documentation generation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试文档生成功能..."
|
||||
|
||||
# 检查是否已安装texlive-shadow-doc
|
||||
LOG_INFO "检查是否已安装texlive-shadow-doc..."
|
||||
dnf list installed texlive-shadow-doc &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-shadow-doc已安装,跳过安装步骤..."
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-shadow-doc未安装,准备安装..."
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-shadow-doc
|
||||
LOG_INFO "检查yum源中是否有texlive-shadow-doc..."
|
||||
dnf list available texlive-shadow-doc &>/dev/null
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到texlive-shadow-doc"
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
# 安装texlive-shadow-doc
|
||||
LOG_INFO "正在安装texlive-shadow-doc..."
|
||||
dnf install -y texlive-shadow-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-shadow-doc失败"
|
||||
fi
|
||||
|
||||
# 测试文档生成功能
|
||||
LOG_INFO "测试文档生成功能..."
|
||||
texdoc --list shadow | grep -q "shadow-doc"
|
||||
CHECK_RESULT $? 0 255 "文档生成功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-shadow-doc..."
|
||||
dnf remove -y texlive-shadow-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-shadow-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试文档生成功能完成。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,133 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test uninstallation of the package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(如果未定义)
|
||||
type LOG_INFO >/dev/null 2>&1 || LOG_INFO() { echo "[INFO] $*"; }
|
||||
type LOG_ERROR >/dev/null 2>&1 || LOG_ERROR() { echo "[ERROR] $*"; }
|
||||
|
||||
# 定义检查结果函数(如果未定义)
|
||||
type CHECK_RESULT >/dev/null 2>&1 || CHECK_RESULT() {
|
||||
local actual_ret=$1
|
||||
local expect_ret=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual_ret -eq $expect_ret ]; then
|
||||
LOG_INFO "$message 成功"
|
||||
else
|
||||
LOG_ERROR "$message 失败"
|
||||
exit $actual_ret
|
||||
fi
|
||||
else
|
||||
if [ $actual_ret -ne $expect_ret ]; then
|
||||
LOG_INFO "$message 成功"
|
||||
else
|
||||
LOG_ERROR "$message 失败"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(如果未定义)
|
||||
type SSH_CMD >/dev/null 2>&1 || SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_pass=$3
|
||||
local node_user=$4
|
||||
sshpass -p "$node_pass" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试软件包卸载功能"
|
||||
|
||||
# 检查dnf工具是否可用
|
||||
LOG_INFO "检查dnf工具是否可用"
|
||||
command -v dnf >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "检查dnf工具可用性"
|
||||
|
||||
# 定义要测试的软件包
|
||||
PACKAGE_NAME="texlive-shadow-doc"
|
||||
|
||||
# 检查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是否已安装"
|
||||
if rpm -q "$PACKAGE_NAME" >/dev/null 2>&1; then
|
||||
LOG_INFO "$PACKAGE_NAME已安装,测试结束后保持安装状态"
|
||||
WAS_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME未安装,将先安装再测试卸载"
|
||||
WAS_INSTALLED=0
|
||||
|
||||
# 安装软件包
|
||||
LOG_INFO "安装$PACKAGE_NAME软件包"
|
||||
dnf install -y "$PACKAGE_NAME" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME"
|
||||
|
||||
# 验证安装成功
|
||||
LOG_INFO "验证$PACKAGE_NAME安装成功"
|
||||
rpm -q "$PACKAGE_NAME" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "验证$PACKAGE_NAME安装"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载$PACKAGE_NAME软件包"
|
||||
dnf remove -y "$PACKAGE_NAME" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME"
|
||||
|
||||
# 验证卸载成功
|
||||
LOG_INFO "验证$PACKAGE_NAME已卸载"
|
||||
rpm -q "$PACKAGE_NAME" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 1 1 "验证$PACKAGE_NAME已卸载"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "恢复测试环境"
|
||||
if [ $WAS_INSTALLED -eq 1 ]; then
|
||||
# 如果原本已安装,重新安装
|
||||
LOG_INFO "重新安装$PACKAGE_NAME以恢复环境"
|
||||
dnf install -y "$PACKAGE_NAME" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "重新安装$PACKAGE_NAME"
|
||||
|
||||
# 验证恢复成功
|
||||
LOG_INFO "验证环境恢复成功"
|
||||
rpm -q "$PACKAGE_NAME" >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "验证$PACKAGE_NAME已重新安装"
|
||||
else
|
||||
LOG_INFO "测试前未安装$PACKAGE_NAME,无需重新安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
# 执行主测试函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify documentation files existence
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查yum源中是否存在指定的软件包
|
||||
if ! dnf list texlive-texlive-it-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-texlive-it-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查环境是否已安装软件包
|
||||
if rpm -q texlive-texlive-it-doc &>/dev/null; then
|
||||
LOG_INFO "环境已安装texlive-texlive-it-doc软件包,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-texlive-it-doc软件包,将在测试步骤中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装texlive-texlive-it-doc软件包..."
|
||||
dnf install -y texlive-texlive-it-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-texlive-it-doc失败"
|
||||
fi
|
||||
|
||||
# 验证文档文件是否存在
|
||||
LOG_INFO "验证文档文件是否存在..."
|
||||
DOC_PATH="/usr/share/doc/texlive-texlive-it-doc"
|
||||
if [ -d "$DOC_PATH" ]; then
|
||||
LOG_INFO "文档文件存在于$DOC_PATH"
|
||||
else
|
||||
LOG_ERROR "文档文件不存在于$DOC_PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 如果脚本开始时未安装软件包,则在结束时卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载texlive-texlive-it-doc软件包..."
|
||||
dnf remove -y texlive-texlive-it-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-texlive-it-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-10-05
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了texlive-numberpt软件包
|
||||
LOG_INFO "检查是否已经安装了texlive-numberpt软件包"
|
||||
rpm -q texlive-numberpt
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-numberpt已经安装,脚本结束时保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-numberpt软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-numberpt软件包"
|
||||
dnf list available texlive-numberpt > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中没有texlive-numberpt软件包"
|
||||
|
||||
# 安装texlive-numberpt软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装texlive-numberpt软件包"
|
||||
dnf install -y texlive-numberpt > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-numberpt软件包失败"
|
||||
fi
|
||||
|
||||
# 测试texlive-numberpt功能是否正常
|
||||
LOG_INFO "测试texlive-numberpt功能是否正常"
|
||||
test_command="texlive-numberpt --version"
|
||||
eval "$test_command" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "texlive-numberpt功能测试失败"
|
||||
|
||||
# 清理环境,如果之前未安装则卸载
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "清理环境,卸载texlive-numberpt软件包"
|
||||
dnf remove -y texlive-numberpt > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-numberpt软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-10-05
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package removal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test package removal"
|
||||
|
||||
# 检查是否已安装texlive-numberpt软件包
|
||||
LOG_INFO "检查是否已安装texlive-numberpt软件包"
|
||||
dnf list installed texlive-numberpt > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-numberpt已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-numberpt未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-numberpt软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-numberpt软件包"
|
||||
dnf list available texlive-numberpt > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-numberpt软件包"
|
||||
|
||||
# 安装texlive-numberpt软件包(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-numberpt软件包"
|
||||
dnf install -y texlive-numberpt > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-numberpt软件包失败"
|
||||
fi
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "测试卸载texlive-numberpt软件包"
|
||||
dnf remove -y texlive-numberpt > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-numberpt软件包失败"
|
||||
|
||||
# 重新安装(如果之前未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "重新安装texlive-numberpt软件包以恢复环境"
|
||||
dnf install -y texlive-numberpt > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "重新安装texlive-numberpt软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test package removal"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user