forked from redrsoe2100/os-autotest
openruyi: fix install pkg test
This commit is contained in:
@@ -32,7 +32,7 @@ function run_test() {
|
|||||||
cd $UNIXBENCH_DIR/UnixBench
|
cd $UNIXBENCH_DIR/UnixBench
|
||||||
sed -i 's/rv64g/rva23u64/g' Makefile
|
sed -i 's/rv64g/rva23u64/g' Makefile
|
||||||
make all CC='gcc -std=gnu99'
|
make all CC='gcc -std=gnu99'
|
||||||
CHECK_RESULT $? 0 0 "compile UnixBench succeed"
|
CHECK_RESULT $? 0 0 "compile UnixBench failed"
|
||||||
else
|
else
|
||||||
LOG_ERROR "UnixBench 仓库克隆失败,脚本退出"
|
LOG_ERROR "UnixBench 仓库克隆失败,脚本退出"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ function run_test() {
|
|||||||
LOG_INFO "foxi-c278588.tar.gz 下载成功"
|
LOG_INFO "foxi-c278588.tar.gz 下载成功"
|
||||||
cp 0001-Fix-signatures-of-functions.patch -p build/rpmbuild/SOURCES/
|
cp 0001-Fix-signatures-of-functions.patch -p build/rpmbuild/SOURCES/
|
||||||
rpmbuild --define '_topdir build' -ba foxi.spec
|
rpmbuild --define '_topdir build' -ba foxi.spec
|
||||||
CHECK_RESULT $? 0 0 "build foxi rpm succeed"
|
CHECK_RESULT $? 0 0 "build foxi rpm failed"
|
||||||
else
|
else
|
||||||
LOG_ERROR "foxi-c278588.tar.gz 下载失败,脚本退出"
|
LOG_ERROR "foxi-c278588.tar.gz 下载失败,脚本退出"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -20,77 +20,108 @@
|
|||||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||||
|
|
||||||
function pkg_install() {
|
function pkg_install() {
|
||||||
pkg_test=$1
|
PKG_TEST=$1
|
||||||
|
|
||||||
LOG_INFO "开始测试 ${pkg_test} 软件包的安装功能"
|
LOG_INFO "开始测试 ${PKG_TEST} 软件包的安装功能"
|
||||||
|
|
||||||
dnf clean all
|
dnf clean all
|
||||||
dnf makecache
|
dnf makecache
|
||||||
|
|
||||||
# 检查是否已安装
|
# 检查是否已安装
|
||||||
if dnf list installed "${pkg_test}" &>/dev/null; then
|
if dnf list installed "${PKG_TEST}" &>/dev/null; then
|
||||||
LOG_INFO "检测到 ${pkg_test} 已安装,脚本将保持安装状态"
|
LOG_INFO "检测到 ${PKG_TEST} 已安装,脚本将保持安装状态"
|
||||||
INSTALLED_BEFORE=true
|
INSTALLED_BEFORE=true
|
||||||
else
|
else
|
||||||
LOG_INFO "检测到 ${pkg_test} 未安装,将在测试中安装"
|
LOG_INFO "检测到 ${PKG_TEST} 未安装,将在测试中安装"
|
||||||
INSTALLED_BEFORE=false
|
INSTALLED_BEFORE=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查 yum 源中是否存在软件包
|
# 检查 yum 源中是否存在软件包
|
||||||
LOG_INFO "检查 yum 源中是否存在 ${pkg_test} 软件包"
|
LOG_INFO "检查 yum 源中是否存在 ${PKG_TEST} 软件包"
|
||||||
if ! dnf list available "${pkg_test}" &>/dev/null; then
|
if ! dnf list available "${PKG_TEST}" &>/dev/null; then
|
||||||
LOG_ERROR "yum 源中未找到 ${pkg_test} 软件包"
|
LOG_ERROR "yum 源中未找到 ${PKG_TEST} 软件包"
|
||||||
exit 255
|
exit 255
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 如果之前已经安装,则执行卸载步骤
|
# 如果之前已经安装,则执行卸载步骤
|
||||||
if [ "$INSTALLED_BEFORE" = true ]; then
|
if [ "$INSTALLED_BEFORE" = true ]; then
|
||||||
LOG_INFO "卸载 ${pkg_test} 软件包"
|
LOG_INFO "卸载 ${PKG_TEST} 软件包"
|
||||||
dnf remove -y ${pkg_test}
|
dnf remove -y ${PKG_TEST}
|
||||||
CHECK_RESULT $? 0 0 "卸载 ${pkg_test} 失败"
|
CHECK_RESULT $? 0 0 "卸载 ${PKG_TEST} 失败"
|
||||||
LOG_INFO "环境已恢复到未安装状态"
|
LOG_INFO "环境已恢复到未安装状态"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LOG_INFO "执行安装 ${pkg_test} 软件包"
|
LOG_INFO "执行安装 ${PKG_TEST} 软件包"
|
||||||
dnf install -y ${pkg_test}
|
dnf install -y ${PKG_TEST} --refresh
|
||||||
CHECK_RESULT $? 0 0 "安装 ${pkg_test} 失败"
|
CHECK_RESULT $? 0 0 "安装 ${PKG_TEST} 失败"
|
||||||
|
|
||||||
# 验证安装是否成功
|
# 验证安装是否成功
|
||||||
LOG_INFO "验证 ${pkg_test} 安装是否成功"
|
LOG_INFO "验证 ${PKG_TEST} 安装是否成功"
|
||||||
if dnf list installed ${pkg_test} &>/dev/null; then
|
if dnf list installed ${PKG_TEST} &>/dev/null; then
|
||||||
LOG_INFO "${pkg_test} 安装验证成功"
|
LOG_INFO "${PKG_TEST} 安装验证成功"
|
||||||
else
|
else
|
||||||
LOG_ERROR "${pkg_test} 安装验证失败"
|
LOG_ERROR "${PKG_TEST} 安装验证失败"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 环境恢复:如果之前未安装,则卸载软件包
|
# 验证卸载功能
|
||||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
LOG_INFO "卸载 ${PKG_TEST} 软件包"
|
||||||
LOG_INFO "清理环境:卸载 ${pkg_test} 软件包"
|
dnf remove -y ${PKG_TEST}
|
||||||
dnf remove -y ${pkg_test}
|
CHECK_RESULT $? 0 0 "卸载 ${PKG_TEST} 失败"
|
||||||
CHECK_RESULT $? 0 0 "卸载 ${pkg_test} 失败"
|
|
||||||
LOG_INFO "环境已恢复到未安装状态"
|
|
||||||
else
|
|
||||||
LOG_INFO "保持 ${pkg_test} 已安装状态"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOG_INFO "${pkg_test} 软件包安装功能测试完成"
|
# 环境恢复:如果之前已安装,则重新安装软件包
|
||||||
|
if [ "$INSTALLED_BEFORE" = true ]; then
|
||||||
|
LOG_INFO "恢复环境:安装 ${PKG_TEST} 软件包"
|
||||||
|
dnf install -y ${PKG_TEST}
|
||||||
|
CHECK_RESULT $? 0 0 "安装 ${PKG_TEST} 失败"
|
||||||
|
LOG_INFO "环境已恢复到已安装状态"
|
||||||
|
else
|
||||||
|
LOG_INFO "保持 ${PKG_TEST} 未安装状态"
|
||||||
|
fi
|
||||||
|
INSTALLED_BEFORE=""
|
||||||
|
LOG_INFO "${PKG_TEST} 软件包安装功能测试完成"
|
||||||
}
|
}
|
||||||
|
|
||||||
function run_test() {
|
function run_test() {
|
||||||
set -e
|
set -e
|
||||||
if [ -n "$PKG_INSTALL" ]; then
|
if [ -n "$PKG_INSTALL" ]; then
|
||||||
echo "优先使用环境变量 PKG_INSTALL: $PKG_INSTALL"
|
echo "优先使用环境变量 PKG_INSTALL: $PKG_INSTALL"
|
||||||
echo "$PKS_INSTALL" | tr ',' '\n' | while read -r pkg; do
|
echo "$PKG_INSTALL" | tr ',' '\n' | while read -r pkg; do
|
||||||
pkg_install $pkg
|
[ -n "$pkg" ] && pkg_install "$pkg"
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo "环境变量未设置,使用默认文件路径"
|
echo "环境变量未设置,使用默认文件路径"
|
||||||
FILE_PATH="$OET_PATH/.os-autotest/pkg-install"
|
FILE_PATH="$OET_PATH/.os-autotest/pkg-install"
|
||||||
while IFS= read -r line; do
|
if [ -f "$FILE_PATH" ]; then
|
||||||
pkg_install $line
|
while IFS= read -r line; do
|
||||||
done < "$FILE_PATH"
|
[ -n "$line" ] && pkg_install "$line"
|
||||||
|
done < "$FILE_PATH"
|
||||||
|
else
|
||||||
|
LOG_ERROR "文件路径不存在: $FILE_PATH"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function post_test() {
|
||||||
|
if [ -z "$PKG_TEST" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [ "$INSTALLED_BEFORE" = true ]; then
|
||||||
|
LOG_INFO "恢复环境:安装 ${PKG_TEST} 软件包"
|
||||||
|
dnf install -y ${PKG_TEST} --refresh
|
||||||
|
CHECK_RESULT $? 0 0 "安装 ${PKG_TEST} 失败"
|
||||||
|
LOG_INFO "环境已恢复到已安装状态"
|
||||||
|
elif [ "$INSTALLED_BEFORE" = false ]; then
|
||||||
|
if dnf list installed "${PKG_TEST}" &>/dev/null; then
|
||||||
|
LOG_INFO "清理环境:卸载 ${PKG_TEST} 软件包"
|
||||||
|
dnf remove -y ${PKG_TEST}
|
||||||
|
CHECK_RESULT $? 0 0 "卸载 ${PKG_TEST} 失败"
|
||||||
|
LOG_INFO "环境已恢复到未安装状态"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTALLED_BEFORE=""
|
||||||
|
PKG_TEST=""
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
Reference in New Issue
Block a user