test(e2e): terminate Windows source settling

This commit is contained in:
ethernet
2026-09-22 22:25:41 -04:00
parent e05b7576fa
commit e2636cec01
2 changed files with 7 additions and 4 deletions

View File

@@ -381,7 +381,7 @@ test('Windows source settle bypasses the current cmd launcher beside a stale his
expect(invocation).toEqual({
launcher: current,
command: python,
args: ['-I', '-B', '-c', `import runpy, sys; sys.path.insert(0, ${JSON.stringify(root)}); runpy.run_path(${JSON.stringify(bootstrap)}, run_name='__main__')`],
args: ['-I', '-B', '-c', `import runpy, sys; sys.path.insert(0, ${JSON.stringify(root)}); sys.argv = [${JSON.stringify(bootstrap)}, 'status']; runpy.run_path(${JSON.stringify(bootstrap)}, run_name='__main__')`],
windowsVerbatimArguments: false,
})
} finally { fs.rmSync(root, { recursive: true, force: true }) }
@@ -398,7 +398,7 @@ test('Windows source settle bypasses the generated cmd command line', (): void =
expect(pythonProbe.status, pythonProbe.stderr || String(pythonProbe.error)).toBe(0)
const python = pythonProbe.stdout.trim()
fs.writeFileSync(path.join(bin, 'hermes.cmd'), `@"${python}" -I -c "import base64; exec(base64.b64decode('eA=='))" %*\r\n`)
fs.writeFileSync(path.join(root, 'hermes_bootstrap.py'), `from pathlib import Path\nPath(${JSON.stringify(witness)}).write_text('direct-bootstrap\\n')\n`)
fs.writeFileSync(path.join(root, 'hermes_bootstrap.py'), `import sys\nfrom pathlib import Path\nPath(${JSON.stringify(witness)}).write_text('\\n'.join(sys.argv))\n`)
fs.writeFileSync(path.join(bin, 'hermes.exe'), 'locked historical launcher')
const invocation = sourceRuntimeSettleCommand(root, process.env, 'win32')
const result = spawnSync(invocation.command, invocation.args, {
@@ -406,7 +406,10 @@ test('Windows source settle bypasses the generated cmd command line', (): void =
windowsVerbatimArguments: invocation.windowsVerbatimArguments,
})
expect(result.status, result.stderr || String(result.error)).toBe(0)
expect(fs.readFileSync(witness, 'utf8').trim()).toBe('direct-bootstrap')
expect(fs.readFileSync(witness, 'utf8').split(/\r?\n/)).toEqual([
path.join(root, 'hermes_bootstrap.py'),
'status',
])
} finally { fs.rmSync(workspace, { recursive: true, force: true }) }
})

View File

@@ -39,6 +39,6 @@ export function sourceRuntimeSettleCommand(root, env, platform = process.platfor
const bootstrap = path.join(root, 'hermes_bootstrap.py');
if (!fs.existsSync(command)) throw new Error(`Source launcher Python does not exist: ${command}`);
if (!fs.existsSync(bootstrap)) throw new Error(`Source bootstrap does not exist: ${bootstrap}`);
const code = `import runpy, sys; sys.path.insert(0, ${JSON.stringify(root)}); runpy.run_path(${JSON.stringify(bootstrap)}, run_name='__main__')`;
const code = `import runpy, sys; sys.path.insert(0, ${JSON.stringify(root)}); sys.argv = [${JSON.stringify(bootstrap)}, 'status']; runpy.run_path(${JSON.stringify(bootstrap)}, run_name='__main__')`;
return { launcher, command, args: ['-I', '-B', '-c', code], windowsVerbatimArguments: false };
}