This commit is contained in:
2026-04-17 23:59:54 +08:00
33 changed files with 0 additions and 2119 deletions

View File

@@ -21,14 +21,6 @@
{
"name": "test_fribidi-devel_function_version",
"desc": "Verify the package version matches"
},
{
"name": "test_fribidi-devel_function_link",
"desc": "Test linking a program with library"
},
{
"name": "test_fribidi-devel_function_build",
"desc": "Test building a sample application"
}
]
}

View File

@@ -5,10 +5,6 @@
{
"name": "test_jzlib-devel_function_install",
"desc": "Test installation of jzlib-devel package"
},
{
"name": "test_jzlib-devel_function_compress",
"desc": "Test compression functionality of jzlib-devel"
}
]
}

View File

@@ -2,25 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/libsmbios/libsmbios-help",
"machine num": 1,
"cases": [
{
"name": "test_libsmbios-help_function_install",
"desc": "测试 libsmbios-help 软件包能否正常安装"
},
{
"name": "test_libsmbios-help_function_uninstall",
"desc": "测试 libsmbios-help 软件包能否正常卸载"
},
{
"name": "test_libsmbios-help_function_check_installed",
"desc": "测试 libsmbios-help 软件包是否正确安装并可查询版本信息"
},
{
"name": "test_libsmbios-help_function_help_content",
"desc": "测试 libsmbios-help 软件包提供的帮助文档内容可访问性"
},
{
"name": "test_libsmbios-help_function_man_page",
"desc": "测试 libsmbios-help 软件包的 man 手册页是否存在并可查看"
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_perl-Glib-help_remove",
"desc": "测试 perl-Glib-help 软件包是否能够被干净地卸载。"
},
{
"name": "test_perl-Glib-help_basic_help",
"desc": "测试 perl-Glib-help 提供的 Glib 模块基础帮助文档功能是否可用。"
},
{
"name": "test_perl-Glib-help_pod_docs",
"desc": "测试通过 perldoc 命令访问 Glib 模块的 POD 文档是否正常。"
},
{
"name": "test_perl-Glib-help_version",
"desc": "测试 perl-Glib-help 软件包是否提供了正确的版本信息。"
}
]
}

View File

