Change exclude to include, add skipOnFalseEnv, update checking of test params, remove netstandard & update baselines

This commit is contained in:
Ella Hathaway 2023-09-07 22:17:59 +00:00
parent 2a219fb331
commit 8ec128e7e0
10 changed files with 199 additions and 170 deletions

View file

@ -26,7 +26,7 @@ jobs:
targetRid: centos.8-x64
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
excludeArtifactsSize: false
includeArtifactsSize: true
- template: templates/jobs/sdk-diff-tests.yml
parameters:

View file

@ -11,9 +11,9 @@ parameters:
- name: dotnetDotnetRunId
type: string
- name: excludeArtifactsSize
- name: includeArtifactsSize
type: boolean
default: true
default: false
jobs:
- job: ${{ parameters.buildName }}_${{ parameters.architecture }}
@ -122,7 +122,7 @@ jobs:
-e SMOKE_TESTS_TARGET_RID=${{ parameters.targetRid }}
-e SMOKE_TESTS_PORTABLE_RID=linux-${{ parameters.architecture }}
-e SMOKE_TESTS_CUSTOM_PACKAGES_PATH=
-e SMOKE_TESTS_EXCLUDE_ARTIFACTSSIZE=${{ parameters.excludeArtifactsSize }}
-e SMOKE_TESTS_INCLUDE_ARTIFACTSSIZE=${{ parameters.includeArtifactsSize }}
displayName: Run Tests
workingDirectory: $(Build.SourcesDirectory)

View file

@ -18,11 +18,10 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
[Trait("Category", "SdkContent")]
public class ArtifactsSizeTest : SmokeTests
{
private const int SizeThresholdPercentage = 25;
private static readonly string BaselineFilePath = BaselineHelper.GetBaselineFilePath($"ArtifactsSizes/{Config.TargetRid}.txt");
private readonly Dictionary<string, long> BaselineFileContent = new();
private Dictionary<string, int> FilePathCountMap = new();
private const int SizeThresholdPercentage = 25;
public ArtifactsSizeTest(ITestOutputHelper outputHelper) : base(outputHelper)
{
@ -41,13 +40,41 @@ public class ArtifactsSizeTest : SmokeTests
}
}
[SkippableFact(new[] { Config.SourceBuiltArtifactsPathEnv, Config.SdkTarballPathEnv, Config.TargetRidEnv, Config.ExcludeArtifactsSizeEnv }, skipOnNullOrWhiteSpaceEnv: true, skipOnTrueEnv: true)]
[SkippableFact(Config.IncludeArtifactsSizeEnv, skipOnFalseEnv: true)]
public void CompareArtifactsToBaseline()
{
Assert.NotNull(Config.SourceBuiltArtifactsPath);
Assert.NotNull(Config.SdkTarballPath);
Assert.NotNull(Config.TargetRid);
OutputHelper.LogAndThrowIfNullOrEmpty(Config.SourceBuiltArtifactsPath, Config.SourceBuiltArtifactsPathEnv);
OutputHelper.LogAndThrowIfNullOrEmpty(Config.SdkTarballPath, Config.SdkTarballPathEnv);
OutputHelper.LogAndThrowIfNullOrEmpty(Config.TargetRid, Config.TargetRidEnv);
var tarEntries = ProcessSdkAndArtifactsTarballs();
foreach (var entry in tarEntries)
{
if (!BaselineFileContent.TryGetValue(entry.FilePath, out long baselineBytes))
{
OutputHelper.LogWarningMessage($"{entry.FilePath} does not exist in baseline. Adding it to the baseline file");
}
else
{
CompareFileSizes(entry.FilePath, entry.Bytes, baselineBytes);
}
}
try
{
string actualFilePath = Path.Combine(DotNetHelper.LogsDirectory, $"UpdatedArtifactsSizes_{Config.TargetRid}.txt");
File.WriteAllLines(actualFilePath, tarEntries.Select(entry => $"{entry.FilePath}: {entry.Bytes}"));
}
catch (IOException ex)
{
throw new InvalidOperationException($"An error occurred while copying the baselines file: {BaselineFilePath}", ex);
}
}
private (string FilePath, long Bytes)[] ProcessSdkAndArtifactsTarballs()
{
string tempTarballDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
Directory.CreateDirectory(tempTarballDir);
@ -64,30 +91,10 @@ public class ArtifactsSizeTest : SmokeTests
})
.OrderBy(entry => entry.FilePath)
.ToArray();
foreach (var entry in tarEntries)
{
if (!BaselineFileContent.TryGetValue(entry.FilePath, out long baselineBytes))
{
OutputHelper.LogWarningMessage($"{entry.FilePath} does not exist in baseline. Adding it to the baseline file");
}
else
{
CompareFileSizes(entry.FilePath, entry.Bytes, baselineBytes);
}
}
Directory.Delete(tempTarballDir, true);
try
{
string actualFilePath = Path.Combine(DotNetHelper.LogsDirectory, $"Updated_ArtifactsSizes_{Config.TargetRid}.txt");
File.WriteAllLines(actualFilePath, tarEntries.Select(entry => $"{entry.FilePath}: {entry.Bytes}"));
}
catch (IOException ex)
{
throw new InvalidOperationException($"An error occurred while copying the baselines file: {BaselineFilePath}", ex);
}
return tarEntries;
}
private string ProcessFilePath(string originalPath)

