update testcase for testsuite gtk3-devel

This commit is contained in:
2026-04-20 04:55:20 +08:00
parent 407283c047
commit a9f73e5773
34 changed files with 0 additions and 3012 deletions

View File

@@ -42,154 +42,6 @@
"name": "test_gtk3-devel_function_remove",
"desc": "Test the removal of gtk3-devel package"
},
{
"name": "test_gtk3-devel_gtk3-icon-browser_h",
"desc": "测试gtk3-icon-browser命令的-h参数显示帮助选项"
},
{
"name": "test_gtk3-devel_gtk3-widget-factory__h",
"desc": "测试帮助选项,验证-h参数能正常显示帮助信息"
},
{
"name": "test_gtk3-devel_gtk-builder-tool_validate",
"desc": "验证UI文件是否符合规范"
},
{
"name": "test_gtk3-devel_gtk-builder-tool_simplify",
"desc": "简化UI文件的结构"
},
{
"name": "test_gtk3-devel_gtk-builder-tool_encode",
"desc": "对UI文件进行编码转换"
},
{
"name": "test_gtk3-devel_gtk-builder-tool_preview",
"desc": "预览UI文件可能因无显示环境失败"
},
{
"name": "test_gtk3-devel_gtk-builder-tool_screenshots",
"desc": "生成UI文件的截图可能因无显示环境失败"
},
{
"name": "test_gtk3-devel_gtk-builder-tool_upper_v",
"desc": "显示gtk-builder-tool的版本信息"
},
{
"name": "test_gtk3-devel_gtk-encode-symbolic-svg_h",
"desc": "测试gtk-encode-symbolic-svg命令的帮助选项"
},
{
"name": "test_gtk3-devel_gtk-encode-symbolic-svg_help",
"desc": "测试gtk-encode-symbolic-svg命令的长格式帮助选项"
},
{
"name": "test_gtk3-devel_gtk-encode-symbolic-svg_o_output_path",
"desc": "测试gtk-encode-symbolic-svg命令使用-o选项指定输出目录"
},
{
"name": "test_gtk3-devel_gtk-encode-symbolic-svg_output_output_path",
"desc": "测试gtk-encode-symbolic-svg命令使用--output选项指定输出目录"
},
{
"name": "test_gtk3-devel_gtk-encode-symbolic-svg_basic_usage",
"desc": "测试gtk-encode-symbolic-svg命令的基本用法提供输入文件路径和尺寸参数"
},
{
"name": "test_gtk3-devel_gtk-query-settings_no_args",
"desc": "不带任何参数执行 gtk-query-settings 命令"
},
{
"name": "test_gtk3-devel_gtk-query-settings__h",
"desc": "使用 -h 参数查看 gtk-query-settings 命令的帮助信息"
},
{
"name": "test_gtk3-devel_gtk-query-settings__upper_v",
"desc": "使用 -V 参数查看 gtk-query-settings 命令的版本信息"
},
{
"name": "test_gtk3-devel_gtk3-demo_help",
"desc": "测试gtk3-demo命令的帮助选项"
},
{
"name": "test_gtk3-devel_gtk3-demo_help_all",
"desc": "测试gtk3-demo命令的显示所有帮助选项"
},
{
"name": "test_gtk3-devel_gtk3-demo_help_gapplication",
"desc": "测试gtk3-demo命令的显示GApplication帮助选项"
},
{
"name": "test_gtk3-devel_gtk3-demo_help_gtk",
"desc": "测试gtk3-demo命令的显示GTK+帮助选项"
},
{
"name": "test_gtk3-devel_gtk3-demo_version",
"desc": "测试gtk3-demo命令的版本显示功能"
},
{
"name": "test_gtk3-devel_gtk3-demo_run_example",
"desc": "测试gtk3-demo命令的运行指定示例功能"
},
{
"name": "test_gtk3-devel_gtk3-demo_list",
"desc": "测试gtk3-demo命令的列出所有示例功能"
},
{
"name": "test_gtk3-devel_gtk3-demo_autoquit",
"desc": "测试gtk3-demo命令的自动退出功能"
},
{
"name": "test_gtk3-devel_gtk3-demo_display",
"desc": "测试gtk3-demo命令的指定X显示功能"
},
{
"name": "test_gtk3-devel_gtk3-demo-application_no_args",
"desc": "测试不带任何参数运行 gtk3-demo-application 命令"
},
{
"name": "test_gtk3-devel_gtk3-demo-application_upper_v",
"desc": "测试带 -V 参数运行 gtk3-demo-application 命令以显示版本信息"
},
{
"name": "test_gtk3-devel_gtk3-demo-application_upper_h",
"desc": "测试带 -h 参数运行 gtk3-demo-application 命令以显示帮助信息"
},
{
"name": "test_gtk3-devel_gtk3-icon-browser_help_gapplication",
"desc": "测试gtk3-icon-browser命令的--help-gapplication参数显示GApplication帮助选项"
},
{
"name": "test_gtk3-icon-browser_help_gtk",
"desc": "测试gtk3-icon-browser命令的--help-gtk参数显示GTK+帮助选项"
},
{
"name": "test_gtk3-icon-browser_display",
"desc": "测试gtk3-icon-browser命令的--display参数指定要使用的X显示"
},
{
"name": "test_gtk3-devel_gtk3-widget-factory_h",
"desc": "测试使用 -h 参数获取帮助信息"
},
{
"name": "test_gtk3-devel_gtk3-widget-factory_help",
"desc": "测试使用 --help 参数获取帮助信息"
},
{
"name": "test_gtk3-devel_gtk3-widget-factory_help_all",
"desc": "测试使用 --help-all 参数获取所有帮助选项"
},
{
"name": "test_gtk3-devel_gtk3-widget-factory_help_gapplication",
"desc": "测试使用 --help-gapplication 参数获取 GApplication 选项帮助"
},
{
"name": "test_gtk3-devel_gtk3-widget-factory_help_gtk",
"desc": "测试使用 --help-gtk 参数获取 GTK+ 选项帮助"
},
{
"name": "test_gtk3-devel_function_pkgconfig",
"desc": "Test pkg-config for gtk+3 dev flags"
},
{
"name": "test_gtk3-devel_function_headers",
"desc": "Check presence of header files"
@@ -209,10 +61,6 @@
{
"name": "test_gtk3-devel_function_widget_factory",
"desc": "Test gtk3-widget-factory help"
},
{
"name": "test_gtk3-devel_function_builder_tool",
"desc": "Test gtk-builder-tool validate"
}
]
}

View File

@@ -1,98 +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-28
# @License : Mulan PSL v2
# @Desc : Test gtk-builder-tool validate
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test gtk-builder-tool validate"
# 定义软件包名称
PACKAGE_NAME="gtk3-devel"
# 步骤1: 检查yum源中是否有指定的软件包
LOG_INFO "步骤1: 检查yum源中是否有${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
# 步骤2: 检查是否已安装指定软件包
LOG_INFO "步骤2: 检查是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
INSTALLED=$?
# 步骤3: 如果未安装,则安装软件包
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "步骤3: 安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
else
LOG_INFO "步骤3: ${PACKAGE_NAME}已安装,跳过安装步骤"
fi
# 步骤4: 检查gtk-builder-tool命令是否支持validate参数
LOG_INFO "步骤4: 检查gtk-builder-tool命令是否支持validate参数"
gtk-builder-tool --help 2>&1 | grep -q "validate"
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-builder-tool命令不支持validate参数"
exit 255
fi
# 步骤5: 创建一个简单的UI文件用于测试
LOG_INFO "步骤5: 创建一个简单的UI文件用于测试"
TEST_UI_FILE="/tmp/test_ui.ui"
cat > ${TEST_UI_FILE} << "EOF"
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window">
<property name="title">Test Window</property>
<child>
<object class="GtkButton" id="button">
<property name="label">Click Me</property>
</object>
</child>
</object>
</interface>
EOF
CHECK_RESULT $? 0 0 "创建UI文件失败"
# 步骤6: 使用gtk-builder-tool validate验证UI文件
LOG_INFO "步骤6: 使用gtk-builder-tool validate验证UI文件"
gtk-builder-tool validate ${TEST_UI_FILE}
CHECK_RESULT $? 0 0 "gtk-builder-tool validate验证失败"
# 步骤7: 清理测试UI文件
LOG_INFO "步骤7: 清理测试UI文件"
rm -f ${TEST_UI_FILE}
CHECK_RESULT $? 0 0 "清理UI文件失败"
# 步骤8: 如果测试前未安装软件包,则在测试结束后卸载
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "步骤8: 卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
else
LOG_INFO "步骤8: 测试前已安装${PACKAGE_NAME},保持安装状态"
fi
LOG_INFO "测试完成Test gtk-builder-tool validate"
}
main "$@"

View File

