add signed verification test
This commit is contained in:
parent
3149af8941
commit
bf5404373f
1 changed files with 35 additions and 1 deletions
|
@ -16,6 +16,7 @@ using Microsoft.DotNet.Cli;
|
|||
using Microsoft.DotNet.Tools.Migrate;
|
||||
using Build3Command = Microsoft.DotNet.Tools.Test.Utilities.Build3Command;
|
||||
using BuildCommand = Microsoft.DotNet.Tools.Test.Utilities.BuildCommand;
|
||||
using System.Runtime.Loader;
|
||||
|
||||
namespace Microsoft.DotNet.Migration.Tests
|
||||
{
|
||||
|
@ -26,7 +27,6 @@ namespace Microsoft.DotNet.Migration.Tests
|
|||
// https://github.com/dotnet/sdk/issues/73 [InlineData("TestAppWithLibrary/TestApp", false)]
|
||||
[InlineData("TestAppWithRuntimeOptions")]
|
||||
[InlineData("TestAppWithContents")]
|
||||
[InlineData("TestAppWithSigning")]
|
||||
public void It_migrates_apps(string projectName)
|
||||
{
|
||||
var projectDirectory = TestAssetsManager.CreateTestInstance(projectName, callingMethod: "i").WithLockFiles().Path;
|
||||
|
@ -45,6 +45,25 @@ namespace Microsoft.DotNet.Migration.Tests
|
|||
VerifyAllMSBuildOutputsRunnable(projectDirectory);
|
||||
}
|
||||
|
||||
public void It_migrates_signed_apps(string projectName)
|
||||
{
|
||||
var projectDirectory = TestAssetsManager.CreateTestInstance("TestAppWithSigning", callingMethod: "i").WithLockFiles().Path;
|
||||
|
||||
CleanBinObj(projectDirectory);
|
||||
|
||||
var outputComparisonData = BuildProjectJsonMigrateBuildMSBuild(projectDirectory, projectName);
|
||||
|
||||
var outputsIdentical =
|
||||
outputComparisonData.ProjectJsonBuildOutputs.SetEquals(outputComparisonData.MSBuildBuildOutputs);
|
||||
if (!outputsIdentical)
|
||||
{
|
||||
OutputDiagnostics(outputComparisonData);
|
||||
}
|
||||
outputsIdentical.Should().BeTrue();
|
||||
VerifyAllMSBuildOutputsRunnable(projectDirectory);
|
||||
VerifyAllMSBuildOutputsAreSigned(projectDirectory);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_dotnet_new_console_with_identical_outputs()
|
||||
{
|
||||
|
@ -238,6 +257,21 @@ namespace Microsoft.DotNet.Migration.Tests
|
|||
}
|
||||
}
|
||||
|
||||
private void VerifyAllMSBuildOutputsAreSigned(string projectDirectory)
|
||||
{
|
||||
var dllFileName = Path.GetFileName(projectDirectory) + ".dll";
|
||||
|
||||
var runnableDlls = Directory.EnumerateFiles(Path.Combine(projectDirectory, "bin"), dllFileName,
|
||||
SearchOption.AllDirectories);
|
||||
|
||||
foreach (var dll in runnableDlls)
|
||||
{
|
||||
var assemblyName = AssemblyLoadContext.GetAssemblyName(dll);
|
||||
var token = assemblyName.GetPublicKeyToken();
|
||||
token.Should().NotBeNullOrEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
private MigratedBuildComparisonData BuildProjectJsonMigrateBuildMSBuild(string projectDirectory, string projectName=null)
|
||||
{
|
||||
BuildProjectJson(projectDirectory);
|
||||
|
|
Loading…
Add table
Reference in a new issue