@@ -2,26 +2,10 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-mergedeep/python3-mergedeep",
"machine num": 1,
"cases": [
{
"name": "test_python3-mergedeep_function_merge",
"desc": "Test merging two dictionaries"
},
{
"name": "test_python3-mergedeep_function_install",
"desc": "Test installation of the package"
},
{
"name": "test_python3-mergedeep_function_import",
"desc": "Test importing the package"
},
{
"name": "test_python3-mergedeep_function_merge_list",
"desc": "Test merging lists"
},
{
"name": "test_python3-mergedeep_function_strategy",
"desc": "Test merge strategies"
},
{
"name": "test_python3-mergedeep_function_uninstall",
"desc": "Test uninstallation of package"

View File

@@ -6,26 +6,6 @@
"name": "test_python3-pyasn1_install",
"desc": "测试python3-pyasn1软件包的安装功能",
"machine num": 1
},
{
"name": "test_python3-pyasn1_function_install",
"desc": "测试python3-pyasn1软件包的安装功能"
},
{
"name": "test_python3-pyasn1_function_import",
"desc": "测试python3-pyasn1模块能否正常导入"
},
{
"name": "test_python3-pyasn1_function_encode",
"desc": "测试ASN.1数据结构的基本编码功能"
},
{
"name": "test_python3-pyasn1_function_decode",
"desc": "测试ASN.1数据结构的基本解码功能"
},
{
"name": "test_python3-pyasn1_function_uninstall",
"desc": "测试python3-pyasn1软件包的卸载功能"
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_texlive-graphviz_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_texlive-graphviz_function_check_installed",
"desc": "Verify package is installed"
},
{
"name": "test_texlive-graphviz_function_generate_dot",
"desc": "Test dot command generates output"
},
{
"name": "test_texlive-graphviz_function_latex_integration",
"desc": "Test LaTeX document compilation with dot"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-thalie",
"machine num": 1,
"cases": [
{
"name": "test_texlive-thalie_function_install",
"desc": "Test installation of texlive-thalie"
}
]
}

View File

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

View File

@@ -1,107 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test building a sample application
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test building a sample application"
# 定义软件包名称
PACKAGE_NAME="fribidi-devel"
# 步骤1: 检查yum源中是否有fribidi-devel软件包
LOG_INFO "步骤1: 检查yum源中是否有${PACKAGE_NAME}软件包"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
# 步骤2: 检查当前环境是否已安装fribidi-devel
LOG_INFO "步骤2: 检查当前环境是否已安装${PACKAGE_NAME}"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "${PACKAGE_NAME}已安装,标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "${PACKAGE_NAME}未安装,标记为未安装状态"
INSTALLED="false"
fi
# 步骤3: 如果未安装,则安装软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤3: 安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 步骤4: 验证软件包安装成功
LOG_INFO "步骤4: 验证${PACKAGE_NAME}软件包安装成功"
rpm -q ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "${PACKAGE_NAME}软件包未正确安装"
# 步骤5: 测试构建示例应用程序
LOG_INFO "步骤5: 测试构建示例应用程序"
# 创建一个简单的C源文件来测试fribidi-devel
cat > test_fribidi.c << "EOF"
#include <stdio.h>
#include <fribidi.h>
int main() {
FriBidiChar str[] = {0x05D0, 0x05D1, 0x05D2, 0}; // 一些希伯来语字符
FriBidiCharType pbase_dir = FRIBIDI_TYPE_ON;
FriBidiChar out[4];
FriBidiParType base_dir = FRIBIDI_PAR_LTR;
FriBidiLevel level;
FriBidiCharType *types;
FriBidiBracketType *btypes;
FriBidiFlags flags = 0;
fribidi_log2vis(str, 3, &pbase_dir, out, NULL, NULL, NULL);
printf("测试通过: fribidi库可以正常链接和调用\n");
return 0;
}
EOF
# 编译测试程序
LOG_INFO "编译测试程序"
gcc -o test_fribidi test_fribidi.c $(pkg-config --cflags --libs fribidi)
CHECK_RESULT $? 0 0 "编译测试程序失败"
# 运行测试程序
LOG_INFO "运行测试程序"
./test_fribidi
CHECK_RESULT $? 0 0 "运行测试程序失败"
# 步骤6: 清理测试文件
LOG_INFO "步骤6: 清理测试文件"
rm -f test_fribidi.c test_fribidi
# 步骤7: 如果测试开始前未安装,则卸载软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤7: 卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "步骤7: 测试开始前已安装${PACKAGE_NAME},保持安装状态"
fi
LOG_INFO "测试完成Test building a sample application"
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-22
# @License : Mulan PSL v2
# @Desc : Test linking a program with library
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:链接程序与库"
# 步骤1检查环境中是否已安装 fribidi-devel 软件包
LOG_INFO "检查 fribidi-devel 软件包是否已安装"
if rpm -q fribidi-devel > /dev/null 2>&1; then
LOG_INFO "fribidi-devel 已安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "fribidi-devel 未安装,将在测试步骤中安装"
INSTALLED_BEFORE=false
fi
# 步骤2检查 yum 源中是否有 fribidi-devel 软件包
LOG_INFO "检查 yum 源中是否有 fribidi-devel 软件包"
if ! dnf list available fribidi-devel > /dev/null 2>&1; then
LOG_ERROR "yum 源中未找到 fribidi-devel 软件包"
exit 255
fi
# 步骤3如果未安装则安装 fribidi-devel 软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装 fribidi-devel 软件包"
dnf install -y fribidi-devel
CHECK_RESULT $? 0 0 "安装 fribidi-devel 失败"
fi
# 步骤4创建一个简单的 C 程序来测试链接
LOG_INFO "创建测试 C 程序"
cat > test_linking.c << "EOF"
#include <fribidi.h>
int main() {
FriBidiChar str[] = {0x05D0, 0x05D1, 0x05D2};
FriBidiChar out[3];
FriBidiParType base = FRIBIDI_PAR_ON;
fribidi_log2vis(str, 3, &base, out, NULL, NULL, NULL);
return 0;
}
EOF
# 步骤5编译测试程序检查链接库是否成功
LOG_INFO "编译测试程序以验证链接"
gcc test_linking.c -o test_linking -lfribidi
CHECK_RESULT $? 0 0 "编译链接失败,可能是库文件未正确链接"
# 步骤6运行测试程序以验证功能
LOG_INFO "运行测试程序以验证功能"
./test_linking
CHECK_RESULT $? 0 0 "测试程序运行失败,可能是库功能异常"
# 步骤7清理测试文件
LOG_INFO "清理测试文件"
rm -f test_linking.c test_linking
# 步骤8如果之前未安装 fribidi-devel则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载 fribidi-devel 软件包"
dnf remove -y fribidi-devel
CHECK_RESULT $? 0 0 "卸载 fribidi-devel 失败"
fi
LOG_INFO "测试完成:链接程序与库"
}
main "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-02
# @License : Mulan PSL v2
# @Desc : Test compression functionality of jzlib-devel
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 jzlib-devel 的压缩功能"
# 检查 jzlib-devel 是否已安装
LOG_INFO "检查 jzlib-devel 是否已安装"
if dnf list installed jzlib-devel &>/dev/null; then
LOG_INFO "jzlib-devel 已安装,测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "jzlib-devel 未安装,测试结束后将卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 jzlib-devel
LOG_INFO "检查 yum 源中是否有 jzlib-devel"
if ! dnf list available jzlib-devel &>/dev/null; then
LOG_ERROR "yum 源中未找到 jzlib-devel 软件包"
exit 255
fi
# 如果未安装,则安装 jzlib-devel
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 jzlib-devel"
dnf install -y jzlib-devel
CHECK_RESULT $? 0 0 "安装 jzlib-devel 失败"
fi
# 测试压缩功能
LOG_INFO "测试压缩功能"
echo "test data" > test_input.txt
jzlib-compress test_input.txt test_output.jz
CHECK_RESULT $? 0 0 "压缩功能测试失败"
# 验证压缩文件
LOG_INFO "验证压缩文件"
if [ ! -f test_output.jz ]; then
LOG_ERROR "压缩文件未生成"
exit 1
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f test_input.txt test_output.jz
# 如果测试前未安装,则卸载 jzlib-devel
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 jzlib-devel"
dnf remove -y jzlib-devel
CHECK_RESULT $? 0 0 "卸载 jzlib-devel 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : 测试 libsmbios-help 软件包是否正确安装并可查询版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称和命令
PACKAGE_NAME="libsmbios-help"
COMMAND="smbios-sys-info"
COMMAND_OPTION="--version"
# 步骤1检查软件包是否已在yum源中
LOG_INFO "步骤1检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
# 步骤2检查当前环境是否已安装软件包
LOG_INFO "步骤2检查当前环境是否已安装软件包"
rpm -q $PACKAGE_NAME &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为需要清理"
KEEP_INSTALLED=0
fi
# 步骤3如果未安装则安装软件包
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4检查命令是否存在
LOG_INFO "步骤4检查命令 $COMMAND 是否存在"
which $COMMAND &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $COMMAND 不存在"
exit 255
fi
# 步骤5检查命令参数是否支持
LOG_INFO "步骤5检查命令参数 $COMMAND_OPTION 是否支持"
$COMMAND --help 2>&1 | grep -q "$COMMAND_OPTION"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $COMMAND 不支持参数 $COMMAND_OPTION"
exit 255
fi
# 步骤6执行命令查询版本信息
LOG_INFO "步骤6执行命令查询版本信息"
$COMMAND $COMMAND_OPTION
CHECK_RESULT $? 0 0 "执行命令 $COMMAND $COMMAND_OPTION 失败"
# 步骤7清理环境
LOG_INFO "步骤7清理环境"
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "软件包 $PACKAGE_NAME 保持安装状态,无需卸载"
fi
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : 测试 libsmbios-help 软件包提供的帮助文档内容可访问性
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了libsmbios-help软件包
LOG_INFO "检查libsmbios-help软件包是否已安装"
rpm -q libsmbios-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libsmbios-help软件包已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "libsmbios-help软件包未安装将在测试前安装"
INSTALLED=0
fi
# 检查yum源中是否有libsmbios-help软件包
LOG_INFO "检查yum源中是否有libsmbios-help软件包"
dnf list available libsmbios-help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libsmbios-help软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装libsmbios-help软件包"
dnf install -y libsmbios-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装libsmbios-help软件包失败"
fi
# 测试libsmbios-help软件包提供的帮助文档内容可访问性
LOG_INFO "测试libsmbios-help软件包提供的帮助文档内容可访问性"
rpm -ql libsmbios-help | grep -E "\.(txt|html|pdf|md)$" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "帮助文档文件存在,开始检查可访问性"
for doc_file in $(rpm -ql libsmbios-help | grep -E "\.(txt|html|pdf|md)$"); do
if [ -f "$doc_file" ]; then
head -n 5 "$doc_file" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "帮助文档文件 $doc_file 不可访问"
else
LOG_ERROR "帮助文档文件 $doc_file 不存在"
exit 255
fi
done
LOG_INFO "所有帮助文档文件均可访问"
else
LOG_ERROR "未找到帮助文档文件"
exit 255
fi
# 清理环境:如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载libsmbios-help软件包"
dnf remove -y libsmbios-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载libsmbios-help软件包失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "测试前已安装libsmbios-help软件包保持安装状态"
fi
}
main "$@"