View file

@ -96,7 +96,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
{
// Remove version numbers for examples like "roslyn4.1", "net8.0", and "netstandard2.1".
string pathSeparator = Regex.Escape(Path.DirectorySeparatorChar.ToString());
string result = Regex.Replace(source, $@"{pathSeparator}(net|netstandard|roslyn)[1-9]+\.[0-9]+{pathSeparator}", match =>
string result = Regex.Replace(source, $@"{pathSeparator}(net|roslyn)[1-9]+\.[0-9]+{pathSeparator}", match =>
{
string wordPart = match.Groups[1].Value;
return $"{Path.DirectorySeparatorChar}{wordPart}{NonSemanticVersionPlaceholder}{Path.DirectorySeparatorChar}";

View file

@ -11,7 +11,7 @@ internal static class Config
{
public const string DotNetDirectoryEnv = "SMOKE_TESTS_DOTNET_DIR";
public const string ExcludeOmniSharpEnv = "SMOKE_TESTS_EXCLUDE_OMNISHARP";
public const string ExcludeArtifactsSizeEnv = "SMOKE_TESTS_EXCLUDE_ARTIFACTSSIZE";
public const string IncludeArtifactsSizeEnv = "SMOKE_TESTS_INCLUDE_ARTIFACTSSIZE";
public const string MsftSdkTarballPathEnv = "SMOKE_TESTS_MSFT_SDK_TARBALL_PATH";
public const string PoisonReportPathEnv = "SMOKE_TESTS_POISON_REPORT_PATH";
public const string PortableRidEnv = "SMOKE_TESTS_PORTABLE_RID";

View file

@ -13,13 +13,13 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// </summary>
internal class SkippableFactAttribute : FactAttribute
{
public SkippableFactAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) =>
EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envName);
public SkippableFactAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) =>
EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envName);
public SkippableFactAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) =>
EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envNames);
public SkippableFactAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) =>
EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envNames);
public static void EvaluateSkips(bool skipOnNullOrWhiteSpaceEnv, bool skipOnTrueEnv, string[] skipArchitectures, Action<string> setSkip, params string[] envNames)
public static void EvaluateSkips(bool skipOnNullOrWhiteSpaceEnv, bool skipOnTrueEnv, bool skipOnFalseEnv, string[] skipArchitectures, Action<string> setSkip, params string[] envNames)
{
foreach (string envName in envNames)
{
@ -30,10 +30,18 @@ internal class SkippableFactAttribute : FactAttribute
setSkip($"Skipping because `{envName}` is null or whitespace");
break;
}
else if (skipOnTrueEnv && bool.TryParse(envValue, out bool boolValue) && boolValue)
else if ((skipOnTrueEnv || skipOnFalseEnv) && bool.TryParse(envValue, out bool boolValue))
{
setSkip($"Skipping because `{envName}` is set to True");
break;
if (skipOnTrueEnv && boolValue)
{
setSkip($"Skipping because `{envName}` is set to True");
break;
}
else if (skipOnFalseEnv && !boolValue)
{
setSkip($"Skipping because `{envName}` is set to False");
break;
}
}
}

View file

@ -11,9 +11,9 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// </summary>
internal class SkippableTheoryAttribute : TheoryAttribute
{
public SkippableTheoryAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) =>
SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envName);
public SkippableTheoryAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) =>
SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envName);
public SkippableTheoryAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) =>
SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envNames);
public SkippableTheoryAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) =>
SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envNames);
}

View file

@ -11,6 +11,7 @@ using System.IO.Compression;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
@ -113,4 +114,17 @@ public static class Utilities
outputHelper.WriteLine($"{Environment.NewLine}{prefix}{message}.{Environment.NewLine}");
outputHelper.WriteLine("##vso[task.complete result=SucceededWithIssues;]");
}
public static void LogAndThrowIfNullOrEmpty(this ITestOutputHelper outputHelper, string? variable, string variableName)
{
if (string.IsNullOrEmpty(variable) || string.IsNullOrWhiteSpace(variable))
{
string prefix = "##vso[task.logissue type=error;]";
string message = $"{variableName} is null, empty, or whitespace.";
outputHelper.WriteLine($"{Environment.NewLine}{prefix}{message}.{Environment.NewLine}");
throw new ArgumentException(message);
}
}
}

View file

@ -1261,128 +1261,128 @@ packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/
packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Security.Cryptography.Native.OpenSsl.so: 413872
packs/NETStandard.Library.Ref/x.y.z/data/FrameworkList.xml: 25681
packs/NETStandard.Library.Ref/x.y.z/data/PackageOverrides.txt: 3177
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/Microsoft.Win32.Primitives.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/mscorlib.dll: 37888
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/netstandard.dll: 1597440
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/netstandard.xml: 16615788
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.AppContext.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Buffers.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Collections.Concurrent.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Collections.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Collections.NonGeneric.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Collections.Specialized.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ComponentModel.Composition.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ComponentModel.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ComponentModel.EventBasedAsync.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ComponentModel.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ComponentModel.TypeConverter.dll: 5120
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Console.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Core.dll: 8192
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Data.Common.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Data.dll: 7680
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.Contracts.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.Debug.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.FileVersionInfo.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.Process.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.StackTrace.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.TextWriterTraceListener.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.Tools.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.TraceSource.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Diagnostics.Tracing.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.dll: 30208
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Drawing.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Drawing.Primitives.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Dynamic.Runtime.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Globalization.Calendars.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Globalization.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Globalization.Extensions.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.Compression.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.Compression.FileSystem.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.Compression.ZipFile.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.FileSystem.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.FileSystem.DriveInfo.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.FileSystem.Primitives.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.FileSystem.Watcher.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.IsolatedStorage.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.MemoryMappedFiles.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.Pipes.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.IO.UnmanagedMemoryStream.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Linq.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Linq.Expressions.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Linq.Parallel.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Linq.Queryable.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Memory.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.Http.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.NameResolution.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.NetworkInformation.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.Ping.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.Primitives.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.Requests.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.Security.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.Sockets.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.WebHeaderCollection.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.WebSockets.Client.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Net.WebSockets.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Numerics.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Numerics.Vectors.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ObjectModel.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Reflection.DispatchProxy.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Reflection.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Reflection.Emit.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Reflection.Emit.ILGeneration.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Reflection.Emit.Lightweight.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Reflection.Extensions.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Reflection.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Resources.Reader.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Resources.ResourceManager.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Resources.Writer.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.CompilerServices.VisualC.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.dll: 11264
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Extensions.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Handles.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.InteropServices.dll: 6144
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.InteropServices.RuntimeInformation.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Numerics.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Serialization.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Serialization.Formatters.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Serialization.Json.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Serialization.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Runtime.Serialization.Xml.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.Claims.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.Cryptography.Algorithms.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.Cryptography.Csp.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.Cryptography.Encoding.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.Cryptography.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.Cryptography.X509Certificates.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.Principal.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Security.SecureString.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ServiceModel.Web.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Text.Encoding.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Text.Encoding.Extensions.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Text.RegularExpressions.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.Overlapped.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.Tasks.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.Tasks.Extensions.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.Tasks.Parallel.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.Thread.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.ThreadPool.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Threading.Timer.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Transactions.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.ValueTuple.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Web.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Windows.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.dll: 11264
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.Linq.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.ReaderWriter.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.Serialization.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.XDocument.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.XmlDocument.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.XmlSerializer.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.XPath.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.XPath.XDocument.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/Microsoft.Win32.Primitives.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/mscorlib.dll: 37888
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/netstandard.dll: 1597440
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/netstandard.xml: 16615788
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.AppContext.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Buffers.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.Concurrent.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.NonGeneric.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.Specialized.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.Composition.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.EventBasedAsync.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.TypeConverter.dll: 5120
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Console.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Core.dll: 8192
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Data.Common.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Data.dll: 7680
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Contracts.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Debug.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.FileVersionInfo.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Process.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.StackTrace.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.TextWriterTraceListener.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Tools.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.TraceSource.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Tracing.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.dll: 30208
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Drawing.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Drawing.Primitives.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Dynamic.Runtime.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Globalization.Calendars.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Globalization.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Globalization.Extensions.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Compression.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Compression.FileSystem.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Compression.ZipFile.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.DriveInfo.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.Primitives.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.Watcher.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.IsolatedStorage.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.MemoryMappedFiles.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Pipes.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.UnmanagedMemoryStream.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.Expressions.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.Parallel.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.Queryable.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Memory.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Http.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.NameResolution.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.NetworkInformation.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Ping.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Primitives.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Requests.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Security.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Sockets.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.WebHeaderCollection.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.WebSockets.Client.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.WebSockets.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Numerics.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Numerics.Vectors.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ObjectModel.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.DispatchProxy.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Emit.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Emit.ILGeneration.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Emit.Lightweight.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Extensions.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Resources.Reader.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Resources.ResourceManager.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Resources.Writer.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.CompilerServices.VisualC.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.dll: 11264
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Extensions.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Handles.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.InteropServices.dll: 6144
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.InteropServices.RuntimeInformation.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Numerics.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Formatters.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Json.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Xml.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Claims.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Algorithms.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Csp.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Encoding.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Primitives.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.X509Certificates.dll: 4608
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Principal.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.SecureString.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ServiceModel.Web.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Text.Encoding.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Text.Encoding.Extensions.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Text.RegularExpressions.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Overlapped.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Tasks.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Tasks.Extensions.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Tasks.Parallel.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Thread.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.ThreadPool.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Timer.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Transactions.dll: 4096
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ValueTuple.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Web.dll: 3072
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Windows.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.dll: 11264
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.Linq.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.ReaderWriter.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.Serialization.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XDocument.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XmlDocument.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XmlSerializer.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XPath.dll: 3584
packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XPath.XDocument.dll: 3072
Roslyn.Diagnostics.Analyzers.x.y.z-1.nupkg: 787880
Roslyn.Diagnostics.Analyzers.x.y.z-2.nupkg: 787881
Roslyn.Diagnostics.Analyzers.x.y.z.nupkg: 787868

View file

@ -45,7 +45,7 @@ index ------------
./packs/Microsoft.NETCore.App.Ref/x.y.z/
./packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/
@@ ------------ @@
./packs/NETStandard.Library.Ref/x.y.z/ref/netstandardx.y/System.Xml.XPath.XDocument.dll
./packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XPath.XDocument.dll
./sdk-manifests/
./sdk-manifests/x.y.z/
-./sdk-manifests/x.y.z/