This commit is contained in:
2026-04-10 12:15:19 +08:00
48 changed files with 0 additions and 4416 deletions

View File

@@ -190,18 +190,10 @@
"name": "test_audit_aulast__bad",
"desc": "测试使用--bad参数显示失败的登录尝试"
},
{
"name": "test_audit_aulast__stdin",
"desc": "测试使用--stdin参数从标准输入读取日志"
},
{
"name": "test_audit_aulast__proof",
"desc": "测试使用--proof参数仅显示有审计证据的条目"
},
{
"name": "test_audit_aulast__extract",
"desc": "测试使用--extract参数从审计日志中提取数据"
},
{
"name": "test_audit_aulast__f_file",
"desc": "测试使用-f参数指定审计日志文件"
@@ -214,30 +206,10 @@
"name": "test_audit_aulast__bad__user_name",
"desc": "测试组合使用--bad和--user参数显示指定用户的失败登录尝试"
},
{
"name": "test_audit_aulast__proof__tty_tty",
"desc": "测试组合使用--proof和--tty参数仅显示指定终端有审计证据的登录条目"
},
{
"name": "test_audit_aulast__f_file__extract",
"desc": "测试组合使用-f和--extract参数从指定文件中提取数据"
},
{
"name": "test_audit_ausyscall_help",
"desc": "测试 ausyscall 命令的帮助信息"
},
{
"name": "test_audit_ausyscall_arch",
"desc": "测试 ausyscall 命令显示指定架构的系统调用表"
},
{
"name": "test_audit_ausyscall_arch_upper_v",
"desc": "测试 ausyscall 命令显示指定架构的详细信息"
},
{
"name": "test_audit_ausyscall_arch_upper_v_upper_v",
"desc": "测试 ausyscall 命令显示指定架构的详细信息(重复 -V 参数)"
},
{
"name": "test_audit_ausyscall_arch_upper_v_help",
"desc": "测试 ausyscall 命令在指定架构和详细信息参数下显示帮助"
@@ -250,90 +222,6 @@
"name": "test_audit_auvirt_start_date",
"desc": "测试使用 --start 参数指定开始日期"
},
{
"name": "test_audit_auvirt_start_date_time",
"desc": "测试使用 --start 参数指定开始日期和时间"
},
{
"name": "test_audit_auvirt_end_date",
"desc": "测试使用 --end 参数指定结束日期"
},
{
"name": "test_audit_auvirt_end_date_time",
"desc": "测试使用 --end 参数指定结束日期和时间"
},
{
"name": "test_audit_auvirt_file",
"desc": "测试使用 --file 参数指定审计日志文件"
},
{
"name": "test_audit_auvirt_show_uuid",
"desc": "测试使用 --show-uuid 参数显示UUID"
},
{
"name": "test_audit_auvirt_proof",
"desc": "测试使用 --proof 参数生成证明信息"
},
{
"name": "test_audit_auvirt_debug",
"desc": "测试使用 --debug 参数启用调试模式"
},
{
"name": "test_audit_auvirt_uuid",
"desc": "测试使用 --uuid 参数过滤指定UUID的事件"
},
{
"name": "test_audit_auvirt_vm_name",
"desc": "测试使用 --vm 参数过滤指定虚拟机名称的事件"
},
{
"name": "test_audit_auvirt_start_end",
"desc": "测试组合使用 --start 和 --end 参数指定时间范围"
},
{
"name": "test_audit_auvirt_uuid_vm",
"desc": "测试组合使用 --uuid 和 --vm 参数进行复合过滤"
},
{
"name": "test_audit_auvirt_all_events_summary",
"desc": "测试组合使用 --all-events 和 --summary 参数显示所有事件的摘要"
},
{
"name": "test_audit_auvirt_show_uuid_proof",
"desc": "测试组合使用 --show-uuid 和 --proof 参数显示UUID并生成证明"
},
{
"name": "test_audit_auvirt_stdin_debug",
"desc": "测试组合使用 --stdin 和 --debug 参数从标准输入读取并启用调试"
},
{
"name": "test_audit_auvirt_start_end_vm",
"desc": "测试组合使用 --start、--end 和 --vm 参数在指定时间范围内过滤虚拟机事件"
},
{
"name": "test_audit_auvirt_file_all_events",
"desc": "测试组合使用 --file 和 --all-events 参数从指定文件读取所有事件"
},
{
"name": "test_audit_function_service",
"desc": "测试audit守护进程的启动、停止、状态查询。"
},
{
"name": "test_audit_function_rules",
"desc": "测试audit审计规则的查看、添加、删除和重载。"
},
{
"name": "test_audit_function_search",
"desc": "测试使用ausearch按时间、事件类型等条件搜索审计日志。"
},
{
"name": "test_audit_function_user_logins",
"desc": "测试使用aulast/aulastlog查看用户登录记录。"
},
{
"name": "test_audit_function_virt_events",
"desc": "测试使用auvirt查看虚拟机相关审计事件。"
},
{
"name": "test_audit_function_config",
"desc": "测试audit守护进程配置的查看和基本规则文件存在性。"

View File

@@ -506,10 +506,6 @@
"name": "test_ncurses_infocmp__r_with_upper_c",
"desc": "测试infocmp命令在使用-C参数时以termcap形式输出"
},
{
"name": "test_ncurses_reset_r",
"desc": "测试 reset 命令的 -r 选项,用于将终端信息输出到标准错误"
},
{
"name": "test_ncurses_reset_c_w",
"desc": "测试 reset 命令同时使用 -c 和 -w 选项"

View File

@@ -69,10 +69,6 @@
{
"name": "test_sqlite_function_check_version",
"desc": "Check sqlite3 command version"
},
{
"name": "test_sqlite_function_open_db",
"desc": "Test opening and closing a database file"
}
]
}

View File

@@ -78,69 +78,13 @@
"name": "test_sysfsutils_systool_d_v",
"desc": "测试 systool -d 与 -v 参数组合使用"
},
{
"name": "test_sysfsutils_systool_a",
"desc": "测试使用-a参数显示属性"
},
{
"name": "test_sysfsutils_systool_c",
"desc": "测试使用-c参数显示特定类"
},
{
"name": "test_sysfsutils_systool_d",
"desc": "测试使用-d参数仅显示设备"
},
{
"name": "test_sysfsutils_systool_m",
"desc": "测试使用-m参数显示特定模块"
},
{
"name": "test_sysfsutils_systool_v",
"desc": "测试使用-v参数显示所有属性及其值"
},
{
"name": "test_sysfsutils_systool_upper_a",
"desc": "测试使用-A参数显示特定属性值"
},
{
"name": "test_sysfsutils_systool_upper_d",
"desc": "测试使用-D参数仅显示驱动"
},
{
"name": "test_sysfsutils_systool_upper_p",
"desc": "测试使用-P参数显示设备的父级"
},
{
"name": "test_sysfsutils_function_list",
"desc": "测试不带任何选项执行systool命令验证其默认行为是否能列出系统设备概要。"
},
{
"name": "test_sysfsutils_function_class",
"desc": "测试systool使用-c选项指定类别名称如net、input显示该类别下所有设备的详细信息。"
},
{
"name": "test_sysfsutils_function_bus",
"desc": "测试systool使用-b选项显示指定总线如pci下的设备信息。"
},
{
"name": "test_sysfsutils_function_driver",
"desc": "测试systool使用-D选项仅显示指定驱动程序的信息。"
},
{
"name": "test_sysfsutils_function_device",
"desc": "测试systool使用-d选项仅显示指定设备的信息。"
},
{
"name": "test_sysfsutils_function_module",
"desc": "测试systool使用-m选项显示指定内核模块的信息。"
},
{
"name": "test_sysfsutils_function_path",
"desc": "测试systool使用-p选项显示设备或驱动程序的路径。"
},
{
"name": "test_sysfsutils_function_verbose",
"desc": "测试systool使用-v选项显示所有属性及其值。"
}
]
}

View File

@@ -1,93 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用--extract参数从审计日志中提取数据
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试--extract参数从审计日志中提取数据"
# 步骤1: 检查是否已安装audit软件包
LOG_INFO "检查audit软件包是否已安装"
if dnf list installed audit &>/dev/null; then
LOG_INFO "audit软件包已安装测试结束后将保持安装状态"
installed_before_test=true
else
LOG_INFO "audit软件包未安装将在测试前安装并在测试后卸载"
installed_before_test=false
fi
# 步骤2: 检查yum源中是否有audit软件包
LOG_INFO "检查yum源中是否有audit软件包"
if ! dnf list available audit &>/dev/null; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
# 步骤3: 如果未安装则安装audit软件包
if [ "$installed_before_test" = false ]; then
LOG_INFO "安装audit软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
# 步骤4: 验证aulast命令是否支持--extract参数
LOG_INFO "验证aulast命令是否支持--extract参数"
if ! aulast --help 2>&1 | grep -q "\-\-extract"; then
LOG_ERROR "aulast命令不支持--extract参数"
exit 255
fi
# 步骤5: 生成测试审计日志
LOG_INFO "生成测试审计日志"
test_log_entry="test_aulast_extract_$(date +%s)"
echo "$test_log_entry" | auditctl -w /tmp/test_log -p wa -k test_aulast_extract_key
CHECK_RESULT $? 0 0 "生成测试审计日志失败"
# 步骤6: 使用--extract参数提取审计日志
LOG_INFO "使用--extract参数从审计日志中提取数据"
extracted_data=$(aulast --extract 2>/dev/null)
CHECK_RESULT $? 0 0 "使用--extract参数提取审计日志失败"
# 步骤7: 验证提取的数据是否包含测试日志条目
LOG_INFO "验证提取的数据是否包含测试日志条目"
if echo "$extracted_data" | grep -q "$test_log_entry"; then
LOG_INFO "提取的数据包含测试日志条目,测试通过"
else
LOG_ERROR "提取的数据未包含测试日志条目,测试失败"
exit 1
fi
# 步骤8: 清理测试审计日志
LOG_INFO "清理测试审计日志"
auditctl -W /tmp/test_log -k test_aulast_extract_key
CHECK_RESULT $? 0 0 "清理测试审计日志失败"
# 步骤9: 恢复环境如果测试前未安装则卸载audit软件包
if [ "$installed_before_test" = false ]; then
LOG_INFO "卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "测试前已安装audit软件包保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,100 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用--proof和--tty参数仅显示指定终端有审计证据的登录条目
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断audit软件包是否已安装
LOG_INFO "检查audit软件包是否已安装"
rpm -q audit > /dev/null 2>&1
audit_installed=$?
# 判断aulast命令是否可用属于audit包
LOG_INFO "检查aulast命令是否可用"
command -v aulast > /dev/null 2>&1
aulast_exists=$?
# 如果audit未安装则检查yum源中是否有该软件包
if [ $audit_installed -ne 0 ]; then
LOG_INFO "audit软件包未安装检查yum源中是否存在"
dnf list audit 2>/dev/null | grep -q audit
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
fi
# 测试前环境状态记录
if [ $audit_installed -ne 0 ]; then
LOG_INFO "测试前环境未安装audit将在测试后卸载"
need_cleanup=1
LOG_INFO "安装audit软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
else
LOG_INFO "测试前环境已安装audit测试后保持安装状态"
need_cleanup=0
fi
# 验证aulast命令是否可用
LOG_INFO "再次验证aulast命令是否可用"
command -v aulast > /dev/null 2>&1
CHECK_RESULT $? 0 0 "aulast命令不可用"
# 检查--proof参数是否支持
LOG_INFO "检查aulast命令是否支持--proof参数"
aulast --help 2>&1 | grep -q "\-\-proof"
CHECK_RESULT $? 0 255 "aulast命令不支持--proof参数"
# 检查--tty参数是否支持
LOG_INFO "检查aulast命令是否支持--tty参数"
aulast --help 2>&1 | grep -q "\-\-tty"
CHECK_RESULT $? 0 255 "aulast命令不支持--tty参数"
# 获取当前终端
current_tty=$(tty)
if [ -z "$current_tty" ]; then
LOG_INFO "无法获取当前终端信息,使用默认终端测试"
test_tty="pts/0"
else
test_tty=$(basename $current_tty)
fi
LOG_INFO "测试组合使用--proof和--tty参数终端为$test_tty"
aulast --proof --tty $test_tty
CHECK_RESULT $? 0 0 "组合使用--proof和--tty参数执行失败"
# 测试无效终端参数
LOG_INFO "测试无效终端参数"
aulast --proof --tty invalid_tty_test_$(date +%s) 2>/dev/null
# 注意无效终端可能返回非0这里不检查具体返回值只检查命令是否执行
# 环境清理
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "清理测试环境卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "保持audit软件包安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,106 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用--stdin参数从标准输入读取日志
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本:测试使用--stdin参数从标准输入读取日志
# 定义变量
PACKAGE_NAME="audit"
LOG_INFO "测试开始验证aulast命令的--stdin参数功能"
# 步骤1检查环境中是否已安装audit软件包
LOG_INFO "步骤1检查audit软件包是否已安装"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "audit软件包已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "audit软件包未安装将在测试过程中安装"
INSTALLED=false
fi
# 步骤2检查yum源中是否存在audit软件包
LOG_INFO "步骤2检查yum源中是否存在audit软件包"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中不存在audit软件包"
exit 255
fi
# 步骤3如果未安装则安装audit软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装audit软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
# 步骤4验证aulast命令是否支持--stdin参数
LOG_INFO "步骤4验证aulast命令是否支持--stdin参数"
if ! aulast --help 2>&1 | grep -q -- "--stdin"; then
LOG_ERROR "aulast命令不支持--stdin参数"
# 如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤5准备测试数据
LOG_INFO "步骤5准备测试数据"
TEST_LOG="/tmp/test_audit.log"
cat > $TEST_LOG << EOF
type=USER_START msg=audit(1631234567.123:456): pid=12345 uid=0 auid=1000 ses=1 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg="op=PAM:session_open acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success"
type=USER_END msg=audit(1631234568.456:789): pid=12345 uid=0 auid=1000 ses=1 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg="op=PAM:session_close acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success"
EOF
CHECK_RESULT $? 0 0 "创建测试日志文件失败"
# 步骤6使用--stdin参数从标准输入读取日志
LOG_INFO "步骤6使用--stdin参数从标准输入读取日志"
cat $TEST_LOG | aulast --stdin
CHECK_RESULT $? 0 0 "使用--stdin参数读取日志失败"
# 步骤7验证输出结果
LOG_INFO "步骤7验证输出结果"
OUTPUT=$(cat $TEST_LOG | aulast --stdin | head -1)
EXPECTED="root"
if echo "$OUTPUT" | grep -q "$EXPECTED"; then
LOG_INFO "输出结果符合预期"
else
LOG_ERROR "输出结果不符合预期"
CHECK_RESULT 1 0 0 "输出验证失败"
fi
# 步骤8清理测试数据
LOG_INFO "步骤8清理测试数据"
rm -f $TEST_LOG
CHECK_RESULT $? 0 0 "删除测试日志文件失败"
# 步骤9如果测试前未安装则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤9卸载audit软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "步骤9保持audit软件包安装状态"
fi
LOG_INFO "测试结束:所有步骤执行完毕"
}
main "$@"

