Skip to content

test: 26.1 整世界端到端回归(dimensions 布局 + 逐维度强加载 + 非 MCA 文件) - #5

Merged
wangzhizhou merged 1 commit into
mainfrom
test/26-1-world-e2e
Oct 22, 2026
Merged

wangzhizhou merged 1 commit into
mainfrom
test/26-1-world-e2e

Conversation

@wangzhizhou

Copy link
Copy Markdown
Collaborator

issue #1「支持 26.1 及后续版本」的能力已经落地,但回归覆盖只有局部:force_load.rs 只跑单个维度目录,phase4.rs 用合成小布局。整世界(世界根 + 三维度 + 世界级 data/players/generated)没有任何用例守着 —— 而这正是最容易回归的部分。

本 PR 只加测试:新增 tests/world_26_1.rs,对真实 26.1 fixture(从 OrzMCBackup 真实世界复制)跑 optimize(),断言:

  1. 维度发现:三个维度都在 dimensions/minecraft/<dim>/{region,entities,poi,data} 下被处理(旧逻辑只看顶层 region/ 会直接漏掉整个世界);
  2. 逐维度强加载:阈值拉到 20M ticks(几乎全删)后,每个维度 data/minecraft/chunk_tickets.dat 点名的区块一个不少(按 region 槽位逐个校验);
  3. 维度级非 MCA 文件跟着走:chunk_tickets.dat / game_rules.dat / paper/metadata.dat;
  4. 世界级文件不丢:level.dat、data/minecraft/scoreboard.dat、generated/、players/;
  5. session.lock 不复制(复制过去服务端会认为世界被占用)。

本机:cargo fmt --all --check / cargo clippy --all-targets --all-features -- -D warnings / cargo test(19 个测试二进制,含新增 1 例)全绿。

issue #1「支持 26.1 及后续版本」的能力其实已经落地(`forceload.rs` 认
`data/minecraft/chunk_tickets.dat`、`misc.rs`/`optimizer.rs` 处理 26.1+ Paper 的
`world/dimensions/...` 布局),但回归覆盖只有两处局部用例:
`force_load.rs` 只跑**单个维度目录**,`phase4.rs` 用的是合成的小布局。
**整世界**(世界根 + 三个维度 + 世界级 data/players/generated)没有任何用例守着,
而这些恰恰是最容易回归的部分。

新增 `tests/world_26_1.rs`,直接对真实 26.1 fixture 跑 `optimize()`,断言:

1. **维度发现**:三个维度都落在 `dimensions/minecraft/<dim>/{region,entities,poi,data}` 并被处理;
2. **逐维度强加载**:阈值拉到 20M ticks(几乎全删)后,每个维度 `chunk_tickets.dat`
   点名的区块**一个不少**(按 region 槽位逐个校验,而不是只看数量);
3. **维度级非 MCA 文件**跟着走(chunk_tickets / game_rules / paper metadata);
4. **世界级文件**(level.dat、data/minecraft/scoreboard.dat、generated/、players/)不丢;
5. **session.lock 不复制**(复制过去服务端会认为世界被占用)。

本机 `cargo fmt/clippy -D warnings/test`(19 个测试二进制)全绿。
@wangzhizhou
wangzhizhou merged commit 1c6e85c into main Oct 22, 2026
6 checks passed
@wangzhizhou
wangzhizhou deleted the test/26-1-world-e2e branch October 22, 2026 00:14
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