First build
This commit is contained in:
parent
511556737e
commit
fd773f5832
954 changed files with 305115 additions and 2 deletions
67
test/proton-e2e.js
Normal file
67
test/proton-e2e.js
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
'use strict'
|
||||
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
|
||||
const runner = require('../src/runner')
|
||||
const wines = require('../src/wines')
|
||||
|
||||
async function main() {
|
||||
await wines.refreshWines()
|
||||
const proton = wines.getWines().find(w => w.type === 'proton')
|
||||
if (!proton) {
|
||||
console.log('NO PROTON IMPORTED')
|
||||
return
|
||||
}
|
||||
console.log('using:', proton.id, proton.path)
|
||||
|
||||
const game = {
|
||||
id: 'proton-e2e',
|
||||
name: 'Proton E2E',
|
||||
mode: 'leave',
|
||||
path: '.',
|
||||
exePath: 'C:\\windows\\system32\\cmd.exe',
|
||||
workdir: path.resolve('.'),
|
||||
wine: proton.id,
|
||||
prefix: '',
|
||||
args: '/c echo PROTON-RUNNER-OK > C:\\proton-runner.txt',
|
||||
dllOverrides: [],
|
||||
env: {}
|
||||
}
|
||||
|
||||
const env = runner.buildEnv({ game, wine: proton }).env
|
||||
console.log('STEAM_COMPAT_DATA_PATH:', env.STEAM_COMPAT_DATA_PATH)
|
||||
console.log('symlinked to:', fs.readlinkSync(env.STEAM_COMPAT_DATA_PATH))
|
||||
console.log('WINEPREFIX:', env.WINEPREFIX)
|
||||
|
||||
const exitPromise = new Promise(resolve => {
|
||||
runner.runGame({
|
||||
game,
|
||||
wine: proton,
|
||||
onExit: (code, signal) => resolve({ code, signal })
|
||||
})
|
||||
})
|
||||
|
||||
for (let i = 0; i < 60; i++) {
|
||||
await new Promise(r => setTimeout(r, 2000))
|
||||
const outFile = path.join(env.WINEPREFIX, 'drive_c', 'proton-runner.txt')
|
||||
if (fs.existsSync(outFile)) {
|
||||
console.log('OUTPUT:', fs.readFileSync(outFile, 'utf8').trim())
|
||||
console.log('PROTON E2E PASS')
|
||||
return
|
||||
}
|
||||
}
|
||||
console.log('TIMEOUT waiting for output file')
|
||||
const logs = fs.readdirSync(path.join(require('../src/paths').DIRS.DATA, 'logs')).filter(f => f.startsWith('proton-e2e'))
|
||||
if (logs.length) {
|
||||
const log = fs.readFileSync(path.join(require('../src/paths').DIRS.DATA, 'logs', logs[logs.length - 1]), 'utf8')
|
||||
console.log('LOG TAIL:', log.slice(-2000))
|
||||
}
|
||||
const { code } = await Promise.race([exitPromise, new Promise(r => setTimeout(() => r({ code: 'still-running' }), 30000))])
|
||||
console.log('exit:', code)
|
||||
}
|
||||
|
||||
main().catch(e => {
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue