This commit is contained in:
2026-04-15 15:03:38 +08:00
72 changed files with 0 additions and 6037 deletions

View File

@@ -11,10 +11,6 @@
"name": "test_cereal-devel_uninstall",
"desc": "测试软件包cereal-devel的卸载功能验证卸载过程是否成功。",
"machine num": 1
},
{
"name": "test_cereal-devel_function_serialize",
"desc": "测试软件包cereal-devel的序列化功能验证数据序列化是否成功。"
}
]
}

View File

@@ -13,26 +13,6 @@
{
"name": "test_fftw-libs-single_function_lib_presence",
"desc": "Test the presence of core library files (e.g., libfftw3f.so)"
},
{
"name": "test_fftw-libs-single_function_basic_api",
"desc": "Test basic FFTW3 single-precision API functionality (plan creation and execution)"
},
{
"name": "test_fftw-libs-single_function_runtime_link",
"desc": "Test dynamic linking and loading of libfftw3f.so at runtime"
},
{
"name": "test_fftw-libs-single_function_version_check",
"desc": "Check the installed version of the fftw-libs-single package"
},
{
"name": "test_fftw-libs-single_function_import_headers",
"desc": "Test the availability and basic correctness of FFTW3 single-precision header files (fftw3.h)"
},
{
"name": "test_fftw-libs-single_function_pkgconfig",
"desc": "Test the presence and correctness of pkg-config file for fftw3f"
}
]
}

View File

@@ -114,101 +114,9 @@
"name": "test_libvirt-client_virt-xml-validate_upper_h",
"desc": "测试使用--help参数显示virt-xml-validate命令的帮助信息"
},
{
"name": "test_libvirt-client_virsh__c",
"desc": "测试virsh命令的-c选项指定hypervisor连接URI"
},
{
"name": "test_libvirt-client_virsh__d_num_0",
"desc": "测试virsh命令的-d选项设置调试级别为0"
},
{
"name": "test_libvirt-client_virsh__d_num_4",
"desc": "测试virsh命令的-d选项设置调试级别为4"
},
{
"name": "test_libvirt-client_virsh__h",
"desc": "测试virsh命令的-h选项显示帮助信息"
},
{
"name": "test_libvirt-client_virsh__k_num_5",
"desc": "测试virsh命令的-k选项设置保活间隔为5秒"
},
{
"name": "test_libvirt-client_virsh__k_num_0",
"desc": "测试virsh命令的-k选项禁用保活机制"
},
{
"name": "test_libvirt-client_virsh__upper_k_num_3",
"desc": "测试virsh命令的-K选项设置允许丢失的保活消息数量为3"
},
{
"name": "test_libvirt-client_virsh__l",
"desc": "测试virsh命令的-l选项将日志输出到指定文件"
},
{
"name": "test_libvirt-client_virsh__q",
"desc": "测试virsh命令的-q选项启用安静模式"
},
{
"name": "test_libvirt-client_virsh__t",
"desc": "测试virsh命令的-t选项打印计时信息"
},
{
"name": "test_libvirt-client_virsh_version_short",
"desc": "测试virsh命令的--version选项显示短版本信息"
},
{
"name": "test_libvirt-client_virsh_version_long",
"desc": "测试virsh命令的--version选项显示长版本信息"
},
{
"name": "test_libvirt-client_virt-pki-query-dn_FILE",
"desc": "测试从指定的PEM证书文件中提取可分辨名称"
},
{
"name": "test_libvirt-client_virt-pki-query-dn_v",
"desc": "测试显示virt-pki-query-dn命令的版本信息"
},
{
"name": "test_libvirt-client_virt-pki-query-dn_h_FILE",
"desc": "测试在提供证书文件参数的同时使用-h参数预期应显示帮助信息"
},
{
"name": "test_libvirt-client_virt-pki-query-dn_v_FILE",
"desc": "测试在提供证书文件参数的同时使用-v参数预期应显示版本信息"
},
{
"name": "test_libvirt-client_virt-xml-validate_h",
"desc": "测试使用-h参数显示帮助信息"
},
{
"name": "test_libvirt-client_virt-xml-validate_xml_file",
"desc": "测试使用XML-FILE参数验证XML文件的语法"
},
{
"name": "test_libvirt-client_virt-xml-validate_xml_file_schema_name",
"desc": "测试使用XML-FILE和SCHEMA-NAME参数验证XML文件符合指定模式"
},
{
"name": "test_libvirt-client_function_virsh_connect",
"desc": "测试使用virsh连接到本地libvirt守护进程"
},
{
"name": "test_libvirt-client_function_virsh_list",
"desc": "测试使用virsh list命令列出活跃的虚拟机"
},
{
"name": "test_libvirt-client_function_virsh_list_all",
"desc": "测试使用virsh list --all命令列出所有虚拟机"
},
{
"name": "test_libvirt-client_function_virsh_dominfo",
"desc": "测试使用virsh dominfo命令获取指定虚拟机信息"
},
{
"name": "test_libvirt-client_function_virt-xml-validate",
"desc": "测试使用virt-xml-validate验证基本域XML文件"
}
]
}

View File

@@ -14,49 +14,9 @@
"name": "test_libyaml-devel_function_version",
"desc": "Test checking the version of libyaml-devel package"
},
{
"name": "test_libyaml-devel_function_verify",
"desc": "Test verifying the integrity of libyaml-devel package"
},
{
"name": "test_libyaml-devel_function_header",
"desc": "Test the availability of yaml.h header file"
},
{
"name": "test_libyaml-devel_function_link",
"desc": "Test linking a simple program with libyaml library"
},
{
"name": "test_libyaml-devel_function_basic_compile",
"desc": "Test compiling a simple C program that uses libyaml"
},
{
"name": "test_libyaml-devel_function_yaml_parse",
"desc": "Test parsing a simple YAML document"
},
{
"name": "test_libyaml-devel_function_yaml_emit",
"desc": "Test generating a simple YAML document"
},
{
"name": "test_libyaml-devel_function_error_handle",
"desc": "Test handling libyaml parsing errors"
},
{
"name": "test_libyaml-devel_function_config",
"desc": "Test using libyaml in a config scenario"
},
{
"name": "test_libyaml-devel_function_complex_parse",
"desc": "Test parsing complex YAML structures"
},
{
"name": "test_libyaml-devel_function_complex_emit",
"desc": "Test generating complex YAML structures"
},
{
"name": "test_libyaml-devel_function_unicode",
"desc": "Test YAML Unicode character support"
}
]
}

View File

@@ -6,22 +6,6 @@
"name": "test_nodejs-lodash-round_function_install",
"desc": "测试nodejs-lodash-round软件包能否通过系统包管理器正常安装。"
},
{
"name": "test_nodejs-lodash-round_function_require",
"desc": "测试在Node.js环境中能否成功引入lodash.round模块。"
},
{
"name": "test_nodejs-lodash-round_function_basic",
"desc": "测试lodash.round函数对数字进行四舍五入的基本功能。"
},
{
"name": "test_nodejs-lodash-round_function_precision",
"desc": "测试lodash.round函数按指定精度小数位进行四舍五入。"
},
{
"name": "test_nodejs-lodash-round_function_edge",
"desc": "测试lodash.round函数处理边界值如0、负数、NaN的行为。"
},
{
"name": "test_nodejs-lodash-round_function_uninstall",
"desc": "测试nodejs-lodash-round软件包能否通过系统包管理器正常卸载。"

View File

@@ -1,14 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-entrypoints/python3-entrypoints",
"machine num": 1,
"cases": [
{
"name": "test_python3-entrypoints_function_load",
"desc": "Test loading entry points"
},
{
"name": "test_python3-entrypoints_function_parse",
"desc": "Test parsing entry points"
}
]
}

View File

@@ -2,26 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/qt5-qtdatavis3d/qt5-qtdatavis3d-examples",
"machine num": 1,
"cases": [
{
"name": "test_qt5-qtdatavis3d-examples_function_basic",
"desc": "Basic functionality test for qt5-qtdatavis3d-examples"
},
{
"name": "test_qt5-qtdatavis3d-examples_function_install",
"desc": "Test the installation of the qt5-qtdatavis3d-examples package"
},
{
"name": "test_qt5-qtdatavis3d-examples_function_check_installed",
"desc": "Verify that the package is correctly installed on the system"
},
{
"name": "test_qt5-qtdatavis3d-examples_function_list_examples",
"desc": "Check if example programs are available after installation"
},
{
"name": "test_qt5-qtdatavis3d-examples_function_run_basic_example",
"desc": "Test running a basic 3D data visualization example"
},
{
"name": "test_qt5-qtdatavis3d-examples_function_uninstall",
"desc": "Test the removal of the qt5-qtdatavis3d-examples package"

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/rubygem-expression_parser/rubygem-expression_parser-doc",
"machine num": 1,
"cases": [
{
"name": "test_rubygem-expression_parser-doc_function_parse",
"desc": "Test parsing functionality"
}
]
}

View File

@@ -5,50 +5,6 @@
{
"name": "test_texlive-petri-nets_pn2pdf_d",
"desc": "测试 pn2pdf 命令的 -d 参数,删除文件(可能为模式匹配)"
},
{
"name": "test_texlive-petri-nets_pn2pdf_h",
"desc": "测试显示帮助信息"
},
{
"name": "test_texlive-petri-nets_pn2pdf_figure",
"desc": "测试处理指定的FIGUR文件"
},
{
"name": "test_texlive-petri-nets_pn2pdf_b",
"desc": "测试批处理文件中的命令"
},
{
"name": "test_texlive-petri-nets_pn2pdf_k",
"desc": "测试处理时保留临时文件"
},
{
"name": "test_texlive-petri-nets_pn2pdf_f",
"desc": "测试强制重新渲染所有图片"
},
{
"name": "test_texlive-petri-nets_pn2pdf_t",
"desc": "测试为指定文件创建测试文件"
},
{
"name": "test_texlive-petri-nets_function_install",
"desc": "测试软件包是否成功安装并能通过包管理器查询到"
},
{
"name": "test_texlive-petri-nets_function_basic_convert",
"desc": "测试基本PN文件转换为PDF功能"
},
{
"name": "test_texlive-petri-nets_function_remove",
"desc": "测试软件包卸载后相关命令是否失效"
},
{
"name": "test_texlive-petri-nets_function_help",
"desc": "测试主命令显示帮助信息"
},
{
"name": "test_texlive-petri-nets_function_version",
"desc": "测试显示软件包或工具版本信息"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-e/texlive-cmdtrack-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-cmdtrack-doc_function_install",
"desc": "Verify installation of texlive-cmdtrack-doc"
}
]
}

View File

@@ -10,17 +10,9 @@
"name": "test_texlive-tikz-opm-doc_function_doc_exists",
"desc": "Verify documentation files exist"
},
{
"name": "test_texlive-tikz-opm-doc_function_info_query",
"desc": "Query package info via tlmgr"
},
{
"name": "test_texlive-tikz-opm-doc_function_list_files",
"desc": "List package documentation files"
},
{
"name": "test_texlive-tikz-opm-doc_function_check_content",
"desc": "Check doc for key content"
}
]
}

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 : 2025-12-04
# @License : Mulan PSL v2
# @Desc : 测试软件包cereal-devel的序列化功能验证数据序列化是否成功。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在cereal-devel软件包
LOG_INFO "检查yum源中是否存在cereal-devel软件包"
dnf list available cereal-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到cereal-devel软件包"
exit 255
fi
# 检查是否已安装cereal-devel软件包
LOG_INFO "检查是否已安装cereal-devel软件包"
rpm -q cereal-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "cereal-devel软件包已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "cereal-devel软件包未安装将在测试结束后卸载"
INSTALLED=false
fi
# 安装cereal-devel软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装cereal-devel软件包"
dnf install -y cereal-devel
CHECK_RESULT $? 0 0 "安装cereal-devel软件包失败"
fi
# 测试序列化功能
LOG_INFO "测试cereal-devel的序列化功能"
cat <<EOF > test_serialize.cpp
#include <cereal/archives/binary.hpp>
#include <cereal/types/vector.hpp>
#include <fstream>
#include <vector>
int main() {
std::vector<int> data = {1, 2, 3, 4, 5};
{
std::ofstream ofs("test_serialize.bin", std::ios::binary);
cereal::BinaryOutputArchive archive(ofs);
archive(data);
}
std::vector<int> loaded_data;
{
std::ifstream ifs("test_serialize.bin", std::ios::binary);
cereal::BinaryInputArchive archive(ifs);
archive(loaded_data);
}
if (data == loaded_data) {
return 0;
} else {
return -1;
}
}
EOF
# 编译测试程序
LOG_INFO "编译测试程序"
g++ test_serialize.cpp -o test_serialize -lcereal
CHECK_RESULT $? 0 0 "编译测试程序失败"
# 执行测试程序
LOG_INFO "执行测试程序"
./test_serialize
CHECK_RESULT $? 0 0 "序列化功能测试失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_serialize.cpp test_serialize test_serialize.bin
# 卸载cereal-devel软件包如果脚本开始时未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载cereal-devel软件包"
dnf remove -y cereal-devel
CHECK_RESULT $? 0 0 "卸载cereal-devel软件包失败"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,123 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : Test basic FFTW3 single-precision API functionality (plan creation and execution)
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test basic FFTW3 single-precision API functionality (plan creation and execution)"
LOG_INFO "步骤1: 检查fftw-libs-single软件包是否在yum源中"
dnf list available fftw-libs-single &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到fftw-libs-single软件包"
exit 255
fi
LOG_INFO "步骤2: 检查当前环境是否已安装fftw-libs-single"
rpm -q fftw-libs-single &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "fftw-libs-single已安装标记为已存在"
ALREADY_INSTALLED=1
else
LOG_INFO "fftw-libs-single未安装标记为需要安装"
ALREADY_INSTALLED=0
fi
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "步骤3: 安装fftw-libs-single软件包"
dnf install -y fftw-libs-single
CHECK_RESULT $? 0 0 "安装fftw-libs-single失败"
fi
LOG_INFO "步骤4: 验证fftw3f库的基本API功能计划创建和执行"
LOG_INFO "步骤4.1: 创建测试C程序"
cat > test_fftw3f_basic.c << "EOF"
#include <fftw3.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int N = 8;
fftwf_complex *in, *out;
fftwf_plan p;
in = (fftwf_complex*) fftwf_malloc(sizeof(fftwf_complex) * N);
out = (fftwf_complex*) fftwf_malloc(sizeof(fftwf_complex) * N);
if (!in || !out) {
fprintf(stderr, "内存分配失败\n");
return 1;
}
for (int i = 0; i < N; i++) {
in[i][0] = i + 1;
in[i][1] = 0;
}
p = fftwf_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
if (!p) {
fprintf(stderr, "FFTW计划创建失败\n");
fftwf_free(in);
fftwf_free(out);
return 1;
}
fftwf_execute(p);
printf("FFT计算结果单精度:\n");
for (int i = 0; i < N; i++) {
printf("out[%d] = %f + %fi\n", i, out[i][0], out[i][1]);
}
fftwf_destroy_plan(p);
fftwf_free(in);
fftwf_free(out);
return 0;
}
EOF
CHECK_RESULT $? 0 0 "创建测试C程序失败"
LOG_INFO "步骤4.2: 编译测试程序"
gcc -o test_fftw3f_basic test_fftw3f_basic.c -lfftw3f -lm
CHECK_RESULT $? 0 0 "编译测试程序失败"
LOG_INFO "步骤4.3: 运行测试程序"
./test_fftw3f_basic
CHECK_RESULT $? 0 0 "运行FFTW3单精度API测试程序失败"
LOG_INFO "步骤5: 清理临时文件"
rm -f test_fftw3f_basic test_fftw3f_basic.c
CHECK_RESULT $? 0 0 "清理临时文件失败"
LOG_INFO "步骤6: 环境恢复"
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "卸载fftw-libs-single软件包"
dnf remove -y fftw-libs-single
CHECK_RESULT $? 0 0 "卸载fftw-libs-single失败"
else
LOG_INFO "保持fftw-libs-single安装状态"
fi
LOG_INFO "测试完成Test basic FFTW3 single-precision API functionality (plan creation and execution)"
}
main "$@"

View File

