test(subprocess): restore host-exit readiness handshake

This commit is contained in:
fz
2026-08-19 10:01:11 +08:00
parent e9cf468e06
commit 2814a338be
2 changed files with 6 additions and 0 deletions
@@ -13,6 +13,7 @@ if ((kind !== 'ordinary' && kind !== 'terminal')
}
const treeState = join(root, 'tree.json')
const ready = join(root, 'ready')
const proceed = join(root, 'proceed')
const managedTree = fileURLToPath(new URL('./managed-tree.ts', import.meta.url))
@@ -57,6 +58,7 @@ const published = JSON.parse(await readFile(treeState, 'utf8')) as { root?: unkn
if (!Number.isSafeInteger(published.root) || !Number.isSafeInteger(published.descendant)) {
throw new Error('managed tree published invalid process ids')
}
await writeFile(ready, 'ready')
await waitForFile(proceed)
if (trigger === 'dispose') {
@@ -107,6 +107,10 @@ async function runScenario(kind: ManagedKind, trigger: ExitTrigger) {
let treeGone = false
try {
state = await readTree(join(root, 'tree.json'))
await vi.waitFor(() => readFile(join(root, 'ready'), 'utf8'), {
interval: 10,
timeout: scenarioTimeoutMs,
})
if (process.platform !== 'win32') identities = await captureIdentities(createProcessInspector(), state)
await writeFile(join(root, 'proceed'), 'proceed')
const outcome = await child