#include "../src/client.h" #include #include #include /** * 测试客户端 - 用于测试 send_exec_params 函数 * * 用法: * ./test_client * * 示例: * ./test_client /tmp/test_error.log */ int main(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "用法: %s \n", argv[0]); fprintf(stderr, "示例: %s /tmp/test_error.log\n", argv[0]); return 1; } const char *log_path = argv[1]; // 模拟要执行的命令 const char *filename = "/usr/bin/python3"; // 模拟命令行参数 char *test_argv[] = { "python3", "test_script.py", "--arg1", "value1", NULL }; // 模拟环境变量 char *test_envp[] = { "PATH=/usr/bin:/bin", "HOME=/home/test", "USER=test", "SHELL=/bin/bash", NULL }; printf("===== 客户端测试开始 =====\n"); printf("socket地址:%s\n", SOCKET_PATH); printf("文件名: %s\n", filename); printf("日志路径: %s\n", log_path); printf("参数:\n"); for (int i = 0; test_argv[i] != NULL; i++) { printf(" argv[%d]: %s\n", i, test_argv[i]); } printf("\n正在发送请求到服务端...\n\n"); printf("--- 服务端响应 ---\n"); // 调用客户端函数 int result = seeking_solutions(filename, test_argv, test_envp, log_path, &STDOUT_FILENO); printf("\n--- 响应结束 ---\n"); if (result == 0) { printf("\n✓ 测试成功\n"); return 0; } else { fprintf(stderr, "\n✗ 测试失败: send_exec_params 返回 %d\n", result); return 1; } }