@@ -1,120 +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-28
# @License : Mulan PSL v2
# @Desc : Test pkg-config for gtk+3 dev flags
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 gtk+3 开发标志的 pkg-config 功能
LOG_INFO "开始测试Test pkg-config for gtk+3 dev flags"
# 定义软件包名称
PACKAGE_NAME="gtk3-devel"
# 步骤1检查软件包是否已在yum源中
LOG_INFO "步骤1检查yum源中是否存在软件包 ${PACKAGE_NAME}"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
exit 255
fi
# 步骤2检查当前环境中是否已安装软件包
LOG_INFO "步骤2检查当前环境中是否已安装软件包 ${PACKAGE_NAME}"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,标记为已安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,标记为未安装状态"
ALREADY_INSTALLED=0
fi
# 步骤3如果未安装则安装软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "步骤3安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 步骤4测试 pkg-config 命令是否存在
LOG_INFO "步骤4检查 pkg-config 命令是否存在"
command -v pkg-config >/dev/null 2>&1
CHECK_RESULT $? 0 0 "pkg-config 命令不存在"
# 步骤5测试 pkg-config 是否支持 gtk+-3.0 模块
LOG_INFO "步骤5测试 pkg-config 是否支持 gtk+-3.0 模块"
pkg-config --list-all | grep -q "gtk+-3.0"
CHECK_RESULT $? 0 0 "pkg-config 不支持 gtk+-3.0 模块"
# 步骤6测试获取 gtk+-3.0 的 cflags
LOG_INFO "步骤6测试获取 gtk+-3.0 的 cflags"
GTK_CFLAGS=$(pkg-config --cflags gtk+-3.0 2>/dev/null)
CHECK_RESULT $? 0 0 "获取 gtk+-3.0 的 cflags 失败"
# 步骤7验证 cflags 是否包含必要的头文件路径
LOG_INFO "步骤7验证 cflags 是否包含必要的头文件路径"
echo "${GTK_CFLAGS}" | grep -q "-I"
CHECK_RESULT $? 0 0 "cflags 中未包含头文件路径"
# 步骤8测试获取 gtk+-3.0 的 libs
LOG_INFO "步骤8测试获取 gtk+-3.0 的 libs"
GTK_LIBS=$(pkg-config --libs gtk+-3.0 2>/dev/null)
CHECK_RESULT $? 0 0 "获取 gtk+-3.0 的 libs 失败"
# 步骤9验证 libs 是否包含必要的库文件
LOG_INFO "步骤9验证 libs 是否包含必要的库文件"
echo "${GTK_LIBS}" | grep -q "-l"
CHECK_RESULT $? 0 0 "libs 中未包含库文件"
# 步骤10测试 pkg-config 的 --modversion 参数
LOG_INFO "步骤10测试 pkg-config 的 --modversion 参数"
GTK_VERSION=$(pkg-config --modversion gtk+-3.0 2>/dev/null)
CHECK_RESULT $? 0 0 "获取 gtk+-3.0 版本信息失败"
# 步骤11验证版本号格式
LOG_INFO "步骤11验证版本号格式"
echo "${GTK_VERSION}" | grep -qE "^[0-9]+\.[0-9]+\.[0-9]+"
CHECK_RESULT $? 0 0 "版本号格式不正确: ${GTK_VERSION}"
LOG_INFO "pkg-config 报告 gtk+-3.0 版本为: ${GTK_VERSION}"
# 步骤12测试 pkg-config 的 --exists 参数
LOG_INFO "步骤12测试 pkg-config 的 --exists 参数"
pkg-config --exists gtk+-3.0
CHECK_RESULT $? 0 0 "pkg-config --exists 检查失败"
# 步骤13测试 pkg-config 的 --atleast-version 参数
LOG_INFO "步骤13测试 pkg-config 的 --atleast-version 参数"
pkg-config --atleast-version=3.0.0 gtk+-3.0
CHECK_RESULT $? 0 0 "pkg-config --atleast-version 检查失败"
# 步骤14清理环境
LOG_INFO "步骤14清理环境"
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "卸载测试期间安装的软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
LOG_INFO "环境已恢复到测试前的状态"
else
LOG_INFO "软件包 ${PACKAGE_NAME} 原本已安装,保持安装状态"
fi
LOG_INFO "测试完成pkg-config for gtk+3 dev flags 功能测试通过"
}
main "$@"

View File

@@ -1,81 +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-28
# @License : Mulan PSL v2
# @Desc : 对UI文件进行编码转换
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试对UI文件进行编码转换"
LOG_INFO "步骤1检查是否已安装gtk3-devel和gtk-builder-tool软件包"
if rpm -q gtk3-devel gtk-builder-tool > /dev/null 2>&1; then
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "步骤2检查yum源中是否存在gtk3-devel和gtk-builder-tool软件包"
if ! dnf list available gtk3-devel gtk-builder-tool > /dev/null 2>&1; then
LOG_ERROR "yum源中缺少gtk3-devel或gtk-builder-tool软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装gtk3-devel和gtk-builder-tool软件包"
dnf install -y gtk3-devel gtk-builder-tool
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
LOG_INFO "步骤4创建一个测试用的UI文件"
cat > test.ui << EOF
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window">
<property name="title">Test Window</property>
</object>
</interface>
EOF
CHECK_RESULT $? 0 0 "创建UI文件失败"
LOG_INFO "步骤5使用gtk-builder-tool encode命令对UI文件进行编码转换"
gtk-builder-tool encode test.ui test.out
CHECK_RESULT $? 0 0 "编码转换失败"
LOG_INFO "步骤6验证编码转换后的文件是否存在"
if [ -f test.out ]; then
LOG_INFO "编码转换成功,输出文件已生成"
else
LOG_ERROR "编码转换失败,输出文件未生成"
exit 1
fi
LOG_INFO "步骤7清理测试过程中创建的文件"
rm -f test.ui test.out
CHECK_RESULT $? 0 0 "清理测试文件失败"
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤8卸载测试过程中安装的软件包"
dnf remove -y gtk3-devel gtk-builder-tool
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试完成对UI文件进行编码转换"
}
main "$@"

View File

@@ -1,101 +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-28
# @License : Mulan PSL v2
# @Desc : 预览UI文件可能因无显示环境失败
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试gtk3-devel包中的gtk-builder-tool preview功能"
LOG_INFO "步骤1检查gtk3-devel软件包是否在yum源中"
dnf list available gtk3-devel 2>/dev/null | grep -q gtk3-devel
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
LOG_INFO "步骤2检查当前环境中gtk3-devel是否已安装"
rpm -q gtk3-devel >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gtk3-devel已安装标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "gtk3-devel未安装标记为未安装状态"
INSTALLED="false"
fi
LOG_INFO "步骤3若未安装则安装gtk3-devel软件包"
if [ "$INSTALLED" = "false" ]; then
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel失败"
LOG_INFO "gtk3-devel安装成功"
fi
LOG_INFO "步骤4检查gtk-builder-tool命令是否存在"
which gtk-builder-tool >/dev/null 2>&1
CHECK_RESULT $? 0 0 "gtk-builder-tool命令不存在"
LOG_INFO "步骤5检查gtk-builder-tool preview参数是否支持"
gtk-builder-tool --help 2>&1 | grep -q preview
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-builder-tool不支持preview参数"
exit 255
fi
LOG_INFO "步骤6创建一个临时的简单UI文件用于测试"
cat > /tmp/test_ui.ui << EOF
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window">
<property name="title">Test Window</property>
<child>
<object class="GtkButton" id="button">
<property name="label">Test Button</property>
</object>
</child>
</object>
</interface>
EOF
LOG_INFO "步骤7使用gtk-builder-tool preview预览UI文件"
gtk-builder-tool preview /tmp/test_ui.ui 2>&1
PREVIEW_RESULT=$?
if [ $PREVIEW_RESULT -ne 0 ]; then
LOG_INFO "gtk-builder-tool preview执行失败退出码$PREVIEW_RESULT"
if [ $PREVIEW_RESULT -eq 255 ]; then
LOG_INFO "失败原因:参数不支持或无显示环境"
fi
CHECK_RESULT $PREVIEW_RESULT 0 255 "gtk-builder-tool preview执行失败"
fi
LOG_INFO "步骤8清理临时UI文件"
rm -f /tmp/test_ui.ui
LOG_INFO "步骤9环境恢复"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载测试安装的gtk3-devel软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel失败"
LOG_INFO "gtk3-devel卸载成功"
else
LOG_INFO "保持gtk3-devel安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,80 +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-28
# @License : Mulan PSL v2
# @Desc : 生成UI文件的截图可能因无显示环境失败
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试gtk3-devel软件包中gtk-builder-tool命令的截图功能"
LOG_INFO "检查当前环境中是否已安装gtk3-devel软件包"
if rpm -q gtk3-devel > /dev/null 2>&1; then
LOG_INFO "gtk3-devel软件包已安装测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "gtk3-devel软件包未安装将在测试过程中安装"
already_installed=0
fi
LOG_INFO "检查yum源中是否存在gtk3-devel软件包"
if ! dnf list available gtk3-devel > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "安装gtk3-devel软件包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel软件包失败"
fi
LOG_INFO "检查gtk-builder-tool命令是否支持screenshots参数"
if ! gtk-builder-tool --help | grep -q "screenshots"; then
LOG_ERROR "gtk-builder-tool命令不支持screenshots参数"
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "清理环境卸载已安装的gtk3-devel软件包"
dnf remove -y gtk3-devel
fi
exit 255
fi
LOG_INFO "尝试生成UI文件的截图可能因无显示环境失败"
gtk-builder-tool screenshots > /dev/null 2>&1
screenshot_result=$?
if [ ${screenshot_result} -eq 0 ]; then
LOG_INFO "截图生成成功"
else
LOG_INFO "截图生成失败(可能由于缺少显示环境,此为预期情况之一)"
fi
LOG_INFO "检查gtk-builder-tool命令是否正常执行不检查具体结果"
CHECK_RESULT ${screenshot_result} 0 "0 1 2" "gtk-builder-tool命令执行异常"
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "清理环境卸载已安装的gtk3-devel软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel软件包失败"
else
LOG_INFO "保持gtk3-devel软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,97 +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-28
# @License : Mulan PSL v2
# @Desc : 简化UI文件的结构
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试简化UI文件的结构"
LOG_INFO "步骤1: 检查gtk3-devel软件包是否在yum源中可用"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
LOG_INFO "步骤2: 检查gtk-builder-tool命令是否可用"
command -v gtk-builder-tool > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gtk-builder-tool已安装记录当前状态"
INSTALLED="true"
else
LOG_INFO "gtk-builder-tool未安装将进行安装"
INSTALLED="false"
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3: 安装gtk3-devel软件包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel失败"
fi
LOG_INFO "步骤4: 验证gtk-builder-tool命令的simplify参数"
gtk-builder-tool simplify --help 2>&1 | grep -q "\-\-simplify"
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-builder-tool不支持simplify参数"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "清理: 卸载安装的软件包"
dnf remove -y gtk3-devel
fi
exit 255
fi
LOG_INFO "步骤5: 创建一个简单的UI文件用于测试"
cat > test_ui.xml << "EOF"
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window">
<property name="title">Test Window</property>
<child>
<object class="GtkButton" id="button">
<property name="label">Click Me</property>
</object>
</child>
</object>
</interface>
EOF
CHECK_RESULT $? 0 0 "创建UI文件失败"
LOG_INFO "步骤6: 使用gtk-builder-tool simplify简化UI文件"
gtk-builder-tool simplify test_ui.xml > simplified_ui.xml
CHECK_RESULT $? 0 0 "简化UI文件失败"
LOG_INFO "步骤7: 检查简化后的UI文件是否非空"
[ -s simplified_ui.xml ]
CHECK_RESULT $? 0 0 "简化后的UI文件为空"
LOG_INFO "步骤8: 清理测试文件"
rm -f test_ui.xml simplified_ui.xml
CHECK_RESULT $? 0 0 "删除测试文件失败"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤9: 卸载安装的软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel失败"
else
LOG_INFO "步骤9: 保持原有安装状态,无需卸载"
fi
LOG_INFO "测试完成简化UI文件的结构"
}
main "$@"

View File

@@ -1,75 +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-28
# @License : Mulan PSL v2
# @Desc : 显示gtk-builder-tool的版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本开始
# 步骤1检查yum源中是否存在gtk3-devel软件包
LOG_INFO "检查yum源中是否存在gtk3-devel软件包"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
# 步骤2检查环境是否已经安装gtk3-devel软件包
LOG_INFO "检查环境是否已经安装gtk3-devel软件包"
rpm -q gtk3-devel > /dev/null 2>&1
INSTALLED=$?
# 步骤3如果未安装则安装gtk3-devel软件包
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "开始安装gtk3-devel软件包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel软件包失败"
fi
# 步骤4检查gtk-builder-tool命令是否可用
LOG_INFO "检查gtk-builder-tool命令是否可用"
which gtk-builder-tool > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-builder-tool命令不存在"
exit 255
fi
# 步骤5检查gtk-builder-tool是否支持--version参数
LOG_INFO "检查gtk-builder-tool是否支持--version参数"
gtk-builder-tool --version > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-builder-tool不支持--version参数"
exit 255
fi
# 步骤6执行gtk-builder-tool --version命令并检查结果
LOG_INFO "执行gtk-builder-tool --version命令"
gtk-builder-tool --version
CHECK_RESULT $? 0 0 "执行gtk-builder-tool --version命令失败"
# 步骤7环境恢复
if [ $INSTALLED -ne 0 ]; then
LOG_INFO "卸载gtk3-devel软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel软件包失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,90 +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-28
# @License : Mulan PSL v2
# @Desc : 验证UI文件是否符合规范
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试验证UI文件是否符合规范"
LOG_INFO "步骤1检查yum源中是否存在gtk3-devel和gtk-builder-tool软件包"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在gtk3-devel软件包"
exit 255
fi
dnf list available gtk-builder-tool > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在gtk-builder-tool软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装gtk3-devel和gtk-builder-tool"
rpm -q gtk3-devel > /dev/null 2>&1
gtk3_devel_installed=$?
rpm -q gtk-builder-tool > /dev/null 2>&1
gtk_builder_tool_installed=$?
if [ $gtk3_devel_installed -eq 0 ] && [ $gtk_builder_tool_installed -eq 0 ]; then
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
installed_before_test=true
else
LOG_INFO "软件包未安装,测试前将进行安装,测试结束后将卸载"
installed_before_test=false
fi
LOG_INFO "步骤3安装必要的软件包"
if [ "$installed_before_test" = false ]; then
dnf install -y gtk3-devel gtk-builder-tool > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk-builder-tool失败"
fi
LOG_INFO "步骤4检查gtk-builder-tool是否支持validate参数"
gtk-builder-tool validate --help 2>&1 | grep -q "validate"
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-builder-tool不支持validate参数"
if [ "$installed_before_test" = false ]; then
dnf remove -y gtk3-devel gtk-builder-tool > /dev/null 2>&1
fi
exit 255
fi
LOG_INFO "步骤5创建一个简单的UI文件用于测试"
cat > test_ui.xml << "EOF"
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window">
<property name="title">Test Window</property>
<child>
<object class="GtkButton" id="button">
<property name="label">Click Me</property>
</object>
</child>
</object>
</interface>
EOF
CHECK_RESULT $? 0 0 "创建UI文件失败"
LOG_INFO "步骤6使用gtk-builder-tool validate验证UI文件"
gtk-builder-tool validate test_ui.xml
CHECK_RESULT $? 0 0 "UI文件不符合规范"
LOG_INFO "步骤7清理测试文件"
rm -f test_ui.xml
CHECK_RESULT $? 0 0 "删除测试文件失败"
LOG_INFO "步骤8恢复环境"
if [ "$installed_before_test" = false ]; then
dnf remove -y gtk3-devel gtk-builder-tool > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk-builder-tool失败"
fi
LOG_INFO "测试完成验证UI文件是否符合规范"
}
main "$@"

View File