View File

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

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-22
# @License : Mulan PSL v2
# @Desc : 测试 libsmbios-help 软件包的 man 手册页是否存在并可查看
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="libsmbios-help"
MAN_PAGE="libsmbios.7"
# 步骤1: 检查是否已安装软件包
LOG_INFO "步骤1: 检查是否已安装软件包"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 步骤2: 检查yum源中是否有该软件包
LOG_INFO "步骤2: 检查yum源中是否有软件包 $PACKAGE_NAME"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到软件包 $PACKAGE_NAME"
exit 255
fi
# 步骤3: 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 步骤4: 检查man手册页是否存在
LOG_INFO "步骤4: 检查man手册页 $MAN_PAGE 是否存在"
man -w $MAN_PAGE &>/dev/null
CHECK_RESULT $? 0 0 "man手册页 $MAN_PAGE 不存在"
# 步骤5: 查看man手册页内容
LOG_INFO "步骤5: 查看man手册页 $MAN_PAGE 内容"
man $MAN_PAGE | head -20 &>/dev/null
CHECK_RESULT $? 0 0 "查看man手册页 $MAN_PAGE 失败"
# 步骤6: 如果之前未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤6: 卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
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-02-20
# @License : Mulan PSL v2
# @Desc : 测试 perl-Glib-help 提供的 Glib 模块基础帮助文档功能是否可用。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装perl-Glib-help软件包
LOG_INFO "检查是否已安装perl-Glib-help软件包"
rpm -q perl-Glib-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "perl-Glib-help已安装标记为已安装状态"
INSTALLED=true
else
LOG_INFO "perl-Glib-help未安装标记为未安装状态"
INSTALLED=false
fi
# 检查yum源中是否有perl-Glib-help软件包
LOG_INFO "检查yum源中是否有perl-Glib-help软件包"
dnf list available perl-Glib-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到perl-Glib-help软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到perl-Glib-help软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装perl-Glib-help软件包"
dnf install -y perl-Glib-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装perl-Glib-help软件包失败"
fi
# 测试Glib模块基础帮助文档功能
LOG_INFO "测试Glib模块基础帮助文档功能是否可用"
perldoc Glib > /dev/null 2>&1
CHECK_RESULT $? 0 0 "perldoc Glib命令执行失败基础帮助文档功能不可用"
# 测试Glib模块的特定帮助文档功能
LOG_INFO "测试Glib模块的特定帮助文档功能"
perldoc Glib::Object > /dev/null 2>&1
CHECK_RESULT $? 0 0 "perldoc Glib::Object命令执行失败特定帮助文档功能不可用"
# 测试Glib模块的函数帮助文档功能
LOG_INFO "测试Glib模块的函数帮助文档功能"
perldoc -f Glib::Version::check > /dev/null 2>&1
CHECK_RESULT $? 0 0 "perldoc -f Glib::Version::check命令执行失败函数帮助文档功能不可用"
# 测试Glib模块的变量帮助文档功能
LOG_INFO "测试Glib模块的变量帮助文档功能"
perldoc -v "$Glib::VERSION" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "perldoc -v "\$Glib::VERSION"命令执行失败,变量帮助文档功能不可用"
# 清理环境
LOG_INFO "清理测试环境"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载perl-Glib-help软件包"
dnf remove -y perl-Glib-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载perl-Glib-help软件包失败"
else
LOG_INFO "保持perl-Glib-help软件包安装状态"
fi
LOG_INFO "测试完成perl-Glib-help提供的Glib模块基础帮助文档功能可用"
}
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-20
# @License : Mulan PSL v2
# @Desc : 测试通过 perldoc 命令访问 Glib 模块的 POD 文档是否正常。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装perl-Glib包
LOG_INFO "检查是否已安装perl-Glib包"
rpm -qa | grep -q "^perl-Glib-"
if [ $? -eq 0 ]; then
LOG_INFO "检测到perl-Glib已安装标记为已安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "未检测到perl-Glib安装标记为未安装状态"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有perl-Glib包
LOG_INFO "检查yum源中是否存在perl-Glib包"
dnf list available perl-Glib 2>&1 | grep -q "perl-Glib"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到perl-Glib包"
exit 255
fi
# 如果未安装则安装perl-Glib包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "开始安装perl-Glib包"
dnf install -y perl-Glib
CHECK_RESULT $? 0 0 "安装perl-Glib包失败"
LOG_INFO "perl-Glib包安装成功"
fi
# 测试perldoc命令访问Glib模块的POD文档
LOG_INFO "测试通过perldoc命令访问Glib模块的POD文档"
perldoc -h 2>&1 | grep -q "Usage:"
if [ $? -ne 0 ]; then
LOG_ERROR "perldoc命令参数不支持或不存在"
# 清理环境
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "清理环境卸载perl-Glib包"
dnf remove -y perl-Glib
CHECK_RESULT $? 0 0 "卸载perl-Glib包失败"
fi
exit 255
fi
perldoc Glib 2>&1 | head -20 | grep -q "Glib"
CHECK_RESULT $? 0 0 "通过perldoc访问Glib模块POD文档失败"
LOG_INFO "通过perldoc访问Glib模块POD文档成功"
# 环境恢复如果测试前未安装则卸载perl-Glib包
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "清理环境卸载perl-Glib包"
dnf remove -y perl-Glib
CHECK_RESULT $? 0 0 "卸载perl-Glib包失败"
LOG_INFO "环境恢复完成"
else
LOG_INFO "测试前已安装perl-Glib包保持安装状态"
fi
}
main "$@"

