Add Read-Host regression test

This commit is contained in:
Andrew Schwartzmeyer 2016-07-07 14:46:14 -07:00 committed by Andrew Schwartzmeyer
parent 68875f0942
commit 8d23dad0ab
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,20 @@
Describe "Read-Host" {
Context "[Console]::ReadKey() implementation on non-Windows" {
BeforeAll {
$powershell = Join-Path -Path $PsHome -ChildPath "powershell"
$assetsDir = Join-Path -Path $PSScriptRoot -ChildPath assets
if ($IsWindows) {
$ItArgs = @{ skip = $true }
} elseif (-not (Get-Command expect -ErrorAction Ignore)) {
$ItArgs = @{ pending = $true }
} else {
$ItArgs = @{ }
}
}
It @ItArgs "Should output correctly" {
& (Join-Path $assetsDir "Read-Host.Output.expect") $powershell | Out-Null
$LASTEXITCODE | Should Be 0
}
}
}

View File

@ -0,0 +1,27 @@
#!/usr/bin/expect -f
exp_internal 1
# Expects path to PowerShell as first argument
set powershell [lindex $argv 0]
set timeout 5
spawn $powershell -nologo -noprofile Read-Host prompt
expect "prompt: $" {
send "input\r"
}
# This is the old, incorrect behavior
expect "input\r\ninput\r" {
exit 2
}
# This is the expected behavior
expect "input\r\n" {
exit 0
}
# Anything else is wrong
exit 1