Files
ElyOffice/tasks/reviews/C10.5-r2.md
T

14 lines
4.2 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
apps/ely-show/src/slideshow.rs:170 — 后退的“全部动画已完成”状态由 clicks 是否为零决定,只有 with/after 自动动画的页面恰好为零,因此后退会重新播放入页动画。复现:第一页矩形设置 with 开始、10 秒淡入,第二页无动画;放映按 right、left 回到第一页,真实 LOK 应用探针得到矩形 opacity=0.00006146328、moving=true,预期为完全显示的已完成状态。违反 C10.5 的后退行为及 SHOW-09。修复方向:显式携带后退的已完成状态,独立于单击组数量;覆盖没有 click 组的入场及退出动画。
apps/ely-show/src/slideshow.rs:169 — 入页时立即启动动画时钟,当前页图层尚在后台读取时,stage 显示黑屏而动画照常计时,返回图层后直接显示已结束的效果。复现:第三页设置 with 开始、0.1 秒淡入,从已缓存的第一页数字跳到第三页;以共享 worker 忙碌 300 毫秒模拟其他标签的后台读取,探针确认跳页时 stack(2) 为空,图层首次可用时 elapsed=0.352540625、moving=false,整个淡入已经在黑屏期间结束。违反 SHOW-09 的持续时间与放映播放行为。修复方向:当前页图层可绘制后开始入页切换和自动动画计时,并让读取期间的单击与自动换页遵守同一时间基准;加入延迟图层读取的回归测试。
apps/ely-show/src/slideshow/media.rs:90 — media_tick 在循环重播之前计算 keep;视频结束时 keep=false,随后 seek/play 已重启播放器,返回值仍然让 Audience 停止请求动画帧,循环播放的画面停住。复现:主线程 AVFoundation 放映探针播放 fixtures/media/clip.mp4,媒体 loop=true,按 Audience 的返回值决定下一帧;第一遍结束后 media_tick 返回 false,实际播放器已经为 Ready、playing=true、position=0.0。单屏静止幻灯片此后继续播放声音并保持上一帧,违反 SHOW-10。修复方向:循环重启后继续安排视频帧,并按重启后的播放器状态判定刷新;用原生播放器覆盖完整的一次循环边界。
apps/ely-show/src/slideshow.rs:156 — Leaving 持有离开页的完整图层,切换完成后一直保留到下一次跳页;layers 的 retain 只约束 HashMap,放映实际仍持有上一页、当前页和下一页三个全尺寸图层栈。复现:三页均可见,第二页设置 0.1 秒淡化,从第一页进入第二页,等第三页预取及切换结束;探针得到 moving=false、leaving.is_some()=true、stack(0..2)=[None, Some, Some],第一栈仍由 leaving.stack 持有。违反 C10.5 的只缓存当前页与下一页约定。修复方向:切换完成时释放离开页图层,回归测试统计全部持有的图层栈,覆盖切换结束后的静止状态。
apps/ely-show/src/tests/play_more.rs:174 — 退出效果回归只检查 object_look 的模型值,观众切换画面没有进入断言,第一轮退出对象重新出现的问题仍能通过该测试。复现:在独立副本中把 stage::left 改回 compose::slide(..., |_| true, ...),a_finished_exit_stays_gone_as_the_slide_leaves 仍通过;同一渲染函数的 Metal 半程像素探针读出已退出对象的红色 Rgba([255, 0, 0, 255]) 并失败,当前实现读出黑色 Rgba([0, 0, 0, 255]) 并通过。修复方向:回归测试绘制实际的离页切换并断言对象位置的像素,让恢复全部对象可见的变异必然失败。
apps/ely-show/src/tests/play_more.rs:198 — 媒体失败回归在测试线程上打开有效视频,只验证 Player::open 的同步线程错误;第一轮要求的异步解码失败和 media_tick 错误传播仍缺少有效回归。复现:在独立副本中把 media_tick 的 Err 分支改为直接返回 false,media_that_cannot_play_says_why_and_the_show_goes_on 仍通过;主线程放映探针打开存在但损坏的 MP4 后 notice=None 并失败,当前实现得到“无法播放:Cannot Open”。watch 的独立状态测试也没有经过该错误传播分支。修复方向:在主线程让真实播放器进入 Loading/Failed,经实际 media_tick 验证原因提示、失败播放器停止和放映继续,并要求跳过错误传播的变异失败。