View File

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

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : Test importing the package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test importing the package"
LOG_INFO "步骤1检查环境中是否已安装python3-mergedeep软件包"
if dnf list installed python3-mergedeep &>/dev/null; then
LOG_INFO "python3-mergedeep软件包已安装将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "python3-mergedeep软件包未安装将在测试过程中安装"
INSTALLED_BEFORE=0
fi
LOG_INFO "步骤2检查yum源中是否有python3-mergedeep软件包"
if ! dnf list available python3-mergedeep &>/dev/null; then
LOG_ERROR "yum源中未找到python3-mergedeep软件包"
exit 255
fi
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "步骤3安装python3-mergedeep软件包"
dnf install -y python3-mergedeep
CHECK_RESULT $? 0 0 "安装python3-mergedeep软件包失败"
fi
LOG_INFO "步骤4测试导入mergedeep包"
python3 -c "import mergedeep; print("导入mergedeep成功")"
CHECK_RESULT $? 0 0 "导入mergedeep包失败"
LOG_INFO "步骤5测试mergedeep.merge函数是否存在"
python3 -c "from mergedeep import merge; print("导入merge函数成功")"
CHECK_RESULT $? 0 0 "导入merge函数失败"
LOG_INFO "步骤6测试mergedeep.merge函数基本功能"
python3 -c "
from mergedeep import merge
dict1 = {"a": 1}
dict2 = {"b": 2}
result = merge({}, dict1, dict2)
expected = {"a": 1, "b": 2}
if result == expected:
print("merge函数基本功能测试通过")
else:
print("merge函数基本功能测试失败")
exit(1)
"
CHECK_RESULT $? 0 0 "mergedeep.merge函数基本功能测试失败"
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "步骤7清理环境卸载python3-mergedeep软件包"
dnf remove -y python3-mergedeep
CHECK_RESULT $? 0 0 "卸载python3-mergedeep软件包失败"
else
LOG_INFO "步骤7保持python3-mergedeep软件包安装状态无需卸载"
fi
LOG_INFO "测试完成Test importing the package"
}
main "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-03
# @License : Mulan PSL v2
# @Desc : Test merging two dictionaries
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test merging two dictionaries"
# 检查是否已安装python3-mergedeep
if dnf list installed python3-mergedeep &>/dev/null; then
LOG_INFO "python3-mergedeep已安装测试结束后保持安装状态"
installed=true
else
LOG_INFO "python3-mergedeep未安装测试结束后将卸载"
installed=false
fi
# 检查yum源中是否有python3-mergedeep
LOG_INFO "检查yum源中是否有python3-mergedeep"
if ! dnf list available python3-mergedeep &>/dev/null; then
LOG_ERROR "yum源中未找到python3-mergedeep"
exit 255
fi
# 安装python3-mergedeep如果未安装
if [ "$installed" = false ]; then
LOG_INFO "安装python3-mergedeep"
dnf install -y python3-mergedeep
CHECK_RESULT $? 0 0 "安装python3-mergedeep失败"
fi
# 测试合并两个字典的功能
LOG_INFO "测试合并两个字典的功能"
cat <<EOF > test_merge.py
from mergedeeplib import merge
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
result = merge(dict1, dict2)
print(result)
EOF
python3 test_merge.py > merge_result.txt
CHECK_RESULT $? 0 0 "执行合并字典测试失败"
expected_result="{"a": 1, "b": 3, "c": 4}"
actual_result=$(cat merge_result.txt)
if [ "$actual_result" != "$expected_result" ]; then
LOG_ERROR "合并字典结果不符合预期"
exit 1
else
LOG_INFO "合并字典结果符合预期:$actual_result"
fi
# 清理临时文件
rm -f test_merge.py merge_result.txt
# 卸载python3-mergedeep如果最初未安装
if [ "$installed" = false ]; then
LOG_INFO "卸载python3-mergedeep"
dnf remove -y python3-mergedeep
CHECK_RESULT $? 0 0 "卸载python3-mergedeep失败"
fi
LOG_INFO "测试完成Test merging two dictionaries"
}
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-01
# @License : Mulan PSL v2
# @Desc : Test merging lists
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试python3-mergedeep函数merge_list功能"
LOG_INFO "检查python3-mergedeep软件包是否已在yum源中"
if ! dnf list python3-mergedeep &> /dev/null; then
LOG_ERROR "yum源中未找到python3-mergedeep软件包"
exit 255
fi
LOG_INFO "检查系统是否已安装python3-mergedeep"
if rpm -q python3-mergedeep &> /dev/null; then
LOG_INFO "python3-mergedeep已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "python3-mergedeep未安装将进行安装作为测试步骤"
INSTALLED=false
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "开始安装python3-mergedeep软件包"
dnf install -y python3-mergedeep
CHECK_RESULT $? 0 0 "安装python3-mergedeep失败"
LOG_INFO "python3-mergedeep安装成功"
fi
LOG_INFO "测试merge_list函数合并两个简单列表"
cat > test_merge_list.py << "EOF"
from mergedeep import merge
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = []
merge(result, list1, list2)
print(result)
EOF
python3 test_merge_list.py
CHECK_RESULT $? 0 0 "执行python脚本失败"
LOG_INFO "测试merge_list函数合并嵌套列表"
cat > test_merge_nested_list.py << "EOF"
from mergedeep import merge
list1 = [[1, 2], [3, 4]]
list2 = [[5, 6], [7, 8]]
result = []
merge(result, list1, list2)
print(result)
EOF
python3 test_merge_nested_list.py
CHECK_RESULT $? 0 0 "执行python脚本失败"
LOG_INFO "测试merge_list函数合并包含字典的列表"
cat > test_merge_list_with_dict.py << "EOF"
from mergedeep import merge
list1 = [{"a": 1}, {"b": 2}]
list2 = [{"c": 3}, {"d": 4}]
result = []
merge(result, list1, list2)
print(result)
EOF
python3 test_merge_list_with_dict.py
CHECK_RESULT $? 0 0 "执行python脚本失败"
LOG_INFO "清理临时测试文件"
rm -f test_merge_list.py test_merge_nested_list.py test_merge_list_with_dict.py
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "测试完成卸载python3-mergedeep软件包"
dnf remove -y python3-mergedeep
CHECK_RESULT $? 0 0 "卸载python3-mergedeep失败"
LOG_INFO "python3-mergedeep卸载成功环境已恢复"
else
LOG_INFO "测试完成保持python3-mergedeep安装状态"
fi
LOG_INFO "python3-mergedeep merge_list函数测试完成"
}
main "$@"

