Added PORTABLE as define for debugging and reidented tests.

This commit is contained in:
v-alexjo 2016-06-10 10:15:33 -07:00 committed by Andrew Schwartzmeyer
parent f483429d11
commit acd9249fe2
3 changed files with 101 additions and 101 deletions

View file

@ -24,7 +24,7 @@
"netstandard1.5": { "netstandard1.5": {
"imports": [ "dnxcore50" ], "imports": [ "dnxcore50" ],
"buildOptions": { "buildOptions": {
"define": [ "CORECLR" ], "define": [ "CORECLR", "PORTABLE" ],
"compile": { "compile": {
"exclude": [ "exclude": [
"cimSupport/cmdletization/xml/cmdlets-over-objects.objectModel.autogen.cs", "cimSupport/cmdletization/xml/cmdlets-over-objects.objectModel.autogen.cs",

View file

@ -1427,7 +1427,7 @@ namespace System.Management.Automation
"SecurityMshSnapInResources,Description","SecurityMshSnapInResources,Vendor") "SecurityMshSnapInResources,Description","SecurityMshSnapInResources,Vendor")
}; };
#if !CORECLR //TODO:CORECLR - The 'Microsoft.WSMan.Management' module will be available on OneCore soon #if !LINUX
if (!Utils.IsWinPEHost()) if (!Utils.IsWinPEHost())
{ {
defaultMshSnapins.Add(new DefaultPSSnapInInformation("Microsoft.WSMan.Management", "Microsoft.WSMan.Management", null, defaultMshSnapins.Add(new DefaultPSSnapInInformation("Microsoft.WSMan.Management", "Microsoft.WSMan.Management", null,

View file

@ -1,182 +1,182 @@
using namespace System.Diagnostics using namespace System.Diagnostics
Describe "PowerShell Command Debugging"{ Describe "PowerShell Command Debugging"{
$powershell = Join-Path -Path $PsHome -ChildPath "powershell" $powershell = Join-Path -Path $PsHome -ChildPath "powershell"
function NewProcessStartInfo([string]$CommandLine, [switch]$RedirectStdIn) function NewProcessStartInfo([string]$CommandLine, [switch]$RedirectStdIn)
{ {
return [ProcessStartInfo]@{ return [ProcessStartInfo]@{
FileName = $powershell FileName = $powershell
Arguments = $CommandLine Arguments = $CommandLine
RedirectStandardInput = $RedirectStdIn RedirectStandardInput = $RedirectStdIn
RedirectStandardOutput = $true RedirectStandardOutput = $true
RedirectStandardError = $true RedirectStandardError = $true
UseShellExecute = $false UseShellExecute = $false
}
} }
}
function RunPowerShell([ProcessStartInfo]$debugfn)
{
$process = [Process]::Start($debugfn)
return $process
}
function EnsureChildHasExited([Process]$process, [int]$WaitTimeInMS = 15000)
{
$process.WaitForExit($WaitTimeInMS)
if (!$process.HasExited) function RunPowerShell([ProcessStartInfo]$debugfn)
{ {
$process.HasExited | Should Be $true $process = [Process]::Start($debugfn)
$process.Kill() return $process
} }
function EnsureChildHasExited([Process]$process, [int]$WaitTimeInMS = 15000)
{
$process.WaitForExit($WaitTimeInMS)
if (!$process.HasExited)
{
$process.HasExited | Should Be $true
$process.Kill()
} }
}
It "Should be able to step into debugging"{
It "Should be able to step into debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") $process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
$process.StandardInput.Write("foo`n") $process.StandardInput.Write("foo`n")
$process.StandardInput.Write("s`n")
$process.StandardInput.Write("s`n") $process.StandardInput.Write("s`n")
$process.StandardInput.Write("s`n") $process.StandardInput.Write("s`n")
$process.StandardInput.Write("s`n")
$process.StandardInput.Close()
$process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
$process.ExitCode | Should Be 0 $process.ExitCode | Should Be 0
} }
It "Should be able to continue into debugging"{ It "Should be able to continue into debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") $process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
$process.StandardInput.Write("foo`n") $process.StandardInput.Write("foo`n")
$process.StandardInput.Write("c`n")
$process.StandardOutput.ReadLine()
$process.StandardOutput.ReadLine()
$process.StandardInput.Close() $process.StandardInput.Write("c`n")
$process.StandardOutput.ReadLine()
$process.StandardOutput.ReadLine()
$process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
$process.ExitCode | Should Be 0 $process.ExitCode | Should Be 0
} }
It "Should be able to list help for debugging"{ It "Should be able to list help for debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") $process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
$process.StandardInput.Write("foo`n") $process.StandardInput.Write("foo`n")
$process.StandardInput.Write("h`n")
foreach ($i in 1..38) { $process.StandardInput.Write("h`n")
$line = $process.StandardOutput.ReadLine()
} foreach ($i in 1..38) {
$line = $process.StandardOutput.ReadLine()
}
$process.StandardInput.Write("s`n")
$process.StandardInput.Write("s`n")
$process.StandardInput.Write("s`n")
$process.StandardInput.Close()
$process.StandardInput.Write("s`n")
$process.StandardInput.Write("s`n")
$process.StandardInput.Write("s`n")
$process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
$line | Should Be "For instructions about how to customize your debugger prompt, type `"help about_prompt`"." $line | Should Be "For instructions about how to customize your debugger prompt, type `"help about_prompt`"."
} }
It "Should be able to step over debugging"{ It "Should be able to step over debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") $process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
$process.StandardInput.Write("foo`n") $process.StandardInput.Write("foo`n")
$process.StandardInput.Write("v`n") $process.StandardInput.Write("v`n")
$process.StandardInput.Write("v`n") $process.StandardInput.Write("v`n")
$process.StandardInput.Write("v`n") $process.StandardInput.Write("v`n")
$process.StandardInput.Close()
$process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
$process.ExitCode | Should Be 0 $process.ExitCode | Should Be 0
} }
It "Should be able to step out of debugging"{ It "Should be able to step out of debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") $process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
$process.StandardInput.Write("foo`n") $process.StandardInput.Write("foo`n")
$process.StandardInput.Write("o`n") $process.StandardInput.Write("o`n")
$process.StandardInput.Close()
$process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
$process.ExitCode | Should Be 0 $process.ExitCode | Should Be 0
} }
It "Should be able to quit debugging"{ It "Should be able to quit debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") $process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
$process.StandardInput.Write("foo`n") $process.StandardInput.Write("foo`n")
$process.StandardInput.Write("q`n") $process.StandardInput.Write("q`n")
$process.StandardInput.Close()
$process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
$process.ExitCode | Should Be 0 $process.ExitCode | Should Be 0
} }
It "Should be able to list source code in debugging"{ It "Should be able to list source code in debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") | Write-Host $process.StandardInput.Write("Set-PsBreakpoint -command foo`n") | Write-Host
$process.StandardInput.Write("foo`n") | Write-Host $process.StandardInput.Write("foo`n") | Write-Host
$process.StandardInput.Write("l`n") | Write-Host $process.StandardInput.Write("l`n") | Write-Host
foreach ($i in 1..19) { foreach ($i in 1..19) {
$line = $process.StandardOutput.ReadLine() $line = $process.StandardOutput.ReadLine()
} }
$process.StandardInput.Write("`n") $process.StandardInput.Write("`n")
$process.StandardInput.Write("`n") $process.StandardInput.Write("`n")
$process.StandardInput.Write("`n") $process.StandardInput.Write("`n")
$line | Should Be " 1:* `$function:foo = { 'bar' }" $line | Should Be " 1:* `$function:foo = { 'bar' }"
$process.StandardInput.Close() $process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
} }
It "Should be able to get the call stack in debugging"{ It "Should be able to get the call stack in debugging"{
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn $debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
$process = RunPowerShell $debugfn $process = RunPowerShell $debugfn
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") | Write-Host $process.StandardInput.Write("Set-PsBreakpoint -command foo`n") | Write-Host
$process.StandardInput.Write("foo`n") | Write-Host $process.StandardInput.Write("foo`n") | Write-Host
$process.StandardInput.Write("k`n") | Write-Host $process.StandardInput.Write("k`n") | Write-Host
foreach ($i in 1..20) { foreach ($i in 1..20) {
$line = $process.StandardOutput.ReadLine() $line = $process.StandardOutput.ReadLine()
} }
$line | Should Be "foo {} <No file>" $line | Should Be "foo {} <No file>"
$process.StandardInput.Close() $process.StandardInput.Close()
EnsureChildHasExited $process EnsureChildHasExited $process
} }
} }