@@ -1,109 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-10
# @License : Mulan PSL v2
# @Desc : Test the availability and basic correctness of FFTW3 single-precision header files (fftw3.h)
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试FFTW3单精度头文件(fftw3.h)的可用性和基本正确性"
# 1. 检查环境是否已安装fftw3单精度库
LOG_INFO "步骤1: 检查fftw3单精度库是否已安装"
if dnf list installed fftw-libs-single &>/dev/null; then
LOG_INFO "fftw3单精度库已安装将保持安装状态"
already_installed=true
else
LOG_INFO "fftw3单精度库未安装"
already_installed=false
fi
# 2. 检查yum源中是否有该软件包
LOG_INFO "步骤2: 检查yum源中是否有fftw-libs-single软件包"
if ! dnf list available fftw-libs-single &>/dev/null; then
LOG_ERROR "yum源中未找到fftw-libs-single软件包"
exit 255
fi
# 3. 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3: 安装fftw-libs-single软件包"
dnf install -y fftw-libs-single
CHECK_RESULT $? 0 0 "安装fftw-libs-single失败"
fi
# 4. 测试头文件可用性
LOG_INFO "步骤4: 测试fftw3.h头文件可用性"
# 创建测试程序
cat > /tmp/test_fftw3_single.c << "EOF"
#include <fftw3.h>
#include <stdio.h>
int main() {
fftwf_plan plan;
int n = 8;
float *in = (float*) fftwf_malloc(sizeof(float) * n);
fftwf_complex *out = (fftwf_complex*) fftwf_malloc(sizeof(fftwf_complex) * (n/2+1));
if (!in || !out) {
printf("内存分配失败\n");
return 1;
}
// 创建FFT计划
plan = fftwf_plan_dft_r2c_1d(n, in, out, FFTW_ESTIMATE);
if (plan) {
printf("FFTW3单精度头文件测试成功\n");
fftwf_destroy_plan(plan);
} else {
printf("FFTW3单精度头文件测试失败\n");
return 1;
}
fftwf_free(in);
fftwf_free(out);
return 0;
}
EOF
# 编译测试程序
LOG_INFO "步骤5: 编译测试程序"
gcc -o /tmp/test_fftw3_single /tmp/test_fftw3_single.c -lfftw3f -lm
CHECK_RESULT $? 0 0 "编译FFTW3单精度测试程序失败"
# 运行测试程序
LOG_INFO "步骤6: 运行FFTW3单精度测试程序"
/tmp/test_fftw3_single
CHECK_RESULT $? 0 0 "FFTW3单精度头文件测试失败"
# 5. 清理测试文件
LOG_INFO "步骤7: 清理测试文件"
rm -f /tmp/test_fftw3_single.c /tmp/test_fftw3_single
# 6. 如果测试前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "步骤8: 卸载fftw-libs-single软件包测试前未安装"
dnf remove -y fftw-libs-single
CHECK_RESULT $? 0 0 "卸载fftw-libs-single失败"
fi
LOG_INFO "FFTW3单精度头文件测试完成"
}
main "$@"

View File

@@ -1,104 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-10
# @License : Mulan PSL v2
# @Desc : Test the presence and correctness of pkg-config file for fftw3f
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出可选但LOG_INFO/LOG_ERROR可能已内置
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义软件包名称和pkg-config文件名
PKG_NAME="fftw-libs-single"
PC_FILE="fftw3f.pc"
# 步骤1检查yum源中是否存在fftw-libs-single软件包
LOG_INFO "步骤1检查yum源中是否存在${PKG_NAME}软件包"
dnf list available ${PKG_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到${PKG_NAME}软件包"
exit 255
fi
# 步骤2检查当前是否已安装fftw-libs-single
LOG_INFO "步骤2检查当前是否已安装${PKG_NAME}"
rpm -q ${PKG_NAME} &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "${PKG_NAME}已安装,标记为已安装状态"
INSTALLED=1
else
LOG_INFO "${PKG_NAME}未安装,标记为未安装状态"
INSTALLED=0
fi
# 步骤3如果未安装则安装软件包
if [ ${INSTALLED} -eq 0 ]; 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文件${PC_FILE}是否存在"
pkg-config --exists ${PC_FILE}
CHECK_RESULT $? 0 0 "pkg-config文件${PC_FILE}不存在"
# 步骤5检查pkg-config文件内容是否正确
LOG_INFO "步骤5检查pkg-config文件${PC_FILE}内容是否正确"
# 获取fftw3f的版本信息
PC_VERSION=$(pkg-config --modversion ${PC_FILE})
if [ -z "${PC_VERSION}" ]; then
LOG_ERROR "无法获取${PC_FILE}的版本信息"
exit 1
fi
LOG_INFO "${PC_FILE}版本为:${PC_VERSION}"
# 检查库名称是否正确
PC_LIBS=$(pkg-config --libs ${PC_FILE})
if ! echo "${PC_LIBS}" | grep -q "fftw3f"; then
LOG_ERROR "${PC_FILE}的库名称不正确"
exit 1
fi
LOG_INFO "${PC_FILE}库名称正确:${PC_LIBS}"
# 检查包含路径是否正确
PC_CFLAGS=$(pkg-config --cflags ${PC_FILE})
if [ -z "${PC_CFLAGS}" ]; then
LOG_ERROR "${PC_FILE}的包含路径不正确"
exit 1
fi
LOG_INFO "${PC_FILE}包含路径正确:${PC_CFLAGS}"
# 步骤6清理环境如果之前未安装则卸载软件包
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "步骤6清理环境卸载${PKG_NAME}软件包"
dnf remove -y ${PKG_NAME}
CHECK_RESULT $? 0 0 "卸载${PKG_NAME}失败"
else
LOG_INFO "步骤6环境已安装${PKG_NAME},保持安装状态"
fi
LOG_INFO "测试完成pkg-config文件${PC_FILE}存在且内容正确"
}
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-03-10
# @License : Mulan PSL v2
# @Desc : Test dynamic linking and loading of libfftw3f.so at runtime
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:运行时动态链接和加载 libfftw3f.so"
LOG_INFO "步骤1检查系统中是否已安装 fftw-libs 软件包"
if dnf list installed fftw-libs &> /dev/null; then
LOG_INFO "fftw-libs 软件包已安装,测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "fftw-libs 软件包未安装,将在测试前安装并在测试后卸载"
INSTALLED=false
fi
LOG_INFO "步骤2检查 yum 源中是否存在 fftw-libs 软件包"
if ! dnf list available fftw-libs &> /dev/null; then
LOG_ERROR "yum 源中未找到 fftw-libs 软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装 fftw-libs 软件包"
dnf install -y fftw-libs
CHECK_RESULT $? 0 0 "安装 fftw-libs 软件包失败"
fi
LOG_INFO "步骤4验证 libfftw3f.so 库文件是否存在"
if [ ! -f /usr/lib64/libfftw3f.so ]; then
LOG_ERROR "libfftw3f.so 库文件未找到"
exit 255
fi
LOG_INFO "步骤5编写一个简单的 C 程序来测试动态链接和加载 libfftw3f.so"
cat > test_fftw.c << "EOF"
#include <fftw3.h>
#include <stdio.h>
int main() {
fftwf_complex *in, *out;
fftwf_plan p;
int N = 8;
in = (fftwf_complex*) fftwf_malloc(sizeof(fftwf_complex) * N);
out = (fftwf_complex*) fftwf_malloc(sizeof(fftwf_complex) * N);
p = fftwf_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
if (p) {
printf("FFTW plan created successfully.\n");
fftwf_destroy_plan(p);
}
fftwf_free(in);
fftwf_free(out);
return 0;
}
EOF
CHECK_RESULT $? 0 0 "创建测试 C 程序失败"
LOG_INFO "步骤6编译测试程序动态链接 libfftw3f.so"
gcc -o test_fftw test_fftw.c -lfftw3f -lm
CHECK_RESULT $? 0 0 "编译测试程序失败"
LOG_INFO "步骤7运行测试程序验证动态链接和加载是否成功"
./test_fftw
CHECK_RESULT $? 0 0 "运行测试程序失败"
LOG_INFO "步骤8清理测试程序生成的文件"
rm -f test_fftw test_fftw.c
CHECK_RESULT $? 0 0 "清理测试程序文件失败"
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤9卸载 fftw-libs 软件包,恢复环境"
dnf remove -y fftw-libs
CHECK_RESULT $? 0 0 "卸载 fftw-libs 软件包失败"
else
LOG_INFO "步骤9保持 fftw-libs 软件包安装状态"
fi
LOG_INFO "测试完成:运行时动态链接和加载 libfftw3f.so 成功"
}
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-10
# @License : Mulan PSL v2
# @Desc : Check the installed version of the fftw-libs-single package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试检查已安装的fftw-libs-single软件包版本"
# 检查yum源中是否存在fftw-libs-single软件包
LOG_INFO "检查yum源中是否存在fftw-libs-single软件包"
dnf list available fftw-libs-single > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到fftw-libs-single软件包"
exit 255
fi
# 检查系统是否已安装fftw-libs-single
LOG_INFO "检查系统是否已安装fftw-libs-single软件包"
rpm -q fftw-libs-single > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "系统已安装fftw-libs-single软件包标记为已安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "系统未安装fftw-libs-single软件包标记为未安装状态"
ALREADY_INSTALLED=0
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装fftw-libs-single软件包"
dnf install -y fftw-libs-single > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装fftw-libs-single软件包失败"
LOG_INFO "fftw-libs-single软件包安装成功"
fi
# 检查已安装的fftw-libs-single软件包版本
LOG_INFO "检查已安装的fftw-libs-single软件包版本"
rpm -q fftw-libs-single
CHECK_RESULT $? 0 0 "获取fftw-libs-single软件包版本失败"
LOG_INFO "fftw-libs-single软件包版本检查成功"
# 环境恢复:如果之前未安装,则卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "开始卸载fftw-libs-single软件包"
dnf remove -y fftw-libs-single > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载fftw-libs-single软件包失败"
LOG_INFO "fftw-libs-single软件包卸载成功"
else
LOG_INFO "系统原本已安装fftw-libs-single保持安装状态"
fi
LOG_INFO "测试完成fftw-libs-single软件包版本检查成功"
}
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-04
# @License : Mulan PSL v2
# @Desc : 测试使用virsh连接到本地libvirt守护进程
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用virsh连接到本地libvirt守护进程"
# 检查环境是否已安装libvirt-client
LOG_INFO "检查libvirt-client是否已安装"
if dnf list installed libvirt-client &>/dev/null; then
LOG_INFO "libvirt-client已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "libvirt-client未安装将在测试前安装"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有libvirt-client软件包
LOG_INFO "检查yum源中是否存在libvirt-client软件包"
if ! dnf list available libvirt-client &>/dev/null; then
LOG_ERROR "yum源中未找到libvirt-client软件包"
exit 255
fi
# 如果未安装则安装libvirt-client
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
# 检查virsh命令是否支持connect参数
LOG_INFO "检查virsh命令是否支持connect参数"
if ! virsh help connect &>/dev/null; then
LOG_ERROR "virsh命令不支持connect参数"
exit 255
fi
# 测试使用virsh连接到本地libvirt守护进程
LOG_INFO "执行virsh connect命令连接到本地libvirt守护进程"
virsh connect qemu:///system
CHECK_RESULT $? 0 0 "virsh连接到本地libvirt守护进程失败"
# 环境恢复如果测试前未安装则卸载libvirt-client
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "卸载libvirt-client软件包"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
else
LOG_INFO "测试前已安装libvirt-client保持安装状态"
fi
LOG_INFO "测试完成使用virsh连接到本地libvirt守护进程"
}
main "$@"

View File