@@ -1,67 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk-encode-symbolic-svg命令的帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试gtk-encode-symbolic-svg命令的帮助选项"
LOG_INFO "检查是否已安装gtk3-devel软件包"
rpm -q gtk3-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gtk3-devel软件包已安装测试后保持安装状态"
INSTALLED=1
else
LOG_INFO "gtk3-devel软件包未安装将在测试中安装"
INSTALLED=0
fi
LOG_INFO "检查yum源中是否存在gtk3-devel软件包"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装gtk3-devel软件包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel软件包失败"
fi
LOG_INFO "检查gtk-encode-symbolic-svg命令是否存在"
command -v gtk-encode-symbolic-svg > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-encode-symbolic-svg命令不存在"
if [ $INSTALLED -eq 0 ]; then
dnf remove -y gtk3-devel
fi
exit 255
fi
LOG_INFO "测试gtk-encode-symbolic-svg命令的帮助选项"
gtk-encode-symbolic-svg --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gtk-encode-symbolic-svg命令帮助选项执行失败"
LOG_INFO "清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载gtk3-devel软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel软件包失败"
else
LOG_INFO "保持gtk3-devel软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,68 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk-encode-symbolic-svg命令的长格式帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "1. 检查软件包 gtk3-devel 是否在 yum 源中"
if ! dnf list available gtk3-devel 2>/dev/null | grep -q "^gtk3-devel"; then
LOG_ERROR "软件包 gtk3-devel 不在 yum 源中"
exit 255
fi
LOG_INFO "2. 检查当前环境中是否已安装 gtk3-devel"
if rpm -q gtk3-devel > /dev/null 2>&1; then
LOG_INFO "软件包 gtk3-devel 已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "软件包 gtk3-devel 未安装,将在测试前安装,并在测试后卸载"
INSTALLED_BEFORE_TEST=false
fi
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "3. 安装软件包 gtk3-devel"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装 gtk3-devel 失败"
fi
LOG_INFO "4. 检查命令 gtk-encode-symbolic-svg 是否支持 --help 选项"
if ! gtk-encode-symbolic-svg --help > /dev/null 2>&1; then
LOG_ERROR "命令 gtk-encode-symbolic-svg 不支持 --help 选项或参数不存在"
exit 255
fi
LOG_INFO "5. 执行测试:测试 gtk-encode-symbolic-svg 命令的长格式帮助选项"
gtk-encode-symbolic-svg --help
CHECK_RESULT $? 0 0 "执行 gtk-encode-symbolic-svg --help 命令失败"
LOG_INFO "6. 环境清理:根据测试前的安装状态决定是否卸载软件包"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载在测试过程中安装的软件包 gtk3-devel"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载 gtk3-devel 失败"
else
LOG_INFO "测试前软件包已安装,测试结束后保持安装状态,无需卸载"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,103 +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-28
# @License : Mulan PSL v2
# @Desc : 使用 -h 参数查看 gtk-query-settings 命令的帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(实际环境中可能已定义,这里为了脚本完整性提供默认定义)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 定义软件包名称和命令
PACKAGE_NAME="gtk3-devel"
COMMAND="gtk-query-settings"
PARAM="-h"
# 步骤1检查软件包是否已在yum源中
LOG_INFO "步骤1检查软件包是否在yum源中"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 步骤2检查软件包是否已安装
LOG_INFO "步骤2检查软件包是否已安装"
rpm -q ${PACKAGE_NAME} &>/dev/null
PACKAGE_INSTALLED=$?
# 步骤3如果未安装则安装软件包
if [ ${PACKAGE_INSTALLED} -ne 0 ]; then
LOG_INFO "步骤3安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
INSTALLED_BY_SCRIPT=1
else
LOG_INFO "步骤3软件包 ${PACKAGE_NAME} 已安装,跳过安装"
INSTALLED_BY_SCRIPT=0
fi
# 步骤4检查命令是否存在
LOG_INFO "步骤4检查命令 ${COMMAND} 是否存在"
which ${COMMAND} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${COMMAND} 不存在"
# 如果是由脚本安装的,则卸载
if [ ${INSTALLED_BY_SCRIPT} -eq 1 ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 步骤5检查参数是否支持
LOG_INFO "步骤5检查参数 ${PARAM} 是否支持"
${COMMAND} --help 2>&1 | grep -q "\-h"
if [ $? -ne 0 ]; then
LOG_ERROR "参数 ${PARAM} 不被支持"
# 如果是由脚本安装的,则卸载
if [ ${INSTALLED_BY_SCRIPT} -eq 1 ]; then
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 步骤6执行命令查看帮助信息
LOG_INFO "步骤6执行命令 ${COMMAND} ${PARAM} 查看帮助信息"
${COMMAND} ${PARAM}
CHECK_RESULT $? 0 0 "执行命令 ${COMMAND} ${PARAM} 失败"
# 步骤7清理环境
LOG_INFO "步骤7清理环境"
if [ ${INSTALLED_BY_SCRIPT} -eq 1 ]; then
LOG_INFO "卸载由脚本安装的软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
else
LOG_INFO "软件包 ${PACKAGE_NAME} 由环境预装,保持安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,84 +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-28
# @License : Mulan PSL v2
# @Desc : 使用 -V 参数查看 gtk-query-settings 命令的版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用 -V 参数查看 gtk-query-settings 命令的版本信息"
LOG_INFO "步骤1检查环境是否已安装 gtk3-devel 软件包"
rpm -q gtk3-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "环境已安装 gtk3-devel保持安装状态"
already_installed=1
else
LOG_INFO "环境未安装 gtk3-devel将在测试步骤中安装"
already_installed=0
fi
LOG_INFO "步骤2检查 yum 源中是否存在 gtk3-devel 软件包"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 gtk3-devel 软件包"
exit 255
fi
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3安装 gtk3-devel 软件包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装 gtk3-devel 失败"
fi
LOG_INFO "步骤4检查 gtk-query-settings 命令是否存在"
which gtk-query-settings > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-query-settings 命令不存在"
if [ $already_installed -eq 0 ]; then
LOG_INFO "清理环境:卸载已安装的 gtk3-devel 软件包"
dnf remove -y gtk3-devel
fi
exit 255
fi
LOG_INFO "步骤5检查 gtk-query-settings 命令是否支持 -V 参数"
gtk-query-settings -V --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk-query-settings 命令不支持 -V 参数"
if [ $already_installed -eq 0 ]; then
LOG_INFO "清理环境:卸载已安装的 gtk3-devel 软件包"
dnf remove -y gtk3-devel
fi
exit 255
fi
LOG_INFO "步骤6执行 gtk-query-settings -V 命令查看版本信息"
gtk-query-settings -V
CHECK_RESULT $? 0 0 "执行 gtk-query-settings -V 命令失败"
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤7清理环境卸载 gtk3-devel 软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载 gtk3-devel 失败"
else
LOG_INFO "环境已安装 gtk3-devel保持安装状态无需卸载"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,79 +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-28
# @License : Mulan PSL v2
# @Desc : 不带任何参数执行 gtk-query-settings 命令
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="gtk3-devel"
COMMAND_NAME="gtk-query-settings"
LOG_INFO "测试开始: 不带任何参数执行 ${COMMAND_NAME} 命令"
LOG_INFO "步骤1: 检查系统中是否已安装 ${PACKAGE_NAME} 软件包"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=1
else
LOG_INFO "${PACKAGE_NAME} 未安装,将在测试步骤中安装,并在测试结束后卸载"
INSTALLED_BEFORE_TEST=0
fi
LOG_INFO "步骤2: 检查 yum 源中是否存在 ${PACKAGE_NAME} 软件包"
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum 源中未找到 ${PACKAGE_NAME} 软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 ${PACKAGE_NAME} 软件包,退出测试"
exit 255
fi
if [ ${INSTALLED_BEFORE_TEST} -eq 0 ]; then
LOG_INFO "步骤3: 安装 ${PACKAGE_NAME} 软件包"
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 软件包失败"
fi
LOG_INFO "步骤4: 检查 ${COMMAND_NAME} 命令是否存在"
which ${COMMAND_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "${COMMAND_NAME} 命令不存在或未安装"
if [ $? -ne 0 ]; then
LOG_ERROR "${COMMAND_NAME} 命令不存在,退出测试"
if [ ${INSTALLED_BEFORE_TEST} -eq 0 ]; then
LOG_INFO "清理环境: 卸载 ${PACKAGE_NAME} 软件包"
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
fi
exit 255
fi
LOG_INFO "步骤5: 不带任何参数执行 ${COMMAND_NAME} 命令"
${COMMAND_NAME}
CHECK_RESULT $? 0 0 "执行 ${COMMAND_NAME} 命令失败"
LOG_INFO "步骤6: 清理测试环境"
if [ ${INSTALLED_BEFORE_TEST} -eq 0 ]; then
LOG_INFO "卸载 ${PACKAGE_NAME} 软件包"
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 软件包失败"
else
LOG_INFO "测试前已安装 ${PACKAGE_NAME},保持安装状态"
fi
LOG_INFO "测试结束"
}
main "$@"

View File

@@ -1,68 +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-28
# @License : Mulan PSL v2
# @Desc : 测试不带任何参数运行 gtk3-demo-application 命令
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试不带任何参数运行gtk3-demo-application命令"
# 检查yum源中是否存在gtk3-devel和gtk3-demo-application软件包
LOG_INFO "检查yum源中是否存在gtk3-devel和gtk3-demo-application软件包"
dnf list available gtk3-devel gtk3-demo-application &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在gtk3-devel或gtk3-demo-application软件包"
exit 255
fi
# 检查是否已安装gtk3-devel和gtk3-demo-application
LOG_INFO "检查是否已安装gtk3-devel和gtk3-demo-application"
rpm -q gtk3-devel gtk3-demo-application &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "软件包未安装,将在测试前安装并在测试后卸载"
already_installed=false
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装gtk3-devel和gtk3-demo-application软件包"
dnf install -y gtk3-devel gtk3-demo-application
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo-application失败"
fi
# 测试不带任何参数运行gtk3-demo-application命令
LOG_INFO "执行不带任何参数的gtk3-demo-application命令"
gtk3-demo-application
CHECK_RESULT $? 0 0 "不带参数运行gtk3-demo-application命令失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载gtk3-devel和gtk3-demo-application软件包"
dnf remove -y gtk3-devel gtk3-demo-application
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo-application失败"
else
LOG_INFO "测试前软件包已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,96 +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-28
# @License : Mulan PSL v2
# @Desc : 测试带 -h 参数运行 gtk3-demo-application 命令以显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $1"
}
LOG_ERROR() {
echo "[ERROR] $1"
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expected=$2
local error_code=$3
local error_msg=$4
if [ "$actual" -ne "$expected" ]; then
LOG_ERROR "$error_msg"
exit "$error_code"
fi
}
# 定义SSH命令函数
SSH_CMD() {
local cmd=$1
local node_ip=$2
local node_password=$3
local node_user=$4
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
}
# 定义软件包列表
PACKAGES=("gtk3-devel" "gtk3-demo-application")
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在软件包..."
for pkg in "${PACKAGES[@]}"; do
dnf list available "$pkg" &>/dev/null
CHECK_RESULT $? 0 255 "yum源中不存在软件包: $pkg"
done
# 检查是否已安装软件包
LOG_INFO "检查环境是否已安装软件包..."
installed=false
for pkg in "${PACKAGES[@]}"; do
if rpm -q "$pkg" &>/dev/null; then
LOG_INFO "软件包 $pkg 已安装"
installed=true
fi
done
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装软件包..."
dnf install -y "${PACKAGES[@]}"
CHECK_RESULT $? 0 $? "安装软件包失败"
fi
# 测试带 -h 参数运行 gtk3-demo-application 命令以显示帮助信息
LOG_INFO "测试带 -h 参数运行 gtk3-demo-application 命令..."
gtk3-demo-application -h &>/dev/null
CHECK_RESULT $? 0 255 "gtk3-demo-application 命令不支持 -h 参数"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载软件包..."
dnf remove -y "${PACKAGES[@]}"
CHECK_RESULT $? 0 $? "卸载软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,119 +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-28
# @License : Mulan PSL v2
# @Desc : 测试带 -V 参数运行 gtk3-demo-application 命令以显示版本信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本:测试带 -V 参数运行 gtk3-demo-application 命令以显示版本信息
# 定义软件包名称
PACKAGE_NAME="gtk3-devel"
DEMO_PACKAGE="gtk3-demo-application"
# 检查yum源中是否有指定软件包
check_package_availability() {
LOG_INFO "检查yum源中是否存在 $1 软件包"
dnf list available $1 &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在 $1 软件包"
exit 255
fi
LOG_INFO "yum源中存在 $1 软件包"
}
# 检查命令是否支持指定参数
check_command_option() {
LOG_INFO "检查命令 $1 是否支持参数 $2"
$1 --help 2>/dev/null | grep -q "\s$2\s"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $1 不支持参数 $2"
exit 255
fi
LOG_INFO "命令 $1 支持参数 $2"
}
# 检查软件包是否已安装
check_installed() {
LOG_INFO "检查 $1 软件包是否已安装"
rpm -q $1 &>/dev/null
return $?
}
# 安装软件包
install_package() {
LOG_INFO "安装 $1 软件包"
dnf install -y $1
CHECK_RESULT $? 0 0 "安装 $1 软件包失败"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载 $1 软件包"
dnf remove -y $1
CHECK_RESULT $? 0 0 "卸载 $1 软件包失败"
}
# 主测试逻辑
main() {
LOG_INFO "开始测试:测试带 -V 参数运行 gtk3-demo-application 命令以显示版本信息"
# 检查软件包在yum源中的可用性
check_package_availability $PACKAGE_NAME
check_package_availability $DEMO_PACKAGE
# 记录初始安装状态
check_installed $DEMO_PACKAGE
INITIAL_INSTALL_STATUS=$?
# 记录需要清理的软件包列表
TO_CLEANUP=""
# 如果未安装,则安装软件包
if [ $INITIAL_INSTALL_STATUS -ne 0 ]; then
LOG_INFO "检测到 $DEMO_PACKAGE 未安装,开始安装"
install_package $DEMO_PACKAGE
TO_CLEANUP="$DEMO_PACKAGE"
else
LOG_INFO "检测到 $DEMO_PACKAGE 已安装,跳过安装步骤"
fi
# 检查gtk3-demo-application命令是否支持-V参数
check_command_option "gtk3-demo-application" "-V"
# 执行测试:使用-V参数运行gtk3-demo-application命令
LOG_INFO "执行测试:运行 gtk3-demo-application -V 命令"
gtk3-demo-application -V
CHECK_RESULT $? 0 0 "运行 gtk3-demo-application -V 命令失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ -n "$TO_CLEANUP" ]; then
LOG_INFO "清理环境:卸载测试期间安装的软件包"
uninstall_package $TO_CLEANUP
else
LOG_INFO "无需清理环境,保持原有安装状态"
fi
LOG_INFO "测试完成"
}
# 执行主函数
main
}
main "$@"

