Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -7,37 +7,17 @@
|
||||
"desc": "测试hsqldb-lib软件包的安装功能,验证安装过程是否正常完成。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_connect",
|
||||
"desc": "测试hsqldb-lib软件包的数据库连接功能,验证连接是否成功建立。"
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_install",
|
||||
"desc": "测试hsqldb-lib软件包的安装功能,验证其是否能被正确安装到系统中。"
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_uninstall",
|
||||
"desc": "测试hsqldb-lib软件包的卸载功能,验证其是否能被完全、干净地移除。"
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_check_version",
|
||||
"desc": "测试检查hsqldb-lib软件包版本的功能,验证获取的版本信息是否正确。"
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_start_server",
|
||||
"desc": "测试启动HSQLDB数据库服务器的功能,验证服务器是否能正常启动并监听端口。"
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_create_db",
|
||||
"desc": "测试使用hsqldb-lib创建新数据库文件的功能。"
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_basic_crud",
|
||||
"desc": "测试通过hsqldb-lib连接数据库并执行基础的增删改查操作。"
|
||||
},
|
||||
{
|
||||
"name": "test_hsqldb-lib_function_stop_server",
|
||||
"desc": "测试停止HSQLDB数据库服务器的功能,验证服务器是否能被正常关闭。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,26 +2,14 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/libnftnl/libnftnl-devel",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_libnftnl-devel_install",
|
||||
"desc": "测试 libnftnl-devel 软件包是否能被正确安装。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_headers",
|
||||
"desc": "测试 libnftnl-devel 软件包是否正确安装了开发所需的头文件。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_libs",
|
||||
"desc": "测试 libnftnl-devel 软件包是否正确安装了链接库文件。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_remove",
|
||||
"desc": "测试 libnftnl-devel 软件包是否能被正确卸载。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_pkgconfig",
|
||||
"desc": "测试 libnftnl-devel 软件包的 pkg-config 文件是否存在且可用。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_function_install",
|
||||
"desc": "测试libnftnl-devel软件包能否通过包管理器成功安装。"
|
||||
@@ -30,22 +18,10 @@
|
||||
"name": "test_libnftnl-devel_function_headers",
|
||||
"desc": "验证安装后,关键的开发头文件(如libnftnl.h)是否存在于标准系统路径中。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_function_libraries",
|
||||
"desc": "验证安装后,关键的链接库文件(如libnftnl.so)是否存在于标准系统路径中。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_function_pkgconfig",
|
||||
"desc": "验证pkg-config文件(libnftnl.pc)是否存在,并能正确提供编译和链接信息。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_function_uninstall",
|
||||
"desc": "测试libnftnl-devel软件包能否被完全且干净地卸载。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_function_compile",
|
||||
"desc": "测试使用libnftnl-devel提供的头文件和库文件,能否成功编译一个简单的示例程序。"
|
||||
},
|
||||
{
|
||||
"name": "test_libnftnl-devel_function_version",
|
||||
"desc": "验证已安装的libnftnl开发库版本是否符合预期或与运行时库版本匹配。"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-c/texlive-beameraudience",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-beameraudience_install",
|
||||
"desc": "测试texlive-beameraudience软件包的安装功能,验证是否能够成功安装。",
|
||||
"machine num": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,10 +6,6 @@
|
||||
"name": "test_texlive-examdesign-doc_function_install",
|
||||
"desc": "Test the installation of texlive-examdesign-doc package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-examdesign-doc_function_check_installed",
|
||||
"desc": "Check if the texlive-examdesign-doc package is installed in the system."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-examdesign-doc_function_verify_files",
|
||||
"desc": "Verify the existence of key documentation files for examdesign."
|
||||
@@ -17,10 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-examdesign-doc_function_display_help",
|
||||
"desc": "Test displaying the basic help or information about the examdesign package from its documentation."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-examdesign-doc_function_view_manual",
|
||||
"desc": "Open or view the main manual (PDF) for the examdesign package to ensure it is accessible."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-exercises",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-exercises_function_basic",
|
||||
"desc": "Test basic commands"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exercises_function_install",
|
||||
"desc": "Test package installation"
|
||||
@@ -13,18 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-exercises_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exercises_function_basic_usage",
|
||||
"desc": "Test basic LaTeX commands"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exercises_function_example_doc",
|
||||
"desc": "Test example document compilation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-exercises_function_check_installed",
|
||||
"desc": "Verify package is installed"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -9,18 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-skdoc-doc_function_remove",
|
||||
"desc": "Test package uninstallation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-skdoc-doc_function_version",
|
||||
"desc": "Check package version info"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-skdoc-doc_function_files",
|
||||
"desc": "Verify package files existence"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-skdoc-doc_function_doc_build",
|
||||
"desc": "Test documentation generation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-w/texlive-tabularborder",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-tabularborder_function_basic",
|
||||
"desc": "Test basic functionality of texlive-tabularborder"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,119 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试通过hsqldb-lib连接数据库并执行基础的增删改查操作。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已安装hsqldb-lib
|
||||
LOG_INFO "检查hsqldb-lib是否已安装"
|
||||
rpm -qa | grep -q hsqldb-lib
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "hsqldb-lib已安装,测试结束后保持安装状态"
|
||||
INSTALLED_BEFORE="true"
|
||||
else
|
||||
LOG_INFO "hsqldb-lib未安装,将在测试前安装"
|
||||
INSTALLED_BEFORE="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有hsqldb-lib软件包
|
||||
LOG_INFO "检查yum源中是否有hsqldb-lib软件包"
|
||||
dnf list available hsqldb-lib 2>&1 | grep -q "hsqldb-lib"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到hsqldb-lib软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装hsqldb-lib
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "安装hsqldb-lib软件包"
|
||||
dnf install -y hsqldb-lib
|
||||
CHECK_RESULT $? 0 0 "安装hsqldb-lib失败"
|
||||
fi
|
||||
|
||||
# 启动HSQLDB数据库服务器
|
||||
LOG_INFO "启动HSQLDB数据库服务器"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.server.Server --database.0 mem:mydb --dbname.0 testdb &
|
||||
HSQLDB_PID=$!
|
||||
sleep 5 # 等待数据库启动
|
||||
|
||||
# 检查HSQLDB进程是否运行
|
||||
ps -p $HSQLDB_PID > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "HSQLDB数据库服务器启动失败"
|
||||
|
||||
# 创建测试表
|
||||
LOG_INFO "创建测试表"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "CREATE TABLE IF NOT EXISTS test_table (id INT PRIMARY KEY, name VARCHAR(50));" 2>&1 | grep -q "successfully"
|
||||
CHECK_RESULT $? 0 0 "创建测试表失败"
|
||||
|
||||
# 插入数据
|
||||
LOG_INFO "插入测试数据"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "INSERT INTO test_table (id, name) VALUES (1, "test1");" 2>&1 | grep -q "successfully"
|
||||
CHECK_RESULT $? 0 0 "插入数据失败"
|
||||
|
||||
# 查询数据
|
||||
LOG_INFO "查询测试数据"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "SELECT * FROM test_table;" 2>&1 | grep -q "1.*test1"
|
||||
CHECK_RESULT $? 0 0 "查询数据失败或数据不匹配"
|
||||
|
||||
# 更新数据
|
||||
LOG_INFO "更新测试数据"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "UPDATE test_table SET name = "updated" WHERE id = 1;" 2>&1 | grep -q "successfully"
|
||||
CHECK_RESULT $? 0 0 "更新数据失败"
|
||||
|
||||
# 验证更新
|
||||
LOG_INFO "验证数据更新"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "SELECT * FROM test_table WHERE name = "updated";" 2>&1 | grep -q "1.*updated"
|
||||
CHECK_RESULT $? 0 0 "数据更新验证失败"
|
||||
|
||||
# 删除数据
|
||||
LOG_INFO "删除测试数据"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "DELETE FROM test_table WHERE id = 1;" 2>&1 | grep -q "successfully"
|
||||
CHECK_RESULT $? 0 0 "删除数据失败"
|
||||
|
||||
# 验证删除
|
||||
LOG_INFO "验证数据删除"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "SELECT * FROM test_table;" 2>&1 | grep -q "1.*"
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "数据删除验证失败,数据仍然存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 删除测试表
|
||||
LOG_INFO "删除测试表"
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/testdb -user SA -password "" -driver org.hsqldb.jdbc.JDBCDriver -script "DROP TABLE test_table;" 2>&1 | grep -q "successfully"
|
||||
CHECK_RESULT $? 0 0 "删除测试表失败"
|
||||
|
||||
# 停止HSQLDB数据库服务器
|
||||
LOG_INFO "停止HSQLDB数据库服务器"
|
||||
kill $HSQLDB_PID
|
||||
wait $HSQLDB_PID 2>/dev/null
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载hsqldb-lib
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "卸载hsqldb-lib软件包"
|
||||
dnf remove -y hsqldb-lib
|
||||
CHECK_RESULT $? 0 0 "卸载hsqldb-lib失败"
|
||||
else
|
||||
LOG_INFO "测试前hsqldb-lib已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试通过hsqldb-lib连接数据库并执行基础的增删改查操作完成"
|
||||
}
|
||||
|
||||
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 : 2025-12-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试hsqldb-lib软件包的数据库连接功能,验证连接是否成功建立。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试hsqldb-lib软件包的数据库连接功能,验证连接是否成功建立。"
|
||||
|
||||
# 检查是否已安装hsqldb-lib
|
||||
LOG_INFO "检查hsqldb-lib是否已安装..."
|
||||
dnf list installed hsqldb-lib > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "hsqldb-lib已安装,脚本结束时将保持安装状态。"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "hsqldb-lib未安装,将在测试结束后卸载。"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有hsqldb-lib软件包
|
||||
LOG_INFO "检查yum源中是否存在hsqldb-lib软件包..."
|
||||
dnf list available hsqldb-lib > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到hsqldb-lib软件包。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装hsqldb-lib
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装hsqldb-lib..."
|
||||
dnf install -y hsqldb-lib > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装hsqldb-lib失败。"
|
||||
fi
|
||||
|
||||
# 验证数据库连接功能
|
||||
LOG_INFO "验证hsqldb-lib的数据库连接功能..."
|
||||
java -cp /usr/share/java/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing --url jdbc:hsqldb:mem:testdb --user SA --password "" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "数据库连接失败。"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载hsqldb-lib
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在卸载hsqldb-lib..."
|
||||
dnf remove -y hsqldb-lib > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载hsqldb-lib失败。"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试启动HSQLDB数据库服务器的功能,验证服务器是否能正常启动并监听端口。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试启动HSQLDB数据库服务器的功能"
|
||||
LOG_INFO "步骤1: 检查HSQLDB软件包是否在yum源中可用"
|
||||
dnf list available hsqldb 2>/dev/null | grep -q hsqldb
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到hsqldb软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2: 检查系统是否已安装HSQLDB"
|
||||
rpm -q hsqldb > /dev/null 2>&1
|
||||
installed=$?
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "HSQLDB未安装,将执行安装"
|
||||
dnf install -y hsqldb
|
||||
CHECK_RESULT $? 0 0 "安装HSQLDB失败"
|
||||
INSTALLED_NOW=1
|
||||
else
|
||||
LOG_INFO "HSQLDB已安装,测试过程将保持安装状态"
|
||||
INSTALLED_NOW=0
|
||||
fi
|
||||
LOG_INFO "步骤3: 验证hsqldb-server命令是否存在"
|
||||
command -v hsqldb-server > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "hsqldb-server命令未找到"
|
||||
if [ $INSTALLED_NOW -eq 1 ]; then
|
||||
dnf remove -y hsqldb
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤4: 检查hsqldb-server命令是否支持--help参数"
|
||||
hsqldb-server --help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "hsqldb-server命令不支持--help参数或参数无效"
|
||||
if [ $INSTALLED_NOW -eq 1 ]; then
|
||||
dnf remove -y hsqldb
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤5: 启动HSQLDB服务器"
|
||||
hsqldb-server --database.0 mem:mydb --dbname.0 testdb --port 9001 &
|
||||
SERVER_PID=$!
|
||||
sleep 3
|
||||
LOG_INFO "步骤6: 检查HSQLDB服务器进程是否运行"
|
||||
ps -p $SERVER_PID > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "HSQLDB服务器进程未启动"
|
||||
LOG_INFO "步骤7: 验证HSQLDB服务器是否在监听端口"
|
||||
netstat -tlnp 2>/dev/null | grep -q ":$SERVER_PORT"
|
||||
CHECK_RESULT $? 0 0 "HSQLDB服务器未在指定端口监听"
|
||||
LOG_INFO "步骤8: 停止HSQLDB服务器"
|
||||
kill $SERVER_PID
|
||||
wait $SERVER_PID 2>/dev/null
|
||||
LOG_INFO "步骤9: 环境清理"
|
||||
if [ $INSTALLED_NOW -eq 1 ]; then
|
||||
LOG_INFO "卸载测试安装的HSQLDB软件包"
|
||||
dnf remove -y hsqldb
|
||||
CHECK_RESULT $? 0 0 "卸载HSQLDB失败"
|
||||
else
|
||||
LOG_INFO "保持原有的HSQLDB安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试停止HSQLDB数据库服务器的功能,验证服务器是否能被正常关闭。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装hsqldb
|
||||
LOG_INFO "检查是否已安装hsqldb"
|
||||
if dnf list installed hsqldb &>/dev/null; then
|
||||
LOG_INFO "hsqldb已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "hsqldb未安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有hsqldb软件包
|
||||
LOG_INFO "检查yum源中是否有hsqldb软件包"
|
||||
if ! dnf list available hsqldb &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有hsqldb软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装hsqldb
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装hsqldb"
|
||||
dnf install -y hsqldb
|
||||
CHECK_RESULT $? 0 0 "安装hsqldb失败"
|
||||
fi
|
||||
|
||||
# 检查hsqldb命令参数是否支持stop
|
||||
LOG_INFO "检查hsqldb命令参数是否支持stop"
|
||||
if ! hsqldb --help 2>&1 | grep -q "stop"; then
|
||||
LOG_ERROR "hsqldb命令不支持stop参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 启动hsqldb服务器
|
||||
LOG_INFO "启动hsqldb服务器"
|
||||
hsqldb start &
|
||||
SERVER_PID=$!
|
||||
sleep 3
|
||||
CHECK_RESULT $? 0 0 "启动hsqldb服务器失败"
|
||||
|
||||
# 检查服务器是否正在运行
|
||||
LOG_INFO "检查hsqldb服务器是否正在运行"
|
||||
if ! ps -p $SERVER_PID &>/dev/null; then
|
||||
LOG_ERROR "hsqldb服务器未运行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 停止hsqldb服务器
|
||||
LOG_INFO "停止hsqldb服务器"
|
||||
hsqldb stop
|
||||
CHECK_RESULT $? 0 0 "停止hsqldb服务器失败"
|
||||
|
||||
# 检查服务器是否已停止
|
||||
LOG_INFO "检查hsqldb服务器是否已停止"
|
||||
sleep 2
|
||||
if ps -p $SERVER_PID &>/dev/null; then
|
||||
LOG_ERROR "hsqldb服务器未成功停止"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "hsqldb服务器已成功停止"
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载hsqldb"
|
||||
dnf remove -y hsqldb
|
||||
CHECK_RESULT $? 0 0 "卸载hsqldb失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,113 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试hsqldb-lib软件包的卸载功能,验证其是否能被完全、干净地移除。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="hsqldb-lib"
|
||||
|
||||
# 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在${PACKAGE_NAME}软件包"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
|
||||
|
||||
# 检查是否已经安装
|
||||
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}失败"
|
||||
LOG_INFO "安装${PACKAGE_NAME}成功"
|
||||
fi
|
||||
|
||||
# 验证软件包已正确安装
|
||||
LOG_INFO "步骤4:验证${PACKAGE_NAME}已正确安装"
|
||||
rpm -q ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "验证${PACKAGE_NAME}安装状态失败"
|
||||
LOG_INFO "${PACKAGE_NAME}安装验证成功"
|
||||
|
||||
# 执行卸载测试
|
||||
LOG_INFO "步骤5:执行${PACKAGE_NAME}卸载测试"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
|
||||
LOG_INFO "卸载${PACKAGE_NAME}成功"
|
||||
|
||||
# 验证软件包已完全移除
|
||||
LOG_INFO "步骤6:验证${PACKAGE_NAME}已完全移除"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "${PACKAGE_NAME}卸载后仍存在残留"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "${PACKAGE_NAME}已完全移除,无残留文件"
|
||||
|
||||
# 检查相关文件是否清理干净
|
||||
LOG_INFO "步骤7:检查${PACKAGE_NAME}相关文件是否清理干净"
|
||||
FILES_LEFT=$(rpm -ql ${PACKAGE_NAME} 2>/dev/null | wc -l)
|
||||
if [ ${FILES_LEFT} -gt 0 ]; then
|
||||
LOG_ERROR "发现${FILES_LEFT}个${PACKAGE_NAME}残留文件"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "未发现${PACKAGE_NAME}残留文件"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "步骤8:环境恢复处理"
|
||||
if [ "${INSTALLED_BEFORE}" = "true" ]; then
|
||||
LOG_INFO "恢复原始状态:重新安装${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "恢复${PACKAGE_NAME}安装失败"
|
||||
LOG_INFO "${PACKAGE_NAME}已恢复安装"
|
||||
else
|
||||
LOG_INFO "原始状态为未安装,无需恢复操作"
|
||||
fi
|
||||
|
||||
# 最终验证
|
||||
LOG_INFO "步骤9:最终环境验证"
|
||||
if [ "${INSTALLED_BEFORE}" = "true" ]; then
|
||||
rpm -q ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "最终验证${PACKAGE_NAME}状态失败"
|
||||
LOG_INFO "环境已恢复到初始安装状态"
|
||||
else
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "环境恢复失败,${PACKAGE_NAME}不应存在"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "环境已恢复到初始未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:hsqldb-lib软件包卸载功能验证通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,85 +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 : 测试使用libnftnl-devel提供的头文件和库文件,能否成功编译一个简单的示例程序。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试libnftnl-devel功能编译"
|
||||
LOG_INFO "步骤1:检查libnftnl-devel软件包是否在yum源中"
|
||||
dnf list available libnftnl-devel &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到libnftnl-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查环境中是否已安装libnftnl-devel"
|
||||
rpm -q libnftnl-devel &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境中已安装libnftnl-devel,测试后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "环境中未安装libnftnl-devel,将进行安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装libnftnl-devel软件包"
|
||||
dnf install -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "安装libnftnl-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:编写简单的测试程序"
|
||||
cat > test_nftnl.c << "EOF"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <libnftnl/table.h>
|
||||
|
||||
int main() {
|
||||
struct nftnl_table *table = nftnl_table_alloc();
|
||||
if (table == NULL) {
|
||||
printf("Failed to allocate table\n");
|
||||
return 1;
|
||||
}
|
||||
nftnl_table_free(table);
|
||||
printf("libnftnl-devel test program compiled and ran successfully\n");
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
LOG_INFO "步骤5:使用libnftnl-devel头文件和库文件编译测试程序"
|
||||
gcc -o test_nftnl test_nftnl.c -lnftnl
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败"
|
||||
|
||||
LOG_INFO "步骤6:运行编译后的测试程序"
|
||||
./test_nftnl
|
||||
CHECK_RESULT $? 0 0 "运行测试程序失败"
|
||||
|
||||
LOG_INFO "步骤7:清理编译生成的文件"
|
||||
rm -f test_nftnl test_nftnl.c
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载libnftnl-devel软件包"
|
||||
dnf remove -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libnftnl-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-01-29
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证安装后,关键的链接库文件(如libnftnl.so)是否存在于标准系统路径中。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量,后续可以直接使用
|
||||
# 软件包名称
|
||||
PACKAGE_NAME="libnftnl-devel"
|
||||
|
||||
# 检查系统软件仓库中是否存在指定的软件包
|
||||
# 这是一个检查库文件的关键前提
|
||||
LOG_INFO "判断软件仓库中是否存在 ${PACKAGE_NAME} 软件包"
|
||||
dnf list available ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件仓库中未找到 ${PACKAGE_NAME} 软件包"
|
||||
exit 255
|
||||
fi
|
||||
CHECK_RESULT $? 0 0 "检查软件包 ${PACKAGE_NAME} 是否在软件仓库中失败"
|
||||
|
||||
# 初始化环境状态变量
|
||||
INITIAL_STATE=0
|
||||
# 检查测试开始前,软件包是否已经安装
|
||||
LOG_INFO "检查软件包 ${PACKAGE_NAME} 的初始安装状态"
|
||||
rpm -q ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "测试开始时,软件包 ${PACKAGE_NAME} 已安装"
|
||||
INITIAL_STATE=1
|
||||
else
|
||||
LOG_INFO "测试开始时,软件包 ${PACKAGE_NAME} 未安装"
|
||||
INITIAL_STATE=0
|
||||
fi
|
||||
|
||||
# 如果初始未安装,则作为测试步骤安装它
|
||||
# 这是测试用例执行的前提条件
|
||||
if [ ${INITIAL_STATE} -eq 0 ]; then
|
||||
LOG_INFO "安装软件包 ${PACKAGE_NAME} 作为测试准备"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "开始执行主测试:检查关键的库文件是否存在于标准路径"
|
||||
# 主测试逻辑:确认 libnftnl.so 库文件是否安装到正确路径
|
||||
# 这是验证开发包功能的核心
|
||||
library_path="/usr/lib64/libnftnl.so"
|
||||
if [ ! -f "$library_path" ]; then
|
||||
LOG_ERROR "未在预期路径找到库文件:$library_path"
|
||||
# 根据需求第4条,使用系统命令的标准退出码,这里代表一般性错误
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "成功找到库文件:$library_path"
|
||||
fi
|
||||
# 可选检查:确认其是一个有效的共享库文件
|
||||
file "$library_path" | grep -q "shared object"
|
||||
CHECK_RESULT $? 0 0 "找到的文件 $library_path 不是一个有效的共享库文件"
|
||||
|
||||
LOG_INFO "主测试执行完毕,开始环境清理"
|
||||
# 根据初始状态恢复环境
|
||||
# 如果测试时是脚本安装的,则测试后卸载;否则保持原状
|
||||
if [ ${INITIAL_STATE} -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 "测试脚本执行完成"
|
||||
}
|
||||
|
||||
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 : 测试libnftnl-devel软件包能否被完全且干净地卸载。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断当前环境是否已安装libnftnl-devel软件包
|
||||
LOG_INFO "检查当前环境是否已安装libnftnl-devel软件包"
|
||||
rpm -q libnftnl-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "当前环境已安装libnftnl-devel软件包"
|
||||
installed_flag=1
|
||||
else
|
||||
LOG_INFO "当前环境未安装libnftnl-devel软件包"
|
||||
installed_flag=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在libnftnl-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在libnftnl-devel软件包"
|
||||
dnf list available libnftnl-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在libnftnl-devel软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在libnftnl-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果环境未安装,则执行安装操作
|
||||
if [ $installed_flag -eq 0 ]; then
|
||||
LOG_INFO "开始安装libnftnl-devel软件包"
|
||||
dnf install -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "安装libnftnl-devel软件包失败"
|
||||
LOG_INFO "libnftnl-devel软件包安装成功"
|
||||
fi
|
||||
|
||||
# 验证软件包是否成功安装
|
||||
LOG_INFO "验证libnftnl-devel软件包是否成功安装"
|
||||
rpm -q libnftnl-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "libnftnl-devel软件包未成功安装"
|
||||
|
||||
# 执行卸载测试
|
||||
LOG_INFO "开始卸载libnftnl-devel软件包"
|
||||
dnf remove -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libnftnl-devel软件包失败"
|
||||
LOG_INFO "libnftnl-devel软件包卸载成功"
|
||||
|
||||
# 验证软件包是否被完全卸载
|
||||
LOG_INFO "验证libnftnl-devel软件包是否被完全卸载"
|
||||
rpm -q libnftnl-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "libnftnl-devel软件包未被完全卸载"
|
||||
LOG_INFO "libnftnl-devel软件包已被完全卸载"
|
||||
|
||||
# 检查是否残留相关文件
|
||||
LOG_INFO "检查是否残留libnftnl-devel相关文件"
|
||||
find /usr -name "*libnftnl*" -type f 2>/dev/null | grep -v ".cache"
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "发现libnftnl-devel残留文件"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "未发现libnftnl-devel残留文件"
|
||||
fi
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ $installed_flag -eq 1 ]; then
|
||||
LOG_INFO "重新安装libnftnl-devel软件包以恢复环境"
|
||||
dnf install -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "重新安装libnftnl-devel软件包失败"
|
||||
LOG_INFO "环境恢复完成,libnftnl-devel软件包已安装"
|
||||
else
|
||||
LOG_INFO "环境恢复完成,保持未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:libnftnl-devel软件包能够被完全且干净地卸载"
|
||||
}
|
||||
|
||||
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-01-28
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 libnftnl-devel 软件包是否能被正确安装。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已经安装libnftnl-devel
|
||||
LOG_INFO "检查环境是否已经安装libnftnl-devel软件包"
|
||||
rpm -q libnftnl-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到libnftnl-devel已经安装,脚本结束时将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "未检测到libnftnl-devel安装,将在测试中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有libnftnl-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在libnftnl-devel软件包"
|
||||
dnf list available libnftnl-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到libnftnl-devel软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到libnftnl-devel软件包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则执行安装测试
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "开始安装libnftnl-devel软件包"
|
||||
dnf install -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "安装libnftnl-devel软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装libnftnl-devel软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "成功安装libnftnl-devel软件包"
|
||||
|
||||
# 验证安装
|
||||
LOG_INFO "验证libnftnl-devel软件包是否安装成功"
|
||||
rpm -q libnftnl-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "验证libnftnl-devel安装失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "验证libnftnl-devel安装失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "验证libnftnl-devel安装成功"
|
||||
fi
|
||||
|
||||
# 测试libnftnl-devel的基本功能
|
||||
LOG_INFO "测试libnftnl-devel提供的头文件和库文件"
|
||||
ls /usr/include/libnftnl.h > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "未找到libnftnl.h头文件"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "libnftnl-devel提供的头文件不完整"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ls /usr/lib*/libnftnl.so > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "未找到libnftnl.so库文件"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "libnftnl-devel提供的库文件不完整"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "libnftnl-devel的头文件和库文件完整"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "清理环境:卸载libnftnl-devel软件包"
|
||||
dnf remove -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libnftnl-devel软件包失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载libnftnl-devel软件包失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "成功卸载libnftnl-devel软件包"
|
||||
|
||||
# 验证卸载
|
||||
LOG_INFO "验证libnftnl-devel软件包是否已卸载"
|
||||
rpm -q libnftnl-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 1 0 "验证libnftnl-devel卸载失败,软件包仍存在"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "验证libnftnl-devel卸载失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "验证libnftnl-devel卸载成功"
|
||||
else
|
||||
LOG_INFO "测试前已安装libnftnl-devel,保持安装状态不卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "libnftnl-devel软件包安装测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,132 +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 : 测试 libnftnl-devel 软件包是否正确安装了链接库文件。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $actual
|
||||
fi
|
||||
elif [ $mode -eq 1 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
LOG_INFO "$message 成功"
|
||||
}
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="libnftnl-devel"
|
||||
|
||||
# 步骤1: 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否有 $PACKAGE_NAME 软件包"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在 $PACKAGE_NAME 软件包"
|
||||
|
||||
# 步骤2: 检查环境是否已经安装该软件包
|
||||
LOG_INFO "步骤2: 检查环境是否已经安装 $PACKAGE_NAME 软件包"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已经安装,脚本结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 软件包"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查链接库文件是否正确安装
|
||||
LOG_INFO "步骤4: 检查 $PACKAGE_NAME 是否正确安装了链接库文件"
|
||||
# 查找libnftnl相关的库文件
|
||||
LIB_FILES=$(rpm -ql $PACKAGE_NAME | grep -E "\.so(\.|$)")
|
||||
if [ -z "$LIB_FILES" ]; then
|
||||
LOG_ERROR "未找到 libnftnl 相关的链接库文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查每个库文件是否存在
|
||||
for lib in $LIB_FILES; do
|
||||
if [ -f "$lib" ]; then
|
||||
LOG_INFO "找到链接库文件: $lib"
|
||||
else
|
||||
LOG_ERROR "链接库文件不存在: $lib"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# 步骤5: 验证库文件是否可链接
|
||||
LOG_INFO "步骤5: 验证库文件是否可链接"
|
||||
# 创建一个简单的测试程序
|
||||
TEST_PROGRAM="/tmp/test_nftnl.c"
|
||||
cat > $TEST_PROGRAM << "EOF"
|
||||
#include <stdio.h>
|
||||
#include <libnftnl/table.h>
|
||||
int main() {
|
||||
printf("测试 libnftnl 链接库\n");
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
# 编译测试程序
|
||||
gcc -o /tmp/test_nftnl $TEST_PROGRAM -lnftnl 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "编译测试程序验证链接库"
|
||||
LOG_INFO "链接库文件验证成功"
|
||||
|
||||
# 清理测试程序
|
||||
rm -f $TEST_PROGRAM /tmp/test_nftnl
|
||||
|
||||
# 步骤6: 如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "步骤6: 卸载 $PACKAGE_NAME 软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 软件包"
|
||||
else
|
||||
LOG_INFO "步骤6: 保持 $PACKAGE_NAME 软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,91 +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 : 测试 libnftnl-devel 软件包的 pkg-config 文件是否存在且可用。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试libnftnl-devel软件包的pkg-config文件是否存在且可用"
|
||||
LOG_INFO "检查libnftnl-devel软件包是否已在系统中安装"
|
||||
rpm -q libnftnl-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "libnftnl-devel软件包已安装,标记为已存在"
|
||||
package_installed=1
|
||||
else
|
||||
LOG_INFO "libnftnl-devel软件包未安装,标记为未存在"
|
||||
package_installed=0
|
||||
fi
|
||||
LOG_INFO "检查yum源中是否存在libnftnl-devel软件包"
|
||||
dnf list available libnftnl-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到libnftnl-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ $package_installed -eq 0 ]; then
|
||||
LOG_INFO "开始安装libnftnl-devel软件包"
|
||||
dnf install -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "安装libnftnl-devel软件包失败"
|
||||
LOG_INFO "libnftnl-devel软件包安装成功"
|
||||
fi
|
||||
LOG_INFO "检查pkg-config命令是否存在"
|
||||
command -v pkg-config > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pkg-config命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "使用pkg-config检查libnftnl-devel软件包提供的.pc文件"
|
||||
pkg-config --exists libnftnl
|
||||
CHECK_RESULT $? 0 0 "pkg-config未找到libnftnl.pc文件或文件不可用"
|
||||
LOG_INFO "获取libnftnl.pc文件提供的版本信息"
|
||||
pkg-config --modversion libnftnl
|
||||
CHECK_RESULT $? 0 0 "获取libnftnl.pc版本信息失败"
|
||||
LOG_INFO "获取libnftnl.pc文件提供的编译标志"
|
||||
pkg-config --cflags libnftnl
|
||||
CHECK_RESULT $? 0 0 "获取libnftnl.pc编译标志失败"
|
||||
LOG_INFO "获取libnftnl.pc文件提供的链接标志"
|
||||
pkg-config --libs libnftnl
|
||||
CHECK_RESULT $? 0 0 "获取libnftnl.pc链接标志失败"
|
||||
LOG_INFO "测试一个简单的C程序编译链接以验证pkg-config可用性"
|
||||
cat > test_nftnl.c << "EOF"
|
||||
#include <stdio.h>
|
||||
#include <libnftnl/table.h>
|
||||
int main() {
|
||||
printf("libnftnl-devel pkg-config test program\n");
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
pkg-config --cflags --libs libnftnl > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "pkg-config无法为libnftnl提供有效的编译链接参数"
|
||||
gcc test_nftnl.c $(pkg-config --cflags --libs libnftnl) -o test_nftnl_prog 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用pkg-config提供的参数编译测试程序失败"
|
||||
./test_nftnl_prog
|
||||
CHECK_RESULT $? 0 0 "编译出的测试程序执行失败"
|
||||
rm -f test_nftnl.c test_nftnl_prog
|
||||
LOG_INFO "清理测试临时文件"
|
||||
if [ $package_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载在测试中安装的libnftnl-devel软件包"
|
||||
dnf remove -y libnftnl-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libnftnl-devel软件包失败"
|
||||
LOG_INFO "libnftnl-devel软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "测试前已安装libnftnl-devel,保持安装状态"
|
||||
fi
|
||||
LOG_INFO "libnftnl-devel软件包的pkg-config文件测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,62 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-06-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试texlive-beameraudience软件包的安装功能,验证是否能够成功安装。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查texlive-beameraudience软件包是否已安装
|
||||
LOG_INFO "检查texlive-beameraudience软件包是否已安装"
|
||||
rpm -q texlive-beameraudience > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-beameraudience软件包已安装,跳过安装步骤"
|
||||
installed=true
|
||||
else
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-beameraudience软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-beameraudience软件包"
|
||||
dnf list available texlive-beameraudience > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-beameraudience软件包"
|
||||
|
||||
# 安装texlive-beameraudience软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装texlive-beameraudience软件包"
|
||||
dnf install -y texlive-beameraudience > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-beameraudience软件包失败"
|
||||
fi
|
||||
|
||||
# 验证texlive-beameraudience软件包是否成功安装
|
||||
LOG_INFO "验证texlive-beameraudience软件包是否成功安装"
|
||||
rpm -q texlive-beameraudience > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "验证texlive-beameraudience软件包安装失败"
|
||||
|
||||
# 如果之前未安装,则在测试结束后卸载软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "测试完成,卸载texlive-beameraudience软件包"
|
||||
dnf remove -y texlive-beameraudience > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-beameraudience软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-14
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Open or view the main manual (PDF) for the examdesign package to ensure it is accessible.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-examdesign-doc包
|
||||
LOG_INFO "检查是否已安装texlive-examdesign-doc包"
|
||||
rpm -q texlive-examdesign-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-examdesign-doc已安装,脚本结束后将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "texlive-examdesign-doc未安装,将在测试中安装并在结束后卸载"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-examdesign-doc包
|
||||
LOG_INFO "检查yum源中是否有texlive-examdesign-doc包"
|
||||
dnf list available texlive-examdesign-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-examdesign-doc包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-examdesign-doc包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-examdesign-doc包"
|
||||
dnf install -y texlive-examdesign-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-examdesign-doc包失败"
|
||||
fi
|
||||
|
||||
# 检查texdoc命令是否存在
|
||||
LOG_INFO "检查texdoc命令是否存在"
|
||||
which texdoc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texdoc命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查texdoc是否支持--view参数
|
||||
LOG_INFO "检查texdoc是否支持--view参数"
|
||||
texdoc --help 2>&1 | grep -q "\-\-view"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texdoc命令不支持--view参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 使用texdoc --view打开或查看examdesign包的主手册PDF
|
||||
LOG_INFO "使用texdoc --view打开或查看examdesign包的主手册PDF"
|
||||
texdoc --view examdesign > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texdoc --view examdesign命令执行失败"
|
||||
|
||||
# 清理环境:如果脚本开始前未安装,则卸载texlive-examdesign-doc包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-examdesign-doc包"
|
||||
dnf remove -y texlive-examdesign-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-examdesign-doc包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-09-25
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic commands
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试: Test basic commands"
|
||||
|
||||
# 检查是否已安装texlive-exercises
|
||||
LOG_INFO "检查texlive-exercises是否已安装"
|
||||
dnf list installed texlive-exercises > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-exercises已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-exercises未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-exercises软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-exercises"
|
||||
dnf list available texlive-exercises > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在texlive-exercises软件包"
|
||||
|
||||
# 安装texlive-exercises(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装texlive-exercises"
|
||||
dnf install -y texlive-exercises > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-exercises失败"
|
||||
fi
|
||||
|
||||
# 测试基本命令
|
||||
LOG_INFO "测试基本命令"
|
||||
command_to_test="some_basic_command" # 替换为实际需要测试的命令
|
||||
|
||||
# 检查命令是否存在
|
||||
LOG_INFO "检查命令是否存在"
|
||||
which "$command_to_test" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "命令 $command_to_test 不存在或不支持"
|
||||
|
||||
# 执行命令并检查结果
|
||||
LOG_INFO "执行命令 $command_to_test"
|
||||
$command_to_test > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 $? "执行命令 $command_to_test 失败"
|
||||
|
||||
# SSH到第二个节点执行命令(示例)
|
||||
LOG_INFO "在第二个节点上执行命令"
|
||||
SSH_CMD "ls" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER"
|
||||
CHECK_RESULT $? 0 $? "在第二个节点上执行命令失败"
|
||||
|
||||
# 清理环境(如果之前未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-exercises"
|
||||
dnf remove -y texlive-exercises > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 $? "卸载texlive-exercises失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: Test basic commands"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,91 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-20
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic LaTeX commands
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test basic LaTeX commands"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive"
|
||||
LOG_INFO "检查系统中是否已安装 $PACKAGE_NAME"
|
||||
|
||||
# 检查是否已安装
|
||||
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "安装 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 测试基本LaTeX命令:创建简单的LaTeX文档
|
||||
LOG_INFO "创建测试LaTeX文档"
|
||||
cat > test_document.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, LaTeX!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
|
||||
|
||||
# 使用pdflatex编译文档
|
||||
LOG_INFO "使用pdflatex编译LaTeX文档"
|
||||
pdflatex test_document.tex
|
||||
CHECK_RESULT $? 0 0 "pdflatex编译失败"
|
||||
|
||||
# 检查是否生成PDF文件
|
||||
LOG_INFO "检查是否生成PDF文件"
|
||||
if [ -f test_document.pdf ]; then
|
||||
LOG_INFO "成功生成PDF文件"
|
||||
else
|
||||
LOG_ERROR "未生成PDF文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_document.tex test_document.log test_document.aux test_document.pdf
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic LaTeX commands"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-20
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify package is installed
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:确认是否已安装texlive-exercises软件包
|
||||
LOG_INFO "步骤1:检查texlive-exercises软件包是否已安装"
|
||||
dnf list installed texlive-exercises > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-exercises已安装,脚本结束前将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "texlive-exercises未安装,将在测试中安装并在结束前卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-exercises软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在texlive-exercises软件包"
|
||||
dnf list available texlive-exercises > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-exercises软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-exercises软件包"
|
||||
dnf install -y texlive-exercises
|
||||
CHECK_RESULT $? 0 0 "安装texlive-exercises失败"
|
||||
fi
|
||||
|
||||
# 验证软件包是否安装成功
|
||||
LOG_INFO "步骤4:验证texlive-exercises软件包是否安装成功"
|
||||
dnf list installed texlive-exercises > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "验证texlive-exercises安装失败"
|
||||
|
||||
# 测试软件包功能:检查是否包含特定命令或文件(示例:检查是否有tex命令)
|
||||
LOG_INFO "步骤5:检查texlive-exercises是否包含tex命令"
|
||||
command -v tex > /dev/null 2>&1
|
||||
# 如果tex命令不存在,可能是参数不支持或未包含该命令
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "tex命令不存在或不支持"
|
||||
# 如果之前未安装,则需要清理环境
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-exercises软件包"
|
||||
dnf remove -y texlive-exercises
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行一个简单的tex命令测试(例如:显示版本)
|
||||
LOG_INFO "步骤6:执行tex命令测试"
|
||||
tex --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "tex命令执行失败"
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤7:清理环境,卸载texlive-exercises软件包"
|
||||
dnf remove -y texlive-exercises
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-exercises失败"
|
||||
else
|
||||
LOG_INFO "步骤7:测试前已安装texlive-exercises,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Verify package is installed"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-20
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test example document compilation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test example document compilation"
|
||||
|
||||
# 检查是否已安装texlive-exercises-function-example-doc包
|
||||
LOG_INFO "步骤1:检查texlive-exercises-function-example-doc是否已安装"
|
||||
if dnf list installed texlive-exercises-function-example-doc &>/dev/null; then
|
||||
LOG_INFO "texlive-exercises-function-example-doc已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-exercises-function-example-doc未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在texlive-exercises-function-example-doc"
|
||||
if ! dnf list available texlive-exercises-function-example-doc &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-exercises-function-example-doc包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-exercises-function-example-doc"
|
||||
dnf install -y texlive-exercises-function-example-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-exercises-function-example-doc失败"
|
||||
fi
|
||||
|
||||
# 检查示例文档是否存在
|
||||
LOG_INFO "步骤4:检查示例文档是否存在"
|
||||
EXAMPLE_DOC_PATH="/usr/share/texlive/texmf-dist/doc/latex/exercisebank/exercisebank.tex"
|
||||
if [ ! -f "$EXAMPLE_DOC_PATH" ]; then
|
||||
LOG_ERROR "示例文档不存在: $EXAMPLE_DOC_PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 尝试编译示例文档
|
||||
LOG_INFO "步骤5:尝试编译示例文档"
|
||||
cd "$(dirname "$EXAMPLE_DOC_PATH")" || exit 1
|
||||
pdflatex exercisebank.tex
|
||||
CHECK_RESULT $? 0 0 "编译示例文档失败"
|
||||
|
||||
# 检查生成的PDF文件
|
||||
LOG_INFO "步骤6:检查生成的PDF文件"
|
||||
if [ ! -f "exercisebank.pdf" ]; then
|
||||
LOG_ERROR "未生成PDF文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "步骤7:清理编译生成的临时文件"
|
||||
rm -f exercisebank.aux exercisebank.log exercisebank.out exercisebank.pdf
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-exercises-function-example-doc"
|
||||
dnf remove -y texlive-exercises-function-example-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-exercises-function-example-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test example document compilation"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,119 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test documentation generation
|
||||
# ############################################
|
||||
|
||||
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 -ne $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit 1
|
||||
fi
|
||||
elif [ $mode -eq 1 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "Invalid mode in CHECK_RESULT"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 测试脚本开始
|
||||
LOG_INFO "开始测试:文档生成功能"
|
||||
|
||||
# 检查是否已安装 texlive-skdoc-doc 软件包
|
||||
LOG_INFO "步骤1:检查 texlive-skdoc-doc 是否已安装"
|
||||
if dnf list installed texlive-skdoc-doc &>/dev/null; then
|
||||
LOG_INFO "texlive-skdoc-doc 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "texlive-skdoc-doc 未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 texlive-skdoc-doc 软件包
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 texlive-skdoc-doc 软件包"
|
||||
if ! dnf list available texlive-skdoc-doc &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-skdoc-doc 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装 texlive-skdoc-doc
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装 texlive-skdoc-doc 软件包"
|
||||
dnf install -y texlive-skdoc-doc
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-skdoc-doc 失败"
|
||||
fi
|
||||
|
||||
# 测试文档生成功能
|
||||
LOG_INFO "步骤4:测试文档生成功能"
|
||||
# 假设文档生成命令为 skdoc-generate,参数为 --output
|
||||
if ! command -v skdoc-generate &>/dev/null; then
|
||||
LOG_ERROR "skdoc-generate 命令不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试 skdoc-generate 命令的 --output 参数
|
||||
LOG_INFO "步骤5:测试 skdoc-generate 命令的 --output 参数"
|
||||
skdoc-generate --output /tmp/test_doc
|
||||
CHECK_RESULT $? 0 0 "文档生成失败"
|
||||
|
||||
# 检查生成的文档是否存在
|
||||
LOG_INFO "步骤6:检查生成的文档是否存在"
|
||||
if [ -f "/tmp/test_doc" ]; then
|
||||
LOG_INFO "文档生成成功,文件路径:/tmp/test_doc"
|
||||
else
|
||||
LOG_ERROR "文档生成失败,文件未找到"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理生成的测试文档
|
||||
LOG_INFO "步骤7:清理生成的测试文档"
|
||||
rm -f /tmp/test_doc
|
||||
CHECK_RESULT $? 0 0 "清理测试文档失败"
|
||||
|
||||
# 如果测试前未安装,则卸载 texlive-skdoc-doc
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载 texlive-skdoc-doc 软件包"
|
||||
dnf remove -y texlive-skdoc-doc
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-skdoc-doc 失败"
|
||||
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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify package files existence
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出(可选,用于区分日志级别)
|
||||
# 实际环境中可能已定义,这里防止未定义
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 定义常量
|
||||
PACKAGE_NAME="texlive-skdoc-doc"
|
||||
TEST_COMMAND="rpm"
|
||||
TEST_OPTION="-ql"
|
||||
|
||||
# 步骤1: 检查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
|
||||
|
||||
# 步骤2: 检查系统是否已安装该软件包
|
||||
LOG_INFO "检查系统是否已安装软件包: $PACKAGE_NAME"
|
||||
rpm -q $PACKAGE_NAME &>/dev/null
|
||||
IS_INSTALLED=$?
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ $IS_INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "软件包未安装,开始安装: $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 验证软件包文件是否存在
|
||||
LOG_INFO "验证软件包文件是否存在"
|
||||
$TEST_COMMAND $TEST_OPTION $PACKAGE_NAME &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包文件不存在或列出失败"
|
||||
|
||||
# 步骤5: 清理环境(如果测试前未安装,则卸载软件包)
|
||||
if [ $IS_INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "测试前未安装,清理环境: 卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装,保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: Verify package files existence"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,128 +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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check package version info
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出函数(如果未定义)
|
||||
if ! command -v LOG_INFO &> /dev/null; then
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $*"
|
||||
}
|
||||
fi
|
||||
if ! command -v LOG_ERROR &> /dev/null; then
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $*" >&2
|
||||
}
|
||||
fi
|
||||
|
||||
# 定义检查结果函数(如果未定义)
|
||||
if ! command -v CHECK_RESULT &> /dev/null; then
|
||||
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 成功"
|
||||
return 0
|
||||
else
|
||||
LOG_ERROR "$message 失败 (实际: $actual, 期望: $expect)"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_INFO "$message 成功"
|
||||
return 0
|
||||
else
|
||||
LOG_ERROR "$message 失败 (实际: $actual, 期望: $expect)"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
fi
|
||||
|
||||
# 定义远程执行函数(如果未定义)
|
||||
if ! command -v SSH_CMD &> /dev/null; then
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=$4
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$user@$ip" "$cmd"
|
||||
}
|
||||
fi
|
||||
|
||||
# 软件包名称
|
||||
PACKAGE_NAME="texlive-skdoc-doc"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中存在"
|
||||
|
||||
# 步骤2: 检查当前是否已安装该软件包
|
||||
LOG_INFO "步骤2: 检查当前是否已安装软件包 $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为保持安装状态"
|
||||
KEEP_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为需要清理"
|
||||
KEEP_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查软件包版本信息
|
||||
LOG_INFO "步骤4: 检查软件包 $PACKAGE_NAME 的版本信息"
|
||||
rpm -qi "$PACKAGE_NAME" | grep -E "Version|Release"
|
||||
CHECK_RESULT $? 0 0 "获取软件包版本信息"
|
||||
|
||||
# 步骤5: 验证版本信息格式
|
||||
LOG_INFO "步骤5: 验证版本信息格式"
|
||||
VERSION_INFO=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}\n" "$PACKAGE_NAME")
|
||||
if [[ $VERSION_INFO =~ ^[0-9]+\.[0-9]+.*-[0-9]+.*$ ]]; then
|
||||
LOG_INFO "版本信息格式正确: $VERSION_INFO"
|
||||
else
|
||||
LOG_ERROR "版本信息格式不正确: $VERSION_INFO"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤6: 清理环境(如果之前未安装)
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤6: 卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME"
|
||||
else
|
||||
LOG_INFO "步骤6: 保持软件包 $PACKAGE_NAME 的安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: Check package version info"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-11-26
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic functionality of texlive-tabularborder
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-tabularborder
|
||||
LOG_INFO "检查是否已安装texlive-tabularborder"
|
||||
rpm -q texlive-tabularborder
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-tabularborder已安装,脚本结束时保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "texlive-tabularborder未安装,将在测试后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-tabularborder
|
||||
LOG_INFO "检查yum源中是否有texlive-tabularborder"
|
||||
dnf list available texlive-tabularborder
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-tabularborder软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装texlive-tabularborder
|
||||
LOG_INFO "安装texlive-tabularborder"
|
||||
dnf install -y texlive-tabularborder
|
||||
CHECK_RESULT $? 0 0 "安装texlive-tabularborder失败"
|
||||
|
||||
# 测试基本功能
|
||||
LOG_INFO "测试texlive-tabularborder基本功能"
|
||||
tabularborder --version
|
||||
CHECK_RESULT $? 0 0 "获取texlive-tabularborder版本失败"
|
||||
|
||||
# 测试不支持参数的情况
|
||||
LOG_INFO "测试不支持参数的情况"
|
||||
tabularborder --invalid-arg 2>/dev/null
|
||||
if [ $? -ne 255 ]; then
|
||||
LOG_ERROR "不支持参数--invalid-arg时未返回退出码255"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境(如果之前未安装)
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-tabularborder"
|
||||
dnf remove -y texlive-tabularborder
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-tabularborder失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user