@@ -1,89 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试使用virsh dominfo命令获取指定虚拟机信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装libvirt-client
LOG_INFO "检查libvirt-client是否已安装"
rpm -q libvirt-client > /dev/null 2>&1
installed=$?
# 如果未安装则检查yum源中是否有该软件包
if [ $installed -ne 0 ]; then
LOG_INFO "libvirt-client未安装检查yum源中是否有该软件包"
dnf list available libvirt-client > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libvirt-client软件包"
exit 255
fi
# 安装libvirt-client
LOG_INFO "安装libvirt-client"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
# 检查virsh命令是否存在
LOG_INFO "检查virsh命令是否存在"
which virsh > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "virsh命令不存在"
exit 255
fi
# 检查virsh dominfo参数是否存在
LOG_INFO "检查virsh dominfo参数是否存在"
virsh help dominfo > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "virsh dominfo参数不存在或不支持"
exit 255
fi
# 获取虚拟机列表
LOG_INFO "获取虚拟机列表"
vm_list=$(virsh list --all --name)
if [ $? -ne 0 ]; then
LOG_ERROR "获取虚拟机列表失败"
exit 1
fi
# 检查是否有虚拟机存在
if [ -z "$vm_list" ]; then
LOG_INFO "当前没有虚拟机,测试结束"
else
# 获取第一个虚拟机的名称
first_vm=$(echo "$vm_list" | head -n 1)
LOG_INFO "测试获取虚拟机信息:$first_vm"
# 使用virsh dominfo获取虚拟机信息
virsh dominfo "$first_vm"
CHECK_RESULT $? 0 0 "获取虚拟机信息失败"
fi
# 环境清理如果脚本开始时未安装libvirt-client则卸载
if [ $installed -ne 0 ]; then
LOG_INFO "清理环境卸载libvirt-client"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
else
LOG_INFO "保持libvirt-client安装状态"
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-04
# @License : Mulan PSL v2
# @Desc : 测试使用virsh list命令列出活跃的虚拟机
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试测试使用virsh list命令列出活跃的虚拟机"
LOG_INFO "步骤1检查libvirt-client软件包是否已在yum源中"
dnf list available libvirt-client 2>/dev/null | grep -q libvirt-client
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libvirt-client软件包"
exit 255
fi
LOG_INFO "libvirt-client软件包在yum源中可用"
LOG_INFO "步骤2检查virsh命令是否已安装"
if command -v virsh &> /dev/null; then
LOG_INFO "virsh命令已安装标记为已安装状态"
INSTALLED=true
else
LOG_INFO "virsh命令未安装标记为未安装状态"
INSTALLED=false
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
LOG_INFO "libvirt-client软件包安装成功"
fi
LOG_INFO "步骤4检查virsh list命令是否支持"
virsh list --help 2>&1 | grep -q "\-\-list"
if [ $? -ne 0 ]; then
LOG_ERROR "virsh list命令不支持或参数错误"
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载libvirt-client软件包"
dnf remove -y libvirt-client
fi
exit 255
fi
LOG_INFO "virsh list命令支持"
LOG_INFO "步骤5执行virsh list命令列出活跃的虚拟机"
virsh list --all
CHECK_RESULT $? 0 0 "执行virsh list命令失败"
LOG_INFO "步骤6清理环境"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载libvirt-client软件包"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
LOG_INFO "libvirt-client软件包卸载成功"
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-04
# @License : Mulan PSL v2
# @Desc : 测试使用virsh list --all命令列出所有虚拟机
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 设置环境变量
NODE2_IPV4=""
NODE2_PASSWORD=""
NODE2_USER=""
# 定义软件包名称
PACKAGE_NAME="libvirt-client"
# 检查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 "步骤2检查当前是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "${PACKAGE_NAME}软件包已安装"
INSTALLED_BEFORE="true"
else
LOG_INFO "${PACKAGE_NAME}软件包未安装"
INSTALLED_BEFORE="false"
fi
# 如果未安装,则安装软件包
if [ "${INSTALLED_BEFORE}" = "false" ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
fi
# 检查virsh命令是否存在
LOG_INFO "步骤4检查virsh命令是否存在"
which virsh &> /dev/null
CHECK_RESULT $? 0 0 "virsh命令不存在"
# 检查virsh list --all参数是否支持
LOG_INFO "步骤5检查virsh list --all参数是否支持"
virsh list --all &> /dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "virsh list --all参数不存在或不支持"
exit 255
fi
# 执行virsh list --all命令
LOG_INFO "步骤6执行virsh list --all命令列出所有虚拟机"
virsh list --all
CHECK_RESULT $? 0 0 "执行virsh list --all命令失败"
# 环境恢复:如果测试前未安装,则卸载软件包
if [ "${INSTALLED_BEFORE}" = "false" ]; then
LOG_INFO "步骤7卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
else
LOG_INFO "步骤7测试前已安装${PACKAGE_NAME}软件包,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

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-04
# @License : Mulan PSL v2
# @Desc : 测试使用virt-xml-validate验证基本域XML文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用virt-xml-validate验证基本域XML文件"
# 定义软件包名称
PACKAGE="libvirt-client"
# 检查是否已安装软件包
LOG_INFO "检查是否已安装$PACKAGE"
if rpm -q $PACKAGE &>/dev/null; then
LOG_INFO "$PACKAGE已安装"
INSTALLED=1
else
LOG_INFO "$PACKAGE未安装"
INSTALLED=0
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有$PACKAGE"
if ! dnf list available $PACKAGE &>/dev/null; then
LOG_ERROR "yum源中没有$PACKAGE软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装$PACKAGE"
dnf install -y $PACKAGE
CHECK_RESULT $? 0 0 "安装$PACKAGE失败"
fi
# 检查virt-xml-validate命令是否存在
LOG_INFO "检查virt-xml-validate命令是否存在"
if ! command -v virt-xml-validate &>/dev/null; then
LOG_ERROR "virt-xml-validate命令不存在"
exit 255
fi
# 检查virt-xml-validate命令是否支持基本参数
LOG_INFO "检查virt-xml-validate命令是否支持基本参数"
virt-xml-validate --help &>/dev/null
CHECK_RESULT $? 0 0 "virt-xml-validate命令不支持基本参数"
# 创建一个基本的域XML文件用于测试
LOG_INFO "创建基本域XML文件用于测试"
cat > /tmp/test_domain.xml << EOF
<domain type="kvm">
<name>test_vm</name>
<memory unit="KiB">1048576</memory>
<vcpu placement="static">1</vcpu>
<os>
<type arch="x86_64" machine="pc-i440fx-2.9">hvm</type>
<boot dev="hd"/>
</os>
<devices>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/var/lib/libvirt/images/test.qcow2"/>
<target dev="vda" bus="virtio"/>
</disk>
</devices>
</domain>
EOF
# 使用virt-xml-validate验证XML文件
LOG_INFO "使用virt-xml-validate验证XML文件"
virt-xml-validate /tmp/test_domain.xml
CHECK_RESULT $? 0 0 "virt-xml-validate验证XML文件失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f /tmp/test_domain.xml
# 环境恢复:如果之前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载$PACKAGE"
dnf remove -y $PACKAGE
CHECK_RESULT $? 0 0 "卸载$PACKAGE失败"
else
LOG_INFO "保持$PACKAGE安装状态"
fi
LOG_INFO "测试完成"
}
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-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-c选项指定hypervisor连接URI
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试virsh命令的-c选项指定hypervisor连接URI"
# 定义软件包名称
PACKAGE="libvirt-client"
# 检查环境是否已安装libvirt-client
LOG_INFO "步骤1检查环境中是否已安装$PACKAGE"
if dnf list installed "$PACKAGE" > /dev/null 2>&1; then
LOG_INFO "$PACKAGE已安装,脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "$PACKAGE未安装,将在测试过程中安装,并在测试结束后卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否存在该软件包
LOG_INFO "步骤2检查yum源中是否存在$PACKAGE"
if ! dnf list available "$PACKAGE" > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到$PACKAGE软件包"
exit 255
fi
# 如果环境未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装$PACKAGE软件包"
dnf install -y "$PACKAGE"
CHECK_RESULT $? 0 0 "安装$PACKAGE失败"
fi
# 测试virsh命令的-c选项指定hypervisor连接URI
LOG_INFO "步骤4测试virsh命令的-c选项"
# 假设本地使用qemu:///system作为测试URI
TEST_URI="qemu:///system"
virsh -c "$TEST_URI" list --all > /dev/null 2>&1
CHECK_RESULT $? 0 0 "virsh -c $TEST_URI命令执行失败"
# 测试不支持的参数或选项
LOG_INFO "步骤5测试不支持的参数"
virsh --invalid-option 2>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "不支持--invalid-option参数符合预期"
else
LOG_ERROR "错误:--invalid-option参数被错误支持"
exit 255
fi
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤6卸载$PACKAGE软件包,恢复环境"
dnf remove -y "$PACKAGE"
CHECK_RESULT $? 0 0 "卸载$PACKAGE失败"
else
LOG_INFO "步骤6环境已安装$PACKAGE,保持安装状态,无需卸载"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-d选项设置调试级别为0
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试virsh命令的-d选项设置调试级别为0
LOG_INFO "开始测试virsh命令的-d选项设置调试级别为0"
# 定义软件包名称
PACKAGE_NAME="libvirt-client"
# 检查yum源中是否存在该软件包
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
exit 255
fi
# 检查当前是否已安装软件包
LOG_INFO "检查当前是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} &>/dev/null
INSTALLED=$?
# 如果未安装,则安装软件包
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
fi
# 检查virsh命令是否支持-d选项
LOG_INFO "检查virsh命令是否支持-d选项"
virsh --help 2>&1 | grep -q "\-d.*debug"
if [ $? -ne 0 ]; then
LOG_ERROR "virsh命令不支持-d选项"
# 如果测试前未安装软件包,则卸载
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 测试virsh命令的-d选项设置调试级别为0
LOG_INFO "执行virsh命令virsh -d 0 version"
virsh -d 0 version
CHECK_RESULT $? 0 0 "virsh -d 0命令执行失败"
LOG_INFO "测试virsh命令的-d选项设置调试级别为0成功"
# 环境恢复:如果测试前未安装软件包,则卸载
if [ ${INSTALLED} -ne 0 ]; 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,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-d选项设置调试级别为4
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装libvirt-client
LOG_INFO "检查libvirt-client是否已安装"
rpm -q libvirt-client > /dev/null 2>&1
installed=$?
# 定义需要安装的软件包名称
PACKAGE_NAME="libvirt-client"
# 检查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
# 如果未安装,则安装软件包
if [ ${installed} -ne 0 ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
# 测试virsh命令的-d选项设置调试级别为4
LOG_INFO "测试virsh命令的-d选项设置调试级别为4"
virsh -d 4 help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "virsh命令不支持-d选项或设置调试级别为4失败"
# 检查-d选项是否支持参数4
LOG_INFO "检查-d选项是否支持参数4"
virsh -d 4 help 2>&1 | grep -q "debug"
CHECK_RESULT $? 0 0 "-d选项不支持参数4"
# 清理环境:如果之前未安装,则卸载软件包
if [ ${installed} -ne 0 ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-h选项显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试virsh命令的-h选项显示帮助信息"
LOG_INFO "步骤1: 检查环境中是否已安装libvirt-client软件包"
rpm -q libvirt-client
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装libvirt-client测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "环境未安装libvirt-client将在测试过程中安装并在测试结束后卸载"
INSTALLED=0
fi
LOG_INFO "步骤2: 检查yum源中是否存在libvirt-client软件包"
dnf list available libvirt-client 2>&1 | grep -q "libvirt-client"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libvirt-client软件包"
exit 255
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3: 安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
LOG_INFO "步骤4: 检查virsh命令的-h参数是否存在"
virsh -h 2>&1 | grep -q "Usage:"
if [ $? -ne 0 ]; then
LOG_ERROR "virsh命令不支持-h参数"
exit 255
fi
LOG_INFO "步骤5: 执行virsh -h命令显示帮助信息"
virsh -h
CHECK_RESULT $? 0 0 "执行virsh -h命令失败"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤6: 卸载libvirt-client软件包恢复环境"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
else
LOG_INFO "步骤6: 环境已安装libvirt-client无需卸载"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,101 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-k选项禁用保活机制
# ############################################
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 exit_code=$3
local message=$4
if [ "$actual" -ne "$expected" ]; then
LOG_ERROR "$message"
exit $exit_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="libvirt-client"
# 步骤1检查yum源中是否有libvirt-client软件包
LOG_INFO "步骤1检查yum源中是否有libvirt-client软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中没有找到$PACKAGE_NAME软件包"
exit 255
fi
# 步骤2检查环境是否已安装libvirt-client
LOG_INFO "步骤2检查环境是否已安装libvirt-client"
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如果未安装则安装libvirt-client
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装libvirt-client软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
fi
# 步骤4检查virsh命令是否支持-k选项
LOG_INFO "步骤4检查virsh命令是否支持-k选项"
if ! virsh --help | grep -q "\-k"; then
LOG_ERROR "virsh命令不支持-k选项"
exit 255
fi
# 步骤5测试virsh命令的-k选项禁用保活机制
LOG_INFO "步骤5测试virsh命令的-k选项禁用保活机制"
# 这里假设测试命令为virsh -k version实际应根据测试用例调整
virsh -k version
CHECK_RESULT $? 0 0 "virsh -k命令执行失败"
# 步骤6清理环境如果之前未安装则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤6卸载libvirt-client软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
else
LOG_INFO "步骤6保持libvirt-client软件包安装状态"
fi
LOG_INFO "测试完成"
}
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-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-k选项设置保活间隔为5秒
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
LIBVIRT_CLIENT_PKG="libvirt-client"
VIRSH_CMD="virsh"
TEST_OPTION="-k"
TEST_VALUE="5"
# 步骤1检查libvirt-client软件包是否在yum源中
LOG_INFO "步骤1检查libvirt-client软件包是否在yum源中"
dnf list available $LIBVIRT_CLIENT_PKG > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $LIBVIRT_CLIENT_PKG 不在yum源中"
exit 255
fi
# 步骤2检查virsh命令是否已安装
LOG_INFO "步骤2检查virsh命令是否已安装"
command -v $VIRSH_CMD > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "virsh命令已安装"
INSTALLED=true
else
LOG_INFO "virsh命令未安装"
INSTALLED=false
fi
# 步骤3如果未安装则安装libvirt-client软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装libvirt-client软件包"
dnf install -y $LIBVIRT_CLIENT_PKG
CHECK_RESULT $? 0 0 "安装libvirt-client软件包失败"
fi
# 步骤4检查virsh命令是否支持-k选项
LOG_INFO "步骤4检查virsh命令是否支持-k选项"
$VIRSH_CMD --help | grep -q "$TEST_OPTION"
if [ $? -ne 0 ]; then
LOG_ERROR "virsh命令不支持 $TEST_OPTION 选项"
exit 255
fi
# 步骤5测试virsh命令的-k选项设置保活间隔为5秒
LOG_INFO "步骤5测试virsh命令的-k选项设置保活间隔为5秒"
$VIRSH_CMD $TEST_OPTION $TEST_VALUE list > /dev/null 2>&1
CHECK_RESULT $? 0 0 "设置保活间隔为5秒失败"
# 步骤6清理环境恢复到之前的状态
LOG_INFO "步骤6清理环境恢复到之前的状态"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载libvirt-client软件包"
dnf remove -y $LIBVIRT_CLIENT_PKG
CHECK_RESULT $? 0 0 "卸载libvirt-client软件包失败"
else
LOG_INFO "保持libvirt-client软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-l选项将日志输出到指定文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试virsh命令的-l选项将日志输出到指定文件"
# 检查是否已安装libvirt-client软件包
if ! dnf list installed libvirt-client >/dev/null 2>&1; then
LOG_INFO "环境未安装libvirt-client将在测试过程中安装并最终卸载"
INSTALLED_DURING_TEST=1
else
LOG_INFO "环境已安装libvirt-client测试结束后保持安装状态"
INSTALLED_DURING_TEST=0
fi
# 检查yum源中是否有libvirt-client软件包
LOG_INFO "检查yum源中是否存在libvirt-client软件包"
if ! dnf list available libvirt-client >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到libvirt-client软件包"
exit 255
fi
# 如果环境未安装则安装libvirt-client
if [ ${INSTALLED_DURING_TEST} -eq 1 ]; then
LOG_INFO "安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
# 测试virsh命令的-l选项
LOG_INFO "测试virsh命令的-l选项将日志输出到指定文件"
TEST_LOG_FILE="/tmp/virsh_test_log_$$.log"
virsh -l "${TEST_LOG_FILE}" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "virsh命令的-l选项执行失败"
# 检查日志文件是否创建
LOG_INFO "检查日志文件是否创建"
if [ -f "${TEST_LOG_FILE}" ]; then
LOG_INFO "日志文件已创建:${TEST_LOG_FILE}"
else
LOG_ERROR "日志文件未创建"
CHECK_RESULT 1 0 0 "日志文件未创建"
fi
# 清理测试日志文件
LOG_INFO "清理测试日志文件"
rm -f "${TEST_LOG_FILE}"
CHECK_RESULT $? 0 0 "清理日志文件失败"
# 如果测试过程中安装了软件包,则卸载
if [ ${INSTALLED_DURING_TEST} -eq 1 ]; then
LOG_INFO "卸载测试过程中安装的libvirt-client软件包"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-t选项打印计时信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="libvirt-client"
# 步骤1: 检查是否已安装libvirt-client
LOG_INFO "检查是否已安装$PACKAGE_NAME"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装"
INSTALLED="yes"
else
LOG_INFO "$PACKAGE_NAME 未安装"
INSTALLED="no"
fi
# 步骤2: 检查yum源中是否有libvirt-client软件包
LOG_INFO "检查yum源中是否有$PACKAGE_NAME软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中没有找到$PACKAGE_NAME软件包"
exit 255
fi
# 步骤3: 如果未安装则安装libvirt-client
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "安装$PACKAGE_NAME软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
fi
# 步骤4: 测试virsh命令的-t选项打印计时信息
LOG_INFO "测试virsh命令的-t选项打印计时信息"
if virsh help | grep -q "\-t"; then
LOG_INFO "virsh命令支持-t选项"
else
LOG_ERROR "virsh命令不支持-t选项"
exit 255
fi
# 步骤5: 执行virsh -t命令
LOG_INFO "执行virsh -t version命令"
virsh -t version
CHECK_RESULT $? 0 0 "virsh -t命令执行失败"
# 步骤6: 清理环境
LOG_INFO "清理环境"
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "卸载$PACKAGE_NAME软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载$PACKAGE_NAME失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的-K选项设置允许丢失的保活消息数量为3
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试测试virsh命令的-K选项设置允许丢失的保活消息数量为3"
# 检查virsh命令是否已安装
if command -v virsh &> /dev/null; then
LOG_INFO "virsh命令已安装无需额外安装"
already_installed=true
else
LOG_INFO "virsh命令未安装将进行安装"
already_installed=false
fi
# 如果未安装则安装libvirt-client包
if [ "$already_installed" = false ]; then
LOG_INFO "检查yum源中是否有libvirt-client软件包"
if ! dnf list available libvirt-client &> /dev/null; then
LOG_ERROR "yum源中没有libvirt-client软件包"
exit 255
fi
LOG_INFO "安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
# 检查virsh命令是否支持-K选项
LOG_INFO "检查virsh命令是否支持-K选项"
if ! virsh --help | grep -q "\-K"; then
LOG_ERROR "virsh命令不支持-K选项"
# 如果之前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载libvirt-client软件包"
dnf remove -y libvirt-client
fi
exit 255
fi
# 测试virsh命令的-K选项设置允许丢失的保活消息数量为3
LOG_INFO "执行virsh -K 3命令"
virsh -K 3
CHECK_RESULT $? 0 0 "执行virsh -K 3命令失败"
# 环境恢复
if [ "$already_installed" = false ]; then
LOG_INFO "卸载libvirt-client软件包"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
else
LOG_INFO "保持virsh命令安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,107 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试virsh命令的--version选项显示长版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local pkg=$1
LOG_INFO "检查yum源中是否存在软件包: $pkg"
if ! dnf list available "$pkg" &>/dev/null; then
LOG_ERROR "软件包 $pkg 不在yum源中"
exit 255
fi
LOG_INFO "软件包 $pkg 在yum源中存在"
}
# 检查命令参数是否支持
check_command_option() {
local cmd=$1
local option=$2
LOG_INFO "检查命令 $cmd 是否支持参数 $option"
if ! $cmd --help 2>&1 | grep -q -- "$option"; then
LOG_ERROR "命令 $cmd 不支持参数 $option"
exit 255
fi
LOG_INFO "命令 $cmd 支持参数 $option"
}
# 主函数
main() {
local pkg_name="libvirt-client"
local cmd="virsh"
local option="--version-long"
local installed=false
# 步骤1: 检查环境是否已安装libvirt-client
LOG_INFO "步骤1: 检查环境是否已安装libvirt-client"
if rpm -q "$pkg_name" &>/dev/null; then
LOG_INFO "libvirt-client 已安装"
installed=true
else
LOG_INFO "libvirt-client 未安装"
fi
# 步骤2: 如果未安装,则安装软件包
if ! $installed; then
LOG_INFO "步骤2: 安装libvirt-client软件包"
check_package_in_repo "$pkg_name"
dnf install -y "$pkg_name"
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
LOG_INFO "libvirt-client 安装成功"
fi
# 步骤3: 检查virsh命令是否支持--version-long参数
LOG_INFO "步骤3: 检查virsh命令是否支持--version-long参数"
check_command_option "$cmd" "$option"
# 步骤4: 执行virsh --version-long命令
LOG_INFO "步骤4: 执行virsh --version-long命令"
$cmd $option
CHECK_RESULT $? 0 0 "执行virsh --version-long命令失败"
# 步骤5: 清理环境
LOG_INFO "步骤5: 清理环境"
if ! $installed; then
LOG_INFO "卸载libvirt-client软件包"
dnf remove -y "$pkg_name"
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
LOG_INFO "libvirt-client 卸载成功"
else
LOG_INFO "保持libvirt-client安装状态"
fi
LOG_INFO "测试完成"
}
# 执行主函数
main "$@"
}
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-03-04
# @License : Mulan PSL v2
# @Desc : 测试从指定的PEM证书文件中提取可分辨名称
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "1. 检查yum源中是否存在virt-pki-query-dn软件包"
dnf list virt-pki-query-dn
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在virt-pki-query-dn软件包"
exit 255
fi
LOG_INFO "2. 检查当前环境是否已安装virt-pki-query-dn"
rpm -q virt-pki-query-dn
if [ $? -eq 0 ]; then
LOG_INFO "virt-pki-query-dn已安装标记为已安装状态"
INSTALLED=1
else
LOG_INFO "virt-pki-query-dn未安装标记为未安装状态"
INSTALLED=0
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "3. 安装virt-pki-query-dn软件包"
dnf install -y virt-pki-query-dn
CHECK_RESULT $? 0 0 "安装virt-pki-query-dn失败"
fi
LOG_INFO "4. 检查virt-pki-query-dn命令是否支持--file参数"
virt-pki-query-dn --help | grep -q -- "--file"
CHECK_RESULT $? 0 0 "virt-pki-query-dn命令不支持--file参数"
LOG_INFO "5. 创建测试用的PEM证书文件"
cat > /tmp/test_cert.pem << EOF
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKL1a1z5Qq5qMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMjQwMTAxMDAwMDAwWhcNMjUwMTAxMDAwMDAwWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAw6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6KQ8q
6Q6KQ8q6Q6KQ8q6Q6KQ8q6Q6
}
main "$@"

