fix(08-05): G-6 — inside-VM Step 11 direct flutter test, no recursive QEMU
Per 08-VERIFICATION.md G-6 closure plan (Plan 8-5 Task 1):
- scripts/build-windows.sh::main() inside-VM branch: replace
run_headless_vm_test invocation with direct
`(cd ${FLUTTER_DIR} && flutter test integration_test/windows_smoke_test.dart -d windows)`
— under D-08-29 dockur auto-prov, build VM == test VM, so the test
runs in-place against the same Windows session.
- scripts/build-windows.sh::run_headless_vm_test(): add
`[[ "${INSIDE_VM}" == "0" ]] || return 0` safety guard so the
function definition is safe-by-construction for any future host-mode
caller wanting to integration_test a pre-built ZIP without rebuilding.
- tools/windows/run-headless-vm-test.sh: RETAINED UNCHANGED for the
Linux-host manual-smoke use case.
Honors D-08-28 (Android-parity test pyramid) + D-08-29 (dockur auto-prov).
Closes G-6 from 08-VERIFICATION.md (smoke retry lands in Plan 8-5 Task 2).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -357,6 +357,12 @@ verify_zip() {
|
||||
# exit ABORTS the build — headless test is part of the build's definition
|
||||
# of done per D-08-28.
|
||||
run_headless_vm_test() {
|
||||
# G-6 safety guard (Plan 8-5): forbid invocation from inside-VM context
|
||||
# — the runner spawns qemu-system-x86_64 which isn't available inside
|
||||
# the dockur Win 11 VM, and nested KVM is architecturally broken. Retained
|
||||
# for the Linux-host manual-smoke use case (e.g., a future host-mode
|
||||
# caller wanting to integration_test a pre-built ZIP without rebuilding).
|
||||
[[ "${INSIDE_VM}" == "0" ]] || return 0
|
||||
log "Step 11: Running headless QEMU integration_test (D-08-28)..."
|
||||
local runner="${REPO_DIR}/tools/windows/run-headless-vm-test.sh"
|
||||
[[ -f "${runner}" ]] || die "Headless QEMU runner missing: ${runner}"
|
||||
@@ -388,10 +394,21 @@ main() {
|
||||
verify_exports
|
||||
package_zip
|
||||
verify_zip
|
||||
# D-08-28: headless test is part of the build's definition of done.
|
||||
# SUPERSEDES D-08-17 manual VM smoke. SMOKE-TEST-CHECKLIST.md retained
|
||||
# as DOC reference for what the automated test covers.
|
||||
run_headless_vm_test
|
||||
# Step 11 (G-6 closure via Plan 8-5): direct flutter test in-place — no
|
||||
# nested-QEMU recursion. Under D-08-29 dockur auto-prov, build VM == test
|
||||
# VM = the same Windows instance; we're already inside it, so the
|
||||
# Android-parity integration_test (D-08-28 layer 3 of the test pyramid)
|
||||
# runs directly against this VM's flutter-windows build from Step 7-9.
|
||||
# tools/windows/run-headless-vm-test.sh retained UNCHANGED on disk for
|
||||
# the Linux-host manual-smoke use case (pre-built ZIP smoke without
|
||||
# rebuilding) — that script's harness is the wrong level of indirection
|
||||
# inside the VM (would attempt qemu-system-x86_64 which isn't installed
|
||||
# and would require nested KVM which is architecturally broken).
|
||||
log "Step 11: Running flutter integration_test in-place (D-08-28 + D-08-29)..."
|
||||
( cd "${FLUTTER_DIR}" \
|
||||
&& flutter test integration_test/windows_smoke_test.dart -d windows ) \
|
||||
|| die "integration_test FAILED — see flutter test output above"
|
||||
log " Integration_test PASSED."
|
||||
log "BUILD SUCCESS: ${OUTPUT_ZIP}"
|
||||
log " Integration_test verified inside headless QEMU VM (D-08-28)."
|
||||
log " SMOKE-TEST-CHECKLIST.md retained as doc reference (D-08-17 SUPERSEDED)."
|
||||
|
||||
Reference in New Issue
Block a user