clean failed testcase for src binutils rpm binutils

This commit is contained in:
2026-04-10 13:53:00 +08:00
parent c6bf227a62
commit cba7c7a36b
2 changed files with 0 additions and 158 deletions

View File

@@ -506,10 +506,6 @@
"name": "test_binutils_function_version",
"desc": "测试检查binutils软件包版本信息"
},
{
"name": "test_binutils_ar_upper_d",
"desc": "测试ar命令的D修饰符使用零作为时间戳和uid/gid"
},
{
"name": "test_binutils_ar_u",
"desc": "测试ar命令的u修饰符仅替换比归档内容新的文件"

View File

@@ -1,154 +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-10
# @License : Mulan PSL v2
# @Desc : 测试ar命令的D修饰符使用零作为时间戳和uid/gid
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(根据要求直接使用,但为防未定义,这里提供简单定义)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 检查命令是否存在
check_command() {
if ! command -v "$1" >/dev/null 2>&1; then
LOG_ERROR "命令 $1 不存在"
exit 255
fi
}
# 检查软件包是否在yum源中
check_package_in_repo() {
if ! dnf list available "$1" >/dev/null 2>&1; then
LOG_ERROR "软件包 $1 不在yum源中"
exit 255
fi
}
# 主测试函数
main() {
LOG_INFO "开始测试ar命令的D修饰符使用零作为时间戳和uid/gid"
# 步骤1检查环境是否已安装binutils
LOG_INFO "步骤1检查binutils是否已安装"
if rpm -q binutils >/dev/null 2>&1; then
LOG_INFO "binutils已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "binutils未安装将在测试前安装"
INSTALLED_BEFORE=false
fi
# 步骤2检查binutils是否在yum源中
LOG_INFO "步骤2检查binutils是否在yum源中"
check_package_in_repo binutils
# 步骤3如果未安装则安装binutils
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装binutils"
dnf install -y binutils
CHECK_RESULT $? 0 0 "安装binutils失败"
fi
# 步骤4检查ar命令是否存在
LOG_INFO "步骤4检查ar命令是否存在"
check_command ar
# 步骤5测试ar命令的D修饰符参数是否存在
LOG_INFO "步骤5检查ar命令是否支持D修饰符"
if ! ar --help 2>&1 | grep -q "\bD\b"; then
LOG_ERROR "ar命令不支持D修饰符"
exit 255
fi
# 步骤6创建测试文件
LOG_INFO "步骤6创建测试文件"
echo "test content" > testfile.txt
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 步骤7使用D修饰符创建归档文件
LOG_INFO "步骤7使用D修饰符创建归档文件零时间戳和uid/gid"
ar rD test.a testfile.txt
CHECK_RESULT $? 0 0 "使用D修饰符创建归档文件失败"
# 步骤8验证归档文件是否创建成功
LOG_INFO "步骤8验证归档文件是否创建成功"
if [ -f test.a ]; then
LOG_INFO "归档文件test.a创建成功"
else
LOG_ERROR "归档文件test.a未创建"
exit 1
fi
# 步骤9检查归档文件中的时间戳和uid/gid
LOG_INFO "步骤9检查归档文件中的时间戳和uid/gid"
ar tv test.a | while read line; do
# 检查时间戳是否为0
if echo "$line" | grep -q "^[rwx-]\{10\} [0-9]\{1,\}/[0-9]\{1,\}.*[0-9]\{1,\}-[A-Za-z]\{3\}-[0-9]\{1,\} [0-9]\{2\}:[0-9]\{2\}"; then
timestamp=$(echo "$line" | awk "{print $4}")
if [ "$timestamp" != "0" ]; then
LOG_ERROR "归档文件中的时间戳不为0"
exit 1
fi
fi
done
CHECK_RESULT $? 0 0 "检查归档文件时间戳和uid/gid失败"
LOG_INFO "测试步骤全部完成"
}
# 环境清理函数
cleanup() {
LOG_INFO "开始清理测试环境"
# 删除测试文件
if [ -f testfile.txt ]; then
rm -f testfile.txt
LOG_INFO "删除测试文件testfile.txt"
fi
if [ -f test.a ]; then
rm -f test.a
LOG_INFO "删除归档文件test.a"
fi
# 如果测试前未安装binutils则卸载
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载测试安装的binutils"
dnf remove -y binutils
if [ $? -ne 0 ]; then
LOG_ERROR "卸载binutils失败"
exit 1
fi
fi
LOG_INFO "环境清理完成"
}
# 设置陷阱,确保脚本退出时执行清理
trap cleanup EXIT
# 执行主测试
main
}
main "$@"