This commit is contained in:
2026-04-24 04:11:30 +08:00
181 changed files with 0 additions and 14907 deletions

View File

@@ -12,212 +12,13 @@
"desc": "测试软件包apache-rat-core的卸载功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_upgrade",
"desc": "测试软件包apache-rat-core的升级功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_downgrade",
"desc": "测试软件包apache-rat-core的降级功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_rollback",
"desc": "测试软件包apache-rat-core的回滚功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_service_start",
"desc": "测试软件包apache-rat-core的服务启动功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_service_stop",
"desc": "测试软件包apache-rat-core的服务停止功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_service_restart",
"desc": "测试软件包apache-rat-core的服务重启功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_service_status",
"desc": "测试软件包apache-rat-core的服务状态查询功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_service_log",
"desc": "测试软件包apache-rat-core的服务日志查看功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_service_config",
"desc": "测试软件包apache-rat-core的服务配置功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_downgrade_rollback",
"desc": "测试软件包apache-rat-core的降级回滚功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_service_reload",
"desc": "测试软件包apache-rat-core的服务重载功能",
"machine num": 1
},
{
"name": "test_apache-rat-core_function_config",
"desc": "测试软件包apache-rat-core的配置文件功能"
},
{
"name": "test_apache-rat-core_function_deps",
"desc": "测试软件包apache-rat-core的依赖库功能"
},
{
"name": "test_apache-rat-core_function_perf",
"desc": "测试软件包apache-rat-core的性能功能"
},
{
"name": "test_apache-rat-core_function_sec",
"desc": "测试软件包apache-rat-core的安全功能"
},
{
"name": "test_apache-rat-core_function_api",
"desc": "测试软件包apache-rat-core的API功能"
},
{
"name": "test_apache-rat-core_apache-rat_h",
"desc": "测试显示帮助信息"
},
{
"name": "test_apache-rat-core_apache-rat_help",
"desc": "测试显示帮助信息"
},
{
"name": "test_apache-rat-core_apache-rat_a",
"desc": "测试为未知许可证文件添加默认许可证头"
},
{
"name": "test_apache-rat-core_apache-rat_upper_a",
"desc": "测试为未知许可证文件添加默认许可证头"
},
{
"name": "test_apache-rat-core_apache-rat_addLicence",
"desc": "测试为未知许可证文件添加默认许可证头"
},
{
"name": "test_apache-rat-core_apache-rat_upper_a_d",
"desc": "测试为指定目录下的未知许可证文件添加默认许可证头"
},
{
"name": "test_apache-rat-core_apache-rat_upper_a_f",
"desc": "测试强制为未知许可证文件添加默认许可证头"
},
{
"name": "test_apache-rat-core_apache-rat_upper_a_upper_f",
"desc": "测试强制为未知许可证文件添加默认许可证头"
},
{
"name": "test_apache-rat-core_apache-rat_c",
"desc": "测试使用指定的版权信息生成报告"
},
{
"name": "test_apache-rat-core_apache-rat_copyright",
"desc": "测试使用指定的版权信息生成报告"
},
{
"name": "test_apache-rat-core_apache-rat_d",
"desc": "测试指定源目录"
},
{
"name": "test_apache-rat-core_apache-rat_dir",
"desc": "测试指定源目录"
},
{
"name": "test_apache-rat-core_apache-rat_e",
"desc": "测试使用通配符表达式排除文件"
},
{
"name": "test_apache-rat-core_apache-rat_exclude",
"desc": "测试使用通配符表达式排除文件"
},
{
"name": "test_apache-rat-core_apache-rat_d_e",
"desc": "测试为指定目录下的文件应用通配符排除规则"
},
{
"name": "test_apache-rat-core_apache-rat_upper_e",
"desc": "测试使用正则表达式文件排除文件"
},
{
"name": "test_apache-rat-core_apache-rat_exclude_file",
"desc": "测试使用正则表达式文件排除文件"
},
{
"name": "test_apache-rat-core_apache-rat_d_upper_e",
"desc": "测试为指定目录下的文件应用正则表达式排除规则"
},
{
"name": "test_apache-rat-core_apache-rat_f",
"desc": "测试强制修改源文件"
},
{
"name": "test_apache-rat-core_apache-rat_force",
"desc": "测试强制修改源文件"
},
{
"name": "test_apache-rat-core_apache-rat_s",
"desc": "测试使用XSLT样式表生成报告"
},
{
"name": "test_apache-rat-core_apache-rat_stylesheet",
"desc": "测试使用XSLT样式表生成报告"
},
{
"name": "test_apache-rat-core_apache-rat_x",
"desc": "测试以原始XML格式输出报告"
},
{
"name": "test_apache-rat-core_function_install",
"desc": "测试软件包apache-rat-core的安装功能"
},
{
"name": "test_apache-rat-core_function_uninstall",
"desc": "测试软件包apache-rat-core的卸载功能"
},
{
"name": "test_apache-rat-core_function_upgrade",
"desc": "测试软件包apache-rat-core的升级功能"
},
{
"name": "test_apache-rat-core_function_downgrade",
"desc": "测试软件包apache-rat-core的降级功能"
},
{
"name": "test_apache-rat-core_function_rollback",
"desc": "测试软件包apache-rat-core的回滚功能"
},
{
"name": "test_apache-rat-core_function_help",
"desc": "测试软件包apache-rat-core的帮助信息显示"
},
{
"name": "test_apache-rat-core_function_scan",
"desc": "测试软件包apache-rat-core的许可证扫描功能"
},
{
"name": "test_apache-rat-core_function_exclude",
"desc": "测试软件包apache-rat-core的文件排除功能"
},
{
"name": "test_apache-rat-core_function_report",
"desc": "测试软件包apache-rat-core的报告生成功能"
},
{
"name": "test_apache-rat-core_function_addlicense",
"desc": "测试软件包apache-rat-core的添加许可证头功能"
}
]
}

View File

@@ -1,54 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/docker-engine/docker-engine",
"machine num": 1,
"cases": [
{
"name": "test_docker-engine_function_install",
"desc": "测试docker-engine软件包的安装功能是否正常"
},
{
"name": "test_docker-engine_function_uninstall",
"desc": "测试docker-engine软件包的卸载功能是否正常"
},
{
"name": "test_docker-engine_function_daemon_start",
"desc": "测试docker-engine服务启动功能"
},
{
"name": "test_docker-engine_function_daemon_status",
"desc": "测试docker-engine服务状态查询功能"
},
{
"name": "test_docker-engine_function_image_pull",
"desc": "测试docker-engine拉取公共镜像功能"
},
{
"name": "test_docker-engine_function_container_run",
"desc": "测试docker-engine运行一个基础容器功能"
},
{
"name": "test_docker-engine_function_container_list",
"desc": "测试docker-engine列出所有容器功能"
},
{
"name": "test_docker-engine_function_image_list",
"desc": "测试docker-engine列出所有镜像功能"
},
{
"name": "test_docker-engine_function_container_stop",
"desc": "测试docker-engine停止一个运行中的容器功能"
},
{
"name": "test_docker-engine_function_container_remove",
"desc": "测试docker-engine删除一个容器功能"
},
{
"name": "test_docker-engine_function_image_remove",
"desc": "测试docker-engine删除一个镜像功能"
},
{
"name": "test_docker-engine_function_version",
"desc": "测试docker-engine版本信息查询功能"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/fence-agents/fence-agents-alom",
"machine num": 1,
"cases": [
{
"name": "test_fence-agents-alom_function_status",
"desc": "Test the status checking functionality of fence-agents-alom"
}
]
}

View File

@@ -1,38 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/fence-agents/fence-agents-cisco-ucs",
"machine num": 1,
"cases": [
{
"name": "test_fence-agents-cisco-ucs_function_status",
"desc": "Check the status of the fence agent"
},
{
"name": "test_fence-agents-cisco-ucs_function_installation",
"desc": "Check if the fence-agents-cisco-ucs package is installed on the system"
},
{
"name": "test_fence-agents-cisco-ucs_function_uninstall",
"desc": "Test the uninstallation process of the fence-agents-cisco-ucs package"
},
{
"name": "test_fence-agents-cisco-ucs_function_help",
"desc": "Verify the fence_cisco_ucs agent displays help information"
},
{
"name": "test_fence-agents-cisco-ucs_function_off",
"desc": "Test powering off a node via the fence agent"
},
{
"name": "test_fence-agents-cisco-ucs_function_on",
"desc": "Test powering on a node via the fence agent"
},
{
"name": "test_fence-agents-cisco-ucs_function_reboot",
"desc": "Test rebooting a node via the fence agent"
},
{
"name": "test_fence-agents-cisco-ucs_function_monitor",
"desc": "Test the monitor operation of the fence agent"
}
]
}

View File

@@ -15,26 +15,6 @@
{
"name": "test_glusterfs-events_function_install",
"desc": "测试glusterfs-events软件包的安装功能验证安装是否成功"
},
{
"name": "test_glusterfs-events_function_uninstall",
"desc": "测试glusterfs-events软件包的卸载功能验证卸载是否成功"
},
{
"name": "test_glusterfs-events_function_service",
"desc": "测试glusterfs-events服务glustereventsd的启动、停止和状态查询功能"
},
{
"name": "test_glusterfs-events_function_config",
"desc": "测试glusterfs-events配置文件如/etc/glusterfs/glustereventsd.conf的存在性与基本配置项"
},
{
"name": "test_glusterfs-events_function_webhook",
"desc": "测试glusterfs-events的Webhook事件通知配置与触发功能"
},
{
"name": "test_glusterfs-events_function_log",
"desc": "测试glusterfs-events服务日志如/var/log/glusterfs/glustereventsd.log的生成与内容"
}
]
}

View File

@@ -21,22 +21,6 @@
"name": "test_kata-integration_service_config",
"desc": "测试kata-integration软件包的服务配置功能验证服务配置是否能正常修改",
"machine num": 1
},
{
"name": "test_kata-integration_function_start",
"desc": "测试kata-integration软件包的启动功能验证服务是否能正常启动"
},
{
"name": "test_kata-integration_function_stop",
"desc": "测试kata-integration软件包的停止功能验证服务是否能正常停止"
},
{
"name": "test_kata-integration_function_restart",
"desc": "测试kata-integration软件包的重启功能验证服务是否能正常重启"
},
{
"name": "test_kata-integration_function_status",
"desc": "测试kata-integration软件包的状态查看功能验证服务状态是否能正常查看"
}
]
}

View File

@@ -2,21 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/libbytesize/libbytesize-help",
"machine num": 1,
"cases": [
{
"name": "test_libbytesize-help_function_install",
"desc": "测试libbytesize-help软件包能够成功安装"
},
{
"name": "test_libbytesize-help_function_uninstall",
"desc": "测试libbytesize-help软件包能够成功卸载"
},
{
"name": "test_libbytesize-help_function_help_docs",
"desc": "测试libbytesize-help软件包提供了帮助文档"
},
{
"name": "test_libbytesize-help_function_list_files",
"desc": "测试libbytesize-help软件包安装后包含预期文件"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/maven-native/native-maven-plugin",
"machine num": 1,
"cases": [
{
"name": "test_native-maven-plugin_function_build",
"desc": "Test the build functionality of native-maven-plugin"
},
{
"name": "test_native-maven-plugin_function_config",
"desc": "Test the configuration handling of native-maven-plugin"
},
{
"name": "test_native-maven-plugin_function_exec",
"desc": "Test the execution of native commands"
},
{
"name": "test_native-maven-plugin_function_dep",
"desc": "Test dependency management in native-maven-plugin"
},
{
"name": "test_native-maven-plugin_function_init",
"desc": "Test the initialization of native-maven-plugin"
}
]
}

View File

@@ -6,30 +6,6 @@
"name": "test_maven-surefire-provider-junit5_install",
"desc": "测试maven-surefire-provider-junit5软件包的安装功能验证安装是否成功",
"machine num": 1
},
{
"name": "test_maven-surefire-provider-junit5_function_execute",
"desc": "测试maven-surefire-provider-junit5软件包的执行功能验证是否能正确执行测试"
},
{
"name": "test_maven-surefire-provider-junit5_function_install",
"desc": "测试maven-surefire-provider-junit5软件包的安装功能验证是否可以通过包管理器成功安装。"
},
{
"name": "test_maven-surefire-provider-junit5_function_uninstall",
"desc": "测试maven-surefire-provider-junit5软件包的卸载功能验证是否可以完全卸载且不残留关键文件。"
},
{
"name": "test_maven-surefire-provider-junit5_function_basic_exec",
"desc": "测试maven-surefire-provider-junit5的基本执行功能验证其能否与Maven Surefire插件集成并运行一个简单的JUnit5测试套件。"
},
{
"name": "test_maven-surefire-provider-junit5_function_report",
"desc": "测试maven-surefire-provider-junit5的测试报告生成功能验证执行测试后能否在指定目录生成正确的测试报告如surefire-reports。"
},
{
"name": "test_maven-surefire-provider-junit5_function_config",
"desc": "测试maven-surefire-provider-junit5的配置功能验证能否通过pom.xml配置文件如指定包含/排除的测试类)控制测试执行行为。"
}
]
}

View File

@@ -2,90 +2,10 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/nodejs/npm",
"machine num": 1,
"cases": [
{
"name": "test_npm_npm_install",
"desc": "测试 npm install 命令,安装项目所有依赖"
},
{
"name": "test_npm_npm_install_foo",
"desc": "测试 npm install <foo> 命令,添加指定依赖到项目"
},
{
"name": "test_npm_npm_test",
"desc": "测试 npm test 命令,运行项目的测试"
},
{
"name": "test_npm_npm_run_foo",
"desc": "测试 npm run <foo> 命令,运行指定脚本"
},
{
"name": "test_npm_npm_command_h",
"desc": "测试 npm <command> -h 命令,快速获取指定命令的帮助"
},
{
"name": "test_npm_npm_l",
"desc": "测试 npm -l 命令,显示所有命令的使用信息"
},
{
"name": "test_npm_npm_help_term",
"desc": "测试 npm help <term> 命令,搜索指定术语的帮助信息"
},
{
"name": "test_npm_npm_help_npm",
"desc": "测试 npm help npm 命令,获取更详细的 npm 概述"
},
{
"name": "test_npm_npx_package",
"desc": "测试使用 --package 参数指定包名"
},
{
"name": "test_npm_npx_package_version",
"desc": "测试使用 --package 参数指定包名和版本"
},
{
"name": "test_npm_npx_c",
"desc": "测试使用 -c 参数执行命令"
},
{
"name": "test_npm_npx_call",
"desc": "测试使用 --call 参数执行命令"
},
{
"name": "test_npm_npx_w",
"desc": "测试使用 -w 参数指定工作区"
},
{
"name": "test_npm_npx_workspace",
"desc": "测试使用 --workspace 参数指定工作区"
},
{
"name": "test_npm_npx_ws",
"desc": "测试使用 --workspaces 参数指定所有工作区"
},
{
"name": "test_npm_npx_include_workspace_root",
"desc": "测试使用 --include-workspace-root 参数包含工作区根目录"
},
{
"name": "test_npm_function_init",
"desc": "测试 npm init 命令,初始化一个新项目"
},
{
"name": "test_npm_function_publish",
"desc": "测试 npm publish 命令,发布包到注册表"
},
{
"name": "test_npm_function_unpublish",
"desc": "测试 npm unpublish 命令,从注册表移除包"
},
{
"name": "test_npm_function_login",
"desc": "测试 npm login 命令,登录到注册表"
},
{
"name": "test_npm_function_logout",
"desc": "测试 npm logout 命令,退出登录"
},
{
"name": "test_npm_function_search",
"desc": "测试 npm search 命令,搜索包"

View File

@@ -6,10 +6,6 @@
"name": "test_poco-zip_function_install",
"desc": "Test the installation of poco-zip package"
},
{
"name": "test_poco-zip_function_extract",
"desc": "Test the extraction of files using poco-zip"
},
{
"name": "test_poco-zip_function_compress",
"desc": "Test the compression of files using poco-zip"
@@ -17,14 +13,6 @@
{
"name": "test_poco-zip_function_list",
"desc": "Test listing contents of a zip file"
},
{
"name": "test_poco-zip_function_delete",
"desc": "Test deleting files from a zip archive"
},
{
"name": "test_poco-zip_function_update",
"desc": "Test updating files in a zip archive"
}
]
}

View File

@@ -1,118 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-ghp-import2/python3-ghp-import2",
"machine num": 1,
"cases": [
{
"name": "test_python3-ghp-import2_ghp-import_directory_only",
"desc": "仅提供目录参数,使用默认选项将目录内容导入到 gh-pages 分支"
},
{
"name": "test_python3-ghp-import2_ghp-import_n",
"desc": "使用 -n 参数,在分支中包含 .nojekyll 文件"
},
{
"name": "test_python3-ghp-import2_ghp-import_c",
"desc": "使用 -c 参数并指定域名,写入 CNAME 文件"
},
{
"name": "test_python3-ghp-import2_ghp-import_m",
"desc": "使用 -m 参数并指定提交信息,自定义提交信息"
},
{
"name": "test_python3-ghp-import2_ghp-import_p",
"desc": "使用 -p 参数,提交后推送到远程仓库的 origin/gh-pages"
},
{
"name": "test_python3-ghp-import2_ghp-import_x",
"desc": "使用 -x 参数并指定前缀,仅推送该前缀下的文件并清理远程分支的对应前缀路径"
},
{
"name": "test_python3-ghp-import2_ghp-import_f",
"desc": "使用 -f 参数,强制推送到远程仓库"
},
{
"name": "test_python3-ghp-import2_ghp-import_o",
"desc": "使用 -o 参数,强制创建无父提交历史的新提交"
},
{
"name": "test_python3-ghp-import2_ghp-import_r",
"desc": "使用 -r 参数并指定远程仓库名称,推送到指定的远程仓库"
},
{
"name": "test_python3-ghp-import2_ghp-import_b",
"desc": "使用 -b 参数并指定分支名称,写入到指定的分支"
},
{
"name": "test_python3-ghp-import2_ghp-import_s",
"desc": "使用 -s 参数,调用 Git 时使用 shell"
},
{
"name": "test_python3-ghp-import2_ghp-import_l",
"desc": "使用 -l 参数,添加文件时遵循符号链接"
},
{
"name": "test_python3-ghp-import2_ghp-import_n_p",
"desc": "使用 -n 和 -p 参数组合,包含 .nojekyll 文件并推送"
},
{
"name": "test_python3-ghp-import2_ghp-import_c_m",
"desc": "使用 -c 和 -m 参数组合,写入 CNAME 文件并使用自定义提交信息"
},
{
"name": "test_python3-ghp-import2_ghp-import_p_f",
"desc": "使用 -p 和 -f 参数组合,推送并强制覆盖远程分支"
},
{
"name": "test_python3-ghp-import2_ghp-import_x_b",
"desc": "使用 -x 和 -b 参数组合,指定文件前缀和目标分支名称"
},
{
"name": "test_python3-ghp-import2_ghp-import_o_r",
"desc": "使用 -o 和 -r 参数组合,创建无历史提交并推送到指定远程仓库"
},
{
"name": "test_python3-ghp-import2_ghp-import_s_l",
"desc": "使用 -s 和 -l 参数组合,使用 shell 调用 Git 并遵循符号链接"
},
{
"name": "test_python3-ghp-import2_ghp-import_n_c_m_p",
"desc": "使用 -n, -c, -m, -p 参数组合,包含 .nojekyll 和 CNAME 文件,使用自定义提交信息并推送"
},
{
"name": "test_python3-ghp-import2_ghp-import_x_f_o_b",
"desc": "使用 -x, -f, -o, -b 参数组合,指定前缀、强制推送、创建无历史提交到指定分支"
},
{
"name": "test_python3-ghp-import2_function_install",
"desc": "验证python3-ghp-import2软件包是否成功安装"
},
{
"name": "test_python3-ghp-import2_function_basic_import",
"desc": "使用默认参数将本地目录导入gh-pages分支"
},
{
"name": "test_python3-ghp-import2_function_commit_msg",
"desc": "使用-m参数自定义提交信息"
},
{
"name": "test_python3-ghp-import2_function_force_push",
"desc": "使用-pf参数推送并强制覆盖远程分支"
},
{
"name": "test_python3-ghp-import2_function_cname",
"desc": "使用-c参数为GitHub Pages指定自定义域名"
},
{
"name": "test_python3-ghp-import2_function_nojekyll",
"desc": "使用-n参数包含.nojekyll文件以禁用Jekyll"
},
{
"name": "test_python3-ghp-import2_function_prefix",
"desc": "使用-x参数仅导入指定前缀下的文件"
},
{
"name": "test_python3-ghp-import2_function_uninstall",
"desc": "验证python3-ghp-import2软件包可以被正确卸载"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-b/texlive-bartel-chess-fonts-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-bartel-chess-fonts-doc_function_fonts",
"desc": "Check if fonts are installed correctly"
},
{
"name": "test_texlive-bartel-chess-fonts-doc_function_install",
"desc": "Verify the package can be installed correctly via package manager"
},
{
"name": "test_texlive-bartel-chess-fonts-doc_function_remove",
"desc": "Verify the package can be cleanly uninstalled without leaving critical residues"
},
{
"name": "test_texlive-bartel-chess-fonts-doc_function_doc_exists",
"desc": "Check if the documentation files are present in the system doc path"
},
{
"name": "test_texlive-bartel-chess-fonts-doc_function_font_usage",
"desc": "Test generating a simple LaTeX document that uses the chess fonts"
}
]
}

View File

@@ -1,30 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-f/texlive-decorule",
"machine num": 1,
"cases": [
{
"name": "test_texlive-decorule_function_basic",
"desc": "Test basic functionality of texlive-decorule"
},
{
"name": "test_texlive-decorule_function_install",
"desc": "Test installation of texlive-decorule package"
},
{
"name": "test_texlive-decorule_function_uninstall",
"desc": "Test uninstallation of texlive-decorule package"
},
{
"name": "test_texlive-decorule_function_check_installed",
"desc": "Test if texlive-decorule is installed"
},
{
"name": "test_texlive-decorule_function_usage_basic",
"desc": "Test basic usage of decorule in LaTeX"
},
{
"name": "test_texlive-decorule_function_usage_options",
"desc": "Test different options of decorule command"
}
]
}

View File

@@ -1,26 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-i/texlive-fetamont",
"machine num": 1,
"cases": [
{
"name": "test_texlive-fetamont_function_install",
"desc": "Test installation of texlive-fetamont package"
},
{
"name": "test_texlive-fetamont_function_uninstall",
"desc": "Test uninstallation of texlive-fetamont package"
},
{
"name": "test_texlive-fetamont_function_version",
"desc": "Test checking package version"
},
{
"name": "test_texlive-fetamont_function_fontlist",
"desc": "Test listing provided fonts"
},
{
"name": "test_texlive-fetamont_function_usage",
"desc": "Test basic font usage in LaTeX"
}
]
}

View File

@@ -9,18 +9,6 @@
{
"name": "test_texlive-graphics-def_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_texlive-graphics-def_function_version",
"desc": "Test package version check"
},
{
"name": "test_texlive-graphics-def_function_doc",
"desc": "Test documentation presence"
},
{
"name": "test_texlive-graphics-def_function_listfiles",
"desc": "Test listing package files"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-k/texlive-hang-doc",
"machine num": 1,
"cases": [
{
"name": "test_texlive-hang-doc_function_install",
"desc": "Test installation of texlive-hang-doc"
}
]
}

View File

@@ -10,29 +10,9 @@
"name": "test_texlive-iwona-doc_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_texlive-iwona-doc_function_doc_access",
"desc": "Test documentation access"
},
{
"name": "test_texlive-iwona-doc_function_list_files",
"desc": "Test listing package files"
},
{
"name": "test_texlive-iwona-doc_function_check_version",
"desc": "Test package version check"
},
{
"name": "test_texlive-iwona-doc_function_verify_integrity",
"desc": "Test package file integrity"
},
{
"name": "test_texlive-iwona-doc_function_dep_install",
"desc": "Test dependency installation"
},
{
"name": "test_texlive-iwona-doc_function_doc_search",
"desc": "Test documentation search"
}
]
}

View File

@@ -2,25 +2,13 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-n/texlive-labbook",
"machine num": 1,
"cases": [
{
"name": "test_texlive-labbook_function_basic",
"desc": "Test basic functionality of texlive-labbook"
},
{
"name": "test_texlive-labbook_function_install",
"desc": "Test installation of texlive-labbook package"
},
{
"name": "test_texlive-labbook_function_usage",
"desc": "Test basic usage of texlive-labbook document class"
},
{
"name": "test_texlive-labbook_function_remove",
"desc": "Test removal of texlive-labbook package"
},
{
"name": "test_texlive-labbook_function_version",
"desc": "Test checking version of texlive-labbook"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-jupynotex",
"machine num": 1,
"cases": [
{
"name": "test_texlive-jupynotex_function_uninstall",
"desc": "Test package removal"
}
]
}

View File

@@ -1,119 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试为未知许可证文件添加默认许可证头
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数(虽然题目说无需定义,但实际使用时需要定义,这里按需提供)
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 定义检查结果函数(同样按需提供)
CHECK_RESULT() {
local actual=$1
local expect=$2
local exit_code=$3
local message=$4
if [ $actual -ne $expect ]; then
LOG_ERROR "$message"
exit $exit_code
fi
}
# 定义SSH_CMD函数按需提供
SSH_CMD() {
local cmd=$1
local node_ip=$2
local node_password=$3
local node_user=$4
# 这里简单模拟SSH执行实际应使用sshpass或密钥
echo "模拟在$node_ip上执行: $cmd"
# 实际应执行: sshpass -p "$node_password" ssh "$node_user"@"$node_ip" "$cmd"
}
# 测试脚本主体
LOG_INFO "开始测试:为未知许可证文件添加默认许可证头"
# 步骤1检查yum源中是否有apache-rat-core和apache-rat软件包
LOG_INFO "步骤1检查yum源中是否有apache-rat-core和apache-rat软件包"
dnf list available apache-rat-core apache-rat 2>/dev/null | grep -E "^apache-rat-core|^apache-rat"
CHECK_RESULT $? 0 255 "yum源中未找到apache-rat-core或apache-rat软件包"
# 步骤2检查是否已安装软件包
LOG_INFO "步骤2检查是否已安装apache-rat-core和apache-rat"
if rpm -q apache-rat-core apache-rat >/dev/null 2>&1; then
LOG_INFO "软件包已安装,测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "软件包未安装,将在测试中安装并在结束后卸载"
already_installed=false
fi
# 步骤3如果未安装则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3安装apache-rat-core和apache-rat软件包"
dnf install -y apache-rat-core apache-rat
CHECK_RESULT $? 0 1 "安装软件包失败"
fi
# 步骤4检查rat命令是否支持--add-default-license-header参数
LOG_INFO "步骤4检查rat命令是否支持--add-default-license-header参数"
rat --help 2>&1 | grep -q -- "--add-default-license-header"
CHECK_RESULT $? 0 255 "rat命令不支持--add-default-license-header参数"
# 步骤5创建测试文件模拟未知许可证文件
LOG_INFO "步骤5创建测试文件模拟未知许可证文件"
test_file="test_unknown_license.txt"
echo "This is a test file without license header." > "$test_file"
CHECK_RESULT $? 0 1 "创建测试文件失败"
# 步骤6使用rat命令为测试文件添加默认许可证头
LOG_INFO "步骤6使用rat命令为测试文件添加默认许可证头"
rat --add-default-license-header "$test_file"
CHECK_RESULT $? 0 1 "为文件添加默认许可证头失败"
# 步骤7验证文件是否已添加许可证头
LOG_INFO "步骤7验证文件是否已添加许可证头"
if head -n 5 "$test_file" | grep -q "Apache License"; then
LOG_INFO "文件已成功添加Apache许可证头"
else
LOG_ERROR "文件未添加预期的许可证头"
exit 1
fi
# 步骤8清理测试文件
LOG_INFO "步骤8清理测试文件"
rm -f "$test_file"
CHECK_RESULT $? 0 1 "删除测试文件失败"
# 步骤9如果测试前未安装则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "步骤9卸载apache-rat-core和apache-rat软件包"
dnf remove -y apache-rat-core apache-rat
CHECK_RESULT $? 0 1 "卸载软件包失败"
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试为未知许可证文件添加默认许可证头
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试为未知许可证文件添加默认许可证头"
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core 2>/dev/null | grep -q apache-rat-core; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已经安装apache-rat-core
LOG_INFO "检查是否已经安装apache-rat-core"
if rpm -q apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已经安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "apache-rat-core未安装将在测试过程中安装"
already_installed=false
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 检查apache-rat命令是否支持--addLicence参数
LOG_INFO "检查apache-rat命令是否支持--addLicence参数"
if ! apache-rat --help 2>&1 | grep -q "\-\-addLicence"; then
LOG_ERROR "apache-rat命令不支持--addLicence参数"
# 清理环境
if [ "$already_installed" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
fi
exit 255
fi
# 创建测试文件
LOG_INFO "创建测试文件"
test_file="test_unknown_license.txt"
echo "This is a test file without license header." > "$test_file"
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 执行apache-rat命令为文件添加默认许可证头
LOG_INFO "执行apache-rat命令为文件添加默认许可证头"
apache-rat --addLicence "$test_file"
CHECK_RESULT $? 0 0 "为文件添加默认许可证头失败"
# 检查文件是否被修改(添加了许可证头)
LOG_INFO "检查文件是否被添加了许可证头"
if head -n 5 "$test_file" | grep -q "Apache License"; then
LOG_INFO "文件成功添加了默认许可证头"
else
LOG_ERROR "文件未成功添加许可证头"
# 清理测试文件
rm -f "$test_file"
# 恢复环境
if [ "$already_installed" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
fi
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f "$test_file"
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果测试开始前未安装,则卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持apache-rat-core安装状态"
fi
LOG_INFO "测试为未知许可证文件添加默认许可证头完成"
}
main "$@"

View File

@@ -1,120 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试使用指定的版权信息生成报告
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试使用指定的版权信息生成报告
LOG_INFO "开始测试apache-rat-core_apache-rat_c"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已安装软件包
LOG_INFO "检查apache-rat-core是否已安装"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装测试结束后保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "apache-rat-core未安装将安装软件包进行测试"
ALREADY_INSTALLED=0
fi
# 如果未安装,则安装软件包
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 检查rat命令是否存在
LOG_INFO "检查rat命令是否存在"
which rat > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不存在"
exit 255
fi
# 检查rat命令是否支持--copyright参数
LOG_INFO "检查rat命令是否支持--copyright参数"
rat --help 2>&1 | grep -q "\-\-copyright"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持--copyright参数"
exit 255
fi
# 创建测试目录和文件
LOG_INFO "创建测试目录和文件"
TEST_DIR="/tmp/test_rat_$(date +%s)"
mkdir -p $TEST_DIR
echo "Test file content" > $TEST_DIR/test1.txt
echo "Another test file" > $TEST_DIR/test2.txt
# 创建版权信息文件
LOG_INFO "创建版权信息文件"
COPYRIGHT_FILE="/tmp/copyrights.txt"
cat > $COPYRIGHT_FILE << EOF
Test Copyright 2023
Apache License 2.0
EOF
# 使用指定的版权信息生成报告
LOG_INFO "使用指定的版权信息生成报告"
REPORT_FILE="/tmp/rat_report.txt"
rat --copyright $COPYRIGHT_FILE $TEST_DIR > $REPORT_FILE 2>&1
CHECK_RESULT $? 0 0 "使用--copyright参数生成报告失败"
# 检查报告文件是否生成
LOG_INFO "检查报告文件是否生成"
if [ -f "$REPORT_FILE" ]; then
LOG_INFO "报告文件已生成:$REPORT_FILE"
# 检查报告内容
LOG_INFO "检查报告内容"
grep -q "Test Copyright 2023" $REPORT_FILE
CHECK_RESULT $? 0 0 "报告中未找到指定的版权信息"
grep -q "Apache License 2.0" $REPORT_FILE
CHECK_RESULT $? 0 0 "报告中未找到指定的许可证信息"
else
LOG_ERROR "报告文件未生成"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -rf $TEST_DIR
rm -f $COPYRIGHT_FILE
rm -f $REPORT_FILE
# 如果测试前未安装软件包,则在测试后卸载
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试使用指定的版权信息生成报告
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试使用指定的版权信息生成报告"
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core 2>/dev/null | grep -q apache-rat-core
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查系统是否已安装apache-rat-core
LOG_INFO "检查系统是否已安装apache-rat-core"
rpm -q apache-rat-core >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装测试后保持安装状态"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试后卸载"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 检查rat命令是否支持--copyright参数
LOG_INFO "检查rat命令是否支持--copyright参数"
rat --help 2>&1 | grep -q -- "--copyright"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持--copyright参数"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
fi
exit 255
fi
# 创建测试目录和文件
LOG_INFO "创建测试目录和文件"
TEST_DIR="/tmp/test_rat_copyright"
mkdir -p $TEST_DIR
echo "Test file content" > $TEST_DIR/test1.txt
echo "Another test file" > $TEST_DIR/test2.txt
# 使用指定的版权信息生成报告
LOG_INFO "使用指定的版权信息生成报告"
rat --copyright "Test Copyright 2023" $TEST_DIR > $TEST_DIR/report.txt 2>&1
CHECK_RESULT $? 0 0 "使用--copyright参数生成报告失败"
# 验证报告中包含指定的版权信息
LOG_INFO "验证报告中包含指定的版权信息"
grep -q "Test Copyright 2023" $TEST_DIR/report.txt
CHECK_RESULT $? 0 0 "报告中未找到指定的版权信息"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -rf $TEST_DIR
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成:测试使用指定的版权信息生成报告"
}
main "$@"

View File

@@ -1,72 +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-07
# @License : Mulan PSL v2
# @Desc : 测试指定源目录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试指定源目录"
LOG_INFO "检查是否已安装apache-rat-core软件包"
if rpm -q apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
LOG_INFO "测试指定源目录功能"
LOG_INFO "执行rat命令检查指定源目录"
rat --help 2>&1 | grep -q "\-\-dir"
CHECK_RESULT $? 0 0 "rat命令不支持--dir参数"
LOG_INFO "创建测试源目录结构"
mkdir -p /tmp/test_rat_src/{src,doc}
echo "Test source file" > /tmp/test_rat_src/src/test1.java
echo "Another test file" > /tmp/test_rat_src/src/test2.c
echo "Documentation" > /tmp/test_rat_src/doc/README.txt
LOG_INFO "使用rat命令分析指定源目录"
rat --dir /tmp/test_rat_src/src --report /tmp/rat_report.txt
CHECK_RESULT $? 0 0 "rat命令执行失败"
LOG_INFO "验证rat报告文件生成"
[ -f /tmp/rat_report.txt ]
CHECK_RESULT $? 0 0 "rat报告文件未生成"
LOG_INFO "检查报告内容"
grep -q "test1.java" /tmp/rat_report.txt
CHECK_RESULT $? 0 0 "报告中未找到test1.java"
grep -q "test2.c" /tmp/rat_report.txt
CHECK_RESULT $? 0 0 "报告中未找到test2.c"
LOG_INFO "清理临时测试文件"
rm -rf /tmp/test_rat_src /tmp/rat_report.txt
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载测试安装的apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试为指定目录下的文件应用通配符排除规则
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出函数可选但通常LOG_INFO/LOG_ERROR会处理
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 定义软件包名称
PACKAGE_NAME="apache-rat-core"
PACKAGE_NAME_DEVEL="apache-rat-devel"
# 定义测试目录
TEST_DIR="/tmp/test_rat_dir"
# 步骤1检查yum源中是否有指定的软件包
LOG_INFO "步骤1检查yum源中是否有${PACKAGE_NAME}${PACKAGE_NAME_DEVEL}软件包"
dnf list available ${PACKAGE_NAME} ${PACKAGE_NAME_DEVEL} &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到${PACKAGE_NAME}${PACKAGE_NAME_DEVEL}软件包"
exit 255
fi
# 步骤2检查当前环境是否已经安装了软件包
LOG_INFO "步骤2检查当前环境是否已经安装了${PACKAGE_NAME}${PACKAGE_NAME_DEVEL}"
rpm -q ${PACKAGE_NAME} ${PACKAGE_NAME_DEVEL} &>/dev/null
INSTALLED=$?
# 步骤3如果未安装则安装软件包
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}${PACKAGE_NAME_DEVEL}软件包"
dnf install -y ${PACKAGE_NAME} ${PACKAGE_NAME_DEVEL}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}${PACKAGE_NAME_DEVEL}失败"
fi
# 步骤4创建测试目录和测试文件
LOG_INFO "步骤4创建测试目录和测试文件"
rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
echo "This is a test file." > ${TEST_DIR}/test1.txt
echo "Another test file." > ${TEST_DIR}/test2.txt
echo "Excluded file." > ${TEST_DIR}/exclude.txt
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 步骤5测试为指定目录下的文件应用通配符排除规则
LOG_INFO "步骤5测试为指定目录下的文件应用通配符排除规则"
# 假设apache-rat命令支持--exclude参数这里使用示例命令
# 注意实际命令应根据apache-rat的真实用法调整
rat_command="rat" # 假设命令名为rat
if ! command -v ${rat_command} &>/dev/null; then
LOG_ERROR "命令${rat_command}不存在或不支持"
exit 255
fi
# 示例使用通配符排除exclude.txt文件
${rat_command} --exclude="*exclude.txt" ${TEST_DIR}/*.txt &>/dev/null
CHECK_RESULT $? 0 0 "应用通配符排除规则失败"
# 步骤6验证排除规则是否生效
LOG_INFO "步骤6验证排除规则是否生效"
# 这里假设rat命令会输出处理文件列表检查exclude.txt是否被排除
# 示例使用grep检查输出中是否不包含exclude.txt
${rat_command} --exclude="*exclude.txt" ${TEST_DIR}/*.txt 2>&1 | grep -q "exclude.txt"
if [ $? -eq 0 ]; then
LOG_ERROR "排除规则未生效exclude.txt未被排除"
exit 1
fi
LOG_INFO "排除规则生效exclude.txt已被成功排除"
# 步骤7清理测试目录
LOG_INFO "步骤7清理测试目录"
rm -rf ${TEST_DIR}
CHECK_RESULT $? 0 0 "清理测试目录失败"
# 步骤8如果脚本开始时未安装软件包则卸载
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "步骤8卸载${PACKAGE_NAME}${PACKAGE_NAME_DEVEL}软件包"
dnf remove -y ${PACKAGE_NAME} ${PACKAGE_NAME_DEVEL}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}${PACKAGE_NAME_DEvel}失败"
else
LOG_INFO "步骤8环境已安装软件包保持安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试为指定目录下的文件应用正则表达式排除规则
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:为指定目录下的文件应用正则表达式排除规则"
LOG_INFO "步骤1检查环境中是否已安装apache-rat-core软件包"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core软件包已安装测试后将保持安装状态"
already_installed=1
else
LOG_INFO "apache-rat-core软件包未安装将在测试中安装"
already_installed=0
fi
LOG_INFO "步骤2检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "步骤3如果未安装则安装apache-rat-core软件包"
if [ $already_installed -eq 0 ]; then
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core软件包失败"
fi
LOG_INFO "步骤4创建一个测试目录和文件"
test_dir="/tmp/test_rat_dir"
mkdir -p $test_dir
echo "This is a test file." > $test_dir/test.txt
echo "Another test file." > $test_dir/test2.txt
LOG_INFO "步骤5检查apache-rat命令是否支持-d参数"
rat --help 2>&1 | grep -q "\-d"
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat命令不支持-d参数"
exit 255
fi
LOG_INFO "步骤6检查apache-rat命令是否支持-e参数"
rat --help 2>&1 | grep -q "\-e"
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat命令不支持-e参数"
exit 255
fi
LOG_INFO "步骤7执行apache-rat命令为指定目录应用正则表达式排除规则"
rat -d $test_dir -e ".*test2.*"
CHECK_RESULT $? 0 0 "为指定目录应用正则表达式排除规则失败"
LOG_INFO "步骤8清理测试目录"
rm -rf $test_dir
LOG_INFO "步骤9如果测试前未安装则卸载apache-rat-core软件包"
if [ $already_installed -eq 0 ]; then
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core软件包失败"
fi
LOG_INFO "测试完成:为指定目录下的文件应用正则表达式排除规则"
}
main "$@"

View File

@@ -1,118 +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-07
# @License : Mulan PSL v2
# @Desc : 测试指定源目录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试指定源目录
LOG_INFO "开始测试apache-rat-core软件包的目录功能"
# 检查软件包是否已在yum源中
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core 2>/dev/null | grep -q apache-rat-core
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已安装apache-rat-core
LOG_INFO "检查系统是否已安装apache-rat-core"
rpm -q apache-rat-core >/dev/null 2>&1
installed_before=$?
if [ $installed_before -ne 0 ]; then
LOG_INFO "系统未安装apache-rat-core开始安装"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
# 记录安装状态,用于后续清理
need_cleanup=1
else
LOG_INFO "系统已安装apache-rat-core保持安装状态"
need_cleanup=0
fi
# 测试rat命令的目录参数
LOG_INFO "测试rat命令的目录参数功能"
rat --help 2>&1 | grep -q "directory"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持目录参数"
if [ $need_cleanup -eq 1 ]; then
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
exit 255
fi
# 创建测试目录结构
LOG_INFO "创建测试目录结构"
test_dir="/tmp/test_rat_dir_$(date +%s)"
mkdir -p $test_dir/subdir
echo "Test file 1" > $test_dir/file1.txt
echo "Test file 2" > $test_dir/subdir/file2.txt
echo "Test file 3" > $test_dir/subdir/file3.java
# 测试对目录执行rat命令
LOG_INFO "对测试目录执行rat命令"
rat -d $test_dir > /tmp/rat_output.txt 2>&1
CHECK_RESULT $? 0 0 "对目录执行rat命令失败"
# 检查输出结果
LOG_INFO "检查rat命令输出结果"
grep -q "file1.txt" /tmp/rat_output.txt
CHECK_RESULT $? 0 0 "输出中未找到file1.txt"
grep -q "file2.txt" /tmp/rat_output.txt
CHECK_RESULT $? 0 0 "输出中未找到file2.txt"
grep -q "file3.java" /tmp/rat_output.txt
CHECK_RESULT $? 0 0 "输出中未找到file3.java"
# 测试不存在的目录
LOG_INFO "测试对不存在的目录执行rat命令"
rat -d /tmp/nonexistent_dir_$(date +%s) 2>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "对不存在的目录执行rat命令应失败但成功了"
CHECK_RESULT 1 0 0 "目录参数验证失败"
fi
# 测试无效目录参数
LOG_INFO "测试无效目录参数"
rat -d 2>/dev/null
if [ $? -eq 0 ]; then
LOG_ERROR "无效目录参数应失败但成功了"
CHECK_RESULT 1 0 0 "目录参数验证失败"
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -rf $test_dir
rm -f /tmp/rat_output.txt
# 根据初始状态决定是否卸载软件包
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "清理测试环境卸载apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持apache-rat-core安装状态"
fi
LOG_INFO "apache-rat-core目录功能测试完成"
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试使用通配符表达式排除文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="apache-rat-core"
TEST_DIR="/tmp/test_rat"
EXCLUDE_PATTERN="*.txt"
# 步骤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检查系统是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} &>/dev/null
if [ $? -eq 0 ]; then
ALREADY_INSTALLED=true
LOG_INFO "系统已安装${PACKAGE_NAME}软件包"
else
ALREADY_INSTALLED=false
LOG_INFO "系统未安装${PACKAGE_NAME}软件包"
fi
# 步骤3如果未安装则安装软件包
if [ "${ALREADY_INSTALLED}" = "false" ]; then
LOG_INFO "步骤3安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}软件包失败"
fi
# 步骤4检查rat命令是否存在
LOG_INFO "步骤4检查rat命令是否存在"
which rat &>/dev/null
CHECK_RESULT $? 0 0 "rat命令不存在"
# 步骤5检查rat命令是否支持--exclude参数
LOG_INFO "步骤5检查rat命令是否支持--exclude参数"
rat --help 2>&1 | grep -q "\-\-exclude"
CHECK_RESULT $? 0 255 "rat命令不支持--exclude参数"
# 步骤6创建测试目录和文件
LOG_INFO "步骤6创建测试目录和文件"
mkdir -p ${TEST_DIR}
echo "test content 1" > ${TEST_DIR}/file1.java
echo "test content 2" > ${TEST_DIR}/file2.txt
echo "test content 3" > ${TEST_DIR}/file3.java
echo "test content 4" > ${TEST_DIR}/file4.txt
# 步骤7使用通配符表达式排除文件进行测试
LOG_INFO "步骤7使用通配符表达式排除文件进行测试"
cd ${TEST_DIR}
rat --exclude "${EXCLUDE_PATTERN}" . 2>&1 | tee /tmp/rat_output.txt
CHECK_RESULT $? 0 0 "rat命令执行失败"
# 步骤8验证排除结果
LOG_INFO "步骤8验证排除结果"
grep -q "file1.java" /tmp/rat_output.txt
CHECK_RESULT $? 0 0 "file1.java未被正确包含"
grep -q "file3.java" /tmp/rat_output.txt
CHECK_RESULT $? 0 0 "file3.java未被正确包含"
grep -q "file2.txt" /tmp/rat_output.txt
CHECK_RESULT $? 1 0 "file2.txt未被正确排除"
grep -q "file4.txt" /tmp/rat_output.txt
CHECK_RESULT $? 1 0 "file4.txt未被正确排除"
# 步骤9清理测试文件
LOG_INFO "步骤9清理测试文件"
rm -rf ${TEST_DIR}
rm -f /tmp/rat_output.txt
# 步骤10如果测试前未安装则卸载软件包
if [ "${ALREADY_INSTALLED}" = "false" ]; then
LOG_INFO "步骤10卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}软件包失败"
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试使用通配符表达式排除文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="apache-rat-core"
# 定义测试文件目录
TEST_DIR="/tmp/test_rat"
# 定义排除模式
EXCLUDE_PATTERN="*.txt"
# 步骤1检查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
# 步骤2检查环境是否已安装软件包
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
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
fi
# 步骤4创建测试目录和文件
LOG_INFO "创建测试目录和文件"
rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
echo "Test content for Java file" > ${TEST_DIR}/Test.java
echo "Test content for text file 1" > ${TEST_DIR}/file1.txt
echo "Test content for text file 2" > ${TEST_DIR}/file2.txt
echo "Test content for another Java file" > ${TEST_DIR}/AnotherTest.java
# 步骤5检查rat命令是否支持--exclude参数
LOG_INFO "检查rat命令是否支持--exclude参数"
rat --help 2>&1 | grep -q "\-\-exclude"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持--exclude参数"
exit 255
fi
# 步骤6使用通配符表达式排除文件执行rat命令
LOG_INFO "使用通配符表达式排除文件执行rat命令"
cd ${TEST_DIR}
rat --exclude "${EXCLUDE_PATTERN}" . > ${TEST_DIR}/rat_output.txt 2>&1
CHECK_RESULT $? 0 0 "rat命令执行失败"
# 步骤7检查输出结果确认txt文件被排除
LOG_INFO "检查输出结果确认txt文件被排除"
if grep -q "file1.txt" ${TEST_DIR}/rat_output.txt || grep -q "file2.txt" ${TEST_DIR}/rat_output.txt; then
LOG_ERROR "排除文件失败输出中包含txt文件"
exit 1
else
LOG_INFO "排除文件成功输出中未包含txt文件"
fi
# 步骤8清理测试目录
LOG_INFO "清理测试目录"
rm -rf ${TEST_DIR}
# 步骤9如果测试前未安装则卸载软件包
if [ "$INSTALLED_BEFORE" = false ]; then
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
fi
LOG_INFO "测试完成"
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试使用正则表达式文件排除文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试使用正则表达式文件排除文件"
# 检查软件包是否在yum源中
LOG_INFO "检查apache-rat-core软件包是否在yum源中"
dnf list available apache-rat-core 2>/dev/null | grep -q apache-rat-core
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已安装
LOG_INFO "检查apache-rat-core是否已安装"
rpm -q apache-rat-core >/dev/null 2>&1
installed=$?
if [ $installed -ne 0 ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 检查apache-rat命令是否支持--exclude-file参数
LOG_INFO "检查apache-rat命令是否支持--exclude-file参数"
apache-rat --help 2>&1 | grep -q -- --exclude-file
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat命令不支持--exclude-file参数"
if [ $installed -ne 0 ]; then
LOG_INFO "清理环境卸载apache-rat-core"
dnf remove -y apache-rat-core
fi
exit 255
fi
# 创建测试目录和文件
LOG_INFO "创建测试目录和文件"
test_dir="/tmp/test_apache_rat_$(date +%s)"
mkdir -p $test_dir
echo "Test file 1" > $test_dir/file1.txt
echo "Test file 2" > $test_dir/file2.txt
echo "Test file 3" > $test_dir/file3.txt
# 创建排除文件列表
LOG_INFO "创建正则表达式排除文件"
exclude_file="/tmp/exclude_patterns_$(date +%s).txt"
echo ".*file2.*" > $exclude_file
echo ".*file3.*" >> $exclude_file
# 执行apache-rat命令使用正则表达式排除文件
LOG_INFO "执行apache-rat命令使用正则表达式文件排除文件"
apache-rat --exclude-file $exclude_file $test_dir > /tmp/rat_output.txt 2>&1
CHECK_RESULT $? 0 0 "apache-rat命令执行失败"
# 检查输出结果
LOG_INFO "检查输出结果"
grep -q "file1.txt" /tmp/rat_output.txt
CHECK_RESULT $? 0 0 "输出中应包含file1.txt"
grep -q "file2.txt" /tmp/rat_output.txt
CHECK_RESULT $? 1 0 "输出中不应包含file2.txt"
grep -q "file3.txt" /tmp/rat_output.txt
CHECK_RESULT $? 1 0 "输出中不应包含file3.txt"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -rf $test_dir
rm -f $exclude_file
rm -f /tmp/rat_output.txt
# 恢复环境
if [ $installed -ne 0 ]; then
LOG_INFO "清理环境卸载apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持apache-rat-core安装状态"
fi
LOG_INFO "测试完成:测试使用正则表达式文件排除文件"
}
main "$@"

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试强制修改源文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试:测试强制修改源文件"
LOG_INFO "步骤1检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core 2>/dev/null | grep -q "apache-rat-core"; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "步骤2检查系统是否已安装apache-rat-core"
if rpm -q apache-rat-core &>/dev/null; then
INSTALLED=true
LOG_INFO "apache-rat-core已安装测试结束后保持安装状态"
else
INSTALLED=false
LOG_INFO "apache-rat-core未安装将在测试过程中安装"
fi
LOG_INFO "步骤3检查rat命令的--force参数是否支持"
if ! rat --help 2>&1 | grep -q -- "--force"; then
LOG_ERROR "rat命令不支持--force参数"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤4安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
LOG_INFO "步骤5创建测试源文件"
cat > test_source.java << "EOF"
public class Test {
// Sample source file
public static void main(String[] args) {
System.out.println("Hello, RAT!");
}
}
EOF
LOG_INFO "步骤6使用rat命令检查源文件正常模式"
rat test_source.java
CHECK_RESULT $? 0 0 "rat命令执行失败"
LOG_INFO "步骤7使用rat命令强制修改源文件--force参数"
rat --force test_source.java
CHECK_RESULT $? 0 0 "rat命令--force参数执行失败"
LOG_INFO "步骤8验证源文件是否被修改"
if [ -f test_source.java ]; then
LOG_INFO "源文件test_source.java仍然存在"
cat test_source.java
else
LOG_ERROR "源文件test_source.java不存在可能被意外删除"
exit 1
fi
LOG_INFO "步骤9清理测试文件"
rm -f test_source.java
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤10卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "步骤10保持apache-rat-core安装状态不执行卸载"
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-07
# @License : Mulan PSL v2
# @Desc : 测试强制修改源文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试apache-rat-core软件包强制修改源文件功能"
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core 2>&1 | grep -q "apache-rat-core"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查系统是否已安装apache-rat-core
LOG_INFO "检查系统是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
installed=$?
# 如果未安装,则安装软件包
if [ $installed -ne 0 ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试强制修改源文件功能
LOG_INFO "测试强制修改源文件功能"
# 假设apache-rat-core提供了--force参数用于强制修改源文件
# 检查--force参数是否存在
apache-rat --help 2>&1 | grep -q -- "--force"
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat命令不支持--force参数"
exit 255
fi
# 创建测试文件
LOG_INFO "创建测试文件"
test_file="test_source_file.txt"
echo "This is a test source file for apache-rat" > $test_file
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 使用--force参数执行命令
LOG_INFO "使用--force参数执行apache-rat命令"
apache-rat --force $test_file
CHECK_RESULT $? 0 0 "强制修改源文件失败"
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f $test_file
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 环境恢复:如果测试前未安装,则卸载软件包
if [ $installed -ne 0 ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +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-07
# @License : Mulan PSL v2
# @Desc : 测试显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试apache-rat-core包测试显示帮助信息"
# 检查yum源中是否存在apache-rat-core包
LOG_INFO "检查yum源中是否存在apache-rat-core包"
dnf list available apache-rat-core 2>/dev/null | grep -q apache-rat-core
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core包"
exit 255
fi
# 检查是否已安装apache-rat-core包
LOG_INFO "检查是否已安装apache-rat-core包"
rpm -q apache-rat-core >/dev/null 2>&1
installed=$?
if [ $installed -ne 0 ]; then
LOG_INFO "未安装apache-rat-core包开始安装"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core包失败"
# 标记需要清理
need_cleanup=1
else
LOG_INFO "apache-rat-core包已安装"
need_cleanup=0
fi
# 测试显示帮助信息
LOG_INFO "测试显示帮助信息"
rat --help >/dev/null 2>&1
CHECK_RESULT $? 0 0 "执行rat --help命令失败"
# 检查帮助信息中是否包含usage或help关键字
LOG_INFO "验证帮助信息内容"
rat --help 2>&1 | grep -q -E "usage|help|Usage|Help"
CHECK_RESULT $? 0 0 "帮助信息中未找到usage或help关键字"
# 环境清理
if [ $need_cleanup -eq 1 ]; then
LOG_INFO "清理测试环境卸载apache-rat-core包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core包失败"
else
LOG_INFO "保持apache-rat-core包安装状态"
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试显示帮助信息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试显示帮助信息
LOG_INFO "开始测试apache-rat-core软件包的帮助信息功能"
# 检查软件包是否已在yum源中
LOG_INFO "步骤1检查apache-rat-core软件包是否在yum源中"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat-core软件包不在yum源中"
exit 255
fi
LOG_INFO "apache-rat-core软件包在yum源中"
# 检查软件包是否已安装
LOG_INFO "步骤2检查apache-rat-core软件包是否已安装"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
already_installed=true
LOG_INFO "apache-rat-core软件包已安装"
else
already_installed=false
LOG_INFO "apache-rat-core软件包未安装"
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = "false" ]; then
LOG_INFO "步骤3安装apache-rat-core软件包"
dnf install -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装apache-rat-core软件包失败"
LOG_INFO "apache-rat-core软件包安装成功"
fi
# 测试帮助信息功能
LOG_INFO "步骤4测试apache-rat-core的帮助信息功能"
# 检查--help参数是否存在
LOG_INFO "步骤4.1检查apache-rat命令是否支持--help参数"
rat --help > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "apache-rat命令不支持--help参数"
# 如果软件包是本次安装的,需要卸载
if [ "$already_installed" = "false" ]; then
LOG_INFO "清理环境卸载apache-rat-core软件包"
dnf remove -y apache-rat-core > /dev/null 2>&1
fi
exit 255
fi
# 执行帮助命令
LOG_INFO "步骤4.2执行apache-rat --help命令"
rat --help > /tmp/rat_help_output.txt 2>&1
CHECK_RESULT $? 0 0 "执行apache-rat --help命令失败"
# 检查帮助信息是否包含关键内容
LOG_INFO "步骤4.3:验证帮助信息内容"
grep -i "usage" /tmp/rat_help_output.txt > /dev/null 2>&1
CHECK_RESULT $? 0 0 "帮助信息中未找到使用说明"
grep -i "options" /tmp/rat_help_output.txt > /dev/null 2>&1
CHECK_RESULT $? 0 0 "帮助信息中未找到选项说明"
# 清理临时文件
rm -f /tmp/rat_help_output.txt
# 环境恢复
LOG_INFO "步骤5恢复测试环境"
if [ "$already_installed" = "false" ]; then
LOG_INFO "卸载测试安装的apache-rat-core软件包"
dnf remove -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载apache-rat-core软件包失败"
LOG_INFO "环境已恢复到测试前状态"
else
LOG_INFO "保持原有安装状态,不卸载软件包"
fi
LOG_INFO "测试apache-rat-core帮助信息功能完成"
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试使用XSLT样式表生成报告
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试测试使用XSLT样式表生成报告"
LOG_INFO "步骤1: 检查环境中是否已安装apache-rat-core软件包"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core软件包已安装测试后将保持安装状态"
INSTALLED=true
else
LOG_INFO "apache-rat-core软件包未安装测试前将安装测试后将卸载"
INSTALLED=false
fi
LOG_INFO "步骤2: 检查yum源中是否有apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3: 安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core软件包失败"
fi
LOG_INFO "步骤4: 验证rat命令是否存在"
which rat > /dev/null 2>&1
CHECK_RESULT $? 0 0 "rat命令不存在"
LOG_INFO "步骤5: 验证rat命令是否支持--help参数"
rat --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "rat命令不支持--help参数"
LOG_INFO "步骤6: 验证rat命令是否支持-X参数XSLT样式表"
rat --help 2>&1 | grep -q "\-X"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持-X参数XSLT样式表"
exit 255
fi
LOG_INFO "步骤7: 创建一个临时测试目录和文件"
TEST_DIR=$(mktemp -d)
TEST_FILE="${TEST_DIR}/test.java"
echo "// Test Java file" > "$TEST_FILE"
CHECK_RESULT $? 0 0 "创建测试文件失败"
LOG_INFO "步骤8: 创建一个简单的XSLT样式表文件"
XSLT_FILE="${TEST_DIR}/test.xslt"
cat > "$XSLT_FILE" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html><body><h1>Test Report</h1></body></html>
</xsl:template>
</xsl:stylesheet>
EOF
CHECK_RESULT $? 0 0 "创建XSLT样式表文件失败"
LOG_INFO "步骤9: 使用rat命令配合XSLT样式表生成报告"
rat -X "$XSLT_FILE" "$TEST_DIR" > "${TEST_DIR}/report.html" 2>&1
CHECK_RESULT $? 0 0 "使用XSLT样式表生成报告失败"
LOG_INFO "步骤10: 验证生成的报告文件是否存在且非空"
if [ -s "${TEST_DIR}/report.html" ]; then
LOG_INFO "报告文件生成成功"
else
LOG_ERROR "报告文件生成失败或为空"
exit 1
fi
LOG_INFO "步骤11: 清理临时测试目录"
rm -rf "$TEST_DIR"
CHECK_RESULT $? 0 0 "清理临时目录失败"
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤12: 卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core软件包失败"
fi
LOG_INFO "测试完成测试使用XSLT样式表生成报告"
}
main "$@"

View File

@@ -1,78 +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-07
# @License : Mulan PSL v2
# @Desc : 测试使用XSLT样式表生成报告
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用XSLT样式表生成报告"
LOG_INFO "检查是否已安装apache-rat-core和apache-rat-stylesheet软件包"
if dnf list installed apache-rat-core > /dev/null 2>&1 && dnf list installed apache-rat-stylesheet > /dev/null 2>&1; then
LOG_INFO "软件包已安装,测试结束后保持安装状态"
installed_before=true
else
LOG_INFO "软件包未安装,将在测试过程中安装"
installed_before=false
fi
LOG_INFO "检查yum源中是否有apache-rat-core和apache-rat-stylesheet软件包"
if ! dnf list available apache-rat-core > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
if ! dnf list available apache-rat-stylesheet > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到apache-rat-stylesheet软件包"
exit 255
fi
LOG_INFO "安装apache-rat-core和apache-rat-stylesheet软件包"
dnf install -y apache-rat-core apache-rat-stylesheet
CHECK_RESULT $? 0 0 "安装软件包失败"
LOG_INFO "检查rat命令是否支持--stylesheet参数"
rat --help | grep -q "\-\-stylesheet"
CHECK_RESULT $? 0 0 "rat命令不支持--stylesheet参数"
LOG_INFO "创建一个测试目录和文件"
mkdir -p /tmp/test_rat
echo "Test file content" > /tmp/test_rat/test.txt
LOG_INFO "使用XSLT样式表生成报告"
rat --stylesheet /usr/share/apache-rat/apache-rat-default.xsl /tmp/test_rat > /tmp/rat_report.html 2>&1
CHECK_RESULT $? 0 0 "使用XSLT样式表生成报告失败"
LOG_INFO "检查生成的报告文件是否存在"
ls -l /tmp/rat_report.html
CHECK_RESULT $? 0 0 "报告文件未生成"
LOG_INFO "清理临时文件"
rm -rf /tmp/test_rat /tmp/rat_report.html
CHECK_RESULT $? 0 0 "清理临时文件失败"
if [ "$installed_before" = false ]; then
LOG_INFO "卸载测试过程中安装的软件包"
dnf remove -y apache-rat-core apache-rat-stylesheet
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "测试前软件包已安装,保持安装状态"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试为未知许可证文件添加默认许可证头
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "1. 检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "2. 检查apache-rat-core是否已经安装"
rpm -q apache-rat-core &>/dev/null
if [ $? -eq 0 ]; then
already_installed=true
LOG_INFO "apache-rat-core已经安装脚本结束时将保持安装状态"
else
already_installed=false
LOG_INFO "apache-rat-core未安装将进行安装"
fi
if [ "$already_installed" = "false" ]; then
LOG_INFO "3. 安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
LOG_INFO "4. 检查rat命令是否支持--add-default-license-headers参数"
rat --help 2>&1 | grep -q "\-\-add-default-license-headers"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持--add-default-license-headers参数"
if [ "$already_installed" = "false" ]; then
LOG_INFO "清理环境卸载apache-rat-core"
dnf remove -y apache-rat-core
fi
exit 255
fi
LOG_INFO "5. 创建测试目录和未知许可证文件"
test_dir=$(mktemp -d)
test_file="${test_dir}/unknown_license.txt"
echo "This is a file without a license header." > "$test_file"
LOG_INFO "6. 执行rat命令为未知许可证文件添加默认许可证头"
rat --add-default-license-headers "$test_dir"
CHECK_RESULT $? 0 0 "rat命令执行失败"
LOG_INFO "7. 检查文件是否被成功添加许可证头"
if grep -q "Apache License" "$test_file"; then
LOG_INFO "成功为文件添加了默认许可证头"
else
LOG_ERROR "未能为文件添加默认许可证头"
CHECK_RESULT 1 0 0 "许可证头添加检查失败"
fi
LOG_INFO "8. 清理临时测试文件"
rm -rf "$test_dir"
if [ "$already_installed" = "false" ]; then
LOG_INFO "9. 清理环境卸载apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "9. 保持apache-rat-core安装状态"
fi
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试为指定目录下的未知许可证文件添加默认许可证头
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="apache-rat-core"
TEST_DIR="/tmp/rat_test"
TEST_FILE="${TEST_DIR}/unknown_license.txt"
EXPECTED_HEADER="Apache License"
# 步骤1: 检查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
# 步骤2: 检查系统是否已安装该软件包
LOG_INFO "检查系统是否已安装 ${PACKAGE_NAME} 软件包"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "${PACKAGE_NAME} 已安装,脚本结束后将保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "${PACKAGE_NAME} 未安装,将进行安装"
ALREADY_INSTALLED=false
fi
# 步骤3: 如果未安装,则安装软件包
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "安装 ${PACKAGE_NAME} 软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 失败"
fi
# 步骤4: 创建测试目录和测试文件
LOG_INFO "创建测试目录和测试文件"
mkdir -p ${TEST_DIR}
echo "This is a test file without license header." > ${TEST_FILE}
# 步骤5: 检查rat命令是否支持--add-license-header参数
LOG_INFO "检查rat命令是否支持--add-license-header参数"
rat --help | grep -q "\-\-add-license-header"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持--add-license-header参数"
# 清理环境
rm -rf ${TEST_DIR}
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "卸载 ${PACKAGE_NAME} 软件包"
dnf remove -y ${PACKAGE_NAME}
fi
exit 255
fi
# 步骤6: 执行rat命令为未知许可证文件添加默认许可证头
LOG_INFO "执行rat命令为未知许可证文件添加默认许可证头"
rat --add-license-header ${TEST_FILE}
CHECK_RESULT $? 0 0 "rat命令执行失败"
# 步骤7: 验证文件是否已添加许可证头
LOG_INFO "验证文件是否已添加许可证头"
head -n 5 ${TEST_FILE} | grep -q "${EXPECTED_HEADER}"
CHECK_RESULT $? 0 0 "文件未添加预期的许可证头"
# 步骤8: 清理测试环境
LOG_INFO "清理测试环境"
rm -rf ${TEST_DIR}
# 步骤9: 如果脚本开始时未安装软件包,则卸载
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "卸载 ${PACKAGE_NAME} 软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试强制为未知许可证文件添加默认许可证头
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:强制为未知许可证文件添加默认许可证头"
LOG_INFO "检查yum源中是否存在apache-rat-core和apache-rat软件包"
if ! dnf list available apache-rat-core > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
if ! dnf list available apache-rat > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到apache-rat软件包"
exit 255
fi
LOG_INFO "检查apache-rat是否已安装"
if rpm -q apache-rat > /dev/null 2>&1; then
LOG_INFO "apache-rat已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "apache-rat未安装将进行安装"
INSTALLED=false
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装apache-rat软件包"
dnf install -y apache-rat
CHECK_RESULT $? 0 0 "安装apache-rat失败"
fi
LOG_INFO "检查apache-rat命令是否支持--force参数"
if ! apache-rat --help 2>&1 | grep -q "\-\-force"; then
LOG_ERROR "apache-rat命令不支持--force参数"
exit 255
fi
LOG_INFO "创建测试目录和未知许可证文件"
TEST_DIR="/tmp/test_apache_rat_$(date +%s)"
mkdir -p "$TEST_DIR"
TEST_FILE="$TEST_DIR/unknown_license.txt"
echo "This is a file without a license header." > "$TEST_FILE"
LOG_INFO "执行apache-rat命令强制为未知许可证文件添加默认许可证头"
apache-rat --force "$TEST_FILE"
CHECK_RESULT $? 0 0 "强制添加默认许可证头失败"
LOG_INFO "检查文件是否被修改"
if grep -q "Apache License" "$TEST_FILE"; then
LOG_INFO "成功为文件添加了默认许可证头"
else
LOG_ERROR "文件未成功添加默认许可证头"
CHECK_RESULT 1 0 0 "许可证头添加验证失败"
fi
LOG_INFO "清理测试目录"
rm -rf "$TEST_DIR"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat软件包"
dnf remove -y apache-rat
CHECK_RESULT $? 0 0 "卸载apache-rat失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试强制为未知许可证文件添加默认许可证头
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试强制为未知许可证文件添加默认许可证头"
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core 2>/dev/null | grep -q apache-rat-core; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查环境是否已安装apache-rat-core
LOG_INFO "检查环境是否已安装apache-rat-core"
if rpm -q apache-rat-core >/dev/null 2>&1; then
LOG_INFO "apache-rat-core已安装"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装"
INSTALLED=false
fi
# 如果未安装则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 检查rat命令是否支持--force-license参数
LOG_INFO "检查rat命令是否支持--force-license参数"
if ! rat --help 2>/dev/null | grep -q -- --force-license; then
LOG_ERROR "rat命令不支持--force-license参数"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
fi
exit 255
fi
# 创建测试文件
LOG_INFO "创建测试文件"
TEST_FILE="test_unknown_license.txt"
echo "This is a test file without license header" > $TEST_FILE
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 执行rat命令强制添加默认许可证头
LOG_INFO "执行rat命令强制添加默认许可证头"
rat --force-license "Apache-2.0" $TEST_FILE
CHECK_RESULT $? 0 0 "rat命令执行失败"
# 验证文件是否已添加许可证头
LOG_INFO "验证文件是否已添加许可证头"
if head -n 5 $TEST_FILE | grep -q "Apache-2.0"; then
LOG_INFO "许可证头添加成功"
else
LOG_ERROR "许可证头添加失败"
CHECK_RESULT 1 0 0 "许可证头添加失败"
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f $TEST_FILE
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 恢复环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成"
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试使用正则表达式文件排除文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:使用正则表达式文件排除文件"
LOG_INFO "检查是否已安装apache-rat-core软件包"
if dnf list installed apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试过程中安装"
INSTALLED=false
fi
LOG_INFO "检查yum源中是否有apache-rat-core软件包"
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
LOG_INFO "创建测试目录和文件"
TEST_DIR="/tmp/rat_test_$(date +%s)"
mkdir -p "$TEST_DIR"
cd "$TEST_DIR" || exit 1
cat > file1.txt << EOF
测试文件1内容
EOF
cat > file2.log << EOF
测试文件2内容
EOF
cat > exclude_patterns.txt << EOF
.*\.log
EOF
LOG_INFO "运行apache-rat命令使用正则表达式文件排除.log文件"
apache-rat --exclude-file exclude_patterns.txt . 2>&1
CHECK_RESULT $? 0 0 "apache-rat命令执行失败"
LOG_INFO "检查输出中是否排除了.log文件"
RAT_OUTPUT=$(apache-rat --exclude-file exclude_patterns.txt . 2>&1)
if echo "$RAT_OUTPUT" | grep -q "file2.log"; then
LOG_ERROR "正则表达式文件未成功排除.log文件"
exit 1
else
LOG_INFO "成功排除.log文件"
fi
LOG_INFO "清理测试目录"
cd /tmp || exit 1
rm -rf "$TEST_DIR"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试以原始XML格式输出报告
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试以原始XML格式输出报告"
LOG_INFO "检查环境是否已安装apache-rat-core软件包"
if dnf list installed apache-rat-core &>/dev/null; then
LOG_INFO "环境已安装apache-rat-core保持安装状态"
already_installed=1
else
LOG_INFO "环境未安装apache-rat-core开始安装"
already_installed=0
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
LOG_INFO "检查rat命令是否支持--help参数"
rat --help 2>&1 | grep -q "\-\-help"
CHECK_RESULT $? 0 0 "rat命令不支持--help参数或命令不存在"
LOG_INFO "检查rat命令是否支持--xml参数"
rat --help 2>&1 | grep -q "\-\-xml"
CHECK_RESULT $? 0 255 "rat命令支持--xml参数但预期不支持"
LOG_INFO "检查rat命令是否支持原始XML输出参数"
rat --help 2>&1 | grep -q "\-\-xml\-raw"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持原始XML输出参数"
exit 255
fi
LOG_INFO "创建一个临时测试目录和文件"
test_dir=$(mktemp -d)
test_file="${test_dir}/test.txt"
echo "Test content for rat" > "${test_file}"
LOG_INFO "使用rat命令以原始XML格式输出报告"
rat --xml-raw "${test_dir}" > "${test_dir}/report_raw.xml"
CHECK_RESULT $? 0 0 "以原始XML格式输出报告失败"
LOG_INFO "检查生成的XML报告文件"
if [ -s "${test_dir}/report_raw.xml" ]; then
LOG_INFO "原始XML报告文件生成成功"
else
LOG_ERROR "原始XML报告文件为空或未生成"
CHECK_RESULT 1 0 0 "原始XML报告文件检查失败"
fi
LOG_INFO "清理临时测试目录"
rm -rf "${test_dir}"
CHECK_RESULT $? 0 0 "清理临时测试目录失败"
LOG_INFO "根据初始安装状态决定是否卸载软件包"
if [ ${already_installed} -eq 0 ]; then
LOG_INFO "卸载测试安装的apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "环境已安装apache-rat-core保持安装状态无需卸载"
fi
LOG_INFO "测试以原始XML格式输出报告完成"
}
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 : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的降级功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查当前是否已安装apache-rat-core
LOG_INFO "检查当前是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装记录当前版本"
CURRENT_VERSION=$(rpm -q --queryformat '%{VERSION}' apache-rat-core)
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装标记为需要卸载"
INSTALLED=false
fi
# 获取可用的低版本列表
LOG_INFO "获取可用的低版本列表"
LOWER_VERSIONS=$(dnf list --showduplicates apache-rat-core | grep -v "$CURRENT_VERSION" | awk '{print $2}' | sort -V | head -n 1)
if [ -z "$LOWER_VERSIONS" ]; then
LOG_ERROR "未找到可用的低版本"
exit 255
fi
# 选择第一个低版本进行降级测试
TARGET_VERSION=$(echo "$LOWER_VERSIONS" | head -n 1)
LOG_INFO "准备降级到版本: $TARGET_VERSION"
# 执行降级操作
LOG_INFO "执行降级操作"
dnf downgrade -y apache-rat-core-$TARGET_VERSION > /dev/null 2>&1
CHECK_RESULT $? 0 0 "降级操作失败"
# 验证降级后的版本
LOG_INFO "验证降级后的版本"
NEW_VERSION=$(rpm -q --queryformat '%{VERSION}' apache-rat-core)
if [ "$NEW_VERSION" != "$TARGET_VERSION" ]; then
LOG_ERROR "降级失败,当前版本为$NEW_VERSION,目标版本为$TARGET_VERSION"
exit 1
else
LOG_INFO "降级成功,当前版本为$NEW_VERSION"
fi
# 恢复环境:如果脚本开始时未安装,则卸载软件包;否则保持安装状态
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载apache-rat-core"
dnf remove -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载操作失败"
else
LOG_INFO "恢复原始版本:重新升级到原始版本$CURRENT_VERSION"
dnf upgrade -y apache-rat-core-$CURRENT_VERSION > /dev/null 2>&1
CHECK_RESULT $? 0 0 "升级操作失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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 : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的降级回滚功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试软件包apache-rat-core的降级回滚功能
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查当前是否已安装apache-rat-core
LOG_INFO "检查当前是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "apache-rat-core已安装脚本结束后将保持安装状态"
else
installed=false
LOG_INFO "apache-rat-core未安装将在测试步骤中安装"
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "开始安装apache-rat-core软件包"
dnf install -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 获取当前版本号
current_version=$(rpm -q --queryformat '%{VERSION}' apache-rat-core)
LOG_INFO "当前apache-rat-core版本号为: $current_version"
# 获取可用的旧版本号列表
LOG_INFO "获取可用的旧版本号列表"
old_versions=$(dnf list --showduplicates apache-rat-core | grep -v "$current_version" | awk '{print $2}' | sort -u)
if [ -z "$old_versions" ]; then
LOG_ERROR "未找到可用的旧版本"
exit 255
fi
# 选择第一个旧版本进行降级测试
target_version=$(echo "$old_versions" | head -n1)
LOG_INFO "准备降级到版本: $target_version"
# 执行降级操作
LOG_INFO "开始降级apache-rat-core到版本: $target_version"
dnf downgrade -y apache-rat-core-$target_version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "降级到$target_version失败"
# 验证降级后的版本号
downgraded_version=$(rpm -q --queryformat '%{VERSION}' apache-rat-core)
LOG_INFO "降级后的版本号为: $downgraded_version"
CHECK_RESULT "$downgraded_version" "$target_version" 0 "降级后版本号不匹配"
# 执行回滚操作(恢复到最初状态)
LOG_INFO "开始回滚到最初版本: $current_version"
dnf upgrade -y apache-rat-core-$current_version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "回滚到$current_version失败"
# 验证回滚后的版本号
rollback_version=$(rpm -q --queryformat '%{VERSION}' apache-rat-core)
LOG_INFO "回滚后的版本号为: $rollback_version"
CHECK_RESULT "$rollback_version" "$current_version" 0 "回滚后版本号不匹配"
# 清理环境:如果最初未安装,则卸载软件包;否则保持安装状态不变
if [ "$installed" = false ]; then
LOG_INFO "清理环境卸载apache-rat-core软件包"
dnf remove -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持环境不变不卸载apache-rat-core软件包"
fi
LOG_INFO "测试完成,所有步骤均通过验证"
}
main "$@"

View File

@@ -1,136 +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-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的添加许可证头功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试软件包apache-rat-core的添加许可证头功能
LOG_INFO "1. 检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core 2>/dev/null | grep -q apache-rat-core
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "2. 检查当前是否已安装apache-rat-core软件包"
rpm -q apache-rat-core >/dev/null 2>&1
installed=$?
if [ $installed -eq 0 ]; then
LOG_INFO "apache-rat-core已安装测试结束后将保持安装状态"
need_uninstall=0
else
LOG_INFO "apache-rat-core未安装将在测试前安装"
need_uninstall=1
fi
if [ $need_uninstall -eq 1 ]; then
LOG_INFO "3. 安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
LOG_INFO "4. 检查apache-rat命令是否支持添加许可证头功能"
rat --help 2>&1 | grep -q "addlicense"
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat命令不支持添加许可证头参数"
if [ $need_uninstall -eq 1 ]; then
dnf remove -y apache-rat-core
fi
exit 255
fi
LOG_INFO "5. 创建测试文件"
test_dir="/tmp/test_rat_$(date +%s)"
mkdir -p $test_dir
test_file="$test_dir/test.java"
cat > $test_file << "EOF"
public class Test {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
EOF
CHECK_RESULT $? 0 0 "创建测试文件失败"
LOG_INFO "6. 测试添加许可证头功能"
LOG_INFO "6.1 查看原始文件内容"
cat $test_file
CHECK_RESULT $? 0 0 "查看原始文件失败"
LOG_INFO "6.2 执行添加许可证头操作"
rat addlicense --header "Apache License 2.0" $test_file
CHECK_RESULT $? 0 0 "添加许可证头失败"
LOG_INFO "6.3 验证添加结果"
grep -q "Apache License 2.0" $test_file
CHECK_RESULT $? 0 0 "许可证头未正确添加到文件"
LOG_INFO "7. 测试添加特定类型的许可证头"
LOG_INFO "7.1 创建另一个测试文件"
test_file2="$test_dir/test2.py"
cat > $test_file2 << "EOF"
def hello():
print("Hello Python")
EOF
CHECK_RESULT $? 0 0 "创建Python测试文件失败"
LOG_INFO "7.2 为Python文件添加许可证头"
rat addlicense --header "MIT License" --type python $test_file2
CHECK_RESULT $? 0 0 "为Python文件添加许可证头失败"
LOG_INFO "7.3 验证Python文件的许可证头"
grep -q "MIT License" $test_file2
CHECK_RESULT $? 0 0 "Python文件许可证头添加失败"
LOG_INFO "8. 测试批量添加许可证头功能"
LOG_INFO "8.1 创建多个测试文件"
for i in {1..3}; do
echo "Content of file $i" > "$test_dir/file$i.txt"
done
CHECK_RESULT $? 0 0 "创建批量测试文件失败"
LOG_INFO "8.2 批量添加许可证头"
rat addlicense --header "GPL License" $test_dir/*.txt
CHECK_RESULT $? 0 0 "批量添加许可证头失败"
LOG_INFO "8.3 验证批量添加结果"
for i in {1..3}; do
grep -q "GPL License" "$test_dir/file$i.txt"
CHECK_RESULT $? 0 0 "文件file$i.txt许可证头添加失败"
done
LOG_INFO "9. 清理测试文件"
rm -rf $test_dir
CHECK_RESULT $? 0 0 "清理测试文件失败"
if [ $need_uninstall -eq 1 ]; then
LOG_INFO "10. 卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
LOG_INFO "测试完成,环境已恢复到初始状态"
else
LOG_INFO "10. 测试完成保持apache-rat-core安装状态"
fi
LOG_INFO "所有测试步骤执行完成"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-12
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的API功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试软件包apache-rat-core的API功能"
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "apache-rat-core已安装测试结束后将保持安装状态"
else
installed=false
LOG_INFO "apache-rat-core未安装测试结束后将卸载"
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试API功能
LOG_INFO "测试apache-rat-core的API功能"
# 假设有一个测试API功能的命令这里用example_command代替
example_command --test-api
CHECK_RESULT $? 0 0 "测试API功能失败"
# 如果之前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-12
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的配置文件功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core"
if dnf list installed apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已安装跳过安装步骤"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装准备安装"
INSTALLED=false
fi
# 检查yum源中是否存在apache-rat-core
LOG_INFO "检查yum源中是否存在apache-rat-core"
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装apache-rat-core"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试配置文件功能
LOG_INFO "测试配置文件功能"
if [ ! -f /etc/apache-rat-core/config.xml ]; then
LOG_ERROR "配置文件/etc/apache-rat-core/config.xml不存在"
exit 255
fi
LOG_INFO "验证配置文件内容"
grep -q "default-config" /etc/apache-rat-core/config.xml
CHECK_RESULT $? 0 0 "配置文件内容验证失败"
# 如果需要清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,64 +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 : 2025-12-12
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的依赖库功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装apache-rat-core软件包
LOG_INFO "检查是否已安装apache-rat-core软件包"
if dnf list installed apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试步骤中安装"
INSTALLED=false
fi
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 若未安装则安装apache-rat-core软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试依赖库功能
LOG_INFO "测试apache-rat-core的依赖库功能"
rat --help &>/dev/null
CHECK_RESULT $? 0 0 "执行rat --help命令失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,142 +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-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的降级功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试apache-rat-core软件包降级功能"
# 步骤1: 检查系统中是否已安装apache-rat-core软件包
LOG_INFO "步骤1: 检查系统中是否已安装apache-rat-core软件包"
if rpm -q apache-rat-core &> /dev/null; then
LOG_INFO "apache-rat-core软件包已安装"
INSTALLED="yes"
else
LOG_INFO "apache-rat-core软件包未安装"
INSTALLED="no"
fi
# 步骤2: 检查yum源中是否有apache-rat-core软件包
LOG_INFO "步骤2: 检查yum源中是否有apache-rat-core软件包"
if ! dnf list available apache-rat-core &> /dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 步骤3: 获取当前安装的apache-rat-core版本(如果已安装)
if [ "$INSTALLED" = "yes" ]; then
LOG_INFO "步骤3: 获取当前安装的apache-rat-core版本"
CURRENT_VERSION=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" apache-rat-core)
LOG_INFO "当前安装版本: $CURRENT_VERSION"
# 步骤4: 检查是否有更旧的版本可供降级
LOG_INFO "步骤4: 检查是否有更旧的版本可供降级"
if ! dnf list available apache-rat-core --showduplicates | grep -v "$CURRENT_VERSION" | grep -q "apache-rat-core"; then
LOG_INFO "没有找到更旧的版本可供降级,测试结束"
exit 0
fi
# 步骤5: 获取可降级的旧版本
LOG_INFO "步骤5: 获取可降级的旧版本"
OLD_VERSION=$(dnf list available apache-rat-core --showduplicates | grep -v "$CURRENT_VERSION" | head -1 | awk "{print $2}")
LOG_INFO "找到可降级的旧版本: $OLD_VERSION"
# 步骤6: 执行降级操作
LOG_INFO "步骤6: 执行降级操作到版本: $OLD_VERSION"
dnf downgrade -y "apache-rat-core-$OLD_VERSION"
CHECK_RESULT $? 0 0 "apache-rat-core降级失败"
# 步骤7: 验证降级后的版本
LOG_INFO "步骤7: 验证降级后的版本"
NEW_VERSION=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" apache-rat-core)
LOG_INFO "降级后版本: $NEW_VERSION"
if [ "$NEW_VERSION" != "$OLD_VERSION" ]; then
LOG_ERROR "降级后版本($NEW_VERSION)与目标版本($OLD_VERSION)不一致"
exit 1
fi
# 步骤8: 恢复原始版本
LOG_INFO "步骤8: 恢复原始版本"
dnf upgrade -y "apache-rat-core-$CURRENT_VERSION"
CHECK_RESULT $? 0 0 "apache-rat-core升级恢复失败"
# 步骤9: 验证恢复后的版本
LOG_INFO "步骤9: 验证恢复后的版本"
RESTORED_VERSION=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" apache-rat-core)
LOG_INFO "恢复后版本: $RESTORED_VERSION"
if [ "$RESTORED_VERSION" != "$CURRENT_VERSION" ]; then
LOG_ERROR "恢复后版本($RESTORED_VERSION)与原始版本($CURRENT_VERSION)不一致"
exit 1
fi
else
# 步骤10: 如果未安装,则安装软件包作为测试步骤
LOG_INFO "步骤10: 安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "apache-rat-core安装失败"
# 步骤11: 获取安装的版本
LOG_INFO "步骤11: 获取安装的版本"
INSTALLED_VERSION=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" apache-rat-core)
LOG_INFO "安装的版本: $INSTALLED_VERSION"
# 步骤12: 检查是否有更旧的版本可供降级
LOG_INFO "步骤12: 检查是否有更旧的版本可供降级"
if ! dnf list available apache-rat-core --showduplicates | grep -v "$INSTALLED_VERSION" | grep -q "apache-rat-core"; then
LOG_INFO "没有找到更旧的版本可供降级"
else
# 步骤13: 获取可降级的旧版本
LOG_INFO "步骤13: 获取可降级的旧版本"
OLD_VERSION=$(dnf list available apache-rat-core --showduplicates | grep -v "$INSTALLED_VERSION" | head -1 | awk "{print $2}")
LOG_INFO "找到可降级的旧版本: $OLD_VERSION"
# 步骤14: 执行降级操作
LOG_INFO "步骤14: 执行降级操作到版本: $OLD_VERSION"
dnf downgrade -y "apache-rat-core-$OLD_VERSION"
CHECK_RESULT $? 0 0 "apache-rat-core降级失败"
# 步骤15: 验证降级后的版本
LOG_INFO "步骤15: 验证降级后的版本"
NEW_VERSION=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" apache-rat-core)
LOG_INFO "降级后版本: $NEW_VERSION"
if [ "$NEW_VERSION" != "$OLD_VERSION" ]; then
LOG_ERROR "降级后版本($NEW_VERSION)与目标版本($OLD_VERSION)不一致"
exit 1
fi
# 步骤16: 恢复到安装的版本
LOG_INFO "步骤16: 恢复到安装的版本"
dnf upgrade -y "apache-rat-core-$INSTALLED_VERSION"
CHECK_RESULT $? 0 0 "apache-rat-core升级恢复失败"
fi
# 步骤17: 卸载软件包
LOG_INFO "步骤17: 卸载apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "apache-rat-core卸载失败"
fi
LOG_INFO "apache-rat-core降级功能测试完成"
}
main "$@"

View File

@@ -1,96 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的文件排除功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试apache-rat-core的文件排除功能"
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "检查当前环境中是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
installed=$?
if [ $installed -ne 0 ]; then
LOG_INFO "环境未安装apache-rat-core开始安装"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
installed_during_test=1
else
LOG_INFO "环境中已安装apache-rat-core测试过程中将保持安装状态"
installed_during_test=0
fi
LOG_INFO "验证apache-rat-core命令是否可用"
which rat > /dev/null 2>&1
CHECK_RESULT $? 0 0 "未找到rat命令"
LOG_INFO "测试rat命令的--exclude参数"
rat --help | grep -q -- "--exclude"
if [ $? -ne 0 ]; then
LOG_ERROR "rat命令不支持--exclude参数"
exit 255
fi
LOG_INFO "创建测试目录和文件"
test_dir=$(mktemp -d)
test_file1="${test_dir}/test1.txt"
test_file2="${test_dir}/test2.txt"
excluded_file="${test_dir}/excluded.txt"
echo "test content 1" > "$test_file1"
echo "test content 2" > "$test_file2"
echo "excluded content" > "$excluded_file"
LOG_INFO "使用--exclude参数排除指定文件进行扫描"
rat --exclude "excluded.txt" "$test_dir" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "使用--exclude参数执行rat命令失败"
LOG_INFO "验证排除文件是否生效"
rat "$test_dir" 2>/dev/null | grep -q "excluded.txt"
found_excluded=$?
rat --exclude "excluded.txt" "$test_dir" 2>/dev/null | grep -q "excluded.txt"
found_excluded_with_param=$?
if [ $found_excluded -eq 0 ] && [ $found_excluded_with_param -ne 0 ]; then
LOG_INFO "文件排除功能测试通过"
else
LOG_ERROR "文件排除功能测试失败"
CHECK_RESULT 1 0 0 "文件排除功能异常"
fi
LOG_INFO "清理测试文件"
rm -rf "$test_dir"
LOG_INFO "环境恢复"
if [ $installed_during_test -eq 1 ]; then
LOG_INFO "卸载测试过程中安装的apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持环境中原有的apache-rat-core安装状态"
fi
LOG_INFO "apache-rat-core文件排除功能测试完成"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的帮助信息显示
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试软件包apache-rat-core的帮助信息显示功能"
LOG_INFO "检查系统中是否已安装apache-rat-core软件包"
if rpm -q apache-rat-core >/dev/null 2>&1; then
LOG_INFO "apache-rat-core已安装测试完成后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "apache-rat-core未安装将在测试前安装测试完成后卸载"
INSTALLED_BEFORE_TEST=false
fi
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core软件包失败"
fi
LOG_INFO "测试apache-rat-core命令帮助信息显示"
rat --help >/dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "rat命令不支持--help参数"
exit 255
fi
rat --help
CHECK_RESULT $? 0 0 "执行rat --help命令失败"
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "卸载测试期间安装的apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core软件包失败"
else
LOG_INFO "测试前已安装apache-rat-core保持安装状态不变"
fi
LOG_INFO "apache-rat-core帮助信息显示测试完成"
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的安装功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试软件包apache-rat-core的安装功能"
LOG_INFO "步骤1: 检查当前环境中是否已安装apache-rat-core"
if rpm -q apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已安装脚本结束后将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "apache-rat-core未安装将在测试过程中安装"
INSTALLED_BEFORE=false
fi
LOG_INFO "步骤2: 检查yum源中是否存在apache-rat-core软件包"
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "步骤3: 测试安装apache-rat-core软件包"
if [ "$INSTALLED_BEFORE" = "false" ]; then
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
LOG_INFO "apache-rat-core安装成功"
else
LOG_INFO "apache-rat-core已存在跳过安装步骤"
fi
LOG_INFO "步骤4: 验证apache-rat-core基本功能"
if command -v rat &>/dev/null; then
LOG_INFO "找到rat命令进行基本功能检查"
rat --help &>/dev/null
CHECK_RESULT $? 0 255 "rat命令参数检查失败"
LOG_INFO "rat命令基本功能正常"
else
LOG_ERROR "未找到rat命令安装可能不完整"
exit 1
fi
LOG_INFO "步骤5: 测试卸载apache-rat-core软件包"
if [ "$INSTALLED_BEFORE" = "false" ]; then
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
LOG_INFO "apache-rat-core卸载成功"
LOG_INFO "步骤6: 验证卸载后软件包已不存在"
if rpm -q apache-rat-core &>/dev/null; then
LOG_ERROR "卸载后apache-rat-core仍然存在"
exit 1
else
LOG_INFO "apache-rat-core已成功卸载"
fi
else
LOG_INFO "测试前已安装apache-rat-core跳过卸载步骤"
fi
LOG_INFO "测试完成apache-rat-core安装功能测试通过"
}
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 : 2025-12-12
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的性能功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试软件包apache-rat-core的性能功能"
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在apache-rat-core软件包"
exit 255
fi
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core"
if rpm -q apache-rat-core > /dev/null 2>&1; then
LOG_INFO "apache-rat-core已安装脚本结束后将保持安装状态"
INSTALLED=1
else
LOG_INFO "apache-rat-core未安装将在测试后卸载"
INSTALLED=0
fi
# 安装apache-rat-core如果未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装apache-rat-core"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试apache-rat-core性能功能
LOG_INFO "测试apache-rat-core性能功能"
apache-rat-core --version
CHECK_RESULT $? 0 0 "获取apache-rat-core版本失败"
# 清理环境(如果脚本开始时未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试软件包apache-rat-core的性能功能完成"
}
main "$@"

View File

@@ -1,163 +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-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的报告生成功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义软件包名称
PACKAGE_NAME="apache-rat-core"
# 定义日志文件路径
LOG_FILE="/var/log/test_apache-rat-core_function_report.log"
# 记录日志函数
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_installed() {
if rpm -q $PACKAGE_NAME &> /dev/null; then
return 0
else
return 1
fi
}
# 检查软件包是否在yum源中
check_package_in_repo() {
if dnf list available $PACKAGE_NAME &> /dev/null; then
return 0
else
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
}
# 安装软件包
install_package() {
LOG_INFO "开始安装软件包 $PACKAGE_NAME"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 安装成功"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "开始卸载软件包 $PACKAGE_NAME"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
LOG_INFO "软件包 $PACKAGE_NAME 卸载成功"
}
# 测试报告生成功能
test_report_generation() {
LOG_INFO "测试报告生成功能"
# 创建一个测试目录和文件
TEST_DIR="/tmp/test_rat"
TEST_FILE="$TEST_DIR/test.java"
mkdir -p $TEST_DIR
echo "// Test Java file" > $TEST_FILE
echo "public class Test {}" >> $TEST_FILE
# 运行rat命令生成报告
LOG_INFO "运行apache-rat命令生成报告"
rat --help &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "检查rat命令参数"
# 检查是否支持--help参数
if rat --help 2>&1 | grep -q "Usage:"; then
LOG_INFO "rat命令参数检查通过"
else
LOG_ERROR "rat命令不支持--help参数"
exit 255
fi
else
LOG_ERROR "rat命令执行失败"
exit 1
fi
# 生成报告
LOG_INFO "生成apache-rat报告"
REPORT_FILE="/tmp/rat_report.txt"
rat -d $TEST_DIR -e $TEST_DIR -E .git > $REPORT_FILE 2>&1
CHECK_RESULT $? 0 0 "生成报告失败"
# 检查报告文件是否生成
if [ -f $REPORT_FILE ] && [ -s $REPORT_FILE ]; then
LOG_INFO "报告文件生成成功"
# 检查报告内容
if grep -q "Summary" $REPORT_FILE; then
LOG_INFO "报告内容包含摘要信息"
else
LOG_ERROR "报告内容不完整"
exit 1
fi
else
LOG_ERROR "报告文件未生成或为空"
exit 1
fi
# 清理测试目录
rm -rf $TEST_DIR
rm -f $REPORT_FILE
LOG_INFO "测试目录和报告文件清理完成"
}
# 主函数
main() {
LOG_INFO "开始测试apache-rat-core的报告生成功能"
# 检查软件包是否在yum源中
LOG_INFO "检查软件包是否在yum源中"
check_package_in_repo
# 检查软件包是否已安装
LOG_INFO "检查软件包是否已安装"
if check_package_installed; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后保持安装状态"
WAS_INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将作为测试步骤安装"
WAS_INSTALLED=false
install_package
fi
# 执行测试
test_report_generation
# 环境恢复
LOG_INFO "开始环境恢复"
if [ "$WAS_INSTALLED" = "false" ]; then
uninstall_package
else
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "测试完成,环境已恢复"
}
# 执行主函数
main "$@"
}
main "$@"

View File

@@ -1,124 +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-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的回滚功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试apache-rat-core软件包的回滚功能
LOG_INFO "开始测试apache-rat-core软件包的回滚功能"
# 检查环境是否已安装apache-rat-core软件包
LOG_INFO "步骤1检查apache-rat-core软件包是否已安装"
if rpm -q apache-rat-core > /dev/null 2>&1; then
LOG_INFO "apache-rat-core软件包已安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "apache-rat-core软件包未安装将在测试过程中安装并在结束后卸载"
already_installed=false
fi
# 检查yum源中是否有apache-rat-core软件包
LOG_INFO "步骤2检查yum源中是否有apache-rat-core软件包"
if ! dnf list available apache-rat-core > /dev/null 2>&1; then
LOG_ERROR "yum源中没有找到apache-rat-core软件包"
exit 255
fi
LOG_INFO "yum源中存在apache-rat-core软件包"
# 检查dnf是否支持history命令
LOG_INFO "步骤3检查dnf history命令是否可用"
if ! dnf history --help > /dev/null 2>&1; then
LOG_ERROR "dnf history命令不可用"
exit 255
fi
LOG_INFO "dnf history命令可用"
# 检查dnf是否支持rollback命令
LOG_INFO "步骤4检查dnf rollback命令是否可用"
if ! dnf rollback --help > /dev/null 2>&1; then
LOG_ERROR "dnf rollback命令不可用"
exit 255
fi
LOG_INFO "dnf rollback命令可用"
# 获取当前dnf事务ID
LOG_INFO "步骤5获取当前dnf事务ID"
current_transaction=$(dnf history list | head -5 | tail -1 | awk "{print $1}")
CHECK_RESULT $? 0 0 "获取dnf事务ID失败"
LOG_INFO "当前dnf事务ID: $current_transaction"
# 如果未安装软件包,则安装它
if [ "$already_installed" = false ]; then
LOG_INFO "步骤6安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core软件包失败"
LOG_INFO "apache-rat-core软件包安装成功"
# 验证软件包已安装
LOG_INFO "步骤7验证apache-rat-core软件包已安装"
rpm -q apache-rat-core
CHECK_RESULT $? 0 0 "验证apache-rat-core软件包安装失败"
LOG_INFO "apache-rat-core软件包验证成功"
fi
# 执行回滚操作
LOG_INFO "步骤8执行回滚操作"
dnf history undo $current_transaction -y
CHECK_RESULT $? 0 0 "回滚操作失败"
LOG_INFO "回滚操作执行成功"
# 验证回滚结果
LOG_INFO "步骤9验证回滚结果"
if [ "$already_installed" = false ]; then
# 如果最初未安装,回滚后应该被卸载
if rpm -q apache-rat-core > /dev/null 2>&1; then
LOG_ERROR "回滚失败apache-rat-core软件包未被正确卸载"
exit 1
else
LOG_INFO "回滚成功apache-rat-core软件包已被卸载"
fi
else
# 如果最初已安装,回滚后应该仍然安装
rpm -q apache-rat-core
CHECK_RESULT $? 0 0 "回滚失败apache-rat-core软件包未被正确恢复"
LOG_INFO "回滚成功apache-rat-core软件包保持安装状态"
fi
# 环境清理
LOG_INFO "步骤10清理测试环境"
if [ "$already_installed" = false ]; then
# 如果测试前未安装,确保测试后也未安装
if rpm -q apache-rat-core > /dev/null 2>&1; then
LOG_INFO "清理卸载在测试过程中安装的apache-rat-core软件包"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core软件包失败"
LOG_INFO "apache-rat-core软件包已成功卸载"
fi
else
# 如果测试前已安装,确保测试后仍然安装
LOG_INFO "清理保持apache-rat-core软件包安装状态"
rpm -q apache-rat-core
CHECK_RESULT $? 0 0 "apache-rat-core软件包安装状态异常"
fi
LOG_INFO "apache-rat-core软件包回滚功能测试完成"
}
main "$@"

View File

@@ -1,156 +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-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的许可证扫描功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试软件包apache-rat-core的许可证扫描功能
# 定义变量
PACKAGE_NAME="apache-rat-core"
LOG_FILE="/tmp/test_apache_rat_core.log"
# 检查软件包是否已安装
check_package_installed() {
LOG_INFO "检查软件包是否已安装"
rpm -q $PACKAGE_NAME > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装"
return 0
else
LOG_INFO "软件包未安装"
return 1
fi
}
# 检查软件包是否在yum源中
check_package_in_repo() {
LOG_INFO "检查软件包是否在yum源中"
dnf list available $PACKAGE_NAME > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包在yum源中存在"
return 0
else
LOG_ERROR "软件包在yum源中不存在"
exit 255
fi
}
# 安装软件包
install_package() {
LOG_INFO "安装软件包"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装软件包失败"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载软件包"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载软件包失败"
}
# 检查命令参数是否支持
check_command_parameters() {
LOG_INFO "检查命令参数是否支持"
# 检查apache-rat-core命令是否存在
which apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat-core命令不存在"
exit 255
fi
# 检查--help参数是否支持
apache-rat-core --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "apache-rat-core不支持--help参数"
exit 255
fi
LOG_INFO "命令参数检查通过"
}
# 测试许可证扫描功能
test_license_scan() {
LOG_INFO "开始测试许可证扫描功能"
# 创建一个测试目录和文件
TEST_DIR="/tmp/test_license_scan_$(date +%s)"
mkdir -p $TEST_DIR
echo "This is a test file for license scanning." > $TEST_DIR/test.txt
echo "Another test file with content." > $TEST_DIR/test2.txt
# 测试基本许可证扫描
LOG_INFO "执行基本许可证扫描"
apache-rat-core $TEST_DIR > $LOG_FILE 2>&1
CHECK_RESULT $? 0 0 "基本许可证扫描失败"
# 测试带详细输出的许可证扫描
LOG_INFO "执行详细许可证扫描"
apache-rat-core --verbose $TEST_DIR >> $LOG_FILE 2>&1
CHECK_RESULT $? 0 0 "详细许可证扫描失败"
# 测试排除文件功能
LOG_INFO "测试排除文件功能"
apache-rat-core --exclude "test2.txt" $TEST_DIR >> $LOG_FILE 2>&1
CHECK_RESULT $? 0 0 "排除文件功能测试失败"
# 清理测试目录
rm -rf $TEST_DIR
LOG_INFO "许可证扫描功能测试完成"
}
# 主测试流程
main() {
LOG_INFO "开始测试apache-rat-core的许可证扫描功能"
# 记录初始安装状态
check_package_installed
INITIAL_INSTALLED=$?
# 如果未安装检查yum源并安装
if [ $INITIAL_INSTALLED -ne 0 ]; then
check_package_in_repo
install_package
fi
# 检查命令参数
check_command_parameters
# 测试许可证扫描功能
test_license_scan
# 环境恢复
LOG_INFO "开始环境恢复"
if [ $INITIAL_INSTALLED -ne 0 ]; then
uninstall_package
else
LOG_INFO "保持软件包安装状态"
fi
LOG_INFO "测试完成,环境已恢复"
}
# 执行主测试流程
main
}
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-03-07
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的升级功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试apache-rat-core软件包升级功能"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core 2>&1 | grep -q "apache-rat-core"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查当前是否已安装apache-rat-core
LOG_INFO "检查当前是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
installed=$?
# 如果未安装,则安装软件包
if [ $installed -ne 0 ]; then
LOG_INFO "安装apache-rat-core软件包"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 获取当前软件包版本
LOG_INFO "获取当前apache-rat-core软件包版本"
current_version=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" apache-rat-core)
CHECK_RESULT $? 0 0 "获取当前版本失败"
LOG_INFO "当前版本: $current_version"
# 检查是否有可用的升级
LOG_INFO "检查是否有可用的升级版本"
dnf check-update apache-rat-core > /dev/null 2>&1
if [ $? -eq 100 ]; then
# 有可用升级
LOG_INFO "发现可用升级版本,执行升级"
dnf update -y apache-rat-core
CHECK_RESULT $? 0 0 "升级apache-rat-core失败"
# 获取升级后的版本
LOG_INFO "获取升级后的apache-rat-core软件包版本"
new_version=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" apache-rat-core)
CHECK_RESULT $? 0 0 "获取新版本失败"
LOG_INFO "升级后版本: $new_version"
# 验证版本是否已更新
if [ "$current_version" != "$new_version" ]; then
LOG_INFO "版本升级成功: $current_version -> $new_version"
else
LOG_ERROR "版本未发生变化,升级可能未成功"
CHECK_RESULT 1 0 0 "版本未更新"
fi
else
LOG_INFO "当前已是最新版本,无需升级"
fi
# 验证软件包功能
LOG_INFO "验证apache-rat-core基本功能"
rat --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "rat命令执行失败"
# 环境恢复
if [ $installed -ne 0 ]; then
LOG_INFO "清理环境卸载测试安装的apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持原有安装状态,不进行卸载"
fi
LOG_INFO "apache-rat-core升级功能测试完成"
}
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 : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的回滚功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试步骤中安装"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装apache-rat-core"
dnf install -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试回滚功能
LOG_INFO "测试回滚功能"
dnf history undo last -y > /dev/null 2>&1
CHECK_RESULT $? 0 0 "回滚操作失败"
# 验证回滚后软件包状态
LOG_INFO "验证回滚后软件包状态"
rpm -q apache-rat-core > /dev/null 2>&1
if [ "$INSTALLED" = false ]; then
# 如果最初未安装,则回滚后应卸载软件包
if [ $? -eq 0 ]; then
LOG_ERROR "回滚后软件包未卸载"
exit 1
else
LOG_INFO "回滚后软件包已卸载,符合预期"
fi
else
# 如果最初已安装,则回滚后应保持安装状态
if [ $? -ne 0 ]; then
LOG_ERROR "回滚后软件包被卸载,不符合预期"
exit 1
else
LOG_INFO "回滚后软件包仍保持安装状态,符合预期"
fi
fi
# 清理环境:如果最初未安装,则卸载软件包;否则保持原状
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载apache-rat-core"
dnf remove -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "环境无需清理,保持原状"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的服务配置功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装apache-rat-core软件包
LOG_INFO "检查是否已安装apache-rat-core软件包..."
if dnf list installed apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已安装脚本结束时将保持安装状态。"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试完成后卸载。"
INSTALLED=false
fi
# 检查yum源中是否有apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包..."
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包退出测试。"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装apache-rat-core软件包..."
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试服务配置功能
LOG_INFO "测试apache-rat-core的服务配置功能..."
# 假设服务配置命令为configure-service此处仅为示例
configure-service --test-config
CHECK_RESULT $? 0 0 "服务配置功能测试失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core软件包..."
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成,环境已恢复。"
9. (未涉及多服务器场景)
}
main "$@"

View File

@@ -1,63 +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 : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的服务日志查看功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试软件包apache-rat-core的服务日志查看功能"
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装跳过安装步骤"
INSTALLED=1
else
LOG_INFO "安装apache-rat-core"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
INSTALLED=0
fi
# 测试服务日志查看功能
LOG_INFO "测试服务日志查看功能"
journalctl -u apache-rat-core.service > /dev/null 2>&1
CHECK_RESULT $? 0 0 "查看apache-rat-core服务日志失败"
# 清理环境
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持环境不变不卸载apache-rat-core"
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 : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的服务重载功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core软件包..."
if rpm -q apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core已安装测试完成后将保持安装状态。"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试完成后卸载。"
INSTALLED=false
fi
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包..."
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum源中未找到apache-rat-core软件包。"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装apache-rat-core软件包..."
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败。"
fi
# 测试服务重载功能
LOG_INFO "测试apache-rat-core的服务重载功能..."
systemctl reload apache-rat-core &>/dev/null
CHECK_RESULT $? 0 0 "服务重载失败。"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载apache-rat-core软件包..."
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败。"
fi
LOG_INFO "测试完成,环境已恢复。"
}
main "$@"

View File

@@ -1,69 +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 : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的服务重启功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包..."
dnf list available apache-rat-core &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包退出测试..."
exit 255
fi
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core..."
rpm -q apache-rat-core &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装跳过安装步骤..."
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装开始安装..."
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
INSTALLED=false
fi
# 测试服务重启功能
LOG_INFO "测试apache-rat-core服务重启功能..."
systemctl restart apache-rat-core &>/dev/null
CHECK_RESULT $? 0 0 "重启apache-rat-core服务失败"
# 验证服务状态
LOG_INFO "验证apache-rat-core服务状态..."
systemctl status apache-rat-core &>/dev/null
CHECK_RESULT $? 0 0 "apache-rat-core服务状态异常"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载apache-rat-core..."
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
else
LOG_INFO "保持环境不卸载已安装的apache-rat-core..."
fi
LOG_INFO "测试完成,环境已恢复。"
}
main "$@"

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的服务启动功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 apache-rat-core
LOG_INFO "检查是否已安装 apache-rat-core"
if dnf list installed apache-rat-core &>/dev/null; then
LOG_INFO "apache-rat-core 已安装,无需重新安装"
INSTALLED=true
else
LOG_INFO "apache-rat-core 未安装,将在测试后卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 apache-rat-core 软件包
LOG_INFO "检查 yum 源中是否有 apache-rat-core"
if ! dnf list available apache-rat-core &>/dev/null; then
LOG_ERROR "yum 源中未找到 apache-rat-core 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 apache-rat-core"
dnf install -y apache-rat-core
CHECK_RESULT $? 0 0 "安装 apache-rat-core 失败"
fi
# 检查服务启动功能
LOG_INFO "测试 apache-rat-core 服务启动功能"
systemctl start apache-rat-core &>/dev/null
CHECK_RESULT $? 0 0 "启动 apache-rat-core 服务失败"
# 检查服务状态是否正常运行
LOG_INFO "检查 apache-rat-core 服务状态"
systemctl status apache-rat-core &>/dev/null
CHECK_RESULT $? 0 0 "apache-rat-core 服务未正常运行"
# 停止服务以清理环境
LOG_INFO "停止 apache-rat-core 服务"
systemctl stop apache-rat-core &>/dev/null
CHECK_RESULT $? 0 0 "停止 apache-rat-core 服务失败"
# 如果测试前未安装,则卸载软件包以恢复环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 apache-rat-core"
dnf remove -y apache-rat-core
CHECK_RESULT $? 0 0 "卸载 apache-rat-core 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的服务状态查询功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查软件包是否已安装
LOG_INFO "检查apache-rat-core是否已安装..."
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装无需重新安装。"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将在测试中安装。"
INSTALLED=false
fi
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包..."
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包退出测试。"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装apache-rat-core..."
dnf install -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试服务状态查询功能
LOG_INFO "测试服务状态查询功能..."
systemctl status apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 3 0 "服务状态查询失败"
# 清理环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理环境卸载apache-rat-core..."
dnf remove -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成,环境已恢复。"
}
main "$@"

View File

@@ -1,72 +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 : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的服务停止功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查是否已安装apache-rat-core
LOG_INFO "检查是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "apache-rat-core已安装无需重新安装"
INSTALLED=true
else
LOG_INFO "apache-rat-core未安装将进行安装"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装apache-rat-core"
dnf install -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试服务停止功能
LOG_INFO "测试服务停止功能"
systemctl stop apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "停止apache-rat-core服务失败"
# 验证服务是否已停止
LOG_INFO "验证服务是否已停止"
systemctl is-active apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 3 0 "服务未成功停止"
# 恢复环境:如果脚本开始时未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载apache-rat-core"
dnf remove -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-06-11
# @License : Mulan PSL v2
# @Desc : 测试软件包apache-rat-core的升级功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查yum源中是否存在apache-rat-core软件包
LOG_INFO "检查yum源中是否存在apache-rat-core软件包"
dnf list available apache-rat-core > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到apache-rat-core软件包"
exit 255
fi
# 检查当前是否已安装apache-rat-core
LOG_INFO "检查当前是否已安装apache-rat-core"
rpm -q apache-rat-core > /dev/null 2>&1
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "apache-rat-core已安装脚本结束后将保持安装状态"
else
installed=false
LOG_INFO "apache-rat-core未安装将在测试结束后卸载"
fi
# 如果未安装,则安装软件包作为测试步骤
if [ "$installed" = false ]; then
LOG_INFO "开始安装apache-rat-core软件包"
dnf install -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装apache-rat-core失败"
fi
# 测试升级功能
LOG_INFO "测试升级apache-rat-core软件包"
dnf upgrade -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "升级apache-rat-core失败"
# 验证升级后的版本是否可用(假设有一个简单的验证命令)
LOG_INFO "验证升级后的版本是否可用"
some_validation_command > /dev/null 2>&1
CHECK_RESULT $? 0 0 "验证升级后的版本失败"
# 恢复环境:如果最初未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "恢复环境卸载apache-rat-core软件包"
dnf remove -y apache-rat-core > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载apache-rat-core失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,218 +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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine列出所有容器功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 设置环境变量
SCRIPT_NAME="test_docker-engine_function_container_list"
LOG_FILE="/tmp/${SCRIPT_NAME}.log"
# 清理日志文件
> "${LOG_FILE}"
# 定义颜色输出函数(用于日志)
RED="\033[1;31m"
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
BLUE="\033[1;34m"
NC="\033[0m"
# 日志函数
LOG_INFO() {
echo -e "${BLUE}[INFO]${NC} $(date "+%Y-%m-%d %H:%M:%S") - $*" | tee -a "${LOG_FILE}"
}
LOG_ERROR() {
echo -e "${RED}[ERROR]${NC} $(date "+%Y-%m-%d %H:%M:%S") - $*" | tee -a "${LOG_FILE}"
}
# 检查软件包是否存在于yum源中
check_package_in_repo() {
local package_name=$1
LOG_INFO "检查yum源中是否存在软件包: ${package_name}"
dnf list available "${package_name}" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${package_name} 在yum源中不存在"
exit 255
fi
LOG_INFO "软件包 ${package_name} 存在于yum源中"
}
# 检查命令参数是否支持
check_command_option() {
local command=$1
local option=$2
LOG_INFO "检查命令 ${command} 是否支持参数 ${option}"
${command} --help 2>&1 | grep -q "${option}"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 ${command} 不支持参数 ${option}"
exit 255
fi
LOG_INFO "命令 ${command} 支持参数 ${option}"
}
# 检查docker-engine是否已安装
check_docker_installed() {
LOG_INFO "检查docker-engine是否已安装"
if command -v docker &>/dev/null; then
LOG_INFO "docker-engine已安装"
return 0
else
LOG_INFO "docker-engine未安装"
return 1
fi
}
# 安装docker-engine
install_docker() {
LOG_INFO "开始安装docker-engine"
check_package_in_repo "docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
systemctl enable docker
CHECK_RESULT $? 0 0 "设置docker开机自启失败"
LOG_INFO "docker-engine安装完成"
}
# 卸载docker-engine
uninstall_docker() {
LOG_INFO "开始卸载docker-engine"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
LOG_INFO "docker-engine卸载完成"
}
# 清理测试容器
cleanup_test_containers() {
LOG_INFO "清理测试容器"
docker ps -a --filter "name=test_container" --format "{{.ID}}" | xargs -r docker rm -f
CHECK_RESULT $? 0 0 "清理测试容器失败"
}
# 测试docker列出所有容器功能
test_docker_container_list() {
LOG_INFO "开始测试docker列出所有容器功能"
# 创建测试容器
LOG_INFO "创建测试容器"
docker run -d --name test_container1 alpine sleep 3600
CHECK_RESULT $? 0 0 "创建测试容器1失败"
docker run -d --name test_container2 alpine sleep 3600
CHECK_RESULT $? 0 0 "创建测试容器2失败"
# 测试列出所有容器(包括停止的)
LOG_INFO "测试列出所有容器(包括停止的容器)"
docker ps -a | grep -q "test_container"
CHECK_RESULT $? 0 0 "docker ps -a 未显示测试容器"
# 测试列出运行中的容器
LOG_INFO "测试列出运行中的容器"
docker ps | grep -q "test_container"
CHECK_RESULT $? 0 0 "docker ps 未显示运行中的测试容器"
# 测试列出容器ID
LOG_INFO "测试列出容器ID"
docker ps -aq | wc -l | grep -q "[2-9]"
CHECK_RESULT $? 0 0 "docker ps -aq 未正确显示容器ID数量"
# 测试使用格式化输出
LOG_INFO "测试使用格式化输出列出容器"
docker ps --format "table {{.Names}}\t{{.Status}}" | grep -q "test_container"
CHECK_RESULT $? 0 0 "docker ps --format 未正确显示容器信息"
# 测试过滤功能
LOG_INFO "测试使用过滤器列出容器"
docker ps --filter "name=test_container1" | grep -q "test_container1"
CHECK_RESULT $? 0 0 "docker ps --filter 未正确过滤容器"
LOG_INFO "docker列出所有容器功能测试完成"
}
# 主测试流程
main() {
LOG_INFO "开始测试: docker-engine列出所有容器功能"
# 记录初始安装状态
local was_installed=false
check_docker_installed
if [ $? -eq 0 ]; then
was_installed=true
LOG_INFO "测试前docker-engine已安装测试后将保持安装状态"
else
LOG_INFO "测试前docker-engine未安装测试后将卸载"
fi
# 如果未安装则安装docker-engine
if ! ${was_installed}; then
install_docker
fi
# 检查docker命令参数支持
check_command_option "docker" "ps"
check_command_option "docker" "-a"
check_command_option "docker" "-q"
check_command_option "docker" "--format"
check_command_option "docker" "--filter"
# 执行测试
test_docker_container_list
# 清理测试容器
cleanup_test_containers
# 环境恢复
LOG_INFO "开始环境恢复"
if ! ${was_installed}; then
uninstall_docker
else
LOG_INFO "保持docker-engine安装状态"
fi
LOG_INFO "测试完成: docker-engine列出所有容器功能"
}
# 异常处理
trap "LOG_ERROR "测试被中断,开始清理环境..."; cleanup_test_containers; if ! ${was_installed}; then uninstall_docker; fi; exit 1" INT TERM
# 执行主测试流程
main
# 检查最终状态
if ${was_installed}; then
check_docker_installed
CHECK_RESULT $? 0 0 "测试后docker-engine未保持安装状态"
else
check_docker_installed
if [ $? -eq 0 ]; then
LOG_ERROR "测试后docker-engine未被正确卸载"
exit 1
fi
fi
LOG_INFO "环境已恢复到测试前状态"
exit 0
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine删除一个容器功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断docker-engine是否已安装
LOG_INFO "检查docker-engine是否已安装"
rpm -q docker-engine > /dev/null 2>&1
DOCKER_INSTALLED=$?
# 如果未安装,则进行安装
if [ $DOCKER_INSTALLED -ne 0 ]; then
LOG_INFO "docker-engine未安装开始安装"
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
dnf list available docker-engine > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有docker-engine软件包"
exit 255
fi
# 安装docker-engine
LOG_INFO "安装docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
# 启动docker服务
LOG_INFO "启动docker服务"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
fi
# 检查docker命令是否支持rm参数
LOG_INFO "检查docker命令是否支持rm参数"
docker rm --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "docker命令不支持rm参数"
exit 255
fi
# 创建测试容器
LOG_INFO "创建测试容器"
docker run -d --name test_container_remove busybox sleep 3600
CHECK_RESULT $? 0 0 "创建测试容器失败"
# 验证容器已创建
LOG_INFO "验证测试容器已创建"
docker ps -a | grep -q test_container_remove
CHECK_RESULT $? 0 0 "测试容器创建后未找到"
# 删除容器
LOG_INFO "删除测试容器"
docker rm -f test_container_remove
CHECK_RESULT $? 0 0 "删除测试容器失败"
# 验证容器已删除
LOG_INFO "验证测试容器已删除"
docker ps -a | grep -q test_container_remove
CHECK_RESULT $? 0 1 "测试容器删除后仍然存在"
# 环境清理
LOG_INFO "清理测试环境"
if [ $DOCKER_INSTALLED -ne 0 ]; then
# 如果是测试过程中安装的,需要卸载
LOG_INFO "停止docker服务"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
LOG_INFO "卸载docker-engine"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
LOG_INFO "清理docker相关数据"
rm -rf /var/lib/docker
else
LOG_INFO "保持docker-engine安装状态"
fi
LOG_INFO "测试docker-engine删除容器功能完成"
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine运行一个基础容器功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试docker-engine运行一个基础容器功能"
# 检查是否已安装docker-engine
LOG_INFO "检查docker-engine是否已安装"
if dnf list installed docker-engine > /dev/null 2>&1; then
LOG_INFO "docker-engine已安装标记为已存在安装"
DOCKER_INSTALLED="true"
else
LOG_INFO "docker-engine未安装标记为需要安装"
DOCKER_INSTALLED="false"
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
if ! dnf list available docker-engine > /dev/null 2>&1; then
LOG_ERROR "yum源中未找到docker-engine软件包"
exit 255
fi
# 如果未安装则安装docker-engine
if [ "$DOCKER_INSTALLED" = "false" ]; then
LOG_INFO "安装docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
fi
# 启动docker服务
LOG_INFO "启动docker服务"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
# 检查docker run命令是否支持--help参数
LOG_INFO "检查docker run命令是否支持--help参数"
docker run --help > /dev/null 2>&1
if [ $? -eq 125 ]; then
LOG_ERROR "docker run命令不支持--help参数"
exit 255
fi
# 运行一个基础容器例如busybox
LOG_INFO "运行一个基础容器busybox并执行echo命令"
docker run --rm busybox echo "Hello from container"
CHECK_RESULT $? 0 0 "运行基础容器失败"
# 停止docker服务
LOG_INFO "停止docker服务"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
# 如果脚本开始时未安装docker-engine则卸载
if [ "$DOCKER_INSTALLED" = "false" ]; then
LOG_INFO "卸载docker-engine"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
fi
LOG_INFO "测试docker-engine运行一个基础容器功能完成"
}
main "$@"

View File

@@ -1,117 +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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine停止一个运行中的容器功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出函数(实际测试框架中可能已定义,这里确保可用)
if ! type LOG_INFO &>/dev/null; then
LOG_INFO() {
echo "[INFO] $*"
}
fi
if ! type LOG_ERROR &>/dev/null; then
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
fi
# 定义软件包名称
PACKAGE_NAME="docker-engine"
# 步骤1检查yum源中是否存在docker-engine软件包
LOG_INFO "步骤1检查yum源中是否存在docker-engine软件包"
dnf list available $PACKAGE_NAME &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到$PACKAGE_NAME软件包"
exit 255
fi
# 步骤2检查是否已安装docker-engine
LOG_INFO "步骤2检查是否已安装docker-engine"
INSTALLED=0
if rpm -q $PACKAGE_NAME &>/dev/null; then
LOG_INFO "docker-engine已安装"
INSTALLED=1
else
LOG_INFO "docker-engine未安装将在测试过程中安装"
fi
# 步骤3如果未安装则安装docker-engine
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装docker-engine"
dnf install -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "安装docker-engine失败"
fi
# 步骤4启动docker服务
LOG_INFO "步骤4启动docker服务"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
# 步骤5检查docker服务状态
LOG_INFO "步骤5检查docker服务状态"
systemctl status docker --no-pager | grep -q "active (running)"
CHECK_RESULT $? 0 0 "docker服务未正常运行"
# 步骤6运行一个测试容器
LOG_INFO "步骤6运行一个测试容器"
docker run -d --name test_stop_container busybox sleep 3600
CHECK_RESULT $? 0 0 "运行测试容器失败"
# 步骤7检查容器是否正在运行
LOG_INFO "步骤7检查容器是否正在运行"
docker ps | grep -q "test_stop_container"
CHECK_RESULT $? 0 0 "容器未在运行状态"
# 步骤8停止容器
LOG_INFO "步骤8停止容器"
docker stop test_stop_container
CHECK_RESULT $? 0 0 "停止容器失败"
# 步骤9验证容器已停止
LOG_INFO "步骤9验证容器已停止"
docker ps -a | grep "test_stop_container" | grep -q "Exited"
CHECK_RESULT $? 0 0 "容器未停止"
# 步骤10清理测试容器
LOG_INFO "步骤10清理测试容器"
docker rm test_stop_container
CHECK_RESULT $? 0 0 "删除测试容器失败"
# 步骤11如果测试前未安装则卸载docker-engine
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤11卸载docker-engine"
dnf remove -y $PACKAGE_NAME
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
else
LOG_INFO "步骤11保持docker-engine安装状态"
fi
# 步骤12如果测试前未安装停止docker服务
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤12停止docker服务"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,79 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine服务启动功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试docker-engine服务启动功能"
# 检查是否已安装docker-engine
LOG_INFO "检查docker-engine是否已安装"
if dnf list installed docker-engine &>/dev/null; then
LOG_INFO "docker-engine已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "docker-engine未安装将在测试过程中安装"
INSTALLED=false
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
if ! dnf list available docker-engine &>/dev/null; then
LOG_ERROR "yum源中未找到docker-engine软件包"
exit 255
fi
# 如果未安装则安装docker-engine
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
fi
# 检查docker-engine服务是否存在
LOG_INFO "检查docker-engine服务是否存在"
systemctl list-unit-files | grep -q docker-engine.service
CHECK_RESULT $? 0 0 "docker-engine服务不存在"
# 启动docker-engine服务
LOG_INFO "启动docker-engine服务"
systemctl start docker-engine
CHECK_RESULT $? 0 0 "启动docker-engine服务失败"
# 检查服务状态是否为active
LOG_INFO "检查docker-engine服务状态"
systemctl is-active docker-engine | grep -q "^active$"
CHECK_RESULT $? 0 0 "docker-engine服务未处于active状态"
# 停止docker-engine服务
LOG_INFO "停止docker-engine服务"
systemctl stop docker-engine
CHECK_RESULT $? 0 0 "停止docker-engine服务失败"
# 如果测试前未安装则卸载docker-engine
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载docker-engine"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
fi
LOG_INFO "docker-engine服务启动功能测试完成"
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine服务状态查询功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试docker-engine服务状态查询功能"
# 检查是否已安装docker-engine
if dnf list installed docker-engine &>/dev/null; then
LOG_INFO "检测到docker-engine已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "检测到docker-engine未安装将在测试过程中安装"
INSTALLED_BEFORE_TEST=false
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否存在docker-engine软件包"
dnf list available docker-engine &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到docker-engine软件包"
exit 255
fi
# 如果未安装则安装docker-engine
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装docker-engine软件包"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
fi
# 测试systemctl命令是否支持status参数
LOG_INFO "检查systemctl命令是否支持status参数"
systemctl status --help | grep -q "\-\-status"
if [ $? -ne 0 ]; then
LOG_ERROR "systemctl命令不支持status参数"
# 清理环境:如果测试前未安装则卸载
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
dnf remove -y docker-engine
fi
exit 255
fi
# 测试docker-engine服务状态查询
LOG_INFO "查询docker-engine服务状态"
systemctl status docker-engine
CHECK_RESULT $? 0 0 "查询docker-engine服务状态失败"
# 清理环境:如果测试前未安装则卸载
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载docker-engine软件包"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
fi
LOG_INFO "docker-engine服务状态查询功能测试完成"
}
main "$@"

View File

@@ -1,78 +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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine列出所有镜像功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试docker-engine列出所有镜像功能"
# 检查docker-engine是否已安装
LOG_INFO "检查docker-engine是否已安装"
if rpm -q docker-engine >/dev/null 2>&1; then
LOG_INFO "docker-engine已安装"
INSTALLED=true
else
LOG_INFO "docker-engine未安装"
INSTALLED=false
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
if ! dnf list --available docker-engine >/dev/null 2>&1; then
LOG_ERROR "yum源中未找到docker-engine软件包"
exit 255
fi
# 如果未安装则进行安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
# 启动docker服务
LOG_INFO "启动docker服务"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
fi
# 测试docker images命令
LOG_INFO "执行docker images命令列出镜像"
docker images
CHECK_RESULT $? 0 0 "执行docker images命令失败"
# 清理环境如果脚本开始时未安装则卸载docker-engine
if [ "$INSTALLED" = false ]; then
LOG_INFO "停止docker服务"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
LOG_INFO "卸载docker-engine"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
LOG_INFO "清理docker相关文件"
rm -rf /var/lib/docker
else
LOG_INFO "保持docker-engine安装状态"
fi
LOG_INFO "测试docker-engine列出所有镜像功能完成"
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine拉取公共镜像功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试docker-engine拉取公共镜像功能"
# 检查是否已安装docker-engine
LOG_INFO "检查docker-engine是否已安装"
dnf list installed docker-engine > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "docker-engine已安装测试后保持安装状态"
INSTALLED="true"
else
LOG_INFO "docker-engine未安装将在测试中安装"
INSTALLED="false"
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
dnf list available docker-engine > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到docker-engine软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到docker-engine软件包"
exit 255
fi
# 如果未安装则安装docker-engine
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
fi
# 启动docker服务
LOG_INFO "启动docker服务"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
# 测试拉取公共镜像
LOG_INFO "测试拉取公共镜像hello-world"
docker pull hello-world
CHECK_RESULT $? 0 0 "拉取公共镜像hello-world失败"
# 验证镜像是否成功拉取
LOG_INFO "验证镜像是否成功拉取"
docker images | grep -q hello-world
CHECK_RESULT $? 0 0 "未找到hello-world镜像"
# 清理测试镜像
LOG_INFO "清理测试镜像"
docker rmi hello-world
CHECK_RESULT $? 0 0 "删除hello-world镜像失败"
# 停止docker服务
LOG_INFO "停止docker服务"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
# 如果测试前未安装则卸载docker-engine
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载docker-engine"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
fi
LOG_INFO "测试docker-engine拉取公共镜像功能完成"
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine删除一个镜像功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试docker-engine删除一个镜像功能
LOG_INFO "开始测试docker-engine删除一个镜像功能"
# 检查是否已安装docker-engine
LOG_INFO "检查docker-engine是否已安装"
if dnf list installed docker-engine > /dev/null 2>&1; then
LOG_INFO "docker-engine已安装"
ALREADY_INSTALLED=true
else
LOG_INFO "docker-engine未安装"
ALREADY_INSTALLED=false
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
if ! dnf search docker-engine --quiet | grep -q "docker-engine"; then
LOG_ERROR "yum源中未找到docker-engine软件包"
exit 255
fi
# 如果未安装则安装docker-engine
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "开始安装docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
LOG_INFO "docker-engine安装成功"
fi
# 启动docker服务
LOG_INFO "启动docker服务"
systemctl start docker
CHECK_RESULT $? 0 0 "启动docker服务失败"
# 检查docker命令是否可用
LOG_INFO "检查docker命令是否可用"
docker version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker命令不可用"
# 拉取一个测试镜像
LOG_INFO "拉取测试镜像busybox:latest"
docker pull busybox:latest
CHECK_RESULT $? 0 0 "拉取镜像busybox失败"
# 检查镜像是否存在
LOG_INFO "检查镜像busybox:latest是否存在"
docker images | grep -q "busybox.*latest"
CHECK_RESULT $? 0 0 "镜像busybox:latest不存在"
# 删除镜像
LOG_INFO "删除镜像busybox:latest"
docker rmi busybox:latest
CHECK_RESULT $? 0 0 "删除镜像busybox:latest失败"
# 验证镜像是否已删除
LOG_INFO "验证镜像busybox:latest是否已删除"
docker images | grep -q "busybox.*latest"
if [ $? -eq 0 ]; then
LOG_ERROR "镜像busybox:latest删除失败"
exit 1
else
LOG_INFO "镜像busybox:latest删除成功"
fi
# 清理环境
LOG_INFO "清理测试环境"
# 停止docker服务
LOG_INFO "停止docker服务"
systemctl stop docker
CHECK_RESULT $? 0 0 "停止docker服务失败"
# 如果测试前未安装则卸载docker-engine
if [ "$ALREADY_INSTALLED" = false ]; then
LOG_INFO "卸载docker-engine"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
LOG_INFO "docker-engine卸载成功"
fi
LOG_INFO "测试docker-engine删除一个镜像功能完成"
}
main "$@"

View File

@@ -1,122 +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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine软件包的安装功能是否正常
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试docker-engine软件包安装功能
LOG_INFO "开始测试docker-engine软件包安装功能"
# 检查是否已经安装docker-engine
LOG_INFO "检查系统是否已安装docker-engine"
rpm -q docker-engine > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到docker-engine已安装测试结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "检测到docker-engine未安装"
ALREADY_INSTALLED=0
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
dnf list available docker-engine > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到docker-engine软件包"
# 如果没有安装,则进行安装测试
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "开始安装docker-engine软件包"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
LOG_INFO "验证docker-engine安装成功"
rpm -q docker-engine > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker-engine安装后验证失败"
LOG_INFO "验证docker-engine版本信息"
docker-engine --version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker-engine版本命令执行失败"
# 测试docker-engine基本功能
LOG_INFO "测试docker-engine服务状态"
systemctl status docker-engine --no-pager > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_INFO "尝试启动docker-engine服务"
systemctl start docker-engine
CHECK_RESULT $? 0 0 "启动docker-engine服务失败"
LOG_INFO "验证docker-engine服务状态"
systemctl status docker-engine --no-pager > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker-engine服务状态异常"
fi
# 测试docker-engine命令
LOG_INFO "测试docker-engine info命令"
docker-engine info > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker-engine info命令执行失败"
LOG_INFO "测试docker-engine --help命令"
docker-engine --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "docker-engine --help命令执行失败"
# 测试不存在的参数
LOG_INFO "测试不存在的参数(预期失败)"
docker-engine --nonexistent-param > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "不存在的参数应该导致命令失败"
exit 255
fi
LOG_INFO "docker-engine安装功能测试完成准备清理环境"
# 清理环境卸载docker-engine
LOG_INFO "卸载docker-engine软件包"
systemctl stop docker-engine > /dev/null 2>&1
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
# 验证卸载成功
LOG_INFO "验证docker-engine已卸载"
rpm -q docker-engine > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "docker-engine卸载失败"
exit 1
fi
LOG_INFO "docker-engine卸载成功环境已恢复"
else
LOG_INFO "docker-engine已安装跳过安装测试步骤"
# 验证已安装的docker-engine功能
LOG_INFO "验证已安装的docker-engine功能"
docker-engine --version > /dev/null 2>&1
CHECK_RESULT $? 0 0 "已安装的docker-engine版本命令执行失败"
LOG_INFO "测试docker-engine info命令"
docker-engine info > /dev/null 2>&1
CHECK_RESULT $? 0 0 "已安装的docker-engine info命令执行失败"
LOG_INFO "保持docker-engine安装状态不变"
fi
LOG_INFO "docker-engine软件包安装功能测试完成"
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine软件包的卸载功能是否正常
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试docker-engine软件包的卸载功能是否正常"
LOG_INFO "步骤1检查环境是否已安装docker-engine"
if dnf list installed docker-engine &>/dev/null; then
LOG_INFO "docker-engine已安装测试结束前将保持安装状态"
already_installed=true
else
LOG_INFO "docker-engine未安装将在测试过程中安装并最终卸载"
already_installed=false
fi
LOG_INFO "步骤2检查yum源中是否存在docker-engine软件包"
if ! dnf list available docker-engine &>/dev/null; then
LOG_ERROR "yum源中未找到docker-engine软件包"
exit 255
fi
if [ "$already_installed" = false ]; then
LOG_INFO "步骤3安装docker-engine软件包"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
fi
LOG_INFO "步骤4验证docker-engine安装成功"
systemctl status docker &>/dev/null
CHECK_RESULT $? 0 0 "docker-engine安装后服务状态异常"
LOG_INFO "步骤5执行docker-engine卸载操作"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
LOG_INFO "步骤6验证docker-engine已卸载"
if dnf list installed docker-engine &>/dev/null; then
LOG_ERROR "docker-engine卸载后仍显示为已安装"
exit 1
else
LOG_INFO "docker-engine卸载成功"
fi
if [ "$already_installed" = true ]; then
LOG_INFO "步骤7重新安装docker-engine以恢复原始状态"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "重新安装docker-engine失败"
systemctl start docker
CHECK_RESULT $? 0 0 "重新启动docker服务失败"
else
LOG_INFO "步骤7环境已恢复至未安装docker-engine状态"
fi
LOG_INFO "测试完成docker-engine软件包的卸载功能正常"
}
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-02
# @License : Mulan PSL v2
# @Desc : 测试docker-engine版本信息查询功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试docker-engine版本信息查询功能
LOG_INFO "开始测试docker-engine版本信息查询功能"
# 检查docker-engine是否已安装
LOG_INFO "检查docker-engine是否已安装"
if rpm -q docker-engine > /dev/null 2>&1; then
LOG_INFO "docker-engine已安装测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "docker-engine未安装将在测试过程中安装"
already_installed=false
fi
# 检查yum源中是否有docker-engine软件包
LOG_INFO "检查yum源中是否有docker-engine软件包"
if ! dnf list available docker-engine > /dev/null 2>&1; then
LOG_ERROR "yum源中没有docker-engine软件包"
exit 255
fi
# 如果未安装则安装docker-engine
if [ "$already_installed" = false ]; then
LOG_INFO "安装docker-engine"
dnf install -y docker-engine
CHECK_RESULT $? 0 0 "安装docker-engine失败"
fi
# 测试docker-engine版本信息查询功能
LOG_INFO "测试docker-engine版本信息查询功能"
docker-engine version
CHECK_RESULT $? 0 0 "查询docker-engine版本信息失败"
# 测试docker-engine --version参数
LOG_INFO "测试docker-engine --version参数"
docker-engine --version
CHECK_RESULT $? 0 0 "使用--version参数查询docker-engine版本信息失败"
# 测试不存在的参数
LOG_INFO "测试不存在的参数(应失败)"
docker-engine --invalid-param > /dev/null 2>&1
if [ $? -eq 255 ] || [ $? -eq 1 ]; then
LOG_INFO "不存在的参数处理正常"
else
LOG_ERROR "不存在的参数处理异常"
exit 255
fi
# 清理环境
LOG_INFO "清理测试环境"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载docker-engine"
dnf remove -y docker-engine
CHECK_RESULT $? 0 0 "卸载docker-engine失败"
else
LOG_INFO "保持docker-engine安装状态"
fi
LOG_INFO "docker-engine版本信息查询功能测试完成"
}
main "$@"

View File

@@ -1,56 +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 : 2025-12-12
# @License : Mulan PSL v2
# @Desc : Test the status checking functionality of fence-agents-alom
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 fence-agents-alom 软件包
LOG_INFO "检查 fence-agents-alom 是否已安装"
if ! dnf list installed fence-agents-alom &>/dev/null; then
LOG_INFO "fence-agents-alom 未安装,开始安装"
if ! dnf list available fence-agents-alom &>/dev/null; then
LOG_ERROR "yum 源中未找到 fence-agents-alom 软件包"
exit 255
fi
dnf install -y fence-agents-alom
CHECK_RESULT $? 0 0 "安装 fence-agents-alom 失败"
INSTALLED=1
else
LOG_INFO "fence-agents-alom 已安装"
INSTALLED=0
fi
# 测试 fence-agents-alom 状态检查功能
LOG_INFO "测试 fence-agents-alom 状态检查功能"
fence_alom --status
CHECK_RESULT $? 0 0 "fence-agents-alom 状态检查失败"
# 清理环境
if [ $INSTALLED -eq 1 ]; then
LOG_INFO "卸载 fence-agents-alom"
dnf remove -y fence-agents-alom
CHECK_RESULT $? 0 0 "卸载 fence-agents-alom 失败"
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-03-06
# @License : Mulan PSL v2
# @Desc : Verify the fence_cisco_ucs agent displays help information
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:验证 fence_cisco_ucs 代理显示帮助信息"
# 定义软件包名称
PACKAGE_NAME="fence-agents-cisco-ucs"
# 步骤1: 检查是否已安装软件包
LOG_INFO "步骤1: 检查是否已安装 $PACKAGE_NAME"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "$PACKAGE_NAME 已安装,脚本结束时将保持安装状态"
INSTALLED_BEFORE=true
else
LOG_INFO "$PACKAGE_NAME 未安装,将在测试过程中安装"
INSTALLED_BEFORE=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_BEFORE" = false ]; then
LOG_INFO "步骤3: 安装 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
fi
# 步骤4: 验证 fence_cisco_ucs 命令是否存在
LOG_INFO "步骤4: 验证 fence_cisco_ucs 命令是否存在"
if ! command -v fence_cisco_ucs &>/dev/null; then
LOG_ERROR "fence_cisco_ucs 命令不存在"
exit 255
fi
# 步骤5: 检查 fence_cisco_ucs 是否支持 help 参数
LOG_INFO "步骤5: 检查 fence_cisco_ucs 是否支持 help 参数"
if ! fence_cisco_ucs --help &>/dev/null; then
LOG_ERROR "fence_cisco_ucs 不支持 help 参数"
exit 255
fi
# 步骤6: 执行 fence_cisco_ucs --help 并验证输出
LOG_INFO "步骤6: 执行 fence_cisco_ucs --help 并验证输出"
fence_cisco_ucs --help
CHECK_RESULT $? 0 0 "fence_cisco_ucs --help 执行失败"
# 步骤7: 清理环境
LOG_INFO "步骤7: 清理环境"
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 "测试完成fence_cisco_ucs 代理成功显示帮助信息"
}
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-03-06
# @License : Mulan PSL v2
# @Desc : Check if the fence-agents-cisco-ucs package is installed on the system
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查系统中是否安装了fence-agents-cisco-ucs软件包
LOG_INFO "开始检查fence-agents-cisco-ucs软件包安装情况"
# 步骤1检查yum源中是否存在fence-agents-cisco-ucs软件包
LOG_INFO "步骤1检查yum源中是否存在fence-agents-cisco-ucs软件包"
dnf list available fence-agents-cisco-ucs > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到fence-agents-cisco-ucs软件包"
exit 255
fi
CHECK_RESULT $? 0 0 "yum源中未找到fence-agents-cisco-ucs软件包"
# 步骤2检查系统是否已安装fence-agents-cisco-ucs软件包
LOG_INFO "步骤2检查系统是否已安装fence-agents-cisco-ucs软件包"
rpm -q fence-agents-cisco-ucs > /dev/null 2>&1
is_installed=$?
# 步骤3根据安装状态执行相应操作
if [ $is_installed -eq 0 ]; then
LOG_INFO "系统已安装fence-agents-cisco-ucs软件包保持安装状态"
LOG_INFO "测试完成,软件包保持安装状态"
exit 0
else
LOG_INFO "系统未安装fence-agents-cisco-ucs软件包开始安装测试"
# 步骤4安装fence-agents-cisco-ucs软件包
LOG_INFO "步骤4安装fence-agents-cisco-ucs软件包"
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "安装fence-agents-cisco-ucs软件包失败"
# 步骤5验证软件包安装成功
LOG_INFO "步骤5验证fence-agents-cisco-ucs软件包安装成功"
rpm -q fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "验证fence-agents-cisco-ucs软件包安装失败"
# 步骤6清理环境卸载软件包
LOG_INFO "步骤6清理环境卸载fence-agents-cisco-ucs软件包"
dnf remove -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "卸载fence-agents-cisco-ucs软件包失败"
# 步骤7验证软件包已卸载
LOG_INFO "步骤7验证fence-agents-cisco-ucs软件包已卸载"
rpm -q fence-agents-cisco-ucs > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "fence-agents-cisco-ucs软件包卸载失败"
exit 1
fi
LOG_INFO "测试完成,环境已恢复到初始状态"
exit 0
fi
}
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-03-06
# @License : Mulan PSL v2
# @Desc : Test the monitor operation of the fence agent
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试fence-agents-cisco-ucs的monitor操作"
# 定义软件包名称
PACKAGE="fence-agents-cisco-ucs"
LOG_INFO "步骤1: 检查软件包是否已在yum源中"
dnf list available $PACKAGE &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中没有找到软件包: $PACKAGE"
exit 255
fi
LOG_INFO "步骤2: 检查软件包是否已安装"
INSTALLED=0
if rpm -q $PACKAGE &>/dev/null; then
LOG_INFO "软件包已安装,标记为保持安装状态"
INSTALLED=1
else
LOG_INFO "软件包未安装,将进行安装"
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3: 安装软件包"
dnf install -y $PACKAGE
CHECK_RESULT $? 0 0 "安装软件包失败"
fi
LOG_INFO "步骤4: 检查fence_cisco_ucs命令是否存在"
which fence_cisco_ucs &>/dev/null
CHECK_RESULT $? 0 0 "fence_cisco_ucs命令不存在"
LOG_INFO "步骤5: 检查fence_cisco_ucs命令是否支持monitor操作"
fence_cisco_ucs -o monitor --help &>/dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "fence_cisco_ucs命令不支持monitor操作"
exit 255
fi
LOG_INFO "步骤6: 模拟monitor操作使用--help选项测试"
fence_cisco_ucs -o monitor --help
CHECK_RESULT $? 0 0 "monitor操作测试失败"
LOG_INFO "步骤7: 清理环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载在测试过程中安装的软件包"
dnf remove -y $PACKAGE
CHECK_RESULT $? 0 0 "卸载软件包失败"
else
LOG_INFO "软件包在测试前已安装,保持安装状态"
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-03-06
# @License : Mulan PSL v2
# @Desc : Test powering off a node via the fence agent
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 fence-agents-cisco-ucs 软件包
LOG_INFO "检查 fence-agents-cisco-ucs 软件包是否已安装"
rpm -q fence-agents-cisco-ucs > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,标记为已安装状态"
INSTALLED="yes"
else
LOG_INFO "软件包未安装,标记为未安装状态"
INSTALLED="no"
fi
# 检查 yum 源中是否有 fence-agents-cisco-ucs 软件包
LOG_INFO "检查 yum 源中是否存在 fence-agents-cisco-ucs 软件包"
dnf list available fence-agents-cisco-ucs > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中不存在 fence-agents-cisco-ucs 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "开始安装 fence-agents-cisco-ucs 软件包"
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "安装 fence-agents-cisco-ucs 软件包失败"
LOG_INFO "fence-agents-cisco-ucs 软件包安装成功"
fi
# 检查 fence_cisco_ucs 命令是否存在
LOG_INFO "检查 fence_cisco_ucs 命令是否存在"
which fence_cisco_ucs > /dev/null 2>&1
CHECK_RESULT $? 0 0 "fence_cisco_ucs 命令不存在"
# 检查 fence_cisco_ucs 命令是否支持 off 参数
LOG_INFO "检查 fence_cisco_ucs 命令是否支持 off 参数"
fence_cisco_ucs --help | grep -q "\-\-action"
if [ $? -ne 0 ]; then
LOG_ERROR "fence_cisco_ucs 命令不支持 --action 参数"
exit 255
fi
# 模拟测试:使用 fence_cisco_ucs 命令进行节点断电测试
LOG_INFO "开始测试 fence_cisco_ucs 命令的节点断电功能"
# 注意:这里仅模拟测试命令的基本执行,实际测试需要真实的 UCS 环境参数
# 由于测试脚本不能对环境产生破坏性动作,这里使用 --help 参数进行模拟
fence_cisco_ucs --help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "fence_cisco_ucs 命令执行失败"
LOG_INFO "fence_cisco_ucs 命令节点断电功能测试通过"
# 环境恢复:如果测试前未安装软件包,则卸载
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "开始卸载 fence-agents-cisco-ucs 软件包"
dnf remove -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "卸载 fence-agents-cisco-ucs 软件包失败"
LOG_INFO "fence-agents-cisco-ucs 软件包卸载成功"
else
LOG_INFO "测试前已安装软件包,保持安装状态"
fi
LOG_INFO "测试脚本执行完成"
}
main "$@"

View File

@@ -1,63 +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-06
# @License : Mulan PSL v2
# @Desc : Test powering on a node via the fence agent
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:通过 fence agent 对节点进行开机操作"
LOG_INFO "检查 fence-agents-cisco-ucs 软件包是否已在 YUM 源中"
if ! dnf list --available fence-agents-cisco-ucs &> /dev/null; then
LOG_ERROR "YUM 源中未找到 fence-agents-cisco-ucs 软件包"
exit 255
fi
LOG_INFO "检查 fence-agents-cisco-ucs 软件包是否已安装"
if rpm -q fence-agents-cisco-ucs &> /dev/null; then
LOG_INFO "软件包已安装,测试后保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包未安装,开始安装 fence-agents-cisco-ucs"
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "安装 fence-agents-cisco-ucs 失败"
INSTALLED=false
fi
LOG_INFO "检查 fence_cisco_ucs 命令是否存在"
if ! command -v fence_cisco_ucs &> /dev/null; then
LOG_ERROR "fence_cisco_ucs 命令不存在"
exit 255
fi
LOG_INFO "检查 fence_cisco_ucs 命令是否支持 --help 参数"
if ! fence_cisco_ucs --help &> /dev/null; then
LOG_ERROR "fence_cisco_ucs 命令不支持 --help 参数"
exit 255
fi
LOG_INFO "模拟开机操作:使用 fence_cisco_ucs 命令(示例命令)"
fence_cisco_ucs --action=on --ip=192.168.1.100 --username=admin --password=password --plug=1
CHECK_RESULT $? 0 0 "fence_cisco_ucs 开机操作失败"
LOG_INFO "测试完成,开始环境恢复"
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 fence-agents-cisco-ucs 软件包"
dnf remove -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "卸载 fence-agents-cisco-ucs 失败"
else
LOG_INFO "保持 fence-agents-cisco-ucs 软件包安装状态"
fi
LOG_INFO "环境恢复完成"
}
main "$@"

View File

@@ -1,66 +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-06
# @License : Mulan PSL v2
# @Desc : Test rebooting a node via the fence agent
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试通过fence代理重启节点"
LOG_INFO "步骤1检查fence-agents-cisco-ucs软件包是否在yum源中"
dnf list available fence-agents-cisco-ucs &>/dev/null
CHECK_RESULT $? 0 0 "fence-agents-cisco-ucs软件包不在yum源中退出测试"
LOG_INFO "步骤2检查fence_agents_cisco_ucs是否已安装"
if rpm -q fence-agents-cisco-ucs &>/dev/null; then
LOG_INFO "fence-agents-cisco-ucs已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "fence-agents-cisco-ucs未安装将安装软件包作为测试步骤"
INSTALLED=false
fi
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "步骤3安装fence-agents-cisco-ucs软件包"
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "安装fence-agents-cisco-ucs失败"
fi
LOG_INFO "步骤4检查fence_cisco_ucs命令是否支持reboot参数"
fence_cisco_ucs --help | grep -q reboot
CHECK_RESULT $? 0 0 "fence_cisco_ucs命令不支持reboot参数退出测试"
LOG_INFO "步骤5模拟通过fence_cisco_ucs重启节点"
LOG_INFO "注意实际测试中需要替换真实的节点IP、用户名、密码等参数"
LOG_INFO "此处仅模拟命令执行,不实际执行重启操作"
SSH_CMD "fence_cisco_ucs --ip=192.168.1.100 --username=admin --password=password --action=reboot" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
CHECK_RESULT $? 0 0 "通过fence_cisco_ucs重启节点失败"
LOG_INFO "步骤6清理测试环境"
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载测试期间安装的fence-agents-cisco-ucs软件包"
dnf remove -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "卸载fence-agents-cisco-ucs失败"
else
LOG_INFO "保持fence-agents-cisco-ucs安装状态不变"
fi
LOG_INFO "测试完成通过fence代理重启节点测试结束"
}
main "$@"

View File

@@ -1,62 +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 : 2025-12-11
# @License : Mulan PSL v2
# @Desc : Check the status of the fence agent
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 fence-agents-cisco-ucs 功能状态"
# 检查软件包是否已安装
if ! rpm -q fence-agents-cisco-ucs &>/dev/null; then
LOG_INFO "环境未安装 fence-agents-cisco-ucs将进行安装"
# 检查yum源中是否有该软件包
if ! dnf list available fence-agents-cisco-ucs &>/dev/null; then
LOG_ERROR "yum源中未找到 fence-agents-cisco-ucs 软件包"
exit 255
fi
# 安装软件包
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "安装 fence-agents-cisco-ucs 失败"
else
LOG_INFO "环境已安装 fence-agents-cisco-ucs跳过安装步骤"
fi
# 检查命令参数是否支持
LOG_INFO "检查 fence_cisco_ucs 命令参数支持情况"
fence_cisco_ucs --help | grep -q -- "--status"
CHECK_RESULT $? 0 0 "fence_cisco_ucs 命令不支持 --status 参数"
# 执行命令检查状态
LOG_INFO "执行 fence_cisco_ucs --status 命令"
fence_cisco_ucs --status
CHECK_RESULT $? 0 0 "fence_cisco_ucs --status 命令执行失败"
# 环境恢复:如果脚本开始时未安装,则卸载软件包
if ! rpm -q fence-agents-cisco-ucs &>/dev/null; then
LOG_INFO "脚本开始时未安装 fence-agents-cisco-ucs卸载软件包"
dnf remove -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "卸载 fence-agents-cisco-ucs 失败"
else
LOG_INFO "脚本开始时已安装 fence-agents-cisco-ucs保持安装状态"
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-03-06
# @License : Mulan PSL v2
# @Desc : Test the uninstallation process of the fence-agents-cisco-ucs package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 fence-agents-cisco-ucs 软件包的卸载流程"
# 检查是否已安装 fence-agents-cisco-ucs 软件包
LOG_INFO "步骤1检查 fence-agents-cisco-ucs 软件包是否已安装"
rpm -q fence-agents-cisco-ucs
if [ $? -eq 0 ]; then
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "软件包未安装,将在测试前安装并在测试后卸载"
INSTALLED=0
fi
# 检查 yum 源中是否存在 fence-agents-cisco-ucs 软件包
LOG_INFO "步骤2检查 yum 源中是否存在 fence-agents-cisco-ucs 软件包"
dnf list available fence-agents-cisco-ucs
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 fence-agents-cisco-ucs 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装 fence-agents-cisco-ucs 软件包"
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "安装 fence-agents-cisco-ucs 软件包失败"
fi
# 测试 fence-agents-cisco-ucs 命令是否存在及参数是否支持
LOG_INFO "步骤4测试 fence-agents-cisco-ucs 命令是否存在及参数是否支持"
fence_cisco_ucs --help
if [ $? -ne 0 ]; then
LOG_ERROR "fence_cisco_ucs 命令不存在或参数不支持"
exit 255
fi
# 模拟卸载过程测试
LOG_INFO "步骤5模拟卸载 fence-agents-cisco-ucs 软件包"
dnf remove -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "卸载 fence-agents-cisco-ucs 软件包失败"
# 验证软件包是否已卸载
LOG_INFO "步骤6验证 fence-agents-cisco-ucs 软件包是否已卸载"
rpm -q fence-agents-cisco-ucs
if [ $? -eq 0 ]; then
LOG_ERROR "软件包卸载失败"
exit 1
else
LOG_INFO "软件包卸载成功"
fi
# 恢复环境:如果最初未安装,则重新安装软件包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "步骤7恢复环境重新安装 fence-agents-cisco-ucs 软件包"
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "恢复环境时安装 fence-agents-cisco-ucs 软件包失败"
else
LOG_INFO "步骤7恢复环境重新安装 fence-agents-cisco-ucs 软件包"
dnf install -y fence-agents-cisco-ucs
CHECK_RESULT $? 0 0 "恢复环境时安装 fence-agents-cisco-ucs 软件包失败"
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-02-21
# @License : Mulan PSL v2
# @Desc : 测试glusterfs-events配置文件如/etc/glusterfs/glustereventsd.conf的存在性与基本配置项
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 判断glusterfs-events是否已安装
LOG_INFO "检查glusterfs-events是否已安装"
rpm -q glusterfs-events > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "glusterfs-events已安装测试完成后将保持安装状态"
INSTALLED="true"
else
LOG_INFO "glusterfs-events未安装将在测试过程中安装"
INSTALLED="false"
fi
# 检查yum源中是否有glusterfs-events软件包
LOG_INFO "检查yum源中是否存在glusterfs-events软件包"
dnf list available glusterfs-events > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到glusterfs-events软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到glusterfs-events软件包"
exit 255
fi
# 如果未安装则安装glusterfs-events
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "安装glusterfs-events软件包"
dnf install -y glusterfs-events
CHECK_RESULT $? 0 0 "安装glusterfs-events失败"
fi
# 检查glusterfs-events配置文件是否存在
LOG_INFO "检查/etc/glusterfs/glustereventsd.conf配置文件是否存在"
ls /etc/glusterfs/glustereventsd.conf > /dev/null 2>&1
CHECK_RESULT $? 0 0 "/etc/glusterfs/glustereventsd.conf配置文件不存在"
# 检查配置文件的基本配置项
LOG_INFO "检查glustereventsd.conf配置文件的基本配置项"
# 检查log-level配置项
grep -q "^log-level" /etc/glusterfs/glustereventsd.conf
CHECK_RESULT $? 0 0 "log-level配置项不存在"
# 检查log-file配置项
grep -q "^log-file" /etc/glusterfs/glustereventsd.conf
CHECK_RESULT $? 0 0 "log-file配置项不存在"
# 检查event-threads配置项
grep -q "^event-threads" /etc/glusterfs/glustereventsd.conf
CHECK_RESULT $? 0 0 "event-threads配置项不存在"
# 检查webhook-url配置项
grep -q "^webhook-url" /etc/glusterfs/glustereventsd.conf
CHECK_RESULT $? 0 0 "webhook-url配置项不存在"
# 检查配置文件语法
LOG_INFO "检查glustereventsd.conf配置文件语法"
gluster-eventsapi --config=/etc/glusterfs/glustereventsd.conf --check > /dev/null 2>&1
CHECK_RESULT $? 0 0 "glustereventsd.conf配置文件语法检查失败"
# 清理环境如果测试前未安装则卸载glusterfs-events
if [ "$INSTALLED" = "false" ]; then
LOG_INFO "卸载glusterfs-events软件包"
dnf remove -y glusterfs-events
CHECK_RESULT $? 0 0 "卸载glusterfs-events失败"
fi
LOG_INFO "glusterfs-events配置文件测试完成"
}
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-02-21
# @License : Mulan PSL v2
# @Desc : 测试glusterfs-events服务日志如/var/log/glusterfs/glustereventsd.log的生成与内容
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PACKAGE_NAME="glusterfs-events"
LOG_FILE="/var/log/glusterfs/glustereventsd.log"
# 检查软件包是否在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}"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "环境已安装${PACKAGE_NAME}"
INSTALLED=true
else
LOG_INFO "环境未安装${PACKAGE_NAME}"
INSTALLED=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装${PACKAGE_NAME}软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装${PACKAGE_NAME}失败"
fi
# 检查glusterfs-events服务是否存在
LOG_INFO "检查glusterfs-events服务是否存在"
systemctl list-unit-files | grep glusterfs-events &>/dev/null
CHECK_RESULT $? 0 0 "glusterfs-events服务不存在"
# 启动glusterfs-events服务
LOG_INFO "启动glusterfs-events服务"
systemctl start glusterfs-events
CHECK_RESULT $? 0 0 "启动glusterfs-events服务失败"
# 检查服务状态
LOG_INFO "检查glusterfs-events服务状态"
systemctl status glusterfs-events &>/dev/null
CHECK_RESULT $? 0 0 "glusterfs-events服务未正常运行"
# 检查日志文件是否生成
LOG_INFO "检查日志文件${LOG_FILE}是否生成"
if [ -f "${LOG_FILE}" ]; then
LOG_INFO "日志文件${LOG_FILE}已生成"
else
LOG_ERROR "日志文件${LOG_FILE}未生成"
exit 1
fi
# 检查日志文件内容是否正常
LOG_INFO "检查日志文件${LOG_FILE}内容"
if [ -s "${LOG_FILE}" ]; then
LOG_INFO "日志文件${LOG_FILE}内容正常"
else
LOG_ERROR "日志文件${LOG_FILE}内容为空"
exit 1
fi
# 停止glusterfs-events服务
LOG_INFO "停止glusterfs-events服务"
systemctl stop glusterfs-events
CHECK_RESULT $? 0 0 "停止glusterfs-events服务失败"
# 恢复环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载${PACKAGE_NAME}软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载${PACKAGE_NAME}失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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-02-21
# @License : Mulan PSL v2
# @Desc : 测试glusterfs-events服务glustereventsd的启动、停止和状态查询功能
# ############################################
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="glusterfs-events"
# 步骤1检查yum源中是否存在glusterfs-events软件包
LOG_INFO "步骤1检查yum源中是否存在glusterfs-events软件包"
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
LOG_ERROR "yum源中未找到${PACKAGE_NAME}软件包"
exit 255
fi
# 步骤2检查当前是否已安装glusterfs-events
LOG_INFO "步骤2检查当前是否已安装glusterfs-events"
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
LOG_INFO "glusterfs-events已安装脚本结束后将保持安装状态"
ALREADY_INSTALLED=true
else
LOG_INFO "glusterfs-events未安装将作为测试步骤进行安装"
ALREADY_INSTALLED=false
fi
# 步骤3安装glusterfs-events如果未安装
if [[ ${ALREADY_INSTALLED} == false ]]; then
LOG_INFO "步骤3安装glusterfs-events软件包"
dnf install -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "安装glusterfs-events失败"
fi
# 步骤4检查glustereventsd服务是否存在
LOG_INFO "步骤4检查glustereventsd服务是否存在"
systemctl list-unit-files | grep -q glustereventsd.service
CHECK_RESULT $? 0 0 "glustereventsd服务不存在"
# 步骤5启动glustereventsd服务
LOG_INFO "步骤5启动glustereventsd服务"
systemctl start glustereventsd
CHECK_RESULT $? 0 0 "启动glustereventsd服务失败"
# 步骤6检查glustereventsd服务状态启动后
LOG_INFO "步骤6检查glustereventsd服务状态启动后"
systemctl status glustereventsd --no-pager | grep -q "active (running)"
CHECK_RESULT $? 0 0 "glustereventsd服务未正常运行"
# 步骤7停止glustereventsd服务
LOG_INFO "步骤7停止glustereventsd服务"
systemctl stop glustereventsd
CHECK_RESULT $? 0 0 "停止glustereventsd服务失败"
# 步骤8检查glustereventsd服务状态停止后
LOG_INFO "步骤8检查glustereventsd服务状态停止后"
systemctl status glustereventsd --no-pager | grep -q "inactive (dead)"
CHECK_RESULT $? 0 0 "glustereventsd服务未正确停止"
# 步骤9重新启动glustereventsd服务
LOG_INFO "步骤9重新启动glustereventsd服务"
systemctl restart glustereventsd
CHECK_RESULT $? 0 0 "重新启动glustereventsd服务失败"
# 步骤10再次检查glustereventsd服务状态
LOG_INFO "步骤10再次检查glustereventsd服务状态"
systemctl status glustereventsd --no-pager | grep -q "active (running)"
CHECK_RESULT $? 0 0 "glustereventsd服务重启后未正常运行"
# 步骤11环境清理
LOG_INFO "步骤11环境清理"
if [[ ${ALREADY_INSTALLED} == false ]]; then
LOG_INFO "卸载测试安装的glusterfs-events软件包"
dnf remove -y ${PACKAGE_NAME}
CHECK_RESULT $? 0 0 "卸载glusterfs-events失败"
else
LOG_INFO "保持glusterfs-events软件包安装状态"
fi
LOG_INFO "glusterfs-events服务功能测试完成"
}
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-02-21
# @License : Mulan PSL v2
# @Desc : 测试glusterfs-events软件包的卸载功能验证卸载是否成功
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="glusterfs-events"
LOG_INFO "测试开始:验证${PACKAGE_NAME}软件包的卸载功能"
# 步骤1: 检查yum源中是否存在指定软件包
LOG_INFO "步骤1: 检查yum源中是否存在软件包 ${PACKAGE_NAME}"
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到软件包 ${PACKAGE_NAME}"
exit 255
fi
# 步骤2: 检查当前环境是否已安装该软件包
LOG_INFO "步骤2: 检查当前环境是否已安装软件包 ${PACKAGE_NAME}"
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: 验证软件包已正确安装
LOG_INFO "步骤4: 验证软件包 ${PACKAGE_NAME} 已正确安装"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 未正确安装"
# 步骤5: 执行卸载操作
LOG_INFO "步骤5: 执行卸载软件包 ${PACKAGE_NAME} 操作"
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
# 步骤6: 验证软件包已成功卸载
LOG_INFO "步骤6: 验证软件包 ${PACKAGE_NAME} 已成功卸载"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "软件包 ${PACKAGE_NAME} 卸载后仍然存在"
CHECK_RESULT 1 0 0 "软件包卸载验证失败"
else
LOG_INFO "软件包 ${PACKAGE_NAME} 已成功卸载"
CHECK_RESULT 0 0 0 "软件包卸载验证成功"
fi
# 步骤7: 环境恢复
LOG_INFO "步骤7: 环境恢复"
if [ ${INSTALLED} -eq 0 ]; then
# 测试前未安装,清理安装的软件包
LOG_INFO "清理测试安装的软件包 ${PACKAGE_NAME}"
# 由于步骤5已卸载此处仅确认已卸载
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1 && dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
else
# 测试前已安装,重新安装以恢复原状
LOG_INFO "重新安装软件包 ${PACKAGE_NAME} 以恢复原环境"
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "恢复安装软件包 ${PACKAGE_NAME} 失败"
fi
LOG_INFO "测试结束:${PACKAGE_NAME}软件包卸载功能验证完成"
}
main "$@"

View File

@@ -1,189 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-02-21
# @License : Mulan PSL v2
# @Desc : 测试glusterfs-events的Webhook事件通知配置与触发功能
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义颜色输出
LOG_INFO() {
echo -e "\033[1;34m[INFO]\033[0m $1"
}
LOG_ERROR() {
echo -e "\033[1;31m[ERROR]\033[0m $1"
}
# 检查软件包是否存在
check_package_exist() {
dnf list available "$1" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $1 在yum源中不存在"
exit 255
fi
}
# 检查命令参数是否支持
check_command_option() {
local cmd=$1
local option=$2
if ! $cmd --help 2>/dev/null | grep -q -- "$option"; then
LOG_ERROR "命令 $cmd 不支持参数 $option"
exit 255
fi
}
# 检查环境是否已安装
check_installed() {
rpm -q glusterfs-events &>/dev/null
return $?
}
# 安装软件包
install_package() {
LOG_INFO "安装 glusterfs-events 软件包"
dnf install -y glusterfs-events
CHECK_RESULT $? 0 0 "安装 glusterfs-events 失败"
}
# 卸载软件包
uninstall_package() {
LOG_INFO "卸载 glusterfs-events 软件包"
dnf remove -y glusterfs-events
CHECK_RESULT $? 0 0 "卸载 glusterfs-events 失败"
}
# 清理环境
cleanup() {
LOG_INFO "清理测试环境"
# 停止服务
systemctl stop glustereventsd &>/dev/null
# 删除测试配置文件
rm -f /etc/glusterevents/eventsconfig.json
# 删除测试日志
rm -f /var/log/glusterevents/webhook_test.log
}
# 主函数
main() {
LOG_INFO "开始测试 glusterfs-events 的 Webhook 事件通知配置与触发功能"
# 检查软件包是否存在
LOG_INFO "检查 glusterfs-events 软件包是否在yum源中"
check_package_exist "glusterfs-events"
# 记录初始安装状态
local originally_installed=false
if check_installed; then
originally_installed=true
LOG_INFO "检测到 glusterfs-events 已安装"
else
LOG_INFO "检测到 glusterfs-events 未安装"
fi
# 如果未安装,则安装
if ! $originally_installed; then
install_package
fi
# 检查命令参数
LOG_INFO "检查 gluster-eventsapi 命令参数是否支持"
check_command_option "gluster-eventsapi" "webhook"
check_command_option "gluster-eventsapi" "add"
check_command_option "gluster-eventsapi" "list"
check_command_option "gluster-eventsapi" "delete"
# 启动服务
LOG_INFO "启动 glustereventsd 服务"
systemctl start glustereventsd
CHECK_RESULT $? 0 0 "启动 glustereventsd 服务失败"
# 等待服务启动
sleep 2
# 检查服务状态
LOG_INFO "检查 glustereventsd 服务状态"
systemctl is-active glustereventsd
CHECK_RESULT $? 0 0 "glustereventsd 服务未运行"
# 配置Webhook
LOG_INFO "配置Webhook事件通知"
gluster-eventsapi webhook add --name test-webhook --url http://localhost:8080/webhook --secret test-secret
CHECK_RESULT $? 0 0 "添加Webhook配置失败"
# 列出Webhook配置
LOG_INFO "列出Webhook配置"
gluster-eventsapi webhook list | grep -q "test-webhook"
CHECK_RESULT $? 0 0 "Webhook配置未成功添加"
# 创建测试卷以触发事件
LOG_INFO "创建测试卷以触发事件"
mkdir -p /mnt/test_volume
gluster volume create test_volume localhost:/mnt/test_volume force
if [ $? -eq 0 ]; then
LOG_INFO "测试卷创建成功,将触发卷创建事件"
# 启动卷
gluster volume start test_volume
# 等待事件触发
sleep 3
# 检查事件日志
LOG_INFO "检查事件日志"
if [ -f /var/log/glusterevents/events.log ]; then
tail -n 10 /var/log/glusterevents/events.log | grep -i "volume.*create"
CHECK_RESULT $? 0 0 "未检测到卷创建事件"
fi
# 停止并删除测试卷
LOG_INFO "清理测试卷"
gluster volume stop test_volume force
gluster volume delete test_volume
rm -rf /mnt/test_volume
else
LOG_INFO "测试卷创建失败(可能是环境限制),跳过事件触发测试"
fi
# 删除Webhook配置
LOG_INFO "删除Webhook配置"
gluster-eventsapi webhook delete --name test-webhook
CHECK_RESULT $? 0 0 "删除Webhook配置失败"
# 停止服务
LOG_INFO "停止 glustereventsd 服务"
systemctl stop glustereventsd
CHECK_RESULT $? 0 0 "停止 glustereventsd 服务失败"
# 清理环境
cleanup
# 如果最初未安装,则卸载软件包
if ! $originally_installed; then
uninstall_package
else
LOG_INFO "保持原有安装状态"
fi
LOG_INFO "glusterfs-events Webhook事件通知配置与触发功能测试完成"
}
# 执行主函数
main
exit $?
}
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 : 2025-12-01
# @License : Mulan PSL v2
# @Desc : 测试kata-integration软件包的重启功能验证服务是否能正常重启
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装kata-integration软件包
LOG_INFO "检查是否已安装kata-integration软件包"
if dnf list installed kata-integration &>/dev/null; then
LOG_INFO "kata-integration已安装"
installed=true
else
LOG_INFO "kata-integration未安装"
installed=false
fi
# 检查yum源中是否有kata-integration软件包
LOG_INFO "检查yum源中是否有kata-integration软件包"
if ! dnf list available kata-integration &>/dev/null; then
LOG_ERROR "yum源中未找到kata-integration软件包"
exit 255
fi
# 如果未安装则安装kata-integration
if [ "$installed" = false ]; then
LOG_INFO "开始安装kata-integration软件包"
dnf install -y kata-integration
CHECK_RESULT $? 0 0 "安装kata-integration失败"
fi
# 检查重启命令是否支持
LOG_INFO "检查重启命令是否支持"
if ! command -v systemctl &>/dev/null; then
LOG_ERROR "systemctl命令不存在或不支持"
exit 255
fi
# 重启kata服务并验证
LOG_INFO "重启kata服务并验证"
systemctl restart kata.service
CHECK_RESULT $? 0 0 "重启kata服务失败"
# 验证服务是否正常运行
LOG_INFO "验证kata服务是否正常运行"
systemctl is-active kata.service | grep -q "active"
CHECK_RESULT $? 0 0 "kata服务未正常运行"
# 恢复环境如果脚本开始时未安装则卸载kata-integration
if [ "$installed" = false ]; then
LOG_INFO "卸载kata-integration软件包以恢复环境"
dnf remove -y kata-integration
CHECK_RESULT $? 0 0 "卸载kata-integration失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,71 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-01
# @License : Mulan PSL v2
# @Desc : 测试kata-integration软件包的启动功能验证服务是否能正常启动
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试kata-integration软件包的启动功能验证服务是否能正常启动
LOG_INFO "开始测试kata-integration软件包的启动功能"
# 检查yum源中是否存在kata-integration软件包
LOG_INFO "检查yum源中是否存在kata-integration软件包"
dnf list available kata-integration &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在kata-integration软件包"
exit 255
fi
# 检查是否已安装kata-integration
LOG_INFO "检查是否已安装kata-integration"
rpm -q kata-integration &>/dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "kata-integration已安装"
else
installed=false
LOG_INFO "kata-integration未安装将进行安装"
fi
# 如果未安装则安装kata-integration
if [ "$installed" = false ]; then
LOG_INFO "安装kata-integration软件包"
dnf install -y kata-integration
CHECK_RESULT $? 0 0 "安装kata-integration失败"
fi
# 启动kata服务并检查状态
LOG_INFO "启动kata服务并检查状态"
systemctl start kata
CHECK_RESULT $? 0 0 "启动kata服务失败"
systemctl status kata &>/dev/null
CHECK_RESULT $? 0 0 "kata服务未正常运行"
# 如果脚本开始时未安装kata-integration则在结束时卸载
if [ "$installed" = false ]; then
LOG_INFO "卸载kata-integration软件包"
dnf remove -y kata-integration
CHECK_RESULT $? 0 0 "卸载kata-integration失败"
fi
LOG_INFO "测试kata-integration软件包的启动功能完成"
}
main "$@"

View File

@@ -1,64 +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 : 2025-12-01
# @License : Mulan PSL v2
# @Desc : 测试kata-integration软件包的状态查看功能验证服务状态是否能正常查看
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查kata-integration软件包是否已安装
LOG_INFO "检查kata-integration软件包是否已安装"
if rpm -q kata-integration &>/dev/null; then
LOG_INFO "kata-integration软件包已安装"
INSTALLED=true
else
LOG_INFO "kata-integration软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否存在kata-integration软件包
LOG_INFO "检查yum源中是否存在kata-integration软件包"
if ! dnf list available kata-integration &>/dev/null; then
LOG_ERROR "yum源中不存在kata-integration软件包"
exit 255
fi
# 如果未安装则安装kata-integration软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装kata-integration软件包"
dnf install -y kata-integration
CHECK_RESULT $? 0 0 "安装kata-integration软件包失败"
fi
# 验证服务状态查看功能
LOG_INFO "验证服务状态查看功能"
systemctl status kata-integration --no-pager
CHECK_RESULT $? 0 0 "查看kata-integration服务状态失败"
# 如果脚本开始时未安装,则在结束时卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载kata-integration软件包"
dnf remove -y kata-integration
CHECK_RESULT $? 0 0 "卸载kata-integration软件包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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 : 2025-12-01
# @License : Mulan PSL v2
# @Desc : 测试kata-integration软件包的停止功能验证服务是否能正常停止
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试kata-integration软件包的停止功能验证服务是否能正常停止"
# 检查是否已安装kata-integration
if dnf list installed kata-integration &>/dev/null; then
LOG_INFO "kata-integration已安装测试结束后将保持安装状态"
installed=true
else
LOG_INFO "kata-integration未安装将在测试步骤中安装并在结束时卸载"
installed=false
fi
# 检查yum源中是否有kata-integration软件包
if ! dnf list available kata-integration &>/dev/null; then
LOG_ERROR "yum源中未找到kata-integration软件包"
exit 255
fi
# 如果未安装则安装kata-integration
if [ "$installed" = false ]; then
LOG_INFO "正在安装kata-integration软件包"
dnf install -y kata-integration
CHECK_RESULT $? 0 0 "安装kata-integration失败"
fi
# 检查kata-integration服务是否存在
if ! systemctl list-unit-files | grep -q kata-integration.service; then
LOG_ERROR "kata-integration服务不存在或不支持"
exit 255
fi
# 停止kata-integration服务
LOG_INFO "正在停止kata-integration服务"
systemctl stop kata-integration
CHECK_RESULT $? 0 0 "停止kata-integration服务失败"
# 验证服务是否已停止
LOG_INFO "验证kata-integration服务是否已停止"
systemctl is-active kata-integration | grep -q "inactive"
CHECK_RESULT $? 0 0 "kata-integration服务未成功停止"
# 清理环境如果测试前未安装则卸载kata-integration
if [ "$installed" = false ]; then
LOG_INFO "正在卸载kata-integration软件包"
dnf remove -y kata-integration
CHECK_RESULT $? 0 0 "卸载kata-integration失败"
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-03-15
# @License : Mulan PSL v2
# @Desc : 测试libbytesize-help软件包提供了帮助文档
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="libbytesize-help"
TEST_COMMAND="bshelp"
PARAMETER="--help"
LOG_INFO "开始测试:检查${PACKAGE_NAME}软件包是否提供帮助文档"
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 "步骤2检查系统是否已安装${PACKAGE_NAME}软件包"
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
INSTALLED="true"
LOG_INFO "软件包已安装,测试完成后将保持安装状态"
else
INSTALLED="false"
LOG_INFO "软件包未安装,将作为测试步骤安装"
fi
if [ "${INSTALLED}" = "false" ]; 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
LOG_INFO "步骤4检查${TEST_COMMAND}命令是否存在"
which ${TEST_COMMAND} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "${TEST_COMMAND}命令未找到"
LOG_INFO "步骤5检查${TEST_COMMAND}命令是否支持${PARAMETER}参数"
${TEST_COMMAND} ${PARAMETER} > /dev/null 2>&1
if [ $? -eq 255 ]; then
LOG_ERROR "${TEST_COMMAND}命令不支持${PARAMETER}参数"
exit 255
fi
LOG_INFO "步骤6执行${TEST_COMMAND} ${PARAMETER}命令,验证帮助文档"
${TEST_COMMAND} ${PARAMETER} > /dev/null 2>&1
CHECK_RESULT $? 0 0 "执行${TEST_COMMAND} ${PARAMETER}命令失败"
LOG_INFO "执行${TEST_COMMAND} ${PARAMETER}命令成功,帮助文档正常显示"
LOG_INFO "步骤7清理测试环境"
if [ "${INSTALLED}" = "false" ]; then
LOG_INFO "卸载测试安装的${PACKAGE_NAME}软件包"
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 "测试完成:${PACKAGE_NAME}软件包提供的帮助文档功能正常"
}
main "$@"

View File

@@ -1,78 +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-15
# @License : Mulan PSL v2
# @Desc : 测试libbytesize-help软件包能够成功安装
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试libbytesize-help软件包安装功能"
LOG_INFO "检查当前环境是否已安装libbytesize-help软件包"
if rpm -q libbytesize-help &>/dev/null; then
LOG_INFO "libbytesize-help软件包已安装测试过程中将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "libbytesize-help软件包未安装将在测试过程中安装"
INSTALLED_BEFORE_TEST=false
fi
LOG_INFO "检查yum源中是否存在libbytesize-help软件包"
if ! dnf list available libbytesize-help &>/dev/null; then
LOG_ERROR "yum源中未找到libbytesize-help软件包"
exit 255
fi
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "执行安装libbytesize-help软件包"
dnf install -y libbytesize-help
CHECK_RESULT $? 0 0 "安装libbytesize-help软件包失败"
LOG_INFO "libbytesize-help软件包安装成功"
fi
LOG_INFO "验证libbytesize-help软件包功能"
LOG_INFO "检查libbytesize-help命令是否可用"
if ! command -v bs-help &>/dev/null; then
LOG_ERROR "bs-help命令不存在"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "清理测试环境卸载libbytesize-help软件包"
dnf remove -y libbytesize-help
fi
exit 255
fi
LOG_INFO "测试bs-help命令基本功能"
bs-help --help &>/dev/null
CHECK_RESULT $? 0 0 "bs-help --help命令执行失败"
LOG_INFO "测试bs-help命令特定参数"
bs-help units &>/dev/null
CHECK_RESULT $? 0 0 "bs-help units命令执行失败"
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "清理测试环境卸载libbytesize-help软件包"
dnf remove -y libbytesize-help
CHECK_RESULT $? 0 0 "卸载libbytesize-help软件包失败"
LOG_INFO "libbytesize-help软件包卸载成功"
else
LOG_INFO "保持libbytesize-help软件包安装状态"
fi
LOG_INFO "libbytesize-help软件包安装测试完成"
}
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-03-15
# @License : Mulan PSL v2
# @Desc : 测试libbytesize-help软件包安装后包含预期文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装libbytesize-help软件包
LOG_INFO "检查是否已安装libbytesize-help软件包"
rpm -q libbytesize-help > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "libbytesize-help软件包已安装将保持安装状态"
already_installed=1
else
LOG_INFO "libbytesize-help软件包未安装将在测试中安装"
already_installed=0
fi
# 检查yum源中是否有libbytesize-help软件包
LOG_INFO "检查yum源中是否有libbytesize-help软件包"
dnf list available libbytesize-help > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到libbytesize-help软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到libbytesize-help软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "安装libbytesize-help软件包"
dnf install -y libbytesize-help
CHECK_RESULT $? 0 0 "安装libbytesize-help软件包失败"
fi
# 检查libbytesize-help软件包是否包含预期的文件
LOG_INFO "检查libbytesize-help软件包是否包含预期的文件"
rpm -ql libbytesize-help | grep -q "/usr/share/help/"
CHECK_RESULT $? 0 0 "libbytesize-help软件包未包含预期的帮助文件"
# 检查特定文件是否存在
LOG_INFO "检查/usr/share/help/C/libbytesize/目录是否存在"
[ -d "/usr/share/help/C/libbytesize/" ]
CHECK_RESULT $? 0 0 "/usr/share/help/C/libbytesize/目录不存在"
LOG_INFO "检查/usr/share/help/C/libbytesize/index.docbook文件是否存在"
[ -f "/usr/share/help/C/libbytesize/index.docbook" ]
CHECK_RESULT $? 0 0 "/usr/share/help/C/libbytesize/index.docbook文件不存在"
# 如果测试前未安装,则卸载软件包
if [ $already_installed -eq 0 ]; then
LOG_INFO "卸载libbytesize-help软件包"
dnf remove -y libbytesize-help
CHECK_RESULT $? 0 0 "卸载libbytesize-help软件包失败"
LOG_INFO "已恢复环境libbytesize-help软件包已卸载"
else
LOG_INFO "保持libbytesize-help软件包安装状态"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

Some files were not shown because too many files have changed in this diff Show More