fix(benchmark): adapt Measure-CIBenchmark to Linux host
Measure-CIBenchmark.ps1: - Default params now Linux-aware via $IsWindows conditional (TemplatePath, CloneBaseDir, VmrunPath, OutputDir) - Add -GuestOS Auto/Windows/Linux param; Auto reads VMX guestOS field (ubuntu-* → Linux, else Windows) - Replace Test-NetConnection (Windows-only) with Test-TcpPort helper using raw TcpClient async connect — works on PS5.1 and PS7/Linux - Probe SSH/22 for Linux guests, WinRM/5986 for Windows guests - Rename winrm→ready throughout ($t, JSONL field readySec, column header) - Add guestOS field to JSONL output _Common.psm1 / Invoke-VmrunBounded: - Replace taskkill /F /T with platform-aware kill: Windows → taskkill; Linux → Process.Kill(entireProcessTree) (.NET 5+) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -182,7 +182,12 @@ function Invoke-VmrunBounded {
|
||||
# handles held by child processes (e.g. cmd.exe spawning ping.exe in tests,
|
||||
# or vmrun spawning helper subprocesses). Plain proc.Kill() only kills the
|
||||
# direct process; child processes keep the write end of stdout open.
|
||||
& taskkill /F /T /PID $proc.Id 2>&1 | Out-Null
|
||||
if ($null -ne $IsWindows -and $IsWindows -eq $false) {
|
||||
# .NET 5+ Kill(entireProcessTree) — works on Linux/macOS.
|
||||
$proc.Kill($true)
|
||||
} else {
|
||||
& taskkill /F /T /PID $proc.Id 2>&1 | Out-Null
|
||||
}
|
||||
}
|
||||
$sw.Stop()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user