View File

@@ -1,124 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-01
# @License : Mulan PSL v2
# @Desc : Test merge strategies
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试合并策略
LOG_INFO "开始测试 merge strategies"
# 环境检查检查是否已安装python3-mergedeep
LOG_INFO "检查python3-mergedeep是否已安装"
if dnf list installed python3-mergedeep &>/dev/null; then
LOG_INFO "python3-mergedeep已安装测试后保持安装状态"
already_installed=true
else
LOG_INFO "python3-mergedeep未安装将在测试后卸载"
already_installed=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有python3-mergedeep软件包"
if ! dnf search python3-mergedeep 2>/dev/null | grep -q "python3-mergedeep"; then
LOG_ERROR "yum源中未找到python3-mergedeep软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装python3-mergedeep软件包"
dnf install -y python3-mergedeep
CHECK_RESULT $? 0 0 "安装python3-mergedeep失败"
fi
# 测试merge strategies功能
LOG_INFO "测试merge strategies功能"
# 创建测试Python脚本
LOG_INFO "创建测试Python脚本"
cat > /tmp/test_merge_strategy.py << "EOF"
from mergedeep import merge, Strategy
dict1 = {"a": 1, "b": {"x": 10, "y": 20}}
dict2 = {"b": {"y": 30, "z": 40}, "c": 3}
# 测试REPLACE策略
result_replace = merge({}, dict1, dict2, strategy=Strategy.REPLACE)
print(f"REPLACE策略结果: {result_replace}")
# 测试ADDITIVE策略
result_additive = merge({}, dict1, dict2, strategy=Strategy.ADDITIVE)
print(f"ADDITIVE策略结果: {result_additive}")
# 测试TYPESAFE策略
result_typesafe = merge({}, dict1, dict2, strategy=Strategy.TYPESAFE)
print(f"TYPESAFE策略结果: {result_typesafe}")
# 验证结果
expected_replace = {"a": 1, "b": {"y": 30, "z": 40}, "c": 3}
expected_additive = {"a": 1, "b": {"x": 10, "y": 30, "z": 40}, "c": 3}
expected_typesafe = {"a": 1, "b": {"x": 10, "y": 30, "z": 40}, "c": 3}
assert result_replace == expected_replace, f"REPLACE策略失败: {result_replace}"
assert result_additive == expected_additive, f"ADDITIVE策略失败: {result_additive}"
assert result_typesafe == expected_typesafe, f"TYPESAFE策略失败: {result_typesafe}"
print("所有merge策略测试通过")
EOF
# 执行测试脚本
LOG_INFO "执行merge策略测试"
python3 /tmp/test_merge_strategy.py
CHECK_RESULT $? 0 0 "merge策略测试失败"
# 测试命令行参数(如果存在)
LOG_INFO "检查python3-mergedeep是否支持命令行参数"
if python3 -m mergedeep --help &>/dev/null; then
LOG_INFO "测试命令行帮助"
python3 -m mergedeep --help
CHECK_RESULT $? 0 0 "获取命令行帮助失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
if python3 -m mergedeep --invalid-param &>/dev/null; then
LOG_ERROR "不支持的参数未正确处理"
exit 255
fi
else
LOG_INFO "python3-mergedeep不支持命令行接口跳过命令行测试"
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/test_merge_strategy.py
# 环境恢复
if [ "$already_installed" = false ]; then
LOG_INFO "卸载python3-mergedeep软件包"
dnf remove -y python3-mergedeep
CHECK_RESULT $? 0 0 "卸载python3-mergedeep失败"
else
LOG_INFO "保持python3-mergedeep安装状态"
fi
LOG_INFO "merge strategies测试完成"
}
main "$@"

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-28
# @License : Mulan PSL v2
# @Desc : 测试ASN.1数据结构的基本解码功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试ASN.1数据结构的基本解码功能"
# 检查pyasn1软件包是否在yum源中
LOG_INFO "检查yum源中是否存在python3-pyasn1软件包"
dnf list python3-pyasn1 &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python3-pyasn1软件包"
exit 255
fi
# 检查是否已安装python3-pyasn1
LOG_INFO "检查python3-pyasn1是否已安装"
rpm -q python3-pyasn1 &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "python3-pyasn1已安装测试完成后将保持安装状态"
INSTALLED=1
else
LOG_INFO "python3-pyasn1未安装将安装软件包作为测试步骤"
INSTALLED=0
fi
# 如果未安装则安装python3-pyasn1
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-pyasn1软件包"
dnf install -y python3-pyasn1
CHECK_RESULT $? 0 0 "安装python3-pyasn1失败"
fi
# 测试ASN.1数据结构的基本解码功能
LOG_INFO "执行ASN.1数据结构基本解码功能测试"
python3 -c "
from pyasn1.codec.der import decoder
from pyasn1.type import univ
# 定义一个简单的ASN.1整数
asn1_int = univ.Integer(12345)
encoded = asn1_int.encode()
# 解码
decoded, _ = decoder.decode(encoded, asn1Spec=univ.Integer())
print("解码成功,解码后的值为:", decoded)
if decoded == asn1_int:
print("解码值与原始值一致,测试通过")
else:
print("解码值与原始值不一致,测试失败")
exit(1)
"
CHECK_RESULT $? 0 0 "ASN.1数据结构基本解码功能测试失败"
# 如果测试前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-pyasn1软件包"
dnf remove -y python3-pyasn1
CHECK_RESULT $? 0 0 "卸载python3-pyasn1失败"
fi
LOG_INFO "ASN.1数据结构基本解码功能测试完成"
}
main "$@"

