This commit is contained in:
2026-04-22 23:40:20 +08:00
136 changed files with 0 additions and 12983 deletions

View File

@@ -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"
}
]
}

View File

@@ -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配置"
}
]
}

View File

@@ -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": "测试清理构建产物"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -1,75 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-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 "$@"

View File

@@ -1,73 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2025-12-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 "$@"

View File

@@ -1,96 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,138 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -1,83 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-03-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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,94 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,87 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,67 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,101 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,119 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,65 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,64 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,81 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,110 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,119 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,78 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,124 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,88 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,68 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,110 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,118 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,76 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,69 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,100 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,103 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,95 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,77 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,124 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,127 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,106 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -1,90 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,63 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,66 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,118 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -1,86 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,80 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,92 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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 "$@"

View File

@@ -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 "$@"

View File

@@ -1,104 +0,0 @@
#!/usr/bin/bash
# Copyright (c) 2024 ISCAS .ALL rights reserved.
# This program is licensed under Mulan PSL v2.
# You can use it according to the terms and conditions of the Mulan PSL v2.
# http://license.coscl.org.cn/MulanPSL2
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# #############################################
# @Author : honghua
# @Contact : honghua@iscas.ac.cn
# @Date : 2026-04-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