mirror of
https://github.com/aphrody-labs/PowerShell.git
synced 2026-10-17 04:36:39 +00:00
Merge pull request #1283 from PowerShell/andschwa/readlinesafe
Implement ReadLineSafe for Linux
This commit is contained in:
commit
43f07425e9
4 files changed
+272
-26
No files matched your search
@@ -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
@@ -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
|
||||
Reference in new issue
Block a user