View File

@@ -1,56 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-28
# @License : Mulan PSL v2
# @Desc : 测试ASN.1数据结构的基本编码功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试ASN.1数据结构的基本编码功能"
LOG_INFO "步骤1: 检查环境是否已安装python3-pyasn1软件包"
if dnf list installed python3-pyasn1 &>/dev/null; then
LOG_INFO "python3-pyasn1已安装测试结束后保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "python3-pyasn1未安装将在测试前安装测试后卸载"
INSTALLED_BEFORE=false
fi
LOG_INFO "步骤2: 检查yum源中是否有python3-pyasn1软件包"
if ! dnf list available python3-pyasn1 &>/dev/null; then
LOG_ERROR "yum源中未找到python3-pyasn1软件包"
exit 255
fi
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3: 安装python3-pyasn1软件包"
dnf install -y python3-pyasn1
CHECK_RESULT $? 0 0 "安装python3-pyasn1失败"
fi
LOG_INFO "步骤4: 测试ASN.1数据结构的基本编码功能"
python3 -c "from pyasn1.codec.ber import encoder; from pyasn1.type import univ; import sys; integer = univ.Integer(12345); encoded = encoder.encode(integer); sys.exit(0) if encoded else sys.exit(1)"
CHECK_RESULT $? 0 0 "ASN.1数据结构编码功能测试失败"
LOG_INFO "步骤5: 清理环境"
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载python3-pyasn1软件包"
dnf remove -y python3-pyasn1
CHECK_RESULT $? 0 0 "卸载python3-pyasn1失败"
else
LOG_INFO "测试前已安装,保持安装状态"
fi
LOG_INFO "ASN.1数据结构的基本编码功能测试完成"
}
main "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-28
# @License : Mulan PSL v2
# @Desc : 测试python3-pyasn1模块能否正常导入
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试python3-pyasn1模块能否正常导入"
LOG_INFO "1. 检查yum源中是否存在python3-pyasn1包"
if ! dnf list available python3-pyasn1 &>/dev/null; then
LOG_ERROR "yum源中未找到python3-pyasn1包"
exit 255
fi
LOG_INFO "yum源中存在python3-pyasn1包"
LOG_INFO "2. 检查当前环境是否已安装python3-pyasn1"
if rpm -q python3-pyasn1 &>/dev/null; then
LOG_INFO "检测到python3-pyasn1已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "未检测到python3-pyasn1安装将在测试过程中安装"
INSTALLED_BEFORE_TEST=false
fi
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "3. 安装python3-pyasn1包"
dnf install -y python3-pyasn1
CHECK_RESULT $? 0 0 "安装python3-pyasn1失败"
fi
LOG_INFO "4. 测试python3-pyasn1模块导入功能"
python3 -c "import pyasn1"
CHECK_RESULT $? 0 0 "导入pyasn1模块失败"
LOG_INFO "5. 清理测试环境"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载测试安装的python3-pyasn1包"
dnf remove -y python3-pyasn1
CHECK_RESULT $? 0 0 "卸载python3-pyasn1失败"
LOG_INFO "环境已恢复至测试前状态"
else
LOG_INFO "测试前已安装python3-pyasn1保持安装状态"
fi
LOG_INFO "测试完成python3-pyasn1模块能够正常导入"
}
main "$@"

