Files
ElyOffice/tasks/reviews/C06.2-r3.md
T

8 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
crates/ely-files/src/save.rs:307 — [P1] 能力探测使用传入路径的父目录,实际保存却在 `resolved(path)` 指向的目录替换文件;经本地符号链接保存网络盘文件会跳过旧版本备份,违反 §6.1。macOS 隔离探针仅对目标目录的 `statfs` 清除 `MNT_LOCAL`:直接保存目标返回备份且保留旧内容;经本地目录中的符号链接保存同类目标时,`atomic_capable(alias)` 返回 true,`save` 返回 `backup=None`,会话进入 Saved,目标旧内容消失。修复方向:能力探测、备份与替换统一使用解析后的实际目标,并增加本地链接指向受限卷的回归测试。
crates/ely-files/src/save.rs:130 — [P2] 备份名在追加唯一后缀后整体截断,截掉区分候选名的部分,导致合法长文件名的保存卡在碰撞循环,违反 FILE-09。实测 255 个 `x` 的文件首次调用 `save_with_backup` 就持续尝试原文件名,3 秒超时后终止;250 个 `x` 加 `.md` 的文件前十次保存成功,第十一次生成的名称又与 `-1` 候选相同,同样超时。现有长文件名测试仅保存一次,105 次测试仅使用短文件名。修复方向:按完整唯一后缀预留长度,再截断原名称,保证每次碰撞产生新候选;补充满长名称首次保存和长名称连续保存超过十次的回归测试。
crates/ely-files/src/save.rs:219 — [P2] 附件重名候选也在追加计数器后整体截断,长 stem 会吞掉计数器,使重复导入持续检查同一已存在路径,违反 FILE-09。实测无扩展名、名称为 255 个 `x` 的附件首次导入成功,第二次导入卡在 `while target.try_exists()`,3 秒超时后终止;源文件和目录均可正常读写。现有长扩展名测试通过,但没有覆盖满长 stem。修复方向:为计数器保留长度预算,使截断后的候选仍随计数器变化,并补充满长无扩展名附件的重复导入测试。