View File

@@ -1,65 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试 ausyscall 命令显示指定架构的系统调用表
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试ausyscall命令显示指定架构的系统调用表"
LOG_INFO "检查是否已安装audit软件包"
if rpm -q audit >/dev/null 2>&1; then
LOG_INFO "audit软件包已安装"
installed=true
else
LOG_INFO "audit软件包未安装"
installed=false
fi
LOG_INFO "检查yum源中是否有audit软件包"
if ! dnf list audit >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
if [ "$installed" = "false" ]; then
LOG_INFO "安装audit软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
LOG_INFO "检查ausyscall命令是否支持架构参数"
ausyscall --help 2>&1 | grep -q -- --arch
if [ $? -ne 0 ]; then
LOG_ERROR "ausyscall命令不支持--arch参数"
exit 255
fi
LOG_INFO "测试ausyscall命令显示x86_64架构的系统调用表"
ausyscall --arch x86_64
CHECK_RESULT $? 0 0 "显示x86_64架构系统调用表失败"
LOG_INFO "测试ausyscall命令显示aarch64架构的系统调用表"
ausyscall --arch aarch64
CHECK_RESULT $? 0 0 "显示aarch64架构系统调用表失败"
LOG_INFO "测试ausyscall命令显示不支持的架构"
ausyscall --arch invalid_arch 2>&1 | grep -q "Unrecognized architecture"
CHECK_RESULT $? 0 0 "无效架构参数未正确处理"
if [ "$installed" = "false" ]; then
LOG_INFO "卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试 ausyscall 命令显示指定架构的详细信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 ausyscall 命令显示指定架构的详细信息"
LOG_INFO "步骤1检查环境是否已安装 audit 软件包"
if dnf list installed audit &> /dev/null; then
LOG_INFO "audit 软件包已安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "audit 软件包未安装,将在测试步骤中安装"
INSTALLED_BEFORE=false
fi
LOG_INFO "步骤2检查 yum 源中是否有 audit 软件包"
if ! dnf list available audit &> /dev/null; then
LOG_ERROR "yum 源中未找到 audit 软件包"
exit 255
fi
LOG_INFO "步骤3如果未安装 audit 软件包,则进行安装"
if [ "$INSTALLED_BEFORE" = false ]; then
dnf install -y audit
CHECK_RESULT $? 0 0 "安装 audit 软件包失败"
LOG_INFO "audit 软件包安装成功"
fi
LOG_INFO "步骤4检查 ausyscall 命令是否支持 --arch 参数"
if ! ausyscall --help 2>&1 | grep -q -- --arch; then
LOG_ERROR "ausyscall 命令不支持 --arch 参数"
exit 255
fi
LOG_INFO "步骤5测试 ausyscall 命令显示 x86_64 架构的详细信息"
ausyscall --arch x86_64 1
CHECK_RESULT $? 0 0 "显示 x86_64 架构的详细信息失败"
LOG_INFO "步骤6测试 ausyscall 命令显示 aarch64 架构的详细信息"
ausyscall --arch aarch64 1
CHECK_RESULT $? 0 0 "显示 aarch64 架构的详细信息失败"
LOG_INFO "步骤7测试 ausyscall 命令显示不支持架构时的错误处理"
ausyscall --arch invalid_arch 1
CHECK_RESULT $? 1 0 "使用无效架构参数未返回预期错误"
LOG_INFO "步骤8清理环境如果之前未安装则卸载 audit 软件包"
if [ "$INSTALLED_BEFORE" = false ]; then
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载 audit 软件包失败"
LOG_INFO "audit 软件包卸载成功,环境已恢复"
else
LOG_INFO "audit 软件包保持安装状态,无需卸载"
fi
LOG_INFO "测试 ausyscall 命令显示指定架构的详细信息完成"
}
main "$@"

View File

@@ -1,93 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试 ausyscall 命令显示指定架构的详细信息(重复 -V 参数)
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(虽然题目说无需定义,但实际脚本中需要,这里按需求声明)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 测试脚本主体
LOG_INFO "开始测试:测试 ausyscall 命令显示指定架构的详细信息(重复 -V 参数)"
# 检查是否已安装 audit 软件包
LOG_INFO "步骤1检查 audit 软件包是否已安装"
if dnf list installed audit &>/dev/null; then
LOG_INFO "audit 软件包已安装,脚本结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "audit 软件包未安装,将在测试步骤中安装"
INSTALLED_BEFORE=0
fi
# 检查 yum 源中是否有 audit 软件包
LOG_INFO "步骤2检查 yum 源中是否有 audit 软件包"
if ! dnf list available audit &>/dev/null; then
LOG_ERROR "yum 源中未找到 audit 软件包"
exit 255
fi
# 如果未安装,则安装 audit 软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤3安装 audit 软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装 audit 软件包失败"
fi
# 测试 ausyscall 命令的 -V 参数
LOG_INFO "步骤4测试 ausyscall 命令的 -V 参数"
ausyscall --help 2>&1 | grep -q "\-V"
if [ $? -ne 0 ]; then
LOG_ERROR "ausyscall 命令不支持 -V 参数"
# 如果之前未安装,则卸载软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
dnf remove -y audit
fi
exit 255
fi
# 测试重复 -V 参数的情况
LOG_INFO "步骤5测试 ausyscall 命令重复 -V 参数"
ausyscall -V -V
CHECK_RESULT $? 0 0 "重复 -V 参数执行失败"
# 测试指定架构的详细信息
LOG_INFO "步骤6测试指定架构的详细信息"
ARCH=$(uname -m)
ausyscall -V $ARCH
CHECK_RESULT $? 0 0 "显示指定架构的详细信息失败"
# 清理环境:如果之前未安装,则卸载 audit 软件包
if [ $INSTALLED_BEFORE -eq 0 ]; then
LOG_INFO "步骤7清理环境卸载 audit 软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载 audit 软件包失败"
else
LOG_INFO "步骤7环境已安装 audit 软件包,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,130 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试 ausyscall 命令的帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
AUDIT_PACKAGE="audit"
COMMAND="ausyscall"
LOG_FILE="/tmp/test_audit_ausyscall_help.log"
# 清理日志文件
> "$LOG_FILE"
# 日志函数
LOG_INFO() {
echo "$(date "+%Y-%m-%d %H:%M:%S") [INFO] $*" | tee -a "$LOG_FILE"
}
LOG_ERROR() {
echo "$(date "+%Y-%m-%d %H:%M:%S") [ERROR] $*" | tee -a "$LOG_FILE"
}
# 检查包是否存在
check_package_exists() {
LOG_INFO "检查 yum 源中是否存在 $AUDIT_PACKAGE 软件包"
dnf list available "$AUDIT_PACKAGE" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 $AUDIT_PACKAGE 软件包"
exit 255
fi
LOG_INFO "软件包 $AUDIT_PACKAGE 存在于 yum 源中"
}
# 检查命令是否安装
check_command_installed() {
LOG_INFO "检查 $COMMAND 命令是否已安装"
if command -v "$COMMAND" &>/dev/null; then
LOG_INFO "$COMMAND 命令已安装"
return 0
else
LOG_INFO "$COMMAND 命令未安装"
return 1
fi
}
# 安装软件包
install_package() {
LOG_INFO "安装 $AUDIT_PACKAGE 软件包"
dnf install -y "$AUDIT_PACKAGE" &>/dev/null
CHECK_RESULT $? 0 0 "安装 $AUDIT_PACKAGE 失败"
LOG_INFO "$AUDIT_PACKAGE 软件包安装成功"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载 $AUDIT_PACKAGE 软件包"
dnf remove -y "$AUDIT_PACKAGE" &>/dev/null
CHECK_RESULT $? 0 0 "卸载 $AUDIT_PACKAGE 失败"
LOG_INFO "$AUDIT_PACKAGE 软件包卸载成功"
}
# 检查命令参数
check_command_help() {
LOG_INFO "检查 $COMMAND 命令的帮助信息参数"
"$COMMAND" --help &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "$COMMAND 命令不支持 --help 参数"
exit 255
fi
LOG_INFO "$COMMAND 命令支持 --help 参数"
}
# 测试帮助信息
test_help_info() {
LOG_INFO "测试 $COMMAND 命令的帮助信息"
"$COMMAND" --help | grep -q "usage"
CHECK_RESULT $? 0 0 "$COMMAND 命令帮助信息输出异常"
LOG_INFO "$COMMAND 命令帮助信息测试成功"
}
# 主函数
main() {
LOG_INFO "开始测试 ausyscall 命令的帮助信息"
# 检查软件包是否存在
check_package_exists
# 检查命令是否已安装
local need_uninstall=0
if ! check_command_installed; then
need_uninstall=1
install_package
fi
# 检查命令参数
check_command_help
# 测试帮助信息
test_help_info
# 环境恢复
if [ $need_uninstall -eq 1 ]; then
uninstall_package
fi
LOG_INFO "测试完成,环境已恢复"
}
# 执行主函数
main
}
main "$@"

View File