View File

@@ -1,76 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的自动退出功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试gtk3-demo命令的自动退出功能"
# 检查环境是否已安装gtk3-devel和gtk3-demo
LOG_INFO "步骤1检查gtk3-devel和gtk3-demo是否已安装"
if rpm -q gtk3-devel >/dev/null 2>&1 && rpm -q gtk3-demo >/dev/null 2>&1; then
LOG_INFO "gtk3-devel和gtk3-demo已安装测试结束后将保持安装状态"
already_installed=1
else
LOG_INFO "gtk3-devel和gtk3-demo未安装将在测试前安装"
already_installed=0
fi
# 检查yum源中是否有gtk3-devel和gtk3-demo
LOG_INFO "步骤2检查yum源中是否有gtk3-devel和gtk3-demo"
if ! dnf list available gtk3-devel gtk3-demo >/dev/null 2>&1; then
LOG_ERROR "yum源中没有gtk3-devel或gtk3-demo软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "步骤3安装gtk3-devel和gtk3-demo"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo失败"
fi
# 检查gtk3-demo命令是否支持--help参数
LOG_INFO "步骤4检查gtk3-demo命令是否支持--help参数"
if ! gtk3-demo --help >/dev/null 2>&1; then
LOG_ERROR "gtk3-demo命令不支持--help参数"
exit 255
fi
# 测试gtk3-demo命令的自动退出功能
LOG_INFO "步骤5测试gtk3-demo命令的自动退出功能"
timeout 5s gtk3-demo --quit
CHECK_RESULT $? 124 0 "gtk3-demo命令未在5秒内自动退出"
# 清理环境
LOG_INFO "步骤6清理环境"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载测试安装的gtk3-devel和gtk3-demo"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo失败"
else
LOG_INFO "保持gtk3-devel和gtk3-demo的安装状态"
fi
LOG_INFO "gtk3-demo命令的自动退出功能测试完成"
}
main "$@"

View File

@@ -1,82 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的指定X显示功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 检查gtk3-devel和gtk3-demo包是否存在
LOG_INFO "检查yum源中是否存在gtk3-devel和gtk3-demo包"
if ! dnf list available gtk3-devel > /dev/null 2>&1; then
LOG_ERROR "yum源中不存在gtk3-devel包"
exit 255
fi
if ! dnf list available gtk3-demo > /dev/null 2>&1; then
LOG_ERROR "yum源中不存在gtk3-demo包"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查gtk3-devel和gtk3-demo是否已安装"
installed=false
if rpm -q gtk3-devel > /dev/null 2>&1 && rpm -q gtk3-demo > /dev/null 2>&1; then
installed=true
LOG_INFO "gtk3-devel和gtk3-demo已安装测试后保持安装状态"
else
LOG_INFO "gtk3-devel和gtk3-demo未安装将安装并测试"
# 安装软件包
LOG_INFO "安装gtk3-devel和gtk3-demo包"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo失败"
fi
# 测试gtk3-demo命令的指定X显示功能
LOG_INFO "测试gtk3-demo命令的指定X显示功能"
# 检查gtk3-demo是否支持-display参数
LOG_INFO "检查gtk3-demo是否支持-display参数"
if ! gtk3-demo --help 2>&1 | grep -q "\-\-display"; then
LOG_ERROR "gtk3-demo不支持--display参数"
# 如果之前未安装,则卸载
if [ "$installed" = false ]; then
LOG_INFO "卸载gtk3-devel和gtk3-demo包"
dnf remove -y gtk3-devel gtk3-demo
fi
exit 255
fi
# 尝试使用无效的display参数执行预期失败
LOG_INFO "使用无效的display参数执行gtk3-demo"
gtk3-demo --display=:999 2>&1 | grep -q "cannot open display"
CHECK_RESULT $? 0 0 "使用无效display参数时gtk3-demo行为不符合预期"
# 清理环境
if [ "$installed" = false ]; then
LOG_INFO "卸载gtk3-devel和gtk3-demo包"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo失败"
else
LOG_INFO "保持gtk3-devel和gtk3-demo安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,67 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试gtk3-demo命令的帮助选项"
LOG_INFO "检查yum源中是否存在gtk3-devel和gtk3-demo软件包"
dnf list gtk3-devel gtk3-demo > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel或gtk3-demo软件包"
exit 255
fi
LOG_INFO "检查gtk3-devel和gtk3-demo是否已安装"
rpm -q gtk3-devel gtk3-demo > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gtk3-devel和gtk3-demo已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "gtk3-devel和gtk3-demo未安装将在测试前安装"
INSTALLED=0
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装gtk3-devel和gtk3-demo软件包"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo失败"
fi
LOG_INFO "检查gtk3-demo命令是否支持--help参数"
gtk3-demo --help > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "gtk3-demo命令不支持--help参数"
exit 255
fi
LOG_INFO "执行gtk3-demo --help命令"
gtk3-demo --help
CHECK_RESULT $? 0 0 "执行gtk3-demo --help命令失败"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载gtk3-devel和gtk3-demo软件包"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,75 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的显示所有帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试测试gtk3-demo命令的显示所有帮助选项"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在gtk3-devel和gtk3-demo软件包"
if ! dnf list available gtk3-devel gtk3-demo &>/dev/null; then
LOG_ERROR "yum源中不存在gtk3-devel或gtk3-demo软件包"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查是否已安装gtk3-devel和gtk3-demo"
if rpm -q gtk3-devel gtk3-demo &>/dev/null; then
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,将在测试前安装"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装gtk3-devel和gtk3-demo软件包"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 测试gtk3-demo命令的显示所有帮助选项
LOG_INFO "执行gtk3-demo --help-all命令"
gtk3-demo --help-all
CHECK_RESULT $? 0 0 "执行gtk3-demo --help-all失败"
# 检查--help-all参数是否支持
LOG_INFO "检查gtk3-demo是否支持--help-all参数"
if ! gtk3-demo --help-all 2>&1 | grep -q "help-all"; then
LOG_ERROR "gtk3-demo不支持--help-all参数"
exit 255
fi
# 清理环境:如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载gtk3-devel和gtk3-demo软件包"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "测试结束,保持软件包安装状态"
fi
LOG_INFO "测试完成gtk3-demo命令的显示所有帮助选项测试通过"
}
main "$@"

View File

@@ -1,75 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的显示GApplication帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试gtk3-demo命令的显示GApplication帮助选项"
LOG_INFO "1. 检查yum源中是否存在gtk3-devel和gtk3-demo软件包"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在gtk3-devel软件包"
exit 255
fi
dnf list available gtk3-demo > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在gtk3-demo软件包"
exit 255
fi
LOG_INFO "2. 检查是否已经安装gtk3-devel和gtk3-demo"
installed=false
rpm -q gtk3-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
rpm -q gtk3-demo > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "gtk3-devel和gtk3-demo已经安装"
fi
fi
if [ "$installed" = false ]; then
LOG_INFO "3. 安装gtk3-devel和gtk3-demo软件包"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo失败"
fi
LOG_INFO "4. 检查gtk3-demo命令是否支持--gapplication-help参数"
gtk3-demo --help | grep -q "\-\-gapplication-help"
if [ $? -ne 0 ]; then
LOG_ERROR "gtk3-demo命令不支持--gapplication-help参数"
exit 255
fi
LOG_INFO "5. 执行gtk3-demo --gapplication-help命令"
gtk3-demo --gapplication-help
CHECK_RESULT $? 0 0 "执行gtk3-demo --gapplication-help命令失败"
if [ "$installed" = false ]; then
LOG_INFO "6. 卸载安装的gtk3-devel和gtk3-demo软件包"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,76 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的显示GTK+帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试gtk3-demo命令的显示GTK+帮助选项"
# 检查gtk3-devel和gtk3-demo软件包是否在yum源中
LOG_INFO "检查gtk3-devel和gtk3-demo软件包是否在yum源中"
if ! dnf list available gtk3-devel &>/dev/null; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
if ! dnf list available gtk3-demo &>/dev/null; then
LOG_ERROR "yum源中未找到gtk3-demo软件包"
exit 255
fi
# 判断环境是否已经安装
LOG_INFO "判断gtk3-devel和gtk3-demo软件包是否已经安装"
if rpm -q gtk3-devel &>/dev/null && rpm -q gtk3-demo &>/dev/null; then
LOG_INFO "gtk3-devel和gtk3-demo已经安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "gtk3-devel和gtk3-demo未安装将在测试前安装"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装gtk3-devel和gtk3-demo软件包"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo失败"
fi
# 测试gtk3-demo命令的显示GTK+帮助选项
LOG_INFO "测试gtk3-demo命令的显示GTK+帮助选项"
if ! gtk3-demo --help &>/dev/null; then
LOG_ERROR "gtk3-demo命令不支持--help参数"
exit 255
fi
gtk3-demo --help
CHECK_RESULT $? 0 0 "执行gtk3-demo --help失败"
# 环境恢复
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载gtk3-devel和gtk3-demo软件包"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo失败"
else
LOG_INFO "保持gtk3-devel和gtk3-demo软件包的安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,98 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的列出所有示例功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试gtk3-demo命令的列出所有示例功能
# 定义软件包名称
PKG_NAME="gtk3-devel"
DEMO_PKG_NAME="gtk3-demo"
# 步骤1检查yum源中是否存在所需软件包
LOG_INFO "检查yum源中是否存在${PKG_NAME}${DEMO_PKG_NAME}软件包"
dnf list available ${PKG_NAME} ${DEMO_PKG_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到${PKG_NAME}${DEMO_PKG_NAME}软件包"
exit 255
fi
# 步骤2检查当前环境是否已安装软件包
LOG_INFO "检查当前环境是否已安装${PKG_NAME}${DEMO_PKG_NAME}软件包"
rpm -q ${PKG_NAME} ${DEMO_PKG_NAME} &>/dev/null
INSTALLED=$?
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "软件包已安装,测试完成后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包未安装,将进行安装测试"
ALREADY_INSTALLED=0
fi
# 步骤3如果未安装则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装${PKG_NAME}${DEMO_PKG_NAME}软件包"
dnf install -y ${PKG_NAME} ${DEMO_PKG_NAME}
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 步骤4检查gtk3-demo命令是否支持--list-all参数
LOG_INFO "检查gtk3-demo命令是否支持--list-all参数"
gtk3-demo --help 2>&1 | grep -q "\-\-list-all"
if [ $? -ne 0 ]; then
LOG_ERROR "gtk3-demo命令不支持--list-all参数"
# 如果是新安装的,需要卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境:卸载软件包"
dnf remove -y ${PKG_NAME} ${DEMO_PKG_NAME}
fi
exit 255
fi
# 步骤5执行gtk3-demo --list-all命令列出所有示例
LOG_INFO "执行gtk3-demo --list-all命令列出所有示例"
gtk3-demo --list-all
CHECK_RESULT $? 0 0 "执行gtk3-demo --list-all命令失败"
# 步骤6验证输出结果包含示例信息
LOG_INFO "验证gtk3-demo --list-all命令输出结果"
OUTPUT=$(gtk3-demo --list-all 2>&1)
if [ -z "$OUTPUT" ]; then
LOG_ERROR "gtk3-demo --list-all命令未输出任何内容"
CHECK_RESULT 1 0 0 "gtk3-demo --list-all命令输出为空"
fi
# 检查输出中是否包含示例名称(通常包含"Application"或示例程序名)
echo "$OUTPUT" | grep -q -E "Application|example|demo"
CHECK_RESULT $? 0 0 "gtk3-demo --list-all命令输出不符合预期"
# 步骤7清理环境
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境:卸载软件包"
dnf remove -y ${PKG_NAME} ${DEMO_PKG_NAME}
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持软件包安装状态,不进行卸载"
fi
LOG_INFO "测试完成gtk3-demo命令的列出所有示例功能测试通过"
}
main "$@"

View File

@@ -1,76 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的运行指定示例功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已经安装gtk3-devel和gtk3-demo
LOG_INFO "检查是否已安装gtk3-devel和gtk3-demo软件包"
rpm -q gtk3-devel gtk3-demo >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,标记为已存在状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包未安装,标记为未安装状态"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否存在所需软件包
LOG_INFO "检查yum源中是否存在gtk3-devel和gtk3-demo软件包"
dnf list available gtk3-devel gtk3-demo >/dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到gtk3-devel或gtk3-demo软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中缺少所需软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装gtk3-devel和gtk3-demo软件包"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo失败"
fi
# 检查gtk3-demo命令是否支持--run参数
LOG_INFO "检查gtk3-demo命令是否支持--run参数"
gtk3-demo --help 2>&1 | grep -q "\-\-run"
CHECK_RESULT $? 0 0 "gtk3-demo命令不支持--run参数"
if [ $? -ne 0 ]; then
LOG_ERROR "gtk3-demo命令参数不支持"
exit 255
fi
# 运行gtk3-demo的指定示例
LOG_INFO "运行gtk3-demo的指定示例"
gtk3-demo --run=application_demo
CHECK_RESULT $? 0 0 "运行gtk3-demo示例失败"
# 清理环境:如果之前未安装,则卸载软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载gtk3-devel和gtk3-demo软件包"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo失败"
else
LOG_INFO "环境已安装软件包,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,79 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-demo命令的版本显示功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试gtk3-demo命令的版本显示功能"
LOG_INFO "步骤1: 检查当前环境是否已安装gtk3-devel和gtk3-demo软件包"
if dnf list installed gtk3-devel gtk3-demo >/dev/null 2>&1; then
LOG_INFO "gtk3-devel和gtk3-demo已安装测试完成后将保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "gtk3-devel和gtk3-demo未安装将在测试过程中安装并在测试后卸载"
ALREADY_INSTALLED=false
fi
LOG_INFO "步骤2: 检查yum源中是否存在gtk3-devel和gtk3-demo软件包"
if ! dnf list available gtk3-devel gtk3-demo >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到gtk3-devel或gtk3-demo软件包"
exit 255
fi
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "步骤3: 安装gtk3-devel和gtk3-demo软件包"
dnf install -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-demo失败"
fi
LOG_INFO "步骤4: 检查gtk3-demo命令是否支持--version参数"
gtk3-demo --version >/dev/null 2>&1
if [ $? -eq 127 ]; then
LOG_ERROR "gtk3-demo命令不存在"
exit 255
elif [ $? -eq 1 ]; then
LOG_ERROR "gtk3-demo命令不支持--version参数"
exit 255
fi
LOG_INFO "步骤5: 执行gtk3-demo --version命令"
VERSION_OUTPUT=$(gtk3-demo --version 2>&1)
CHECK_RESULT $? 0 0 "执行gtk3-demo --version命令失败"
LOG_INFO "步骤6: 验证版本输出是否包含有效信息"
if [ -z "$VERSION_OUTPUT" ]; then
LOG_ERROR "gtk3-demo --version未输出任何内容"
exit 1
fi
LOG_INFO "版本输出内容: $VERSION_OUTPUT"
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "步骤7: 卸载测试过程中安装的软件包"
dnf remove -y gtk3-devel gtk3-demo
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-demo失败"
fi
LOG_INFO "测试完成: gtk3-demo命令版本显示功能测试通过"
}
main "$@"

