From 40347e7a88ba1c825bba6cc6a00eb8cb6c5c02dc Mon Sep 17 00:00:00 2001 From: Yafen Fang Date: Tue, 14 Apr 2026 10:23:13 +0800 Subject: [PATCH] openruyi: fix install pkg test --- .../or_test_gcc_build/or_test_gcc_build.sh | 2 +- .../or_test_llvm_build/or_test_llvm_build.sh | 2 +- .../pkg-test/test_pkg_function_install.sh | 97 ++++++++++++------- 3 files changed, 66 insertions(+), 35 deletions(-) diff --git a/testcases/smoke_test/openruyi/pkg-test/or_test_gcc_build/or_test_gcc_build.sh b/testcases/smoke_test/openruyi/pkg-test/or_test_gcc_build/or_test_gcc_build.sh index df6af3d357f..a526ce840f0 100644 --- a/testcases/smoke_test/openruyi/pkg-test/or_test_gcc_build/or_test_gcc_build.sh +++ b/testcases/smoke_test/openruyi/pkg-test/or_test_gcc_build/or_test_gcc_build.sh @@ -32,7 +32,7 @@ function run_test() { cd $UNIXBENCH_DIR/UnixBench sed -i 's/rv64g/rva23u64/g' Makefile make all CC='gcc -std=gnu99' - CHECK_RESULT $? 0 0 "compile UnixBench succeed" + CHECK_RESULT $? 0 0 "compile UnixBench failed" else LOG_ERROR "UnixBench 仓库克隆失败,脚本退出" exit 1 diff --git a/testcases/smoke_test/openruyi/pkg-test/or_test_llvm_build/or_test_llvm_build.sh b/testcases/smoke_test/openruyi/pkg-test/or_test_llvm_build/or_test_llvm_build.sh index 821181a1f7a..d6e193c52bf 100644 --- a/testcases/smoke_test/openruyi/pkg-test/or_test_llvm_build/or_test_llvm_build.sh +++ b/testcases/smoke_test/openruyi/pkg-test/or_test_llvm_build/or_test_llvm_build.sh @@ -33,7 +33,7 @@ function run_test() { LOG_INFO "foxi-c278588.tar.gz 下载成功" cp 0001-Fix-signatures-of-functions.patch -p build/rpmbuild/SOURCES/ rpmbuild --define '_topdir build' -ba foxi.spec - CHECK_RESULT $? 0 0 "build foxi rpm succeed" + CHECK_RESULT $? 0 0 "build foxi rpm failed" else LOG_ERROR "foxi-c278588.tar.gz 下载失败,脚本退出" exit 1 diff --git a/testcases/smoke_test/openruyi/pkg-test/test_pkg_function_install.sh b/testcases/smoke_test/openruyi/pkg-test/test_pkg_function_install.sh index 10a7d817fd9..cd2db516ecd 100644 --- a/testcases/smoke_test/openruyi/pkg-test/test_pkg_function_install.sh +++ b/testcases/smoke_test/openruyi/pkg-test/test_pkg_function_install.sh @@ -20,77 +20,108 @@ source "$OET_PATH/libs/locallibs/common_lib.sh" function pkg_install() { - pkg_test=$1 + PKG_TEST=$1 - LOG_INFO "开始测试 ${pkg_test} 软件包的安装功能" + LOG_INFO "开始测试 ${PKG_TEST} 软件包的安装功能" dnf clean all dnf makecache # 检查是否已安装 - if dnf list installed "${pkg_test}" &>/dev/null; then - LOG_INFO "检测到 ${pkg_test} 已安装,脚本将保持安装状态" + if dnf list installed "${PKG_TEST}" &>/dev/null; then + LOG_INFO "检测到 ${PKG_TEST} 已安装,脚本将保持安装状态" INSTALLED_BEFORE=true else - LOG_INFO "检测到 ${pkg_test} 未安装,将在测试中安装" + LOG_INFO "检测到 ${PKG_TEST} 未安装,将在测试中安装" INSTALLED_BEFORE=false fi # 检查 yum 源中是否存在软件包 - LOG_INFO "检查 yum 源中是否存在 ${pkg_test} 软件包" - if ! dnf list available "${pkg_test}" &>/dev/null; then - LOG_ERROR "yum 源中未找到 ${pkg_test} 软件包" + LOG_INFO "检查 yum 源中是否存在 ${PKG_TEST} 软件包" + if ! dnf list available "${PKG_TEST}" &>/dev/null; then + LOG_ERROR "yum 源中未找到 ${PKG_TEST} 软件包" exit 255 fi # 如果之前已经安装,则执行卸载步骤 if [ "$INSTALLED_BEFORE" = true ]; then - LOG_INFO "卸载 ${pkg_test} 软件包" - dnf remove -y ${pkg_test} - CHECK_RESULT $? 0 0 "卸载 ${pkg_test} 失败" + LOG_INFO "卸载 ${PKG_TEST} 软件包" + dnf remove -y ${PKG_TEST} + CHECK_RESULT $? 0 0 "卸载 ${PKG_TEST} 失败" LOG_INFO "环境已恢复到未安装状态" fi - LOG_INFO "执行安装 ${pkg_test} 软件包" - dnf install -y ${pkg_test} - CHECK_RESULT $? 0 0 "安装 ${pkg_test} 失败" + LOG_INFO "执行安装 ${PKG_TEST} 软件包" + dnf install -y ${PKG_TEST} --refresh + CHECK_RESULT $? 0 0 "安装 ${PKG_TEST} 失败" # 验证安装是否成功 - LOG_INFO "验证 ${pkg_test} 安装是否成功" - if dnf list installed ${pkg_test} &>/dev/null; then - LOG_INFO "${pkg_test} 安装验证成功" + LOG_INFO "验证 ${PKG_TEST} 安装是否成功" + if dnf list installed ${PKG_TEST} &>/dev/null; then + LOG_INFO "${PKG_TEST} 安装验证成功" else - LOG_ERROR "${pkg_test} 安装验证失败" + LOG_ERROR "${PKG_TEST} 安装验证失败" exit 1 fi - # 环境恢复:如果之前未安装,则卸载软件包 - if [ "$INSTALLED_BEFORE" = false ]; then - LOG_INFO "清理环境:卸载 ${pkg_test} 软件包" - dnf remove -y ${pkg_test} - CHECK_RESULT $? 0 0 "卸载 ${pkg_test} 失败" - LOG_INFO "环境已恢复到未安装状态" - else - LOG_INFO "保持 ${pkg_test} 已安装状态" - fi + # 验证卸载功能 + LOG_INFO "卸载 ${PKG_TEST} 软件包" + dnf remove -y ${PKG_TEST} + CHECK_RESULT $? 0 0 "卸载 ${PKG_TEST} 失败" - 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() { set -e if [ -n "$PKG_INSTALL" ]; then echo "优先使用环境变量 PKG_INSTALL: $PKG_INSTALL" - echo "$PKS_INSTALL" | tr ',' '\n' | while read -r pkg; do - pkg_install $pkg + echo "$PKG_INSTALL" | tr ',' '\n' | while read -r pkg; do + [ -n "$pkg" ] && pkg_install "$pkg" done else echo "环境变量未设置,使用默认文件路径" FILE_PATH="$OET_PATH/.os-autotest/pkg-install" - while IFS= read -r line; do - pkg_install $line - done < "$FILE_PATH" + if [ -f "$FILE_PATH" ]; then + while IFS= read -r line; do + [ -n "$line" ] && pkg_install "$line" + done < "$FILE_PATH" + else + LOG_ERROR "文件路径不存在: $FILE_PATH" + 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 "$@" \ No newline at end of file