@@ -1,77 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用 --all-events 和 --summary 参数显示所有事件的摘要
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="audit"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
exit 255
fi
# 检查环境是否已安装软件包
LOG_INFO "检查环境是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
INSTALLED="true"
LOG_INFO "环境已安装${PACKAGE_NAME}软件包,脚本结束后将保持安装状态"
else
INSTALLED="false"
LOG_INFO "环境未安装${PACKAGE_NAME}软件包,将进行安装"
fi
# 如果未安装,则安装软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
fi
# 检查audit命令是否支持--all-events参数
LOG_INFO "检查audit命令是否支持--all-events参数"
auditctl --help 2>&1 | grep -q "\-\-all-events"
CHECK_RESULT $? 0 0 "audit命令不支持--all-events参数"
# 检查audit命令是否支持--summary参数
LOG_INFO "检查audit命令是否支持--summary参数"
auditctl --help 2>&1 | grep -q "\-\-summary"
CHECK_RESULT $? 0 0 "audit命令不支持--summary参数"
# 测试组合使用--all-events和--summary参数显示所有事件的摘要
LOG_INFO "测试组合使用--all-events和--summary参数显示所有事件的摘要"
auditctl --all-events --summary
CHECK_RESULT $? 0 0 "执行auditctl --all-events --summary失败"
# 清理环境
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
}
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --debug 参数启用调试模式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试audit_auvirt的--debug参数功能"
LOG_INFO "步骤1检查audit_auvirt软件包是否在yum源中"
dnf list available audit_auvirt 2>/dev/null | grep -q audit_auvirt
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到audit_auvirt软件包"
exit 255
fi
LOG_INFO "步骤2检查audit_auvirt是否已安装"
rpm -q audit_auvirt >/dev/null 2>&1
installed=$?
if [ $installed -eq 0 ]; then
LOG_INFO "audit_auvirt已安装测试后保持安装状态"
need_uninstall=0
else
LOG_INFO "audit_auvirt未安装开始安装软件包"
dnf install -y audit_auvirt
CHECK_RESULT $? 0 0 "安装audit_auvirt失败"
need_uninstall=1
fi
LOG_INFO "步骤3验证--debug参数是否存在"
audit_auvirt --help 2>&1 | grep -q -- "--debug"
if [ $? -ne 0 ]; then
LOG_ERROR "audit_auvirt命令不支持--debug参数"
if [ $need_uninstall -eq 1 ]; then
LOG_INFO "清理环境卸载audit_auvirt"
dnf remove -y audit_auvirt
fi
exit 255
fi
LOG_INFO "步骤4执行带--debug参数的audit_auvirt命令"
audit_auvirt --debug
CHECK_RESULT $? 0 0 "audit_auvirt --debug执行失败"
LOG_INFO "步骤5验证调试模式是否生效"
audit_auvirt --debug 2>&1 | grep -q -i "debug"
CHECK_RESULT $? 0 0 "调试模式未正确启用"
if [ $need_uninstall -eq 1 ]; then
LOG_INFO "步骤6清理环境卸载audit_auvirt"
dnf remove -y audit_auvirt
CHECK_RESULT $? 0 0 "卸载audit_auvirt失败"
else
LOG_INFO "步骤6保持audit_auvirt安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,180 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --end 参数指定结束日期
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色和日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 软件包名称
PACKAGE_NAME="audit"
SERVICE_NAME="auditd"
# 检查软件包是否在yum源中
check_package_in_repo() {
LOG_INFO "检查yum源中是否存在${PACKAGE_NAME}软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
exit 255
fi
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
}
# 检查命令参数是否支持
check_command_option() {
LOG_INFO "检查auditctl命令是否支持--end参数"
auditctl --help 2>&1 | grep -q "\-\-end"
if [ $? -ne 0 ]; then
LOG_ERROR "auditctl命令不支持--end参数"
exit 255
fi
LOG_INFO "auditctl命令支持--end参数"
}
# 安装软件包
install_package() {
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
LOG_INFO "${PACKAGE_NAME}软件包安装成功"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
LOG_INFO "${PACKAGE_NAME}软件包卸载成功"
}
# 检查软件包是否已安装
check_package_installed() {
rpm -q ${PACKAGE_NAME} &>/dev/null
return $?
}
# 启动audit服务
start_audit_service() {
LOG_INFO "启动${SERVICE_NAME}服务"
systemctl start ${SERVICE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "启动${SERVICE_NAME}服务失败"
LOG_INFO "${SERVICE_NAME}服务启动成功"
}
# 停止audit服务
stop_audit_service() {
LOG_INFO "停止${SERVICE_NAME}服务"
systemctl stop ${SERVICE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "停止${SERVICE_NAME}服务失败"
LOG_INFO "${SERVICE_NAME}服务停止成功"
}
# 清理审计规则
clean_audit_rules() {
LOG_INFO "清理所有审计规则"
auditctl -D &>/dev/null
LOG_INFO "审计规则清理完成"
}
# 测试--end参数功能
test_end_option() {
LOG_INFO "测试使用--end参数指定结束日期"
# 添加一个测试规则,设置结束日期为明天
END_DATE=$(date -d "+1 day" "+%Y-%m-%d")
LOG_INFO "添加测试审计规则,结束日期为: ${END_DATE}"
auditctl -a always,exit -S open -k test_end_rule --end ${END_DATE}
CHECK_RESULT $? 0 0 "添加带--end参数的审计规则失败"
# 检查规则是否添加成功
LOG_INFO "检查审计规则是否添加成功"
auditctl -l | grep -q "test_end_rule"
CHECK_RESULT $? 0 0 "审计规则添加失败"
LOG_INFO "审计规则添加成功,结束日期为: ${END_DATE}"
# 清理测试规则
LOG_INFO "清理测试审计规则"
auditctl -d always,exit -S open -k test_end_rule &>/dev/null
}
# 主测试流程
main() {
LOG_INFO "开始测试auditctl --end参数功能"
# 检查软件包是否在yum源中
check_package_in_repo
# 检查命令参数是否支持
check_command_option
# 记录初始安装状态
check_package_installed
INITIAL_INSTALL_STATUS=$?
# 如果未安装,则安装软件包
if [ ${INITIAL_INSTALL_STATUS} -ne 0 ]; then
LOG_INFO "检测到${PACKAGE_NAME}软件包未安装,将进行安装"
NEED_UNINSTALL=1
install_package
else
LOG_INFO "检测到${PACKAGE_NAME}软件包已安装"
NEED_UNINSTALL=0
fi
# 启动audit服务
start_audit_service
# 清理现有审计规则
clean_audit_rules
# 执行测试
test_end_option
# 停止audit服务
stop_audit_service
# 清理审计规则
clean_audit_rules
# 根据初始状态决定是否卸载
if [ ${NEED_UNINSTALL} -eq 1 ]; then
LOG_INFO "恢复环境:卸载${PACKAGE_NAME}软件包"
uninstall_package
else
LOG_INFO "保持${PACKAGE_NAME}软件包安装状态"
fi
LOG_INFO "测试auditctl --end参数功能完成"
}
# 执行主函数
main
}
main "$@"

View File

@@ -1,104 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --end 参数指定结束日期和时间
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试audit审计工具--end参数功能指定结束日期和时间"
# 检查是否已安装audit软件包
LOG_INFO "步骤1检查audit软件包是否已安装"
rpm -q audit > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "audit软件包已安装标记为已存在安装状态"
INSTALLED="yes"
else
LOG_INFO "audit软件包未安装标记为未安装状态"
INSTALLED="no"
fi
# 检查yum源中是否存在audit软件包
LOG_INFO "步骤2检查yum源中是否存在audit软件包"
dnf list available audit 2>&1 | grep -q "audit"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
# 如果未安装则安装audit
if [ "${INSTALLED}" = "no" ]; then
LOG_INFO "步骤3安装audit软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
# 启动auditd服务
LOG_INFO "步骤4启动auditd服务"
systemctl start auditd
CHECK_RESULT $? 0 0 "启动auditd服务失败"
# 检查--end参数是否支持
LOG_INFO "步骤5检查auditctl命令是否支持--end参数"
auditctl --help 2>&1 | grep -q -- "--end"
if [ $? -ne 0 ]; then
LOG_ERROR "auditctl命令不支持--end参数"
# 如果之前未安装audit则卸载
if [ "${INSTALLED}" = "no" ]; then
LOG_INFO "清理卸载audit软件包"
dnf remove -y audit
fi
exit 255
fi
# 测试使用--end参数指定结束日期和时间
LOG_INFO "步骤6测试使用--end参数指定结束日期和时间"
# 设置一个未来的结束时间例如当前时间后1分钟
END_TIME=$(date -d "+1 minute" "+%x %H:%M:%S")
LOG_INFO "设置结束时间为:${END_TIME}"
auditctl --end "${END_TIME}" -w /etc/passwd -p wa -k test_passwd
CHECK_RESULT $? 0 0 "使用--end参数设置审计规则失败"
# 查看规则是否添加成功
LOG_INFO "步骤7验证审计规则是否添加成功"
auditctl -l | grep -q "test_passwd"
CHECK_RESULT $? 0 0 "未找到添加的审计规则"
# 清理测试规则
LOG_INFO "步骤8清理测试添加的审计规则"
auditctl -D
CHECK_RESULT $? 0 0 "清理审计规则失败"
# 停止auditd服务
LOG_INFO "步骤9停止auditd服务"
systemctl stop auditd
CHECK_RESULT $? 0 0 "停止auditd服务失败"
# 如果测试前未安装audit则卸载
if [ "${INSTALLED}" = "no" ]; then
LOG_INFO "步骤10清理环境卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "步骤10环境已安装audit保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,92 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --file 参数指定审计日志文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="audit"
COMMAND="auvirt"
LOG_FILE="/tmp/auvirt_test.log"
# 步骤1检查环境是否已安装audit软件包
LOG_INFO "步骤1检查环境是否已安装audit软件包"
if rpm -q $PACKAGE_NAME &> /dev/null; then
LOG_INFO "audit软件包已安装测试完成后保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "audit软件包未安装将在测试过程中安装"
ALREADY_INSTALLED=false
fi
# 步骤2检查yum源中是否有audit软件包
LOG_INFO "步骤2检查yum源中是否有audit软件包"
if ! dnf list available $PACKAGE_NAME &> /dev/null; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
# 步骤3如果未安装则安装audit软件包
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "步骤3安装audit软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
# 步骤4检查auvirt命令是否支持--file参数
LOG_INFO "步骤4检查auvirt命令是否支持--file参数"
if ! $COMMAND --help 2>&1 | grep -q -- "--file"; then
LOG_ERROR "auvirt命令不支持--file参数"
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "清理环境卸载audit软件包"
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤5使用--file参数指定审计日志文件并执行命令
LOG_INFO "步骤5使用--file参数指定审计日志文件并执行命令"
$COMMAND --file "$LOG_FILE" --help
CHECK_RESULT $? 0 0 "使用--file参数执行auvirt命令失败"
# 步骤6验证日志文件是否被正确创建
LOG_INFO "步骤6验证日志文件是否被正确创建"
if [ -f "$LOG_FILE" ]; then
LOG_INFO "审计日志文件已创建:$LOG_FILE"
else
LOG_ERROR "审计日志文件未创建"
CHECK_RESULT 1 0 0 "审计日志文件未创建"
fi
# 步骤7清理测试创建的日志文件
LOG_INFO "步骤7清理测试创建的日志文件"
rm -f "$LOG_FILE"
CHECK_RESULT $? 0 0 "删除审计日志文件失败"
# 步骤8如果测试前未安装audit软件包则卸载
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "步骤8卸载audit软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
fi
LOG_INFO "测试完成:成功测试了使用--file参数指定审计日志文件"
}
main "$@"

View File

@@ -1,102 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用 --file 和 --all-events 参数从指定文件读取所有事件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="audit"
# 步骤1: 检查是否已安装audit软件包
LOG_INFO "步骤1: 检查是否已安装audit软件包"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "audit软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "audit软件包未安装测试前将安装该软件包"
INSTALLED_BEFORE_TEST=false
fi
# 步骤2: 检查yum源中是否有audit软件包
LOG_INFO "步骤2: 检查yum源中是否有audit软件包"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有找到audit软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到audit软件包"
exit 255
fi
# 步骤3: 如果未安装则安装audit软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "步骤3: 安装audit软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
# 步骤4: 检查auditctl命令是否支持--file和--all-events参数
LOG_INFO "步骤4: 检查auditctl命令是否支持--file和--all-events参数"
auditctl --help | grep -E -- "--file|--all-events" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "auditctl命令不支持--file或--all-events参数"
if [ $? -ne 0 ]; then
LOG_ERROR "auditctl命令不支持--file或--all-events参数"
exit 255
fi
# 步骤5: 创建一个测试用的audit日志文件
LOG_INFO "步骤5: 创建一个测试用的audit日志文件"
TEST_AUDIT_FILE="/tmp/test_audit.log"
echo "type=SYSCALL msg=audit(1234567890.123:123456): arch=c000003e syscall=59 success=yes exit=0 a0=123456 a1=123456 a2=123456 a3=123456 items=0 ppid=12345 pid=12346 auid=12345 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=12345 comm=\"sh\" exe=\"/usr/bin/bash\" key=\"test_key\"" > $TEST_AUDIT_FILE
echo "type=SYSCALL msg=audit(1234567890.124:123457): arch=c000003e syscall=59 success=no exit=-1 a0=123456 a1=123456 a2=123456 a3=123456 items=0 ppid=12345 pid=12346 auid=12345 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=12345 comm=\"bash\" exe=\"/usr/bin/bash\" key=\"test_key\"" >> $TEST_AUDIT_FILE
CHECK_RESULT $? 0 0 "创建测试audit日志文件失败"
# 步骤6: 使用--file和--all-events参数从指定文件读取所有事件
LOG_INFO "步骤6: 使用--file和--all-events参数从指定文件读取所有事件"
auditctl --file $TEST_AUDIT_FILE --all-events > /tmp/audit_output.txt 2>&1
CHECK_RESULT $? 0 0 "使用--file和--all-events参数读取事件失败"
# 步骤7: 验证读取的事件数量是否正确
LOG_INFO "步骤7: 验证读取的事件数量是否正确"
EVENT_COUNT=$(wc -l < $TEST_AUDIT_FILE)
OUTPUT_COUNT=$(wc -l < /tmp/audit_output.txt)
if [ $EVENT_COUNT -le $OUTPUT_COUNT ]; then
LOG_INFO "读取的事件数量正确"
else
LOG_ERROR "读取的事件数量不正确,预期至少 $EVENT_COUNT 个事件,实际读取 $OUTPUT_COUNT 个事件"
CHECK_RESULT 1 0 0 "事件数量验证失败"
fi
# 步骤8: 清理测试文件
LOG_INFO "步骤8: 清理测试文件"
rm -f $TEST_AUDIT_FILE /tmp/audit_output.txt
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 步骤9: 如果测试前未安装audit软件包则卸载它
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "步骤9: 卸载audit软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "步骤9: 测试前已安装audit软件包保持安装状态"
fi
LOG_INFO "测试组合使用 --file 和 --all-events 参数从指定文件读取所有事件 完成"
}
main "$@"

View File