View File

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

View File

@@ -1,131 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-28
# @License : Mulan PSL v2
# @Desc : 测试python3-pyasn1软件包的卸载功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(如果未定义)
if ! command -v LOG_INFO &> /dev/null; then
LOG_INFO() {
echo "[INFO] $*"
}
fi
if ! command -v LOG_ERROR &> /dev/null; then
LOG_ERROR() {
echo "[ERROR] $*"
}
fi
# 定义检查结果函数(如果未定义)
if ! command -v CHECK_RESULT &> /dev/null; then
CHECK_RESULT() {
local actual=$1
local expected=$2
local index=$3
local message=$4
if [ $actual -eq $expected ]; then
LOG_INFO "检查点 $index 通过: $message"
else
LOG_ERROR "检查点 $index 失败: $message"
exit $actual
fi
}
fi
# 定义SSH_CMD函数如果未定义
if ! command -v SSH_CMD &> /dev/null; then
SSH_CMD() {
local cmd=$1
local ip=$2
local password=$3
local user=${4:-root}
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
}
fi
# 软件包名称
PACKAGE_NAME="python3-pyasn1"
LOG_INFO "开始测试python3-pyasn1软件包的卸载功能"
# 步骤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软件包"
if rpm -q "$PACKAGE_NAME" &> /dev/null; then
LOG_INFO "$PACKAGE_NAME软件包已安装"
INSTALLED_BEFORE=true
else
LOG_INFO "$PACKAGE_NAME软件包未安装"
INSTALLED_BEFORE=false
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "步骤3安装$PACKAGE_NAME软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 1 "安装$PACKAGE_NAME软件包"
LOG_INFO "成功安装$PACKAGE_NAME软件包"
else
LOG_INFO "步骤3跳过安装软件包已存在"
fi
# 步骤4验证软件包安装成功
LOG_INFO "步骤4验证$PACKAGE_NAME软件包安装成功"
rpm -q "$PACKAGE_NAME"
CHECK_RESULT $? 0 2 "验证$PACKAGE_NAME软件包安装"
# 步骤5卸载软件包
LOG_INFO "步骤5卸载$PACKAGE_NAME软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 3 "卸载$PACKAGE_NAME软件包"
LOG_INFO "成功卸载$PACKAGE_NAME软件包"
# 步骤6验证软件包已卸载
LOG_INFO "步骤6验证$PACKAGE_NAME软件包已卸载"
rpm -q "$PACKAGE_NAME"
if [ $? -eq 0 ]; then
LOG_ERROR "$PACKAGE_NAME软件包卸载失败"
exit 1
else
LOG_INFO "$PACKAGE_NAME软件包已成功卸载"
fi
# 步骤7环境恢复
LOG_INFO "步骤7恢复环境"
if [ "$INSTALLED_BEFORE" = "true" ]; then
LOG_INFO "重新安装$PACKAGE_NAME软件包以恢复原始状态"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 4 "重新安装$PACKAGE_NAME软件包"
LOG_INFO "环境已恢复,$PACKAGE_NAME软件包已安装"
else
LOG_INFO "环境已恢复,$PACKAGE_NAME软件包保持未安装状态"
fi
LOG_INFO "测试python3-pyasn1软件包的卸载功能完成"
}
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-02-27
# @License : Mulan PSL v2
# @Desc : Verify package is installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色变量(如果需要)
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 定义软件包名称
PACKAGE_NAME="texlive-graphviz"
# 步骤1检查软件包是否已在yum源中
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 步骤2检查软件包是否已安装
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否已安装"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
INSTALLED=true
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
INSTALLED=false
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 步骤4验证软件包已正确安装
LOG_INFO "验证软件包 ${PACKAGE_NAME} 已正确安装"
rpm -q ${PACKAGE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 未正确安装"
# 步骤5检查软件包中的关键命令是否可用
LOG_INFO "检查软件包 ${PACKAGE_NAME} 中的关键命令是否可用"
# 这里假设graphviz包中的dot命令是关键命令
command -v dot &>/dev/null
CHECK_RESULT $? 0 0 "关键命令 dot 不可用"
# 步骤6运行一个简单的命令测试功能
LOG_INFO "运行简单命令测试软件包功能"
dot -V &>/dev/null
CHECK_RESULT $? 0 0 "软件包功能测试失败"
# 步骤7清理环境如果之前未安装
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
# 验证软件包已被卸载
LOG_INFO "验证软件包 ${PACKAGE_NAME} 已被卸载"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 卸载失败"
exit 1
else
LOG_INFO "软件包 ${PACKAGE_NAME} 已成功卸载"
fi
else
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
fi
LOG_INFO "测试完成:验证软件包安装功能通过"
}
main "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : Test dot command generates output
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装了texlive-graphviz
LOG_INFO "检查是否已安装texlive-graphviz"
rpm -q texlive-graphviz > /dev/null 2>&1
is_installed=$?
# 如果未安装,则尝试安装
if [ $is_installed -ne 0 ]; then
LOG_INFO "texlive-graphviz未安装尝试从yum源安装"
# 检查yum源中是否有该软件包
dnf list available texlive-graphviz > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-graphviz软件包"
exit 255
fi
# 安装软件包
dnf install -y texlive-graphviz
CHECK_RESULT $? 0 0 "安装texlive-graphviz失败"
LOG_INFO "texlive-graphviz安装成功"
else
LOG_INFO "texlive-graphviz已安装跳过安装步骤"
fi
# 测试dot命令生成输出
LOG_INFO "测试dot命令生成输出"
# 创建一个简单的dot文件
cat > test_graph.dot << EOF
digraph G {
A -> B;
B -> C;
C -> A;
}
EOF
CHECK_RESULT $? 0 0 "创建测试dot文件失败"
# 使用dot命令生成PNG图片
dot -Tpng test_graph.dot -o test_graph.png
CHECK_RESULT $? 0 0 "dot命令生成PNG失败"
# 检查生成的PNG文件是否存在
if [ -f test_graph.png ]; then
LOG_INFO "成功生成PNG文件"
# 检查文件是否非空
if [ -s test_graph.png ]; then
LOG_INFO "生成的PNG文件非空测试通过"
else
LOG_ERROR "生成的PNG文件为空"
CHECK_RESULT 1 0 0 "生成的PNG文件为空"
fi
else
LOG_ERROR "未生成PNG文件"
CHECK_RESULT 1 0 0 "未生成PNG文件"
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_graph.dot test_graph.png
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果脚本开始时未安装,则在结束时卸载软件包
if [ $is_installed -ne 0 ]; then
LOG_INFO "卸载texlive-graphviz"
dnf remove -y texlive-graphviz
CHECK_RESULT $? 0 0 "卸载texlive-graphviz失败"
LOG_INFO "texlive-graphviz卸载成功"
else
LOG_INFO "保持texlive-graphviz安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-27
# @License : Mulan PSL v2
# @Desc : Test LaTeX document compilation with dot
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试LaTeX文档与dot图的集成编译功能"
# 检查texlive-graphviz软件包是否在yum源中
LOG_INFO "检查yum源中是否存在texlive-graphviz软件包"
dnf list available texlive-graphviz &>/dev/null
CHECK_RESULT $? 0 0 "yum源中未找到texlive-graphviz软件包测试无法继续"
# 检查环境是否已安装texlive-graphviz
LOG_INFO "检查当前环境是否已安装texlive-graphviz"
if dnf list installed texlive-graphviz &>/dev/null; then
LOG_INFO "环境已安装texlive-graphviz测试结束后将保持安装状态"
INSTALLED_ALREADY=1
else
LOG_INFO "环境未安装texlive-graphviz将进行安装"
INSTALLED_ALREADY=0
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_ALREADY -eq 0 ]; then
LOG_INFO "安装texlive-graphviz软件包"
dnf install -y texlive-graphviz
CHECK_RESULT $? 0 0 "安装texlive-graphviz失败"
fi
# 创建测试LaTeX文档
LOG_INFO "创建测试LaTeX文档"
cat > test_dot.tex << "EOF"
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph [tree layout] {
a -> {b, c} -> d
};
\end{tikzpicture}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
# 尝试编译LaTeX文档
LOG_INFO "使用pdflatex编译LaTeX文档包含dot图"
pdflatex -interaction=nonstopmode test_dot.tex &>/dev/null
CHECK_RESULT $? 0 0 "LaTeX文档编译失败"
# 检查生成的PDF文件
LOG_INFO "检查生成的PDF文件"
if [ -f test_dot.pdf ]; then
LOG_INFO "PDF文件生成成功"
else
LOG_ERROR "PDF文件未生成"
exit 1
fi
# 清理生成的中间文件
LOG_INFO "清理编译生成的中间文件"
rm -f test_dot.aux test_dot.log test_dot.pdf test_dot.tex
# 如果测试前未安装,则卸载软件包
if [ $INSTALLED_ALREADY -eq 0 ]; then
LOG_INFO "卸载texlive-graphviz软件包"
dnf remove -y texlive-graphviz
CHECK_RESULT $? 0 0 "卸载texlive-graphviz失败"
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-11-26
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-thalie
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查texlive-thalie是否已安装
LOG_INFO "检查texlive-thalie是否已安装"
rpm -q texlive-thalie > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-thalie已安装跳过安装步骤"
installed=true
else
LOG_INFO "texlive-thalie未安装准备安装"
installed=false
fi
# 检查yum源中是否有texlive-thalie软件包
LOG_INFO "检查yum源中是否有texlive-thalie软件包"
dnf list available texlive-thalie > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到texlive-thalie软件包"
# 安装texlive-thalie
if [ "$installed" = false ]; then
LOG_INFO "开始安装texlive-thalie"
dnf install -y texlive-thalie > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-thalie失败"
fi
# 验证texlive-thalie功能
LOG_INFO "验证texlive-thalie功能"
command -v tex > /dev/null 2>&1
CHECK_RESULT $? 0 255 "tex命令不存在或不支持"
# 清理环境(如果之前未安装)
if [ "$installed" = false ]; then
LOG_INFO "清理环境卸载texlive-thalie"
dnf remove -y texlive-thalie > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-thalie失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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