View File

@@ -1,98 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试在提供证书文件参数的同时使用-h参数预期应显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PKG_NAME="libvirt-client"
CMD="virt-pki-query-dn"
PARAM_FILE="/tmp/test_cert.pem"
PARAM_H="-h"
# 生成临时证书文件用于测试
cat > ${PARAM_FILE} << EOF
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJALrA7zJ7e3vAMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMjMwNTAxMDAwMDAwWhcNMjQwNDMwMDAwMDAwWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAw6h6lJ4vQ6q7V6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6v6l6
}
main "$@"

View File

@@ -1,108 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试显示virt-pki-query-dn命令的版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查函数
CHECK_RESULT() {
if [ $1 -ne $2 ]; then
LOG_ERROR "$4"
exit $3
fi
}
# 定义SSH命令函数
SSH_CMD() {
# 这里假设SSH_CMD函数已经定义直接使用
# 实际使用时需要根据具体环境实现
command="$1"
node_ip="$2"
node_password="$3"
node_user="$4"
# 示例使用sshpass执行命令
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user"@"$node_ip" "$command"
}
# 测试脚本开始
LOG_INFO "开始测试测试显示virt-pki-query-dn命令的版本信息"
# 步骤1检查yum源中是否有libvirt-client软件包
LOG_INFO "步骤1检查yum源中是否有libvirt-client软件包"
dnf list available libvirt-client 2>/dev/null | grep -q libvirt-client
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有libvirt-client软件包"
exit 255
fi
# 步骤2检查是否已安装libvirt-client
LOG_INFO "步骤2检查是否已安装libvirt-client"
rpm -q libvirt-client >/dev/null 2>&1
installed=$?
# 步骤3如果未安装则安装软件包
if [ $installed -ne 0 ]; then
LOG_INFO "步骤3安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 255 "安装libvirt-client失败"
else
LOG_INFO "步骤3libvirt-client已安装跳过安装步骤"
fi
# 步骤4检查virt-pki-query-dn命令是否存在
LOG_INFO "步骤4检查virt-pki-query-dn命令是否存在"
command -v virt-pki-query-dn >/dev/null 2>&1
CHECK_RESULT $? 0 255 "virt-pki-query-dn命令不存在"
# 步骤5检查virt-pki-query-dn命令是否支持--version参数
LOG_INFO "步骤5检查virt-pki-query-dn命令是否支持--version参数"
virt-pki-query-dn --version >/dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "virt-pki-query-dn命令不支持--version参数"
exit 255
fi
# 步骤6执行virt-pki-query-dn --version命令
LOG_INFO "步骤6执行virt-pki-query-dn --version命令"
virt-pki-query-dn --version
CHECK_RESULT $? 0 $? "执行virt-pki-query-dn --version命令失败"
# 步骤7环境恢复
LOG_INFO "步骤7环境恢复"
if [ $installed -ne 0 ]; then
LOG_INFO "卸载libvirt-client软件包"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 $? "卸载libvirt-client失败"
else
LOG_INFO "保持libvirt-client安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,129 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-04
# @License : Mulan PSL v2
# @Desc : 测试在提供证书文件参数的同时使用-v参数预期应显示版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 设置环境变量
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 测试开始
LOG_INFO "开始测试:测试在提供证书文件参数的同时使用-v参数预期应显示版本信息"
# 定义软件包名称
PACKAGE_NAME="libvirt-client"
# 步骤1检查yum源中是否有libvirt-client软件包
LOG_INFO "步骤1检查yum源中是否有libvirt-client软件包"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到$PACKAGE_NAME软件包"
exit 255
fi
# 步骤2检查当前环境是否已安装libvirt-client
LOG_INFO "步骤2检查当前环境是否已安装libvirt-client"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
if [ $? -eq 0 ]; then
INSTALLED="true"
LOG_INFO "当前环境已安装$PACKAGE_NAME"
else
INSTALLED="false"
LOG_INFO "当前环境未安装$PACKAGE_NAME"
fi
# 步骤3如果未安装则安装libvirt-client
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装libvirt-client软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
# 步骤4检查virt-pki-query-dn命令是否存在
LOG_INFO "步骤4检查virt-pki-query-dn命令是否存在"
command -v virt-pki-query-dn > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "virt-pki-query-dn命令不存在"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载libvirt-client"
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤5检查virt-pki-query-dn命令是否支持-v参数
LOG_INFO "步骤5检查virt-pki-query-dn命令是否支持-v参数"
virt-pki-query-dn -v --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "virt-pki-query-dn命令不支持-v参数"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理环境卸载libvirt-client"
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤6创建测试用的证书文件
LOG_INFO "步骤6创建测试用的证书文件"
TEST_CERT_FILE="/tmp/test_cert.pem"
cat > $TEST_CERT_FILE << EOF
-----BEGIN CERTIFICATE-----
MIIBkTCB+wIJAKHHIgKwVGlOMA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNVBAYTAlVT
-----END CERTIFICATE-----
EOF
CHECK_RESULT $? 0 0 "创建测试证书文件失败"
# 步骤7测试在提供证书文件参数的同时使用-v参数
LOG_INFO "步骤7测试在提供证书文件参数的同时使用-v参数"
virt-pki-query-dn -v -f $TEST_CERT_FILE > /dev/null 2>&1
CHECK_RESULT $? 0 0 "virt-pki-query-dn -v -f 命令执行失败"
# 步骤8验证是否显示版本信息
LOG_INFO "步骤8验证是否显示版本信息"
VERSION_OUTPUT=$(virt-pki-query-dn -v -f $TEST_CERT_FILE 2>&1)
if echo "$VERSION_OUTPUT" | grep -q "version\|Version"; then
LOG_INFO "成功显示版本信息"
CHECK_RESULT $? 0 0 "未显示版本信息"
else
LOG_ERROR "未显示版本信息"
CHECK_RESULT $? 1 0 "未显示版本信息"
fi
# 步骤9清理测试证书文件
LOG_INFO "步骤9清理测试证书文件"
rm -f $TEST_CERT_FILE
CHECK_RESULT $? 0 0 "删除测试证书文件失败"
# 步骤10如果测试前未安装则卸载libvirt-client
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤10清理环境卸载libvirt-client"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
fi
LOG_INFO "测试完成:测试在提供证书文件参数的同时使用-v参数预期应显示版本信息"
}
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-03-04
# @License : Mulan PSL v2
# @Desc : 测试使用-h参数显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -eq $expect ]; then
LOG_INFO "$message 成功"
else
LOG_ERROR "$message 失败"
exit $actual
fi
else
if [ $actual -ne $expect ]; then
LOG_INFO "$message 成功"
else
LOG_ERROR "$message 失败"
exit 255
fi
fi
}
# 定义远程执行函数
SSH_CMD() {
local cmd=$1
local ip=$2
local passwd=$3
local user=$4
sshpass -p $passwd ssh -o StrictHostKeyChecking=no $user@$ip "$cmd"
}
# 主测试函数
main() {
# 步骤1检查virt-xml-validate命令是否存在
LOG_INFO "步骤1检查virt-xml-validate命令是否存在"
if command -v virt-xml-validate &> /dev/null; then
LOG_INFO "virt-xml-validate命令已存在无需安装"
INSTALLED=true
else
LOG_INFO "virt-xml-validate命令不存在需要安装"
INSTALLED=false
fi
# 步骤2检查yum源中是否有libvirt-client软件包
LOG_INFO "步骤2检查yum源中是否有libvirt-client软件包"
dnf list available libvirt-client &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有libvirt-client软件包"
exit 255
fi
# 步骤3如果未安装则安装libvirt-client软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client软件包"
fi
# 步骤4测试virt-xml-validate命令的-h参数
LOG_INFO "步骤4测试virt-xml-validate命令的-h参数"
virt-xml-validate -h &> /dev/null
CHECK_RESULT $? 0 0 "virt-xml-validate -h 显示帮助信息"
# 步骤5清理环境如果之前未安装则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤5卸载libvirt-client软件包"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client软件包"
else
LOG_INFO "步骤5环境已安装保持安装状态"
fi
LOG_INFO "测试完成"
}
# 调用主函数
main
}
main "$@"

View File

@@ -1,118 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-04
# @License : Mulan PSL v2
# @Desc : 测试使用XML-FILE参数验证XML文件的语法
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试使用XML-FILE参数验证XML文件的语法"
LOG_INFO "1. 检查当前环境是否已安装libvirt-client软件包"
if rpm -q libvirt-client &> /dev/null; then
LOG_INFO "环境已安装libvirt-client标记为无需清理"
need_cleanup=0
else
LOG_INFO "环境未安装libvirt-client标记为需要清理"
need_cleanup=1
fi
LOG_INFO "2. 检查yum源中是否存在libvirt-client软件包"
if ! dnf list available libvirt-client &> /dev/null; then
LOG_ERROR "yum源中未找到libvirt-client软件包"
exit 255
fi
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "3. 安装libvirt-client软件包"
dnf install -y libvirt-client
CHECK_RESULT $? 0 0 "安装libvirt-client失败"
fi
LOG_INFO "4. 检查virt-xml-validate命令是否支持XML-FILE参数"
if ! virt-xml-validate --help | grep -q "\-\-xml-file"; then
LOG_ERROR "virt-xml-validate命令不支持XML-FILE参数"
exit 255
fi
LOG_INFO "5. 创建一个临时的有效XML文件用于测试"
temp_xml=$(mktemp)
cat > $temp_xml << "EOF"
<domain type="kvm">
<name>testvm</name>
<memory unit="KiB">1048576</memory>
<vcpu placement="static">1</vcpu>
<os>
<type arch="x86_64" machine="pc">hvm</type>
<boot dev="hd"/>
</os>
<devices>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/var/lib/libvirt/images/test.qcow2"/>
<target dev="vda" bus="virtio"/>
</disk>
</devices>
</domain>
EOF
CHECK_RESULT $? 0 0 "创建临时XML文件失败"
LOG_INFO "6. 使用virt-xml-validate验证有效的XML文件"
virt-xml-validate --xml-file $temp_xml
CHECK_RESULT $? 0 0 "验证有效XML文件失败"
LOG_INFO "7. 创建一个临时的无效XML文件用于测试"
invalid_xml=$(mktemp)
cat > $invalid_xml << "EOF"
<domain type="kvm">
<name>testvm</name>
<memory unit="KiB">1048576</memory>
<vcpu placement="static">1</vcpu>
<os>
<type arch="x86_64" machine="pc">hvm</type>
<boot dev="hd"/>
</os>
<!-- 缺少关闭标签 -->
</domain
EOF
CHECK_RESULT $? 0 0 "创建无效XML文件失败"
LOG_INFO "8. 使用virt-xml-validate验证无效的XML文件"
virt-xml-validate --xml-file $invalid_xml
if [ $? -eq 0 ]; then
LOG_ERROR "无效XML文件验证应该失败但实际成功"
exit 1
else
LOG_INFO "无效XML文件验证失败符合预期"
fi
LOG_INFO "9. 清理临时文件"
rm -f $temp_xml $invalid_xml
CHECK_RESULT $? 0 0 "删除临时文件失败"
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "10. 卸载libvirt-client软件包"
dnf remove -y libvirt-client
CHECK_RESULT $? 0 0 "卸载libvirt-client失败"
fi
LOG_INFO "测试完成使用XML-FILE参数验证XML文件的语法"
}
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-01-29
# @License : Mulan PSL v2
# @Desc : Test compiling a simple C program that uses libyaml
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "检查yum源中是否存在libyaml-devel软件包"
dnf list libyaml-devel
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libyaml-devel软件包"
exit 255
fi
LOG_INFO "检查当前环境是否已安装libyaml-devel"
rpm -q libyaml-devel
if [ $? -eq 0 ]; then
LOG_INFO "检测到libyaml-devel已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "未检测到libyaml-devel将进行安装"
INSTALLED=0
fi
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "步骤安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel失败"
fi
LOG_INFO "步骤创建一个简单的C程序用于测试libyaml编译"
TEST_CODE=$(cat << "EOF"
#include <yaml.h>
#include <stdio.h>
int main() {
printf("YAML library version: %s\n", yaml_get_version_string());
return 0;
}
EOF
)
echo "${TEST_CODE}" > test_libyaml.c
CHECK_RESULT $? 0 0 "创建测试C源文件失败"
LOG_INFO "步骤:编译测试程序"
gcc test_libyaml.c -lyaml -o test_libyaml
CHECK_RESULT $? 0 0 "编译测试程序失败"
LOG_INFO "步骤:运行编译后的测试程序"
./test_libyaml
CHECK_RESULT $? 0 0 "运行测试程序失败"
LOG_INFO "步骤:清理临时文件"
rm -f test_libyaml.c test_libyaml
CHECK_RESULT $? 0 0 "清理临时文件失败"
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "步骤卸载测试安装的libyaml-devel软件包"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel失败"
LOG_INFO "环境已恢复至测试前状态"
else
LOG_INFO "测试完成libyaml-devel保持安装状态"
fi
}
main "$@"

View File

@@ -1,134 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-25
# @License : Mulan PSL v2
# @Desc : Test generating complex YAML structures
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试生成复杂的YAML结构
LOG_INFO "开始测试Test generating complex YAML structures"
# 检查环境是否已安装libyaml-devel
LOG_INFO "步骤1检查libyaml-devel是否已安装"
if dnf list installed libyaml-devel &>/dev/null; then
LOG_INFO "libyaml-devel已安装测试结束后将保持安装状态"
WAS_INSTALLED=true
else
LOG_INFO "libyaml-devel未安装将在测试过程中安装"
WAS_INSTALLED=false
fi
# 检查yum源中是否有libyaml-devel软件包
LOG_INFO "步骤2检查yum源中是否有libyaml-devel软件包"
if ! dnf list available libyaml-devel &>/dev/null; then
LOG_ERROR "yum源中未找到libyaml-devel软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$WAS_INSTALLED" = false ]; then
LOG_INFO "步骤3安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel失败"
fi
# 检查yaml命令是否可用
LOG_INFO "步骤4检查yaml命令是否可用"
if ! command -v yaml &>/dev/null; then
LOG_ERROR "yaml命令不存在或不支持"
if [ "$WAS_INSTALLED" = false ]; then
LOG_INFO "清理环境卸载libyaml-devel"
dnf remove -y libyaml-devel
fi
exit 255
fi
# 测试生成复杂YAML结构
LOG_INFO "步骤5测试生成复杂YAML结构"
cat > test_complex.yaml << "EOF"
# 复杂YAML结构示例
person:
name: "张三"
age: 30
address:
street: "人民路"
city: "北京"
zip: "100000"
hobbies:
- "阅读"
- "游泳"
- "编程"
education:
- degree: "学士"
school: "清华大学"
year: 2010
- degree: "硕士"
school: "北京大学"
year: 2013
skills:
programming:
- "Python"
- "Java"
- "C++"
languages:
- "英语"
- "日语"
EOF
CHECK_RESULT $? 0 0 "创建测试YAML文件失败"
# 验证生成的YAML文件
LOG_INFO "步骤6验证生成的YAML文件"
if [ -f test_complex.yaml ]; then
yaml validate test_complex.yaml
CHECK_RESULT $? 0 0 "YAML文件验证失败"
# 检查YAML文件内容
if grep -q "张三" test_complex.yaml && \
grep -q "清华大学" test_complex.yaml && \
grep -q "Python" test_complex.yaml; then
LOG_INFO "复杂YAML结构生成成功"
else
LOG_ERROR "YAML文件内容不完整"
CHECK_RESULT 1 0 0 "YAML文件内容不完整"
fi
else
LOG_ERROR "测试YAML文件未创建"
CHECK_RESULT 1 0 0 "测试YAML文件未创建"
fi
# 清理测试文件
LOG_INFO "步骤7清理测试文件"
rm -f test_complex.yaml
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果需要,卸载软件包
if [ "$WAS_INSTALLED" = false ]; then
LOG_INFO "步骤8卸载libyaml-devel软件包"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel失败"
LOG_INFO "环境已恢复到测试前的状态"
else
LOG_INFO "环境保持原状libyaml-devel保持安装状态"
fi
LOG_INFO "测试完成Test generating complex YAML structures"
}
main "$@"

View File

@@ -1,181 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-25
# @License : Mulan PSL v2
# @Desc : Test parsing complex YAML structures
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试解析复杂YAML结构"
# 检查yum源中是否存在libyaml-devel软件包
LOG_INFO "检查yum源中是否存在libyaml-devel软件包"
if ! dnf list available libyaml-devel &>/dev/null; then
LOG_ERROR "yum源中不存在libyaml-devel软件包"
exit 255
fi
# 判断环境是否已经安装libyaml-devel
LOG_INFO "检查环境是否已安装libyaml-devel"
if rpm -q libyaml-devel &>/dev/null; then
LOG_INFO "环境已安装libyaml-devel测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "环境未安装libyaml-devel将进行安装"
INSTALLED_BEFORE_TEST=false
fi
# 如果未安装则安装libyaml-devel
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel失败"
fi
# 创建测试用的复杂YAML文件
LOG_INFO "创建测试用的复杂YAML文件"
cat > complex.yaml << "EOF"
---
# 复杂YAML结构示例
person:
name: "张三"
age: 30
address:
city: "北京"
street: "长安街"
postal_code: 100000
hobbies:
- "阅读"
- "游泳"
- "编程"
education:
- school: "清华大学"
degree: "本科"
year: 2010
- school: "北京大学"
degree: "硕士"
year: 2013
projects:
project1:
name: "项目A"
status: "完成"
project2:
name: "项目B"
status: "进行中"
EOF
CHECK_RESULT $? 0 0 "创建YAML文件失败"
# 测试使用yq解析复杂YAML结构
LOG_INFO "测试使用yq解析复杂YAML结构"
if ! command -v yq &>/dev/null; then
LOG_INFO "安装yq工具"
dnf install -y yq
CHECK_RESULT $? 0 0 "安装yq失败"
YQ_INSTALLED=true
else
YQ_INSTALLED=false
fi
# 解析YAML文件中的姓名
LOG_INFO "解析YAML文件中的姓名"
name=$(yq e ".person.name" complex.yaml)
CHECK_RESULT $? 0 0 "解析姓名失败"
LOG_INFO "姓名为: $name"
# 解析YAML文件中的城市
LOG_INFO "解析YAML文件中的城市"
city=$(yq e ".person.address.city" complex.yaml)
CHECK_RESULT $? 0 0 "解析城市失败"
LOG_INFO "城市为: $city"
# 解析YAML文件中的第一个爱好
LOG_INFO "解析YAML文件中的第一个爱好"
hobby1=$(yq e ".person.hobbies[0]" complex.yaml)
CHECK_RESULT $? 0 0 "解析第一个爱好失败"
LOG_INFO "第一个爱好为: $hobby1"
# 解析YAML文件中的第一个教育经历
LOG_INFO "解析YAML文件中的第一个教育经历"
school1=$(yq e ".person.education[0].school" complex.yaml)
CHECK_RESULT $? 0 0 "解析第一个教育经历失败"
LOG_INFO "第一个教育学校为: $school1"
# 解析YAML文件中的项目状态
LOG_INFO "解析YAML文件中的项目状态"
project_status=$(yq e ".person.projects.project1.status" complex.yaml)
CHECK_RESULT $? 0 0 "解析项目状态失败"
LOG_INFO "项目A状态为: $project_status"
# 测试使用python解析复杂YAML结构
LOG_INFO "测试使用python解析复杂YAML结构"
cat > parse_yaml.py << "EOF"
import yaml
import sys
try:
with open("complex.yaml", "r") as file:
data = yaml.safe_load(file)
# 验证数据结构
if "person" in data:
person = data["person"]
print(f"姓名: {person.get("name", "N/A")}")
print(f"年龄: {person.get("age", "N/A")}")
print(f"城市: {person["address"].get("city", "N/A")}")
print(f"爱好数量: {len(person.get("hobbies", []))}")
print(f"教育经历数量: {len(person.get("education", []))}")
print(f"项目数量: {len(person.get("projects", {}))}")
sys.exit(0)
else:
print("YAML文件中未找到person节点")
sys.exit(1)
except Exception as e:
print(f"解析YAML文件失败: {str(e)}")
sys.exit(1)
EOF
LOG_INFO "执行Python解析脚本"
python3 parse_yaml.py
CHECK_RESULT $? 0 0 "Python解析YAML失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f complex.yaml parse_yaml.py
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装yq则卸载yq
if [ "$YQ_INSTALLED" = true ]; then
LOG_INFO "卸载yq工具"
dnf remove -y yq
CHECK_RESULT $? 0 0 "卸载yq失败"
fi
# 如果测试前未安装libyaml-devel则卸载
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载libyaml-devel软件包"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "保持libyaml-devel安装状态"
fi
LOG_INFO "测试完成解析复杂YAML结构"
}
main "$@"

View File

@@ -1,141 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-29
# @License : Mulan PSL v2
# @Desc : Test using libyaml in a config scenario
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装libyaml-devel
LOG_INFO "检查libyaml-devel是否已安装"
rpm -q libyaml-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libyaml-devel已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "libyaml-devel未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否有libyaml-devel软件包
LOG_INFO "检查yum源中是否有libyaml-devel软件包"
dnf list available libyaml-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libyaml-devel软件包"
exit 255
fi
# 如果未安装则安装libyaml-devel
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装libyaml-devel"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel失败"
fi
# 测试libyaml在配置场景中的使用
LOG_INFO "测试libyaml在配置场景中的使用"
# 创建一个测试配置文件
LOG_INFO "创建测试配置文件"
cat > test_config.yaml << EOF
database:
host: localhost
port: 3306
username: testuser
password: testpass
logging:
level: info
file: /var/log/test.log
EOF
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
# 使用libyaml库读取配置文件
LOG_INFO "使用libyaml库读取配置文件"
cat > test_libyaml.c << EOF
#include <yaml.h>
#include <stdio.h>
#include <string.h>
int main() {
yaml_parser_t parser;
yaml_event_t event;
FILE *file = fopen("test_config.yaml", "r");
if (!file) {
printf("无法打开文件\n");
return 1;
}
yaml_parser_initialize(&parser);
yaml_parser_set_input_file(&parser, file);
int done = 0;
while (!done) {
if (!yaml_parser_parse(&parser, &event)) {
printf("解析失败\n");
return 1;
}
switch (event.type) {
case YAML_STREAM_START_EVENT:
printf("开始解析YAML流\n");
break;
case YAML_STREAM_END_EVENT:
printf("结束解析YAML流\n");
done = 1;
break;
case YAML_SCALAR_EVENT:
printf("标量: %s\n", event.data.scalar.value);
break;
}
yaml_event_delete(&event);
}
yaml_parser_delete(&parser);
fclose(file);
return 0;
}
EOF
CHECK_RESULT $? 0 0 "创建测试C程序失败"
# 编译测试程序
LOG_INFO "编译测试程序"
gcc -o test_libyaml test_libyaml.c -lyaml
CHECK_RESULT $? 0 0 "编译测试程序失败"
# 运行测试程序
LOG_INFO "运行测试程序"
./test_libyaml
CHECK_RESULT $? 0 0 "运行测试程序失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_config.yaml test_libyaml.c test_libyaml
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试前未安装则卸载libyaml-devel
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载libyaml-devel"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,82 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-01-28
# @License : Mulan PSL v2
# @Desc : Test the availability of yaml.h header file
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试yaml.h头文件的可用性"
LOG_INFO "步骤1: 检查yaml源中是否存在libyaml-devel软件包"
dnf list available libyaml-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yaml源中未找到libyaml-devel软件包"
exit 255
fi
LOG_INFO "步骤2: 检查系统是否已安装libyaml-devel"
rpm -q libyaml-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到libyaml-devel已安装测试后保持安装状态"
INSTALLED=1
else
LOG_INFO "未检测到libyaml-devel安装将执行安装步骤"
INSTALLED=0
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3: 安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel失败"
fi
LOG_INFO "步骤4: 验证yaml.h头文件是否存在"
ls /usr/include/yaml.h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "未找到yaml.h头文件"
LOG_INFO "步骤5: 编译测试程序验证头文件可用性"
cat > test_yaml.c << "EOF"
#include <yaml.h>
#include <stdio.h>
int main() {
printf("yaml.h version: %d.%d.%d\n", YAML_VERSION_MAJOR, YAML_VERSION_MINOR, YAML_VERSION_PATCH);
return 0;
}
EOF
gcc -o test_yaml test_yaml.c -lyaml
CHECK_RESULT $? 0 0 "编译测试程序失败"
LOG_INFO "步骤6: 运行测试程序验证功能"
./test_yaml
CHECK_RESULT $? 0 0 "运行测试程序失败"
LOG_INFO "步骤7: 清理测试文件"
rm -f test_yaml test_yaml.c
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤8: 卸载libyaml-devel软件包恢复环境"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel失败"
else
LOG_INFO "步骤8: 保持libyaml-devel安装状态"
fi
LOG_INFO "测试完成: yaml.h头文件可用性验证成功"
}
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-01-28
# @License : Mulan PSL v2
# @Desc : Test linking a simple program with libyaml library
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "检查yum源中是否存在libyaml-devel软件包"
dnf list available libyaml-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到libyaml-devel软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libyaml-devel软件包"
exit 255
fi
LOG_INFO "检查当前环境中是否已安装libyaml-devel"
rpm -q libyaml-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "当前环境已安装libyaml-devel测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "当前环境未安装libyaml-devel将进行安装作为测试步骤"
already_installed=0
fi
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel软件包失败"
fi
LOG_INFO "创建测试C程序源代码文件test_libyaml.c"
cat > test_libyaml.c << "EOF"
#include <yaml.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
yaml_parser_t parser;
if (!yaml_parser_initialize(&parser)) {
printf("Failed to initialize YAML parser\n");
return EXIT_FAILURE;
}
yaml_parser_delete(&parser);
printf("Successfully linked with libyaml\n");
return EXIT_SUCCESS;
}
EOF
CHECK_RESULT $? 0 0 "创建测试C程序源代码文件失败"
LOG_INFO "编译测试程序链接libyaml库"
gcc -o test_libyaml_program test_libyaml.c -lyaml
CHECK_RESULT $? 0 0 "编译链接libyaml库失败"
LOG_INFO "运行测试程序"
./test_libyaml_program
CHECK_RESULT $? 0 0 "运行链接了libyaml库的程序失败"
LOG_INFO "清理测试程序文件"
rm -f test_libyaml.c test_libyaml_program
CHECK_RESULT $? 0 0 "清理测试程序文件失败"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载测试安装的libyaml-devel软件包"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,115 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-25
# @License : Mulan PSL v2
# @Desc : Test YAML Unicode character support
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始测试YAML Unicode字符支持"
LOG_INFO "步骤1检查系统中是否已安装libyaml-devel软件包"
rpm -q libyaml-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libyaml-devel软件包已安装脚本结束时将保持安装状态"
already_installed=1
else
LOG_INFO "libyaml-devel软件包未安装"
already_installed=0
fi
LOG_INFO "步骤2检查yum源中是否有libyaml-devel软件包"
dnf list available libyaml-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有libyaml-devel软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有libyaml-devel软件包退出测试"
exit 255
fi
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel软件包失败"
LOG_INFO "libyaml-devel软件包安装成功"
fi
LOG_INFO "步骤4测试YAML Unicode字符支持"
LOG_INFO "步骤4.1创建包含Unicode字符的YAML测试文件"
cat > test_unicode.yaml << "EOF"
---
unicode_test:
- "Hello 世界"
- "Привет мир"
- "مرحبا بالعالم"
- "नमस्ते दुनिया"
EOF
LOG_INFO "步骤4.2使用python3验证YAML文件解析"
python3 -c "
import yaml
import sys
try:
with open("test_unicode.yaml", "r", encoding="utf-8") as f:
data = yaml.safe_load(f)
if "unicode_test" in data and isinstance(data["unicode_test"], list):
print("YAML Unicode解析成功")
for item in data["unicode_test"]:
print(f" - {item}")
else:
print("YAML文件结构不符合预期")
sys.exit(1)
except Exception as e:
print(f"YAML解析失败: {e}")
sys.exit(1)
"
CHECK_RESULT $? 0 0 "YAML Unicode字符解析测试失败"
LOG_INFO "步骤4.3使用ruby验证YAML文件解析"
ruby -e "
require "yaml"
begin
data = YAML.load_file("test_unicode.yaml")
if data.key?("unicode_test") && data["unicode_test"].is_a?(Array)
puts "YAML Unicode解析成功"
data["unicode_test"].each { |item| puts \" - #{item}\" }
else
puts "YAML文件结构不符合预期"
exit 1
end
rescue => e
puts \"YAML解析失败: #{e}\"
exit 1
end
"
CHECK_RESULT $? 0 0 "Ruby YAML Unicode字符解析测试失败"
LOG_INFO "步骤5清理测试文件"
rm -f test_unicode.yaml
CHECK_RESULT $? 0 0 "删除测试文件失败"
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤6卸载libyaml-devel软件包"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel软件包失败"
LOG_INFO "libyaml-devel软件包卸载成功"
else
LOG_INFO "步骤6保持libyaml-devel软件包安装状态"
fi
LOG_INFO "测试结束YAML Unicode字符支持测试完成"
}
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-01-28
# @License : Mulan PSL v2
# @Desc : Test verifying the integrity of libyaml-devel package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试libyaml-devel软件包功能完整性
LOG_INFO "开始测试验证libyaml-devel软件包的完整性"
# 初始化变量
PACKAGE_NAME="libyaml-devel"
INSTALLED_FLAG=0
# 步骤1检查yum源中是否存在该软件包
LOG_INFO "步骤1检查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软件包"
# 步骤2检查系统是否已安装该软件包
LOG_INFO "步骤2检查系统是否已安装$PACKAGE_NAME软件包"
rpm -q $PACKAGE_NAME >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "$PACKAGE_NAME软件包已安装"
INSTALLED_FLAG=1
else
LOG_INFO "$PACKAGE_NAME软件包未安装"
fi
# 步骤3如果未安装则安装软件包
if [ $INSTALLED_FLAG -eq 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验证$PACKAGE_NAME软件包文件完整性"
rpm -V $PACKAGE_NAME
CHECK_RESULT $? 0 0 "$PACKAGE_NAME软件包文件完整性验证失败"
# 步骤5检查头文件是否存在
LOG_INFO "步骤5检查libyaml头文件是否存在"
if [ -f /usr/include/yaml.h ]; then
LOG_INFO "找到yaml.h头文件"
else
LOG_ERROR "未找到yaml.h头文件"
CHECK_RESULT 1 0 0 "缺少yaml.h头文件"
fi
# 步骤6检查库文件是否存在
LOG_INFO "步骤6检查libyaml库文件是否存在"
if [ -f /usr/lib64/libyaml.so ] || [ -f /usr/lib/libyaml.so ]; then
LOG_INFO "找到libyaml.so库文件"
else
LOG_ERROR "未找到libyaml.so库文件"
CHECK_RESULT 1 0 0 "缺少libyaml.so库文件"
fi
# 步骤7测试编译简单的YAML程序
LOG_INFO "步骤7测试使用libyaml-devel编译简单程序"
cat > test_yaml.c << "EOF"
#include <yaml.h>
#include <stdio.h>
int main() {
printf("YAML parser version: %d.%d.%d\n",
YAML_VERSION_MAJOR,
YAML_VERSION_MINOR,
YAML_VERSION_PATCH);
return 0;
}
EOF
gcc -o test_yaml test_yaml.c -lyaml
CHECK_RESULT $? 0 0 "使用libyaml编译测试程序失败"
# 步骤8运行编译的程序
LOG_INFO "步骤8运行编译的测试程序"
./test_yaml
CHECK_RESULT $? 0 0 "运行测试程序失败"
# 步骤9清理测试文件
LOG_INFO "步骤9清理测试文件"
rm -f test_yaml.c test_yaml
LOG_INFO "测试文件清理完成"
# 步骤10环境恢复
LOG_INFO "步骤10环境恢复"
if [ $INSTALLED_FLAG -eq 0 ]; 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 "测试完成libyaml-devel软件包功能完整性验证成功"
}
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-01-29
# @License : Mulan PSL v2
# @Desc : Test generating a simple YAML document
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装libyaml-devel软件包
LOG_INFO "检查libyaml-devel是否已安装"
rpm -q libyaml-devel > /dev/null 2>&1
is_installed=$?
# 检查yum源中是否有libyaml-devel软件包
LOG_INFO "检查yum源中是否有libyaml-devel软件包"
dnf list available libyaml-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libyaml-devel软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $is_installed -ne 0 ]; then
LOG_INFO "安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel失败"
fi
# 验证yaml_emit命令是否存在
LOG_INFO "验证yaml_emit命令是否存在"
command -v yaml_emit > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yaml_emit命令不存在"
exit 255
fi
# 测试生成简单YAML文档
LOG_INFO "测试生成简单YAML文档"
yaml_emit --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yaml_emit命令参数不支持"
exit 255
fi
# 创建测试输入文件
LOG_INFO "创建测试输入文件"
cat > test_input.yaml << EOF
key1: value1
key2:
subkey1: subvalue1
subkey2: subvalue2
EOF
CHECK_RESULT $? 0 0 "创建测试输入文件失败"
# 执行yaml_emit命令
LOG_INFO "执行yaml_emit命令生成YAML文档"
yaml_emit test_input.yaml > test_output.yaml 2>&1
CHECK_RESULT $? 0 0 "执行yaml_emit命令失败"
# 验证输出文件是否存在且非空
LOG_INFO "验证输出文件是否存在且非空"
if [ -s test_output.yaml ]; then
LOG_INFO "YAML文档生成成功"
cat test_output.yaml
else
LOG_ERROR "YAML文档生成失败"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_input.yaml test_output.yaml
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果脚本开始时未安装,则卸载软件包
if [ $is_installed -ne 0 ]; then
LOG_INFO "卸载libyaml-devel软件包"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel失败"
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-01-29
# @License : Mulan PSL v2
# @Desc : Test parsing a simple YAML document
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试: Test parsing a simple YAML document"
LOG_INFO "步骤1: 检查yum源中是否存在libyaml-devel软件包"
if ! dnf list available libyaml-devel &>/dev/null; then
LOG_ERROR "yum源中未找到libyaml-devel软件包"
exit 255
fi
LOG_INFO "步骤2: 检查系统是否已经安装libyaml-devel"
if rpm -q libyaml-devel &>/dev/null; then
LOG_INFO "libyaml-devel已经安装标记为无需卸载"
NEED_UNINSTALL=0
else
LOG_INFO "libyaml-devel未安装标记为需要卸载"
NEED_UNINSTALL=1
fi
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "步骤3: 安装libyaml-devel软件包"
dnf install -y libyaml-devel
CHECK_RESULT $? 0 0 "安装libyaml-devel失败"
fi
LOG_INFO "步骤4: 检查yaml_parse命令是否存在"
if ! command -v yaml_parse &>/dev/null; then
LOG_ERROR "yaml_parse命令不存在或不支持"
if [ $NEED_UNINSTALL -eq 1 ]; then
dnf remove -y libyaml-devel
fi
exit 255
fi
LOG_INFO "步骤5: 创建测试用的简单YAML文档"
cat > test_simple.yaml << "EOF"
---
name: "Test User"
age: 30
city: "Beijing"
EOF
CHECK_RESULT $? 0 0 "创建YAML文档失败"
LOG_INFO "步骤6: 使用yaml_parse解析YAML文档"
yaml_parse test_simple.yaml
CHECK_RESULT $? 0 0 "解析YAML文档失败"
LOG_INFO "步骤7: 验证解析结果"
if grep -q "name: Test User" test_simple.yaml.parsed 2>/dev/null; then
LOG_INFO "解析结果验证成功"
else
LOG_ERROR "解析结果验证失败"
rm -f test_simple.yaml test_simple.yaml.parsed
if [ $NEED_UNINSTALL -eq 1 ]; then
dnf remove -y libyaml-devel
fi
exit 1
fi
LOG_INFO "步骤8: 清理临时文件"
rm -f test_simple.yaml test_simple.yaml.parsed
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "步骤9: 卸载libyaml-devel软件包"
dnf remove -y libyaml-devel
CHECK_RESULT $? 0 0 "卸载libyaml-devel失败"
fi
LOG_INFO "测试完成: Test parsing a simple YAML document"
}
main "$@"

