Skip to content

test(core): add resize-edges literal oracle for #29 extreme resize x wrap - #303

Merged
JavaZeroo merged 2 commits into
mainfrom
feat/core-resize-edges-r29
Nov 1, 2026
Merged

JavaZeroo merged 2 commits into
mainfrom
feat/core-resize-edges-r29

Conversation

@JavaZeroo

Copy link
Copy Markdown
Owner

问题与最终行为

#29 的有界切片:为「极窄(1 列)/极短(1 行)」resize 与 DECAWM 软换行、CR/LF 硬换行的组合补 strict 字面 oracle CTest,合同基线是现有实现 + ADR-0005(docs/adr/0005-physical-row-resize.md)。最终行为锁定为物理行裁剪:只留最左格、已用行身份不复用、光标夹取、同尺寸 no-op 保留 pending-wrap/组合附着、resize 复位 DECSTBM 但保留 origin 位、非法尺寸原子。

验证

  • 已 rebase 到 origin/main f72c5c4 后复跑:新增 resize_edges_core 7/7;15 项核心 C++ CTest 全绿(0 失败 0 跳过);Python experiments.core.test_core / test_unicode / test_recovery 66 项通过。
  • 环境:MSVC 19.42.34433.0、Release、Qt/candidate 关闭。
  • 归档:experiments/core/results/2026-11-01-resize-edges/README.md 与 validation.json(源码/二进制 SHA、命令出口与通过/失败/跳过)。
  • 实现代码零改动:现有实现已符合 ADR-0005 基线,本片只补锁定测试。

性能影响(如适用)

无新运行测量;仅新增字面 oracle CTest,无性能声明。

来源与限制

  • 参照只限现有实现 + ADR-0005,无新 WindTerm 原版运行。
  • recovery 宽字替换不在本 oracle(既有 resize_test 单独覆盖);软续行淘汰后的重排不是活跃 reflow。
  • Qt/固定 ConPTY 运输、真实 DPI、完整 reflow、备用屏/滚动区全语义均不由此项验收,[R2-06][终端] 定义并验证 resize、逻辑行与历史语义 #29 整体不关闭。

refs #29

…wrap

Strict CTest locks ADR-0005 baseline for 1-col/1-row resize combined with DECAWM soft wrap and CR/LF hard wrap: content retain/crop, stable line identities never reused after eviction, cursor clamp, 80x24->1x1->80x24 and 60x12<->100x30 alternation, pending-wrap/origin/margin crossing, invalid-size atomicity, and byte-wise/chunk invariance.
@JavaZeroo
JavaZeroo merged commit 3ec11c4 into main Nov 1, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant