Test arm64 ConPTY payload packaging (#6970)

Co-authored-by: Orca <help@stably.ai>
This commit is contained in:
Brennan Benson 2026-06-30 18:22:08 -07:00 committed by GitHub
parent cbd06a7671
commit df6e5d56a7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 28 additions and 19 deletions

View File

@ -174,27 +174,36 @@ describe('electron-builder config', () => {
})
it('copies the Windows node-pty ConPTY runtime beside the rebuilt addon', async () => {
const resourcesDir = await mkdtemp(join(tmpdir(), 'orca-node-pty-conpty-runtime-'))
try {
const nodePtyDir = join(resourcesDir, 'node_modules', 'node-pty')
const releaseDir = join(nodePtyDir, 'build', 'Release')
const sourceDir = join(nodePtyDir, 'third_party', 'conpty', '0.1.0', 'win10-x64')
await mkdir(releaseDir, { recursive: true })
await mkdir(sourceDir, { recursive: true })
await writeFile(join(releaseDir, 'conpty.node'), 'native addon placeholder', 'utf8')
await writeFile(join(sourceDir, 'conpty.dll'), 'dll payload', 'utf8')
await writeFile(join(sourceDir, 'OpenConsole.exe'), 'console payload', 'utf8')
for (const arch of ['x64', 'arm64']) {
const resourcesDir = await mkdtemp(join(tmpdir(), `orca-node-pty-conpty-${arch}-`))
try {
const nodePtyDir = join(resourcesDir, 'node_modules', 'node-pty')
const releaseDir = join(nodePtyDir, 'build', 'Release')
const conptyRoot = join(nodePtyDir, 'third_party', 'conpty', '0.1.0')
await mkdir(releaseDir, { recursive: true })
await writeFile(join(releaseDir, 'conpty.node'), 'native addon placeholder', 'utf8')
for (const sourceArch of ['x64', 'arm64']) {
const sourceDir = join(conptyRoot, `win10-${sourceArch}`)
await mkdir(sourceDir, { recursive: true })
await writeFile(join(sourceDir, 'conpty.dll'), `dll payload ${sourceArch}`, 'utf8')
await writeFile(
join(sourceDir, 'OpenConsole.exe'),
`console payload ${sourceArch}`,
'utf8'
)
}
prunePackagedNodePty(resourcesDir, 'win32', 'x64')
prunePackagedNodePty(resourcesDir, 'win32', arch)
await expect(readFile(join(releaseDir, 'conpty', 'conpty.dll'), 'utf8')).resolves.toBe(
'dll payload'
)
await expect(readFile(join(releaseDir, 'conpty', 'OpenConsole.exe'), 'utf8')).resolves.toBe(
'console payload'
)
} finally {
await rm(resourcesDir, { recursive: true, force: true })
await expect(readFile(join(releaseDir, 'conpty', 'conpty.dll'), 'utf8')).resolves.toBe(
`dll payload ${arch}`
)
await expect(readFile(join(releaseDir, 'conpty', 'OpenConsole.exe'), 'utf8')).resolves.toBe(
`console payload ${arch}`
)
} finally {
await rm(resourcesDir, { recursive: true, force: true })
}
}
})