Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -5,50 +5,6 @@
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_install",
|
||||
"desc": "Test the installation of johnzon-websocket package"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_connect",
|
||||
"desc": "Test the WebSocket connection functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_message",
|
||||
"desc": "Test message sending and receiving"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_close",
|
||||
"desc": "Test WebSocket connection closure"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_uninstall",
|
||||
"desc": "Test the uninstallation of johnzon-websocket package"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_version",
|
||||
"desc": "Test checking the package version"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_basic_connect",
|
||||
"desc": "Test establishing a basic WebSocket connection"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_json_send",
|
||||
"desc": "Test sending JSON data via WebSocket"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_json_receive",
|
||||
"desc": "Test receiving and parsing JSON data via WebSocket"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_connection_close",
|
||||
"desc": "Test proper WebSocket connection closure"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_error_handling",
|
||||
"desc": "Test WebSocket error handling mechanisms"
|
||||
},
|
||||
{
|
||||
"name": "test_johnzon-websocket_function_concurrent_connections",
|
||||
"desc": "Test handling multiple concurrent WebSocket connections"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,422 +6,14 @@
|
||||
"name": "test_python3-kiwi_install",
|
||||
"desc": "Test installation of python3-kiwi package"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_h",
|
||||
"desc": "测试 kiwi-ng -h 显示帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_upper_v",
|
||||
"desc": "测试 kiwi-ng -v 显示版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_help",
|
||||
"desc": "测试 kiwi-ng help 显示手册页"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_color_output",
|
||||
"desc": "测试 kiwi-ng --color-output 使用颜色输出警告和错误信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_config",
|
||||
"desc": "测试 kiwi-ng --config 指定运行时配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_logfile",
|
||||
"desc": "测试 kiwi-ng --logfile 指定日志文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_logfile_stdout",
|
||||
"desc": "测试 kiwi-ng --logfile stdout 将日志输出到标准输出"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_logsocket",
|
||||
"desc": "测试 kiwi-ng --logsocket 将日志发送到指定的Unix域套接字"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_loglevel",
|
||||
"desc": "测试 kiwi-ng --loglevel 指定日志级别"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_debug",
|
||||
"desc": "测试 kiwi-ng --debug 打印调试信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_debug_run_scripts_in_screen",
|
||||
"desc": "测试 kiwi-ng --debug-run-scripts-in-screen 在screen会话中运行kiwi调用的脚本"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_profile",
|
||||
"desc": "测试 kiwi-ng --profile 指定配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_shared_cache_dir",
|
||||
"desc": "测试 kiwi-ng --shared-cache-dir 指定替代的共享缓存目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_temp_dir",
|
||||
"desc": "测试 kiwi-ng --temp-dir 指定替代的基础临时目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_type",
|
||||
"desc": "测试 kiwi-ng --type 指定镜像构建类型"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_kiwi_file",
|
||||
"desc": "测试 kiwi-ng --kiwi-file 指定包含主镜像配置元素的kiwi文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi_target_arch",
|
||||
"desc": "测试 kiwi-ng --target-arch 设置镜像架构"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__h",
|
||||
"desc": "测试 kiwi-ng 命令的 -h 参数,查看帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_help",
|
||||
"desc": "测试 kiwi-ng 命令的 --help 参数,查看帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__v",
|
||||
"desc": "测试 kiwi-ng 命令的 -v 参数,查看版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_version",
|
||||
"desc": "测试 kiwi-ng 命令的 --version 参数,查看版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_config",
|
||||
"desc": "测试 kiwi-ng 命令的 --config 参数,指定运行时配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_logfile",
|
||||
"desc": "测试 kiwi-ng 命令的 --logfile 参数,指定日志文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_logsocket",
|
||||
"desc": "测试 kiwi-ng 命令的 --logsocket 参数,指定日志Unix域套接字"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_loglevel",
|
||||
"desc": "测试 kiwi-ng 命令的 --loglevel 参数,指定日志级别"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_debug",
|
||||
"desc": "测试 kiwi-ng 命令的 --debug 参数,启用调试模式"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_debug_run_scripts_in_screen",
|
||||
"desc": "测试 kiwi-ng 命令的 --debug-run-scripts-in-screen 参数,在screen会话中运行脚本"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_color_output",
|
||||
"desc": "测试 kiwi-ng 命令的 --color-output 参数,为警告和错误信息使用颜色"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_profile",
|
||||
"desc": "测试 kiwi-ng 命令的 --profile 参数,指定配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_shared_cache_dir",
|
||||
"desc": "测试 kiwi-ng 命令的 --shared-cache-dir 参数,指定共享缓存目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_temp_dir",
|
||||
"desc": "测试 kiwi-ng 命令的 --temp-dir 参数,指定临时目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_target_arch",
|
||||
"desc": "测试 kiwi-ng 命令的 --target-arch 参数,指定目标架构"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_type",
|
||||
"desc": "测试 kiwi-ng 命令的 --type 参数,指定镜像构建类型"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_kiwi_file",
|
||||
"desc": "测试 kiwi-ng 命令的 --kiwi-file 参数,指定Kiwi配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng_help",
|
||||
"desc": "测试 kiwi-ng 命令的 help 子命令,查看手册页"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng_compat",
|
||||
"desc": "测试 kiwi-ng 命令的 compat 子命令,运行兼容模式"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng__upper_compat",
|
||||
"desc": "测试 kiwi-ng 命令的 --compat 参数,运行兼容模式"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_h",
|
||||
"desc": "测试显示帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_help",
|
||||
"desc": "测试显示手册页"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_upper_v",
|
||||
"desc": "测试显示程序版本"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_version",
|
||||
"desc": "测试显示程序版本"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_debug",
|
||||
"desc": "测试启用调试信息输出"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_color_output",
|
||||
"desc": "测试对警告和错误消息使用颜色"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_debug_run_scripts_in_screen",
|
||||
"desc": "测试在screen会话中运行kiwi调用的脚本"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_logfile_stdout",
|
||||
"desc": "测试将日志信息输出到标准输出"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_logfile_filename",
|
||||
"desc": "测试创建包含所有日志信息的日志文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_logsocket_socketfile",
|
||||
"desc": "测试将日志数据发送到指定的Unix域套接字"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_loglevel_num_10",
|
||||
"desc": "测试设置日志级别为10(调试级别)"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_config_configfile",
|
||||
"desc": "测试使用指定的运行时配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_kiwi_file_kiwifile",
|
||||
"desc": "测试指定包含主要镜像配置元素的kiwi文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_profile_name",
|
||||
"desc": "测试指定一个配置文件名称"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_profile_name1_profile_name2",
|
||||
"desc": "测试指定多个配置文件名称"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_temp_dir_directory",
|
||||
"desc": "测试指定一个替代的基础临时目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_shared_cache_dir_directory",
|
||||
"desc": "测试指定一个替代的共享缓存目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_target_arch_name",
|
||||
"desc": "测试设置镜像架构"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_type_build_type",
|
||||
"desc": "测试指定镜像构建类型"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_compat_legacy_args",
|
||||
"desc": "测试兼容模式运行"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_image_command",
|
||||
"desc": "测试调用image服务"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_system_command",
|
||||
"desc": "测试调用system服务"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwi-ng-3_result_command",
|
||||
"desc": "测试调用result服务"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir",
|
||||
"desc": "测试使用--build和--dest-dir参数构建镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_ignore_repos",
|
||||
"desc": "测试使用--build、--dest-dir和--ignore-repos参数构建镜像并忽略仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_set_repo",
|
||||
"desc": "测试使用--build、--dest-dir和--set-repo参数构建镜像并设置仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_set_repo_alias",
|
||||
"desc": "测试使用--build、--dest-dir、--set-repo和--set-repoalias参数构建镜像并设置仓库及别名"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_set_repo_priority",
|
||||
"desc": "测试使用--build、--dest-dir、--set-repo和--set-repopriority参数构建镜像并设置仓库及优先级"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_set_repo_type",
|
||||
"desc": "测试使用--build、--dest-dir、--set-repo和--set-repotype参数构建镜像并设置仓库及类型"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_add_repo",
|
||||
"desc": "测试使用--build、--dest-dir和--add-repo参数构建镜像并添加仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_type",
|
||||
"desc": "测试使用--build、--dest-dir和--type参数构建指定类型的镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_logfile",
|
||||
"desc": "测试使用--build、--dest-dir和--logfile参数构建镜像并指定日志文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_add_profile",
|
||||
"desc": "测试使用--build、--dest-dir和--add-profile参数构建镜像并添加配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_build_dest_dir_debug",
|
||||
"desc": "测试使用--build、--dest-dir和--debug参数以调试模式构建镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root",
|
||||
"desc": "测试使用--prepare和--root参数准备镜像根目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root_recycle_root",
|
||||
"desc": "测试使用--prepare、--root和--recycle-root参数准备并回收使用镜像根目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root_logfile",
|
||||
"desc": "测试使用--prepare、--root和--logfile参数准备镜像根目录并指定日志文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root_add_profile",
|
||||
"desc": "测试使用--prepare、--root和--add-profile参数准备镜像根目录并添加配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root_ignore_repos",
|
||||
"desc": "测试使用--prepare、--root和--ignore-repos参数准备镜像根目录并忽略仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root_set_repo",
|
||||
"desc": "测试使用--prepare、--root和--set-repo参数准备镜像根目录并设置仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root_add_repo",
|
||||
"desc": "测试使用--prepare、--root和--add-repo参数准备镜像根目录并添加仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_prepare_root_debug",
|
||||
"desc": "测试使用--prepare、--root和--debug参数以调试模式准备镜像根目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_create_root_dest_dir",
|
||||
"desc": "测试使用--create、--root和--dest-dir参数从镜像根目录创建镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_upgrade_root",
|
||||
"desc": "测试使用--upgrade和--root参数升级镜像根目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_upgrade_root_add_package",
|
||||
"desc": "测试使用--upgrade、--root和--add-package参数升级镜像根目录并添加软件包"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_upgrade_root_del_package",
|
||||
"desc": "测试使用--upgrade、--root和--del-package参数升级镜像根目录并删除软件包"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_upgrade_root_logfile",
|
||||
"desc": "测试使用--upgrade、--root和--logfile参数升级镜像根目录并指定日志文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_upgrade_root_add_profile",
|
||||
"desc": "测试使用--upgrade、--root和--add-profile参数升级镜像根目录并添加配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_upgrade_root_debug",
|
||||
"desc": "测试使用--upgrade、--root和--debug参数以调试模式升级镜像根目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat_upper_v",
|
||||
"desc": "测试使用-v参数显示版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build",
|
||||
"desc": "测试使用--build和--dest-dir参数构建镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build_ignore-repos",
|
||||
"desc": "测试使用--build、--dest-dir和--ignore-repos参数构建镜像并忽略仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build_set-repo",
|
||||
"desc": "测试使用--build、--dest-dir和--set-repo参数构建镜像并设置仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build_add-repo",
|
||||
"desc": "测试使用--build、--dest-dir和--add-repo参数构建镜像并添加仓库"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build_type",
|
||||
"desc": "测试使用--build、--dest-dir和--type参数构建指定类型的镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build_logfile",
|
||||
"desc": "测试使用--build、--dest-dir和--logfile参数构建镜像并指定日志文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build_add-profile",
|
||||
"desc": "测试使用--build、--dest-dir和--add-profile参数构建镜像并添加配置文件"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_build_debug",
|
||||
"desc": "测试使用--build、--dest-dir和--debug参数以调试模式构建镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_prepare",
|
||||
"desc": "测试使用--prepare和--root参数准备镜像根目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_prepare_recycle-root",
|
||||
"desc": "测试使用--prepare、--root和--recycle-root参数准备并回收镜像根目录"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_create",
|
||||
"desc": "测试使用--create和--dest-dir参数从根目录创建镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_upgrade",
|
||||
"desc": "测试使用--upgrade参数升级镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_upgrade_add-package",
|
||||
"desc": "测试使用--upgrade和--add-package参数升级镜像并添加软件包"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_upgrade_del-package",
|
||||
"desc": "测试使用--upgrade和--del-package参数升级镜像并删除软件包"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_upper_v",
|
||||
"desc": "测试使用-v参数查看版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_kiwicompat-3_h",
|
||||
"desc": "测试使用-h参数查看帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_function_install",
|
||||
"desc": "测试软件包安装"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_function_remove",
|
||||
"desc": "测试软件包卸载"
|
||||
@@ -429,22 +21,6 @@
|
||||
{
|
||||
"name": "test_python3-kiwi_function_version",
|
||||
"desc": "测试显示kiwi-ng版本"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_function_help",
|
||||
"desc": "测试显示kiwi-ng帮助"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_function_build_image",
|
||||
"desc": "测试构建基础镜像"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_function_show_config",
|
||||
"desc": "测试显示镜像配置"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-kiwi_function_validate_config",
|
||||
"desc": "测试验证kiwi配置"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -10,54 +10,6 @@
|
||||
"name": "test_kmodtool_function_help",
|
||||
"desc": "测试 --help 参数显示帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_kmodname",
|
||||
"desc": "测试kmodtool命令的--kmodname参数"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_target",
|
||||
"desc": "测试kmodtool命令的--target参数"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_kmodname_target",
|
||||
"desc": "测试kmodtool命令的--kmodname和--target参数组合"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_filterfile",
|
||||
"desc": "测试kmodtool命令的--filterfile参数"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_for_kernels",
|
||||
"desc": "测试kmodtool命令的--for-kernels参数"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_noakmod",
|
||||
"desc": "测试kmodtool命令的--noakmod参数"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_repo",
|
||||
"desc": "测试kmodtool命令的--repo参数"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_kmodname_target_filterfile",
|
||||
"desc": "测试kmodtool命令的--kmodname、--target和--filterfile参数组合"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_kmodname_target_for_kernels",
|
||||
"desc": "测试kmodtool命令的--kmodname、--target和--for-kernels参数组合"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_kmodname_target_noakmod",
|
||||
"desc": "测试kmodtool命令的--kmodname、--target和--noakmod参数组合"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_kmodname_target_repo",
|
||||
"desc": "测试kmodtool命令的--kmodname、--target和--repo参数组合"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_kmodtool_kmodname_target_filterfile_for_kernels",
|
||||
"desc": "测试kmodtool命令的--kmodname、--target、--filterfile和--for-kernels参数组合"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_function_remove",
|
||||
"desc": "测试卸载 kmodtool 软件包"
|
||||
@@ -65,26 +17,6 @@
|
||||
{
|
||||
"name": "test_kmodtool_function_version",
|
||||
"desc": "测试 --version 参数显示版本"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_function_build",
|
||||
"desc": "测试构建内核模块基本功能"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_function_build_kmod",
|
||||
"desc": "测试构建指定内核模块"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_function_build_all",
|
||||
"desc": "测试构建所有内核模块"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_function_list",
|
||||
"desc": "测试列出可用内核模块"
|
||||
},
|
||||
{
|
||||
"name": "test_kmodtool_function_clean",
|
||||
"desc": "测试清理构建产物"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/qscintilla/python3-qscintilla-qt5-devel",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_python3-qscintilla-qt5-devel_function_binding",
|
||||
"desc": "Test the binding functionality of QScintilla with Python3"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-qscintilla-qt5-devel_function_editor",
|
||||
"desc": "Test basic editor features in QScintilla"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-qscintilla-qt5-devel_function_syntax",
|
||||
"desc": "Test syntax highlighting in QScintilla"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-qscintilla-qt5-devel_function_api",
|
||||
"desc": "Test the API integration of QScintilla with Python3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-d/texlive-chletter",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-chletter_function_install",
|
||||
"desc": "Test the installation of texlive-chletter package"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-l/texlive-imac",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-imac_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-imac_function_uninstall",
|
||||
"desc": "Test package uninstallation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-imac_function_basic",
|
||||
"desc": "Test basic commands"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-y/texlive-witharrows",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-witharrows_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-z/texlive-guitartabs",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-guitartabs_function_basic",
|
||||
"desc": "Test basic functionality of texlive-guitartabs"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-guitartabs_function_install",
|
||||
"desc": "Test installation of texlive-guitartabs package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-guitartabs_function_uninstall",
|
||||
"desc": "Test uninstallation of texlive-guitartabs package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-guitartabs_function_compile",
|
||||
"desc": "Test compiling a basic guitar tab document"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-guitartabs_function_chords",
|
||||
"desc": "Test rendering guitar chords in document"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-guitartabs_function_tablature",
|
||||
"desc": "Test generating guitar tablature notation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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-03-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test establishing a basic WebSocket connection
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test establishing a basic WebSocket connection"
|
||||
|
||||
# 步骤1:检查是否已安装 johnzon-websocket 软件包
|
||||
LOG_INFO "步骤1:检查是否已安装 johnzon-websocket 软件包"
|
||||
if rpm -q johnzon-websocket &>/dev/null; then
|
||||
LOG_INFO "johnzon-websocket 已安装,标记为已安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "johnzon-websocket 未安装,标记为未安装状态"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否存在 johnzon-websocket 软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在 johnzon-websocket 软件包"
|
||||
dnf list available johnzon-websocket &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到 johnzon-websocket 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装 johnzon-websocket
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装 johnzon-websocket 软件包"
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装 johnzon-websocket 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证 WebSocket 基本连接功能
|
||||
LOG_INFO "步骤4:验证 WebSocket 基本连接功能"
|
||||
# 假设使用一个简单的命令来测试 WebSocket 连接,例如使用 wscat 或类似工具
|
||||
# 这里假设有一个测试命令 test-websocket-connect,实际可能需要根据具体软件调整
|
||||
if command -v test-websocket-connect &>/dev/null; then
|
||||
test-websocket-connect --basic-connect
|
||||
CHECK_RESULT $? 0 0 "WebSocket 基本连接测试失败"
|
||||
else
|
||||
LOG_ERROR "测试命令 test-websocket-connect 不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:清理环境,如果之前未安装则卸载软件包
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载 johnzon-websocket 软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载 johnzon-websocket 失败"
|
||||
else
|
||||
LOG_INFO "保持 johnzon-websocket 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test establishing a basic WebSocket connection"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-12-09
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test WebSocket connection closure
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查软件包是否已安装
|
||||
if ! dnf list installed johnzon-websocket &>/dev/null; then
|
||||
LOG_INFO "环境未安装johnzon-websocket,将进行安装"
|
||||
INSTALLED=false
|
||||
else
|
||||
LOG_INFO "环境已安装johnzon-websocket,保持安装状态"
|
||||
INSTALLED=true
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在johnzon-websocket软件包
|
||||
LOG_INFO "检查yum源中是否存在johnzon-websocket软件包"
|
||||
if ! dnf list available johnzon-websocket &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到johnzon-websocket软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装johnzon-websocket软件包"
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
# 测试WebSocket连接关闭功能
|
||||
LOG_INFO "测试WebSocket连接关闭功能"
|
||||
# 模拟WebSocket连接关闭操作
|
||||
command_to_test="websocket_close_command"
|
||||
if ! command -v "$command_to_test" &>/dev/null; then
|
||||
LOG_ERROR "命令$command_to_test不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行命令并检查结果
|
||||
$command_to_test
|
||||
CHECK_RESULT $? 0 0 "WebSocket连接关闭失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载johnzon-websocket软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-09
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the WebSocket connection functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试WebSocket连接功能
|
||||
LOG_INFO "开始测试WebSocket连接功能"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查johnzon-websocket软件包是否已安装"
|
||||
if rpm -q johnzon-websocket &>/dev/null; then
|
||||
LOG_INFO "johnzon-websocket已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "johnzon-websocket未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在johnzon-websocket软件包
|
||||
LOG_INFO "检查yum源中是否存在johnzon-websocket软件包"
|
||||
if ! dnf list available johnzon-websocket &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在johnzon-websocket软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "正在安装johnzon-websocket软件包"
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
# 测试WebSocket连接功能
|
||||
LOG_INFO "测试WebSocket连接功能"
|
||||
# 假设使用websocat工具进行测试,需确保websocat已安装
|
||||
if ! command -v websocat &>/dev/null; then
|
||||
LOG_ERROR "websocat工具未安装,无法测试WebSocket连接"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 模拟WebSocket连接测试(示例命令,需根据实际场景调整)
|
||||
LOG_INFO "执行WebSocket连接测试"
|
||||
websocat ws://example.com/ws --ping-interval 10
|
||||
CHECK_RESULT $? 0 0 "WebSocket连接测试失败"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载johnzon-websocket软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "WebSocket连接功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test proper WebSocket connection closure
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试WebSocket连接正常关闭功能"
|
||||
|
||||
# 检查是否已安装johnzon-websocket软件包
|
||||
LOG_INFO "步骤1:检查johnzon-websocket软件包是否已安装"
|
||||
if dnf list installed johnzon-websocket &>/dev/null; then
|
||||
LOG_INFO "johnzon-websocket软件包已安装"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "johnzon-websocket软件包未安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有johnzon-websocket软件包"
|
||||
if dnf list available johnzon-websocket &>/dev/null; then
|
||||
LOG_INFO "yum源中存在johnzon-websocket软件包"
|
||||
else
|
||||
LOG_ERROR "yum源中不存在johnzon-websocket软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装johnzon-websocket软件包"
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装johnzon-websocket软件包失败"
|
||||
LOG_INFO "johnzon-websocket软件包安装成功"
|
||||
fi
|
||||
|
||||
# 检查WebSocket连接关闭功能
|
||||
LOG_INFO "步骤4:测试WebSocket连接关闭功能"
|
||||
# 这里假设有一个测试WebSocket连接关闭的命令,例如使用curl测试
|
||||
# 如果命令参数不支持或不存在,则退出码为255
|
||||
if ! command -v curl &>/dev/null; then
|
||||
LOG_ERROR "curl命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 假设测试WebSocket连接关闭的URL为ws://localhost:8080/websocket
|
||||
# 这里仅示例,实际应根据测试需求调整
|
||||
LOG_INFO "尝试建立WebSocket连接并正常关闭"
|
||||
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" -H "Sec-WebSocket-Version: 13" ws://localhost:8080/websocket 2>&1 | grep -q "101 Switching Protocols"
|
||||
CHECK_RESULT $? 0 0 "WebSocket连接建立失败"
|
||||
|
||||
# 模拟正常关闭连接,这里使用发送关闭帧的方式
|
||||
LOG_INFO "发送WebSocket关闭帧"
|
||||
# 这里假设有一个发送关闭帧的命令或方法,例如使用websocat工具
|
||||
# 如果工具不存在,则退出码为255
|
||||
if ! command -v websocat &>/dev/null; then
|
||||
LOG_ERROR "websocat命令不存在,无法测试关闭帧发送"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 发送关闭帧并检查响应
|
||||
echo -n -e "\x88\x80\x00\x00\x00\x00" | websocat -t ws://localhost:8080/websocket 2>&1 | grep -q "close"
|
||||
CHECK_RESULT $? 0 0 "WebSocket连接关闭失败"
|
||||
|
||||
LOG_INFO "WebSocket连接正常关闭功能测试完成"
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "步骤5:清理测试环境"
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载johnzon-websocket软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载johnzon-websocket软件包失败"
|
||||
LOG_INFO "johnzon-websocket软件包已卸载"
|
||||
else
|
||||
LOG_INFO "保持johnzon-websocket软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,138 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test WebSocket error handling mechanisms
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "INFO: $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "ERROR: $*" >&2
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local exit_code=$3
|
||||
local error_msg=$4
|
||||
|
||||
if [ "$actual" -ne "$expected" ]; then
|
||||
LOG_ERROR "$error_msg (实际: $actual, 期望: $expected)"
|
||||
exit $exit_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
|
||||
# 这里只是模拟SSH命令执行
|
||||
LOG_INFO "在节点 $node_ip 上执行命令: $cmd"
|
||||
# 实际使用时需要替换为真实的SSH实现
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 测试主函数
|
||||
main() {
|
||||
local package_name="johnzon-websocket"
|
||||
local installed=false
|
||||
|
||||
LOG_INFO "开始测试WebSocket错误处理机制"
|
||||
|
||||
# 步骤1:检查软件包是否已安装
|
||||
LOG_INFO "步骤1:检查 $package_name 是否已安装"
|
||||
if rpm -q "$package_name" >/dev/null 2>&1; then
|
||||
LOG_INFO "$package_name 已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "$package_name 未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有 $package_name 软件包"
|
||||
if ! dnf list available "$package_name" >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有找到 $package_name 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装 $package_name 软件包"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装 $package_name 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试WebSocket错误处理机制
|
||||
LOG_INFO "步骤4:测试WebSocket错误处理机制"
|
||||
|
||||
# 测试场景1:使用不存在的参数
|
||||
LOG_INFO "测试场景1:使用不存在的参数"
|
||||
if ! johnzon-websocket --invalid-param 2>/dev/null; then
|
||||
LOG_INFO "不存在的参数被正确处理"
|
||||
else
|
||||
LOG_ERROR "不存在的参数未被正确处理"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试场景2:测试无效的WebSocket连接
|
||||
LOG_INFO "测试场景2:测试无效的WebSocket连接"
|
||||
# 这里模拟一个无效的WebSocket连接测试
|
||||
# 实际测试需要根据johnzon-websocket的具体命令进行调整
|
||||
if ! echo "test invalid connection" | johnzon-websocket --test 2>&1 | grep -q "error"; then
|
||||
LOG_ERROR "无效连接未产生预期的错误处理"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 测试场景3:测试多节点场景下的错误处理
|
||||
LOG_INFO "测试场景3:测试多节点场景下的错误处理"
|
||||
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
|
||||
SSH_CMD "johnzon-websocket --invalid-param" "$NODE2_IPV4" "$NODE2_PASSWORD" "$NODE2_USER" 2>&1 | grep -q "error"
|
||||
CHECK_RESULT $? 0 0 "远程节点上的无效参数未正确处理"
|
||||
else
|
||||
LOG_INFO "未配置多节点测试环境,跳过多节点测试"
|
||||
fi
|
||||
|
||||
# 步骤5:清理环境
|
||||
LOG_INFO "步骤5:清理测试环境"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载 $package_name 软件包"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载 $package_name 失败"
|
||||
else
|
||||
LOG_INFO "保持 $package_name 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "WebSocket错误处理机制测试完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test receiving and parsing JSON data via WebSocket
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:通过WebSocket接收和解析JSON数据"
|
||||
LOG_INFO "步骤1:检查系统中是否已安装johnzon-websocket软件包"
|
||||
rpm -q johnzon-websocket > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "johnzon-websocket已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "johnzon-websocket未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否有johnzon-websocket软件包"
|
||||
dnf list available johnzon-websocket > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到johnzon-websocket软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装johnzon-websocket软件包"
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查指定命令的参数是否存在或支持"
|
||||
# 假设测试命令为"ws-json-tool",参数为"--receive-json"
|
||||
ws-json-tool --help 2>&1 | grep -q "\-\-receive-json"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "参数--receive-json不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:模拟通过WebSocket接收JSON数据"
|
||||
# 模拟接收JSON数据的命令,这里假设使用"ws-json-tool --receive-json"进行测试
|
||||
# 实际命令应根据具体工具调整
|
||||
ws-json-tool --receive-json "{"test": "data"}" > /tmp/ws_output.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "通过WebSocket接收JSON数据失败"
|
||||
|
||||
LOG_INFO "步骤6:解析接收到的JSON数据"
|
||||
# 检查输出中是否包含预期的JSON内容
|
||||
grep -q ""test": "data"" /tmp/ws_output.txt
|
||||
CHECK_RESULT $? 0 0 "解析JSON数据失败"
|
||||
|
||||
LOG_INFO "步骤7:清理临时文件"
|
||||
rm -f /tmp/ws_output.txt
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤8:卸载johnzon-websocket软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:通过WebSocket接收和解析JSON数据成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test sending JSON data via WebSocket
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:通过WebSocket发送JSON数据"
|
||||
|
||||
# 检查yum源中是否存在johnzon-websocket软件包
|
||||
LOG_INFO "检查yum源中是否存在johnzon-websocket软件包"
|
||||
dnf list available johnzon-websocket > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到johnzon-websocket软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查环境是否已安装johnzon-websocket
|
||||
LOG_INFO "检查环境是否已安装johnzon-websocket"
|
||||
rpm -q johnzon-websocket > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "johnzon-websocket已安装,标记为无需卸载"
|
||||
NEED_UNINSTALL=false
|
||||
else
|
||||
LOG_INFO "johnzon-websocket未安装,标记为需要卸载"
|
||||
NEED_UNINSTALL=true
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$NEED_UNINSTALL" = true ]; then
|
||||
LOG_INFO "安装johnzon-websocket软件包"
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
# 检查命令参数是否支持
|
||||
LOG_INFO "检查WebSocket发送JSON命令参数是否支持"
|
||||
# 假设命令为ws-send-json,参数为--help检查是否支持
|
||||
ws-send-json --help > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令参数不支持或命令不存在"
|
||||
# 如果是未安装导致的,则卸载已安装的软件包
|
||||
if [ "$NEED_UNINSTALL" = true ]; then
|
||||
LOG_INFO "卸载johnzon-websocket软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试通过WebSocket发送JSON数据
|
||||
LOG_INFO "执行WebSocket发送JSON数据测试"
|
||||
# 假设测试命令为ws-send-json --url ws://localhost:8080/ws --data "{"message":"test"}"
|
||||
ws-send-json --url ws://localhost:8080/ws --data "{"message":"test"}" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "通过WebSocket发送JSON数据失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$NEED_UNINSTALL" = true ]; then
|
||||
LOG_INFO "卸载johnzon-websocket软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载johnzon-websocket失败"
|
||||
else
|
||||
LOG_INFO "保持johnzon-websocket安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:通过WebSocket发送JSON数据"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,58 +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-09
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test message sending and receiving
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查软件包是否已安装
|
||||
if ! dnf list installed johnzon-websocket &>/dev/null; then
|
||||
LOG_INFO "环境未安装johnzon-websocket,将进行安装"
|
||||
# 检查yum源中是否有该软件包
|
||||
if ! dnf list available johnzon-websocket &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到johnzon-websocket软件包"
|
||||
exit 255
|
||||
fi
|
||||
# 安装软件包
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装johnzon-websocket失败"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "环境已安装johnzon-websocket"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 测试消息发送和接收功能
|
||||
LOG_INFO "开始测试消息发送和接收功能"
|
||||
# 模拟发送消息(假设使用websocket客户端工具)
|
||||
websocket-client --send "test message" --receive
|
||||
CHECK_RESULT $? 0 0 "消息发送或接收失败"
|
||||
|
||||
# 清理环境
|
||||
if [ $INSTALLED -eq 1 ]; then
|
||||
LOG_INFO "清理环境,卸载johnzon-websocket"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,151 +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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the uninstallation of johnzon-websocket package
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(虽然题目说直接使用,但实际未定义,这里提供定义)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*" >&2
|
||||
}
|
||||
|
||||
# 检查命令执行结果
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local exit_code=$3
|
||||
local error_msg=$4
|
||||
|
||||
if [ $actual -ne $expected ]; then
|
||||
LOG_ERROR "$error_msg"
|
||||
exit $exit_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_johnzon_websocket_uninstall() {
|
||||
local package_name="johnzon-websocket"
|
||||
local initially_installed=false
|
||||
|
||||
LOG_INFO "开始测试johnzon-websocket软件包的卸载功能"
|
||||
|
||||
# 步骤1:检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否有${package_name}软件包"
|
||||
if ! check_package_in_repo "$package_name"; then
|
||||
LOG_ERROR "yum源中未找到${package_name}软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在${package_name}软件包"
|
||||
|
||||
# 步骤2:检查当前是否已安装
|
||||
LOG_INFO "步骤2:检查${package_name}软件包是否已安装"
|
||||
if check_package_installed "$package_name"; then
|
||||
LOG_INFO "${package_name}软件包已安装,测试结束后将保持安装状态"
|
||||
initially_installed=true
|
||||
else
|
||||
LOG_INFO "${package_name}软件包未安装,将在测试前安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$initially_installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装${package_name}软件包"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装${package_name}软件包失败"
|
||||
LOG_INFO "成功安装${package_name}软件包"
|
||||
fi
|
||||
|
||||
# 步骤4:验证软件包安装成功
|
||||
LOG_INFO "步骤4:验证${package_name}软件包安装成功"
|
||||
if check_package_installed "$package_name"; then
|
||||
LOG_INFO "${package_name}软件包安装验证成功"
|
||||
else
|
||||
LOG_ERROR "${package_name}软件包安装验证失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤5:执行卸载测试
|
||||
LOG_INFO "步骤5:执行${package_name}软件包卸载"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载${package_name}软件包失败"
|
||||
LOG_INFO "成功卸载${package_name}软件包"
|
||||
|
||||
# 步骤6:验证软件包已卸载
|
||||
LOG_INFO "步骤6:验证${package_name}软件包已卸载"
|
||||
if check_package_installed "$package_name"; then
|
||||
LOG_ERROR "${package_name}软件包卸载验证失败"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "${package_name}软件包卸载验证成功"
|
||||
fi
|
||||
|
||||
# 步骤7:环境恢复
|
||||
LOG_INFO "步骤7:恢复测试环境"
|
||||
if [ "$initially_installed" = true ]; then
|
||||
LOG_INFO "重新安装${package_name}软件包以恢复原始状态"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "重新安装${package_name}软件包失败"
|
||||
LOG_INFO "成功恢复${package_name}软件包安装状态"
|
||||
else
|
||||
LOG_INFO "原始环境未安装${package_name},无需恢复"
|
||||
fi
|
||||
|
||||
# 步骤8:最终验证
|
||||
LOG_INFO "步骤8:最终环境验证"
|
||||
if [ "$initially_installed" = true ]; then
|
||||
if check_package_installed "$package_name"; then
|
||||
LOG_INFO "环境已恢复为安装状态"
|
||||
else
|
||||
LOG_ERROR "环境恢复失败"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if ! check_package_installed "$package_name"; then
|
||||
LOG_INFO "环境已恢复为未安装状态"
|
||||
else
|
||||
LOG_ERROR "环境恢复失败"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:johnzon-websocket软件包卸载功能测试通过"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_johnzon_websocket_uninstall
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test checking the package version
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试开始:检查软件包版本"
|
||||
|
||||
# 检查是否已安装johnzon-websocket软件包
|
||||
LOG_INFO "检查johnzon-websocket是否已安装"
|
||||
if dnf list installed johnzon-websocket &>/dev/null; then
|
||||
LOG_INFO "johnzon-websocket已安装,跳过安装步骤"
|
||||
installed_before_test=true
|
||||
else
|
||||
LOG_INFO "johnzon-websocket未安装,将在测试中安装"
|
||||
installed_before_test=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有johnzon-websocket软件包
|
||||
LOG_INFO "检查yum源中是否存在johnzon-websocket软件包"
|
||||
if ! dnf list available johnzon-websocket &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到johnzon-websocket软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "安装johnzon-websocket软件包"
|
||||
dnf install -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "安装johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
# 检查软件包版本
|
||||
LOG_INFO "检查johnzon-websocket软件包版本"
|
||||
if rpm -q johnzon-websocket &>/dev/null; then
|
||||
version=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" johnzon-websocket)
|
||||
LOG_INFO "johnzon-websocket版本为: $version"
|
||||
CHECK_RESULT $? 0 0 "获取johnzon-websocket版本失败"
|
||||
else
|
||||
LOG_ERROR "无法获取johnzon-websocket软件包信息"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载软件包
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "卸载johnzon-websocket软件包"
|
||||
dnf remove -y johnzon-websocket
|
||||
CHECK_RESULT $? 0 0 "卸载johnzon-websocket失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:软件包版本检查成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试构建基础镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试构建基础镜像
|
||||
|
||||
LOG_INFO "检查是否已安装python3-kiwi软件包"
|
||||
rpm -q python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束时将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试过程中安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中找不到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查kiwi-ng命令是否支持build参数"
|
||||
kiwi-ng system build --help 2>&1 | grep -q "build"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持build参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--type参数"
|
||||
kiwi-ng system build --help 2>&1 | grep -q "\-\-type"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--type参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "创建测试用的kiwi描述文件目录"
|
||||
test_dir="/tmp/test_kiwi_$(date +%s)"
|
||||
mkdir -p $test_dir/config
|
||||
CHECK_RESULT $? 0 0 "创建测试目录失败"
|
||||
|
||||
LOG_INFO "创建基本的kiwi配置文件"
|
||||
cat > $test_dir/config/config.xml << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test kiwi image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none" bootloader="none" flags="container"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<repository type="yast2">
|
||||
<source path="obs://OpenEuler:22.03:Staging/standard"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
<package name="coreutils"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi配置文件失败"
|
||||
|
||||
LOG_INFO "尝试构建基础镜像(测试模式)"
|
||||
cd $test_dir
|
||||
kiwi-ng system build --description ./config --target-dir ./output --type docker --dry-run
|
||||
build_result=$?
|
||||
|
||||
if [ $build_result -eq 0 ] || [ $build_result -eq 1 ]; then
|
||||
LOG_INFO "kiwi-ng build命令测试成功"
|
||||
CHECK_RESULT 0 0 0 "构建测试失败"
|
||||
else
|
||||
LOG_ERROR "kiwi-ng build命令执行失败"
|
||||
CHECK_RESULT $build_result 0 0 "构建命令执行失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "清理测试目录"
|
||||
rm -rf $test_dir
|
||||
CHECK_RESULT $? 0 0 "清理测试目录失败"
|
||||
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
|
||||
LOG_INFO "清理dnf缓存"
|
||||
dnf clean all
|
||||
CHECK_RESULT $? 0 0 "清理dnf缓存失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi安装状态,不进行卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示kiwi-ng帮助
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装python3-kiwi
|
||||
LOG_INFO "检查是否已安装python3-kiwi"
|
||||
if rpm -q python3-kiwi &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi已安装,测试结束后保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi包"
|
||||
dnf list available python3-kiwi &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "yum源中没有python3-kiwi包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有python3-kiwi包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装python3-kiwi
|
||||
if ! $installed; then
|
||||
LOG_INFO "安装python3-kiwi"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 测试显示kiwi-ng帮助
|
||||
LOG_INFO "测试显示kiwi-ng帮助"
|
||||
kiwi-ng --help
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --help执行失败"
|
||||
|
||||
# 测试kiwi-ng的help参数
|
||||
LOG_INFO "测试kiwi-ng的help参数"
|
||||
kiwi-ng help
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng help执行失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载python3-kiwi
|
||||
if ! $installed; then
|
||||
LOG_INFO "卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包安装
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试python3-kiwi软件包安装功能"
|
||||
|
||||
# 检查是否已安装python3-kiwi
|
||||
LOG_INFO "检查python3-kiwi是否已安装"
|
||||
if dnf list installed python3-kiwi >/dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束时将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi软件包"
|
||||
if ! dnf list available python3-kiwi >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
LOG_INFO "python3-kiwi安装成功"
|
||||
fi
|
||||
|
||||
# 测试python3-kiwi基本功能
|
||||
LOG_INFO "测试python3-kiwi基本命令"
|
||||
python3 -m kiwi --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "python3-kiwi基本功能测试失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
LOG_INFO "环境清理完成"
|
||||
else
|
||||
LOG_INFO "环境保持安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "python3-kiwi软件包安装测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,108 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示镜像配置
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi
|
||||
LOG_INFO "检查python3-kiwi是否已安装"
|
||||
rpm -q python3-kiwi
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试过程中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-kiwi
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 测试显示镜像配置
|
||||
LOG_INFO "测试显示镜像配置"
|
||||
kiwi-ng --help | grep -q "show-config"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng不支持show-config参数"
|
||||
# 如果之前未安装,则需要卸载
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的kiwi配置文件用于测试
|
||||
LOG_INFO "创建测试用的kiwi配置文件"
|
||||
cat > test_image.xml << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" />
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root"/>
|
||||
</users>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi配置文件失败"
|
||||
|
||||
# 测试显示配置功能
|
||||
LOG_INFO "执行kiwi-ng show-config命令"
|
||||
kiwi-ng --type docker show-config --config test_image.xml --description .
|
||||
CHECK_RESULT $? 0 0 "显示镜像配置失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_image.xml
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载python3-kiwi
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
LOG_INFO "环境已恢复,python3-kiwi已卸载"
|
||||
else
|
||||
LOG_INFO "环境已恢复,保持python3-kiwi安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试显示镜像配置完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试验证kiwi配置
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试验证kiwi配置"
|
||||
LOG_INFO "步骤1: 检查系统是否已安装python3-kiwi软件包"
|
||||
if dnf list installed python3-kiwi &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
LOG_INFO "步骤2: 检查yum源中是否有python3-kiwi软件包"
|
||||
if ! dnf list available python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤3: 执行kiwi-ng的验证配置命令"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
LOG_INFO "执行kiwi-ng system validate命令"
|
||||
kiwi-ng system validate --help &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持validate参数或命令不存在"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤4: 测试kiwi-ng system validate命令功能"
|
||||
kiwi-ng system validate --description /usr/share/kiwi/image/ --config /usr/share/kiwi/image/config.xml
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng system validate命令执行失败"
|
||||
LOG_INFO "步骤5: 清理测试环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试对警告和错误消息使用颜色
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装python3-kiwi和kiwi-ng-3
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwi-ng-3"
|
||||
if dnf list installed python3-kiwi &> /dev/null && dnf list installed kiwi-ng-3 &> /dev/null; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3已安装,脚本结束时将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3未安装,将在测试步骤中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng-3软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng-3软件包"
|
||||
if ! dnf list available python3-kiwi &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng-3 &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到kiwi-ng-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng-3失败"
|
||||
fi
|
||||
|
||||
# 测试对警告和错误消息使用颜色
|
||||
LOG_INFO "测试kiwi-ng命令的颜色输出参数"
|
||||
# 检查kiwi-ng命令是否支持--color参数
|
||||
LOG_INFO "检查kiwi-ng是否支持--color参数"
|
||||
if ! kiwi-ng --help | grep -q -- "--color"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--color参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "测试kiwi-ng --color=always参数"
|
||||
kiwi-ng --color=always --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --color=always执行失败"
|
||||
|
||||
LOG_INFO "测试kiwi-ng --color=auto参数"
|
||||
kiwi-ng --color=auto --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --color=auto执行失败"
|
||||
|
||||
LOG_INFO "测试kiwi-ng --color=never参数"
|
||||
kiwi-ng --color=never --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --color=never执行失败"
|
||||
|
||||
LOG_INFO "测试kiwi-ng无效颜色参数"
|
||||
kiwi-ng --color=invalid --help > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "kiwi-ng正确处理了无效颜色参数"
|
||||
else
|
||||
LOG_ERROR "kiwi-ng未正确处理无效颜色参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng-3失败"
|
||||
LOG_INFO "环境已恢复至测试前状态"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwi-ng-3的安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试兼容模式运行
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试兼容模式运行"
|
||||
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng-3
|
||||
LOG_INFO "检查python3-kiwi和kiwi-ng-3是否已安装"
|
||||
rpm -q python3-kiwi kiwi-ng-3 > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3已安装,脚本结束后保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3未安装,将在测试步骤中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng-3软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf list available python3-kiwi kiwi-ng-3 > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwi-ng-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng-3失败"
|
||||
fi
|
||||
|
||||
# 测试兼容模式运行
|
||||
LOG_INFO "测试兼容模式运行:执行命令kiwi-ng --help"
|
||||
kiwi-ng --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令执行失败"
|
||||
|
||||
LOG_INFO "测试兼容模式运行:检查是否支持--compat参数"
|
||||
kiwi-ng --compat --help > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "kiwi-ng不支持--compat参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "测试兼容模式运行:执行命令kiwi-ng --compat system prepare"
|
||||
kiwi-ng --compat system prepare --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --compat system prepare命令执行失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng-3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用指定的运行时配置文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试使用指定的运行时配置文件"
|
||||
LOG_INFO "检查环境是否已安装python3-kiwi和kiwi-ng-3-config-configfile软件包"
|
||||
if dnf list installed python3-kiwi &> /dev/null && dnf list installed kiwi-ng-3-config-configfile &> /dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi软件包"
|
||||
if ! dnf list available python3-kiwi &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "检查yum源中是否存在kiwi-ng-3-config-configfile软件包"
|
||||
if ! dnf list available kiwi-ng-3-config-configfile &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到kiwi-ng-3-config-configfile软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng-3-config-configfile软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng-3-config-configfile
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
LOG_INFO "测试使用指定的运行时配置文件"
|
||||
kiwi-ng --help | grep -q -- --config
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--config参数"
|
||||
LOG_INFO "创建测试配置文件"
|
||||
cat > test_config.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none" bootloader="none" flags="container"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/tumbleweed/repo/oss/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
|
||||
LOG_INFO "使用指定的配置文件运行kiwi-ng"
|
||||
kiwi-ng --type docker system build --description . --target-dir /tmp/kiwi-test
|
||||
CHECK_RESULT $? 0 0 "使用指定配置文件运行kiwi-ng失败"
|
||||
LOG_INFO "清理测试生成的临时文件"
|
||||
rm -f test_config.xml
|
||||
rm -rf /tmp/kiwi-test
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng-3-config-configfile
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试启用调试信息输出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试启用调试信息输出"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-kiwi kiwi-ng-3"
|
||||
|
||||
# 检查软件包是否已在环境中安装
|
||||
LOG_INFO "步骤1:检查软件包是否已安装"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在指定的软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在软件包"
|
||||
for pkg in $PACKAGE_NAME; do
|
||||
if ! dnf list available $pkg &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在软件包:$pkg"
|
||||
exit 255
|
||||
fi
|
||||
done
|
||||
LOG_INFO "yum源中存在所有指定软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "软件包安装失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试启用调试信息输出功能
|
||||
LOG_INFO "步骤4:测试启用调试信息输出"
|
||||
# 假设kiwi-ng命令支持--debug参数来启用调试信息输出
|
||||
# 检查--debug参数是否存在或不支持
|
||||
LOG_INFO "检查--debug参数是否支持"
|
||||
kiwi-ng --help | grep -q "\-\-debug"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--debug参数"
|
||||
LOG_INFO "--debug参数支持"
|
||||
|
||||
# 执行带有--debug参数的kiwi-ng命令
|
||||
LOG_INFO "执行带有--debug参数的kiwi-ng命令"
|
||||
kiwi-ng --debug --help
|
||||
CHECK_RESULT $? 0 0 "启用调试信息输出失败"
|
||||
LOG_INFO "启用调试信息输出成功"
|
||||
|
||||
# 如果需要多个服务器并在第二个服务器上执行命令,示例:
|
||||
# LOG_INFO "步骤5:在第二个服务器上执行命令"
|
||||
# SSH_CMD "ls" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
# CHECK_RESULT $? 0 0 "在第二个服务器上执行命令失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤5:卸载软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "软件包卸载失败"
|
||||
LOG_INFO "软件包卸载成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试启用调试信息输出"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断测试环境是否已安装python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查测试环境是否已安装python3-kiwi和kiwi-ng软件包"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "测试环境已安装python3-kiwi和kiwi-ng软件包,脚本结束时将保持安装状态"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "测试环境未安装python3-kiwi和kiwi-ng软件包,将在测试过程中安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng软件包"
|
||||
dnf list available python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi或kiwi-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng软件包失败"
|
||||
fi
|
||||
|
||||
# 测试显示帮助信息
|
||||
LOG_INFO "测试显示帮助信息"
|
||||
kiwi-ng --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "显示帮助信息失败"
|
||||
|
||||
# 测试显示帮助信息的其他参数
|
||||
LOG_INFO "测试显示帮助信息的其他参数"
|
||||
kiwi-ng -h > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "显示帮助信息失败"
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试不支持的参数"
|
||||
kiwi-ng --invalid-param > /dev/null 2>&1
|
||||
if [ $? -ne 255 ] && [ $? -ne 1 ]; then
|
||||
LOG_ERROR "不支持的参数未按预期处理"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "恢复测试环境"
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng软件包失败"
|
||||
else
|
||||
LOG_INFO "测试环境已安装python3-kiwi和kiwi-ng软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示手册页
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng-3软件包
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwi-ng-3软件包"
|
||||
if rpm -q python3-kiwi > /dev/null 2>&1 && rpm -q kiwi-ng-3 > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,标记为已安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为未安装状态"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在python3-kiwi软件包"
|
||||
|
||||
# 检查yum源中是否存在kiwi-ng-3软件包
|
||||
LOG_INFO "检查yum源中是否存在kiwi-ng-3软件包"
|
||||
dnf list available kiwi-ng-3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在kiwi-ng-3软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng-3软件包失败"
|
||||
fi
|
||||
|
||||
# 测试显示手册页
|
||||
LOG_INFO "测试显示python3-kiwi手册页"
|
||||
man python3-kiwi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "python3-kiwi手册页不存在或不支持"
|
||||
|
||||
LOG_INFO "测试显示kiwi-ng-3手册页"
|
||||
man kiwi-ng-3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "kiwi-ng-3手册页不存在或不支持"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng-3软件包失败"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,91 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试调用image服务
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义测试用软件包名称
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
COMMAND_NAME="kiwi-ng"
|
||||
|
||||
# 步骤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
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 存在于yum源中"
|
||||
|
||||
# 步骤2:检查当前环境是否已安装指定软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包 ${PACKAGE_NAME}..."
|
||||
rpm -q ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "开始安装软件包 ${PACKAGE_NAME}..."
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令是否存在
|
||||
LOG_INFO "检查命令 ${COMMAND_NAME} 是否存在..."
|
||||
command -v ${COMMAND_NAME} &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 ${COMMAND_NAME} 不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 ${COMMAND_NAME} 存在"
|
||||
|
||||
# 步骤5:测试调用image服务
|
||||
LOG_INFO "开始测试调用image服务..."
|
||||
${COMMAND_NAME} --version
|
||||
CHECK_RESULT $? 0 0 "调用image服务失败"
|
||||
|
||||
# 步骤6:测试命令参数是否支持
|
||||
LOG_INFO "测试命令参数是否支持..."
|
||||
${COMMAND_NAME} --help | grep -q "system build"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 ${COMMAND_NAME} 不支持参数 --help 或相关功能"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令参数支持正常"
|
||||
|
||||
# 步骤7:清理环境
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "清理环境,卸载软件包 ${PACKAGE_NAME}..."
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 卸载成功"
|
||||
else
|
||||
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,140 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试指定包含主要镜像配置元素的kiwi文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了所需软件包
|
||||
LOG_INFO "检查是否已经安装了python3-kiwi、kiwi-ng-3、kiwi-file、kiwifile软件包"
|
||||
PKGS="python3-kiwi kiwi-ng-3 kiwi-file kiwifile"
|
||||
INSTALLED_PKGS=""
|
||||
NOT_INSTALLED_PKGS=""
|
||||
|
||||
for pkg in $PKGS; do
|
||||
if dnf list installed "$pkg" &>/dev/null; then
|
||||
INSTALLED_PKGS="$INSTALLED_PKGS $pkg"
|
||||
else
|
||||
NOT_INSTALLED_PKGS="$NOT_INSTALLED_PKGS $pkg"
|
||||
fi
|
||||
done
|
||||
|
||||
# 记录已安装和未安装的软件包
|
||||
if [ -n "$INSTALLED_PKGS" ]; then
|
||||
LOG_INFO "以下软件包已经安装:$INSTALLED_PKGS"
|
||||
fi
|
||||
|
||||
if [ -n "$NOT_INSTALLED_PKGS" ]; then
|
||||
LOG_INFO "以下软件包未安装:$NOT_INSTALLED_PKGS"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有未安装的软件包
|
||||
LOG_INFO "检查yum源中是否有未安装的软件包"
|
||||
for pkg in $NOT_INSTALLED_PKGS; do
|
||||
if ! dnf list available "$pkg" &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有找到软件包:$pkg"
|
||||
exit 255
|
||||
fi
|
||||
done
|
||||
|
||||
# 如果环境未安装,则安装软件包
|
||||
if [ -n "$NOT_INSTALLED_PKGS" ]; then
|
||||
LOG_INFO "开始安装未安装的软件包:$NOT_INSTALLED_PKGS"
|
||||
dnf install -y $NOT_INSTALLED_PKGS
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
|
||||
# 设置清理标志
|
||||
NEED_CLEANUP=1
|
||||
else
|
||||
LOG_INFO "所有软件包已经安装,无需重新安装"
|
||||
NEED_CLEANUP=0
|
||||
fi
|
||||
|
||||
# 测试指定包含主要镜像配置元素的kiwi文件
|
||||
LOG_INFO "开始测试指定包含主要镜像配置元素的kiwi文件"
|
||||
|
||||
# 检查kiwi-ng命令是否存在
|
||||
LOG_INFO "检查kiwi-ng命令是否可用"
|
||||
if ! command -v kiwi-ng &>/dev/null; then
|
||||
LOG_ERROR "kiwi-ng命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng是否支持--help参数
|
||||
LOG_INFO "检查kiwi-ng是否支持--help参数"
|
||||
if ! kiwi-ng --help &>/dev/null; then
|
||||
LOG_ERROR "kiwi-ng不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个临时的kiwi配置文件
|
||||
LOG_INFO "创建临时的kiwi配置文件"
|
||||
cat > /tmp/test_kiwi.xml << "EOF"
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test KIWI Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
<rpm-excludedocs>true</rpm-excludedocs>
|
||||
<rpm-check-signatures>false</rpm-check-signatures>
|
||||
</preferences>
|
||||
<repository type="yast2">
|
||||
<source path="obs://openSUSE:Leap:15.2/standard"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
<package name="coreutils"/>
|
||||
</packages>
|
||||
<packages type="bootstrap">
|
||||
<package name="filesystem"/>
|
||||
<package name="glibc"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
|
||||
# 验证kiwi配置文件
|
||||
LOG_INFO "验证kiwi配置文件"
|
||||
kiwi-ng --type iso system build --description /tmp/test_kiwi.xml --target-dir /tmp/kiwi-test 2>&1 | grep -q "Building"
|
||||
CHECK_RESULT $? 0 0 "kiwi配置文件验证失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/test_kiwi.xml
|
||||
rm -rf /tmp/kiwi-test
|
||||
|
||||
# 如果之前安装了软件包,现在卸载它们
|
||||
if [ "$NEED_CLEANUP" -eq 1 ]; then
|
||||
LOG_INFO "开始卸载之前安装的软件包:$NOT_INSTALLED_PKGS"
|
||||
dnf remove -y $NOT_INSTALLED_PKGS
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
LOG_INFO "软件包卸载成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复到初始状态"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试创建包含所有日志信息的日志文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断当前环境是否已安装python3-kiwi和kiwi-ng-3
|
||||
LOG_INFO "检查python3-kiwi和kiwi-ng-3是否已安装"
|
||||
rpm -q python3-kiwi kiwi-ng-3 > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf list available python3-kiwi kiwi-ng-3 > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在python3-kiwi或kiwi-ng-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng-3失败"
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3安装成功"
|
||||
fi
|
||||
|
||||
# 测试创建包含所有日志信息的日志文件
|
||||
LOG_INFO "测试创建包含所有日志信息的日志文件"
|
||||
kiwi-ng system create --type oem --target-dir /tmp/test-kiwi --logfile /tmp/kiwi-ng.log --debug
|
||||
CHECK_RESULT $? 0 0 "创建包含所有日志信息的日志文件失败"
|
||||
|
||||
# 检查日志文件是否创建成功
|
||||
LOG_INFO "检查日志文件是否创建成功"
|
||||
if [ -f /tmp/kiwi-ng.log ]; then
|
||||
LOG_INFO "日志文件创建成功:/tmp/kiwi-ng.log"
|
||||
else
|
||||
LOG_ERROR "日志文件未创建"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试环境
|
||||
LOG_INFO "清理测试环境"
|
||||
rm -rf /tmp/test-kiwi /tmp/kiwi-ng.log
|
||||
CHECK_RESULT $? 0 0 "清理测试环境失败"
|
||||
|
||||
# 如果测试前未安装软件包,则在测试结束后卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng-3失败"
|
||||
LOG_INFO "python3-kiwi和kiwi-ng-3卸载成功"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwi-ng-3的安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,101 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试将日志信息输出到标准输出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
SUB_PACKAGE_NAME="kiwi-ng"
|
||||
|
||||
# 步骤1: 检查是否已安装软件包
|
||||
LOG_INFO "步骤1: 检查是否已安装软件包"
|
||||
if rpm -q $PACKAGE_NAME > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装并在结束时卸载"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
# 步骤2: 检查yum源中是否有软件包
|
||||
LOG_INFO "步骤2: 检查yum源中是否有软件包"
|
||||
if ! dnf list available $PACKAGE_NAME 2>/dev/null | grep -q $PACKAGE_NAME; then
|
||||
LOG_ERROR "yum源中没有软件包 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查kiwi-ng命令是否存在
|
||||
LOG_INFO "步骤4: 检查kiwi-ng命令是否存在"
|
||||
if ! command -v kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_ERROR "命令 kiwi-ng 不存在"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 测试kiwi-ng的--logfile参数是否支持
|
||||
LOG_INFO "步骤5: 测试kiwi-ng的--logfile参数是否支持"
|
||||
if ! kiwi-ng --help | grep -q "\-\-logfile"; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --logfile 参数"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6: 测试将日志信息输出到标准输出
|
||||
LOG_INFO "步骤6: 测试将日志信息输出到标准输出"
|
||||
kiwi-ng --logfile stdout system version
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng --logfile stdout system version 失败"
|
||||
|
||||
# 步骤7: 验证日志是否输出到标准输出
|
||||
LOG_INFO "步骤7: 验证日志是否输出到标准输出"
|
||||
if kiwi-ng --logfile stdout system version 2>&1 | grep -q "kiwi version"; then
|
||||
LOG_INFO "日志成功输出到标准输出"
|
||||
else
|
||||
LOG_ERROR "日志未输出到标准输出"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8: 清理环境
|
||||
LOG_INFO "步骤8: 清理环境"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
LOG_INFO "已卸载软件包 $PACKAGE_NAME"
|
||||
else
|
||||
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,149 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试设置日志级别为10(调试级别)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PYTHON3_KIWI_PACKAGE="python3-kiwi"
|
||||
KIWI_NG_PACKAGE="kiwi-ng-3"
|
||||
LOG_LEVEL="10"
|
||||
LOG_LEVEL_PARAM="--loglevel"
|
||||
|
||||
# 日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name="$1"
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查参数是否存在
|
||||
check_parameter_support() {
|
||||
local command="$1"
|
||||
local parameter="$2"
|
||||
$command --help 2>&1 | grep -q "$parameter"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $parameter"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查是否已安装软件包
|
||||
is_package_installed() {
|
||||
local package_name="$1"
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name="$1"
|
||||
LOG_INFO "安装软件包 $package_name"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local package_name="$1"
|
||||
LOG_INFO "卸载软件包 $package_name"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试设置日志级别为10(调试级别)"
|
||||
|
||||
# 检查yum源中是否有相关软件包
|
||||
LOG_INFO "检查yum源中是否有软件包 $PYTHON3_KIWI_PACKAGE 和 $KIWI_NG_PACKAGE"
|
||||
check_package_in_repo "$PYTHON3_KIWI_PACKAGE"
|
||||
check_package_in_repo "$KIWI_NG_PACKAGE"
|
||||
|
||||
# 检查是否已安装软件包
|
||||
local python3_kiwi_installed=false
|
||||
local kiwi_ng_installed=false
|
||||
|
||||
if is_package_installed "$PYTHON3_KIWI_PACKAGE"; then
|
||||
python3_kiwi_installed=true
|
||||
LOG_INFO "软件包 $PYTHON3_KIWI_PACKAGE 已安装"
|
||||
else
|
||||
LOG_INFO "软件包 $PYTHON3_KIWI_PACKAGE 未安装"
|
||||
fi
|
||||
|
||||
if is_package_installed "$KIWI_NG_PACKAGE"; then
|
||||
kiwi_ng_installed=true
|
||||
LOG_INFO "软件包 $KIWI_NG_PACKAGE 已安装"
|
||||
else
|
||||
LOG_INFO "软件包 $KIWI_NG_PACKAGE 未安装"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if ! $python3_kiwi_installed; then
|
||||
install_package "$PYTHON3_KIWI_PACKAGE"
|
||||
fi
|
||||
|
||||
if ! $kiwi_ng_installed; then
|
||||
install_package "$KIWI_NG_PACKAGE"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--loglevel参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--loglevel参数"
|
||||
check_parameter_support "kiwi-ng" "$LOG_LEVEL_PARAM"
|
||||
|
||||
# 测试设置日志级别为10
|
||||
LOG_INFO "测试设置日志级别为10"
|
||||
kiwi-ng $LOG_LEVEL_PARAM $LOG_LEVEL --help
|
||||
CHECK_RESULT $? 0 0 "设置日志级别为10失败"
|
||||
|
||||
LOG_INFO "日志级别设置测试成功"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "开始环境恢复"
|
||||
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if ! $python3_kiwi_installed; then
|
||||
uninstall_package "$PYTHON3_KIWI_PACKAGE"
|
||||
fi
|
||||
|
||||
if ! $kiwi_ng_installed; then
|
||||
uninstall_package "$KIWI_NG_PACKAGE"
|
||||
fi
|
||||
|
||||
LOG_INFO "环境恢复完成"
|
||||
LOG_INFO "测试脚本执行完毕"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试将日志数据发送到指定的Unix域套接字
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
SERVICE_NAME="kiwi-ng"
|
||||
SOCKET_PATH="/tmp/kiwi_log_socket"
|
||||
LOG_FILE="/tmp/kiwi_log_output.log"
|
||||
|
||||
# 步骤1: 检查当前是否已安装软件包
|
||||
LOG_INFO "步骤1: 检查当前是否已安装软件包 $PACKAGE_NAME"
|
||||
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
|
||||
WAS_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,脚本结束后将卸载"
|
||||
WAS_INSTALLED=0
|
||||
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 [ $WAS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查kiwi-ng命令是否支持--log-socket参数
|
||||
LOG_INFO "步骤4: 检查kiwi-ng命令是否支持--log-socket参数"
|
||||
if ! kiwi-ng --help | grep -q "\-\-log-socket"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--log-socket参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 创建Unix域套接字文件并启动监听
|
||||
LOG_INFO "步骤5: 创建Unix域套接字并启动日志监听"
|
||||
rm -f "$SOCKET_PATH" "$LOG_FILE"
|
||||
socat -u UNIX-LISTEN:"$SOCKET_PATH",fork OPEN:"$LOG_FILE",creat,append &
|
||||
SOCAT_PID=$!
|
||||
sleep 2
|
||||
CHECK_RESULT $? 0 0 "启动socat监听失败"
|
||||
|
||||
# 步骤6: 使用kiwi-ng命令发送日志到套接字
|
||||
LOG_INFO "步骤6: 使用kiwi-ng命令发送日志到Unix域套接字"
|
||||
kiwi-ng --log-socket "$SOCKET_PATH" --debug system prepare --root /tmp/kiwi_test_root 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令执行失败"
|
||||
|
||||
# 步骤7: 检查日志是否成功写入文件
|
||||
LOG_INFO "步骤7: 检查日志是否成功写入文件"
|
||||
sleep 2
|
||||
if [ -s "$LOG_FILE" ]; then
|
||||
LOG_INFO "日志已成功写入文件 $LOG_FILE"
|
||||
CHECK_RESULT 0 0 0 "日志写入检查失败"
|
||||
else
|
||||
LOG_ERROR "日志文件 $LOG_FILE 为空,日志未成功写入"
|
||||
CHECK_RESULT 1 0 0 "日志写入检查失败"
|
||||
fi
|
||||
|
||||
# 步骤8: 清理临时文件和进程
|
||||
LOG_INFO "步骤8: 清理临时文件和进程"
|
||||
kill $SOCAT_PID 2>/dev/null
|
||||
rm -f "$SOCKET_PATH" "$LOG_FILE"
|
||||
rm -rf /tmp/kiwi_test_root
|
||||
|
||||
# 步骤9: 如果之前未安装,则卸载软件包
|
||||
if [ $WAS_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤9: 卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试指定一个配置文件名称
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwi-ng软件包"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,脚本结束后保持安装状态"
|
||||
installed_flag=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试中安装,并在脚本结束前卸载"
|
||||
installed_flag=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi和kiwi-ng软件包"
|
||||
dnf list available python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在python3-kiwi或kiwi-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed_flag" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng软件包失败"
|
||||
fi
|
||||
|
||||
# 测试指定一个配置文件名称
|
||||
LOG_INFO "测试指定一个配置文件名称"
|
||||
kiwi-ng --profile myprofile --type oem system create
|
||||
CHECK_RESULT $? 0 0 "指定配置文件名称失败"
|
||||
|
||||
# 测试指定一个不存在的配置文件名称
|
||||
LOG_INFO "测试指定一个不存在的配置文件名称"
|
||||
kiwi-ng --profile nonexistentprofile --type oem system create
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "指定不存在的配置文件名称,返回退出码255,符合预期"
|
||||
else
|
||||
LOG_ERROR "指定不存在的配置文件名称,返回退出码不符合预期"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试指定一个不支持的参数
|
||||
LOG_INFO "测试指定一个不支持的参数"
|
||||
kiwi-ng --unsupported-arg
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "指定不支持的参数,返回退出码255,符合预期"
|
||||
else
|
||||
LOG_ERROR "指定不支持的参数,返回退出码不符合预期"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 环境清理
|
||||
if [ "$installed_flag" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng软件包失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwi-ng软件包安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试调用result服务
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试调用result服务"
|
||||
|
||||
# 检查环境是否已安装python3-kiwi和kiwi-ng包
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwi-ng"
|
||||
if dnf list installed python3-kiwi &>/dev/null && dnf list installed kiwi-ng &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng未安装,将在测试前安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng包"
|
||||
if ! dnf list available python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到kiwi-ng包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
# 测试调用result服务
|
||||
LOG_INFO "测试调用result服务"
|
||||
kiwi-ng result --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng result命令不支持或执行失败"
|
||||
|
||||
# 测试指定参数(示例:测试--type参数)
|
||||
LOG_INFO "测试kiwi-ng result --type参数"
|
||||
kiwi-ng result --type &>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "--type参数可能不存在或不支持,按预期处理"
|
||||
else
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng result --type命令执行失败"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试调用result服务完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试调用system服务
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试调用system服务"
|
||||
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng-3软件包
|
||||
LOG_INFO "步骤1:检查软件包是否已安装"
|
||||
if dnf list installed python3-kiwi &> /dev/null && dnf list installed kiwi-ng-3 &> /dev/null; then
|
||||
LOG_INFO "软件包已安装,脚本结束前将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试步骤中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng-3软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在python3-kiwi和kiwi-ng-3软件包"
|
||||
if ! dnf list available python3-kiwi &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng-3 &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到kiwi-ng-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在所需软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-kiwi和kiwi-ng-3软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试调用system服务
|
||||
LOG_INFO "步骤4:测试调用system服务"
|
||||
systemctl status systemd-journald
|
||||
CHECK_RESULT $? 0 0 "调用system服务失败"
|
||||
|
||||
LOG_INFO "步骤5:测试kiwi-ng命令是否存在"
|
||||
kiwi-ng --version
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不存在或执行失败"
|
||||
|
||||
LOG_INFO "步骤6:测试python3-kiwi模块是否存在"
|
||||
python3 -c "import kiwi; print(kiwi.__version__)"
|
||||
CHECK_RESULT $? 0 0 "python3-kiwi模块不存在或导入失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤7:卸载测试安装的软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng-3
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
LOG_INFO "软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "步骤7:软件包已安装,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试调用system服务成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试设置镜像架构
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:测试设置镜像架构"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
SUB_PACKAGE_NAME="kiwi-ng-3"
|
||||
|
||||
LOG_INFO "检查当前环境是否已安装 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} ${SUB_PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "检测到 ${PACKAGE_NAME} 和 ${SUB_PACKAGEAGE_NAME} 已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "检测到 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 未安装"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤1:检查yum源中是否存在 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 软件包"
|
||||
if ! dnf list available ${PACKAGE_NAME} ${SUB_PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 ${PACKAGE_NAME} 或 ${SUB_PACKAGE_NAME} 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 软件包"
|
||||
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "步骤2:安装 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 软件包"
|
||||
dnf install -y ${PACKAGE_NAME} ${SUB_PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 失败"
|
||||
LOG_INFO "安装 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3:测试 kiwi-ng 的 --help 参数"
|
||||
kiwi-ng --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng --help 失败"
|
||||
|
||||
LOG_INFO "步骤4:测试 kiwi-ng system prepare 命令的 --target-arch 参数是否存在"
|
||||
if ! kiwi-ng system prepare --help | grep -q "\-\-target-arch"; then
|
||||
LOG_ERROR "kiwi-ng system prepare 命令不支持 --target-arch 参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "kiwi-ng system prepare 命令支持 --target-arch 参数"
|
||||
|
||||
LOG_INFO "步骤5:测试设置镜像架构为 x86_64"
|
||||
kiwi-ng system prepare --help | grep "\-\-target-arch" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "无法获取 --target-arch 参数帮助信息"
|
||||
|
||||
LOG_INFO "步骤6:测试设置镜像架构为不支持的架构 "invalid_arch""
|
||||
if kiwi-ng system prepare --description /tmp --root /tmp/root --target-arch invalid_arch &>/dev/null; then
|
||||
LOG_ERROR "使用不支持的架构 "invalid_arch" 未按预期失败"
|
||||
CHECK_RESULT 1 0 0 "参数检查失败"
|
||||
else
|
||||
LOG_INFO "使用不支持的架构 "invalid_arch" 按预期失败"
|
||||
CHECK_RESULT $? 1 0 "参数检查失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试步骤执行完毕,开始环境恢复"
|
||||
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "恢复步骤:卸载测试安装的 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} ${SUB_PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 失败"
|
||||
LOG_INFO "卸载 ${PACKAGE_NAME} 和 ${SUB_PACKAGE_NAME} 成功"
|
||||
else
|
||||
LOG_INFO "恢复步骤:测试前已安装软件包,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "环境恢复完成,测试脚本结束"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试指定一个替代的基础临时目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查脚本执行环境是否为OpenEuler
|
||||
if [ -f /etc/openEuler-release ]; then
|
||||
LOG_INFO "当前系统为OpenEuler,开始执行测试脚本"
|
||||
else
|
||||
LOG_ERROR "当前系统不是OpenEuler,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 定义需要测试的软件包
|
||||
PACKAGE_NAME="python3-kiwi kiwi-ng"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包: ${PACKAGE_NAME}"
|
||||
for pkg in ${PACKAGE_NAME}; do
|
||||
dnf list available ${pkg} 2>/dev/null | grep -q ${pkg}
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在软件包: ${pkg}"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: ${pkg}"
|
||||
exit 255
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "步骤2:检查软件包是否已安装"
|
||||
INSTALLED_FLAG=0
|
||||
for pkg in ${PACKAGE_NAME}; do
|
||||
rpm -q ${pkg} >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${pkg} 已安装"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "软件包 ${pkg} 未安装"
|
||||
fi
|
||||
done
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${INSTALLED_FLAG} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包: ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
else
|
||||
LOG_INFO "软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试指定替代基础临时目录
|
||||
LOG_INFO "步骤4:测试指定替代基础临时目录"
|
||||
TEMP_DIR="/tmp/kiwi_test_temp_$(date +%s)"
|
||||
mkdir -p ${TEMP_DIR}
|
||||
CHECK_RESULT $? 0 0 "创建临时目录失败"
|
||||
|
||||
# 测试kiwi-ng命令是否支持--temp-dir参数
|
||||
LOG_INFO "步骤5:检查kiwi-ng命令是否支持--temp-dir参数"
|
||||
kiwi-ng --help | grep -q "\-\-temp-dir"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--temp-dir参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--temp-dir参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 使用替代临时目录执行kiwi-ng命令
|
||||
LOG_INFO "步骤6:使用替代临时目录执行kiwi-ng命令"
|
||||
kiwi-ng --type iso system build \
|
||||
--description /usr/share/kiwi/image/JeOS-openEuler.x86_64-22.03 \
|
||||
--target-dir ${TEMP_DIR}/build \
|
||||
--temp-dir ${TEMP_DIR}/temp \
|
||||
--logfile ${TEMP_DIR}/build.log 2>&1 | tee ${TEMP_DIR}/output.log
|
||||
# 由于构建过程可能较长且需要特定环境,这里主要检查命令是否接受参数
|
||||
CHECK_RESULT $? 0 1 "kiwi-ng命令执行失败,但可能是由于构建环境不完整"
|
||||
|
||||
# 检查临时目录是否被使用
|
||||
LOG_INFO "步骤7:检查临时目录是否被使用"
|
||||
if [ -d ${TEMP_DIR}/temp ]; then
|
||||
LOG_INFO "替代临时目录已被使用: ${TEMP_DIR}/temp"
|
||||
CHECK_RESULT $? 0 0 "替代临时目录未被正确使用"
|
||||
else
|
||||
LOG_INFO "替代临时目录未创建,可能是命令未实际执行构建"
|
||||
CHECK_RESULT $? 0 1 "替代临时目录未创建"
|
||||
fi
|
||||
|
||||
# 清理临时目录
|
||||
LOG_INFO "步骤8:清理临时目录"
|
||||
rm -rf ${TEMP_DIR}
|
||||
CHECK_RESULT $? 0 0 "清理临时目录失败"
|
||||
|
||||
# 如果测试开始时未安装软件包,则在测试结束后卸载
|
||||
if [ ${INSTALLED_FLAG} -eq 0 ]; then
|
||||
LOG_INFO "步骤9:卸载测试安装的软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
LOG_INFO "软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "测试开始时软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:指定替代基础临时目录功能验证通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试指定镜像构建类型
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试指定镜像构建类型
|
||||
LOG_INFO "开始测试指定镜像构建类型"
|
||||
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查python3-kiwi和kiwi-ng是否已安装"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
is_installed=$?
|
||||
|
||||
# 记录初始安装状态
|
||||
if [ $is_installed -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng已安装,测试结束后将保持安装状态"
|
||||
initial_installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng未安装,将进行安装测试"
|
||||
initial_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng软件包"
|
||||
dnf list available python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwi-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$initial_installed" = "false" ]; then
|
||||
LOG_INFO "开始安装python3-kiwi和kiwi-ng软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng失败"
|
||||
LOG_INFO "python3-kiwi和kiwi-ng安装成功"
|
||||
fi
|
||||
|
||||
# 测试指定镜像构建类型
|
||||
LOG_INFO "测试指定镜像构建类型"
|
||||
kiwi-ng --type iso system build --description /usr/share/kiwi/image/ --target-dir /tmp/kiwi-test-build
|
||||
CHECK_RESULT $? 0 0 "指定镜像构建类型测试失败"
|
||||
|
||||
# 清理测试生成的临时文件
|
||||
LOG_INFO "清理测试生成的临时文件"
|
||||
rm -rf /tmp/kiwi-test-build
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$initial_installed" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng失败"
|
||||
LOG_INFO "python3-kiwi和kiwi-ng卸载成功"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwi-ng的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "指定镜像构建类型测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试显示程序版本
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试显示程序版本"
|
||||
LOG_INFO "步骤1:检查是否已安装python3-kiwi和kiwi-ng-3_upper_v软件包"
|
||||
if dnf list installed python3-kiwi &>/dev/null && dnf list installed kiwi-ng-3_upper_v &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试前安装并在测试后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否有python3-kiwi和kiwi-ng-3_upper_v软件包"
|
||||
if ! dnf list available python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng-3_upper_v &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有kiwi-ng-3_upper_v软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-kiwi和kiwi-ng-3_upper_v软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng-3_upper_v
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:测试显示程序版本"
|
||||
kiwi-ng --version
|
||||
CHECK_RESULT $? 0 0 "显示程序版本失败"
|
||||
|
||||
LOG_INFO "步骤5:清理环境"
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng-3_upper_v软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng-3_upper_v
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 -h 参数,查看帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 -h 参数,查看帮助信息"
|
||||
|
||||
# 检查是否已安装 python3-kiwi 和 kiwi-ng
|
||||
LOG_INFO "检查是否已安装 python3-kiwi 和 kiwi-ng"
|
||||
if dnf list installed python3-kiwi > /dev/null 2>&1 && dnf list installed kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi 或 kiwi-ng 未安装,将在测试中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 python3-kiwi 和 kiwi-ng
|
||||
LOG_INFO "检查 yum 源中是否有 python3-kiwi 和 kiwi-ng"
|
||||
if ! dnf list available python3-kiwi > /dev/null 2>&1 || ! dnf list available kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中缺少 python3-kiwi 或 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装 python3-kiwi 和 kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
# 测试 kiwi-ng 命令的 -h 参数
|
||||
LOG_INFO "执行 kiwi-ng -h 查看帮助信息"
|
||||
kiwi-ng -h
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng -h 命令执行失败"
|
||||
|
||||
# 如果之前未安装,则在测试结束后卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 和 kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,114 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --color-output 参数,为警告和错误信息使用颜色
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出测试函数
|
||||
test_color_output() {
|
||||
LOG_INFO "测试 kiwi-ng 命令的 --color-output 参数功能"
|
||||
|
||||
# 测试 --color-output 参数
|
||||
LOG_INFO "执行 kiwi-ng --color-output 查看颜色输出支持"
|
||||
kiwi-ng --color-output --help 2>&1 | grep -q "color"
|
||||
CHECK_RESULT $? 0 0 "检查 --color-output 参数是否被支持"
|
||||
|
||||
# 测试错误信息颜色输出
|
||||
LOG_INFO "测试错误信息是否包含颜色代码"
|
||||
kiwi-ng --color-output invalid-command 2>&1 | head -5 | grep -q $"\033"
|
||||
local color_check=$?
|
||||
|
||||
# 如果找不到颜色代码,检查是否因为终端不支持
|
||||
if [ $color_check -ne 0 ]; then
|
||||
LOG_INFO "检查是否因为终端设置导致颜色输出被禁用"
|
||||
kiwi-ng --color-output invalid-command 2>&1 | head -5 | grep -i "color"
|
||||
CHECK_RESULT $? 0 0 "验证颜色输出功能"
|
||||
fi
|
||||
|
||||
LOG_INFO "颜色输出参数测试完成"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --color-output 参数"
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查 kiwi-ng 是否已安装"
|
||||
if command -v kiwi-ng &> /dev/null; then
|
||||
LOG_INFO "kiwi-ng 已安装,跳过安装步骤"
|
||||
local installed=true
|
||||
else
|
||||
LOG_INFO "kiwi-ng 未安装,开始安装"
|
||||
|
||||
# 检查软件包是否存在
|
||||
LOG_INFO "检查 yum 源中是否存在 python3-kiwi 包"
|
||||
dnf list available python3-kiwi &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 python3-kiwi 在 yum 源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装软件包
|
||||
LOG_INFO "安装 python3-kiwi 包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 失败"
|
||||
|
||||
local installed=false
|
||||
fi
|
||||
|
||||
# 验证安装
|
||||
LOG_INFO "验证 kiwi-ng 命令是否可用"
|
||||
command -v kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不可用"
|
||||
|
||||
# 测试 --help 参数是否存在
|
||||
LOG_INFO "测试 kiwi-ng 基本功能"
|
||||
kiwi-ng --help &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --help 执行失败"
|
||||
|
||||
# 测试颜色输出功能
|
||||
test_color_output
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "开始清理测试环境"
|
||||
if [ "$installed" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 失败"
|
||||
|
||||
# 验证卸载
|
||||
LOG_INFO "验证 kiwi-ng 是否已卸载"
|
||||
command -v kiwi-ng &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "kiwi-ng 卸载失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "kiwi-ng 已成功卸载"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不进行卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --compat 参数,运行兼容模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境初始化
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --compat 参数"
|
||||
|
||||
# 检查是否已经安装 python3-kiwi 和 kiwi-ng
|
||||
LOG_INFO "检查是否已安装 python3-kiwi 和 kiwi-ng"
|
||||
if rpm -q python3-kiwi >/dev/null 2>&1 && rpm -q kiwi-ng >/dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 已安装"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 未安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 python3-kiwi 和 kiwi-ng 软件包
|
||||
LOG_INFO "检查 yum 源中是否有 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if ! dnf list available python3-kiwi >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中没有 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中没有 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装 python3-kiwi 和 kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
# 检查 kiwi-ng 命令是否支持 --compat 参数
|
||||
LOG_INFO "检查 kiwi-ng 命令是否支持 --compat 参数"
|
||||
if ! kiwi-ng --help 2>&1 | grep -q -- "--compat"; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --compat 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试 kiwi-ng 命令的 --compat 参数
|
||||
LOG_INFO "测试 kiwi-ng 命令的 --compat 参数,运行兼容模式"
|
||||
kiwi-ng --compat --help
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --compat 命令执行失败"
|
||||
|
||||
# 环境清理
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 和 kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,115 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --config 参数,指定运行时配置文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --config 参数,指定运行时配置文件"
|
||||
|
||||
# 检查是否已安装 python3-kiwi 和 kiwi-ng
|
||||
LOG_INFO "检查是否已安装 python3-kiwi 和 kiwi-ng"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 已安装"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 未安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查 yum 源中是否有 python3-kiwi 和 kiwi-ng
|
||||
LOG_INFO "检查 yum 源中是否有 python3-kiwi 和 kiwi-ng"
|
||||
dnf list available python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中没有 python3-kiwi 或 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装 python3-kiwi 和 kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
# 测试 kiwi-ng 命令的 --config 参数
|
||||
LOG_INFO "测试 kiwi-ng 命令的 --config 参数,指定运行时配置文件"
|
||||
kiwi-ng --help | grep -q "\-\-config"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --config 参数"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 和 kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的配置文件用于测试
|
||||
LOG_INFO "创建一个简单的配置文件用于测试"
|
||||
cat > test_config.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.2">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none" bootloader="none"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/repositories/Virtualization:/containers:/AppImages/openSUSE_Leap_15.0/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
|
||||
|
||||
# 使用 --config 参数运行 kiwi-ng 命令
|
||||
LOG_INFO "使用 --config 参数运行 kiwi-ng 命令"
|
||||
kiwi-ng --type docker --config test_config.xml system prepare
|
||||
CHECK_RESULT $? 0 0 "使用 --config 参数运行 kiwi-ng 命令失败"
|
||||
|
||||
# 清理测试配置文件
|
||||
LOG_INFO "清理测试配置文件"
|
||||
rm -f test_config.xml
|
||||
CHECK_RESULT $? 0 0 "清理测试配置文件失败"
|
||||
|
||||
# 如果脚本开始时未安装软件包,则在结束时卸载
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 和 kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --debug 参数,启用调试模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:测试 kiwi-ng 命令的 --debug 参数,启用调试模式
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --debug 参数,启用调试模式"
|
||||
|
||||
# 步骤1:检查当前环境是否已安装 python3-kiwi 和 kiwi-ng 软件包
|
||||
LOG_INFO "步骤1:检查当前环境是否已安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if rpm -q python3-kiwi > /dev/null 2>&1 && rpm -q kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE="false"
|
||||
fi
|
||||
|
||||
# 步骤2:检查 yum 源中是否有 python3-kiwi 和 kiwi-ng 软件包
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if ! dnf list available python3-kiwi > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中未找到 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果环境未安装,则安装 python3-kiwi 和 kiwi-ng 软件包
|
||||
LOG_INFO "步骤3:如果环境未安装,则安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
LOG_INFO "成功安装 python3-kiwi 和 kiwi-ng"
|
||||
fi
|
||||
|
||||
# 步骤4:检查 kiwi-ng 命令是否支持 --debug 参数
|
||||
LOG_INFO "步骤4:检查 kiwi-ng 命令是否支持 --debug 参数"
|
||||
if ! kiwi-ng --help 2>&1 | grep -q -- "--debug"; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --debug 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试 kiwi-ng 命令的 --debug 参数,启用调试模式
|
||||
LOG_INFO "步骤5:测试 kiwi-ng 命令的 --debug 参数,启用调试模式"
|
||||
kiwi-ng --debug --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令的 --debug 参数执行失败"
|
||||
|
||||
# 步骤6:验证 --debug 参数是否生效(检查输出中是否包含调试信息)
|
||||
LOG_INFO "步骤6:验证 --debug 参数是否生效(检查输出中是否包含调试信息)"
|
||||
DEBUG_OUTPUT=$(kiwi-ng --debug --help 2>&1)
|
||||
if echo "$DEBUG_OUTPUT" | grep -q "debug\|DEBUG"; then
|
||||
LOG_INFO "--debug 参数已生效,输出中包含调试信息"
|
||||
else
|
||||
LOG_INFO "--debug 参数已生效,但输出中未明确显示调试信息"
|
||||
fi
|
||||
|
||||
# 步骤7:清理环境,恢复到之前的状态
|
||||
LOG_INFO "步骤7:清理环境,恢复到之前的状态"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "卸载测试过程中安装的 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
LOG_INFO "成功卸载 python3-kiwi 和 kiwi-ng"
|
||||
else
|
||||
LOG_INFO "环境在测试前已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --help 参数,查看帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwi-ng"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng已安装,保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng未安装,将在测试中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng软件包"
|
||||
dnf list available python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到python3-kiwi或kiwi-ng软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi或kiwi-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng命令的--help参数
|
||||
LOG_INFO "测试kiwi-ng命令的--help参数,查看帮助信息"
|
||||
kiwi-ng --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令的--help参数不存在或不支持"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令的--help参数不存在或不支持"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 验证帮助信息是否正确输出
|
||||
LOG_INFO "验证kiwi-ng --help命令输出是否包含关键字"
|
||||
kiwi-ng --help | grep -q "usage:"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --help命令输出不符合预期"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwi-ng的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,110 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --kiwi-file 参数,指定Kiwi配置文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --kiwi-file 参数,指定Kiwi配置文件"
|
||||
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwi-ng"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng已安装"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng未安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng软件包"
|
||||
dnf list available python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwi-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--kiwi-file参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--kiwi-file参数"
|
||||
kiwi-ng --help | grep -q "\-\-kiwi-file"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--kiwi-file参数"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的Kiwi配置文件用于测试
|
||||
LOG_INFO "创建一个简单的Kiwi配置文件用于测试"
|
||||
cat > test_kiwi_config.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Kiwi Configuration</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none"/>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<version>1.0.0</version>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$xyz" home="/root" name="root"/>
|
||||
</users>
|
||||
<repository type="yast2">
|
||||
<source path="https://download.opensuse.org/tumbleweed/repo/oss/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
|
||||
# 测试kiwi-ng命令的--kiwi-file参数
|
||||
LOG_INFO "测试kiwi-ng命令的--kiwi-file参数"
|
||||
kiwi-ng system prepare --kiwi-file test_kiwi_config.xml --root /tmp/kiwi_test_root
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng system prepare --kiwi-file 执行失败"
|
||||
|
||||
# 清理测试过程中创建的文件和目录
|
||||
LOG_INFO "清理测试过程中创建的文件和目录"
|
||||
rm -f test_kiwi_config.xml
|
||||
rm -rf /tmp/kiwi_test_root
|
||||
|
||||
# 如果测试开始时未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --logfile 参数,指定日志文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:测试 kiwi-ng 命令的 --logfile 参数,指定日志文件
|
||||
|
||||
# 定义变量
|
||||
PYTHON3_KIWI_PACKAGE="python3-kiwi"
|
||||
KIWI_NG_PACKAGE="kiwi-ng"
|
||||
LOG_FILE="/tmp/kiwi_test.log"
|
||||
IMAGE_TYPE="oem"
|
||||
IMAGE_NAME="test_image"
|
||||
|
||||
# 步骤1:检查环境是否已安装相关软件包
|
||||
LOG_INFO "步骤1:检查环境是否已安装相关软件包"
|
||||
if rpm -q $PYTHON3_KIWI_PACKAGE > /dev/null 2>&1 && rpm -q $KIWI_NG_PACKAGE > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有需要安装的软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有需要安装的软件包"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf list available $PYTHON3_KIWI_PACKAGE > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有 $PYTHON3_KIWI_PACKAGE 软件包"
|
||||
dnf list available $KIWI_NG_PACKAGE > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有 $KIWI_NG_PACKAGE 软件包"
|
||||
fi
|
||||
|
||||
# 步骤3:安装软件包(如果未安装)
|
||||
LOG_INFO "步骤3:安装软件包(如果未安装)"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf install -y $PYTHON3_KIWI_PACKAGE $KIWI_NG_PACKAGE
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查 kiwi-ng 命令是否支持 --logfile 参数
|
||||
LOG_INFO "步骤4:检查 kiwi-ng 命令是否支持 --logfile 参数"
|
||||
kiwi-ng --help | grep -q "\-\-logfile"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不支持 --logfile 参数"
|
||||
|
||||
# 步骤5:使用 --logfile 参数执行 kiwi-ng 命令
|
||||
LOG_INFO "步骤5:使用 --logfile 参数执行 kiwi-ng 命令"
|
||||
kiwi-ng system prepare --root /tmp/kiwi_root --logfile $LOG_FILE --description /usr/share/kiwi/image/ --type $IMAGE_TYPE
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令执行失败"
|
||||
|
||||
# 步骤6:检查日志文件是否生成
|
||||
LOG_INFO "步骤6:检查日志文件是否生成"
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
LOG_INFO "日志文件已生成:$LOG_FILE"
|
||||
else
|
||||
LOG_ERROR "日志文件未生成"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤7:检查日志文件内容是否正常
|
||||
LOG_INFO "步骤7:检查日志文件内容是否正常"
|
||||
if [ -s "$LOG_FILE" ]; then
|
||||
LOG_INFO "日志文件内容正常"
|
||||
else
|
||||
LOG_ERROR "日志文件内容为空"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8:清理测试过程中产生的临时文件
|
||||
LOG_INFO "步骤8:清理测试过程中产生的临时文件"
|
||||
rm -rf /tmp/kiwi_root $LOG_FILE
|
||||
|
||||
# 步骤9:卸载软件包(如果之前未安装)
|
||||
LOG_INFO "步骤9:卸载软件包(如果之前未安装)"
|
||||
if [ "$INSTALLED_BEFORE" = "no" ]; then
|
||||
dnf remove -y $PYTHON3_KIWI_PACKAGE $KIWI_NG_PACKAGE
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --loglevel 参数,指定日志级别
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --loglevel 参数"
|
||||
LOG_INFO "步骤1:检查环境是否已安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if dnf list installed python3-kiwi > /dev/null 2>&1 && dnf list installed kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查 yum 源中是否存在 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if ! dnf list available python3-kiwi > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中未找到 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查 kiwi-ng 命令是否支持 --loglevel 参数"
|
||||
kiwi-ng --help | grep -q -- "--loglevel"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不支持 --loglevel 参数"
|
||||
|
||||
LOG_INFO "步骤5:测试 kiwi-ng 命令的 --loglevel 参数,指定日志级别为 debug"
|
||||
kiwi-ng --loglevel debug system version
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng --loglevel debug 失败"
|
||||
|
||||
LOG_INFO "步骤6:测试 kiwi-ng 命令的 --loglevel 参数,指定日志级别为 info"
|
||||
kiwi-ng --loglevel info system version
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng --loglevel info 失败"
|
||||
|
||||
LOG_INFO "步骤7:测试 kiwi-ng 命令的 --loglevel 参数,指定日志级别为 error"
|
||||
kiwi-ng --loglevel error system version
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng --loglevel error 失败"
|
||||
|
||||
LOG_INFO "步骤8:测试 kiwi-ng 命令的 --loglevel 参数,指定日志级别为 warning"
|
||||
kiwi-ng --loglevel warning system version
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng --loglevel warning 失败"
|
||||
|
||||
LOG_INFO "步骤9:测试 kiwi-ng 命令的 --loglevel 参数,指定不存在的日志级别"
|
||||
kiwi-ng --loglevel invalid system version > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "kiwi-ng 命令接受了无效的日志级别参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "kiwi-ng 命令正确拒绝了无效的日志级别参数"
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤10:卸载测试过程中安装的 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --logsocket 参数,指定日志Unix域套接字
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:测试 kiwi-ng 命令的 --logsocket 参数
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --logsocket 参数功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在 yum 源中"
|
||||
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在 yum 源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查环境是否已安装软件包
|
||||
LOG_INFO "检查环境是否已安装 ${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 检查 kiwi-ng 命令是否存在
|
||||
LOG_INFO "检查 kiwi-ng 命令是否存在"
|
||||
which kiwi-ng &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令未找到"
|
||||
|
||||
# 测试 --logsocket 参数是否存在
|
||||
LOG_INFO "测试 --logsocket 参数是否支持"
|
||||
kiwi-ng --help | grep -q "\-\-logsocket"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --logsocket 参数"
|
||||
# 清理环境
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试 --logsocket 参数功能
|
||||
LOG_INFO "测试 --logsocket 参数功能,指定日志Unix域套接字"
|
||||
TEST_SOCKET="/tmp/test_kiwi_logsocket.sock"
|
||||
# 删除可能已存在的套接字文件
|
||||
rm -f ${TEST_SOCKET}
|
||||
# 启动一个简单的日志接收服务(使用 netcat 监听 Unix 域套接字)
|
||||
nc -lU ${TEST_SOCKET} > /tmp/kiwi_log_output.txt 2>&1 &
|
||||
NC_PID=$!
|
||||
sleep 1
|
||||
|
||||
# 运行 kiwi-ng 命令并指定日志套接字
|
||||
LOG_INFO "执行 kiwi-ng 命令,指定 --logsocket 参数"
|
||||
kiwi-ng --logsocket ${TEST_SOCKET} system version
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令执行失败"
|
||||
|
||||
# 停止 netcat 进程
|
||||
kill ${NC_PID} 2>/dev/null
|
||||
wait ${NC_PID} 2>/dev/null
|
||||
|
||||
# 检查日志是否被发送到套接字
|
||||
LOG_INFO "检查日志是否被发送到指定的 Unix 域套接字"
|
||||
if [ -s /tmp/kiwi_log_output.txt ]; then
|
||||
LOG_INFO "日志成功发送到 Unix 域套接字"
|
||||
else
|
||||
LOG_ERROR "日志未发送到 Unix 域套接字"
|
||||
# 清理环境
|
||||
rm -f ${TEST_SOCKET} /tmp/kiwi_log_output.txt
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f ${TEST_SOCKET} /tmp/kiwi_log_output.txt
|
||||
|
||||
# 恢复环境:如果测试前未安装,则卸载软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "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 "测试 kiwi-ng 命令的 --logsocket 参数完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --profile 参数,指定配置文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --profile 参数,指定配置文件"
|
||||
|
||||
# 检查是否已安装 python3-kiwi 和 kiwi-ng
|
||||
LOG_INFO "检查 python3-kiwi 和 kiwi-ng 是否已安装"
|
||||
rpm -q python3-kiwi > /dev/null 2>&1
|
||||
python3_kiwi_installed=$?
|
||||
rpm -q kiwi-ng > /dev/null 2>&1
|
||||
kiwi_ng_installed=$?
|
||||
|
||||
if [ $python3_kiwi_installed -eq 0 ] && [ $kiwi_ng_installed -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi 和 kiwi-ng 已安装,测试结束后保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi 和/或 kiwi-ng 未安装,将在测试前安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "检查 yum 源中是否存在 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum 源中未找到 python3-kiwi 软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
dnf list available kiwi-ng > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum 源中未找到 kiwi-ng 软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "安装 python3-kiwi 和 kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
# 检查 kiwi-ng 命令是否支持 --profile 参数
|
||||
LOG_INFO "检查 kiwi-ng 命令是否支持 --profile 参数"
|
||||
kiwi-ng --help | grep -q -- "--profile"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不支持 --profile 参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "ki-ng 命令不支持 --profile 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试 kiwi-ng 命令的 --profile 参数
|
||||
LOG_INFO "测试 kiwi-ng 命令的 --profile 参数,指定配置文件"
|
||||
kiwi-ng --type iso system prepare --description /usr/share/kiwi/image/ --profile Standard
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令的 --profile 参数测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "测试结束,卸载安装的软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
else
|
||||
LOG_INFO "测试结束,保持 python3-kiwi 和 kiwi-ng 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --shared-cache-dir 参数,指定共享缓存目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --shared-cache-dir 参数,指定共享缓存目录"
|
||||
LOG_INFO "步骤1:检查是否已安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if rpm -q python3-kiwi kiwi-ng &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试步骤中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查 yum 源中是否存在 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if ! dnf list available python3-kiwi kiwi-ng &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 或 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查 kiwi-ng 命令是否支持 --shared-cache-dir 参数"
|
||||
kiwi-ng --help | grep -q -- --shared-cache-dir
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不支持 --shared-cache-dir 参数"
|
||||
|
||||
LOG_INFO "步骤5:创建临时共享缓存目录"
|
||||
temp_cache_dir=$(mktemp -d)
|
||||
LOG_INFO "创建的临时目录为:$temp_cache_dir"
|
||||
|
||||
LOG_INFO "步骤6:执行 kiwi-ng 命令,指定共享缓存目录"
|
||||
kiwi-ng --shared-cache-dir "$temp_cache_dir" --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "使用 --shared-cache-dir 参数执行 kiwi-ng 命令失败"
|
||||
|
||||
LOG_INFO "步骤7:检查共享缓存目录是否被访问"
|
||||
if [ -d "$temp_cache_dir" ]; then
|
||||
LOG_INFO "共享缓存目录存在,已被访问"
|
||||
else
|
||||
LOG_ERROR "共享缓存目录不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8:清理临时共享缓存目录"
|
||||
rm -rf "$temp_cache_dir"
|
||||
CHECK_RESULT $? 0 0 "删除临时共享缓存目录失败"
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤9:卸载 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --target-arch 参数,指定目标架构
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --target-arch 参数"
|
||||
|
||||
# 检查 yum 源中是否有 python3-kiwi 和 kiwi-ng 软件包
|
||||
LOG_INFO "检查 yum 源中是否有 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf list available python3-kiwi kiwi-ng &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中没有 python3-kiwi 或 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断环境是否已经安装 python3-kiwi 和 kiwi-ng
|
||||
LOG_INFO "判断环境是否已经安装 python3-kiwi 和 kiwi-ng"
|
||||
rpm -q python3-kiwi kiwi-ng &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装 python3-kiwi 和 kiwi-ng,测试结束后将保持安装状态"
|
||||
installed_before_test=true
|
||||
else
|
||||
LOG_INFO "环境未安装 python3-kiwi 和 kiwi-ng,测试前将进行安装"
|
||||
installed_before_test=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "安装 python3-kiwi 和 kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
# 测试 kiwi-ng 命令的 --target-arch 参数
|
||||
LOG_INFO "测试 kiwi-ng 命令的 --target-arch 参数"
|
||||
kiwi-ng --help | grep -q "\-\-target-arch"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --target-arch 参数"
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 和 kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试指定目标架构为 x86_64
|
||||
LOG_INFO "测试指定目标架构为 x86_64"
|
||||
kiwi-ng --type iso system build --description /usr/share/kiwi/image/ --target-arch x86_64 --debug
|
||||
CHECK_RESULT $? 0 0 "指定目标架构为 x86_64 失败"
|
||||
|
||||
# 测试指定目标架构为 aarch64
|
||||
LOG_INFO "测试指定目标架构为 aarch64"
|
||||
kiwi-ng --type iso system build --description /usr/share/kiwi/image/ --target-arch aarch64 --debug
|
||||
CHECK_RESULT $? 0 0 "指定目标架构为 aarch64 失败"
|
||||
|
||||
# 清理环境,恢复到之前的状态
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "测试结束,卸载 python3-kiwi 和 kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
else
|
||||
LOG_INFO "测试结束,保持 python3-kiwi 和 kiwi-ng 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试 kiwi-ng 命令的 --target-arch 参数完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --temp-dir 参数,指定临时目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng 命令的 --temp-dir 参数,指定临时目录"
|
||||
LOG_INFO "检查是否已安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if rpm -q python3-kiwi kiwi-ng &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "检查 yum 源中是否存在 python3-kiwi 和 kiwi-ng 软件包"
|
||||
if ! dnf list available python3-kiwi kiwi-ng &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 或 kiwi-ng 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装 python3-kiwi 和 kiwi-ng 软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试 kiwi-ng 命令是否支持 --temp-dir 参数"
|
||||
if ! kiwi-ng --help | grep -q "\-\-temp-dir"; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --temp-dir 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "创建一个临时目录用于测试"
|
||||
TEST_TEMP_DIR=$(mktemp -d)
|
||||
LOG_INFO "测试临时目录: $TEST_TEMP_DIR"
|
||||
|
||||
LOG_INFO "执行 kiwi-ng 命令并指定临时目录"
|
||||
kiwi-ng --temp-dir "$TEST_TEMP_DIR" system prepare --description /usr/share/kiwi/image/ --root /tmp/kiwi_test_root
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng 命令失败"
|
||||
|
||||
LOG_INFO "检查临时目录是否被使用"
|
||||
if [ -d "$TEST_TEMP_DIR" ] && [ "$(ls -A "$TEST_TEMP_DIR" 2>/dev/null)" ]; then
|
||||
LOG_INFO "临时目录 $TEST_TEMP_DIR 已被使用"
|
||||
else
|
||||
LOG_ERROR "临时目录 $TEST_TEMP_DIR 未被使用"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "清理测试过程中创建的临时目录"
|
||||
rm -rf "$TEST_TEMP_DIR"
|
||||
rm -rf /tmp/kiwi_test_root
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试过程中安装的软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi-ng 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --type 参数,指定镜像构建类型
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:测试 kiwi-ng 命令的 --type 参数,指定镜像构建类型
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE="python3-kiwi"
|
||||
COMMAND="kiwi-ng"
|
||||
PARAM="--type"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查软件包 $PACKAGE 是否在yum源中"
|
||||
dnf list available $PACKAGE &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包 $PACKAGE 不在yum源中,无法进行测试"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装软件包 $PACKAGE"
|
||||
rpm -q $PACKAGE &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE"
|
||||
dnf install -y $PACKAGE
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查 kiwi-ng 命令是否支持 --type 参数
|
||||
LOG_INFO "步骤4:检查 $COMMAND 命令是否支持 $PARAM 参数"
|
||||
$COMMAND --help 2>&1 | grep -q "$PARAM"
|
||||
CHECK_RESULT $? 0 0 "$COMMAND 命令不支持 $PARAM 参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "$COMMAND 命令不支持 $PARAM 参数"
|
||||
# 环境恢复
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "恢复环境:卸载软件包 $PACKAGE"
|
||||
dnf remove -y $PACKAGE
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试 kiwi-ng 命令的 --type 参数
|
||||
LOG_INFO "步骤5:测试 $COMMAND 命令的 $PARAM 参数,指定镜像构建类型"
|
||||
# 使用一个简单的构建类型进行测试,例如 "oem"
|
||||
BUILD_TYPE="oem"
|
||||
# 创建一个临时的 kiwi 描述文件用于测试
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
cat > $TEMP_DIR/test_config.xml <<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.8" name="test_image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="$BUILD_TYPE" boot="grub2" bootloader="grub2" kernelcmdline="console=ttyS0"/>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$xyz" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/tumbleweed/repo/oss/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
|
||||
# 运行 kiwi-ng 命令测试 --type 参数
|
||||
$COMMAND --type $BUILD_TYPE system build --description $TEMP_DIR/test_config.xml --target-dir $TEMP_DIR/build_output 2>&1
|
||||
# 由于这是一个简化的测试,我们主要检查命令是否能够识别 --type 参数并开始执行
|
||||
# 实际构建可能需要更多配置和时间,这里我们只检查命令是否成功启动
|
||||
CHECK_RESULT $? 0 0 "使用 $PARAM 参数执行 $COMMAND 命令失败"
|
||||
|
||||
# 步骤6:清理临时文件
|
||||
LOG_INFO "步骤6:清理临时文件"
|
||||
rm -rf $TEMP_DIR
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 步骤7:环境恢复
|
||||
LOG_INFO "步骤7:环境恢复"
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE"
|
||||
dnf remove -y $PACKAGE
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE 失败"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE 在测试前已安装,测试结束后保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:成功测试了 kiwi-ng 命令的 --type 参数"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 --version 参数,查看版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng
|
||||
LOG_INFO "检查环境是否已安装python3-kiwi和kiwi-ng"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
# 记录初始安装状态
|
||||
if [ $installed -eq 0 ]; then
|
||||
LOG_INFO "环境已安装python3-kiwi和kiwi-ng"
|
||||
else
|
||||
LOG_INFO "环境未安装python3-kiwi和kiwi-ng"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng软件包"
|
||||
dnf list available python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwi-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在python3-kiwi和kiwi-ng软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "开始安装python3-kiwi和kiwi-ng软件包"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng失败"
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng成功"
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng命令的--version参数
|
||||
LOG_INFO "测试kiwi-ng命令的--version参数,查看版本信息"
|
||||
kiwi-ng --version > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "kiwi-ng命令支持--version参数"
|
||||
else
|
||||
LOG_ERROR "kiwi-ng命令不支持--version参数"
|
||||
# 清理环境
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行kiwi-ng --version命令并检查结果
|
||||
kiwi-ng --version
|
||||
CHECK_RESULT $? 0 0 "执行kiwi-ng --version命令失败"
|
||||
LOG_INFO "成功执行kiwi-ng --version命令并显示版本信息"
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi和kiwi-ng软件包"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng失败"
|
||||
LOG_INFO "成功卸载python3-kiwi和kiwi-ng软件包"
|
||||
else
|
||||
LOG_INFO "环境保持原有安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 -v 参数,查看版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试 kiwi-ng 命令的 -v 参数,查看版本信息
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
COMMAND_NAME="kiwi-ng"
|
||||
|
||||
# 步骤1: 检查软件包是否已安装
|
||||
LOG_INFO "步骤1: 检查软件包是否已安装"
|
||||
if rpm -q $PACKAGE_NAME > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,脚本结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤2: 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2: 检查yum源中是否有软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available $PACKAGE_NAME > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有找到软件包 $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装则安装软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查 kiwi-ng 命令是否存在
|
||||
LOG_INFO "步骤4: 检查 kiwi-ng 命令是否存在"
|
||||
if ! command -v $COMMAND_NAME > /dev/null 2>&1; then
|
||||
LOG_ERROR "命令 $COMMAND_NAME 不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 测试 kiwi-ng 命令的 -v 参数
|
||||
LOG_INFO "步骤5: 测试 kiwi-ng 命令的 -v 参数"
|
||||
$COMMAND_NAME -v
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng -v 命令失败"
|
||||
|
||||
# 步骤6: 验证版本信息输出格式
|
||||
LOG_INFO "步骤6: 验证版本信息输出格式"
|
||||
VERSION_OUTPUT=$($COMMAND_NAME -v 2>&1)
|
||||
if echo "$VERSION_OUTPUT" | grep -E "kiwi.*version|^[0-9]+\.[0-9]+\.[0-9]+" > /dev/null 2>&1; then
|
||||
LOG_INFO "版本信息输出格式正确"
|
||||
else
|
||||
LOG_ERROR "版本信息输出格式不正确: $VERSION_OUTPUT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤7: 清理环境
|
||||
LOG_INFO "步骤7: 清理环境"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 compat 子命令,运行兼容模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng
|
||||
LOG_INFO "检查python3-kiwi和kiwi-ng是否已安装"
|
||||
if dnf list installed python3-kiwi > /dev/null 2>&1 && dnf list installed kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi和kiwi-ng已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_ALREADY=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwi-ng未安装,将在测试过程中安装"
|
||||
INSTALLED_ALREADY=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwi-ng
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwi-ng软件包"
|
||||
if ! dnf list available python3-kiwi > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwi-ng > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有kiwi-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_ALREADY -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-kiwi和kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否存在
|
||||
LOG_INFO "检查kiwi-ng命令是否存在"
|
||||
which kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不存在"
|
||||
|
||||
# 检查kiwi-ng compat子命令是否存在
|
||||
LOG_INFO "检查kiwi-ng compat子命令是否存在"
|
||||
kiwi-ng --help | grep -q "compat"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng compat子命令不存在"
|
||||
|
||||
# 测试kiwi-ng compat子命令的基本运行
|
||||
LOG_INFO "测试kiwi-ng compat子命令的基本运行"
|
||||
kiwi-ng compat --help
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng compat子命令运行失败"
|
||||
|
||||
# 测试kiwi-ng compat子命令的兼容模式运行
|
||||
LOG_INFO "测试kiwi-ng compat子命令的兼容模式运行"
|
||||
kiwi-ng compat --help | grep -q "compat"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng compat子命令兼容模式运行失败"
|
||||
|
||||
# 如果需要多个服务器并在第二个服务器上执行命令,示例:
|
||||
# LOG_INFO "在第二个服务器上检查kiwi-ng命令"
|
||||
# SSH_CMD "which kiwi-ng" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
# CHECK_RESULT $? 0 0 "第二个服务器上kiwi-ng命令不存在"
|
||||
|
||||
# 环境清理:如果脚本开始时未安装,则在结束时卸载软件包
|
||||
if [ $INSTALLED_ALREADY -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi和kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng失败"
|
||||
else
|
||||
LOG_INFO "脚本开始时已安装,保持python3-kiwi和kiwi-ng的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng 命令的 help 子命令,查看手册页
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwi-ng
|
||||
LOG_INFO "检查python3-kiwi和kiwi-ng是否已安装"
|
||||
rpm -q python3-kiwi kiwi-ng > /dev/null 2>&1
|
||||
INSTALLED=$?
|
||||
|
||||
# 如果未安装,则尝试安装
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "未安装python3-kiwi和kiwi-ng,开始安装"
|
||||
|
||||
# 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有python3-kiwi软件包"
|
||||
|
||||
# 检查yum源中是否有kiwi-ng软件包
|
||||
LOG_INFO "检查yum源中是否有kiwi-ng软件包"
|
||||
dnf list available kiwi-ng > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有kiwi-ng软件包"
|
||||
|
||||
# 安装软件包
|
||||
LOG_INFO "安装python3-kiwi和kiwi-ng"
|
||||
dnf install -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng命令的help子命令
|
||||
LOG_INFO "测试kiwi-ng命令的help子命令,查看手册页"
|
||||
kiwi-ng help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng help命令执行失败"
|
||||
|
||||
# 检查help子命令的参数支持
|
||||
LOG_INFO "检查kiwi-ng help命令是否支持--help参数"
|
||||
kiwi-ng help --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng help命令不支持--help参数"
|
||||
|
||||
# 如果脚本开始时未安装,则在测试结束后卸载软件包
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "测试完成,卸载python3-kiwi和kiwi-ng"
|
||||
dnf remove -y python3-kiwi kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwi-ng失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,135 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --color-output 使用颜色输出警告和错误信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:测试 kiwi-ng --color-output 使用颜色输出警告和错误信息
|
||||
|
||||
# 步骤1:检查环境是否已安装python3-kiwi软件包
|
||||
LOG_INFO "检查python3-kiwi是否已安装"
|
||||
rpm -q python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装python3-kiwi
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查kiwi-ng命令是否支持--color-output参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--color-output参数"
|
||||
kiwi-ng --help 2>&1 | grep -q "\-\-color-output"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--color-output参数"
|
||||
# 如果之前未安装,则需要卸载
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试kiwi-ng --color-output参数
|
||||
LOG_INFO "测试kiwi-ng --color-output参数"
|
||||
kiwi-ng --color-output --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --color-output参数执行失败"
|
||||
|
||||
# 步骤6:验证颜色输出功能
|
||||
LOG_INFO "验证kiwi-ng颜色输出功能"
|
||||
# 创建一个简单的kiwi配置文件用于测试
|
||||
TEST_CONFIG="/tmp/test-kiwi-config.xml"
|
||||
cat > $TEST_CONFIG << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="iso" flags="unified"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/tumbleweed/repo/oss/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="filesystem"/>
|
||||
<package name="glibc-locale"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
|
||||
# 测试带有颜色输出的命令
|
||||
kiwi-ng --color-output system prepare $TEST_CONFIG --root /tmp/kiwi-test-root 2>&1 | tee /tmp/kiwi-color-output.log
|
||||
# 注意:这里我们主要测试参数是否可用,不关心prepare是否完全成功
|
||||
# 检查命令是否至少开始执行了
|
||||
if [ $? -ne 0 ]; then
|
||||
# 检查是否是预期的错误(如网络问题、配置问题等)
|
||||
grep -q "color" /tmp/kiwi-color-output.log
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "颜色输出功能正常"
|
||||
else
|
||||
LOG_INFO "kiwi-ng命令执行遇到预期外的错误,但颜色输出参数已接受"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 步骤7:清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f $TEST_CONFIG
|
||||
rm -rf /tmp/kiwi-test-root 2>/dev/null
|
||||
rm -f /tmp/kiwi-color-output.log
|
||||
|
||||
# 步骤8:如果测试开始时未安装,则卸载python3-kiwi
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
LOG_INFO "环境已恢复到测试前的状态"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:kiwi-ng --color-output 颜色输出功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,115 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --config 指定运行时配置文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi
|
||||
LOG_INFO "检查是否已安装python3-kiwi"
|
||||
rpm -q python3-kiwi
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-kiwi
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng --config指定运行时配置文件
|
||||
LOG_INFO "测试kiwi-ng --config指定运行时配置文件"
|
||||
|
||||
# 检查kiwi-ng命令是否支持--config参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--config参数"
|
||||
kiwi-ng --help | grep -q "\-\-config"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--config参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个临时的配置文件用于测试
|
||||
LOG_INFO "创建一个临时的配置文件用于测试"
|
||||
TEST_CONFIG_FILE=$(mktemp)
|
||||
cat > $TEST_CONFIG_FILE << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" flags=""/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/repositories/Virtualization:/Appliances:/Images/openEuler_22.03/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="filesystem"/>
|
||||
<package name="glibc"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
|
||||
# 使用--config参数指定配置文件
|
||||
LOG_INFO "使用--config参数指定配置文件运行kiwi-ng"
|
||||
kiwi-ng --type docker --config $TEST_CONFIG_FILE system prepare
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --config指定配置文件运行失败"
|
||||
|
||||
# 清理临时配置文件
|
||||
LOG_INFO "清理临时配置文件"
|
||||
rm -f $TEST_CONFIG_FILE
|
||||
|
||||
# 清理kiwi-ng工作目录
|
||||
LOG_INFO "清理kiwi-ng工作目录"
|
||||
rm -rf ./build
|
||||
|
||||
# 如果测试前未安装,则卸载python3-kiwi
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,110 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --debug 打印调试信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_exist() {
|
||||
local package_name=$1
|
||||
dnf list available "$package_name" &> /dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
LOG_ERROR "软件包 $package_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_option() {
|
||||
local command=$1
|
||||
local option=$2
|
||||
$command --help 2>&1 | grep -q "$option"
|
||||
if [[ $? -ne 0 ]]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
rpm -q "$package_name" &> /dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "安装软件包 $package_name"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装 $package_name 失败"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "卸载软件包 $package_name"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载 $package_name 失败"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_kiwi_debug() {
|
||||
local package_name="python3-kiwi"
|
||||
local test_package_installed=false
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包 $package_name 是否在yum源中"
|
||||
check_package_exist "$package_name"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查软件包 $package_name 是否已安装"
|
||||
if check_package_installed "$package_name"; then
|
||||
LOG_INFO "软件包 $package_name 已安装,测试结束后保持安装状态"
|
||||
test_package_installed=true
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装,将作为测试步骤安装"
|
||||
install_package "$package_name"
|
||||
fi
|
||||
|
||||
# 检查 kiwi-ng 命令的 --debug 参数是否支持
|
||||
LOG_INFO "检查 kiwi-ng 命令是否支持 --debug 参数"
|
||||
check_command_option "kiwi-ng" "--debug"
|
||||
|
||||
# 测试 kiwi-ng --debug 打印调试信息
|
||||
LOG_INFO "测试 kiwi-ng --debug 打印调试信息"
|
||||
kiwi-ng --debug --help 2>&1 | grep -q "debug"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --debug 未打印调试信息"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [[ "$test_package_installed" == false ]]; then
|
||||
LOG_INFO "清理环境:卸载测试安装的软件包"
|
||||
uninstall_package "$package_name"
|
||||
else
|
||||
LOG_INFO "保持软件包 $package_name 的安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_kiwi_debug
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --debug-run-scripts-in-screen 在screen会话中运行kiwi调用的脚本
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 初始化环境变量
|
||||
SCRIPT_NAME="test_python3-kiwi_kiwi_debug_run_scripts_in_screen"
|
||||
LOG_FILE="/tmp/${SCRIPT_NAME}.log"
|
||||
|
||||
# 清理函数
|
||||
cleanup() {
|
||||
LOG_INFO "开始清理环境"
|
||||
if [ "${PACKAGE_INSTALLED}" = "yes" ]; then
|
||||
LOG_INFO "卸载已安装的软件包"
|
||||
dnf remove -y kiwi kiwi-doc python3-kiwi 2>&1 | tee -a ${LOG_FILE}
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载软件包失败"
|
||||
fi
|
||||
fi
|
||||
LOG_INFO "清理完成"
|
||||
}
|
||||
|
||||
# 错误处理
|
||||
trap cleanup EXIT
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: ${package_name}"
|
||||
dnf list available ${package_name} 2>&1 | grep -q "${package_name}"
|
||||
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}"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查软件包 ${package_name} 是否已安装"
|
||||
rpm -q ${package_name} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${package_name} 已安装"
|
||||
PACKAGE_INSTALLED="yes"
|
||||
else
|
||||
LOG_INFO "软件包 ${package_name} 未安装"
|
||||
PACKAGE_INSTALLED="no"
|
||||
fi
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
LOG_INFO "开始执行测试脚本: ${SCRIPT_NAME}"
|
||||
LOG_INFO "测试用例: 测试 kiwi-ng --debug-run-scripts-in-screen 在screen会话中运行kiwi调用的脚本"
|
||||
|
||||
# 检查kiwi软件包是否在yum源中
|
||||
check_package_in_repo "kiwi"
|
||||
|
||||
# 检查kiwi-ng命令是否支持--debug-run-scripts-in-screen参数
|
||||
check_command_option "kiwi-ng" "--debug-run-scripts-in-screen"
|
||||
|
||||
# 检查kiwi软件包是否已安装
|
||||
check_package_installed "kiwi"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${PACKAGE_INSTALLED}" = "no" ]; then
|
||||
LOG_INFO "安装kiwi软件包"
|
||||
dnf install -y kiwi kiwi-doc python3-kiwi 2>&1 | tee -a ${LOG_FILE}
|
||||
CHECK_RESULT $? 0 0 "安装kiwi软件包失败"
|
||||
PACKAGE_INSTALLED="yes"
|
||||
else
|
||||
LOG_INFO "kiwi软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng --debug-run-scripts-in-screen命令
|
||||
LOG_INFO "执行kiwi-ng --debug-run-scripts-in-screen命令"
|
||||
kiwi-ng --debug-run-scripts-in-screen --help 2>&1 | tee -a ${LOG_FILE}
|
||||
CHECK_RESULT $? 0 0 "执行kiwi-ng --debug-run-scripts-in-screen命令失败"
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,58 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng -h 显示帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng -h 显示帮助信息"
|
||||
LOG_INFO "检查是否已安装 python3-kiwi 和 kiwi 软件包"
|
||||
if rpm -q python3-kiwi kiwi &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试结束后卸载"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
LOG_INFO "检查 yum 源中是否存在 python3-kiwi 和 kiwi 软件包"
|
||||
if ! dnf list available python3-kiwi kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 或 kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装 python3-kiwi 和 kiwi 软件包"
|
||||
dnf install -y python3-kiwi kiwi
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 和 kiwi 软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "执行 kiwi-ng -h 命令"
|
||||
kiwi-ng -h
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng -h 命令失败"
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 和 kiwi 软件包"
|
||||
dnf remove -y python3-kiwi kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 和 kiwi 软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng help 显示手册页
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试开始:测试 kiwi-ng help 显示手册页"
|
||||
|
||||
LOG_INFO "步骤1:检查环境是否已安装 kiwi 软件包"
|
||||
if dnf list installed python3-kiwi &>/dev/null; then
|
||||
LOG_INFO "环境已安装 kiwi 软件包,测试结束后将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "环境未安装 kiwi 软件包,将在测试结束后卸载"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 python3-kiwi 软件包"
|
||||
if ! dnf list available python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装 python3-kiwi 软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查 kiwi-ng 命令是否存在"
|
||||
if ! command -v kiwi-ng &>/dev/null; then
|
||||
LOG_ERROR "kiwi-ng 命令未找到"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:执行 kiwi-ng help 命令"
|
||||
kiwi-ng help
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng help 命令失败"
|
||||
|
||||
LOG_INFO "步骤6:验证 kiwi-ng help 输出是否包含手册页信息"
|
||||
if kiwi-ng help | grep -q "Usage:"; then
|
||||
LOG_INFO "kiwi-ng help 成功显示手册页"
|
||||
else
|
||||
LOG_ERROR "kiwi-ng help 未显示手册页信息"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:清理环境"
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 软件包失败"
|
||||
else
|
||||
LOG_INFO "环境已安装 kiwi 软件包,保持原状"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,133 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --kiwi-file 指定包含主镜像配置元素的kiwi文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi
|
||||
LOG_INFO "检查python3-kiwi是否已安装"
|
||||
rpm -q python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试后卸载"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装python3-kiwi
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--kiwi-file参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--kiwi-file参数"
|
||||
kiwi-ng --help 2>&1 | grep -q "\-\-kiwi-file"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--kiwi-file参数"
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个临时的kiwi文件用于测试
|
||||
LOG_INFO "创建测试用的临时kiwi文件"
|
||||
TEST_KIWI_FILE=$(mktemp /tmp/test_kiwi_XXXXXX.kiwi)
|
||||
cat > $TEST_KIWI_FILE << "EOF"
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test KIWI Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root"/>
|
||||
</users>
|
||||
<repository type="yast2">
|
||||
<source path="obs://Virtualization:Appliances:SelfContained/openSUSE_Leap_15.4"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="filesystem"/>
|
||||
<package name="glibc-locale"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建临时kiwi文件失败"
|
||||
|
||||
# 测试kiwi-ng --kiwi-file参数
|
||||
LOG_INFO "测试kiwi-ng --kiwi-file参数"
|
||||
kiwi-ng --kiwi-file $TEST_KIWI_FILE system prepare --root /tmp/kiwi_test_root 2>&1 | tee /tmp/kiwi_test.log
|
||||
# 由于测试环境可能不满足构建条件,我们主要检查命令是否能够解析kiwi文件
|
||||
# 如果命令执行失败,检查是否是参数问题
|
||||
if [ $? -ne 0 ]; then
|
||||
# 检查错误信息中是否包含参数相关错误
|
||||
if grep -q "unrecognized argument.*--kiwi-file" /tmp/kiwi_test.log; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--kiwi-file参数"
|
||||
rm -f $TEST_KIWI_FILE
|
||||
rm -rf /tmp/kiwi_test_root
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
else
|
||||
# 其他错误,可能是环境配置问题,按正常退出码退出
|
||||
LOG_INFO "kiwi-ng --kiwi-file命令执行失败,但非参数问题"
|
||||
CHECK_RESULT 1 0 0 "kiwi-ng --kiwi-file命令执行失败"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "kiwi-ng --kiwi-file参数测试成功"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --kiwi-file参数测试失败"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f $TEST_KIWI_FILE
|
||||
rm -rf /tmp/kiwi_test_root
|
||||
rm -f /tmp/kiwi_test.log
|
||||
|
||||
# 如果测试前未安装python3-kiwi,则卸载
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,190 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --logfile 指定日志文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $*"
|
||||
}
|
||||
|
||||
# 检查命令执行结果
|
||||
CHECK_RESULT() {
|
||||
local actual_ret=$1
|
||||
local expect_ret=$2
|
||||
local expect_ret2=$3
|
||||
local error_msg=$4
|
||||
if [[ $actual_ret -ne $expect_ret && $actual_ret -ne $expect_ret2 ]]; then
|
||||
LOG_ERROR "$error_msg"
|
||||
exit $actual_ret
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_option() {
|
||||
local command=$1
|
||||
local option=$2
|
||||
$command --help 2>&1 | grep -q -- "$option"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
LOG_INFO "开始测试 kiwi-ng --logfile 指定日志文件功能"
|
||||
|
||||
# 定义测试相关变量
|
||||
local test_package="python3-kiwi"
|
||||
local test_log_file="/tmp/kiwi_test.log"
|
||||
local test_image_desc="/tmp/test.xml"
|
||||
local test_output_dir="/tmp/kiwi_output"
|
||||
|
||||
# 清理可能存在的测试文件
|
||||
rm -f "$test_log_file" "$test_image_desc"
|
||||
rm -rf "$test_output_dir"
|
||||
|
||||
# 步骤1: 检查测试软件包是否在yum源中
|
||||
LOG_INFO "步骤1: 检查软件包 $test_package 是否在yum源中"
|
||||
check_package_in_repo "$test_package"
|
||||
|
||||
# 步骤2: 检查当前是否已安装测试软件包
|
||||
LOG_INFO "步骤2: 检查当前是否已安装 $test_package"
|
||||
local already_installed=0
|
||||
rpm -q "$test_package" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
already_installed=1
|
||||
LOG_INFO "软件包 $test_package 已安装,测试结束后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "软件包 $test_package 未安装,将在测试结束后卸载"
|
||||
fi
|
||||
|
||||
# 步骤3: 安装测试软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $test_package"
|
||||
dnf install -y "$test_package"
|
||||
CHECK_RESULT $? 0 0 "安装 $test_package 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查 kiwi-ng 命令是否支持 --logfile 参数
|
||||
LOG_INFO "步骤4: 检查 kiwi-ng 命令是否支持 --logfile 参数"
|
||||
check_command_option "kiwi-ng" "--logfile"
|
||||
|
||||
# 步骤5: 创建测试用的镜像描述文件
|
||||
LOG_INFO "步骤5: 创建测试用的镜像描述文件"
|
||||
cat > "$test_image_desc" << "EOF"
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test image for kiwi logfile testing</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" derived_from="opensuse/tumbleweed:latest"/>
|
||||
<packagemanager>zypper</packagemanager>
|
||||
<version>1.0.0</version>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试镜像描述文件失败"
|
||||
|
||||
# 步骤6: 测试 kiwi-ng --logfile 功能
|
||||
LOG_INFO "步骤6: 测试 kiwi-ng --logfile 功能"
|
||||
|
||||
# 测试场景1: 使用有效的日志文件路径
|
||||
LOG_INFO "测试场景1: 使用有效的日志文件路径"
|
||||
kiwi-ng system prepare --description "$test_image_desc" --root "$test_output_dir" --logfile "$test_log_file" --debug
|
||||
local prepare_result=$?
|
||||
|
||||
# 检查日志文件是否创建
|
||||
if [ -f "$test_log_file" ]; then
|
||||
LOG_INFO "日志文件已成功创建: $test_log_file"
|
||||
# 检查日志文件是否包含kiwi相关日志
|
||||
if grep -q "kiwi" "$test_log_file" 2>/dev/null; then
|
||||
LOG_INFO "日志文件包含kiwi相关日志内容"
|
||||
CHECK_RESULT $prepare_result 0 0 "kiwi-ng prepare 命令执行失败"
|
||||
else
|
||||
LOG_ERROR "日志文件不包含预期的kiwi日志内容"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "日志文件未创建"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 测试场景2: 使用无效的日志文件路径(只读目录)
|
||||
LOG_INFO "测试场景2: 测试无效的日志文件路径"
|
||||
local readonly_log="/proc/kiwi_test.log"
|
||||
kiwi-ng system prepare --description "$test_image_desc" --root "$test_output_dir" --logfile "$readonly_log" --debug 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_INFO "无效日志文件路径测试通过:命令按预期失败"
|
||||
else
|
||||
LOG_ERROR "无效日志文件路径测试失败:命令意外成功"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 测试场景3: 测试不指定--logfile参数
|
||||
LOG_INFO "测试场景3: 测试不指定--logfile参数"
|
||||
rm -f "$test_log_file"
|
||||
kiwi-ng --help &> "$test_log_file"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --help 命令执行失败"
|
||||
|
||||
# 步骤7: 清理测试环境
|
||||
LOG_INFO "步骤7: 清理测试环境"
|
||||
|
||||
# 清理测试文件
|
||||
rm -f "$test_log_file" "$test_image_desc"
|
||||
rm -rf "$test_output_dir"
|
||||
|
||||
# 步骤8: 如果测试前未安装,则卸载测试软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "步骤8: 卸载测试软件包 $test_package"
|
||||
dnf remove -y "$test_package"
|
||||
CHECK_RESULT $? 0 0 "卸载 $test_package 失败"
|
||||
else
|
||||
LOG_INFO "步骤8: 保持软件包 $test_package 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:kiwi-ng --logfile 功能测试通过"
|
||||
}
|
||||
|
||||
# 执行主测试函数
|
||||
main "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --logfile stdout 将日志输出到标准输出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查Python3-kiwi软件包是否在yum源中
|
||||
LOG_INFO "检查Python3-kiwi软件包是否在yum源中"
|
||||
if ! dnf list available python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装python3-kiwi
|
||||
LOG_INFO "检查是否已安装python3-kiwi"
|
||||
if rpm -q python3-kiwi &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-kiwi
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--logfile stdout参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--logfile stdout参数"
|
||||
if ! kiwi-ng --help | grep -q "\-\-logfile"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--logfile参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng --logfile stdout将日志输出到标准输出
|
||||
LOG_INFO "测试kiwi-ng --logfile stdout将日志输出到标准输出"
|
||||
kiwi-ng --logfile stdout system version
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --logfile stdout执行失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载python3-kiwi
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,91 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --loglevel 指定日志级别
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装python3-kiwi软件包
|
||||
LOG_INFO "检查是否已安装python3-kiwi软件包"
|
||||
rpm -q python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi软件包未安装,将进行安装并在脚本结束前卸载"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-kiwi软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi软件包失败"
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng --loglevel指定日志级别
|
||||
LOG_INFO "测试kiwi-ng --loglevel指定日志级别"
|
||||
kiwi-ng --loglevel debug --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --loglevel debug参数不支持"
|
||||
LOG_INFO "kiwi-ng --loglevel debug参数支持"
|
||||
|
||||
# 测试不支持的日志级别
|
||||
LOG_INFO "测试kiwi-ng --loglevel指定不支持的日志级别"
|
||||
kiwi-ng --loglevel invalidlevel --help > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "kiwi-ng --loglevel invalidlevel参数不存在或不支持,符合预期"
|
||||
else
|
||||
LOG_ERROR "kiwi-ng --loglevel invalidlevel参数应不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试其他支持的日志级别
|
||||
LOG_INFO "测试kiwi-ng --loglevel info日志级别"
|
||||
kiwi-ng --loglevel info --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --loglevel info参数不支持"
|
||||
|
||||
LOG_INFO "测试kiwi-ng --loglevel warning日志级别"
|
||||
kiwi-ng --loglevel warning --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --loglevel warning参数不支持"
|
||||
|
||||
LOG_INFO "测试kiwi-ng --loglevel error日志级别"
|
||||
kiwi-ng --loglevel error --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --loglevel error参数不支持"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi软件包失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --logsocket 将日志发送到指定的Unix域套接字
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng --logsocket 功能"
|
||||
LOG_INFO "步骤1: 检查 yum 源中是否有 python3-kiwi 软件包"
|
||||
dnf list available python3-kiwi 2>/dev/null | grep -q python3-kiwi
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查当前环境是否已安装 python3-kiwi"
|
||||
rpm -q python3-kiwi >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi 未安装,将在测试前安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装 python3-kiwi 软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查 kiwi-ng 命令是否支持 --logsocket 参数"
|
||||
kiwi-ng --help 2>&1 | grep -q -- "--logsocket"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --logsocket 参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载 python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 创建一个临时的 Unix 域套接字文件"
|
||||
SOCKET_FILE=$(mktemp -u /tmp/kiwi_logsocket_XXXXXX.sock)
|
||||
LOG_INFO "临时套接字文件: $SOCKET_FILE"
|
||||
|
||||
LOG_INFO "步骤6: 启动一个简单的 netcat 监听套接字,用于接收日志"
|
||||
nc -lU "$SOCKET_FILE" > /tmp/kiwi_log_output.txt 2>&1 &
|
||||
NC_PID=$!
|
||||
sleep 2
|
||||
|
||||
LOG_INFO "步骤7: 使用 kiwi-ng --logsocket 发送日志到指定套接字"
|
||||
kiwi-ng --logsocket "$SOCKET_FILE" --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng --logsocket 命令失败"
|
||||
|
||||
LOG_INFO "步骤8: 等待日志传输完成并检查是否有日志输出"
|
||||
sleep 2
|
||||
if [ -s /tmp/kiwi_log_output.txt ]; then
|
||||
LOG_INFO "成功接收到 kiwi-ng 发送的日志"
|
||||
else
|
||||
LOG_ERROR "未接收到 kiwi-ng 发送的日志"
|
||||
kill $NC_PID 2>/dev/null
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载 python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤9: 清理临时文件和进程"
|
||||
kill $NC_PID 2>/dev/null
|
||||
rm -f "$SOCKET_FILE" /tmp/kiwi_log_output.txt
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤10: 卸载 python3-kiwi 软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 失败"
|
||||
else
|
||||
LOG_INFO "测试完成,保持 python3-kiwi 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试 kiwi-ng --logsocket 功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,103 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --profile 指定配置文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng --profile 指定配置文件"
|
||||
LOG_INFO "步骤1: 检查是否已安装 python3-kiwi 软件包"
|
||||
if dnf list installed python3-kiwi &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi 已安装,脚本结束时将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi 未安装,将在测试步骤中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
LOG_INFO "步骤2: 检查 yum 源中是否存在 python3-kiwi 软件包"
|
||||
if ! dnf list available python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3: 安装 python3-kiwi 软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 失败"
|
||||
fi
|
||||
LOG_INFO "步骤4: 检查 kiwi-ng 命令是否支持 --profile 参数"
|
||||
kiwi-ng --help 2>&1 | grep -q -- "--profile"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不支持 --profile 参数"
|
||||
LOG_INFO "步骤5: 测试 kiwi-ng --profile 指定配置文件"
|
||||
LOG_INFO "创建临时的 kiwi 配置文件用于测试"
|
||||
temp_profile=$(mktemp /tmp/kiwi_profile_test.XXXXXX.kiwi)
|
||||
cat > "$temp_profile" << "EOF"
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.2" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test image for kiwi-ng profile testing</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="yast2">
|
||||
<source path="obs://openSUSE:Leap:15.3/standard"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
LOG_INFO "使用临时配置文件运行 kiwi-ng --profile"
|
||||
kiwi-ng --profile "$temp_profile" system prepare --description /tmp/kiwi_test_build --root /tmp/kiwi_test_root
|
||||
prepare_result=$?
|
||||
if [ $prepare_result -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng --profile 执行失败"
|
||||
rm -f "$temp_profile"
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "清理: 卸载 python3-kiwi 软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 失败"
|
||||
fi
|
||||
exit $prepare_result
|
||||
fi
|
||||
CHECK_RESULT $prepare_result 0 0 "kiwi-ng --profile 执行失败"
|
||||
LOG_INFO "步骤6: 清理临时文件和目录"
|
||||
rm -f "$temp_profile"
|
||||
rm -rf /tmp/kiwi_test_build /tmp/kiwi_test_root
|
||||
LOG_INFO "步骤7: 恢复环境状态"
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载在测试中安装的 python3-kiwi 软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 失败"
|
||||
else
|
||||
LOG_INFO "保持 python3-kiwi 的安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,115 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --shared-cache-dir 指定替代的共享缓存目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
if [ $1 -ne $2 ]; then
|
||||
LOG_ERROR "$4"
|
||||
exit $3
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数
|
||||
SSH_CMD() {
|
||||
# 模拟SSH执行命令,实际使用时需要根据环境实现
|
||||
sshpass -p $3 ssh -o StrictHostKeyChecking=no $2@$1 "$4"
|
||||
}
|
||||
|
||||
# 环境变量设置(根据实际环境修改)
|
||||
NODE2_IPV4=""
|
||||
NODE2_PASSWORD=""
|
||||
NODE2_USER=""
|
||||
|
||||
# 测试用例描述:测试 kiwi-ng --shared-cache-dir 指定替代的共享缓存目录
|
||||
|
||||
# 步骤1:检查yum源中是否存在python3-kiwi软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到python3-kiwi软件包"
|
||||
|
||||
# 步骤2:检查是否已安装python3-kiwi
|
||||
LOG_INFO "步骤2:检查是否已安装python3-kiwi"
|
||||
if rpm -q python3-kiwi > /dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试步骤中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3:安装python3-kiwi(如果未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-kiwi软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 1 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查kiwi-ng命令是否支持--shared-cache-dir参数
|
||||
LOG_INFO "步骤4:检查kiwi-ng命令是否支持--shared-cache-dir参数"
|
||||
kiwi-ng --help | grep -q -- "--shared-cache-dir"
|
||||
CHECK_RESULT $? 0 255 "kiwi-ng命令不支持--shared-cache-dir参数"
|
||||
|
||||
# 步骤5:创建测试用的共享缓存目录
|
||||
LOG_INFO "步骤5:创建测试用的共享缓存目录"
|
||||
TEST_CACHE_DIR="/tmp/test_kiwi_cache_$(date +%s)"
|
||||
mkdir -p "$TEST_CACHE_DIR"
|
||||
CHECK_RESULT $? 0 1 "创建测试缓存目录失败"
|
||||
|
||||
# 步骤6:使用--shared-cache-dir参数执行kiwi-ng命令
|
||||
LOG_INFO "步骤6:使用--shared-cache-dir参数执行kiwi-ng命令"
|
||||
kiwi-ng --shared-cache-dir "$TEST_CACHE_DIR" --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 1 "使用--shared-cache-dir参数执行kiwi-ng命令失败"
|
||||
|
||||
# 步骤7:验证共享缓存目录是否被使用
|
||||
LOG_INFO "步骤7:验证共享缓存目录是否被使用"
|
||||
if [ -d "$TEST_CACHE_DIR" ]; then
|
||||
LOG_INFO "共享缓存目录存在,参数生效"
|
||||
else
|
||||
LOG_ERROR "共享缓存目录不存在,参数未生效"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8:清理测试缓存目录
|
||||
LOG_INFO "步骤8:清理测试缓存目录"
|
||||
rm -rf "$TEST_CACHE_DIR"
|
||||
CHECK_RESULT $? 0 1 "清理测试缓存目录失败"
|
||||
|
||||
# 步骤9:卸载python3-kiwi(如果测试前未安装)
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤9:卸载python3-kiwi软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 1 "卸载python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --target-arch 设置镜像架构
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断环境是否已安装python3-kiwi
|
||||
LOG_INFO "检查python3-kiwi是否已安装"
|
||||
rpm -q python3-kiwi
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试步骤中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi包"
|
||||
dnf list available python3-kiwi 2>&1 | grep -q "python3-kiwi"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-kiwi
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "开始安装python3-kiwi"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 测试kiwi-ng --target-arch参数是否存在
|
||||
LOG_INFO "检查kiwi-ng --target-arch参数是否支持"
|
||||
kiwi-ng --help | grep -q "\-\-target-arch"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng不支持--target-arch参数"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试设置镜像架构为x86_64
|
||||
LOG_INFO "测试kiwi-ng --target-arch x86_64"
|
||||
kiwi-ng --target-arch x86_64 --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --target-arch x86_64执行失败"
|
||||
|
||||
# 测试设置镜像架构为aarch64
|
||||
LOG_INFO "测试kiwi-ng --target-arch aarch64"
|
||||
kiwi-ng --target-arch aarch64 --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --target-arch aarch64执行失败"
|
||||
|
||||
# 测试不支持的架构参数
|
||||
LOG_INFO "测试kiwi-ng --target-arch不支持的架构参数"
|
||||
kiwi-ng --target-arch invalid_arch --help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "kiwi-ng --target-arch invalid_arch应执行失败但实际成功"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "kiwi-ng --target-arch invalid_arch执行失败,符合预期"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载python3-kiwi
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --temp-dir 指定替代的基础临时目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng --temp-dir 指定替代的基础临时目录"
|
||||
|
||||
LOG_INFO "步骤1:检查环境中是否已安装 python3-kiwi 软件包"
|
||||
if rpm -q python3-kiwi &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi 已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "python3-kiwi 未安装,将在测试步骤中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查 yum 源中是否有 python3-kiwi 软件包"
|
||||
if ! dnf list python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装 python3-kiwi 软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查 kiwi-ng 命令是否支持 --temp-dir 参数"
|
||||
kiwi-ng --help | grep -q "\-\-temp-dir"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不支持 --temp-dir 参数"
|
||||
|
||||
LOG_INFO "步骤5:创建测试临时目录"
|
||||
TEST_TEMP_DIR="/tmp/kiwi_test_temp_$(date +%s)"
|
||||
mkdir -p "$TEST_TEMP_DIR"
|
||||
CHECK_RESULT $? 0 0 "创建测试临时目录失败"
|
||||
|
||||
LOG_INFO "步骤6:使用 kiwi-ng --temp-dir 指定替代临时目录执行简单命令"
|
||||
kiwi-ng --temp-dir "$TEST_TEMP_DIR" --help &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "使用 --temp-dir 参数执行 kiwi-ng 命令失败"
|
||||
|
||||
LOG_INFO "步骤7:检查临时目录是否被使用"
|
||||
if [ -d "$TEST_TEMP_DIR" ] && [ "$(ls -A "$TEST_TEMP_DIR" 2>/dev/null)" ]; then
|
||||
LOG_INFO "临时目录已被使用"
|
||||
else
|
||||
LOG_ERROR "临时目录未被使用"
|
||||
CHECK_RESULT 1 0 0 "临时目录未被使用"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8:清理测试临时目录"
|
||||
rm -rf "$TEST_TEMP_DIR"
|
||||
CHECK_RESULT $? 0 0 "清理测试临时目录失败"
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤9:卸载 python3-kiwi 软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng --type 指定镜像构建类型
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng --type 指定镜像构建类型"
|
||||
LOG_INFO "步骤1:检查环境是否已安装 python3-kiwi 软件包"
|
||||
if dnf list installed python3-kiwi > /dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi 已安装,测试完成后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi 未安装,将在测试过程中安装,并在测试结束后卸载"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查 yum 源中是否存在 python3-kiwi 软件包"
|
||||
if ! dnf list available python3-kiwi > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum 源中未找到 python3-kiwi 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装 python3-kiwi 软件包"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装 python3-kiwi 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查 kiwi-ng 命令是否支持 --type 参数"
|
||||
kiwi-ng --help | grep -q "\-\-type"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng 命令不支持 --type 参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng 命令不支持 --type 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:测试 kiwi-ng --type 参数,使用有效的镜像类型(例如:iso)"
|
||||
kiwi-ng --type iso --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng --type iso 执行失败"
|
||||
|
||||
LOG_INFO "步骤6:测试 kiwi-ng --type 参数,使用无效的镜像类型"
|
||||
kiwi-ng --type invalidtype --help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "kiwi-ng --type 参数未正确验证无效镜像类型"
|
||||
exit 255
|
||||
fi
|
||||
CHECK_RESULT $? 1 0 "kiwi-ng --type 参数对无效镜像类型的处理不符合预期"
|
||||
|
||||
LOG_INFO "步骤7:清理测试环境"
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "卸载 python3-kiwi 软件包"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载 python3-kiwi 失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装 python3-kiwi,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,52 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 kiwi-ng -v 显示版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 kiwi-ng -v 显示版本信息"
|
||||
LOG_INFO "步骤1:检查环境是否已安装 kiwi-ng 软件包"
|
||||
rpm -q kiwi-ng > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "kiwi-ng 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "kiwi-ng 未安装,将在测试过程中安装并在结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤2:检查 yum 源中是否存在 kiwi-ng 软件包"
|
||||
dnf list available kiwi-ng > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum 源中未找到 kiwi-ng 软件包"
|
||||
LOG_INFO "步骤3:安装 kiwi-ng 软件包"
|
||||
dnf install -y kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "安装 kiwi-ng 软件包失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:执行 kiwi-ng -v 命令显示版本信息"
|
||||
kiwi-ng -v
|
||||
CHECK_RESULT $? 0 0 "执行 kiwi-ng -v 命令失败"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤5:卸载 kiwi-ng 软件包,恢复环境"
|
||||
dnf remove -y kiwi-ng
|
||||
CHECK_RESULT $? 0 0 "卸载 kiwi-ng 软件包失败"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,123 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build和--dest-dir参数构建镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 初始化变量
|
||||
PKG_NAME="python3-kiwi-kiwicompat-3"
|
||||
TEST_DIR="/tmp/test_kiwi_build"
|
||||
IMAGE_NAME="test_image"
|
||||
DEST_DIR="/tmp/kiwi_output"
|
||||
|
||||
# 步骤1: 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包 $PKG_NAME 是否在yum源中"
|
||||
dnf list available $PKG_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PKG_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查是否已安装软件包
|
||||
LOG_INFO "检查软件包 $PKG_NAME 是否已安装"
|
||||
if rpm -q $PKG_NAME &>/dev/null; then
|
||||
LOG_INFO "软件包 $PKG_NAME 已安装,脚本结束后将保持安装状态"
|
||||
PKG_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PKG_NAME 未安装,将在测试中安装"
|
||||
PKG_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3: 若未安装,则安装软件包
|
||||
if [ "$PKG_INSTALLED" = false ]; then
|
||||
LOG_INFO "安装软件包 $PKG_NAME"
|
||||
dnf install -y $PKG_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PKG_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查kiwi命令是否支持--build和--dest-dir参数
|
||||
LOG_INFO "检查kiwi命令是否支持--build和--dest-dir参数"
|
||||
kiwi --help | grep -q "\-\-build"
|
||||
CHECK_RESULT $? 0 0 "kiwi命令不支持--build参数"
|
||||
kiwi --help | grep -q "\-\-dest-dir"
|
||||
CHECK_RESULT $? 0 0 "kiwi命令不支持--dest-dir参数"
|
||||
|
||||
# 步骤5: 准备测试目录和配置文件
|
||||
LOG_INFO "准备测试目录和配置文件"
|
||||
mkdir -p $TEST_DIR
|
||||
cat > $TEST_DIR/config.xml <<EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="$IMAGE_NAME">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test KIWI Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none" bootloader="none" flags="container"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="yast2">
|
||||
<source path="obs://openEuler:22.03:LTS/standard_x86_64/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试配置文件失败"
|
||||
|
||||
# 步骤6: 使用--build和--dest-dir参数构建镜像
|
||||
LOG_INFO "使用--build和--dest-dir参数构建镜像"
|
||||
kiwi --build $TEST_DIR --dest-dir $DEST_DIR --type docker
|
||||
CHECK_RESULT $? 0 0 "使用--build和--dest-dir参数构建镜像失败"
|
||||
|
||||
# 步骤7: 验证构建的镜像文件是否存在
|
||||
LOG_INFO "验证构建的镜像文件是否存在"
|
||||
if [ -f "$DEST_DIR/$IMAGE_NAME.x86_64-1.0.0.docker.tar.xz" ]; then
|
||||
LOG_INFO "镜像文件构建成功"
|
||||
else
|
||||
LOG_ERROR "镜像文件未找到"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8: 清理测试目录和构建输出
|
||||
LOG_INFO "清理测试目录和构建输出"
|
||||
rm -rf $TEST_DIR
|
||||
rm -rf $DEST_DIR
|
||||
CHECK_RESULT $? 0 0 "清理测试目录和构建输出失败"
|
||||
|
||||
# 步骤9: 若测试前未安装软件包,则卸载软件包
|
||||
if [ "$PKG_INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试安装的软件包 $PKG_NAME"
|
||||
dnf remove -y $PKG_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PKG_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,159 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--add-profile参数构建镜像并添加配置文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(如未定义)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 定义检查结果函数(如未定义)
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local index=$3
|
||||
local message=$4
|
||||
if [ $actual -ne $expected ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $actual
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(如未定义)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
# 这里假设使用sshpass进行密码登录,实际环境可能需要调整
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no "$node_user@$node_ip" "$cmd"
|
||||
}
|
||||
|
||||
# 定义清理函数
|
||||
cleanup() {
|
||||
LOG_INFO "开始清理环境"
|
||||
if [ "$originally_installed" -ne 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
LOG_INFO "环境清理完成"
|
||||
}
|
||||
|
||||
# 设置陷阱,确保脚本退出时执行清理
|
||||
trap cleanup EXIT
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "检查python3-kiwi和kiwicompat-3是否已安装"
|
||||
if rpm -q python3-kiwi kiwicompat-3 &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,标记为保持安装状态"
|
||||
originally_installed=0
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为需要清理"
|
||||
originally_installed=1
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwicompat-3软件包"
|
||||
dnf list available python3-kiwi kiwicompat-3 &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwicompat-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$originally_installed" -eq 1 ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 检查命令参数是否支持
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--build、--dest-dir和--add-profile参数"
|
||||
kiwi-ng --help | grep -q -- "--build"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng不支持--build参数"
|
||||
kiwi-ng --help | grep -q -- "--dest-dir"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng不支持--dest-dir参数"
|
||||
kiwi-ng --help | grep -q -- "--add-profile"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng不支持--add-profile参数"
|
||||
|
||||
# 创建测试用的kiwi描述文件和配置文件
|
||||
LOG_INFO "创建测试用的kiwi描述文件和配置文件"
|
||||
mkdir -p /tmp/test_kiwi
|
||||
cat > /tmp/test_kiwi/config.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test KIWI Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/repositories/Virtualization:/Appliances:/Images/openEuler_22.03/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
<package name="coreutils"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
|
||||
cat > /tmp/test_kiwi/profile.config << EOF
|
||||
# Test profile configuration
|
||||
echo "This is a test profile"
|
||||
EOF
|
||||
|
||||
# 使用kiwi-ng构建镜像并添加配置文件
|
||||
LOG_INFO "使用kiwi-ng构建镜像并添加配置文件"
|
||||
kiwi-ng --debug --build /tmp/test_kiwi/config.xml --dest-dir /tmp/test_output --add-profile /tmp/test_kiwi/profile.config
|
||||
CHECK_RESULT $? 0 0 "构建镜像失败"
|
||||
|
||||
# 检查构建输出
|
||||
LOG_INFO "检查构建输出目录是否存在"
|
||||
if [ -d "/tmp/test_output" ]; then
|
||||
LOG_INFO "构建输出目录创建成功"
|
||||
else
|
||||
LOG_ERROR "构建输出目录未创建"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -rf /tmp/test_kiwi /tmp/test_output
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,139 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--add-repo参数构建镜像并添加仓库
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwicompat3
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwicompat3"
|
||||
rpm -q python3-kiwi kiwicompat3 > /dev/null 2>&1
|
||||
INSTALLED=$?
|
||||
|
||||
# 如果未安装,则进行安装
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "未安装python3-kiwi和kiwicompat3,开始安装"
|
||||
# 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中无python3-kiwi软件包"
|
||||
# 检查yum源中是否有kiwicompat3软件包
|
||||
LOG_INFO "检查yum源中是否有kiwicompat3软件包"
|
||||
dnf list available kiwicompat3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中无kiwicompat3软件包"
|
||||
# 安装python3-kiwi和kiwicompat3
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat3"
|
||||
dnf install -y python3-kiwi kiwicompat3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat3失败"
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwicompat3已安装"
|
||||
fi
|
||||
|
||||
# 测试使用--build、--dest-dir和--add-repo参数构建镜像并添加仓库
|
||||
LOG_INFO "测试使用--build、--dest-dir和--add-repo参数构建镜像并添加仓库"
|
||||
# 检查kiwi-ng命令是否支持--build参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--build参数"
|
||||
kiwi-ng --help | grep -q "\-\-build"
|
||||
CHECK_RESULT $? 0 255 "kiwi-ng命令不支持--build参数"
|
||||
# 检查kiwi-ng命令是否支持--dest-dir参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--dest-dir参数"
|
||||
kiwi-ng --help | grep -q "\-\-dest-dir"
|
||||
CHECK_RESULT $? 0 255 "kiwi-ng命令不支持--dest-dir参数"
|
||||
# 检查kiwi-ng命令是否支持--add-repo参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--add-repo参数"
|
||||
kiwi-ng --help | grep -q "\-\-add-repo"
|
||||
CHECK_RESULT $? 0 255 "kiwi-ng命令不支持--add-repo参数"
|
||||
|
||||
# 创建测试目录
|
||||
LOG_INFO "创建测试目录"
|
||||
mkdir -p /tmp/test_kiwi
|
||||
CHECK_RESULT $? 0 0 "创建测试目录失败"
|
||||
|
||||
# 创建简单的kiwi配置文件
|
||||
LOG_INFO "创建简单的kiwi配置文件"
|
||||
cat > /tmp/test_kiwi/config.xml << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none" bootloader="none"/>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<version>1.0.0</version>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="yast2">
|
||||
<source path="obs://openEuler:22.03:Update/standard"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi配置文件失败"
|
||||
|
||||
# 执行kiwi-ng命令构建镜像
|
||||
LOG_INFO "执行kiwi-ng命令构建镜像"
|
||||
kiwi-ng system build \
|
||||
--build /tmp/test_kiwi/build \
|
||||
--dest-dir /tmp/test_kiwi/result \
|
||||
--add-repo "http://example.com/repo,repo-name" \
|
||||
--description /tmp/test_kiwi/config.xml \
|
||||
--target-dir /tmp/test_kiwi/target
|
||||
BUILD_RESULT=$?
|
||||
|
||||
# 检查构建结果
|
||||
if [ $BUILD_RESULT -eq 0 ]; then
|
||||
LOG_INFO "kiwi-ng构建镜像成功"
|
||||
else
|
||||
LOG_ERROR "kiwi-ng构建镜像失败"
|
||||
# 构建失败时,如果是因为参数问题,退出码应为255
|
||||
# 但这里我们无法区分具体原因,所以按照Linux标准退出码处理
|
||||
# 不过根据需求,参数检查已经在前面完成,这里应该是其他错误
|
||||
fi
|
||||
|
||||
# 清理测试目录
|
||||
LOG_INFO "清理测试目录"
|
||||
rm -rf /tmp/test_kiwi
|
||||
CHECK_RESULT $? 0 0 "清理测试目录失败"
|
||||
|
||||
# 如果脚本开始前未安装,则卸载软件包
|
||||
if [ $INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat3"
|
||||
dnf remove -y python3-kiwi kiwicompat3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat3失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwicompat3安装状态"
|
||||
fi
|
||||
|
||||
# 根据构建结果退出
|
||||
if [ $BUILD_RESULT -eq 0 ]; then
|
||||
LOG_INFO "测试完成,构建成功"
|
||||
exit 0
|
||||
else
|
||||
LOG_ERROR "测试完成,构建失败"
|
||||
exit $BUILD_RESULT
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--debug参数以调试模式构建镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:是否已安装python3-kiwi和kiwicompat-3软件包
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwicompat-3软件包"
|
||||
rpm -q python3-kiwi > /dev/null 2>&1
|
||||
python3_kiwi_installed=$?
|
||||
rpm -q kiwicompat-3 > /dev/null 2>&1
|
||||
kiwicompat_installed=$?
|
||||
|
||||
# 检查yum源中是否存在python3-kiwi和kiwicompat-3软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi和kiwicompat-3软件包"
|
||||
dnf list available python3-kiwi > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在python3-kiwi软件包"
|
||||
dnf list available kiwicompat-3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在kiwicompat-3软件包"
|
||||
|
||||
# 根据检查结果决定安装或卸载
|
||||
if [ $python3_kiwi_installed -eq 0 ] && [ $kiwicompat_installed -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwicompat-3软件包已安装,测试结束后将保持安装状态"
|
||||
need_uninstall=false
|
||||
else
|
||||
LOG_INFO "开始安装python3-kiwi和kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat-3软件包失败"
|
||||
need_uninstall=true
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--build、--dest-dir和--debug参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--build、--dest-dir和--debug参数"
|
||||
kiwi-ng --help | grep -q -- "--build"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--build参数"
|
||||
kiwi-ng --help | grep -q -- "--dest-dir"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--dest-dir参数"
|
||||
kiwi-ng --help | grep -q -- "--debug"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--debug参数"
|
||||
|
||||
# 准备测试目录和配置文件
|
||||
LOG_INFO "准备测试目录和配置文件"
|
||||
test_dir="/tmp/kiwi_test_$(date +%s)"
|
||||
mkdir -p $test_dir/config
|
||||
cat > $test_dir/config/config.xml << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<rpm-check-signatures>false</rpm-check-signatures>
|
||||
<rpm-excludedocs>true</rpm-excludedocs>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$xyz" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="yast2">
|
||||
<source path="obs://openEuler:22.03:Update/standard"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi配置文件失败"
|
||||
|
||||
# 执行kiwi-ng命令以调试模式构建镜像
|
||||
LOG_INFO "执行kiwi-ng命令以调试模式构建镜像"
|
||||
dest_dir="$test_dir/output"
|
||||
kiwi-ng --debug --type docker system build --description $test_dir/config --dest-dir $dest_dir
|
||||
build_result=$?
|
||||
|
||||
# 检查构建结果
|
||||
if [ $build_result -eq 0 ]; then
|
||||
LOG_INFO "kiwi-ng命令成功执行,构建镜像完成"
|
||||
# 检查输出目录是否存在构建产物
|
||||
if [ -d "$dest_dir" ] && [ "$(ls -A $dest_dir 2>/dev/null)" ]; then
|
||||
LOG_INFO "构建产物已生成在目录: $dest_dir"
|
||||
else
|
||||
LOG_ERROR "构建产物未生成在指定目录"
|
||||
CHECK_RESULT 1 0 0 "构建产物未生成"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "kiwi-ng命令执行失败,退出码: $build_result"
|
||||
CHECK_RESULT $build_result 0 0 "kiwi-ng命令执行失败"
|
||||
fi
|
||||
|
||||
# 清理测试目录
|
||||
LOG_INFO "清理测试目录"
|
||||
rm -rf $test_dir
|
||||
CHECK_RESULT $? 0 0 "清理测试目录失败"
|
||||
|
||||
# 根据安装状态决定是否卸载软件包
|
||||
if [ "$need_uninstall" = true ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat-3软件包失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwicompat-3软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--ignore-repos参数构建镜像并忽略仓库
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已安装python3-kiwi和kiwicompat-3
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwicompat-3"
|
||||
rpm -q python3-kiwi kiwicompat-3 > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwicompat-3已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwicompat-3未安装,将进行安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwicompat-3软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwicompat-3软件包"
|
||||
dnf list available python3-kiwi kiwicompat-3 > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中缺少python3-kiwi或kiwicompat-3软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwicompat-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--build、--dest-dir和--ignore-repos参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--build、--dest-dir和--ignore-repos参数"
|
||||
kiwi-ng --help | grep -E "\-\-build|\-\-dest\-dir|\-\-ignore\-repos" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--build、--dest-dir或--ignore-repos参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--build、--dest-dir或--ignore-repos参数"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 准备测试用的kiwi描述文件
|
||||
LOG_INFO "准备测试用的kiwi描述文件"
|
||||
cat > test_image.xml << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/repositories/Virtualization:/Appliances:/Images/openEuler_22.03/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi描述文件失败"
|
||||
|
||||
# 创建目标目录
|
||||
LOG_INFO "创建目标目录"
|
||||
mkdir -p /tmp/test_dest_dir
|
||||
CHECK_RESULT $? 0 0 "创建目标目录失败"
|
||||
|
||||
# 使用--build、--dest-dir和--ignore-repos参数构建镜像
|
||||
LOG_INFO "使用--build、--dest-dir和--ignore-repos参数构建镜像"
|
||||
kiwi-ng system build --description . --target-dir /tmp/test_dest_dir --ignore-repos
|
||||
CHECK_RESULT $? 0 0 "使用--build、--dest-dir和--ignore-repos参数构建镜像失败"
|
||||
|
||||
# 检查构建的镜像文件是否存在
|
||||
LOG_INFO "检查构建的镜像文件是否存在"
|
||||
ls /tmp/test_dest_dir/*.tar.xz > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "构建的镜像文件不存在"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_image.xml
|
||||
rm -rf /tmp/test_dest_dir
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果脚本开始前未安装,则卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat-3失败"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwicompat-3软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--logfile参数构建镜像并指定日志文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装了python3-kiwi和kiwicompat-3软件包
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwicompat-3软件包"
|
||||
rpm -q python3-kiwi kiwicompat-3 > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装,并在脚本结束前卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwicompat-3软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwicompat-3软件包"
|
||||
dnf list available python3-kiwi kiwicompat-3 > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi或kiwicompat-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat-3软件包失败"
|
||||
fi
|
||||
|
||||
# 创建测试用的临时目录
|
||||
LOG_INFO "创建测试用的临时目录"
|
||||
TEST_DIR=$(mktemp -d)
|
||||
CHECK_RESULT $? 0 0 "创建临时目录失败"
|
||||
LOG_INFO "临时目录路径: $TEST_DIR"
|
||||
|
||||
# 创建测试用的日志文件
|
||||
LOG_INFO "创建测试用的日志文件"
|
||||
LOG_FILE="$TEST_DIR/build.log"
|
||||
touch "$LOG_FILE"
|
||||
CHECK_RESULT $? 0 0 "创建日志文件失败"
|
||||
|
||||
# 测试使用--build、--dest-dir和--logfile参数构建镜像并指定日志文件
|
||||
LOG_INFO "测试使用--build、--dest-dir和--logfile参数构建镜像并指定日志文件"
|
||||
kiwi-ng --build --dest-dir "$TEST_DIR" --logfile "$LOG_FILE" system build --description /usr/share/kiwi/image/JeOS-suse-tumbleweed --target-dir "$TEST_DIR/output" 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用--build、--dest-dir和--logfile参数构建镜像失败"
|
||||
|
||||
# 检查日志文件是否生成并包含内容
|
||||
LOG_INFO "检查日志文件是否生成并包含内容"
|
||||
if [ -s "$LOG_FILE" ]; then
|
||||
LOG_INFO "日志文件已生成并包含内容"
|
||||
else
|
||||
LOG_ERROR "日志文件未生成或为空"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理临时目录
|
||||
LOG_INFO "清理临时目录"
|
||||
rm -rf "$TEST_DIR"
|
||||
CHECK_RESULT $? 0 0 "清理临时目录失败"
|
||||
|
||||
# 如果测试前未安装软件包,则在测试结束后卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat-3软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--set-repo参数构建镜像并设置仓库
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwicompat-3
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwicompat-3"
|
||||
rpm -q python3-kiwi kiwicompat-3 > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装并在测试后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在python3-kiwi和kiwicompat-3软件包
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi和kiwicompat-3软件包"
|
||||
dnf list available python3-kiwi kiwicompat-3 > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi或kiwicompat-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
# 创建测试用的临时目录
|
||||
LOG_INFO "创建测试用的临时目录"
|
||||
TEST_DIR=$(mktemp -d)
|
||||
CHECK_RESULT $? 0 0 "创建临时目录失败"
|
||||
DEST_DIR="${TEST_DIR}/dest"
|
||||
mkdir -p "$DEST_DIR"
|
||||
CHECK_RESULT $? 0 0 "创建目标目录失败"
|
||||
|
||||
# 创建简单的kiwi配置文件
|
||||
LOG_INFO "创建简单的kiwi配置文件"
|
||||
KIWI_CONFIG="${TEST_DIR}/test_config.xml"
|
||||
cat > "$KIWI_CONFIG" << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none" bootloader="none" filesystem="ext4"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/tumbleweed/repo/oss/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
<package name="coreutils"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi配置文件失败"
|
||||
|
||||
# 测试使用--build、--dest-dir和--set-repo参数构建镜像并设置仓库
|
||||
LOG_INFO "测试使用--build、--dest-dir和--set-repo参数构建镜像并设置仓库"
|
||||
kiwi-ng --debug system build \
|
||||
--description "$KIWI_CONFIG" \
|
||||
--target-dir "$DEST_DIR" \
|
||||
--set-repo "https://download.opensuse.org/tumbleweed/repo/oss/,alias=oss,type=rpm-md,priority=1" \
|
||||
--add-repo "https://download.opensuse.org/tumbleweed/repo/non-oss/,alias=nonoss,type=rpm-md,priority=2"
|
||||
CHECK_RESULT $? 0 0 "使用--build、--dest-dir和--set-repo参数构建镜像失败"
|
||||
|
||||
# 检查构建结果
|
||||
LOG_INFO "检查构建结果"
|
||||
if [ -f "$DEST_DIR/test-image.x86_64-1.0.0.docker.tar.xz" ]; then
|
||||
LOG_INFO "镜像构建成功,文件存在于$DEST_DIR"
|
||||
else
|
||||
LOG_ERROR "镜像构建失败,未找到预期的镜像文件"
|
||||
# 清理临时目录
|
||||
rm -rf "$TEST_DIR"
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理临时目录
|
||||
LOG_INFO "清理临时目录"
|
||||
rm -rf "$TEST_DIR"
|
||||
CHECK_RESULT $? 0 0 "清理临时目录失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--type参数构建指定类型的镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试python3-kiwi_kiwicompat-3的--build、--dest-dir和--type参数构建指定类型的镜像功能"
|
||||
|
||||
LOG_INFO "步骤1: 检查是否已安装python3-kiwi_kiwicompat-3"
|
||||
if dnf list installed python3-kiwi_kiwicompat-3 &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi_kiwicompat-3已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi_kiwicompat-3未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否存在python3-kiwi_kiwicompat-3软件包"
|
||||
if ! dnf list available python3-kiwi_kiwicompat-3 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi_kiwicompat-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装python3-kiwi_kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi_kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi_kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查kiwi-ng命令是否支持--build、--dest-dir和--type参数"
|
||||
kiwi-ng --help | grep -q -- "--build"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--build参数"
|
||||
kiwi-ng --help | grep -q -- "--dest-dir"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--dest-dir参数"
|
||||
kiwi-ng --help | grep -q -- "--type"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--type参数"
|
||||
|
||||
LOG_INFO "步骤5: 创建测试用的kiwi描述文件"
|
||||
cat > test_image.kiwi << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test image for kiwi build</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none" bootloader="none" flags="docker"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US.UTF-8</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc7eNTs8NtInTr1" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="yum2">
|
||||
<source path="https://download.opensuse.org/repositories/Virtualization:/Appliances:/Builder/openEuler_22.03_LTS/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
<package name="coreutils"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi描述文件失败"
|
||||
|
||||
LOG_INFO "步骤6: 使用--build、--dest-dir和--type参数构建docker类型镜像"
|
||||
kiwi-ng system build --description ./ --dest-dir /tmp/kiwi_test_build --type docker
|
||||
CHECK_RESULT $? 0 0 "使用指定参数构建镜像失败"
|
||||
|
||||
LOG_INFO "步骤7: 验证构建的镜像文件是否存在"
|
||||
ls -la /tmp/kiwi_test_build/*.tar.xz
|
||||
CHECK_RESULT $? 0 0 "未找到构建的镜像文件"
|
||||
|
||||
LOG_INFO "步骤8: 清理测试生成的临时文件"
|
||||
rm -rf test_image.kiwi /tmp/kiwi_test_build
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤9: 卸载测试安装的python3-kiwi_kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi_kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi_kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--create和--dest-dir参数从根目录创建镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
# 环境检查:检查是否已安装python3-kiwi和kiwicompat-3
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwicompat-3"
|
||||
if rpm -q python3-kiwi kiwicompat-3 &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi和kiwicompat-3已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwicompat-3未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwicompat-3软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwicompat-3软件包"
|
||||
if ! dnf list available python3-kiwi kiwicompat-3 &>/dev/null; then
|
||||
LOG_ERROR "yum源中找不到python3-kiwi或kiwicompat-3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--create和--dest-dir参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--create和--dest-dir参数"
|
||||
if ! kiwi-ng --help | grep -q -- "--create" || ! kiwi-ng --help | grep -q -- "--dest-dir"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--create或--dest-dir参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建临时目录用于存放生成的镜像
|
||||
LOG_INFO "创建临时目录用于存放生成的镜像"
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
LOG_INFO "临时目录路径: $TEMP_DIR"
|
||||
|
||||
# 使用kiwi-ng命令从根目录创建镜像
|
||||
LOG_INFO "使用kiwi-ng命令从根目录创建镜像"
|
||||
kiwi-ng --create / --dest-dir "$TEMP_DIR" --type oem
|
||||
CHECK_RESULT $? 0 0 "使用kiwi-ng创建镜像失败"
|
||||
|
||||
# 检查是否成功生成镜像文件
|
||||
LOG_INFO "检查是否成功生成镜像文件"
|
||||
if [ -f "$TEMP_DIR"/*.raw ] || [ -f "$TEMP_DIR"/*.qcow2 ] || [ -f "$TEMP_DIR"/*.vmdk ]; then
|
||||
LOG_INFO "镜像文件生成成功"
|
||||
else
|
||||
LOG_ERROR "未找到生成的镜像文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理临时目录
|
||||
LOG_INFO "清理临时目录"
|
||||
rm -rf "$TEMP_DIR"
|
||||
CHECK_RESULT $? 0 0 "清理临时目录失败"
|
||||
|
||||
# 如果测试前未安装软件包,则在测试结束后卸载
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用-h参数查看帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试python3-kiwi_kiwicompat-3的-h参数帮助信息功能"
|
||||
LOG_INFO "步骤1: 检查软件包是否在yum源中"
|
||||
dnf list available python3-kiwi_kiwicompat-3 &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包python3-kiwi_kiwicompat-3在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查当前环境是否已安装python3-kiwi_kiwicompat-3"
|
||||
rpm -q python3-kiwi_kiwicompat-3 &> /dev/null
|
||||
PACKAGE_INSTALLED=$?
|
||||
|
||||
if [ $PACKAGE_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "检测到软件包已安装,测试后保持安装状态"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "检测到软件包未安装,将在测试前安装"
|
||||
NEED_CLEANUP=1
|
||||
LOG_INFO "步骤3: 安装python3-kiwi_kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi_kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi_kiwicompat-3软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 测试使用-h参数查看帮助信息"
|
||||
kiwi-ng compat -h &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "执行"kiwi-ng compat -h"命令失败,可能不支持-h参数"
|
||||
LOG_INFO ""kiwi-ng compat -h"命令执行成功"
|
||||
|
||||
LOG_INFO "步骤5: 清理测试环境"
|
||||
if [ $NEED_CLEANUP -eq 1 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包python3-kiwi_kiwicompat-3"
|
||||
dnf remove -y python3-kiwi_kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi_kiwicompat-3软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装软件包,保持安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--prepare和--root参数准备镜像根目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试kiwicompat3的--prepare和--root参数功能"
|
||||
|
||||
LOG_INFO "步骤1: 检查测试环境是否已安装python3-kiwi-kiwicompat3软件包"
|
||||
if rpm -q python3-kiwi-kiwicompat3 &> /dev/null; then
|
||||
LOG_INFO "检测到python3-kiwi-kiwicompat3已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "未检测到python3-kiwi-kiwicompat3安装,将在测试前安装,测试后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否存在python3-kiwi-kiwicompat3软件包"
|
||||
if ! dnf list available python3-kiwi-kiwicompat3 &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi-kiwicompat3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤3: 安装python3-kiwi-kiwicompat3软件包"
|
||||
dnf install -y python3-kiwi-kiwicompat3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi-kiwicompat3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查kiwicompat3命令是否支持--prepare和--root参数"
|
||||
kiwicompat3 --help | grep -q -- "--prepare" || {
|
||||
LOG_ERROR "kiwicompat3命令不支持--prepare参数"
|
||||
exit 255
|
||||
}
|
||||
kiwicompat3 --help | grep -q -- "--root" || {
|
||||
LOG_ERROR "kiwicompat3命令不支持--root参数"
|
||||
exit 255
|
||||
}
|
||||
|
||||
TEST_ROOT_DIR=$(mktemp -d)
|
||||
LOG_INFO "步骤5: 创建测试用的临时根目录: $TEST_ROOT_DIR"
|
||||
|
||||
LOG_INFO "步骤6: 执行kiwicompat3 --prepare --root命令准备镜像根目录"
|
||||
kiwicompat3 --prepare --root "$TEST_ROOT_DIR"
|
||||
CHECK_RESULT $? 0 0 "执行kiwicompat3 --prepare --root失败"
|
||||
|
||||
LOG_INFO "步骤7: 验证根目录是否成功创建了必要的文件或目录"
|
||||
if [ -d "$TEST_ROOT_DIR/etc" ]; then
|
||||
LOG_INFO "根目录准备成功,检测到/etc目录存在"
|
||||
else
|
||||
LOG_ERROR "根目录准备失败,未找到必要的/etc目录"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8: 清理测试创建的临时根目录"
|
||||
rm -rf "$TEST_ROOT_DIR"
|
||||
CHECK_RESULT $? 0 0 "清理临时根目录失败"
|
||||
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤9: 卸载测试安装的python3-kiwi-kiwicompat3软件包"
|
||||
dnf remove -y python3-kiwi-kiwicompat3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi-kiwicompat3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--upgrade参数升级镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-kiwi和kiwicompat-3
|
||||
LOG_INFO "检查python3-kiwi和kiwicompat-3是否已安装"
|
||||
rpm -q python3-kiwi kiwicompat-3
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwicompat-3已安装,脚本结束后将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwicompat-3未安装,将在测试步骤中安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwicompat-3
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwicompat-3软件包"
|
||||
dnf list available python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到python3-kiwi或kiwicompat-3软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat-3软件包"
|
||||
dnf install -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
# 检查kiwi-ng命令是否支持--upgrade参数
|
||||
LOG_INFO "检查kiwi-ng命令是否支持--upgrade参数"
|
||||
kiwi-ng --help | grep -q "\-\-upgrade"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--upgrade参数"
|
||||
|
||||
# 测试使用--upgrade参数升级镜像
|
||||
LOG_INFO "测试使用--upgrade参数升级镜像"
|
||||
kiwi-ng --type iso system upgrade --help
|
||||
CHECK_RESULT $? 0 0 "使用--upgrade参数升级镜像失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat-3软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat-3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat-3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,176 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--upgrade和--add-package参数升级镜像并添加软件包
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境初始化
|
||||
LOG_INFO "开始测试:使用--upgrade和--add-package参数升级镜像并添加软件包"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
COMPAT_PACKAGE="kiwicompat-3"
|
||||
# 定义需要添加的测试软件包
|
||||
ADD_PACKAGE="tree"
|
||||
|
||||
# 检查yum源中是否存在所需软件包
|
||||
LOG_INFO "检查yum源中是否存在软件包: ${PACKAGE_NAME}"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: ${PACKAGE_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在软件包: ${COMPAT_PACKAGE}"
|
||||
dnf list available ${COMPAT_PACKAGE} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: ${COMPAT_PACKAGE}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在待添加软件包: ${ADD_PACKAGE}"
|
||||
dnf list available ${ADD_PACKAGE} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: ${ADD_PACKAGE}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前环境是否已安装测试软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包"
|
||||
INSTALLED=false
|
||||
rpm -q ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
fi
|
||||
|
||||
rpm -q ${COMPAT_PACKAGE} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${COMPAT_PACKAGE} 已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 ${COMPAT_PACKAGE} 未安装"
|
||||
fi
|
||||
|
||||
# 测试步骤1:安装软件包(如果未安装)
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤1:安装测试所需的软件包"
|
||||
dnf install -y ${PACKAGE_NAME} ${COMPAT_PACKAGE}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
else
|
||||
LOG_INFO "步骤1:软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试步骤2:检查kiwi命令是否支持--upgrade和--add-package参数
|
||||
LOG_INFO "步骤2:检查kiwi命令参数支持情况"
|
||||
kiwi --help | grep -q "\-\-upgrade"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi命令不支持--upgrade参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
kiwi --help | grep -q "\-\-add-package"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi命令不支持--add-package参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "kiwi命令支持--upgrade和--add-package参数"
|
||||
|
||||
# 测试步骤3:创建测试配置目录和配置文件
|
||||
LOG_INFO "步骤3:准备测试环境"
|
||||
TEST_DIR="/tmp/kiwi_test_$(date +%s)"
|
||||
mkdir -p ${TEST_DIR}
|
||||
CHECK_RESULT $? 0 0 "创建测试目录失败"
|
||||
|
||||
# 创建简单的kiwi配置文件
|
||||
cat > ${TEST_DIR}/config.xml << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" derived_from="openEuler-docker.x86_64-22.03-LTS">
|
||||
<containerconfig name="test-container"/>
|
||||
</type>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<rpm-check-signatures>false</rpm-check-signatures>
|
||||
<rpm-excludedocs>false</rpm-excludedocs>
|
||||
</preferences>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
<package name="coreutils"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建配置文件失败"
|
||||
|
||||
# 测试步骤4:执行kiwi命令测试--upgrade和--add-package参数
|
||||
LOG_INFO "步骤4:执行kiwi命令测试--upgrade和--add-package参数"
|
||||
LOG_INFO "执行命令:kiwi --upgrade --add-package ${ADD_PACKAGE} system build --description ${TEST_DIR} --target-dir ${TEST_DIR}/build"
|
||||
|
||||
# 注意:实际测试中可能需要调整参数或使用模拟环境
|
||||
# 这里使用--dry-run模式避免实际构建
|
||||
kiwi --upgrade --add-package ${ADD_PACKAGE} system build --description ${TEST_DIR} --target-dir ${TEST_DIR}/build --dry-run
|
||||
CHECK_RESULT $? 0 0 "kiwi命令执行失败"
|
||||
|
||||
LOG_INFO "kiwi命令执行成功,参数测试通过"
|
||||
|
||||
# 测试步骤5:验证添加的软件包是否在包列表中
|
||||
LOG_INFO "步骤5:验证添加的软件包配置"
|
||||
if [ -f "${TEST_DIR}/config.xml" ]; then
|
||||
grep -q "${ADD_PACKAGE}" ${TEST_DIR}/config.xml
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${ADD_PACKAGE} 已成功添加到配置"
|
||||
else
|
||||
LOG_INFO "注意:软件包 ${ADD_PACKAGE} 可能未在配置中显示,这可能是dry-run模式的原因"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "步骤6:清理测试环境"
|
||||
|
||||
# 删除测试目录
|
||||
rm -rf ${TEST_DIR}
|
||||
CHECK_RESULT $? 0 0 "清理测试目录失败"
|
||||
LOG_INFO "测试目录清理完成"
|
||||
|
||||
# 如果测试前未安装软件包,则卸载测试安装的软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤7:卸载测试安装的软件包"
|
||||
dnf remove -y ${PACKAGE_NAME} ${COMPAT_PACKAGE}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
LOG_INFO "软件包卸载完成"
|
||||
else
|
||||
LOG_INFO "步骤7:保持原有安装状态,不卸载软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用--upgrade和--add-package参数升级镜像并添加软件包测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--upgrade和--del-package参数升级镜像并删除软件包
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色变量(可选,但通常LOG_INFO/LOG_ERROR会带颜色)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 测试用例描述:测试使用--upgrade和--del-package参数升级镜像并删除软件包
|
||||
LOG_INFO "开始测试:使用--upgrade和--del-package参数升级镜像并删除软件包"
|
||||
|
||||
# 步骤1:检查是否已安装python3-kiwi和kiwicompat3
|
||||
LOG_INFO "步骤1:检查是否已安装python3-kiwi和kiwicompat3"
|
||||
if rpm -q python3-kiwi kiwicompat3 &>/dev/null; then
|
||||
LOG_INFO "python3-kiwi和kiwicompat3已安装"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwicompat3未安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有python3-kiwi和kiwicompat3软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有python3-kiwi和kiwicompat3软件包"
|
||||
if ! dnf list available python3-kiwi kiwicompat3 &>/dev/null; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwicompat3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包作为测试步骤
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-kiwi和kiwicompat3"
|
||||
dnf install -y python3-kiwi kiwicompat3
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat3失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证kiwi命令是否支持--upgrade和--del-package参数
|
||||
LOG_INFO "步骤4:验证kiwi命令是否支持--upgrade和--del-package参数"
|
||||
if ! kiwi --help 2>&1 | grep -q -- "--upgrade"; then
|
||||
LOG_ERROR "kiwi命令不支持--upgrade参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! kiwi --help 2>&1 | grep -q -- "--del-package"; then
|
||||
LOG_ERROR "kiwi命令不支持--del-package参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:创建一个简单的镜像配置文件用于测试
|
||||
LOG_INFO "步骤5:创建一个简单的镜像配置文件用于测试"
|
||||
test_config_dir="/tmp/kiwi_test_$$"
|
||||
mkdir -p "$test_config_dir"
|
||||
cat > "$test_config_dir/config.xml" <<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" derived_from="openEuler-docker.x86_64-latest.tar.xz"/>
|
||||
</preferences>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建镜像配置文件失败"
|
||||
|
||||
# 步骤6:使用kiwi命令创建镜像(不实际构建,仅验证参数)
|
||||
LOG_INFO "步骤6:测试kiwi --upgrade和--del-package参数"
|
||||
# 注意:这里仅模拟参数检查,不实际构建镜像以避免环境影响
|
||||
kiwi --upgrade --del-package bash --prepare "$test_config_dir" --root /tmp/kiwi_root_$$ 2>&1 | grep -q "Usage:\|error"
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "kiwi --upgrade --del-package参数执行失败"
|
||||
# 清理临时目录
|
||||
rm -rf "$test_config_dir" /tmp/kiwi_root_$$ 2>/dev/null
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "kiwi --upgrade --del-package参数验证通过"
|
||||
|
||||
# 步骤7:清理临时目录
|
||||
LOG_INFO "步骤7:清理临时目录"
|
||||
rm -rf "$test_config_dir" /tmp/kiwi_root_$$ 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "清理临时目录失败"
|
||||
|
||||
# 步骤8:如果测试前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤8:卸载测试安装的python3-kiwi和kiwicompat3"
|
||||
dnf remove -y python3-kiwi kiwicompat3
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用--upgrade和--del-package参数升级镜像并删除软件包验证通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用-v参数查看版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试使用-v参数查看版本信息
|
||||
LOG_INFO "开始测试使用-v参数查看版本信息"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-kiwi-kiwicompat-3_upper"
|
||||
|
||||
# 步骤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}"
|
||||
INSTALLED=0
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包${PACKAGE_NAME}已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包${PACKAGE_NAME}未安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装软件包${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包${PACKAGE_NAME}失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查命令是否支持-v参数
|
||||
LOG_INFO "步骤4: 检查命令是否支持-v参数"
|
||||
kiwi-kiwicompat --help 2>&1 | grep -q "\-v"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令kiwi-kiwicompat不支持-v参数"
|
||||
# 如果是新安装的软件包,需要卸载
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 使用-v参数查看版本信息
|
||||
LOG_INFO "步骤5: 使用-v参数查看版本信息"
|
||||
kiwi-kiwicompat -v
|
||||
CHECK_RESULT $? 0 0 "使用-v参数查看版本信息失败"
|
||||
|
||||
# 步骤6: 环境清理
|
||||
LOG_INFO "步骤6: 环境清理"
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包${PACKAGE_NAME}失败"
|
||||
else
|
||||
LOG_INFO "保持软件包${PACKAGE_NAME}的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,145 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build和--dest-dir参数构建镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试python3-kiwi的kiwicompat工具--build和--dest-dir参数构建镜像功能"
|
||||
|
||||
# 检查是否已安装python3-kiwi
|
||||
if dnf list installed python3-kiwi &>/dev/null; then
|
||||
LOG_INFO "检测到python3-kiwi已安装,测试后将保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi未安装,将在测试前安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi
|
||||
LOG_INFO "检查yum源中是否存在python3-kiwi软件包"
|
||||
if ! dnf list available python3-kiwi &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-kiwi
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装python3-kiwi"
|
||||
dnf install -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 检查kiwicompat命令是否存在
|
||||
LOG_INFO "检查kiwicompat命令是否存在"
|
||||
if ! command -v kiwicompat &>/dev/null; then
|
||||
LOG_ERROR "未找到kiwicompat命令"
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查kiwicompat是否支持--build参数
|
||||
LOG_INFO "检查kiwicompat是否支持--build参数"
|
||||
if ! kiwicompat --help 2>&1 | grep -q -- "--build"; then
|
||||
LOG_ERROR "kiwicompat不支持--build参数"
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查kiwicompat是否支持--dest-dir参数
|
||||
LOG_INFO "检查kiwicompat是否支持--dest-dir参数"
|
||||
if ! kiwicompat --help 2>&1 | grep -q -- "--dest-dir"; then
|
||||
LOG_ERROR "kiwicompat不支持--dest-dir参数"
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的临时目录和配置文件
|
||||
LOG_INFO "创建测试临时目录和配置文件"
|
||||
TEST_DIR=$(mktemp -d)
|
||||
KIWI_CONFIG="$TEST_DIR/test_config.xml"
|
||||
|
||||
cat > "$KIWI_CONFIG" << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<type image="docker" boot="none"/>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root"/>
|
||||
</users>
|
||||
<repository type="yast2">
|
||||
<source path="obs://OpenEuler:22.03:Mainline/standard"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
|
||||
# 测试使用--build和--dest-dir参数构建镜像
|
||||
LOG_INFO "测试使用kiwicompat --build和--dest-dir参数构建镜像"
|
||||
DEST_DIR="$TEST_DIR/output"
|
||||
mkdir -p "$DEST_DIR"
|
||||
|
||||
kiwicompat --build "$KIWI_CONFIG" --dest-dir "$DEST_DIR"
|
||||
CHECK_RESULT $? 0 0 "使用--build和--dest-dir参数构建镜像失败"
|
||||
|
||||
# 检查是否生成了镜像文件
|
||||
LOG_INFO "检查是否生成了镜像文件"
|
||||
if ls "$DEST_DIR"/*.tar.xz 1>/dev/null 2>&1; then
|
||||
LOG_INFO "镜像文件生成成功"
|
||||
else
|
||||
LOG_ERROR "未找到生成的镜像文件"
|
||||
rm -rf "$TEST_DIR"
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
dnf remove -y python3-kiwi
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试临时目录
|
||||
LOG_INFO "清理测试临时目录"
|
||||
rm -rf "$TEST_DIR"
|
||||
|
||||
# 如果测试前未安装,则卸载python3-kiwi
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi"
|
||||
dnf remove -y python3-kiwi
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--debug参数以调试模式构建镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用--build、--dest-dir和--debug参数以调试模式构建镜像"
|
||||
|
||||
# 检查环境是否已安装所需软件包
|
||||
LOG_INFO "步骤1:检查环境中是否已安装python3-kiwi和kiwicompat软件包"
|
||||
if rpm -q python3-kiwi kiwicompat &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有python3-kiwi和kiwicompat软件包"
|
||||
if ! dnf list available python3-kiwi kiwicompat &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-kiwi或kiwicompat软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-kiwi和kiwicompat软件包"
|
||||
dnf install -y python3-kiwi kiwicompat
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 检查命令参数是否支持
|
||||
LOG_INFO "步骤4:检查kiwi-ng命令是否支持--build、--dest-dir和--debug参数"
|
||||
if ! kiwi-ng --help 2>&1 | grep -q -- "--build\|--dest-dir\|--debug"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--build、--dest-dir或--debug参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行构建镜像命令
|
||||
LOG_INFO "步骤5:使用--build、--dest-dir和--debug参数以调试模式构建镜像"
|
||||
kiwi-ng --build --dest-dir /tmp/kiwi_build --debug
|
||||
CHECK_RESULT $? 0 0 "构建镜像失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "步骤6:清理测试环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试过程中安装的软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
# 删除构建目录
|
||||
if [ -d "/tmp/kiwi_build" ]; then
|
||||
rm -rf /tmp/kiwi_build
|
||||
CHECK_RESULT $? 0 0 "删除构建目录失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,151 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--build、--dest-dir和--type参数构建指定类型的镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已经安装了python3-kiwi和kiwicompat软件包
|
||||
LOG_INFO "检查是否已经安装python3-kiwi和kiwicompat软件包"
|
||||
if dnf list installed python3-kiwi >/dev/null 2>&1 && dnf list installed kiwicompat >/dev/null 2>&1; then
|
||||
LOG_INFO "python3-kiwi和kiwicompat已经安装"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwicompat未安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwicompat软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwicompat软件包"
|
||||
if ! dnf list available python3-kiwi >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有python3-kiwi软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available kiwicompat >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有kiwicompat软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中有python3-kiwi和kiwicompat软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat软件包"
|
||||
dnf install -y python3-kiwi kiwicompat
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat失败"
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat成功"
|
||||
fi
|
||||
|
||||
# 测试使用--build、--dest-dir和--type参数构建指定类型的镜像
|
||||
LOG_INFO "测试使用--build、--dest-dir和--type参数构建指定类型的镜像"
|
||||
# 检查kiwi-ng命令是否支持--build、--dest-dir和--type参数
|
||||
LOG_INFO "检查kiwi-ng命令参数支持情况"
|
||||
if ! kiwi-ng --help 2>&1 | grep -q -- "--build"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--build参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! kiwi-ng --help 2>&1 | grep -q -- "--dest-dir"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--dest-dir参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! kiwi-ng --help 2>&1 | grep -q -- "--type"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--type参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "kiwi-ng命令支持--build、--dest-dir和--type参数"
|
||||
|
||||
# 创建一个简单的kiwi描述文件用于测试
|
||||
LOG_INFO "创建测试用的kiwi描述文件"
|
||||
cat > test_image.kiwi << EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="6.8" name="test-image">
|
||||
<description type="system">
|
||||
<author>Test Author</author>
|
||||
<contact>test@example.com</contact>
|
||||
<specification>Test Image</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<version>1.0.0</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<type image="docker" derived_from="opensuse/tumbleweed"/>
|
||||
</preferences>
|
||||
<users>
|
||||
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
<repository type="rpm-md">
|
||||
<source path="https://download.opensuse.org/tumbleweed/repo/oss/"/>
|
||||
</repository>
|
||||
<packages type="image">
|
||||
<package name="bash"/>
|
||||
<package name="coreutils"/>
|
||||
</packages>
|
||||
</image>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建kiwi描述文件失败"
|
||||
|
||||
# 创建构建目录和目标目录
|
||||
LOG_INFO "创建构建目录和目标目录"
|
||||
build_dir=$(mktemp -d)
|
||||
dest_dir=$(mktemp -d)
|
||||
LOG_INFO "构建目录: $build_dir"
|
||||
LOG_INFO "目标目录: $dest_dir"
|
||||
|
||||
# 使用kiwi-ng命令构建docker类型的镜像
|
||||
LOG_INFO "执行kiwi-ng构建命令"
|
||||
kiwi-ng system build --description . --build $build_dir --dest-dir $dest_dir --type docker
|
||||
build_result=$?
|
||||
|
||||
# 检查构建结果
|
||||
if [ $build_result -eq 0 ]; then
|
||||
LOG_INFO "kiwi-ng构建命令执行成功"
|
||||
# 检查是否生成了镜像文件
|
||||
if [ -f "$dest_dir"/test-image.x86_64-1.0.0.docker.tar.xz ]; then
|
||||
LOG_INFO "成功生成docker镜像文件"
|
||||
else
|
||||
LOG_INFO "未找到预期的docker镜像文件,但命令执行成功"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "kiwi-ng构建命令执行失败,退出码: $build_result"
|
||||
# 根据Linux退出码标准处理
|
||||
if [ $build_result -ge 1 ] && [ $build_result -le 255 ]; then
|
||||
exit $build_result
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_image.kiwi
|
||||
rm -rf "$build_dir"
|
||||
rm -rf "$dest_dir"
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装软件包,则在测试后卸载
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的python3-kiwi和kiwicompat软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat失败"
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat成功"
|
||||
else
|
||||
LOG_INFO "保持python3-kiwi和kiwicompat的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,162 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--create、--root和--dest-dir参数从镜像根目录创建镜像
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
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
|
||||
$command --help 2>&1 | grep -q "$option"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $command 支持参数 $option"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
rpm -q "$package_name" &> /dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
run_test() {
|
||||
LOG_INFO "开始测试使用--create、--root和--dest-dir参数从镜像根目录创建镜像"
|
||||
|
||||
# 定义测试所需的软件包
|
||||
PACKAGE="python3-kiwi"
|
||||
|
||||
# 步骤1: 检查yum源中是否有python3-kiwi软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否有 $PACKAGE 软件包"
|
||||
check_package_in_repo "$PACKAGE"
|
||||
|
||||
# 步骤2: 检查kiwi-ng命令是否支持--create、--root和--dest-dir参数
|
||||
LOG_INFO "步骤2: 检查kiwi-ng命令是否支持--create、--root和--dest-dir参数"
|
||||
check_command_option "kiwi-ng" "--create"
|
||||
check_command_option "kiwi-ng" "--root"
|
||||
check_command_option "kiwi-ng" "--dest-dir"
|
||||
|
||||
# 步骤3: 检查测试环境是否已安装python3-kiwi
|
||||
LOG_INFO "步骤3: 检查测试环境是否已安装 $PACKAGE"
|
||||
if check_package_installed "$PACKAGE"; then
|
||||
LOG_INFO "软件包 $PACKAGE 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE 未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 步骤4: 如果未安装,则安装python3-kiwi
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤4: 安装 $PACKAGE 软件包"
|
||||
dnf install -y "$PACKAGE"
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE 失败"
|
||||
fi
|
||||
|
||||
# 步骤5: 创建测试用的镜像根目录
|
||||
LOG_INFO "步骤5: 创建测试用的镜像根目录"
|
||||
TEST_ROOT_DIR="/tmp/test_kiwi_root"
|
||||
TEST_DEST_DIR="/tmp/test_kiwi_dest"
|
||||
rm -rf "$TEST_ROOT_DIR" "$TEST_DEST_DIR"
|
||||
mkdir -p "$TEST_ROOT_DIR"
|
||||
mkdir -p "$TEST_DEST_DIR"
|
||||
|
||||
# 创建最小的根目录结构
|
||||
mkdir -p "$TEST_ROOT_DIR/bin"
|
||||
mkdir -p "$TEST_ROOT_DIR/etc"
|
||||
mkdir -p "$TEST_ROOT_DIR/lib"
|
||||
mkdir -p "$TEST_ROOT_DIR/usr"
|
||||
|
||||
# 步骤6: 执行kiwi-ng命令创建镜像
|
||||
LOG_INFO "步骤6: 执行kiwi-ng命令创建镜像"
|
||||
kiwi-ng --create "$TEST_ROOT_DIR" --root "$TEST_ROOT_DIR" --dest-dir "$TEST_DEST_DIR" --type oem
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng创建镜像失败"
|
||||
|
||||
# 步骤7: 检查是否成功创建镜像文件
|
||||
LOG_INFO "步骤7: 检查是否成功创建镜像文件"
|
||||
if [ -f "$TEST_DEST_DIR"/*.raw ] || [ -f "$TEST_DEST_DIR"/*.qcow2 ] || [ -f "$TEST_DEST_DIR"/*.vhd ]; then
|
||||
LOG_INFO "镜像文件创建成功"
|
||||
else
|
||||
LOG_ERROR "未找到创建的镜像文件"
|
||||
CHECK_RESULT 1 0 1 "镜像文件创建失败"
|
||||
fi
|
||||
|
||||
# 步骤8: 清理测试目录
|
||||
LOG_INFO "步骤8: 清理测试目录"
|
||||
rm -rf "$TEST_ROOT_DIR" "$TEST_DEST_DIR"
|
||||
|
||||
# 步骤9: 如果测试前未安装,则卸载python3-kiwi
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤9: 卸载 $PACKAGE 软件包"
|
||||
dnf remove -y "$PACKAGE"
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: 成功测试使用--create、--root和--dest-dir参数从镜像根目录创建镜像"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
run_test
|
||||
|
||||
# 环境恢复检查
|
||||
LOG_INFO "环境恢复检查: 确保测试环境已恢复到初始状态"
|
||||
if [ "$INSTALLED_BEFORE_TEST" = true ]; then
|
||||
if check_package_installed "$PACKAGE"; then
|
||||
LOG_INFO "软件包 $PACKAGE 已保持安装状态"
|
||||
else
|
||||
LOG_ERROR "软件包 $PACKAGE 意外被卸载"
|
||||
CHECK_RESULT 1 0 1 "环境恢复失败"
|
||||
fi
|
||||
else
|
||||
if check_package_installed "$PACKAGE"; then
|
||||
LOG_ERROR "软件包 $PACKAGE 未被正确卸载"
|
||||
dnf remove -y "$PACKAGE" 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "环境恢复失败"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE 已正确卸载"
|
||||
fi
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--prepare和--root参数准备镜像根目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 环境检查:判断是否已安装python3-kiwi和kiwicompat软件包
|
||||
LOG_INFO "检查是否已安装python3-kiwi和kiwicompat软件包"
|
||||
rpm -q python3-kiwi kiwicompat > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-kiwi和kiwicompat已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-kiwi和kiwicompat未安装,将在测试中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-kiwi和kiwicompat软件包
|
||||
LOG_INFO "检查yum源中是否有python3-kiwi和kiwicompat软件包"
|
||||
dnf list available python3-kiwi kiwicompat > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到python3-kiwi或kiwicompat软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中缺少python3-kiwi或kiwicompat软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装python3-kiwi和kiwicompat软件包"
|
||||
dnf install -y python3-kiwi kiwicompat
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi和kiwicompat软件包失败"
|
||||
fi
|
||||
|
||||
# 测试使用--prepare和--root参数准备镜像根目录
|
||||
LOG_INFO "测试使用--prepare和--root参数准备镜像根目录"
|
||||
# 创建一个临时目录作为root参数的值
|
||||
TEMP_ROOT_DIR=$(mktemp -d)
|
||||
# 检查--prepare和--root参数是否被支持
|
||||
kiwi-ng --help | grep -q -- "--prepare"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--prepare参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--prepare参数"
|
||||
# 清理临时目录
|
||||
rm -rf "$TEMP_ROOT_DIR"
|
||||
exit 255
|
||||
fi
|
||||
kiwi-ng --help | grep -q -- "--root"
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令不支持--root参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--root参数"
|
||||
# 清理临时目录
|
||||
rm -rf "$TEMP_ROOT_DIR"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行kiwi-ng命令进行测试
|
||||
LOG_INFO "执行kiwi-ng --prepare . --root $TEMP_ROOT_DIR命令"
|
||||
kiwi-ng --prepare . --root "$TEMP_ROOT_DIR"
|
||||
# 由于没有有效的配置文件,命令预期会失败,但检查命令执行本身是否成功
|
||||
CHECK_RESULT $? 0 1 "kiwi-ng命令执行异常"
|
||||
|
||||
# 清理临时目录
|
||||
LOG_INFO "清理临时目录"
|
||||
rm -rf "$TEMP_ROOT_DIR"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-kiwi和kiwicompat软件包"
|
||||
dnf remove -y python3-kiwi kiwicompat
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi和kiwicompat软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,109 +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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--prepare、--root和--add-repo参数准备镜像根目录并添加仓库
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(虽然题目说无需定义,但实际使用时需要定义,这里根据要求不定义直接使用)
|
||||
# 但为保持脚本完整性,这里注释说明:LOG_INFO和LOG_ERROR函数已存在
|
||||
|
||||
# 定义测试变量
|
||||
TEST_PACKAGE="python3-kiwi"
|
||||
TEST_COMMAND="kiwi-ng"
|
||||
TEST_PARAMS="--prepare --root /tmp/test_root --add-repo http://example.com/repo"
|
||||
|
||||
# 步骤1:检查测试环境是否已安装python3-kiwi
|
||||
LOG_INFO "步骤1:检查测试环境是否已安装python3-kiwi"
|
||||
if rpm -q ${TEST_PACKAGE} &> /dev/null; then
|
||||
LOG_INFO "检测到${TEST_PACKAGE}已安装,测试结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "未检测到${TEST_PACKAGE}安装,将在测试过程中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否存在python3-kiwi软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在python3-kiwi软件包"
|
||||
if ! dnf list available ${TEST_PACKAGE} &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到${TEST_PACKAGE}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:检查kiwi-ng命令是否支持--prepare、--root和--add-repo参数
|
||||
LOG_INFO "步骤3:检查kiwi-ng命令参数支持情况"
|
||||
if ! ${TEST_COMMAND} --help | grep -q "\-\-prepare"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--prepare参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! ${TEST_COMMAND} --help | grep -q "\-\-root"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--root参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! ${TEST_COMMAND} --help | grep -q "\-\-add-repo"; then
|
||||
LOG_ERROR "kiwi-ng命令不支持--add-repo参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤4:如果未安装则安装python3-kiwi
|
||||
LOG_INFO "步骤4:安装python3-kiwi软件包"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
dnf install -y ${TEST_PACKAGE}
|
||||
CHECK_RESULT $? 0 0 "安装python3-kiwi失败"
|
||||
fi
|
||||
|
||||
# 步骤5:创建测试用的根目录
|
||||
LOG_INFO "步骤5:创建测试用的根目录"
|
||||
rm -rf /tmp/test_root
|
||||
mkdir -p /tmp/test_root
|
||||
CHECK_RESULT $? 0 0 "创建测试根目录失败"
|
||||
|
||||
# 步骤6:测试使用--prepare、--root和--add-repo参数准备镜像根目录并添加仓库
|
||||
LOG_INFO "步骤6:执行kiwi-ng命令测试参数功能"
|
||||
${TEST_COMMAND} ${TEST_PARAMS}
|
||||
CHECK_RESULT $? 0 0 "kiwi-ng命令执行失败"
|
||||
|
||||
# 步骤7:验证根目录是否成功创建
|
||||
LOG_INFO "步骤7:验证根目录是否成功创建"
|
||||
if [ -d "/tmp/test_root" ]; then
|
||||
LOG_INFO "根目录创建成功"
|
||||
CHECK_RESULT 0 0 0 "根目录验证失败"
|
||||
else
|
||||
LOG_ERROR "根目录创建失败"
|
||||
CHECK_RESULT 1 0 0 "根目录验证失败"
|
||||
fi
|
||||
|
||||
# 步骤8:清理测试环境
|
||||
LOG_INFO "步骤8:清理测试环境"
|
||||
rm -rf /tmp/test_root
|
||||
CHECK_RESULT $? 0 0 "清理测试目录失败"
|
||||
|
||||
# 步骤9:如果测试前未安装则卸载python3-kiwi
|
||||
LOG_INFO "步骤9:恢复软件包状态"
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
dnf remove -y ${TEST_PACKAGE}
|
||||
CHECK_RESULT $? 0 0 "卸载python3-kiwi失败"
|
||||
LOG_INFO "已卸载测试安装的python3-kiwi"
|
||||
else
|
||||
LOG_INFO "保持原有的python3-kiwi安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,104 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--prepare、--root和--debug参数以调试模式准备镜像根目录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义变量
|
||||
PACKAGE_NAME="python3-kiwi"
|
||||
COMMAND="kiwicompat"
|
||||
PARAMS="--prepare --root /tmp/test_root --debug"
|
||||
NODE2_IPV4="192.168.1.100"
|
||||
NODE2_PASSWORD="password"
|
||||
NODE2_USER="root"
|
||||
|
||||
# 步骤1:检查环境是否已安装指定软件包
|
||||
LOG_INFO "步骤1:检查环境是否已安装 $PACKAGE_NAME"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "$PACKAGE_NAME 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "$PACKAGE_NAME 未安装,将在测试步骤中安装并在结束时卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有 $PACKAGE_NAME 软件包"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 $PACKAGE_NAME 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装 $PACKAGE_NAME 软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令是否存在
|
||||
LOG_INFO "步骤4:检查 $COMMAND 命令是否存在"
|
||||
if ! command -v $COMMAND &>/dev/null; then
|
||||
LOG_ERROR "$COMMAND 命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:检查命令参数是否支持
|
||||
LOG_INFO "步骤5:检查 $COMMAND 命令是否支持指定参数"
|
||||
if ! $COMMAND --help 2>&1 | grep -q -- "--prepare"; then
|
||||
LOG_ERROR "$COMMAND 命令不支持 --prepare 参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! $COMMAND --help 2>&1 | grep -q -- "--root"; then
|
||||
LOG_ERROR "$COMMAND 命令不支持 --root 参数"
|
||||
exit 255
|
||||
fi
|
||||
if ! $COMMAND --help 2>&1 | grep -q -- "--debug"; then
|
||||
LOG_ERROR "$COMMAND 命令不支持 --debug 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:在本地执行命令测试
|
||||
LOG_INFO "步骤6:在本地执行 $COMMAND $PARAMS 命令测试"
|
||||
$COMMAND $PARAMS
|
||||
CHECK_RESULT $? 0 0 "执行 $COMMAND $PARAMS 失败"
|
||||
|
||||
# 步骤7:在第二个服务器上执行命令测试
|
||||
LOG_INFO "步骤7:在第二个服务器上执行 $COMMAND $PARAMS 命令测试"
|
||||
SSH_CMD "$COMMAND $PARAMS" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
CHECK_RESULT $? 0 0 "在第二个服务器上执行 $COMMAND $PARAMS 失败"
|
||||
|
||||
# 步骤8:清理测试过程中创建的临时目录
|
||||
LOG_INFO "步骤8:清理测试过程中创建的临时目录"
|
||||
if [ -d "/tmp/test_root" ]; then
|
||||
rm -rf /tmp/test_root
|
||||
CHECK_RESULT $? 0 0 "清理临时目录失败"
|
||||
fi
|
||||
|
||||
# 步骤9:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤9:卸载 $PACKAGE_NAME 软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user