mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Merge branch 'develop' into dev/fix-nuget
This commit is contained in:
+6
-1
@@ -1,4 +1,9 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Docker requires the volume path to be absolute... so we resolve it ourselves.
|
||||
docker run --rm --interactive --tty --volume $(dirname $(pwd))/:/opt/monad --workdir /opt/monad/scripts andschwa/magrathea:latest $@
|
||||
docker run --rm --interactive --tty \
|
||||
--volume $(dirname $(pwd))/:/opt/monad \
|
||||
--workdir /opt/monad/scripts \
|
||||
andschwa/magrathea:latest \
|
||||
bash -c "/opt/fakelogin; $*"
|
||||
# we use $* over $@ so that multi-word parameters aren't split up
|
||||
|
||||
+1
-1
Submodule src/monad updated: 1a2fa0af44...df562ce7ec
+1
-1
Submodule src/monad-native updated: c1c9a99269...a99c56eea3
@@ -0,0 +1,73 @@
|
||||
Describe "Test-Format-List" {
|
||||
BeforeEach {
|
||||
$input = New-Object PSObject
|
||||
Add-Member -InputObject $input -MemberType NoteProperty -Name testName -Value testValue
|
||||
}
|
||||
|
||||
It "Should call format list without error" {
|
||||
{ $input | Format-List } | Should Not Throw
|
||||
{ $input | Format-List } | Should Not BeNullOrEmpty
|
||||
}
|
||||
|
||||
It "Should be able to call the alias" {
|
||||
{ $input | fl } | Should Not Throw
|
||||
{ $input | fl } | Should Not BeNullOrEmpty
|
||||
}
|
||||
|
||||
It "Should have the same output whether choosing alias or not" {
|
||||
$expected = $input | Format-List | Out-String
|
||||
$actual = $input | fl | Out-String
|
||||
|
||||
$actual | Should Be $expected
|
||||
}
|
||||
|
||||
It "Should produce the expected output" {
|
||||
$expected = "`n`ntestName : testValue`n`n`n`n"
|
||||
$input = New-Object PSObject
|
||||
Add-Member -InputObject $input -MemberType NoteProperty -Name testName -Value testValue
|
||||
|
||||
$input | Format-List | Should Not BeNullOrEmpty
|
||||
$input | Format-List | Out-String | Should Not BeNullOrEmpty
|
||||
$input | Format-List | Out-String | Should Be $expected
|
||||
}
|
||||
|
||||
It "Should be able to call a property of the piped input" {
|
||||
# Tested on two input commands to verify functionality.
|
||||
{ Get-Process | Format-List -Property Name } | Should Not Throw
|
||||
{ Get-Process | Format-List -Property Name } | Should Not BeNullOrEmpty
|
||||
|
||||
{ Get-Date | Format-List -Property DisplayName } | Should Not Throw
|
||||
{ Get-Date | Format-List -Property DisplayName } | Should Not BeNullOrEmpty
|
||||
}
|
||||
|
||||
It "Should be able to display a list of props when separated by a comma" {
|
||||
{ Get-Process | Format-List -Property Name,BasePriority } | Should Not Throw
|
||||
|
||||
(Get-Process | Format-List -Property Name,BasePriority | Out-String) -Split "`n" |
|
||||
Where-Object { $_.trim() -ne "" } |
|
||||
ForEach-Object { $_ | Should Match "(Name)|(BasePriority)" }
|
||||
}
|
||||
|
||||
It "Should show the requested prop in every element" {
|
||||
# Testing each element of format-list, using a for-each loop since the Format-List is so opaque
|
||||
(Get-Process | Format-List -Property CPU | Out-String) -Split "`n" |
|
||||
Where-Object { $_.trim() -ne "" } |
|
||||
ForEach-Object { $_ | Should Match "CPU :" }
|
||||
}
|
||||
|
||||
It "Should not show anything other than the requested props" {
|
||||
$output = Get-Process | Format-List -Property Name | Out-String
|
||||
|
||||
$output | Should Not Match "CPU :"
|
||||
$output | Should Not Match "Id :"
|
||||
$output | Should Not Match "Handle :"
|
||||
}
|
||||
|
||||
It "Should be able to take input without piping objects to it" {
|
||||
$output = { Format-List -InputObject $input }
|
||||
|
||||
$output | Should Not Throw
|
||||
$output | Should Not BeNullOrEmpty
|
||||
|
||||
}
|
||||
}
|
||||
@@ -18,4 +18,8 @@
|
||||
(Get-Item /usr/bin) | Should Not BeNullOrEmpty
|
||||
(Get-Item ..) | Should Not BeNullOrEmpty
|
||||
}
|
||||
|
||||
It "Should have mode flags set" {
|
||||
ls / | foreach-object { $_.Mode | Should Not BeNullOrEmpty }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Xunit;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Management.Automation;
|
||||
|
||||
namespace PSTests
|
||||
@@ -41,5 +42,26 @@ namespace PSTests
|
||||
{
|
||||
Assert.False(Platform.HasRegistrySupport());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public static void TestGetUserName()
|
||||
{
|
||||
var startInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = @"/usr/bin/env",
|
||||
Arguments = "whoami",
|
||||
RedirectStandardOutput = true,
|
||||
UseShellExecute = false
|
||||
};
|
||||
Process process = Process.Start(startInfo);
|
||||
// The process should always exit, but wait a set time just in case
|
||||
process.WaitForExit(1000);
|
||||
// The process should return an exit code of 0 on success
|
||||
Assert.Equal(0, process.ExitCode);
|
||||
// Get output of call to whoami without trailing newline
|
||||
string username = process.StandardOutput.ReadToEnd().Trim();
|
||||
// It should be the same as what our platform code returns
|
||||
Assert.Equal(username, Platform.NonWindowsGetUserName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
using Xunit;
|
||||
using System;
|
||||
using System.Management.Automation;
|
||||
using Microsoft.PowerShell.Commands;
|
||||
|
||||
namespace PSTests
|
||||
{
|
||||
public static class FileSystemProviderTests
|
||||
{
|
||||
[Fact]
|
||||
public static void TestCreateJunctionFails()
|
||||
{
|
||||
Assert.False(InternalSymbolicLinkLinkCodeMethods.CreateJunction("",""));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user