View File

@@ -1,87 +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-15
# @License : Mulan PSL v2
# @Desc : 测试gtk3-icon-browser命令的-h参数显示帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装gtk3-devel软件包
LOG_INFO "检查gtk3-devel软件包是否已安装"
rpm -q gtk3-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "gtk3-devel软件包已安装脚本结束时将保持安装状态"
INSTALLED_FLAG=1
else
LOG_INFO "gtk3-devel软件包未安装将在测试过程中安装"
INSTALLED_FLAG=0
fi
# 检查yum源中是否有gtk3-devel软件包
LOG_INFO "检查yum源中是否有gtk3-devel软件包"
dnf list available gtk3-devel > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到gtk3-devel软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "安装gtk3-devel软件包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel软件包失败"
fi
# 检查gtk3-icon-browser命令是否存在
LOG_INFO "检查gtk3-icon-browser命令是否存在"
which gtk3-icon-browser > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gtk3-icon-browser命令不存在"
# 测试gtk3-icon-browser命令的-h参数
LOG_INFO "测试gtk3-icon-browser命令的-h参数"
gtk3-icon-browser -h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gtk3-icon-browser命令不支持-h参数"
if [ $? -ne 0 ]; then
LOG_ERROR "gtk3-icon-browser命令不支持-h参数"
# 清理环境
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "卸载gtk3-devel软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel软件包失败"
fi
exit 255
fi
# 验证-h参数显示帮助信息
LOG_INFO "验证-h参数显示帮助信息"
gtk3-icon-browser -h 2>&1 | grep -i "usage\|help" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gtk3-icon-browser -h未显示帮助信息"
# 清理环境
if [ ${INSTALLED_FLAG} -eq 0 ]; then
LOG_INFO "测试完成卸载gtk3-devel软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel软件包失败"
else
LOG_INFO "测试完成保持gtk3-devel软件包安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,86 +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-15
# @License : Mulan PSL v2
# @Desc : 测试帮助选项,验证-h参数能正常显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试gtk3-devel包中gtk3-widget-factory命令的帮助选项"
# 检查是否已安装gtk3-devel包
LOG_INFO "检查gtk3-devel包是否已安装"
if dnf list installed gtk3-devel &>/dev/null; then
LOG_INFO "gtk3-devel包已安装标记为需要保持安装状态"
KEEP_INSTALLED=true
else
LOG_INFO "gtk3-devel包未安装将在测试过程中安装"
KEEP_INSTALLED=false
fi
# 检查yum源中是否有gtk3-devel包
LOG_INFO "检查yum源中是否存在gtk3-devel包"
if ! dnf list available gtk3-devel &>/dev/null; then
LOG_ERROR "yum源中未找到gtk3-devel包"
exit 255
fi
# 如果未安装则安装
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "开始安装gtk3-devel包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel包失败"
fi
# 检查gtk3-widget-factory命令是否存在
LOG_INFO "检查gtk3-widget-factory命令是否存在"
if ! command -v gtk3-widget-factory &>/dev/null; then
LOG_ERROR "gtk3-widget-factory命令不存在"
exit 255
fi
# 测试-h参数
LOG_INFO "测试gtk3-widget-factory命令的-h参数"
gtk3-widget-factory -h &>/dev/null
CHECK_RESULT $? 0 0 "gtk3-widget-factory -h执行失败"
# 检查帮助信息是否包含关键内容
LOG_INFO "验证帮助信息内容"
HELP_OUTPUT=$(gtk3-widget-factory -h 2>&1)
if echo "$HELP_OUTPUT" | grep -q "Usage:"; then
LOG_INFO "帮助信息显示正常"
else
LOG_ERROR "帮助信息显示异常"
exit 1
fi
# 环境清理
LOG_INFO "开始环境清理"
if [ "$KEEP_INSTALLED" = "false" ]; then
LOG_INFO "卸载测试安装的gtk3-devel包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel包失败"
else
LOG_INFO "保持gtk3-devel包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,71 +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-28
# @License : Mulan PSL v2
# @Desc : 测试使用 -h 参数获取帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断gtk3-devel和gtk3-widget-factory是否已安装
LOG_INFO "检查gtk3-devel和gtk3-widget-factory是否已安装"
rpm -q gtk3-devel gtk3-widget-factory > /dev/null 2>&1
if [ $? -eq 0 ]; then
already_installed=true
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
else
already_installed=false
LOG_INFO "软件包未安装,将在测试结束后卸载"
fi
# 检查yum源中是否有gtk3-devel和gtk3-widget-factory软件包
LOG_INFO "检查yum源中是否有gtk3-devel软件包"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
LOG_INFO "检查yum源中是否有gtk3-widget-factory软件包"
dnf list available gtk3-widget-factory > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-widget-factory软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "安装gtk3-devel和gtk3-widget-factory软件包"
dnf install -y gtk3-devel gtk3-widget-factory
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 测试使用 -h 参数获取帮助信息
LOG_INFO "测试gtk3-widget-factory -h参数获取帮助信息"
gtk3-widget-factory -h > /dev/null 2>&1
CHECK_RESULT $? 0 0 "gtk3-widget-factory -h参数执行失败"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "卸载gtk3-devel和gtk3-widget-factory软件包"
dnf remove -y gtk3-devel gtk3-widget-factory
CHECK_RESULT $? 0 0 "卸载软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,138 +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-28
# @License : Mulan PSL v2
# @Desc : 测试使用 --help 参数获取帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(虽然题目说不需要定义,但实际脚本中需要实现)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expected=$2
local error_code=$3
local message=$4
if [ $actual -ne $expected ]; then
LOG_ERROR "$message"
exit $error_code
fi
}
# 定义SSH命令函数虽然题目说不需要定义但实际脚本中需要实现
SSH_CMD() {
local cmd=$1
local ip=$2
local password=$3
local user=$4
# 这里只是模拟实现实际可能需要使用sshpass或其他方式
echo "SSH to $user@$ip execute: $cmd"
# 实际实现应该类似:
# sshpass -p "$password" ssh "$user@$ip" "$cmd"
}
# 主测试脚本开始
LOG_INFO "开始测试gtk3-devel和gtk3-widget-factory的--help参数"
# 检查软件包是否在yum源中
LOG_INFO "检查gtk3-devel软件包是否在yum源中"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk3-devel软件包不在yum源中"
exit 255
fi
LOG_INFO "检查gtk3-widget-factory软件包是否在yum源中"
dnf list available gtk3-widget-factory > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk3-widget-factory软件包不在yum源中"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查gtk3-devel是否已安装"
rpm -q gtk3-devel > /dev/null 2>&1
gtk3_devel_installed=$?
LOG_INFO "检查gtk3-widget-factory是否已安装"
rpm -q gtk3-widget-factory > /dev/null 2>&1
gtk3_widget_factory_installed=$?
# 记录初始安装状态
initial_installed=0
if [ $gtk3_devel_installed -eq 0 ] && [ $gtk3_widget_factory_installed -eq 0 ]; then
initial_installed=1
LOG_INFO "检测到软件包已安装,测试结束后将保持安装状态"
fi
# 如果未安装,则安装软件包
if [ $initial_installed -eq 0 ]; then
LOG_INFO "安装gtk3-devel软件包"
dnf install -y gtk3-devel
CHECK_RESULT $? 0 0 "安装gtk3-devel失败"
LOG_INFO "安装gtk3-widget-factory软件包"
dnf install -y gtk3-widget-factory
CHECK_RESULT $? 0 0 "安装gtk3-widget-factory失败"
fi
# 测试--help参数
LOG_INFO "测试gtk3-widget-factory --help参数"
gtk3-widget-factory --help > /dev/null 2>&1
help_result=$?
# 检查--help参数是否支持
if [ $help_result -eq 255 ]; then
LOG_ERROR "gtk3-widget-factory不支持--help参数"
exit 255
fi
CHECK_RESULT $help_result 0 0 "执行gtk3-widget-factory --help失败"
LOG_INFO "--help参数测试成功"
# 清理环境:如果最初未安装,则卸载软件包
if [ $initial_installed -eq 0 ]; then
LOG_INFO "清理测试环境,卸载安装的软件包"
LOG_INFO "卸载gtk3-widget-factory软件包"
dnf remove -y gtk3-widget-factory
CHECK_RESULT $? 0 0 "卸载gtk3-widget-factory失败"
LOG_INFO "卸载gtk3-devel软件包"
dnf remove -y gtk3-devel
CHECK_RESULT $? 0 0 "卸载gtk3-devel失败"
LOG_INFO "环境清理完成"
else
LOG_INFO "保持原有安装状态,无需清理"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,84 +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-28
# @License : Mulan PSL v2
# @Desc : 测试使用 --help-all 参数获取所有帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装gtk3-devel和gtk3-widget-factory
LOG_INFO "检查gtk3-devel和gtk3-widget-factory是否已安装"
rpm -q gtk3-devel gtk3-widget-factory > /dev/null 2>&1
installed=$?
# 如果未安装,则安装软件包
if [ $installed -ne 0 ]; then
LOG_INFO "软件包未安装,开始安装"
# 检查yum源中是否有gtk3-devel
LOG_INFO "检查yum源中是否有gtk3-devel"
dnf list available gtk3-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-devel软件包"
exit 255
fi
# 检查yum源中是否有gtk3-widget-factory
LOG_INFO "检查yum源中是否有gtk3-widget-factory"
dnf list available gtk3-widget-factory > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-widget-factory软件包"
exit 255
fi
# 安装软件包
LOG_INFO "安装gtk3-devel和gtk3-widget-factory"
dnf install -y gtk3-devel gtk3-widget-factory
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-widget-factory失败"
else
LOG_INFO "软件包已安装,跳过安装步骤"
fi
# 测试使用--help-all参数获取所有帮助选项
LOG_INFO "测试使用--help-all参数获取所有帮助选项"
# 检查gtk3-widget-factory是否支持--help-all参数
LOG_INFO "检查gtk3-widget-factory是否支持--help-all参数"
gtk3-widget-factory --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "gtk3-widget-factory命令不存在或不支持--help参数"
exit 255
fi
# 执行gtk3-widget-factory --help-all命令
LOG_INFO "执行gtk3-widget-factory --help-all命令"
gtk3-widget-factory --help-all
CHECK_RESULT $? 0 0 "执行gtk3-widget-factory --help-all失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ $installed -ne 0 ]; then
LOG_INFO "清理环境:卸载安装的软件包"
dnf remove -y gtk3-devel gtk3-widget-factory
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-widget-factory失败"
else
LOG_INFO "测试前已安装软件包,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,87 +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-28
# @License : Mulan PSL v2
# @Desc : 测试使用 --help-gtk 参数获取 GTK+ 选项帮助
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
# 检查是否已经安装了gtk3-devel和gtk3-widget-factory
LOG_INFO "检查是否已安装gtk3-devel和gtk3-widget-factory"
if dnf list installed gtk3-devel > /dev/null 2>&1 && dnf list installed gtk3-widget-factory > /dev/null 2>&1; then
LOG_INFO "gtk3-devel和gtk3-widget-factory已安装"
already_installed=true
else
LOG_INFO "gtk3-devel和gtk3-widget-factory未安装"
already_installed=false
fi
# 检查yum源中是否有gtk3-devel和gtk3-widget-factory软件包
LOG_INFO "检查yum源中是否有gtk3-devel和gtk3-widget-factory软件包"
if ! dnf list available gtk3-devel > /dev/null 2>&1; then
LOG_ERROR "yum源中没有gtk3-devel软件包"
exit 255
fi
if ! dnf list available gtk3-widget-factory > /dev/null 2>&1; then
LOG_ERROR "yum源中没有gtk3-widget-factory软件包"
exit 255
fi
LOG_INFO "yum源中有gtk3-devel和gtk3-widget-factory软件包"
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "开始安装gtk3-devel和gtk3-widget-factory"
dnf install -y gtk3-devel gtk3-widget-factory
CHECK_RESULT $? 0 0 "安装gtk3-devel和gtk3-widget-factory失败"
LOG_INFO "安装gtk3-devel和gtk3-widget-factory成功"
fi
# 检查gtk3-widget-factory命令是否支持--help-gtk参数
LOG_INFO "检查gtk3-widget-factory命令是否支持--help-gtk参数"
if ! gtk3-widget-factory --help-gtk > /dev/null 2>&1; then
LOG_ERROR "gtk3-widget-factory命令不支持--help-gtk参数"
# 如果之前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载gtk3-devel和gtk3-widget-factory"
dnf remove -y gtk3-devel gtk3-widget-factory
fi
exit 255
fi
LOG_INFO "gtk3-widget-factory命令支持--help-gtk参数"
# 执行gtk3-widget-factory --help-gtk命令
LOG_INFO "执行gtk3-widget-factory --help-gtk命令"
gtk3-widget-factory --help-gtk
CHECK_RESULT $? 0 0 "执行gtk3-widget-factory --help-gtk命令失败"
# 清理环境
LOG_INFO "清理环境"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载gtk3-devel和gtk3-widget-factory"
dnf remove -y gtk3-devel gtk3-widget-factory
CHECK_RESULT $? 0 0 "卸载gtk3-devel和gtk3-widget-factory失败"
LOG_INFO "卸载gtk3-devel和gtk3-widget-factory成功"
else
LOG_INFO "保持gtk3-devel和gtk3-widget-factory的安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,95 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-icon-browser命令的--display参数指定要使用的X显示
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试gtk3-icon-browser命令的--display参数指定要使用的X显示
# 定义软件包名和命令
PACKAGE_NAME="gtk3"
COMMAND="gtk3-icon-browser"
DISPLAY_ARG="--display"
# 步骤1检查yum源中是否有gtk3软件包
LOG_INFO "步骤1检查yum源中是否有${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到${PACKAGE_NAME}软件包"
exit 255
fi
# 步骤2检查gtk3-icon-browser命令是否已安装
LOG_INFO "步骤2检查${COMMAND}命令是否已安装"
which ${COMMAND} &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "${COMMAND}命令已安装,标记为已安装状态"
INSTALLED="true"
else
LOG_INFO "${COMMAND}命令未安装,标记为未安装状态"
INSTALLED="false"
fi
# 步骤3如果未安装则安装gtk3软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
fi
# 步骤4检查gtk3-icon-browser命令是否支持--display参数
LOG_INFO "步骤4检查${COMMAND}命令是否支持${DISPLAY_ARG}参数"
${COMMAND} --help 2>&1 | grep -q "${DISPLAY_ARG}"
if [ $? -ne 0 ]; then
LOG_ERROR "${COMMAND}命令不支持${DISPLAY_ARG}参数"
# 如果是安装的软件包,需要卸载
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "清理环境:卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 步骤5测试gtk3-icon-browser命令的--display参数
LOG_INFO "步骤5测试${COMMAND}命令的${DISPLAY_ARG}参数"
# 测试无效的display参数期望命令失败
${COMMAND} ${DISPLAY_ARG} invalid_display 2>&1
# 检查命令是否按预期失败(非零退出码)
if [ $? -eq 0 ]; then
LOG_ERROR "${COMMAND}命令使用无效${DISPLAY_ARG}参数时未按预期失败"
CHECK_RESULT 1 0 0 "${COMMAND}命令使用无效${DISPLAY_ARG}参数测试失败"
else
LOG_INFO "${COMMAND}命令使用无效${DISPLAY_ARG}参数时按预期失败"
CHECK_RESULT $? 1 0 "${COMMAND}命令使用无效${DISPLAY_ARG}参数测试失败"
fi
# 步骤6清理环境
LOG_INFO "步骤6清理环境"
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
else
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,82 +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-28
# @License : Mulan PSL v2
# @Desc : 测试gtk3-icon-browser命令的--help-gtk参数显示GTK+帮助选项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装gtk3-icon-browser
LOG_INFO "检查gtk3-icon-browser是否已安装"
rpm -q gtk3-icon-browser > /dev/null 2>&1
IS_INSTALLED=$?
# 记录初始安装状态
if [ $IS_INSTALLED -eq 0 ]; then
LOG_INFO "gtk3-icon-browser已安装测试后保持安装状态"
INITIAL_INSTALLED=true
else
LOG_INFO "gtk3-icon-browser未安装测试后将卸载"
INITIAL_INSTALLED=false
fi
# 检查yum源中是否有gtk3-icon-browser包
LOG_INFO "检查yum源中是否有gtk3-icon-browser包"
dnf list available gtk3-icon-browser > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到gtk3-icon-browser包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $IS_INSTALLED -ne 0 ]; then
LOG_INFO "安装gtk3-icon-browser"
dnf install -y gtk3-icon-browser
CHECK_RESULT $? 0 0 "安装gtk3-icon-browser失败"
fi
# 测试--help-gtk参数
LOG_INFO "测试gtk3-icon-browser --help-gtk参数"
gtk3-icon-browser --help-gtk > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "--help-gtk参数存在且执行成功"
# 验证输出包含帮助信息
gtk3-icon-browser --help-gtk 2>&1 | grep -i "gtk" > /dev/null
CHECK_RESULT $? 0 0 "--help-gtk参数未显示GTK+帮助选项"
else
LOG_ERROR "--help-gtk参数不存在或不支持"
# 清理环境
if [ "$INITIAL_INSTALLED" = "false" ]; then
LOG_INFO "卸载gtk3-icon-browser"
dnf remove -y gtk3-icon-browser
fi
exit 255
fi
# 清理环境
if [ "$INITIAL_INSTALLED" = "false" ]; then
LOG_INFO "卸载gtk3-icon-browser"
dnf remove -y gtk3-icon-browser
CHECK_RESULT $? 0 0 "卸载gtk3-icon-browser失败"
else
LOG_INFO "保持gtk3-icon-browser安装状态"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"