clean failed testcase for src binutils rpm binutils
This commit is contained in:
@@ -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修饰符,仅替换比归档内容新的文件"
|
||||
|
||||
@@ -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 "$@"
|
||||
Reference in New Issue
Block a user