From 652653c7f663aab29744e8fec356384bdc15f8d4 Mon Sep 17 00:00:00 2001 From: whyour Date: Mon, 31 Aug 2026 00:50:14 +0800 Subject: [PATCH] test(ql3): compact cutover evidence output --- .../templates/ql3-local-alpha-upgrade-cutover-rehearsal.sh | 5 +++-- test/back/ql3LocalAlphaTrialKitBundle.test.cjs | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/templates/ql3-local-alpha-upgrade-cutover-rehearsal.sh b/scripts/templates/ql3-local-alpha-upgrade-cutover-rehearsal.sh index fd9b37ba..1124ae9e 100644 --- a/scripts/templates/ql3-local-alpha-upgrade-cutover-rehearsal.sh +++ b/scripts/templates/ql3-local-alpha-upgrade-cutover-rehearsal.sh @@ -64,7 +64,7 @@ container_name "$target_name" || fail 'target container name is invalid' valid_digest "$sqlite_plan_digest" || fail 'reviewed SQLite plan digest is invalid' valid_digest "$directory_plan_digest" || fail 'reviewed data-directory plan digest is invalid' [ "$(uname -s)" = Linux ] || fail 'cutover rehearsal requires a Linux Docker host' -for tool in docker sha256sum grep sed stat date realpath; do +for tool in docker sha256sum grep sed stat date realpath tr; do command -v "$tool" >/dev/null 2>&1 || fail "$tool is required" done docker_socket=$(realpath /var/run/docker.sock) @@ -281,7 +281,8 @@ run_deploy cutover-target-stop target-stop.json target-stop.result.json printf '%s' 'QingLong Local Alpha target-stop result: ' >&2 sed -n '1p' "$rehearsal_root/results/target-stop.result.json" >&2 printf '%s' 'QingLong Local Alpha target-stop evidence: ' >&2 -sed -n '1p' "$rehearsal_root/service/cutovers/alpha-upgrade-cutover/0006-target-stop-outcome.json" >&2 +tr -d '\n' <"$rehearsal_root/service/cutovers/alpha-upgrade-cutover/0006-target-stop-outcome.json" >&2 +printf '\n' >&2 grep -q '"reconciliation":"rollback_candidate"' "$rehearsal_root/results/target-stop.result.json" || fail 'target stop did not produce a clean rollback candidate' [ "$(sha256sum "$legacy_root/db/database.sqlite" | sed 's/ .*//')" = "$legacy_sha256" ] || fail 'legacy database changed during rehearsal' diff --git a/test/back/ql3LocalAlphaTrialKitBundle.test.cjs b/test/back/ql3LocalAlphaTrialKitBundle.test.cjs index 9e19ad05..389c535d 100644 --- a/test/back/ql3LocalAlphaTrialKitBundle.test.cjs +++ b/test/back/ql3LocalAlphaTrialKitBundle.test.cjs @@ -276,6 +276,7 @@ test('materializes and offline-audits one closed two-image trial kit', (t) => { cutoverRehearsalContents, /QingLong Local Alpha target-stop evidence:/, ); + assert.match(cutoverRehearsalContents, /tr -d '\\n'/); const report = auditLocalAlphaTrialKit({ bundleRoot: paths.outputRoot }); assert.equal(report.compatible, true); assert.equal(report.sourceRevision, revision);