feat: add official full pull smoke

Emit runtime download progress and validation summaries for official sync.

Add repeatable real-network full pull smoke runbook and script.

Fixes #4

Fixes #6
This commit is contained in:
2026-07-14 00:48:59 +08:00
parent 2ff99ae9e3
commit 25c2c4d40f
15 changed files with 435 additions and 57 deletions
@@ -229,6 +229,17 @@ fn official_update_first_run_pulls_without_pre_audit() {
assert!(events
.iter()
.any(|event| { event.stage == "decision" && event.message.contains("首次拉取=true") }));
assert!(events.iter().any(|event| {
event.stage == "download"
&& event.message.contains("下载进度:总体")
&& event.message.contains("单文件")
}));
assert!(events.iter().any(|event| {
event.stage == "audit"
&& event.message.contains("校验结果:官方 .hash=5")
&& event.message.contains("本地 BLAKE3 通过=19")
&& event.message.contains("ZIP 结构通过=6")
}));
let published = report.published_version_path.as_ref().unwrap();
assert!(published.exists());
@@ -280,6 +291,12 @@ fn official_update_second_run_audits_existing_resources_before_reuse() {
assert!(events.iter().any(|event| {
event.stage == "audit" && event.message.contains("审计本地下载 manifest")
}));
assert!(events.iter().any(|event| {
event.stage == "audit"
&& event.message.contains("校验结果:官方 .hash=0")
&& event.message.contains("本地 BLAKE3 通过=19")
&& event.message.contains("ZIP 结构通过=6")
}));
assert!(events.iter().any(|event| {
event.stage == "decision" && event.message.contains("首次拉取=false")
}));