This commit is contained in:
2026-04-22 14:13:47 +08:00
75 changed files with 0 additions and 5291 deletions

View File

@@ -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项目项目能够正常编译和运行验证其基础功能可用。"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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手册页可以正常访问和显示。"
}
]
}

View File

@@ -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可以通过包管理器正常卸载"

View File

@@ -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
}
]
}

View File

@@ -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正确获取编译和链接信息。"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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 开发包的版本和编译链接参数。"

View File

@@ -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"
}
]
}

View File

@@ -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": "测试错误输入处理功能"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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."

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"

View File

@@ -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"
}
]
}

View File

@@ -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"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-24
# @License : Mulan PSL v2
# @Desc : 测试在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 "$@"

View File

@@ -1,97 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-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 "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-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 "$@"

View File

@@ -1,61 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,97 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,97 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,96 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,119 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-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 "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-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 "$@"

View File

@@ -1,112 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-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 "$@"

View File

@@ -1,72 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试 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 "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,99 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试 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 "$@"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试 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 "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,97 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-11
# @License : Mulan PSL v2
# @Desc : 测试解析输入文件功能
# ############################################
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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-26
# @License : Mulan PSL v2
# @Desc : 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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-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 "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,133 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,61 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"