fix(burn-in): move psExe detection inside Start-Job scriptblock
Passing $psExe as a second -ArgumentList item caused double-wrapping of the string array, collapsing all args into one string when splatted. Computing $IsWindows inside the worker avoids the extra param entirely. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -216,18 +216,19 @@ for ($r = 1; $r -le $Rounds; $r++) {
|
|||||||
|
|
||||||
# Start-Job runs a new PS session; call the platform PS executable as child
|
# Start-Job runs a new PS session; call the platform PS executable as child
|
||||||
# process so exit $exitCode from Invoke-CIJob.ps1 is captured in $LASTEXITCODE.
|
# process so exit $exitCode from Invoke-CIJob.ps1 is captured in $LASTEXITCODE.
|
||||||
|
# $IsWindows is evaluated inside the job worker (correct OS context).
|
||||||
# NOTE: do NOT name the parameter $Args — @Args is a PS reserved splatting
|
# NOTE: do NOT name the parameter $Args — @Args is a PS reserved splatting
|
||||||
# alias for the automatic $Args variable (unbound arguments), which would
|
# alias for the automatic $Args variable (unbound arguments), which would
|
||||||
# be empty here since the parameter binding consumed all positional args.
|
# be empty here since the parameter binding consumed all positional args.
|
||||||
$psExe = if ($IsWindows) { 'powershell.exe' } else { 'pwsh' }
|
|
||||||
$psJob = Start-Job -ScriptBlock {
|
$psJob = Start-Job -ScriptBlock {
|
||||||
param([string[]]$ChildArgs, [string]$PsExe)
|
param([string[]]$ChildArgs)
|
||||||
$out = & $PsExe @ChildArgs 2>&1
|
$psExe = if ($IsWindows) { 'powershell.exe' } else { 'pwsh' }
|
||||||
|
$out = & $psExe @ChildArgs 2>&1
|
||||||
[PSCustomObject]@{
|
[PSCustomObject]@{
|
||||||
ExitCode = $LASTEXITCODE
|
ExitCode = $LASTEXITCODE
|
||||||
Output = ($out -join "`n")
|
Output = ($out -join "`n")
|
||||||
}
|
}
|
||||||
} -ArgumentList (, $argArray), $psExe
|
} -ArgumentList (, $argArray)
|
||||||
|
|
||||||
$jobEntries.Add(@{
|
$jobEntries.Add(@{
|
||||||
PSJob = $psJob
|
PSJob = $psJob
|
||||||
|
|||||||
Reference in New Issue
Block a user