Skip to content

test(pi): 修复 Windows server 的 sessionDir 绝对路径用例 #720

Description

@asteroida123

问题

Windows 的 Rust server CI 稳定失败于:

parsers::pi::tests::settings_json_session_dir_is_honored

left:  "C:\\Users\\...\\Temp\\...\\agent\\sessions"
right: "/srv/pi-sessions"

失败来自测试将 POSIX 路径 /srv/pi-sessions 当作跨平台绝对路径。session_dir_from_settings 会调用 Path::is_absolute();在 Windows 目标上,该路径不是 Windows 绝对路径,因此正确地回退到 <agent_dir>/sessions,与测试预期不一致。

证据

建议修复

让测试使用当前平台原生、确定为绝对路径的 fixture,例如:

  1. 使用 tempdir().path().join("pi-sessions") 作为 sessionDir
  2. 通过 serde_json::json! 序列化设置,避免手写 Windows 反斜杠转义;
  3. 断言解析结果等于该平台原生路径。

这样只修正测试,不改变生产逻辑“仅接受当前平台绝对路径”的语义。

验收标准

  • Windows 执行 cargo test --no-default-features --bin codeg-server --lib 通过;
  • Linux/macOS 原有测试保持通过;
  • 不改变 session_dir_from_settings 的生产行为。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions