Listed directory nas-gatekeeper Viewed Cargo. Toml: 1-14 Listed directory src Listed directory tests Viewed integration_test. Rs: 1-107 Ran command: cargo test Viewed main. Rs: 1-52 Viewed config. Rs: 1-41 Viewed ddns. Rs: 1-91 Viewed podman. Rs: 1-41

你可以通过以下几种方式来测试 nas-gatekeeper 项目:

1. 运行自动化测试 (Automated Tests)

项目已经包含了一套集成测试文件 integration_test.rs。你可以直接在终端中运行以下命令:

cargo test

该测试套件包含以下测试用例:

  • test_ddns_core_logic:使用 Mock 的 DDNS 提供商验证 IP 发生变化时是否会正确触发更新,以及 IP 未发生变化时是否会跳过更新。
  • test_config_robustness:验证配置文件不存在、TOML 格式错误或缺失 api_key 时,配置加载函数是否能正确捕获并返回错误。
  • test_unix_socket_handshake:尝试连接 Podman Socket 并验证握手过程(若当前环境没有启动 Podman,它会优雅地捕获并输出错误而不会崩溃)。

2. 本地手动运行测试 (Manual Testing)

如果你想在实际环境中运行它,由于目前代码中硬编码了配置文件和 Podman Socket 的路径,你需要执行以下准备工作:

步骤 A:创建配置文件

在主程序 main.rs 中,配置文件路径默认为 /etc/nas-gatekeeper/config.toml。你需要创建该文件(可能需要 sudo 权限):

sudo mkdir -p /etc/nas-gatekeeper
sudo nano /etc/nas-gatekeeper/config.toml

配置文件内容模板:

[godaddy]
api_key = "你的GoDaddyApiKey"
api_secret = "你的GoDaddyApiSecret"
domain = "yourdomain.com"
 
[ddns]
check_interval_secs = 60

步骤 B:启动 Podman 服务

程序默认会通过 handshake_socket 连接到本地的 /run/podman/podman.sock。请确保本地的 Podman 服务已启动且该 Socket 文件可被当前用户访问。例如在 Linux 上:

sudo systemctl start podman.socket

步骤 C:启动程序

配置完成后,直接使用以下命令运行程序:

cargo run

💡 改进建议

目前 main.rs 中有两处硬编码:

  1. 配置文件路径:/etc/nas-gatekeeper/config.toml
  2. Podman Socket 路径:/run/podman/podman.sock

这对于 macOS 本地开发或非 Root 权限测试不太友好。如果你需要,我可以为你修改代码,使其支持从命令行参数(或环境变量)读取这些路径,以便你在本地进行更灵活的测试(例如:cargo run -- --config ./config.toml)。如果你需要此改进,请随时告诉我!