View File

@@ -1,110 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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-05
# @License : Mulan PSL v2
# @Desc : 测试lodash.round函数对数字进行四舍五入的基本功能。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="nodejs-lodash-round"
TEST_SCRIPT="test_lodash_round.js"
LOG_INFO "步骤1: 检查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 "步骤2: 检查当前环境是否已安装$PACKAGE_NAME"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "$PACKAGE_NAME已安装,测试完成后保持安装状态"
NEED_CLEANUP=0
else
LOG_INFO "$PACKAGE_NAME未安装,将作为测试步骤安装"
NEED_CLEANUP=1
fi
if [ $NEED_CLEANUP -eq 1 ]; then
LOG_INFO "步骤3: 安装$PACKAGE_NAME软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装$PACKAGE_NAME失败"
fi
LOG_INFO "步骤4: 创建Node.js测试脚本"
cat > $TEST_SCRIPT << "EOF"
const _ = require("lodash.round");
console.log("测试lodash.round函数基本功能:");
console.log("=============================");
const testCases = [
{ input: 4.006, expected: 4 },
{ input: 4.006, precision: 2, expected: 4.01 },
{ input: 4.016, precision: 2, expected: 4.02 },
{ input: 4.1, expected: 4 },
{ input: 4.9, expected: 5 },
{ input: 4.5, expected: 5 },
{ input: 4.4, expected: 4 },
{ input: -4.006, expected: -4 },
{ input: -4.006, precision: 2, expected: -4.01 },
{ input: -4.5, expected: -4 }
];
let allPassed = true;
testCases.forEach((testCase, index) => {
const result = _.round(testCase.input, testCase.precision);
const passed = result === testCase.expected;
if (!passed) {
allPassed = false;
console.log(`测试${index + 1}失败: round(${testCase.input}, ${testCase.precision || 0}) = ${result}, 期望: ${testCase.expected}`);
}
});
if (allPassed) {
console.log("所有测试用例通过!");
process.exit(0);
} else {
console.log("部分测试用例失败!");
process.exit(1);
}
EOF
LOG_INFO "步骤5: 执行Node.js测试脚本"
node $TEST_SCRIPT
CHECK_RESULT $? 0 0 "lodash.round函数基本功能测试失败"
LOG_INFO "步骤6: 清理测试脚本文件"
rm -f $TEST_SCRIPT
if [ $NEED_CLEANUP -eq 1 ]; 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 "测试完成"
}
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-03-05
# @License : Mulan PSL v2
# @Desc : 测试lodash.round函数处理边界值如0、负数、NaN的行为。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="nodejs"
TEST_PACKAGE="nodejs-lodash-round_function_edge"
# 步骤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}已安装,标记为保持安装状态"
KEEP_INSTALLED=true
else
LOG_INFO "检测到${PACKAGE_NAME}未安装,标记为需要清理"
KEEP_INSTALLED=false
fi
# 步骤3如果未安装则安装软件包
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 步骤4验证node命令是否可用
LOG_INFO "步骤4验证node命令是否可用"
node --version &>/dev/null
CHECK_RESULT $? 0 0 "node命令不可用"
# 步骤5创建测试脚本文件
LOG_INFO "步骤5创建测试脚本文件"
cat > /tmp/test_lodash_round.js << "EOF"
const _ = require("lodash");
console.log("测试lodash.round函数处理边界值");
// 测试1处理0
const result1 = _.round(0, 2);
console.log(`_.round(0, 2) = ${result1}`);
if (result1 !== 0) {
console.error("失败_.round(0, 2) 应返回 0");
process.exit(1);
}
// 测试2处理负数
const result2 = _.round(-3.456, 2);
console.log(`_.round(-3.456, 2) = ${result2}`);
if (result2 !== -3.46) {
console.error("失败_.round(-3.456, 2) 应返回 -3.46");
process.exit(1);
}
// 测试3处理NaN
const result3 = _.round(NaN, 2);
console.log(`_.round(NaN, 2) = ${result3}`);
if (!isNaN(result3)) {
console.error("失败_.round(NaN, 2) 应返回 NaN");
process.exit(1);
}
// 测试4处理Infinity
const result4 = _.round(Infinity, 2);
console.log(`_.round(Infinity, 2) = ${result4}`);
if (result4 !== Infinity) {
console.error("失败_.round(Infinity, 2) 应返回 Infinity");
process.exit(1);
}
// 测试5处理-Infinity
const result5 = _.round(-Infinity, 2);
console.log(`_.round(-Infinity, 2) = ${result5}`);
if (result5 !== -Infinity) {
console.error("失败_.round(-Infinity, 2) 应返回 -Infinity");
process.exit(1);
}
console.log("所有边界值测试通过");
EOF
# 步骤6执行测试脚本
LOG_INFO "步骤6执行测试脚本"
node /tmp/test_lodash_round.js
CHECK_RESULT $? 0 0 "lodash.round函数边界值测试失败"
# 步骤7清理测试文件
LOG_INFO "步骤7清理测试文件"
rm -f /tmp/test_lodash_round.js
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 步骤8环境恢复
LOG_INFO "步骤8环境恢复"
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
else
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

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-03-05
# @License : Mulan PSL v2
# @Desc : 测试lodash.round函数按指定精度小数位进行四舍五入。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "1. 检查系统中是否已安装nodejs"
if ! dnf list installed nodejs &>/dev/null; then
LOG_INFO "nodejs未安装将在测试过程中安装"
INSTALL_NODEJS=1
else
LOG_INFO "nodejs已安装"
INSTALL_NODEJS=0
fi
LOG_INFO "2. 检查yum源中是否有nodejs软件包"
if ! dnf list available nodejs &>/dev/null; then
LOG_ERROR "yum源中没有nodejs软件包"
exit 255
fi
LOG_INFO "3. 创建测试脚本test_lodash_round.js"
cat > test_lodash_round.js << "EOF"
const _ = require("lodash");
console.log("测试lodash.round函数");
// 测试用例1正常四舍五入
const result1 = _.round(4.006, 2);
console.log("_.round(4.006, 2) = " + result1);
if (result1 !== 4.01) {
console.error("测试失败: 预期4.01,实际" + result1);
process.exit(1);
}
// 测试用例2负数的四舍五入
const result2 = _.round(-4.006, 2);
console.log("_.round(-4.006, 2) = " + result2);
if (result2 !== -4.01) {
console.error("测试失败: 预期-4.01,实际" + result2);
process.exit(1);
}
// 测试用例3精度为0
const result3 = _.round(4.5, 0);
console.log("_.round(4.5, 0) = " + result3);
if (result3 !== 5) {
console.error("测试失败: 预期5实际" + result3);
process.exit(1);
}
// 测试用例4精度为负数
const result4 = _.round(4060, -2);
console.log("_.round(4060, -2) = " + result4);
if (result4 !== 4100) {
console.error("测试失败: 预期4100实际" + result4);
process.exit(1);
}
console.log("所有测试用例通过");
EOF
LOG_INFO "4. 如果未安装nodejs则安装nodejs"
if [ $INSTALL_NODEJS -eq 1 ]; then
LOG_INFO "安装nodejs"
dnf install -y nodejs
CHECK_RESULT $? 0 0 "安装nodejs失败"
fi
LOG_INFO "5. 检查是否安装lodash"
if ! npm list lodash &>/dev/null; then
LOG_INFO "安装lodash"
npm install lodash
CHECK_RESULT $? 0 0 "安装lodash失败"
fi
LOG_INFO "6. 执行测试脚本"
node test_lodash_round.js
CHECK_RESULT $? 0 0 "lodash.round函数测试失败"
LOG_INFO "7. 清理测试文件"
rm -f test_lodash_round.js
LOG_INFO "8. 如果测试前未安装nodejs则卸载nodejs"
if [ $INSTALL_NODEJS -eq 1 ]; then
LOG_INFO "卸载nodejs"
dnf remove -y nodejs
CHECK_RESULT $? 0 0 "卸载nodejs失败"
fi
LOG_INFO "9. 测试完成"
}
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-03-05
# @License : Mulan PSL v2
# @Desc : 测试在Node.js环境中能否成功引入lodash.round模块。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装nodejs
LOG_INFO "检查是否已安装nodejs"
rpm -q nodejs > /dev/null 2>&1
nodejs_installed=$?
# 判断是否已安装lodash.round
LOG_INFO "检查是否已安装lodash.round"
npm list -g lodash.round > /dev/null 2>&1
lodash_round_installed=$?
# 检查yum源中是否有nodejs软件包
LOG_INFO "检查yum源中是否有nodejs软件包"
dnf list available nodejs > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有nodejs软件包"
# 安装nodejs如果未安装
if [ $nodejs_installed -ne 0 ]; then
LOG_INFO "安装nodejs"
dnf install -y nodejs
CHECK_RESULT $? 0 0 "安装nodejs失败"
fi
# 检查npm命令是否可用
LOG_INFO "检查npm命令是否可用"
npm --version > /dev/null 2>&1
CHECK_RESULT $? 0 255 "npm命令不存在或不支持"
# 安装lodash.round如果未安装
if [ $lodash_round_installed -ne 0 ]; then
LOG_INFO "安装lodash.round模块"
npm install -g lodash.round
CHECK_RESULT $? 0 0 "安装lodash.round模块失败"
fi
# 测试在Node.js环境中能否成功引入lodash.round模块
LOG_INFO "测试在Node.js环境中能否成功引入lodash.round模块"
cat > /tmp/test_lodash_round.js << "EOF"
try {
const round = require("lodash.round");
console.log("lodash.round模块引入成功");
console.log("测试round(4.006, 2) =", round(4.006, 2));
console.log("测试round(4.006) =", round(4.006));
process.exit(0);
} catch (error) {
console.error("lodash.round模块引入失败:", error.message);
process.exit(1);
}
EOF
node /tmp/test_lodash_round.js
CHECK_RESULT $? 0 0 "Node.js环境中引入lodash.round模块失败"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f /tmp/test_lodash_round.js
# 环境恢复如果之前未安装lodash.round则卸载
if [ $lodash_round_installed -ne 0 ]; then
LOG_INFO "卸载lodash.round模块"
npm uninstall -g lodash.round
CHECK_RESULT $? 0 0 "卸载lodash.round模块失败"
fi
# 环境恢复如果之前未安装nodejs则卸载
if [ $nodejs_installed -ne 0 ]; then
LOG_INFO "卸载nodejs"
dnf remove -y nodejs
CHECK_RESULT $? 0 0 "卸载nodejs失败"
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-11-30
# @License : Mulan PSL v2
# @Desc : Test loading entry points
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test loading entry points"
# 检查是否已安装python3
LOG_INFO "检查是否已安装python3"
if ! command -v python3 &> /dev/null; then
LOG_INFO "未检测到python3准备安装"
LOG_INFO "检查yum源中是否存在python3软件包"
if ! dnf list available python3 &> /dev/null; then
LOG_ERROR "yum源中未找到python3软件包"
exit 255
fi
LOG_INFO "安装python3"
dnf install -y python3
CHECK_RESULT $? 0 0 "安装python3失败"
INSTALLED=true
else
LOG_INFO "检测到python3已安装"
INSTALLED=false
fi
# 测试加载entry points功能
LOG_INFO "测试加载entry points功能"
if ! python3 -c "import pkg_resources; print(pkg_resources.get_entry_map("pip"))" &> /dev/null; then
LOG_ERROR "加载entry points失败"
CHECK_RESULT $? 0 1 "加载entry points失败" # 预期命令执行失败
else
CHECK_RESULT $? 0 0 "加载entry points成功"
fi
# 清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载python3以恢复环境"
dnf remove -y python3
CHECK_RESULT $? 0 0 "卸载python3失败"
fi
LOG_INFO "测试完成Test loading entry points"
}
main "$@"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-07
# @License : Mulan PSL v2
# @Desc : Test parsing entry points
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在python3-entrypoints软件包
LOG_INFO "检查yum源中是否存在python3-entrypoints软件包"
dnf list available python3-entrypoints >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在python3-entrypoints软件包"
exit 255
fi
# 检查是否已安装python3-entrypoints
LOG_INFO "检查是否已安装python3-entrypoints"
rpm -q python3-entrypoints >/dev/null 2>&1
installed=$?
# 如果未安装,则安装软件包
if [ $installed -ne 0 ]; then
LOG_INFO "安装python3-entrypoints软件包"
dnf install -y python3-entrypoints
CHECK_RESULT $? 0 0 "安装python3-entrypoints失败"
fi
# 测试解析entry points功能
LOG_INFO "测试解析entry points功能"
python3 -c "from entrypoints import get_entry_map; print(get_entry_map())" >/dev/null 2>&1
CHECK_RESULT $? 0 0 "解析entry points失败"
# 如果最初未安装,则在测试完成后卸载软件包
if [ $installed -ne 0 ]; then
LOG_INFO "卸载python3-entrypoints软件包"
dnf remove -y python3-entrypoints
CHECK_RESULT $? 0 0 "卸载python3-entrypoints失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

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

