Merge pull request #1283 from PowerShell/andschwa/readlinesafe

Implement ReadLineSafe for Linux
This commit is contained in:
Andy Schwartzmeyer authored and GitHub committed 2016-07-08 17:02:49 -07:00
commit 43f07425e9
4 files changed
+272 -26

No files matched your search

+20
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
}
}
}
+27
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 60
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