[verified] test(desktop): guard nonblocking runtime probes

(cherry picked from commit ee61bbfa311a0a99a1f8c14c18e3cdc97e51f3d1)
This commit is contained in:
jango
2026-09-12 00:41:28 +02:00
committed by kshitij
parent 783a06d070
commit 5d3cb88dbc
@@ -7,6 +7,7 @@
import assert from 'node:assert/strict'
import fs from 'node:fs'
import net from 'node:net'
import os from 'node:os'
import path from 'node:path'
@@ -15,6 +16,7 @@ import { test } from 'vitest'
import {
canImportHermesCli,
DEFAULT_PROBE_TIMEOUT_MS,
execProbe,
hermesRuntimeImportProbe,
PROBE_TIMEOUT_MS,
resolveProbeTimeoutMs,
@@ -29,6 +31,40 @@ import {
// (a tiny script we write to disk that exits 0 on --version).
const NODE_BIN = process.execPath
test('execProbe keeps the parent event loop available to the child', async () => {
const server = net.createServer((socket) => socket.end('pong'))
await new Promise<void>((resolve, reject) => {
server.once('error', reject)
server.listen(0, '127.0.0.1', resolve)
})
const address = server.address()
assert.ok(address && typeof address === 'object')
const childScript = `
const net = require('node:net')
let reply = ''
const socket = net.createConnection(${address.port}, '127.0.0.1')
socket.setEncoding('utf8')
socket.on('data', (chunk) => { reply += chunk })
socket.on('end', () => process.exit(reply === 'pong' ? 0 : 1))
socket.on('error', () => process.exit(1))
`
try {
await execProbe(NODE_BIN, ['-e', childScript], {
stdio: 'ignore',
timeout: 1_000,
windowsHide: true
})
} finally {
await new Promise<void>((resolve, reject) => {
server.close((error) => (error ? reject(error) : resolve()))
})
}
})
test('canImportHermesCli returns false when path is falsy', async () => {
assert.equal(await canImportHermesCli(''), false)
assert.equal(await canImportHermesCli(null), false)