Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -11,10 +11,6 @@
|
||||
"name": "test_cereal-devel_uninstall",
|
||||
"desc": "测试软件包cereal-devel的卸载功能,验证卸载过程是否成功。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_cereal-devel_function_serialize",
|
||||
"desc": "测试软件包cereal-devel的序列化功能,验证数据序列化是否成功。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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文件"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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软件包能否通过系统包管理器正常卸载。"
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": "测试显示软件包或工具版本信息"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "步骤3: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
|
||||
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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
Reference in New Issue
Block a user