@@ -1,83 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --proof 参数生成证明信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试使用 --proof 参数生成证明信息
LOG_INFO "开始测试使用 --proof 参数生成证明信息"
# 定义软件包名称
PACKAGE_NAME="auvirt"
# 步骤1检查环境中是否已经安装了指定软件包
LOG_INFO "步骤1检查环境中是否已经安装了 $PACKAGE_NAME 软件包"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "环境中已经安装了 $PACKAGE_NAME 软件包"
INSTALLED="true"
else
LOG_INFO "环境中未安装 $PACKAGE_NAME 软件包"
INSTALLED="false"
fi
# 步骤2检查yum源中是否有该软件包
LOG_INFO "步骤2检查yum源中是否有 $PACKAGE_NAME 软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中没有找到 $PACKAGE_NAME 软件包"
exit 255
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装 $PACKAGE_NAME 软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 软件包失败"
fi
# 步骤4检查 --proof 参数是否存在
LOG_INFO "步骤4检查 --proof 参数是否存在"
if ! auvirt --help | grep -q "\-\-proof"; then
LOG_ERROR "auvirt 命令不支持 --proof 参数"
# 如果之前未安装,则需要卸载软件包
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载 $PACKAGE_NAME 软件包"
dnf remove -y "$PACKAGE_NAME"
fi
exit 255
fi
# 步骤5使用 --proof 参数生成证明信息
LOG_INFO "步骤5使用 --proof 参数生成证明信息"
auvirt --proof
CHECK_RESULT $? 0 0 "使用 --proof 参数生成证明信息失败"
# 步骤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,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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --show-uuid 参数显示UUID
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称和命令
PACKAGE_NAME="audit"
COMMAND="auvirt"
PARAM="--show-uuid"
# 步骤1检查yum源中是否存在指定软件包
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检查软件包是否已安装
LOG_INFO "2. 检查软件包是否已安装"
rpm -q "${PACKAGE_NAME}" &>/dev/null
if [ $? -eq 0 ]; then
INSTALLED="true"
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
else
INSTALLED="false"
LOG_INFO "软件包未安装,将在测试结束后卸载"
fi
# 步骤3如果未安装则安装软件包
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "3. 安装软件包: ${PACKAGE_NAME}"
dnf install -y "${PACKAGE_NAME}" &>/dev/null
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
# 步骤4检查命令是否支持--show-uuid参数
LOG_INFO "4. 检查命令是否支持参数: ${PARAM}"
${COMMAND} --help 2>&1 | grep -q "${PARAM}"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${COMMAND} 不支持参数 ${PARAM}"
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "清理环境:卸载软件包"
dnf remove -y "${PACKAGE_NAME}" &>/dev/null
fi
exit 255
fi
# 步骤5执行命令测试--show-uuid参数
LOG_INFO "5. 执行命令测试参数: ${COMMAND} ${PARAM}"
${COMMAND} ${PARAM} &>/dev/null
CHECK_RESULT $? 0 0 "执行命令 ${COMMAND} ${PARAM} 失败"
# 步骤6清理环境
LOG_INFO "6. 清理环境"
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载软件包: ${PACKAGE_NAME}"
dnf remove -y "${PACKAGE_NAME}" &>/dev/null
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "软件包保持安装状态"
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用 --show-uuid 和 --proof 参数显示UUID并生成证明
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称和命令路径
PACKAGE_NAME="auvirt"
COMMAND="auvirt"
PARAM_SHOW_UUID="--show-uuid"
PARAM_PROOF="--proof"
PROOF_FILE="/tmp/auvirt_proof.txt"
# 步骤1: 检查是否已安装auvirt软件包
LOG_INFO "步骤1: 检查是否已安装auvirt软件包"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "auvirt软件包已安装脚本结束时将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "auvirt软件包未安装将在测试过程中安装并在结束后卸载"
ALREADY_INSTALLED=0
fi
# 步骤2: 检查yum源中是否有auvirt软件包
LOG_INFO "步骤2: 检查yum源中是否有auvirt软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中未找到auvirt软件包"
exit 255
fi
# 步骤3: 如果未安装则安装auvirt软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3: 安装auvirt软件包"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装auvirt软件包失败"
fi
# 步骤4: 检查命令是否支持--show-uuid参数
LOG_INFO "步骤4: 检查命令是否支持--show-uuid参数"
if ! $COMMAND --help 2>&1 | grep -q "$PARAM_SHOW_UUID"; then
LOG_ERROR "命令不支持--show-uuid参数"
exit 255
fi
# 步骤5: 检查命令是否支持--proof参数
LOG_INFO "步骤5: 检查命令是否支持--proof参数"
if ! $COMMAND --help 2>&1 | grep -q "$PARAM_PROOF"; then
LOG_ERROR "命令不支持--proof参数"
exit 255
fi
# 步骤6: 执行组合命令显示UUID并生成证明
LOG_INFO "步骤6: 执行组合命令显示UUID并生成证明"
$COMMAND $PARAM_SHOW_UUID $PARAM_PROOF "$PROOF_FILE"
CHECK_RESULT $? 0 0 "执行组合命令失败"
# 步骤7: 验证证明文件是否生成
LOG_INFO "步骤7: 验证证明文件是否生成"
if [ -f "$PROOF_FILE" ]; then
LOG_INFO "证明文件已生成: $PROOF_FILE"
else
LOG_ERROR "证明文件未生成"
exit 1
fi
# 步骤8: 清理生成的证明文件
LOG_INFO "步骤8: 清理生成的证明文件"
rm -f "$PROOF_FILE"
CHECK_RESULT $? 0 0 "删除证明文件失败"
# 步骤9: 如果之前未安装则卸载auvirt软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤9: 卸载auvirt软件包"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载auvirt软件包失败"
fi
LOG_INFO "测试脚本执行完成"
}
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --start 参数指定开始日期和时间
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义测试函数
test_audit_auvirt_start_date_time() {
# 步骤1: 检查audit软件包是否已安装
LOG_INFO "步骤1: 检查audit软件包是否已安装"
rpm -q audit > /dev/null 2>&1
local audit_installed=$?
# 步骤2: 检查audit软件包是否在yum源中
LOG_INFO "步骤2: 检查audit软件包是否在yum源中"
dnf list available audit > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到audit软件包"
exit 255
fi
# 步骤3: 如果未安装则安装audit软件包
if [ $audit_installed -ne 0 ]; then
LOG_INFO "步骤3: 安装audit软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
else
LOG_INFO "步骤3: audit软件包已安装跳过安装步骤"
fi
# 步骤4: 检查auditctl命令的--start参数是否支持
LOG_INFO "步骤4: 检查auditctl命令的--start参数是否支持"
auditctl --help 2>&1 | grep -q "\-\-start"
if [ $? -ne 0 ]; then
LOG_ERROR "auditctl命令不支持--start参数"
exit 255
fi
# 步骤5: 测试使用--start参数指定开始日期和时间
LOG_INFO "步骤5: 测试使用--start参数指定开始日期和时间"
# 测试有效的日期时间格式
LOG_INFO "测试有效的日期时间格式: 2023-01-01 00:00:00"
auditctl --start "2023-01-01 00:00:00" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "使用有效日期时间格式执行失败"
# 测试无效的日期时间格式
LOG_INFO "测试无效的日期时间格式: invalid-date"
auditctl --start "invalid-date" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "无效日期时间格式应该执行失败"
exit 1
fi
# 步骤6: 测试边界情况
LOG_INFO "步骤6: 测试边界情况"
# 测试空参数
LOG_INFO "测试空参数"
auditctl --start "" > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "空参数应该执行失败"
exit 1
fi
# 步骤7: 清理环境
LOG_INFO "步骤7: 清理环境"
# 如果测试前未安装,则卸载软件包
if [ $audit_installed -ne 0 ]; then
LOG_INFO "卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "测试前已安装audit软件包保持安装状态"
fi
LOG_INFO "测试完成"
}
# 执行测试函数
test_audit_auvirt_start_date_time
}
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用 --start 和 --end 参数指定时间范围
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="audit"
TEST_COMMAND="auvirt"
LOG_FILE="/tmp/test_audit_auvirt.log"
# 清理日志文件
> ${LOG_FILE}
# 检查软件包是否在yum源中
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否已安装"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,标记为已安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,标记为未安装状态"
ALREADY_INSTALLED=0
fi
# 如果未安装,则安装软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME} &>> ${LOG_FILE}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 检查命令是否存在
LOG_INFO "检查命令 ${TEST_COMMAND} 是否存在"
command -v ${TEST_COMMAND} &>/dev/null
CHECK_RESULT $? 0 0 "命令 ${TEST_COMMAND} 不存在"
# 测试组合使用 --start 和 --end 参数指定时间范围
LOG_INFO "测试组合使用 --start 和 --end 参数指定时间范围"
# 检查参数是否支持
LOG_INFO "检查 --start 参数是否支持"
${TEST_COMMAND} --help 2>&1 | grep -q "\-\-start"
CHECK_RESULT $? 0 255 "参数 --start 不支持"
LOG_INFO "检查 --end 参数是否支持"
${TEST_COMMAND} --help 2>&1 | grep -q "\-\-end"
CHECK_RESULT $? 0 255 "参数 --end 不支持"
# 执行测试命令
LOG_INFO "执行测试命令: ${TEST_COMMAND} --start \"2023-01-01 00:00:00\" --end \"2023-01-02 00:00:00\""
${TEST_COMMAND} --start "2023-01-01 00:00:00" --end "2023-01-02 00:00:00" &>> ${LOG_FILE}
CHECK_RESULT $? 0 0 "执行命令 ${TEST_COMMAND} 失败"
# 环境恢复
LOG_INFO "开始环境恢复"
# 如果之前未安装,则卸载软件包
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME} &>> ${LOG_FILE}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
else
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
fi
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f ${LOG_FILE}
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用 --start、--end 和 --vm 参数在指定时间范围内过滤虚拟机事件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 audit 和 auditd 软件包
LOG_INFO "检查是否已安装 audit 和 auditd 软件包"
rpm -q audit auditd >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "audit 和 auditd 已安装"
installed=true
else
LOG_INFO "audit 和 auditd 未安装"
installed=false
fi
# 检查 yum 源中是否有 audit 和 auditd 软件包
LOG_INFO "检查 yum 源中是否有 audit 和 auditd 软件包"
dnf list available audit auditd 2>/dev/null | grep -E "^audit\.|^auditd\." >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中没有 audit 或 auditd 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装 audit 和 auditd 软件包"
dnf install -y audit auditd
CHECK_RESULT $? 0 0 "安装 audit 和 auditd 软件包失败"
fi
# 启动 auditd 服务
LOG_INFO "启动 auditd 服务"
systemctl start auditd
CHECK_RESULT $? 0 0 "启动 auditd 服务失败"
# 检查 ausearch 命令是否支持 --start、--end 和 --vm 参数
LOG_INFO "检查 ausearch 命令是否支持 --start、--end 和 --vm 参数"
ausearch --help 2>&1 | grep -E -- "--start|--end|--vm" >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "ausearch 命令不支持 --start、--end 或 --vm 参数"
exit 255
fi
# 设置测试用的时间范围和虚拟机名称
start_time="$(date -d "1 hour ago" "+%m/%d/%Y %H:%M:%S")"
end_time="$(date "+%m/%d/%Y %H:%M:%S")"
vm_name="test_vm"
# 使用 ausearch 命令组合 --start、--end 和 --vm 参数过滤虚拟机事件
LOG_INFO "使用 ausearch 命令组合 --start、--end 和 --vm 参数过滤虚拟机事件"
ausearch --start "$start_time" --end "$end_time" --vm "$vm_name" 2>&1
CHECK_RESULT $? 0 0 "使用 ausearch 命令过滤虚拟机事件失败"
# 停止 auditd 服务
LOG_INFO "停止 auditd 服务"
systemctl stop auditd
CHECK_RESULT $? 0 0 "停止 auditd 服务失败"
# 如果测试前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载 audit 和 auditd 软件包"
dnf remove -y audit auditd
CHECK_RESULT $? 0 0 "卸载 audit 和 auditd 软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,154 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用 --stdin 和 --debug 参数从标准输入读取并启用调试
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(虽然题目说不需要定义,但实际脚本中需要实现)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*"
}
# 定义检查结果函数
CHECK_RESULT() {
local actual=$1
local expect=$2
local mode=$3
local message=$4
if [ $mode -eq 0 ]; then
if [ $actual -eq $expect ]; then
LOG_INFO "$message 检查通过"
return 0
else
LOG_ERROR "$message 检查失败,实际值:$actual,期望值:$expect"
exit $actual
fi
fi
}
# 定义SSH_CMD函数虽然题目说不需要定义但为完整性提供空实现
SSH_CMD() {
LOG_INFO "SSH命令执行: $*"
# 实际环境中需要实现SSH连接逻辑
return 0
}
# 主测试函数
main() {
LOG_INFO "开始测试组合使用 --stdin 和 --debug 参数从标准输入读取并启用调试"
# 定义软件包名称
PACKAGE_NAME="audit"
# 步骤1: 检查软件包是否在yum源中
LOG_INFO "步骤1: 检查软件包 $PACKAGE_NAME 是否在yum源中"
dnf list available $PACKAGE_NAME 2>/dev/null | grep -q $PACKAGE_NAME
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中"
# 步骤2: 检查是否已安装
LOG_INFO "步骤2: 检查 $PACKAGE_NAME 是否已安装"
rpm -q $PACKAGE_NAME >/dev/null 2>&1
local is_installed=$?
# 步骤3: 如果未安装,则安装软件包
if [ $is_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: 检查audit命令是否支持--stdin参数
LOG_INFO "步骤4: 检查audit命令是否支持--stdin参数"
auditctl --help 2>&1 | grep -q -- "--stdin"
if [ $? -ne 0 ]; then
LOG_ERROR "auditctl命令不支持--stdin参数"
# 清理环境
if [ $is_installed -ne 0 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤5: 检查audit命令是否支持--debug参数
LOG_INFO "步骤5: 检查audit命令是否支持--debug参数"
auditctl --help 2>&1 | grep -q -- "--debug"
if [ $? -ne 0 ]; then
LOG_ERROR "auditctl命令不支持--debug参数"
# 清理环境
if [ $is_installed -ne 0 ]; then
dnf remove -y $PACKAGE_NAME
fi
exit 255
fi
# 步骤6: 测试组合使用--stdin和--debug参数
LOG_INFO "步骤6: 测试组合使用--stdin和--debug参数从标准输入读取并启用调试"
# 创建测试规则
local test_rule="-w /etc/passwd -p wa -k passwd_changes"
# 通过标准输入传递规则并启用调试模式
echo "$test_rule" | auditctl --stdin --debug
# 检查命令执行结果
local audit_result=$?
# 步骤7: 验证规则是否添加成功
LOG_INFO "步骤7: 验证规则是否添加成功"
if [ $audit_result -eq 0 ]; then
auditctl -l | grep -q "/etc/passwd"
CHECK_RESULT $? 0 0 "验证规则添加"
# 步骤8: 清理测试规则
LOG_INFO "步骤8: 清理测试规则"
echo "-d -w /etc/passwd -p wa -k passwd_changes" | auditctl --stdin
CHECK_RESULT $? 0 0 "清理测试规则"
else
CHECK_RESULT $audit_result 0 0 "执行auditctl命令"
fi
# 步骤9: 恢复环境
LOG_INFO "步骤9: 恢复环境"
if [ $is_installed -ne 0 ]; 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 "$@"
}
main "$@"

View File

@@ -1,89 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --uuid 参数过滤指定UUID的事件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用 --uuid 参数过滤指定UUID的事件"
# 检查audit软件包是否已安装
LOG_INFO "检查audit软件包是否已安装"
if dnf list installed audit &>/dev/null; then
LOG_INFO "audit软件包已安装脚本结束后将保持安装状态"
already_installed=true
else
LOG_INFO "audit软件包未安装将在测试过程中安装"
already_installed=false
fi
# 检查yum源中是否有audit软件包
LOG_INFO "检查yum源中是否有audit软件包"
if ! dnf list available audit &>/dev/null; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
# 如果未安装则安装audit软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装audit软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
# 启动auditd服务
LOG_INFO "启动auditd服务"
systemctl start auditd
CHECK_RESULT $? 0 0 "启动auditd服务失败"
# 生成一个测试用的UUID
LOG_INFO "生成测试UUID"
TEST_UUID=$(uuidgen)
LOG_INFO "测试UUID为: $TEST_UUID"
# 添加一个audit规则使用生成的UUID
LOG_INFO "添加audit规则"
auditctl -a always,exit -F arch=b64 -S open -F auid!=-1 -F key=test_uuid_rule -F uuid=$TEST_UUID
CHECK_RESULT $? 0 0 "添加audit规则失败"
# 使用ausearch查询指定UUID的事件
LOG_INFO "使用ausearch查询指定UUID的事件"
ausearch --uuid $TEST_UUID 2>&1
CHECK_RESULT $? 0 0 "使用--uuid参数查询事件失败"
# 清理删除添加的audit规则
LOG_INFO "删除添加的audit规则"
auditctl -d always,exit -F arch=b64 -S open -F auid!=-1 -F key=test_uuid_rule -F uuid=$TEST_UUID
CHECK_RESULT $? 0 0 "删除audit规则失败"
# 停止auditd服务
LOG_INFO "停止auditd服务"
systemctl stop auditd
CHECK_RESULT $? 0 0 "停止auditd服务失败"
# 如果脚本开始前未安装audit则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,77 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试组合使用 --uuid 和 --vm 参数进行复合过滤
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试组合使用 --uuid 和 --vm 参数进行复合过滤"
# 检查是否已安装 audit 软件包
LOG_INFO "检查 audit 软件包是否已安装"
if dnf list installed audit &>/dev/null; then
LOG_INFO "audit 软件包已安装"
INSTALLED=true
else
LOG_INFO "audit 软件包未安装"
INSTALLED=false
fi
# 检查 yum 源中是否有 audit 软件包
LOG_INFO "检查 yum 源中是否有 audit 软件包"
if ! dnf list available audit &>/dev/null; then
LOG_ERROR "yum 源中没有 audit 软件包"
exit 255
fi
# 如果未安装,则安装 audit 软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 audit 软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装 audit 软件包失败"
fi
# 检查 --uuid 和 --vm 参数是否支持
LOG_INFO "检查 --uuid 和 --vm 参数是否支持"
if ! ausearch --help 2>&1 | grep -q -- "--uuid"; then
LOG_ERROR "--uuid 参数不支持"
exit 255
fi
if ! ausearch --help 2>&1 | grep -q -- "--vm"; then
LOG_ERROR "--vm 参数不支持"
exit 255
fi
# 测试组合使用 --uuid 和 --vm 参数进行复合过滤
LOG_INFO "测试组合使用 --uuid 和 --vm 参数进行复合过滤"
UUID_TEST="test-uuid-1234"
VM_TEST="test-vm-5678"
ausearch --uuid "$UUID_TEST" --vm "$VM_TEST" 2>&1
CHECK_RESULT $? 0 0 "组合使用 --uuid 和 --vm 参数进行复合过滤失败"
# 清理环境:如果之前未安装,则卸载 audit 软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 audit 软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载 audit 软件包失败"
fi
LOG_INFO "测试完成"
}
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用 --vm 参数过滤指定虚拟机名称的事件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断环境是否已安装软件包
LOG_INFO "检查是否已安装 audit 和 audit-auvirt 软件包"
rpm -q audit >/dev/null 2>&1
audit_installed=$?
rpm -q audit-auvirt >/dev/null 2>&1
auvirt_installed=$?
# 如果未安装,则在脚本中安装
if [ $audit_installed -ne 0 ] || [ $auvirt_installed -ne 0 ]; then
LOG_INFO "环境未安装所需软件包,开始安装"
LOG_INFO "检查 yum 源中是否存在 audit 和 audit-auvirt 软件包"
dnf list available audit 2>/dev/null | grep -q audit
CHECK_RESULT $? 0 0 "yum 源中不存在 audit 软件包"
dnf list available audit-auvirt 2>/dev/null | grep -q audit-auvirt
CHECK_RESULT $? 0 0 "yum 源中不存在 audit-auvirt 软件包"
LOG_INFO "安装 audit 和 audit-auvirt 软件包"
dnf install -y audit audit-auvirt
CHECK_RESULT $? 0 0 "安装软件包失败"
installed_by_script=1
else
LOG_INFO "环境已安装所需软件包"
installed_by_script=0
fi
# 测试使用 --vm 参数过滤指定虚拟机名称的事件
LOG_INFO "测试使用 --vm 参数过滤指定虚拟机名称的事件"
LOG_INFO "检查 ausearch 命令是否支持 --vm 参数"
ausearch --help 2>&1 | grep -q -- "--vm"
CHECK_RESULT $? 0 0 "ausearch 命令不支持 --vm 参数"
LOG_INFO "使用 --vm 参数查询指定虚拟机名称的审计事件"
test_vm_name="test_vm_$(date +%s)"
ausearch --vm "$test_vm_name" 2>&1
CHECK_RESULT $? 0 0 "使用 --vm 参数查询审计事件失败"
LOG_INFO "测试 --vm 参数为空值时的行为"
ausearch --vm "" 2>&1
# 允许返回非0因为空虚拟机名称可能无效
# 但不应该导致命令崩溃
LOG_INFO "测试 --vm 参数包含特殊字符的情况"
ausearch --vm "vm-with-dash" 2>&1
CHECK_RESULT $? 0 0 "使用包含特殊字符的虚拟机名称查询失败"
# 清理环境
LOG_INFO "清理测试环境"
if [ $installed_by_script -eq 1 ]; then
LOG_INFO "卸载由脚本安装的软件包"
dnf remove -y audit-auvirt audit
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "保持原有软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,198 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试audit审计规则的查看、添加、删除和重载。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出
LOG_INFO() {
echo -e "\033[32m[INFO]\033[0m $*"
}
LOG_ERROR() {
echo -e "\033[31m[ERROR]\033[0m $*"
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local package_name=$1
if ! dnf list available "$package_name" &>/dev/null; then
LOG_ERROR "软件包 $package_name 不在yum源中"
exit 255
fi
}
# 检查命令参数是否支持
check_command_option() {
local command=$1
local option=$2
if ! $command --help 2>&1 | grep -q -- "$option"; then
LOG_ERROR "命令 $command 不支持参数 $option"
exit 255
fi
}
# 检查auditd是否已安装
check_auditd_installed() {
if rpm -q audit &>/dev/null; then
LOG_INFO "auditd 已安装"
return 0
else
LOG_INFO "auditd 未安装"
return 1
fi
}
# 安装auditd
install_auditd() {
LOG_INFO "开始安装 auditd"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装 auditd 失败"
LOG_INFO "安装 auditd 成功"
}
# 卸载auditd
uninstall_auditd() {
LOG_INFO "开始卸载 auditd"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载 auditd 失败"
LOG_INFO "卸载 auditd 成功"
}
# 测试审计规则查看
test_audit_rules_view() {
LOG_INFO "测试查看审计规则"
auditctl -l
CHECK_RESULT $? 0 0 "查看审计规则失败"
LOG_INFO "查看审计规则成功"
}
# 测试添加审计规则
test_audit_rules_add() {
LOG_INFO "测试添加审计规则"
local test_rule="-w /etc/passwd -p wa -k test_passwd"
auditctl $test_rule
CHECK_RESULT $? 0 0 "添加审计规则失败"
# 验证规则是否添加成功
auditctl -l | grep -q "test_passwd"
CHECK_RESULT $? 0 0 "验证添加的审计规则失败"
LOG_INFO "添加审计规则成功"
}
# 测试删除审计规则
test_audit_rules_delete() {
LOG_INFO "测试删除审计规则"
auditctl -d -w /etc/passwd -p wa -k test_passwd
CHECK_RESULT $? 0 0 "删除审计规则失败"
# 验证规则是否已删除
auditctl -l | grep -q "test_passwd"
if [ $? -eq 0 ]; then
LOG_ERROR "审计规则删除验证失败"
exit 1
fi
LOG_INFO "删除审计规则成功"
}
# 测试重载审计规则
test_audit_rules_reload() {
LOG_INFO "测试重载审计规则"
# 先添加一个规则用于测试重载
local test_rule="-w /etc/group -p wa -k test_group"
auditctl $test_rule
# 保存当前规则
auditctl -l > /tmp/audit_rules_before_reload
# 重载规则
auditctl -R /etc/audit/rules.d/audit.rules 2>/dev/null || true
# 重新加载规则后检查
auditctl -l > /tmp/audit_rules_after_reload
# 检查规则是否仍然存在(重载不应该影响内存中的规则)
auditctl -l | grep -q "test_group"
CHECK_RESULT $? 0 0 "重载审计规则后规则丢失"
LOG_INFO "重载审计规则成功"
# 清理临时文件
rm -f /tmp/audit_rules_before_reload /tmp/audit_rules_after_reload
}
# 主测试函数
main_test() {
LOG_INFO "开始测试 audit 审计规则的查看、添加、删除和重载"
# 检查auditd是否已安装
local was_installed=false
if check_auditd_installed; then
was_installed=true
else
# 检查软件包是否在yum源中
check_package_in_repo audit
# 安装auditd
install_auditd
fi
# 检查auditctl命令的参数支持
check_command_option auditctl "-l"
check_command_option auditctl "-w"
check_command_option auditctl "-d"
check_command_option auditctl "-R"
# 启动auditd服务
LOG_INFO "启动 auditd 服务"
systemctl start auditd
CHECK_RESULT $? 0 0 "启动 auditd 服务失败"
# 执行各项测试
test_audit_rules_view
test_audit_rules_add
test_audit_rules_delete
test_audit_rules_reload
# 停止auditd服务
LOG_INFO "停止 auditd 服务"
systemctl stop auditd
CHECK_RESULT $? 0 0 "停止 auditd 服务失败"
# 如果测试前未安装则卸载auditd
if [ "$was_installed" = "false" ]; then
uninstall_auditd
fi
LOG_INFO "测试完成"
}
# 环境清理函数
cleanup() {
LOG_INFO "开始环境清理"
# 确保auditd服务停止
systemctl stop auditd 2>/dev/null || true
# 清理测试中添加的规则
auditctl -D 2>/dev/null || true
LOG_INFO "环境清理完成"
}
# 设置trap确保脚本退出时执行清理
trap cleanup EXIT
# 执行主测试
main_test
exit 0
}
main "$@"

View File

@@ -1,102 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用ausearch按时间、事件类型等条件搜索审计日志。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试ausearch按条件搜索审计日志功能"
# 检查是否已安装audit包
LOG_INFO "检查audit软件包是否已安装"
if rpm -q audit >/dev/null 2>&1; then
LOG_INFO "audit软件包已安装"
installed=true
else
LOG_INFO "audit软件包未安装"
installed=false
fi
# 如果未安装,则尝试安装
if [ "$installed" = false ]; then
LOG_INFO "尝试安装audit软件包"
# 检查yum源中是否有audit包
LOG_INFO "检查yum源中是否有audit软件包"
if ! dnf list available audit 2>/dev/null | grep -q audit; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
# 安装audit包
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
# 启动auditd服务
LOG_INFO "启动auditd服务"
systemctl start auditd
CHECK_RESULT $? 0 0 "启动auditd服务失败"
fi
# 测试ausearch命令参数检查
LOG_INFO "测试ausearch命令参数检查"
ausearch --invalid-param >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "ausearch命令参数检查正常"
else
LOG_ERROR "ausearch命令不支持--invalid-param参数"
exit 255
fi
# 生成测试审计事件
LOG_INFO "生成测试审计事件"
echo "test_ausearch_event" > /tmp/test_ausearch_file
rm -f /tmp/test_ausearch_file
# 测试按时间搜索
LOG_INFO "测试按时间搜索审计日志"
start_time=$(date +"%H:%M:%S")
sleep 1
ausearch --start $start_time --raw | grep -q "test_ausearch_event"
CHECK_RESULT $? 0 0 "按时间搜索审计日志失败"
# 测试按事件类型搜索
LOG_INFO "测试按事件类型搜索审计日志"
ausearch --type SYSCALL --raw | head -5 >/dev/null
CHECK_RESULT $? 0 0 "按事件类型搜索审计日志失败"
# 测试组合条件搜索
LOG_INFO "测试组合条件搜索审计日志"
ausearch --start $start_time --type SYSCALL --raw | head -5 >/dev/null
CHECK_RESULT $? 0 0 "组合条件搜索审计日志失败"
# 清理测试环境
LOG_INFO "清理测试环境"
if [ "$installed" = false ]; then
LOG_INFO "卸载audit软件包"
systemctl stop auditd 2>/dev/null
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "保持audit软件包安装状态"
fi
LOG_INFO "ausearch按条件搜索审计日志测试完成"
}
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-04-03
# @License : Mulan PSL v2
# @Desc : 测试audit守护进程的启动、停止、状态查询。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试audit守护进程的启动、停止、状态查询"
LOG_INFO "检查audit软件包是否已安装"
rpm -q audit > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "audit软件包已安装测试结束后保持安装状态"
INSTALLED=1
else
LOG_INFO "audit软件包未安装将在测试前安装并在测试后卸载"
INSTALLED=0
LOG_INFO "检查yum源中是否有audit软件包"
dnf list available audit 2>/dev/null | grep -q audit
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有audit软件包"
exit 255
fi
LOG_INFO "安装audit软件包"
dnf install -y audit
CHECK_RESULT $? 0 0 "安装audit软件包失败"
fi
LOG_INFO "检查audit服务是否存在"
systemctl list-unit-files | grep -q auditd.service
CHECK_RESULT $? 0 0 "audit服务不存在"
LOG_INFO "启动audit服务"
systemctl start auditd
CHECK_RESULT $? 0 0 "启动audit服务失败"
LOG_INFO "查询audit服务状态"
systemctl status auditd
CHECK_RESULT $? 0 0 "查询audit服务状态失败"
LOG_INFO "停止audit服务"
systemctl stop auditd
CHECK_RESULT $? 0 0 "停止audit服务失败"
LOG_INFO "再次查询audit服务状态"
systemctl status auditd
if [ $? -eq 0 ]; then
LOG_ERROR "audit服务状态查询应失败但实际成功"
exit 1
else
LOG_INFO "audit服务状态查询失败符合预期"
fi
LOG_INFO "再次启动audit服务"
systemctl start auditd
CHECK_RESULT $? 0 0 "再次启动audit服务失败"
LOG_INFO "测试完成,开始环境恢复"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "保持audit软件包安装状态"
fi
LOG_INFO "环境恢复完成"
}
main "$@"

