mirror of
https://abf.rosa.ru/djam/dotnet6.0.git
synced 2025-02-23 22:22:55 +00:00
104 lines
4.3 KiB
Diff
104 lines
4.3 KiB
Diff
From 49891b96c12567109d6086a23ca7c117dd40bdc7 Mon Sep 17 00:00:00 2001
|
||
From: sfoslund <sfoslund@microsoft.com>
|
||
Date: Fri, 14 Feb 2020 15:05:24 -0800
|
||
Subject: [PATCH] Resolving and adding test coverage for stack dump on dotnet
|
||
-d
|
||
|
||
---
|
||
.../LocalToolsCommandResolver.cs | 3 +-
|
||
src/Cli/dotnet/Program.cs | 4 +++
|
||
.../GivenALocalToolsCommandResolver.cs | 13 ++++++++
|
||
.../CommandTests/CommandIntegrationTests.cs | 31 +++++++++++++++++++
|
||
4 files changed, 50 insertions(+), 1 deletion(-)
|
||
create mode 100644 src/Tests/dotnet.Tests/CommandTests/CommandIntegrationTests.cs
|
||
|
||
diff --git a/src/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs b/src/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs
|
||
index fae180cbde..59af704755 100644
|
||
--- a/src/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs
|
||
+++ b/src/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs
|
||
@@ -57,7 +57,8 @@ public CommandSpec Resolve(CommandResolverArguments arguments)
|
||
return null;
|
||
}
|
||
|
||
- if (!arguments.CommandName.StartsWith(LeadingDotnetPrefix, StringComparison.OrdinalIgnoreCase))
|
||
+ if (!arguments.CommandName.StartsWith(LeadingDotnetPrefix, StringComparison.OrdinalIgnoreCase) ||
|
||
+ string.IsNullOrWhiteSpace(arguments.CommandName.Substring(LeadingDotnetPrefix.Length)))
|
||
{
|
||
return null;
|
||
}
|
||
diff --git a/src/dotnet/Program.cs b/src/dotnet/Program.cs
|
||
index 8b9cccfe0b..67e784bbf3 100644
|
||
--- a/src/dotnet/Program.cs
|
||
+++ b/src/dotnet/Program.cs
|
||
@@ -216,6 +216,10 @@ internal static int ProcessArgs(string[] args, ITelemetry telemetryClient = null
|
||
|
||
exitCode = builtIn.Command(appArgs.ToArray());
|
||
}
|
||
+ else if (string.IsNullOrEmpty(topLevelCommandParserResult.Command))
|
||
+ {
|
||
+ exitCode = 0;
|
||
+ }
|
||
else
|
||
{
|
||
CommandResult result = CommandFactoryUsingResolver.Create(
|
||
diff --git a/test/Microsoft.DotNet.CommandFactory.Tests/GivenALocalToolsCommandResolver.cs b/test/Microsoft.DotNet.CommandFactory.Tests/GivenALocalToolsCommandResolver.cs
|
||
index 4235f2055e..07bd774c97 100644
|
||
--- a/test/Microsoft.DotNet.CommandFactory.Tests/GivenALocalToolsCommandResolver.cs
|
||
+++ b/test/Microsoft.DotNet.CommandFactory.Tests/GivenALocalToolsCommandResolver.cs
|
||
@@ -79,6 +79,19 @@ public void WhenResolveItCanFindToolExecutable(string toolCommand)
|
||
commandPath.Should().Be(fakeExecutable.Value);
|
||
}
|
||
|
||
+ [Fact]
|
||
+ public void WhenResolveWithNoArgumentsItReturnsNull()
|
||
+ {
|
||
+ (FilePath fakeExecutable, LocalToolsCommandResolver localToolsCommandResolver) = DefaultSetup("-d");
|
||
+
|
||
+ var result = localToolsCommandResolver.Resolve(new CommandResolverArguments()
|
||
+ {
|
||
+ CommandName = "-d",
|
||
+ });
|
||
+
|
||
+ result.Should().BeNull();
|
||
+ }
|
||
+
|
||
private (FilePath, LocalToolsCommandResolver) DefaultSetup(string toolCommand)
|
||
{
|
||
NuGetVersion packageVersionA = NuGetVersion.Parse("1.0.4");
|
||
diff --git a/test/dotnet.Tests/CommandTests/CommandIntegrationTests.cs b/test/dotnet.Tests/CommandTests/CommandIntegrationTests.cs
|
||
new file mode 100644
|
||
index 0000000000..30e5bfdbb7
|
||
--- /dev/null
|
||
+++ b/test/dotnet.Tests/CommandTests/CommandIntegrationTests.cs
|
||
@@ -0,0 +1,31 @@
|
||
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||
+
|
||
+using FluentAssertions;
|
||
+using Microsoft.NET.TestFramework;
|
||
+using Microsoft.NET.TestFramework.Commands;
|
||
+using Xunit;
|
||
+using Xunit.Abstractions;
|
||
+
|
||
+namespace Microsoft.DotNet.Tests.Commands
|
||
+{
|
||
+ public class CommandIntegrationTests : SdkTest
|
||
+ {
|
||
+ public CommandIntegrationTests(ITestOutputHelper log) : base(log) {}
|
||
+
|
||
+ [Fact]
|
||
+ public void GivenNoArgumentsProvided()
|
||
+ {
|
||
+ var cmd = new DotnetCommand(Log).Execute(string.Empty);
|
||
+ cmd.StdErr.Should().BeEmpty();
|
||
+ }
|
||
+
|
||
+ [Fact]
|
||
+ public void GivenOnlyArgumentProvidedIsDiagnosticsFlag()
|
||
+ {
|
||
+ var cmd = new DotnetCommand(Log).Execute("-d");
|
||
+ cmd.ExitCode.Should().Be(0);
|
||
+ cmd.StdErr.Should().BeEmpty();
|
||
+ }
|
||
+ }
|
||
+}
|