create testcase for src texlive-split-j rpm texlive-gost-doc
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
#!/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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test documentation existence
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试文档存在性检查脚本
|
||||
|
||||
# 定义变量
|
||||
PACKAGE_NAME="texlive-gost-doc"
|
||||
|
||||
# 步骤1: 检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1: 检查软件包是否在yum源中"
|
||||
dnf list available "$PACKAGE_NAME" >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中"
|
||||
|
||||
# 步骤2: 检查当前是否已安装
|
||||
LOG_INFO "步骤2: 检查当前是否已安装"
|
||||
IS_INSTALLED=0
|
||||
if rpm -q "$PACKAGE_NAME" >/dev/null 2>&1; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
|
||||
IS_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ $IS_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: 检查文档文件是否存在"
|
||||
DOC_FILES=$(rpm -ql "$PACKAGE_NAME" | grep -E "\.(pdf|txt|html|md|tex)$" | head -5)
|
||||
if [ -z "$DOC_FILES" ]; then
|
||||
LOG_ERROR "未找到文档文件"
|
||||
CHECK_RESULT 1 0 0 "文档文件不存在"
|
||||
else
|
||||
LOG_INFO "找到文档文件:"
|
||||
echo "$DOC_FILES"
|
||||
CHECK_RESULT 0 0 0 "文档文件检查失败"
|
||||
fi
|
||||
|
||||
# 步骤5: 验证文档文件可访问性
|
||||
LOG_INFO "步骤5: 验证文档文件可访问性"
|
||||
for doc_file in $DOC_FILES; do
|
||||
if [ -f "$doc_file" ]; then
|
||||
LOG_INFO "文档文件 $doc_file 存在且可访问"
|
||||
# 检查文件大小
|
||||
file_size=$(stat -c%s "$doc_file" 2>/dev/null || echo "0")
|
||||
if [ "$file_size" -gt 0 ]; then
|
||||
LOG_INFO "文档文件 $doc_file 大小: ${file_size}字节"
|
||||
else
|
||||
LOG_ERROR "文档文件 $doc_file 大小为0"
|
||||
CHECK_RESULT 1 0 0 "文档文件 $doc_file 无效"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文档文件 $doc_file 不存在"
|
||||
CHECK_RESULT 1 0 0 "文档文件 $doc_file 不存在"
|
||||
fi
|
||||
done
|
||||
|
||||
# 步骤6: 检查文档目录结构
|
||||
LOG_INFO "步骤6: 检查文档目录结构"
|
||||
DOC_DIRS=$(rpm -ql "$PACKAGE_NAME" | grep -E "/doc/|/docs/|/documentation/" | head -5)
|
||||
if [ -n "$DOC_DIRS" ]; then
|
||||
LOG_INFO "找到文档目录:"
|
||||
echo "$DOC_DIRS"
|
||||
CHECK_RESULT 0 0 0 "文档目录检查失败"
|
||||
else
|
||||
LOG_INFO "未找到专门的文档目录,文档文件可能分布在其他目录中"
|
||||
CHECK_RESULT 0 0 0 "文档目录检查失败"
|
||||
fi
|
||||
|
||||
# 步骤7: 清理环境(如果脚本开始时未安装)
|
||||
LOG_INFO "步骤7: 清理环境"
|
||||
if [ $IS_INSTALLED -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 "$@"
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test if package is installed
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了texlive-gost-doc
|
||||
LOG_INFO "检查是否已经安装了texlive-gost-doc"
|
||||
rpm -q texlive-gost-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-gost-doc已经安装,脚本结束将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-gost-doc未安装,将在测试步骤中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-gost-doc软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-gost-doc软件包"
|
||||
dnf list available texlive-gost-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到texlive-gost-doc软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-gost-doc软件包,退出"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-gost-doc
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装texlive-gost-doc"
|
||||
dnf install -y texlive-gost-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-gost-doc失败"
|
||||
fi
|
||||
|
||||
# 验证texlive-gost-doc是否成功安装
|
||||
LOG_INFO "验证texlive-gost-doc是否成功安装"
|
||||
rpm -q texlive-gost-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texlive-gost-doc未成功安装"
|
||||
|
||||
# 如果之前未安装,则在测试结束后卸载texlive-gost-doc
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "测试结束,卸载texlive-gost-doc"
|
||||
dnf remove -y texlive-gost-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-gost-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,79 @@
|
||||
#!/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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test listing package files
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:Test listing package files
|
||||
|
||||
LOG_INFO "开始测试:列出软件包文件"
|
||||
|
||||
# 检查是否已安装 texlive-gost-doc
|
||||
LOG_INFO "步骤1:检查 texlive-gost-doc 是否已安装"
|
||||
rpm -q texlive-gost-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-gost-doc 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "texlive-gost-doc 未安装,将在测试中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 texlive-gost-doc
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 texlive-gost-doc"
|
||||
dnf list available texlive-gost-doc
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 texlive-gost-doc 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装 texlive-gost-doc"
|
||||
dnf install -y texlive-gost-doc
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-gost-doc 失败"
|
||||
fi
|
||||
|
||||
# 测试列出软件包文件
|
||||
LOG_INFO "步骤4:测试列出 texlive-gost-doc 软件包文件"
|
||||
rpm -ql texlive-gost-doc
|
||||
CHECK_RESULT $? 0 0 "列出 texlive-gost-doc 文件失败"
|
||||
|
||||
# 测试指定参数(例如:-q 参数)
|
||||
LOG_INFO "步骤5:测试 rpm -ql 命令的 -q 参数"
|
||||
rpm -ql texlive-gost-doc -q
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "rpm -ql 命令不支持 -q 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤6:清理环境,卸载 texlive-gost-doc"
|
||||
dnf remove -y texlive-gost-doc
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-gost-doc 失败"
|
||||
LOG_INFO "环境已恢复到未安装状态"
|
||||
else
|
||||
LOG_INFO "步骤6:保持 texlive-gost-doc 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:列出软件包文件"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,81 @@
|
||||
#!/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-07
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package removal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试软件包移除功能"
|
||||
|
||||
# 检查是否已经安装了texlive-gost-doc软件包
|
||||
LOG_INFO "检查texlive-gost-doc是否已安装"
|
||||
rpm -q texlive-gost-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-gost-doc已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-gost-doc未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-gost-doc软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-gost-doc软件包"
|
||||
dnf list available texlive-gost-doc
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-gost-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装texlive-gost-doc软件包"
|
||||
dnf install -y texlive-gost-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-gost-doc失败"
|
||||
LOG_INFO "texlive-gost-doc软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试移除软件包功能
|
||||
LOG_INFO "开始测试移除texlive-gost-doc软件包"
|
||||
dnf remove -y texlive-gost-doc
|
||||
CHECK_RESULT $? 0 0 "移除texlive-gost-doc失败"
|
||||
LOG_INFO "texlive-gost-doc软件包移除成功"
|
||||
|
||||
# 验证软件包是否已移除
|
||||
LOG_INFO "验证texlive-gost-doc是否已移除"
|
||||
rpm -q texlive-gost-doc
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "texlive-gost-doc移除后仍然存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "texlive-gost-doc已成功移除"
|
||||
fi
|
||||
|
||||
# 环境恢复:如果测试前未安装,则重新安装;如果测试前已安装,则保持安装状态
|
||||
if [ "$INSTALLED" = true ]; then
|
||||
LOG_INFO "测试前texlive-gost-doc已安装,重新安装以恢复环境"
|
||||
dnf install -y texlive-gost-doc
|
||||
CHECK_RESULT $? 0 0 "重新安装texlive-gost-doc失败"
|
||||
LOG_INFO "环境已恢复到测试前的安装状态"
|
||||
else
|
||||
LOG_INFO "测试前texlive-gost-doc未安装,无需恢复安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试软件包移除功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user