View File

@@ -1,105 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用aulast/aulastlog查看用户登录记录。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断是否已安装audit软件包
LOG_INFO "检查audit软件包是否已安装"
rpm -q audit > /dev/null 2>&1
audit_installed=$?
# 如果未安装则进行安装
if [ $audit_installed -ne 0 ]; then
LOG_INFO "audit软件包未安装开始安装"
# 检查yum源中是否有audit软件包
LOG_INFO "检查yum源中是否有audit软件包"
dnf list available audit 2>/dev/null | grep -q audit
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到audit软件包"
exit 255
fi
# 安装audit软件包
LOG_INFO "安装audit软件包"
dnf install -y audit > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装audit软件包失败"
else
LOG_INFO "audit软件包已安装保持安装状态"
fi
# 启动auditd服务
LOG_INFO "启动auditd服务"
systemctl start auditd > /dev/null 2>&1
CHECK_RESULT $? 0 0 "启动auditd服务失败"
# 检查aulast命令是否存在
LOG_INFO "检查aulast命令是否存在"
which aulast > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "aulast命令不存在或不支持"
exit 255
fi
# 测试aulast命令查看用户登录记录
LOG_INFO "测试aulast命令查看用户登录记录"
aulast -n 5 > /dev/null 2>&1
CHECK_RESULT $? 0 0 "aulast命令执行失败"
# 检查aulastlog命令是否存在
LOG_INFO "检查aulastlog命令是否存在"
which aulastlog > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "aulastlog命令不存在或不支持"
exit 255
fi
# 测试aulastlog命令查看用户登录记录
LOG_INFO "测试aulastlog命令查看用户登录记录"
aulastlog > /dev/null 2>&1
CHECK_RESULT $? 0 0 "aulastlog命令执行失败"
# 如果是在第二个服务器上执行则通过SSH_CMD执行
LOG_INFO "在第二个服务器上执行aulast命令"
SSH_CMD "which aulast > /dev/null 2>&1 && aulast -n 5 > /dev/null 2>&1" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "在第二个服务器上执行aulast命令失败"
LOG_INFO "在第二个服务器上执行aulastlog命令"
SSH_CMD "which aulastlog > /dev/null 2>&1 && aulastlog > /dev/null 2>&1" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "在第二个服务器上执行aulastlog命令失败"
# 停止auditd服务
LOG_INFO "停止auditd服务"
systemctl stop auditd > /dev/null 2>&1
CHECK_RESULT $? 0 0 "停止auditd服务失败"
# 环境清理如果测试前未安装audit则卸载
if [ $audit_installed -ne 0 ]; then
LOG_INFO "清理环境卸载audit软件包"
dnf remove -y audit > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载audit软件包失败"
else
LOG_INFO "保持audit软件包安装状态不进行卸载"
fi
LOG_INFO "测试完成使用aulast/aulastlog查看用户登录记录功能正常"
}
main "$@"

View File

@@ -1,113 +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-04-03
# @License : Mulan PSL v2
# @Desc : 测试使用auvirt查看虚拟机相关审计事件。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色和日志函数虽然题目说LOG_INFO和LOG_ERROR无需定义但实际使用时需要定义
LOG_INFO() {
echo -e "\033[32m[INFO]\033[0m $1"
}
LOG_ERROR() {
echo -e "\033[31m[ERROR]\033[0m $1"
}
# 定义检查结果的函数虽然题目说CHECK_RESULT无需定义但实际使用时需要定义
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_CMD函数虽然题目说SSH_CMD无需定义但实际使用时需要定义
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"
}
# 主测试函数
main() {
# 测试用例描述测试使用auvirt查看虚拟机相关审计事件
LOG_INFO "开始测试测试使用auvirt查看虚拟机相关审计事件"
# 步骤1检查是否已安装audit软件包
LOG_INFO "步骤1检查是否已安装audit软件包"
rpm -q audit >/dev/null 2>&1
local audit_installed=$?
# 步骤2如果未安装则安装audit软件包
if [ $audit_installed -ne 0 ]; then
LOG_INFO "步骤2安装audit软件包"
# 检查yum源中是否有audit软件包
LOG_INFO "检查yum源中是否有audit软件包"
dnf list available audit 2>/dev/null | grep -q audit
CHECK_RESULT $? 0 255 "yum源中没有audit软件包"
# 安装audit软件包
dnf install -y audit
CHECK_RESULT $? 0 1 "安装audit软件包失败"
else
LOG_INFO "audit软件包已安装跳过安装步骤"
fi
# 步骤3检查auvirt命令是否存在
LOG_INFO "步骤3检查auvirt命令是否存在"
command -v ausearch >/dev/null 2>&1
CHECK_RESULT $? 0 255 "ausearch命令不存在"
# 步骤4检查auvirt命令是否支持虚拟机事件参数
LOG_INFO "步骤4检查auvirt命令是否支持虚拟机事件参数"
ausearch --help 2>&1 | grep -q "virt"
CHECK_RESULT $? 0 255 "ausearch命令不支持虚拟机事件参数"
# 步骤5执行auvirt查看虚拟机审计事件
LOG_INFO "步骤5执行auvirt查看虚拟机审计事件"
ausearch --start recent --event virt
CHECK_RESULT $? 0 1 "执行auvirt查看虚拟机审计事件失败"
# 步骤6清理环境
LOG_INFO "步骤6清理环境"
if [ $audit_installed -ne 0 ]; then
LOG_INFO "卸载audit软件包"
dnf remove -y audit
CHECK_RESULT $? 0 1 "卸载audit软件包失败"
else
LOG_INFO "audit软件包是之前已安装的保持安装状态"
fi
LOG_INFO "测试完成测试使用auvirt查看虚拟机相关审计事件"
}
# 执行主函数
main
}
main "$@"

View File

@@ -1,65 +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-01-28
# @License : Mulan PSL v2
# @Desc : 测试 reset 命令的 -r 选项,用于将终端信息输出到标准错误
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 reset 命令的 -r 选项,用于将终端信息输出到标准错误"
LOG_INFO "步骤1: 检查 ncurses 软件包是否在 yum 源中"
dnf list available ncurses 2>&1 | grep -q "ncurses"
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 ncurses 软件包"
exit 255
fi
LOG_INFO "ncurses 软件包在 yum 源中存在"
LOG_INFO "步骤2: 检查当前是否已安装 ncurses"
rpm -q ncurses > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "ncurses 已安装,测试结束后将保持安装状态"
INSTALLED="true"
else
LOG_INFO "ncurses 未安装,将进行安装"
INSTALLED="false"
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3: 安装 ncurses 软件包"
dnf install -y ncurses
CHECK_RESULT $? 0 0 "安装 ncurses 失败"
LOG_INFO "ncurses 安装成功"
fi
LOG_INFO "步骤4: 检查 reset 命令是否支持 -r 选项"
reset --help 2>&1 | grep -q "\-r"
CHECK_RESULT $? 0 0 "reset 命令不支持 -r 选项"
LOG_INFO "reset 命令支持 -r 选项"
LOG_INFO "步骤5: 执行 reset -r 命令,将终端信息输出到标准错误"
reset -r 2>&1 > /dev/null
CHECK_RESULT $? 0 0 "执行 reset -r 命令失败"
LOG_INFO "reset -r 命令执行成功"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤6: 卸载 ncurses 软件包"
dnf remove -y ncurses
CHECK_RESULT $? 0 0 "卸载 ncurses 失败"
LOG_INFO "ncurses 卸载成功"
else
LOG_INFO "步骤6: 测试前已安装 ncurses保持安装状态无需卸载"
fi
LOG_INFO "测试完成,环境已恢复"
}
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-03-18
# @License : Mulan PSL v2
# @Desc : Test opening and closing a database file
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
SQLITE_PKG="sqlite"
SQLITE_CMD="sqlite3"
TEST_DB="test.db"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在$SQLITE_PKG软件包"
if ! dnf list available $SQLITE_PKG &>/dev/null; then
LOG_ERROR "yum源中不存在$SQLITE_PKG软件包"
exit 255
fi
# 检查sqlite3命令是否已安装
LOG_INFO "检查$SQLITE_CMD命令是否已安装"
if command -v $SQLITE_CMD &>/dev/null; then
LOG_INFO "$SQLITE_CMD已安装"
INSTALLED=true
else
LOG_INFO "$SQLITE_CMD未安装"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装$SQLITE_PKG软件包"
dnf install -y $SQLITE_PKG
CHECK_RESULT $? 0 0 "安装$SQLITE_PKG失败"
fi
# 测试打开和关闭数据库文件
LOG_INFO "测试打开和关闭数据库文件"
$SQLITE_CMD $TEST_DB ".exit"
CHECK_RESULT $? 0 0 "打开/关闭数据库文件失败"
# 验证数据库文件是否创建成功
LOG_INFO "验证数据库文件是否创建成功"
if [ -f "$TEST_DB" ]; then
LOG_INFO "数据库文件创建成功"
else
LOG_ERROR "数据库文件创建失败"
exit 1
fi
# 清理测试数据库文件
LOG_INFO "清理测试数据库文件"
rm -f $TEST_DB
CHECK_RESULT $? 0 0 "删除测试数据库文件失败"
# 如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载$SQLITE_PKG软件包"
dnf remove -y $SQLITE_PKG
CHECK_RESULT $? 0 0 "卸载$SQLITE_PKG失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,127 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试systool使用-c选项指定类别名称如net、input显示该类别下所有设备的详细信息。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否以root用户运行
if [[ $EUID -ne 0 ]]; then
LOG_ERROR "请使用root用户运行此脚本"
exit 1
fi
# 定义软件包名称
PACKAGE_NAME="sysfsutils"
# 步骤1检查yum源中是否有sysfsutils软件包
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
LOG_INFO "yum源中存在${PACKAGE_NAME}软件包"
# 步骤2检查是否已安装sysfsutils
LOG_INFO "步骤2检查是否已安装${PACKAGE_NAME}"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "${PACKAGE_NAME}已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "${PACKAGE_NAME}未安装,将在测试过程中安装"
INSTALLED_BEFORE=0
fi
# 步骤3安装sysfsutils如果未安装
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
LOG_INFO "安装${PACKAGE_NAME}成功"
fi
# 步骤4检查systool命令是否存在
LOG_INFO "步骤4检查systool命令是否存在"
which systool > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool命令不存在"
# 步骤5检查systool是否支持-c选项
LOG_INFO "步骤5检查systool是否支持-c选项"
systool --help 2>&1 | grep -q "\-c"
if [ $? -ne 0 ]; then
LOG_ERROR "systool不支持-c选项"
# 清理环境
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
LOG_INFO "已卸载${PACKAGE_NAME}"
fi
exit 255
fi
LOG_INFO "systool支持-c选项"
# 步骤6测试systool -c net命令
LOG_INFO "步骤6测试systool -c net命令"
systool -c net > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool -c net命令执行失败"
# 步骤7验证systool -c net输出包含设备信息
LOG_INFO "步骤7验证systool -c net输出包含设备信息"
NET_OUTPUT=$(systool -c net 2>&1)
if [ -n "${NET_OUTPUT}" ]; then
LOG_INFO "systool -c net输出包含设备信息"
else
LOG_ERROR "systool -c net输出为空"
CHECK_RESULT 1 0 0 "systool -c net输出验证失败"
fi
# 步骤8测试systool -c input命令
LOG_INFO "步骤8测试systool -c input命令"
systool -c input > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool -c input命令执行失败"
# 步骤9验证systool -c input输出包含设备信息
LOG_INFO "步骤9验证systool -c input输出包含设备信息"
INPUT_OUTPUT=$(systool -c input 2>&1)
if [ -n "${INPUT_OUTPUT}" ]; then
LOG_INFO "systool -c input输出包含设备信息"
else
LOG_ERROR "systool -c input输出为空"
CHECK_RESULT 1 0 0 "systool -c input输出验证失败"
fi
# 步骤10测试不存在的类别
LOG_INFO "步骤10测试不存在的类别"
systool -c nonexistentcategory 2>&1 | grep -q "类 nonexistentcategory 不存在"
CHECK_RESULT $? 0 0 "systool对不存在类别的处理不符合预期"
# 步骤11清理环境
LOG_INFO "步骤11清理环境"
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
LOG_INFO "已卸载${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-04-06
# @License : Mulan PSL v2
# @Desc : 测试systool使用-d选项仅显示指定设备的信息。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试systool使用-d选项仅显示指定设备的信息。"
LOG_INFO "步骤1检查yum源中是否有sysfsutils软件包"
if ! dnf list available sysfsutils &>/dev/null; then
LOG_ERROR "yum源中没有sysfsutils软件包"
exit 255
fi
LOG_INFO "步骤2检查当前环境是否已安装sysfsutils"
if rpm -q sysfsutils &>/dev/null; then
LOG_INFO "sysfsutils已安装测试结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "sysfsutils未安装将在测试前安装并在测试后卸载"
INSTALLED_BEFORE=false
fi
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤3安装sysfsutils软件包"
dnf install -y sysfsutils
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
LOG_INFO "步骤4检查systool命令是否支持-d选项"
systool --help | grep -q -- "-d"
CHECK_RESULT $? 0 0 "systool命令不支持-d选项"
if [ $? -ne 0 ]; then
exit 255
fi
LOG_INFO "步骤5获取一个存在的设备名称用于测试"
DEVICE=$(ls /sys/class/net/ | head -1)
if [ -z "$DEVICE" ]; then
LOG_ERROR "未找到可用设备"
exit 1
fi
LOG_INFO "使用设备 $DEVICE 进行测试"
LOG_INFO "步骤6执行systool -d命令测试"
systool -d net "$DEVICE"
CHECK_RESULT $? 0 0 "systool -d命令执行失败"
LOG_INFO "步骤7验证输出内容仅包含指定设备信息"
OUTPUT=$(systool -d net "$DEVICE")
DEVICE_COUNT=$(echo "$OUTPUT" | grep -c "Class Device")
if [ "$DEVICE_COUNT" -ne 1 ]; then
LOG_ERROR "输出包含多个设备信息"
exit 1
fi
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "步骤8卸载sysfsutils软件包"
dnf remove -y sysfsutils
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
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-04-06
# @License : Mulan PSL v2
# @Desc : 测试systool使用-D选项仅显示指定驱动程序的信息。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试systool使用-D选项仅显示指定驱动程序的信息"
# 检查环境是否已安装sysfsutils
if rpm -q sysfsutils > /dev/null 2>&1; then
LOG_INFO "sysfsutils已安装测试完成后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "sysfsutils未安装将在测试前安装并在测试后卸载"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否有sysfsutils软件包
LOG_INFO "检查yum源中是否有sysfsutils软件包"
dnf list available sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中没有sysfsutils软件包"
# 如果未安装则安装sysfsutils
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
# 检查systool命令是否支持-D选项
LOG_INFO "检查systool命令是否支持-D选项"
systool --help 2>&1 | grep -q "\-D"
CHECK_RESULT $? 0 0 "systool命令不支持-D选项"
# 获取一个驱动程序名称用于测试例如使用virtio_net
LOG_INFO "获取一个驱动程序名称用于测试"
DRIVER_NAME="virtio_net"
if ! lsmod | grep -q "$DRIVER_NAME"; then
LOG_INFO "驱动程序$DRIVER_NAME未加载,尝试加载"
modprobe "$DRIVER_NAME" 2>/dev/null
if [ $? -ne 0 ]; then
LOG_INFO "无法加载$DRIVER_NAME,尝试其他驱动程序"
# 尝试查找其他已加载的驱动程序
DRIVER_NAME=$(lsmod | head -2 | tail -1 | awk "{print $1}")
if [ -z "$DRIVER_NAME" ]; then
LOG_ERROR "未找到任何已加载的驱动程序"
exit 255
fi
fi
fi
# 使用systool -D选项显示指定驱动程序的信息
LOG_INFO "使用systool -D选项显示$DRIVER_NAME驱动程序的信息"
systool -D "$DRIVER_NAME" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool -D $DRIVER_NAME执行失败"
# 清理环境
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
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-04-06
# @License : Mulan PSL v2
# @Desc : 测试不带任何选项执行systool命令验证其默认行为是否能列出系统设备概要。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装sysfsutils软件包
LOG_INFO "检查sysfsutils软件包是否已安装"
rpm -q sysfsutils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "sysfsutils软件包已安装测试完成后将保持安装状态"
INSTALLED=1
else
LOG_INFO "sysfsutils软件包未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否有sysfsutils软件包
LOG_INFO "检查yum源中是否有sysfsutils软件包"
dnf list available sysfsutils > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到sysfsutils软件包"
exit 255
fi
# 如果未安装则安装sysfsutils软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装sysfsutils软件包失败"
fi
# 检查systool命令是否存在
LOG_INFO "检查systool命令是否存在"
which systool > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "systool命令不存在"
# 如果之前未安装,则卸载软件包
if [ $INSTALLED -eq 0 ]; then
dnf remove -y sysfsutils > /dev/null 2>&1
fi
exit 255
fi
# 测试不带任何选项执行systool命令验证其默认行为是否能列出系统设备概要
LOG_INFO "测试不带任何选项执行systool命令验证其默认行为是否能列出系统设备概要"
systool > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool命令执行失败"
# 检查systool命令输出是否包含设备信息
LOG_INFO "检查systool命令输出是否包含设备信息"
systool | grep -q "Class Device"
CHECK_RESULT $? 0 0 "systool命令未列出系统设备概要"
# 清理环境
LOG_INFO "清理测试环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载sysfsutils软件包失败"
else
LOG_INFO "保持sysfsutils软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,94 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试systool使用-m选项显示指定内核模块的信息。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试脚本开始
LOG_INFO "测试开始测试systool使用-m选项显示指定内核模块的信息"
# 定义软件包名称
PACKAGE_NAME="sysfsutils"
# 步骤1检查yum源中是否存在sysfsutils软件包
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检查当前是否已安装sysfsutils
LOG_INFO "步骤2检查当前是否已安装${PACKAGE_NAME}"
INSTALLED=0
if rpm -q ${PACKAGE_NAME} > /dev/null 2>&1; then
LOG_INFO "${PACKAGE_NAME}已安装"
INSTALLED=1
else
LOG_INFO "${PACKAGE_NAME}未安装"
fi
# 步骤3如果未安装则安装软件包
if [ ${INSTALLED} -eq 0 ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 步骤4检查systool命令是否支持-m选项
LOG_INFO "步骤4检查systool命令是否支持-m选项"
systool -h 2>&1 | grep -q "\-m"
if [ $? -ne 0 ]; then
LOG_ERROR "systool命令不支持-m选项"
exit 255
fi
# 步骤5获取一个已加载的内核模块用于测试
LOG_INFO "步骤5获取一个已加载的内核模块用于测试"
MODULE_NAME=$(lsmod | head -2 | tail -1 | awk "{print $1}")
if [ -z "${MODULE_NAME}" ]; then
LOG_ERROR "未找到已加载的内核模块"
exit 1
fi
LOG_INFO "使用内核模块:${MODULE_NAME}进行测试"
# 步骤6使用systool -m显示指定内核模块的信息
LOG_INFO "步骤6使用systool -m显示指定内核模块${MODULE_NAME}的信息"
systool -m ${MODULE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool -m ${MODULE_NAME}执行失败"
# 步骤7验证输出包含模块信息
LOG_INFO "步骤7验证输出包含模块信息"
systool -m ${MODULE_NAME} 2>&1 | grep -q "Module: ${MODULE_NAME}"
CHECK_RESULT $? 0 0 "输出中未找到模块${MODULE_NAME}的信息"
# 步骤8清理环境
LOG_INFO "步骤8清理环境"
if [ ${INSTALLED} -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 "测试结束测试systool使用-m选项显示指定内核模块的信息"
}
main "$@"

View File

@@ -1,73 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试systool使用-p选项显示设备或驱动程序的路径。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试systool使用-p选项显示设备或驱动程序的路径"
# 检查yum源中是否有sysfsutils软件包
LOG_INFO "检查yum源中是否有sysfsutils软件包"
if ! dnf list available sysfsutils 2>/dev/null | grep -q sysfsutils; then
LOG_ERROR "yum源中未找到sysfsutils软件包"
exit 255
fi
# 检查系统是否已安装sysfsutils
LOG_INFO "检查系统是否已安装sysfsutils"
if rpm -q sysfsutils >/dev/null 2>&1; then
LOG_INFO "sysfsutils已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "sysfsutils未安装将在测试过程中安装"
INSTALLED=false
fi
# 如果未安装则安装sysfsutils
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y sysfsutils
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
# 测试systool命令是否支持-p选项
LOG_INFO "检查systool命令是否支持-p选项"
systool --help | grep -q -- "-p"
CHECK_RESULT $? 0 0 "systool命令不支持-p选项"
# 使用-p选项显示设备路径
LOG_INFO "使用systool -p显示块设备路径"
systool -p block
CHECK_RESULT $? 0 0 "systool -p block执行失败"
LOG_INFO "使用systool -p显示网络设备路径"
systool -p net
CHECK_RESULT $? 0 0 "systool -p net执行失败"
# 清理环境如果之前未安装则卸载sysfsutils
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,74 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试systool使用-v选项显示所有属性及其值。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试systool使用-v选项显示所有属性及其值"
LOG_INFO "检查sysfsutils软件包是否已安装"
rpm -q sysfsutils
if [ $? -eq 0 ]; then
LOG_INFO "sysfsutils软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE="true"
else
LOG_INFO "sysfsutils软件包未安装将在测试过程中安装"
INSTALLED_BEFORE="false"
fi
LOG_INFO "检查yum源中是否有sysfsutils软件包"
dnf list available sysfsutils
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到sysfsutils软件包"
exit 255
fi
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y sysfsutils
CHECK_RESULT $? 0 0 "安装sysfsutils软件包失败"
fi
LOG_INFO "检查systool命令是否存在"
which systool
CHECK_RESULT $? 0 0 "systool命令不存在"
LOG_INFO "测试systool -v命令显示所有属性及其值"
systool -v
CHECK_RESULT $? 0 0 "systool -v命令执行失败"
LOG_INFO "测试systool --verbose命令显示所有属性及其值"
systool --verbose
CHECK_RESULT $? 0 0 "systool --verbose命令执行失败"
LOG_INFO "检查systool是否支持-v选项"
systool --help | grep -E "\-v,|\-\-verbose"
CHECK_RESULT $? 0 0 "systool不支持-v或--verbose选项"
if [ "$INSTALLED_BEFORE" = "false" ]; then
LOG_INFO "测试结束卸载sysfsutils软件包"
dnf remove -y sysfsutils
CHECK_RESULT $? 0 0 "卸载sysfsutils软件包失败"
else
LOG_INFO "测试结束保持sysfsutils软件包安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,85 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试使用-a参数显示属性
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装sysfsutils
LOG_INFO "检查sysfsutils是否已经安装"
if rpm -q sysfsutils >/dev/null 2>&1; then
LOG_INFO "sysfsutils已经安装脚本结束后保持安装状态"
already_installed=1
else
LOG_INFO "sysfsutils未安装将在测试过程中安装"
already_installed=0
fi
# 检查yum源中是否有sysfsutils软件包
LOG_INFO "检查yum源中是否有sysfsutils软件包"
if ! dnf list available sysfsutils --quiet >/dev/null 2>&1; then
LOG_ERROR "yum源中没有sysfsutils软件包"
exit 255
fi
# 如果未安装则安装sysfsutils
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y sysfsutils
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
# 检查systool命令是否存在
LOG_INFO "检查systool命令是否存在"
if ! command -v systool >/dev/null 2>&1; then
LOG_ERROR "systool命令不存在"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils
fi
exit 255
fi
# 检查systool是否支持-a参数
LOG_INFO "检查systool是否支持-a参数"
systool -a >/dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "systool不支持-a参数"
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils
fi
exit 255
fi
# 测试使用-a参数显示属性
LOG_INFO "测试使用-a参数显示属性"
systool -a
CHECK_RESULT $? 0 0 "执行systool -a失败"
# 清理环境如果脚本开始时未安装则卸载sysfsutils
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
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-04-06
# @License : Mulan PSL v2
# @Desc : 测试使用-d参数仅显示设备
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用-d参数仅显示设备"
# 检查yum源中是否有sysfsutils软件包
LOG_INFO "步骤1检查yum源中是否有sysfsutils软件包"
if ! dnf list available sysfsutils 2>/dev/null | grep -q sysfsutils; then
LOG_ERROR "yum源中未找到sysfsutils软件包"
exit 255
fi
# 检查systool命令是否已安装
LOG_INFO "步骤2检查systool命令是否已安装"
if ! command -v systool &>/dev/null; then
LOG_INFO "systool未安装开始安装sysfsutils软件包"
dnf install -y sysfsutils
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
INSTALLED=1
else
LOG_INFO "systool已安装"
INSTALLED=0
fi
# 检查-d参数是否支持
LOG_INFO "步骤3检查-d参数是否支持"
if ! systool --help 2>&1 | grep -q -- "-d.*device"; then
LOG_ERROR "systool命令不支持-d参数"
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "清理环境卸载sysfsutils软件包"
dnf remove -y sysfsutils
fi
exit 255
fi
# 执行systool -d命令测试
LOG_INFO "步骤4执行systool -d命令测试"
systool -d
CHECK_RESULT $? 0 0 "执行systool -d命令失败"
# 验证输出是否仅显示设备信息
LOG_INFO "步骤5验证输出是否仅显示设备信息"
output=$(systool -d 2>&1)
if echo "$output" | grep -q "Class" || echo "$output" | grep -q "Bus"; then
LOG_ERROR "systool -d输出包含非设备信息"
CHECK_RESULT 1 0 0 "输出验证失败"
else
LOG_INFO "systool -d输出仅包含设备信息"
CHECK_RESULT 0 0 0 "输出验证成功"
fi
# 清理环境
LOG_INFO "步骤6清理环境"
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
else
LOG_INFO "保持sysfsutils安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,110 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试使用-m参数显示特定模块
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装sysfsutils
LOG_INFO "检查sysfsutils是否已安装"
rpm -q sysfsutils > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "sysfsutils已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "sysfsutils未安装将在测试过程中安装"
INSTALLED=0
fi
# 检查yum源中是否有sysfsutils软件包
LOG_INFO "检查yum源中是否有sysfsutils软件包"
dnf list available sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到sysfsutils软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到sysfsutils软件包退出测试"
exit 255
fi
# 如果未安装则安装sysfsutils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
# 检查systool命令是否存在
LOG_INFO "检查systool命令是否存在"
which systool > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool命令不存在"
# 检查systool命令是否支持-m参数
LOG_INFO "检查systool命令是否支持-m参数"
systool -h 2>&1 | grep -q "\-m"
CHECK_RESULT $? 0 0 "systool命令不支持-m参数"
if [ $? -ne 0 ]; then
LOG_ERROR "systool命令不支持-m参数退出测试"
exit 255
fi
# 获取系统中存在的模块列表
LOG_INFO "获取系统中存在的模块列表"
MODULES=$(ls /sys/module/ 2>/dev/null | head -1)
if [ -z "$MODULES" ]; then
LOG_INFO "系统中未找到任何模块,尝试加载一个测试模块"
modprobe loop 2>/dev/null
MODULES="loop"
LOADED_MODULE=1
else
LOADED_MODULE=0
fi
# 测试使用-m参数显示特定模块
LOG_INFO "测试使用-m参数显示特定模块"
TEST_MODULE=$(echo "$MODULES" | head -1)
systool -m "$TEST_MODULE" -v > /dev/null 2>&1
CHECK_RESULT $? 0 0 "使用-m参数显示特定模块失败"
# 验证输出中是否包含模块信息
LOG_INFO "验证输出中是否包含模块信息"
systool -m "$TEST_MODULE" -v 2>&1 | grep -q "Module: $TEST_MODULE"
CHECK_RESULT $? 0 0 "输出中未找到模块信息"
# 测试使用-m参数显示不存在的模块
LOG_INFO "测试使用-m参数显示不存在的模块"
systool -m "nonexistent_module_12345" -v 2>&1 | grep -q "not found"
CHECK_RESULT $? 0 0 "显示不存在的模块时未返回正确错误信息"
# 清理:卸载测试过程中加载的模块
if [ $LOADED_MODULE -eq 1 ]; then
LOG_INFO "卸载测试过程中加载的模块"
modprobe -r loop 2>/dev/null
fi
# 清理如果测试前未安装则卸载sysfsutils
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
else
LOG_INFO "保持sysfsutils安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,88 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试使用-A参数显示特定属性值
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试systool -A参数功能"
LOG_INFO "步骤1检查sysfsutils软件包是否已安装"
if rpm -q sysfsutils > /dev/null 2>&1; then
LOG_INFO "sysfsutils已安装测试结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "sysfsutils未安装将在测试过程中安装"
INSTALLED=0
fi
LOG_INFO "步骤2检查yum源中是否存在sysfsutils软件包"
if ! dnf list available sysfsutils > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到sysfsutils软件包"
exit 255
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装sysfsutils软件包"
dnf install -y sysfsutils
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
LOG_INFO "步骤4检查systool命令是否支持-A参数"
systool --help | grep -q -- "-A"
if [ $? -ne 0 ]; then
LOG_ERROR "systool命令不支持-A参数"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "清理环境卸载sysfsutils软件包"
dnf remove -y sysfsutils
fi
exit 255
fi
LOG_INFO "步骤5执行systool -A命令测试"
systool -A > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool -A命令执行失败"
LOG_INFO "步骤6执行systool -A -b scsi命令测试"
systool -A -b scsi > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool -A -b scsi命令执行失败"
LOG_INFO "步骤7执行systool -A -c cpu命令测试"
systool -A -c cpu > /dev/null 2>&1
CHECK_RESULT $? 0 0 "systool -A -c cpu命令执行失败"
LOG_INFO "步骤8验证systool -A输出包含属性信息"
output=$(systool -A -b scsi 2>/dev/null | head -5)
if [ -n "$output" ]; then
LOG_INFO "systool -A命令成功显示属性信息"
else
LOG_ERROR "systool -A命令未显示属性信息"
CHECK_RESULT 1 0 0 "属性显示验证失败"
fi
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤9清理环境卸载sysfsutils软件包"
dnf remove -y sysfsutils
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
else
LOG_INFO "保持sysfsutils安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,94 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试使用-D参数仅显示驱动
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="sysfsutils"
# 检查软件包是否已安装
LOG_INFO "检查系统是否已安装 $PACKAGE_NAME"
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装,脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "$PACKAGE_NAME 未安装,将在测试过程中安装"
INSTALLED_BEFORE=false
fi
# 检查yum源中是否存在该软件包
LOG_INFO "检查yum源中是否存在 $PACKAGE_NAME 软件包"
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装 $PACKAGE_NAME 软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
# 检查systool命令是否存在
LOG_INFO "检查 systool 命令是否存在"
if ! command -v systool &>/dev/null; then
LOG_ERROR "systool 命令未找到"
exit 255
fi
# 检查systool是否支持-D参数
LOG_INFO "检查 systool 是否支持 -D 参数"
systool -h 2>&1 | grep -q -- "-D"
if [ $? -ne 0 ]; then
LOG_ERROR "systool 不支持 -D 参数"
exit 255
fi
# 测试使用-D参数仅显示驱动
LOG_INFO "测试使用 -D 参数仅显示驱动"
systool -D
CHECK_RESULT $? 0 0 "执行 systool -D 失败"
# 验证输出包含驱动信息
LOG_INFO "验证输出包含驱动信息"
systool -D | grep -q "Driver"
CHECK_RESULT $? 0 0 "输出中未找到驱动信息"
# 验证输出不包含设备信息
LOG_INFO "验证输出不包含设备信息"
if systool -D | grep -q "Device"; then
LOG_ERROR "输出中包含设备信息,不符合 -D 参数预期"
exit 1
fi
# 清理环境
if [ "$INSTALLED_BEFORE" = 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,93 +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-04-06
# @License : Mulan PSL v2
# @Desc : 测试使用-P参数显示设备的父级
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="sysfsutils"
# 步骤1: 检查yum源中是否存在sysfsutils软件包
LOG_INFO "检查yum源中是否存在sysfsutils软件包"
dnf list available ${PACKAGE_NAME} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在sysfsutils软件包"
exit 255
fi
# 步骤2: 检查系统是否已安装sysfsutils
LOG_INFO "检查系统是否已安装sysfsutils"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
INSTALLED="true"
LOG_INFO "sysfsutils已安装脚本结束时将保持安装状态"
else
INSTALLED="false"
LOG_INFO "sysfsutils未安装将在测试过程中安装"
fi
# 步骤3: 如果未安装则安装sysfsutils
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y ${PACKAGE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
# 步骤4: 检查systool命令是否存在
LOG_INFO "检查systool命令是否存在"
which systool &>/dev/null
CHECK_RESULT $? 0 0 "systool命令不存在"
# 步骤5: 检查systool是否支持-P参数
LOG_INFO "检查systool是否支持-P参数"
systool --help 2>&1 | grep -q "\-P"
if [ $? -ne 0 ]; then
LOG_ERROR "systool不支持-P参数"
# 清理环境
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y ${PACKAGE_NAME} &>/dev/null
fi
exit 255
fi
# 步骤6: 使用-P参数显示设备的父级
LOG_INFO "使用-P参数显示设备的父级"
systool -P &>/dev/null
CHECK_RESULT $? 0 0 "使用-P参数执行失败"
# 步骤7: 验证-P参数输出内容
LOG_INFO "验证-P参数输出内容"
systool -P 2>&1 | head -5 &>/dev/null
CHECK_RESULT $? 0 0 "获取-P参数输出失败"
# 步骤8: 清理环境
LOG_INFO "清理测试环境"
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y ${PACKAGE_NAME} &>/dev/null
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
else
LOG_INFO "保持sysfsutils安装状态"
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-04-06
# @License : Mulan PSL v2
# @Desc : 测试使用-v参数显示所有属性及其值
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断sysfsutils软件包是否已安装
LOG_INFO "检查sysfsutils软件包是否已安装"
if rpm -q sysfsutils &> /dev/null; then
LOG_INFO "sysfsutils已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=1
else
LOG_INFO "sysfsutils未安装将在测试后卸载"
INSTALLED_BEFORE=0
fi
# 检查yum源中是否有sysfsutils软件包
LOG_INFO "检查yum源中是否有sysfsutils软件包"
if ! dnf list available sysfsutils &> /dev/null; then
LOG_ERROR "yum源中未找到sysfsutils软件包"
exit 255
fi
# 如果未安装则安装sysfsutils
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "安装sysfsutils软件包"
dnf install -y sysfsutils
CHECK_RESULT $? 0 0 "安装sysfsutils失败"
fi
# 检查systool命令是否存在
LOG_INFO "检查systool命令是否存在"
if ! command -v systool &> /dev/null; then
LOG_ERROR "systool命令不存在"
exit 255
fi
# 检查systool是否支持-v参数
LOG_INFO "检查systool是否支持-v参数"
if ! systool --help 2>&1 | grep -q "\-v"; then
LOG_ERROR "systool不支持-v参数"
exit 255
fi
# 执行测试:使用-v参数显示所有属性及其值
LOG_INFO "执行测试:使用-v参数显示所有属性及其值"
systool -v
CHECK_RESULT $? 0 0 "systool -v命令执行失败"
# 环境恢复如果之前未安装则卸载sysfsutils
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
LOG_INFO "卸载sysfsutils软件包"
dnf remove -y sysfsutils
CHECK_RESULT $? 0 0 "卸载sysfsutils失败"
fi
LOG_INFO "测试完成"
}
main "$@"