View File

@@ -1,101 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-12
# @License : Mulan PSL v2
# @Desc : Test the installation of the qt5-qtdatavis3d-examples package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断qt5-qtdatavis3d-examples是否已安装
LOG_INFO "检查qt5-qtdatavis3d-examples是否已安装"
rpm -q qt5-qtdatavis3d-examples > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "qt5-qtdatavis3d-examples已安装标记为已安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "qt5-qtdatavis3d-examples未安装标记为未安装状态"
INSTALLED_FLAG=0
fi
# 检查yum源中是否存在qt5-qtdatavis3d-examples包
LOG_INFO "检查yum源中是否存在qt5-qtdatavis3d-examples包"
dnf list available qt5-qtdatavis3d-examples > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到qt5-qtdatavis3d-examples包"
exit 255
fi
# 如果未安装则安装qt5-qtdatavis3d-examples
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "开始安装qt5-qtdatavis3d-examples包"
dnf install -y qt5-qtdatavis3d-examples
CHECK_RESULT $? 0 0 "安装qt5-qtdatavis3d-examples失败"
LOG_INFO "qt5-qtdatavis3d-examples安装成功"
fi
# 验证qt5-qtdatavis3d-examples安装
LOG_INFO "验证qt5-qtdatavis3d-examples安装"
rpm -q qt5-qtdatavis3d-examples > /dev/null 2>&1
CHECK_RESULT $? 0 0 "qt5-qtdatavis3d-examples未正确安装"
# 查找并运行一个示例程序
LOG_INFO "查找qt5-qtdatavis3d-examples示例程序"
EXAMPLE_PATH=$(find /usr -name "*qtdatavis3d*example*" -type f -executable | head -1)
if [ -z "${EXAMPLE_PATH}" ]; then
LOG_ERROR "未找到qt5-qtdatavis3d-examples示例程序"
# 如果之前未安装,则卸载包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "清理环境卸载qt5-qtdatavis3d-examples包"
dnf remove -y qt5-qtdatavis3d-examples
fi
exit 255
fi
LOG_INFO "找到示例程序:${EXAMPLE_PATH}"
# 检查示例程序是否支持--help参数
LOG_INFO "检查示例程序是否支持--help参数"
${EXAMPLE_PATH} --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "示例程序不支持--help参数"
# 如果之前未安装,则卸载包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "清理环境卸载qt5-qtdatavis3d-examples包"
dnf remove -y qt5-qtdatavis3d-examples
fi
exit 255
fi
# 运行示例程序(带--help参数不启动图形界面
LOG_INFO "运行示例程序(带--help参数"
${EXAMPLE_PATH} --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "运行qt5-qtdatavis3d-examples示例程序失败"
LOG_INFO "qt5-qtdatavis3d-examples功能测试通过"
# 环境恢复:如果之前未安装,则卸载包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "清理环境卸载qt5-qtdatavis3d-examples包"
dnf remove -y qt5-qtdatavis3d-examples
CHECK_RESULT $? 0 0 "卸载qt5-qtdatavis3d-examples失败"
LOG_INFO "环境已恢复"
else
LOG_INFO "环境保持安装状态"
fi
}
main "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-04
# @License : Mulan PSL v2
# @Desc : Test parsing functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试解析功能"
# 检查是否已安装rubygem-expression_parser-doc
LOG_INFO "检查是否已安装rubygem-expression_parser-doc"
if dnf list installed rubygem-expression_parser-doc &>/dev/null; then
LOG_INFO "rubygem-expression_parser-doc已安装"
installed=true
else
LOG_INFO "rubygem-expression_parser-doc未安装"
installed=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有rubygem-expression_parser-doc"
if ! dnf list available rubygem-expression_parser-doc &>/dev/null; then
LOG_ERROR "yum源中未找到rubygem-expression_parser-doc"
exit 255
fi
# 如果未安装,则安装
if [ "$installed" = false ]; then
LOG_INFO "安装rubygem-expression_parser-doc"
dnf install -y rubygem-expression_parser-doc
CHECK_RESULT $? 0 0 "安装rubygem-expression_parser-doc失败"
fi
# 测试解析功能
LOG_INFO "测试解析功能"
parse_output=$(expression_parser --parse "test_expression")
CHECK_RESULT $? 0 0 "解析功能测试失败"
# 清理环境:如果最初未安装,则卸载
if [ "$installed" = false ]; then
LOG_INFO "卸载rubygem-expression_parser-doc"
dnf remove -y rubygem-expression_parser-doc
CHECK_RESULT $? 0 0 "卸载rubygem-expression_parser-doc失败"
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-02-21
# @License : Mulan PSL v2
# @Desc : 测试基本PN文件转换为PDF功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试基本PN文件转换为PDF功能"
# 检查yum源中是否存在texlive-petri-nets软件包
LOG_INFO "步骤1检查yum源中是否存在texlive-petri-nets软件包"
dnf list texlive-petri-nets 2>/dev/null | grep -q texlive-petri-nets
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-petri-nets软件包"
exit 255
fi
# 检查系统是否已安装texlive-petri-nets
LOG_INFO "步骤2检查系统是否已安装texlive-petri-nets"
rpm -q texlive-petri-nets >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-petri-nets已安装脚本结束时将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "texlive-petri-nets未安装将在测试过程中安装"
INSTALLED_BEFORE=0
fi
# 如果未安装,则安装软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤3安装texlive-petri-nets软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装texlive-petri-nets失败"
fi
# 创建测试用的基本PN文件
LOG_INFO "步骤4创建测试用的基本PN文件"
cat > test_petri_net.tex << "EOF"
\documentclass{article}
\usepackage{petri}
\begin{document}
\begin{petrinet}
\place{p1}{at (0,0)}{$p_1$}
\place{p2}{at (2,0)}{$p_2$}
\trans{t1}{at (1,1)}{$t_1$}
\arc{p1}{t1}
\arc{t1}{p2}
\end{petrinet}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试PN文件失败"
# 尝试将PN文件转换为PDF
LOG_INFO "步骤5将PN文件转换为PDF"
pdflatex test_petri_net.tex >/dev/null 2>&1
CHECK_RESULT $? 0 0 "PN文件转换为PDF失败"
# 检查是否成功生成PDF文件
LOG_INFO "步骤6检查是否成功生成PDF文件"
if [ -f test_petri_net.pdf ]; then
LOG_INFO "成功生成PDF文件test_petri_net.pdf"
CHECK_RESULT 0 0 0 "PDF文件生成失败"
else
LOG_ERROR "未找到生成的PDF文件"
CHECK_RESULT 1 0 0 "PDF文件生成失败"
fi
# 清理生成的中间文件
LOG_INFO "步骤7清理生成的中间文件"
rm -f test_petri_net.aux test_petri_net.log test_petri_net.tex test_petri_net.pdf
# 如果之前未安装,则在测试结束后卸载软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤8卸载texlive-petri-nets软件包"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载texlive-petri-nets失败"
fi
LOG_INFO "测试完成基本PN文件转换为PDF功能测试通过"
}
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 : 2026-02-21
# @License : Mulan PSL v2
# @Desc : 测试主命令显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试主命令显示帮助信息"
LOG_INFO "步骤1检查当前环境中是否已安装texlive-petri-nets软件包"
if dnf list installed texlive-petri-nets &> /dev/null; then
LOG_INFO "texlive-petri-nets软件包已安装将保持安装状态"
already_installed=1
else
LOG_INFO "texlive-petri-nets软件包未安装将在后续步骤中安装"
already_installed=0
fi
LOG_INFO "步骤2检查yum源中是否有texlive-petri-nets软件包"
if ! dnf search texlive-petri-nets | grep -q "texlive-petri-nets"; then
LOG_ERROR "yum源中未找到texlive-petri-nets软件包"
exit 255
fi
LOG_INFO "步骤3安装texlive-petri-nets软件包"
if [ $already_installed -eq 0 ]; then
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装texlive-petri-nets软件包失败"
fi
LOG_INFO "步骤4测试主命令显示帮助信息"
LOG_INFO "执行命令texlive-petri-nets --help"
texlive-petri-nets --help
CHECK_RESULT $? 0 0 "texlive-petri-nets --help命令执行失败"
LOG_INFO "步骤5检查帮助信息中是否包含"usage"或"help"关键字"
texlive-petri-nets --help | grep -q -E "usage|help"
CHECK_RESULT $? 0 0 "帮助信息中未找到"usage"或"help"关键字"
LOG_INFO "步骤6清理环境恢复到之前的状态"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载texlive-petri-nets软件包"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载texlive-petri-nets软件包失败"
else
LOG_INFO "保持texlive-petri-nets软件包安装状态"
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-02-21
# @License : Mulan PSL v2
# @Desc : 测试软件包是否成功安装并能通过包管理器查询到
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 设置环境变量
SCRIPT_NAME="test_texlive-petri-nets_function_install"
PACKAGE_NAME="texlive-petri-nets"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在软件包 $PACKAGE_NAME"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在软件包 $PACKAGE_NAME"
exit 255
fi
# 检查当前是否已安装
LOG_INFO "检查软件包 $PACKAGE_NAME 是否已安装"
dnf list installed $PACKAGE_NAME > /dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试完成后保持安装状态"
NEED_UNINSTALL=0
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将进行安装测试"
NEED_UNINSTALL=1
fi
# 如果未安装,则安装软件包
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "开始安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
fi
# 测试通过包管理器查询软件包
LOG_INFO "测试通过包管理器查询软件包 $PACKAGE_NAME"
dnf list installed $PACKAGE_NAME
CHECK_RESULT $? 0 0 "查询软件包 $PACKAGE_NAME 失败"
# 测试软件包基本信息
LOG_INFO "测试查询软件包 $PACKAGE_NAME 详细信息"
dnf info $PACKAGE_NAME
CHECK_RESULT $? 0 0 "查询软件包 $PACKAGE_NAME 详细信息失败"
# 环境恢复
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 "测试脚本 $SCRIPT_NAME 执行完成"
}
main "$@"

View File

@@ -1,110 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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 : 测试软件包卸载后相关命令是否失效
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试软件包卸载后相关命令是否失效"
LOG_INFO "检查环境中是否已安装texlive-petri-nets软件包"
dnf list installed texlive-petri-nets > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境中已安装texlive-petri-nets软件包"
INSTALLED_FLAG=1
else
LOG_INFO "环境中未安装texlive-petri-nets软件包"
INSTALLED_FLAG=0
fi
LOG_INFO "检查yum源中是否存在texlive-petri-nets软件包"
dnf list available texlive-petri-nets > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到texlive-petri-nets软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-petri-nets软件包"
exit 255
fi
if [ $INSTALLED_FLAG -eq 0 ]; then
LOG_INFO "开始安装texlive-petri-nets软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装texlive-petri-nets软件包失败"
LOG_INFO "texlive-petri-nets软件包安装成功"
fi
LOG_INFO "测试texlive-petri-nets软件包相关命令是否可用"
LOG_INFO "执行测试命令texlua --help"
texlua --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "texlua命令不可用"
LOG_INFO "执行测试命令luatex --help"
luatex --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "luatex命令不可用"
LOG_INFO "执行测试命令context --help"
context --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "context命令不可用"
LOG_INFO "卸载texlive-petri-nets软件包"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载texlive-petri-nets软件包失败"
LOG_INFO "texlive-petri-nets软件包卸载成功"
LOG_INFO "验证软件包卸载后相关命令是否失效"
LOG_INFO "验证texlua命令是否失效"
texlua --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "texlua命令在卸载后仍然可用"
CHECK_RESULT 1 0 0 "texlua命令在卸载后应该失效"
else
LOG_INFO "texlua命令已失效"
CHECK_RESULT 0 0 0 "texlua命令已失效"
fi
LOG_INFO "验证luatex命令是否失效"
luatex --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "luatex命令在卸载后仍然可用"
CHECK_RESULT 1 0 0 "luatex命令在卸载后应该失效"
else
LOG_INFO "luatex命令已失效"
CHECK_RESULT 0 0 0 "luatex命令已失效"
fi
LOG_INFO "验证context命令是否失效"
context --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "context命令在卸载后仍然可用"
CHECK_RESULT 1 0 0 "context命令在卸载后应该失效"
else
LOG_INFO "context命令已失效"
CHECK_RESULT 0 0 0 "context命令已失效"
fi
if [ $INSTALLED_FLAG -eq 1 ]; then
LOG_INFO "恢复环境重新安装texlive-petri-nets软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "重新安装texlive-petri-nets软件包失败"
LOG_INFO "环境恢复完成"
else
LOG_INFO "环境清理完成,保持未安装状态"
fi
LOG_INFO "测试软件包卸载后相关命令是否失效的测试完成"
}
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-21
# @License : Mulan PSL v2
# @Desc : 测试显示软件包或工具版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:显示软件包或工具版本信息"
LOG_INFO "步骤1检查环境中是否已安装texlive-petri-nets"
if dnf list installed texlive-petri-nets &>/dev/null; then
LOG_INFO "texlive-petri-nets已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "texlive-petri-nets未安装将进行安装测试"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否有texlive-petri-nets软件包"
if ! dnf list available texlive-petri-nets &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-petri-nets软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-petri-nets软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装texlive-petri-nets失败"
fi
LOG_INFO "步骤4测试显示软件包或工具版本信息"
if command -v texlive-petri-nets &>/dev/null; then
texlive-petri-nets --version
CHECK_RESULT $? 0 0 "执行texlive-petri-nets --version失败"
else
LOG_INFO "texlive-petri-nets命令不存在尝试其他版本信息显示方式"
rpm -q texlive-petri-nets --queryformat="%{VERSION}-%{RELEASE}\n"
CHECK_RESULT $? 0 0 "获取texlive-petri-nets版本信息失败"
fi
LOG_INFO "步骤5清理环境恢复原始状态"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载测试安装的texlive-petri-nets软件包"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载texlive-petri-nets失败"
else
LOG_INFO "环境已安装texlive-petri-nets保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,115 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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 : 测试批处理文件中的命令
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试批处理文件中的命令"
LOG_INFO "检查texlive-petri-nets软件包是否已安装"
if rpm -q texlive-petri-nets &> /dev/null; then
LOG_INFO "texlive-petri-nets已安装标记为保持安装状态"
KEEP_INSTALLED=1
else
LOG_INFO "texlive-petri-nets未安装标记为测试安装"
KEEP_INSTALLED=0
fi
LOG_INFO "检查yum源中是否有texlive-petri-nets软件包"
if ! dnf list available texlive-petri-nets &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-petri-nets软件包"
exit 255
fi
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "安装texlive-petri-nets软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装texlive-petri-nets失败"
fi
LOG_INFO "检查pn2pdf命令是否存在"
if ! command -v pn2pdf &> /dev/null; then
LOG_ERROR "pn2pdf命令不存在"
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载texlive-petri-nets"
dnf remove -y texlive-petri-nets
fi
exit 255
fi
LOG_INFO "测试pn2pdf命令的基本参数"
LOG_INFO "检查--help参数"
pn2pdf --help
CHECK_RESULT $? 0 0 "pn2pdf --help执行失败"
LOG_INFO "检查不支持的参数"
if pn2pdf --invalid-param &> /dev/null; then
LOG_ERROR "pn2pdf不支持--invalid-param参数但未报错"
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载texlive-petri-nets"
dnf remove -y texlive-petri-nets
fi
exit 255
else
LOG_INFO "pn2pdf正确拒绝了不支持的参数"
fi
LOG_INFO "创建测试用的Petri网文件"
TEST_FILE="test_net.pn"
cat > $TEST_FILE << "EOF"
% 简单的Petri网示例
\documentclass{standalone}
\usepackage{petri}
\begin{document}
\begin{tikzpicture}
\node[place] (p1) {};
\node[transition] (t1) [right of=p1] {}
edge [pre] (p1);
\end{tikzpicture}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试文件失败"
LOG_INFO "使用pn2pdf转换Petri网文件"
pn2pdf $TEST_FILE
CHECK_RESULT $? 0 0 "pn2pdf转换失败"
LOG_INFO "检查生成的PDF文件"
if [ -f "${TEST_FILE%.pn}.pdf" ]; then
LOG_INFO "PDF文件生成成功"
else
LOG_ERROR "PDF文件未生成"
CHECK_RESULT 1 0 0 "PDF文件生成检查失败"
fi
LOG_INFO "清理测试文件"
rm -f $TEST_FILE ${TEST_FILE%.pn}.pdf
if [ $KEEP_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载texlive-petri-nets"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载texlive-petri-nets失败"
else
LOG_INFO "保持texlive-petri-nets安装状态"
fi
LOG_INFO "测试批处理文件中的命令完成"
}
main "$@"

