public void SharedFrameworkAssembliesHaveExpectedAssemblyVersions() { // Only test managed assemblies from dotnet/aspnetcore. var repoAssemblies = TestData.GetSharedFrameworkBinariesFromRepo() .Split(';', StringSplitOptions.RemoveEmptyEntries) .ToHashSet(); var versionStringWithoutPrereleaseTag = TestData.GetMicrosoftNETCoreAppPackageVersion().Split('-', 2)[0]; var version = Version.Parse(versionStringWithoutPrereleaseTag); var dlls = Directory.GetFiles(_sharedFxRoot, "*.dll", SearchOption.AllDirectories); Assert.NotEmpty(dlls); Assert.All(dlls, path => { // Unlike dotnet/aspnetcore, dotnet/runtime varies the assembly version while in servicing. if (!repoAssemblies.Contains(Path.GetFileNameWithoutExtension(path))) { return; } using var fileStream = File.OpenRead(path); using var peReader = new PEReader(fileStream, PEStreamOptions.Default); var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default); var assemblyDefinition = reader.GetAssemblyDefinition(); // Assembly versions should all match Major.Minor.0.0 Assert.Equal(version.Major, assemblyDefinition.Version.Major); Assert.Equal(version.Minor, assemblyDefinition.Version.Minor); Assert.Equal(0, assemblyDefinition.Version.Build); Assert.Equal(0, assemblyDefinition.Version.Revision); }); }
public void ItContainsValidRuntimeConfigFile() { var runtimeConfigFilePath = Path.Combine(_sharedFxRoot, "Microsoft.AspNetCore.App.runtimeconfig.json"); AssertEx.FileExists(runtimeConfigFilePath); AssertEx.FileDoesNotExists(Path.Combine(_sharedFxRoot, "Microsoft.AspNetCore.App.runtimeconfig.dev.json")); var runtimeConfig = JObject.Parse(File.ReadAllText(runtimeConfigFilePath)); Assert.Equal("Microsoft.NETCore.App", (string)runtimeConfig["runtimeOptions"]["framework"]["name"]); Assert.Equal(_expectedTfm, (string)runtimeConfig["runtimeOptions"]["tfm"]); Assert.Equal(TestData.GetMicrosoftNETCoreAppPackageVersion(), (string)runtimeConfig["runtimeOptions"]["framework"]["version"]); }
public void ItContainsValidRuntimeConfigFile() { var runtimeConfigFilePath = Path.Combine(GetMetadataOutput(), "Microsoft.AspNetCore.App.runtimeconfig.json"); AssertEx.FileExists(runtimeConfigFilePath); AssertEx.FileDoesNotExists(Path.Combine(GetMetadataOutput(), "Microsoft.AspNetCore.App.runtimeconfig.dev.json")); var runtimeConfig = JObject.Parse(File.ReadAllText(runtimeConfigFilePath)); Assert.Equal("Microsoft.NETCore.App", (string)runtimeConfig["runtimeOptions"]["framework"]["name"]); Assert.Equal("netcoreapp" + TestData.GetPackageVersion().Substring(0, 3), (string)runtimeConfig["runtimeOptions"]["tfm"]); Assert.Equal(TestData.GetMicrosoftNETCoreAppPackageVersion(), (string)runtimeConfig["runtimeOptions"]["framework"]["version"]); }
public void PackageOverridesContainsCorrectEntries() { if (!_isTargetingPackBuilding) { return; } var packageOverridePath = Path.Combine(_targetingPackRoot, "data", "PackageOverrides.txt"); AssertEx.FileExists(packageOverridePath); var packageOverrideFileLines = File.ReadAllLines(packageOverridePath); var runtimeDependencies = TestData.GetRuntimeTargetingPackDependencies() .Split(';', StringSplitOptions.RemoveEmptyEntries) .ToHashSet(); var aspnetcoreDependencies = TestData.GetAspNetCoreTargetingPackDependencies() .Split(';', StringSplitOptions.RemoveEmptyEntries) .ToHashSet(); Assert.Equal(packageOverrideFileLines.Length, runtimeDependencies.Count + aspnetcoreDependencies.Count); foreach (var entry in packageOverrideFileLines) { var packageOverrideParts = entry.Split("|"); var packageName = packageOverrideParts[0]; var packageVersion = packageOverrideParts[1]; if (runtimeDependencies.Contains(packageName)) { Assert.Equal(TestData.GetMicrosoftNETCoreAppPackageVersion(), packageVersion); } else if (aspnetcoreDependencies.Contains(packageName)) { Assert.Equal(TestData.GetReferencePackSharedFxVersion(), packageVersion); } else { Assert.True(false, $"{packageName} is not a recognized aspNetCore or runtime dependency"); } } }
public static TheoryData <SharedFxConfig> GetSharedFxConfig() => new TheoryData <SharedFxConfig> { new SharedFxConfig { Name = "Microsoft.AspNetCore.All", Version = TestData.GetPackageVersion(), // Intentionally assert aspnetcore frameworks align versions with each other and netcore BaseSharedFxVersion = TestData.GetPackageVersion(), BaseSharedFxName = "Microsoft.AspNetCore.App", RuntimeIdentifier = TestData.GetSharedFxRuntimeIdentifier(), }, new SharedFxConfig { Name = "Microsoft.AspNetCore.App", Version = TestData.GetPackageVersion(), BaseSharedFxName = "Microsoft.NETCore.App", BaseSharedFxVersion = TestData.GetMicrosoftNETCoreAppPackageVersion(), RuntimeIdentifier = TestData.GetSharedFxRuntimeIdentifier(), }, };
public void PackageOverridesContainsCorrectEntries() { if (!_isTargetingPackBuilding) { return; } var packageOverridePath = Path.Combine(_targetingPackRoot, "data", "PackageOverrides.txt"); AssertEx.FileExists(packageOverridePath); var packageOverrideFileLines = File.ReadAllLines(packageOverridePath); var runtimeDependencies = TestData.GetRuntimeTargetingPackDependencies() .Split(';', StringSplitOptions.RemoveEmptyEntries) .ToHashSet(); var aspnetcoreDependencies = TestData.GetAspNetCoreTargetingPackDependencies() .Split(';', StringSplitOptions.RemoveEmptyEntries) .ToHashSet(); Assert.Equal(packageOverrideFileLines.Length, runtimeDependencies.Count + aspnetcoreDependencies.Count); // PackageOverrides versions should remain at Major.Minor.0 while servicing. var netCoreAppPackageVersion = TestData.GetMicrosoftNETCoreAppPackageVersion(); Assert.True( NuGetVersion.TryParse(netCoreAppPackageVersion, out var parsedVersion), "MicrosoftNETCoreAppPackageVersion must be convertable to a NuGetVersion."); if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease) { netCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0"; } var aspNetCoreAppPackageVersion = TestData.GetReferencePackSharedFxVersion(); Assert.True( NuGetVersion.TryParse(aspNetCoreAppPackageVersion, out parsedVersion), "ReferencePackSharedFxVersion must be convertable to a NuGetVersion."); if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease) { aspNetCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0"; } Assert.All(packageOverrideFileLines, entry => { var packageOverrideParts = entry.Split("|"); Assert.Equal(2, packageOverrideParts.Length); var packageName = packageOverrideParts[0]; var packageVersion = packageOverrideParts[1]; if (runtimeDependencies.Contains(packageName)) { Assert.Equal(netCoreAppPackageVersion, packageVersion); } else if (aspnetcoreDependencies.Contains(packageName)) { Assert.Equal(aspNetCoreAppPackageVersion, packageVersion); } else { Assert.True(false, $"{packageName} is not a recognized aspNetCore or runtime dependency"); } }); }