From f56306cc62a06c9e9024f13a8d4824021e943caf Mon Sep 17 00:00:00 2001 From: John Beisner Date: Fri, 14 Apr 2017 09:40:46 -0700 Subject: [PATCH] Adding a CLI Test: Execute a 1.0 tool in a netcoreapp1.1 project https://github.com/dotnet/cli/issues/6229 --- Microsoft.DotNet.Cli.sln | 51 +++++++++++++++++++ .../Program.cs | 15 ++++++ ...tputsframeworkversion-netcoreapp1.0.csproj | 15 ++++++ .../TestAppWithCLIToolReferences/NuGet.Config | 6 +++ .../TestAppWithCLIToolReferences/Program.cs | 15 ++++++ .../TestAppWithCLIToolReferences.csproj | 14 +++++ build/test/TestPackageProjects.targets | 9 ++++ ...ntToBeBackwardsCompatibleWith1xProjects.cs | 19 +++++++ 8 files changed, 144 insertions(+) create mode 100644 TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/Program.cs create mode 100644 TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/dotnet-outputsframeworkversion-netcoreapp1.0.csproj create mode 100644 TestAssets/TestProjects/TestAppWithCLIToolReferences/NuGet.Config create mode 100644 TestAssets/TestProjects/TestAppWithCLIToolReferences/Program.cs create mode 100644 TestAssets/TestProjects/TestAppWithCLIToolReferences/TestAppWithCLIToolReferences.csproj diff --git a/Microsoft.DotNet.Cli.sln b/Microsoft.DotNet.Cli.sln index c18e98378..08da39cfa 100644 --- a/Microsoft.DotNet.Cli.sln +++ b/Microsoft.DotNet.Cli.sln @@ -226,6 +226,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "templates", "templates", "{ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-back-compat.Tests", "test\dotnet-back-compat.Tests\dotnet-back-compat.Tests.csproj", "{A4C198B4-D46E-4CA8-87DF-B2B206DCCAE6}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-outputsframeworkversion-netcoreapp1.0", "TestAssets\TestPackages\dotnet-outputsframeworkversion\dotnet-outputsframeworkversion-netcoreapp1.0\dotnet-outputsframeworkversion-netcoreapp1.0.csproj", "{3F7D56A3-A280-467E-8916-C18659C243BA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -962,6 +964,30 @@ Global {BBB5A4C8-CD2D-4A6A-9159-0FEAF84B745E}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {BBB5A4C8-CD2D-4A6A-9159-0FEAF84B745E}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU {BBB5A4C8-CD2D-4A6A-9159-0FEAF84B745E}.RelWithDebInfo|x86.Build.0 = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Debug|x64.ActiveCfg = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Debug|x64.Build.0 = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Debug|x86.ActiveCfg = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Debug|x86.Build.0 = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.MinSizeRel|x64.Build.0 = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.MinSizeRel|x86.Build.0 = Debug|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Release|Any CPU.Build.0 = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Release|x64.ActiveCfg = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Release|x64.Build.0 = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Release|x86.ActiveCfg = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.Release|x86.Build.0 = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.RelWithDebInfo|x64.Build.0 = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU + {8AA88E83-6A98-4AD6-86EB-2ED4F6EDA17F}.RelWithDebInfo|x86.Build.0 = Release|Any CPU {726D2CB9-80E5-4496-9C86-910AC452C45E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {726D2CB9-80E5-4496-9C86-910AC452C45E}.Debug|Any CPU.Build.0 = Debug|Any CPU {726D2CB9-80E5-4496-9C86-910AC452C45E}.Debug|x64.ActiveCfg = Release|Any CPU @@ -1538,6 +1564,30 @@ Global {A4C198B4-D46E-4CA8-87DF-B2B206DCCAE6}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {A4C198B4-D46E-4CA8-87DF-B2B206DCCAE6}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU {A4C198B4-D46E-4CA8-87DF-B2B206DCCAE6}.RelWithDebInfo|x86.Build.0 = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Debug|x64.ActiveCfg = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Debug|x64.Build.0 = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Debug|x86.ActiveCfg = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Debug|x86.Build.0 = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.MinSizeRel|x64.Build.0 = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.MinSizeRel|x86.Build.0 = Debug|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Release|Any CPU.Build.0 = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Release|x64.ActiveCfg = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Release|x64.Build.0 = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Release|x86.ActiveCfg = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.Release|x86.Build.0 = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.RelWithDebInfo|x64.Build.0 = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU + {3F7D56A3-A280-467E-8916-C18659C243BA}.RelWithDebInfo|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1607,5 +1657,6 @@ Global {3275D006-54C8-4C64-A537-B9941C5D2F0C} = {89905EC4-BC0F-443B-8ADF-691321F10108} {DE4D1AEB-871B-4E7C-945A-453F9A490C06} = {89905EC4-BC0F-443B-8ADF-691321F10108} {A4C198B4-D46E-4CA8-87DF-B2B206DCCAE6} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7} + {3F7D56A3-A280-467E-8916-C18659C243BA} = {1AB5B24B-B317-4142-A5D1-A6E84F15BA34} EndGlobalSection EndGlobal diff --git a/TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/Program.cs b/TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/Program.cs new file mode 100644 index 000000000..02952b8b4 --- /dev/null +++ b/TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/Program.cs @@ -0,0 +1,15 @@ +// 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 System; + +namespace ConsoleApplication +{ + public class Program + { + public static void Main() + { + Console.WriteLine("netcoreapp1.0"); + } + } +} diff --git a/TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/dotnet-outputsframeworkversion-netcoreapp1.0.csproj b/TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/dotnet-outputsframeworkversion-netcoreapp1.0.csproj new file mode 100644 index 000000000..17c0af923 --- /dev/null +++ b/TestAssets/TestPackages/dotnet-outputsframeworkversion/dotnet-outputsframeworkversion-netcoreapp1.0/dotnet-outputsframeworkversion-netcoreapp1.0.csproj @@ -0,0 +1,15 @@ + + + + + netcoreapp1.0 + dotnet-outputsframeworkversion-netcoreapp1.0 + Exe + 1.1.1 + + + + $(ProjectRuntimeConfigFilePath) + + + diff --git a/TestAssets/TestProjects/TestAppWithCLIToolReferences/NuGet.Config b/TestAssets/TestProjects/TestAppWithCLIToolReferences/NuGet.Config new file mode 100644 index 000000000..b8e876fcb --- /dev/null +++ b/TestAssets/TestProjects/TestAppWithCLIToolReferences/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + diff --git a/TestAssets/TestProjects/TestAppWithCLIToolReferences/Program.cs b/TestAssets/TestProjects/TestAppWithCLIToolReferences/Program.cs new file mode 100644 index 000000000..2130cd0a7 --- /dev/null +++ b/TestAssets/TestProjects/TestAppWithCLIToolReferences/Program.cs @@ -0,0 +1,15 @@ +// 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 System; + +namespace ConsoleApplication +{ + public class Program + { + public static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/TestAssets/TestProjects/TestAppWithCLIToolReferences/TestAppWithCLIToolReferences.csproj b/TestAssets/TestProjects/TestAppWithCLIToolReferences/TestAppWithCLIToolReferences.csproj new file mode 100644 index 000000000..c684ab90b --- /dev/null +++ b/TestAssets/TestProjects/TestAppWithCLIToolReferences/TestAppWithCLIToolReferences.csproj @@ -0,0 +1,14 @@ + + + + + Exe + netcoreapp1.1 + $(CLI_SharedFrameworkVersion) + netcoreapp1.1 + + + + + + \ No newline at end of file diff --git a/build/test/TestPackageProjects.targets b/build/test/TestPackageProjects.targets index 88b80d3b4..986fc569a 100644 --- a/build/test/TestPackageProjects.targets +++ b/build/test/TestPackageProjects.targets @@ -118,6 +118,15 @@ True + + dotnet-outputsframeworkversion-netcoreapp1.0 + dotnet-outputsframeworkversion-netcoreapp1.0.csproj + True + True + 1.0.0 + + True + dotnet-portable dotnet-portable.csproj diff --git a/test/dotnet-back-compat.Tests/GivenThatWeWantToBeBackwardsCompatibleWith1xProjects.cs b/test/dotnet-back-compat.Tests/GivenThatWeWantToBeBackwardsCompatibleWith1xProjects.cs index f3537bc79..5b6ff3ebf 100644 --- a/test/dotnet-back-compat.Tests/GivenThatWeWantToBeBackwardsCompatibleWith1xProjects.cs +++ b/test/dotnet-back-compat.Tests/GivenThatWeWantToBeBackwardsCompatibleWith1xProjects.cs @@ -78,6 +78,25 @@ namespace Microsoft.DotNet.Cli.Build.Tests .Should().Pass(); } + [Theory] + [InlineData("netcoreapp1.0")] + public void ItRunsABackwardsVersionedTool(string target) + { + var testInstance = TestAssets.Get("TestAppWithCLIToolReferences") + .CreateInstance() + .WithSourceFiles() + .WithRestoreFiles(); + + var testProjectDirectory = testInstance.Root; + + new DotnetCommand(DotnetUnderTest.WithBackwardsCompatibleRuntimes) + .WithWorkingDirectory(testInstance.Root) + .ExecuteWithCapturedOutput("outputsframeworkversion-" + target) + .Should() + .Pass() + .And + .HaveStdOutContaining(target); + } void ChangeProjectTargetFramework(FileInfo projectFile, string target) {