View File

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

View File

@@ -1,105 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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 : 测试处理指定的FIGUR文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 环境初始化检查
LOG_INFO "开始测试处理指定的FIGUR文件"
# 检查软件包是否已在系统中安装
LOG_INFO "检查texlive-petri-nets软件包是否已安装"
if dnf list installed texlive-petri-nets 2>/dev/null | grep -q texlive-petri-nets; then
LOG_INFO "texlive-petri-nets软件包已安装测试后将保持安装状态"
PACKAGE_INSTALLED=true
else
LOG_INFO "texlive-petri-nets软件包未安装将在测试中安装"
PACKAGE_INSTALLED=false
fi
# 检查yum源中是否存在texlive-petri-nets软件包
LOG_INFO "检查yum源中是否存在texlive-petri-nets软件包"
if ! dnf list available texlive-petri-nets 2>/dev/null | grep -q texlive-petri-nets; then
LOG_ERROR "yum源中不存在texlive-petri-nets软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$PACKAGE_INSTALLED" = false ]; then
LOG_INFO "安装texlive-petri-nets软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装texlive-petri-nets软件包失败"
fi
# 检查pn2pdf命令是否可用
LOG_INFO "检查pn2pdf命令是否可用"
if ! command -v pn2pdf &> /dev/null; then
LOG_ERROR "pn2pdf命令不存在"
exit 255
fi
# 创建测试用的FIGUR文件
LOG_INFO "创建测试用的FIGUR文件"
TEST_FIGURE="test_figure.fig"
cat > "$TEST_FIGURE" << EOF
#FIG 3.2
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
EOF
CHECK_RESULT $? 0 0 "创建测试FIGUR文件失败"
# 测试pn2pdf命令处理指定的FIGUR文件
LOG_INFO "测试pn2pdf命令处理指定的FIGUR文件"
pn2pdf "$TEST_FIGURE" output.pdf
CHECK_RESULT $? 0 0 "pn2pdf处理FIGUR文件失败"
# 检查生成的PDF文件是否存在
LOG_INFO "检查生成的PDF文件是否存在"
if [ -f "output.pdf" ]; then
LOG_INFO "成功生成PDF文件output.pdf"
else
LOG_ERROR "未生成PDF文件"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f "$TEST_FIGURE" output.pdf
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 环境恢复:如果测试前未安装软件包,则卸载
if [ "$PACKAGE_INSTALLED" = false ]; then
LOG_INFO "卸载texlive-petri-nets软件包"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载texlive-petri-nets软件包失败"
else
LOG_INFO "保持texlive-petri-nets软件包安装状态"
fi
LOG_INFO "测试完成处理指定的FIGUR文件"
}
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-02-21
# @License : Mulan PSL v2
# @Desc : 测试显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试显示帮助信息"
LOG_INFO "步骤1: 检查texlive-petri-nets软件包是否在yum源中"
dnf list available texlive-petri-nets 2>/dev/null | grep -q texlive-petri-nets
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-petri-nets软件包"
exit 255
fi
LOG_INFO "步骤2: 检查环境中是否已安装texlive-petri-nets软件包"
rpm -q texlive-petri-nets >/dev/null 2>&1
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "环境中已安装texlive-petri-nets将保持安装状态"
INSTALL_NEEDED=0
else
LOG_INFO "环境中未安装texlive-petri-nets将进行安装"
INSTALL_NEEDED=1
LOG_INFO "步骤3: 安装texlive-petri-nets软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装texlive-petri-nets失败"
fi
LOG_INFO "步骤4: 检查pn2pdf_h命令是否存在"
command -v pn2pdf_h >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "pn2pdf_h命令不存在"
exit 255
fi
LOG_INFO "步骤5: 测试pn2pdf_h命令显示帮助信息"
pn2pdf_h --help >/dev/null 2>&1
CHECK_RESULT $? 0 0 "pn2pdf_h命令不支持--help参数或执行失败"
LOG_INFO "步骤6: 测试pn2pdf_h命令显示帮助信息使用-h参数"
pn2pdf_h -h >/dev/null 2>&1
CHECK_RESULT $? 0 0 "pn2pdf_h命令不支持-h参数或执行失败"
LOG_INFO "步骤7: 清理环境"
if [ $INSTALL_NEEDED -eq 1 ]; then
LOG_INFO "卸载在测试过程中安装的texlive-petri-nets软件包"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载texlive-petri-nets失败"
else
LOG_INFO "保持texlive-petri-nets软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,107 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-21
# @License : Mulan PSL v2
# @Desc : 测试处理时保留临时文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本开始
LOG_INFO "开始测试:处理时保留临时文件"
# 步骤1检查环境中是否已安装 texlive-petri-nets 软件包
LOG_INFO "步骤1检查 texlive-petri-nets 是否已安装"
if dnf list installed texlive-petri-nets &>/dev/null; then
LOG_INFO "texlive-petri-nets 已安装,脚本结束后将保持安装状态"
INSTALLED_ALREADY=1
else
LOG_INFO "texlive-petri-nets 未安装,将在测试过程中安装"
INSTALLED_ALREADY=0
fi
# 步骤2检查 yum 源中是否有 texlive-petri-nets 软件包
LOG_INFO "步骤2检查 yum 源中是否有 texlive-petri-nets 软件包"
if ! dnf list available texlive-petri-nets &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-petri-nets 软件包"
exit 255
fi
# 步骤3如果未安装则安装 texlive-petri-nets 软件包
if [ $INSTALLED_ALREADY -eq 0 ]; then
LOG_INFO "步骤3安装 texlive-petri-nets 软件包"
dnf install -y texlive-petri-nets
CHECK_RESULT $? 0 0 "安装 texlive-petri-nets 失败"
fi
# 步骤4检查 pn2pdf 命令是否可用
LOG_INFO "步骤4检查 pn2pdf 命令是否可用"
if ! command -v pn2pdf &>/dev/null; then
LOG_ERROR "pn2pdf 命令不存在"
exit 255
fi
# 步骤5测试 pn2pdf 命令的 -k 参数
LOG_INFO "步骤5测试 pn2pdf 命令的 -k 参数"
# 首先检查 -k 参数是否被支持
pn2pdf --help | grep -q "\-k"
CHECK_RESULT $? 0 0 "pn2pdf 命令不支持 -k 参数"
# 步骤6创建一个临时的 .pn 文件用于测试
LOG_INFO "步骤6创建临时 .pn 文件用于测试"
TEST_PN_FILE=$(mktemp /tmp/test_petri_XXXXXX.pn)
cat > "$TEST_PN_FILE" << "EOF"
% 一个简单的 Petri 网示例
\begin{tikzpicture}
\node[place] (p1) {};
\node[transition] (t1) [right of=p1] {};
\draw (p1) -- (t1);
\end{tikzpicture}
EOF
CHECK_RESULT $? 0 0 "创建临时 .pn 文件失败"
# 步骤7执行 pn2pdf -k 命令处理临时文件
LOG_INFO "步骤7执行 pn2pdf -k 命令处理临时文件"
pn2pdf -k "$TEST_PN_FILE"
CHECK_RESULT $? 0 0 "pn2pdf -k 命令执行失败"
# 步骤8检查是否保留了临时文件
LOG_INFO "步骤8检查是否保留了临时文件"
# pn2pdf -k 应该保留中间文件,检查是否有 .tex 文件生成
TEX_FILE="${TEST_PN_FILE%.pn}.tex"
if [ -f "$TEX_FILE" ]; then
LOG_INFO "临时 .tex 文件已保留:$TEX_FILE"
else
LOG_ERROR "未找到保留的临时 .tex 文件"
exit 1
fi
# 步骤9清理测试过程中创建的文件
LOG_INFO "步骤9清理测试过程中创建的文件"
rm -f "$TEST_PN_FILE" "$TEX_FILE" "${TEST_PN_FILE%.pn}.pdf" 2>/dev/null
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 步骤10如果测试开始时未安装则卸载 texlive-petri-nets 软件包
if [ $INSTALLED_ALREADY -eq 0 ]; then
LOG_INFO "步骤10卸载 texlive-petri-nets 软件包"
dnf remove -y texlive-petri-nets
CHECK_RESULT $? 0 0 "卸载 texlive-petri-nets 失败"
fi
LOG_INFO "测试完成:处理时保留临时文件"
}
main "$@"

View File

@@ -1,120 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-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 : 测试为指定文件创建测试文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本:测试为指定文件创建测试文件
# 定义软件包名称
PACKAGE_NAME="texlive-petri-nets"
COMMAND_NAME="pn2pdf"
# 步骤1检查yum源中是否存在指定软件包
LOG_INFO "步骤1检查yum源中是否存在软件包 ${PACKAGE_NAME}"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
exit 255
fi
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中存在"
# 步骤2检查当前环境是否已安装指定软件包
LOG_INFO "步骤2检查当前环境是否已安装软件包 ${PACKAGE_NAME}"
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 "安装软件包 ${PACKAGE_NAME} 失败"
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功"
fi
# 步骤4检查命令是否存在
LOG_INFO "步骤4检查命令 ${COMMAND_NAME} 是否存在"
which ${COMMAND_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "命令 ${COMMAND_NAME} 不存在"
LOG_INFO "命令 ${COMMAND_NAME} 存在"
# 步骤5测试命令参数是否支持
LOG_INFO "步骤5测试命令 ${COMMAND_NAME} 参数支持情况"
${COMMAND_NAME} --help &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${COMMAND_NAME} 不支持 --help 参数"
exit 255
fi
LOG_INFO "命令 ${COMMAND_NAME} 支持 --help 参数"
# 步骤6创建测试输入文件
LOG_INFO "步骤6创建测试输入文件"
TEST_INPUT_FILE="test_input.pn"
cat > ${TEST_INPUT_FILE} << "EOF"
% Petri net example
\begin{tikzpicture}
\node[place] (p1) {};
\node[transition] (t1) [right of=p1] {};
\draw (p1) -- (t1);
\end{tikzpicture}
EOF
CHECK_RESULT $? 0 0 "创建测试输入文件失败"
LOG_INFO "测试输入文件 ${TEST_INPUT_FILE} 创建成功"
# 步骤7测试为指定文件创建PDF文件
LOG_INFO "步骤7测试为指定文件创建PDF文件"
${COMMAND_NAME} ${TEST_INPUT_FILE}
CHECK_RESULT $? 0 0 "为指定文件创建PDF文件失败"
LOG_INFO "为指定文件创建PDF文件成功"
# 步骤8验证PDF文件是否创建成功
LOG_INFO "步骤8验证PDF文件是否创建成功"
OUTPUT_PDF_FILE="${TEST_INPUT_FILE%.*}.pdf"
if [ -f "${OUTPUT_PDF_FILE}" ]; then
LOG_INFO "PDF文件 ${OUTPUT_PDF_FILE} 创建成功"
else
LOG_ERROR "PDF文件 ${OUTPUT_PDF_FILE} 未创建"
exit 1
fi
# 步骤9清理测试文件
LOG_INFO "步骤9清理测试文件"
rm -f ${TEST_INPUT_FILE} ${OUTPUT_PDF_FILE}
CHECK_RESULT $? 0 0 "清理测试文件失败"
LOG_INFO "测试文件清理成功"
# 步骤10如果测试前未安装则卸载软件包
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "步骤10卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
LOG_INFO "软件包 ${PACKAGE_NAME} 卸载成功"
else
LOG_INFO "步骤10保持软件包 ${PACKAGE_NAME} 的安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-11-27
# @License : Mulan PSL v2
# @Desc : Verify installation of texlive-cmdtrack-doc
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Verify installation of texlive-cmdtrack-doc"
# 检查是否已安装texlive-cmdtrack-doc
LOG_INFO "检查是否已安装texlive-cmdtrack-doc"
rpm -q texlive-cmdtrack-doc
if [ $? -eq 0 ]; then
LOG_INFO "texlive-cmdtrack-doc已安装测试环境准备就绪"
INSTALLED=true
else
LOG_INFO "texlive-cmdtrack-doc未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-cmdtrack-doc
LOG_INFO "检查yum源中是否存在texlive-cmdtrack-doc"
dnf list available texlive-cmdtrack-doc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在texlive-cmdtrack-doc"
# 安装texlive-cmdtrack-doc
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-cmdtrack-doc"
dnf install -y texlive-cmdtrack-doc > /dev/null 2>&1
CHECK_RESULT $? 0 1 "安装texlive-cmdtrack-doc失败"
fi
# 验证安装是否成功
LOG_INFO "验证texlive-cmdtrack-doc是否安装成功"
rpm -q texlive-cmdtrack-doc
CHECK_RESULT $? 0 1 "验证texlive-cmdtrack-doc安装失败"
# 执行命令测试功能假设命令为texdoc cmdtrack
LOG_INFO "执行命令测试功能texdoc cmdtrack"
texdoc cmdtrack > /dev/null 2>&1
CHECK_RESULT $? 0 255 "texdoc cmdtrack命令执行失败或参数不支持"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-cmdtrack-doc以恢复环境"
dnf remove -y texlive-cmdtrack-doc > /dev/null 2>&1
CHECK_RESULT $? 0 1 "卸载texlive-cmdtrack-doc失败"
fi
LOG_INFO "测试完成Verify installation of texlive-cmdtrack-doc"
}
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-28
# @License : Mulan PSL v2
# @Desc : Check doc for key content
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始执行测试Check doc for key content"
LOG_INFO "步骤1检查texlive-tikz-opm-doc软件包是否在yum源中"
dnf list available texlive-tikz-opm-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "软件包texlive-tikz-opm-doc不在yum源中"
exit 255
fi
LOG_INFO "步骤2检查环境是否已安装texlive-tikz-opm-doc"
rpm -q texlive-tikz-opm-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "软件包未安装,将作为测试步骤安装"
INSTALLED=0
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装texlive-tikz-opm-doc软件包"
dnf install -y texlive-tikz-opm-doc
CHECK_RESULT $? 0 0 "安装texlive-tikz-opm-doc失败"
fi
LOG_INFO "步骤4检查文档目录是否存在"
DOC_PATH=$(rpm -ql texlive-tikz-opm-doc | head -1)
if [ -z "$DOC_PATH" ]; then
LOG_ERROR "无法找到texlive-tikz-opm-doc的文档路径"
exit 1
fi
LOG_INFO "步骤5检查文档中是否包含关键内容"
grep -r "tikz" "$DOC_PATH" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "文档中未找到关键内容"tikz""
LOG_INFO "步骤6清理环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-tikz-opm-doc软件包"
dnf remove -y texlive-tikz-opm-doc
CHECK_RESULT $? 0 0 "卸载texlive-tikz-opm-doc失败"
else
LOG_INFO "环境已安装,保持安装状态"
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-28
# @License : Mulan PSL v2
# @Desc : Query package info via tlmgr
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查tlmgr命令是否存在
LOG_INFO "检查tlmgr命令是否已安装"
if command -v tlmgr > /dev/null 2>&1; then
LOG_INFO "tlmgr命令已存在无需安装"
INSTALLED=true
else
LOG_INFO "tlmgr命令未安装将进行安装"
INSTALLED=false
fi
# 如果未安装,则检查软件包是否存在并安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "检查yum源中是否存在texlive-tikz-opm-doc软件包"
dnf list available texlive-tikz-opm-doc > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在texlive-tikz-opm-doc软件包"
LOG_INFO "安装texlive-tikz-opm-doc软件包"
dnf install -y texlive-tikz-opm-doc
CHECK_RESULT $? 0 0 "安装texlive-tikz-opm-doc失败"
fi
# 测试tlmgr info功能
LOG_INFO "测试tlmgr info命令查询包信息"
tlmgr info texlive-tikz-opm-doc
CHECK_RESULT $? 0 0 "tlmgr info命令执行失败"
# 测试tlmgr info命令的特定参数
LOG_INFO "测试tlmgr info --list命令"
tlmgr info --list texlive-tikz-opm-doc
CHECK_RESULT $? 0 255 "tlmgr info --list参数不支持"
LOG_INFO "测试tlmgr info --json命令"
tlmgr info --json texlive-tikz-opm-doc
CHECK_RESULT $? 0 255 "tlmgr info --json参数不支持"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-tikz-opm-doc软件包"
dnf remove -y texlive-tikz-opm-doc
CHECK_RESULT $? 0 0 "卸载texlive-tikz-opm-doc失败"
fi
LOG_INFO "测试完成"
}
main "$@"