You've already forked linux-packaging-mono
Imported Upstream version 5.10.0.47
Former-commit-id: d0813289fa2d35e1f8ed77530acb4fb1df441bc0
This commit is contained in:
parent
88ff76fe28
commit
e46a49ecf1
@@ -13,8 +13,15 @@
|
||||
<TargetFramework>portable-net45+win8</TargetFramework>
|
||||
<Version>1.1.37</Version>
|
||||
</FilePackageDependency>
|
||||
<InboxOnTargetFramework Include="netcoreapp2.0" />
|
||||
<InboxOnTargetFramework Include="$(UAPvNextTFM)" />
|
||||
|
||||
<!-- Since UAP and .NETCoreApp are package based we still want to enable
|
||||
OOBing libraries that happen to overlap with their framework package.
|
||||
This avoids us having to lock the API in our NuGet packages just
|
||||
to match what shipped inbox: since we can provide a new library
|
||||
we can update it to add API without raising the netstandard version. -->
|
||||
<ValidatePackageSuppression Include="TreatAsOutOfBox">
|
||||
<Value>.NETCoreApp;UAP</Value>
|
||||
</ValidatePackageSuppression>
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
@@ -1 +1 @@
|
||||
d421ee938b951e8fc13b1f093c52ec399c682a2d
|
||||
507b479bf6a15cb7a5f6d50c79d47577cefd2e94
|
||||
@@ -5,6 +5,7 @@
|
||||
<ProjectGuid>{69B25962-B4C2-4295-8809-5653CD03FC75}</ProjectGuid>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<CLSCompliant>false</CLSCompliant>
|
||||
<DefineConstants Condition="'$(TargetGroup)' == 'netstandard1.1'">$(DefineConstants);NETSTANDARD11</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
|
||||
@@ -31,4 +32,4 @@
|
||||
<ProjectReference Include="..\..\System.Collections.Immutable\ref\System.Collections.Immutable.csproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
@@ -73,6 +73,8 @@
|
||||
<Compile Include="System\Reflection\Metadata\MetadataReaderProvider.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\BlobContentId.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\Signatures\PrimitiveSerializationTypeCode.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\TypeSystem\AssemblyDefinition.netstandard.cs" Condition="'$(TargetGroup)' != 'netstandard1.1'" />
|
||||
<Compile Include="System\Reflection\Metadata\TypeSystem\AssemblyReference.netstandard.cs" Condition="'$(TargetGroup)' != 'netstandard1.1'" />
|
||||
<Compile Include="System\Reflection\Metadata\TypeSystem\Handles.TypeSystem.cs" />
|
||||
<Compile Include="System\Reflection\PortableExecutable\ManagedPEBuilder.cs" />
|
||||
<Compile Include="System\Reflection\PortableExecutable\ManagedTextSection.cs" />
|
||||
@@ -181,6 +183,7 @@
|
||||
<Compile Include="System\Reflection\Metadata\Signatures\MemberReferenceKind.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\Ecma335\MetadataAggregator.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\MetadataKind.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\MetadataReader.netstandard.cs" Condition="'$(TargetGroup)' != 'netstandard1.1'" />
|
||||
<Compile Include="System\Reflection\Metadata\MetadataReader.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\MetadataReader.WinMD.cs" />
|
||||
<Compile Include="System\Reflection\Metadata\MetadataReaderOptions.cs" />
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace System.Reflection.Internal
|
||||
/// Does not check bounds.
|
||||
///
|
||||
/// Only creates a copy of the data if they are not represented by a managed byte array,
|
||||
/// or if the specified range doens't span the entire block.
|
||||
/// or if the specified range doesn't span the entire block.
|
||||
/// </remarks>
|
||||
public unsafe virtual ImmutableArray<byte> GetContentUnchecked(int start, int length)
|
||||
{
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace System.Reflection.Metadata
|
||||
public int RemainingBytes => (int)(_endPointer - _currentPointer);
|
||||
|
||||
/// <summary>
|
||||
/// Repositions the reader to the start of the underluing memory block.
|
||||
/// Repositions the reader to the start of the underlying memory block.
|
||||
/// </summary>
|
||||
public void Reset()
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace System.Reflection.Metadata.Ecma335
|
||||
/// Builder tracking labels, branches and exception handlers.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// If null the encoder doesn't support constuction of control flow.
|
||||
/// If null the encoder doesn't support construction of control flow.
|
||||
/// </remarks>
|
||||
public ControlFlowBuilder ControlFlowBuilder { get; }
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
161cec5c59c4881faa640b4c15e500dd63cc0042
|
||||
f56f0f835cfd63c3f562c4e0569942f4aa99dc63
|
||||
@@ -0,0 +1,62 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
namespace System.Reflection.Metadata
|
||||
{
|
||||
public sealed partial class MetadataReader
|
||||
{
|
||||
internal AssemblyName GetAssemblyName(StringHandle nameHandle, Version version, StringHandle cultureHandle, BlobHandle publicKeyOrTokenHandle, AssemblyHashAlgorithm assemblyHashAlgorithm, AssemblyFlags flags)
|
||||
{
|
||||
string name = GetString(nameHandle);
|
||||
string cultureName = (!cultureHandle.IsNil) ? GetString(cultureHandle) : null;
|
||||
var hashAlgorithm = (Configuration.Assemblies.AssemblyHashAlgorithm)assemblyHashAlgorithm;
|
||||
byte[] publicKeyOrToken = !publicKeyOrTokenHandle.IsNil ? GetBlobBytes(publicKeyOrTokenHandle) : null;
|
||||
|
||||
var assemblyName = new AssemblyName(name)
|
||||
{
|
||||
Version = version,
|
||||
CultureName = cultureName,
|
||||
HashAlgorithm = hashAlgorithm,
|
||||
Flags = GetAssemblyNameFlags(flags),
|
||||
ContentType = GetContentTypeFromAssemblyFlags(flags)
|
||||
};
|
||||
|
||||
bool hasPublicKey = (flags & AssemblyFlags.PublicKey) != 0;
|
||||
if (hasPublicKey)
|
||||
{
|
||||
assemblyName.SetPublicKey(publicKeyOrToken);
|
||||
}
|
||||
else
|
||||
{
|
||||
assemblyName.SetPublicKeyToken(publicKeyOrToken);
|
||||
}
|
||||
|
||||
return assemblyName;
|
||||
}
|
||||
|
||||
private AssemblyNameFlags GetAssemblyNameFlags(AssemblyFlags flags)
|
||||
{
|
||||
AssemblyNameFlags assemblyNameFlags = AssemblyNameFlags.None;
|
||||
|
||||
if ((flags & AssemblyFlags.PublicKey) != 0)
|
||||
assemblyNameFlags |= AssemblyNameFlags.PublicKey;
|
||||
|
||||
if ((flags & AssemblyFlags.Retargetable) != 0)
|
||||
assemblyNameFlags |= AssemblyNameFlags.Retargetable;
|
||||
|
||||
if ((flags & AssemblyFlags.EnableJitCompileTracking) != 0)
|
||||
assemblyNameFlags |= AssemblyNameFlags.EnableJITcompileTracking;
|
||||
|
||||
if ((flags & AssemblyFlags.DisableJitCompileOptimizer) != 0)
|
||||
assemblyNameFlags |= AssemblyNameFlags.EnableJITcompileOptimizer;
|
||||
|
||||
return assemblyNameFlags;
|
||||
}
|
||||
|
||||
private AssemblyContentType GetContentTypeFromAssemblyFlags(AssemblyFlags flags)
|
||||
{
|
||||
return (AssemblyContentType)(((int)flags & (int)AssemblyFlags.ContentTypeMask) >> 9);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using System.Diagnostics;
|
||||
|
||||
namespace System.Reflection.Metadata
|
||||
{
|
||||
public struct AssemblyDefinition
|
||||
public partial struct AssemblyDefinition
|
||||
{
|
||||
private readonly MetadataReader _reader;
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
namespace System.Reflection.Metadata
|
||||
{
|
||||
public partial struct AssemblyDefinition
|
||||
{
|
||||
public AssemblyName GetAssemblyName()
|
||||
{
|
||||
return _reader.GetAssemblyName(Name, Version, Culture, PublicKey, HashAlgorithm, Flags);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ using System.Reflection.Metadata.Ecma335;
|
||||
|
||||
namespace System.Reflection.Metadata
|
||||
{
|
||||
public struct AssemblyReference
|
||||
public partial struct AssemblyReference
|
||||
{
|
||||
private readonly MetadataReader _reader;
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
namespace System.Reflection.Metadata
|
||||
{
|
||||
public partial struct AssemblyReference
|
||||
{
|
||||
public AssemblyName GetAssemblyName()
|
||||
{
|
||||
return _reader.GetAssemblyName(Name, Version, Culture, PublicKeyOrToken, AssemblyHashAlgorithm.None, Flags);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -264,7 +264,7 @@ namespace System.Reflection.Metadata.Decoding.Tests
|
||||
|
||||
// Compiler can generate temporaries or re-order so just check the ones we expect are there.
|
||||
// (They could get optimized away too. If that happens in practice, change this test to use hard-coded signatures.)
|
||||
Assert.Contains("uint8& pinned", localTypes);
|
||||
Assert.Contains("uint8[] pinned", localTypes);
|
||||
Assert.Contains("uint8[]", localTypes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@ namespace System.Reflection.Metadata.Ecma335.Tests
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add methods do miminal validation to avoid overhead.
|
||||
/// Add methods do minimal validation to avoid overhead.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void Add_ArgumentErrors()
|
||||
|
||||
126
external/corefx/src/System.Reflection.Metadata/tests/Metadata/TypeSystem/AssemblyDefinitionTests.cs
vendored
Normal file
126
external/corefx/src/System.Reflection.Metadata/tests/Metadata/TypeSystem/AssemblyDefinitionTests.cs
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using Xunit;
|
||||
|
||||
namespace System.Reflection.Metadata.Tests
|
||||
{
|
||||
public class AssemblyDefinitionTests
|
||||
{
|
||||
[Fact]
|
||||
public void ValidateAssemblyNameWithCultureSet()
|
||||
{
|
||||
var assembly = new { Assembly = Misc.Satellite, Name = "SatelliteAssembly.resources", Version = new Version(1, 0, 0, 0), ContentType = AssemblyContentType.Default, Culture = "de-DE" };
|
||||
|
||||
var reader = MetadataReaderTests.GetMetadataReader(assembly.Assembly, options: MetadataReaderOptions.ApplyWindowsRuntimeProjections);
|
||||
|
||||
foreach (var assemblyRefHandle in reader.AssemblyReferences)
|
||||
{
|
||||
var assemblyDef = reader.GetAssemblyDefinition();
|
||||
var assemblyRef = reader.GetAssemblyReference(assemblyRefHandle);
|
||||
var assemblyName = assemblyDef.GetAssemblyName();
|
||||
|
||||
// Validate against input assembly
|
||||
Assert.Equal(assembly.Version, assemblyName.Version);
|
||||
Assert.Equal(assembly.Name, assemblyName.Name);
|
||||
Assert.Equal(assembly.ContentType, assemblyName.ContentType);
|
||||
Assert.Equal(assembly.Culture, assemblyName.CultureName);
|
||||
Assert.Equal(Configuration.Assemblies.AssemblyHashAlgorithm.SHA1, assemblyName.HashAlgorithm);
|
||||
Assert.Null(assemblyName.GetPublicKey());
|
||||
Assert.Null(assemblyName.GetPublicKeyToken());
|
||||
Assert.Equal(AssemblyNameFlags.None, assemblyName.Flags);
|
||||
|
||||
// Validate against AssemblyDefinition
|
||||
ValidateDefinitionAssemblyNameAgainst(assemblyName, reader, assemblyDef);
|
||||
|
||||
// Validate against AssemblyReference
|
||||
ValidateDefinitionAssemblyNameAgainst(assemblyName, reader, assemblyRef);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ValidateAssemblyNameWithPublicKey()
|
||||
{
|
||||
var assembly = new { Assembly = Misc.Signed, Name = "Signed", Version = new Version(0, 0, 0, 0), ContentType = AssemblyContentType.Default, Flags = AssemblyNameFlags.PublicKey };
|
||||
|
||||
var reader = MetadataReaderTests.GetMetadataReader(assembly.Assembly, options: MetadataReaderOptions.ApplyWindowsRuntimeProjections);
|
||||
|
||||
foreach (var assemblyRefHandle in reader.AssemblyReferences)
|
||||
{
|
||||
var assemblyDef = reader.GetAssemblyDefinition();
|
||||
var assemblyRef = reader.GetAssemblyReference(assemblyRefHandle);
|
||||
var assemblyName = assemblyDef.GetAssemblyName();
|
||||
|
||||
// Validate against input assembly
|
||||
Assert.Equal(assembly.Version, assemblyName.Version);
|
||||
Assert.Equal(assembly.Name, assemblyName.Name);
|
||||
Assert.Equal(assembly.ContentType, assemblyName.ContentType);
|
||||
Assert.Null(assemblyName.CultureName);
|
||||
Assert.Equal(Configuration.Assemblies.AssemblyHashAlgorithm.SHA1, assemblyName.HashAlgorithm);
|
||||
Assert.Equal(assembly.Flags, assemblyName.Flags);
|
||||
Assert.NotNull(assemblyName.GetPublicKeyToken());
|
||||
Assert.NotNull(assemblyName.GetPublicKey());
|
||||
|
||||
// Validate against AssemblyDefinition
|
||||
ValidateDefinitionAssemblyNameAgainst(assemblyName, reader, assemblyDef);
|
||||
|
||||
// Validate against AssemblyReference
|
||||
ValidateDefinitionAssemblyNameAgainst(assemblyName, reader, assemblyRef);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ValidateAssemblyNameForAssemblyDefinition()
|
||||
{
|
||||
var assemblyItems = new[]
|
||||
{
|
||||
new { Assembly = WinRT.Lib, Name = "Lib", Version = new Version(1, 0, 0, 0), ContentType = AssemblyContentType.WindowsRuntime },
|
||||
new { Assembly = NetModule.AppCS, Name = "AppCS", Version = new Version(1, 2, 3, 4), ContentType = AssemblyContentType.Default },
|
||||
new { Assembly = Namespace.NamespaceTests, Name = "NamespaceTests", Version = new Version(0, 0, 0, 0), ContentType = AssemblyContentType.Default },
|
||||
new { Assembly = PortablePdbs.DocumentsDll, Name = "Documents", Version = new Version(0, 0, 0, 0), ContentType = AssemblyContentType.Default }
|
||||
};
|
||||
|
||||
foreach (var item in assemblyItems)
|
||||
{
|
||||
var reader = MetadataReaderTests.GetMetadataReader(item.Assembly, options: MetadataReaderOptions.ApplyWindowsRuntimeProjections);
|
||||
|
||||
foreach (var assemblyRefHandle in reader.AssemblyReferences)
|
||||
{
|
||||
var assemblyDef = reader.GetAssemblyDefinition();
|
||||
var assemblyRef = reader.GetAssemblyReference(assemblyRefHandle);
|
||||
var assemblyName = assemblyDef.GetAssemblyName();
|
||||
|
||||
// Validate against input assembly
|
||||
Assert.Equal(item.Version, assemblyName.Version);
|
||||
Assert.Equal(item.Name, assemblyName.Name);
|
||||
Assert.Equal(item.ContentType, assemblyName.ContentType);
|
||||
Assert.Null(assemblyName.CultureName);
|
||||
Assert.Equal(Configuration.Assemblies.AssemblyHashAlgorithm.SHA1, assemblyName.HashAlgorithm);
|
||||
Assert.Null(assemblyName.GetPublicKey());
|
||||
Assert.Null(assemblyName.GetPublicKeyToken());
|
||||
Assert.Equal(AssemblyNameFlags.None, assemblyName.Flags);
|
||||
|
||||
// Validate against AssemblyDefinition
|
||||
ValidateDefinitionAssemblyNameAgainst(assemblyName, reader, assemblyDef);
|
||||
|
||||
// Validate against AssemblyReference
|
||||
ValidateDefinitionAssemblyNameAgainst(assemblyName, reader, assemblyRef);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ValidateDefinitionAssemblyNameAgainst(AssemblyName assemblyName, MetadataReader reader, AssemblyDefinition assemblyDef)
|
||||
{
|
||||
Assert.Equal(reader.GetString(assemblyDef.Name), assemblyName.Name);
|
||||
Assert.Equal(assemblyDef.Version, assemblyName.Version);
|
||||
Assert.Equal((Configuration.Assemblies.AssemblyHashAlgorithm)assemblyDef.HashAlgorithm, assemblyName.HashAlgorithm);
|
||||
Assert.Equal((AssemblyContentType)(((int)assemblyDef.Flags & (int)AssemblyFlags.ContentTypeMask) >> 9), assemblyName.ContentType);
|
||||
}
|
||||
|
||||
private void ValidateDefinitionAssemblyNameAgainst(AssemblyName assemblyName, MetadataReader reader, AssemblyReference assemblyRef)
|
||||
{
|
||||
Assert.NotEqual(reader.GetString(assemblyRef.Name), assemblyName.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
103
external/corefx/src/System.Reflection.Metadata/tests/Metadata/TypeSystem/AssemblyReferenceTests.cs
vendored
Normal file
103
external/corefx/src/System.Reflection.Metadata/tests/Metadata/TypeSystem/AssemblyReferenceTests.cs
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System.Linq;
|
||||
using Xunit;
|
||||
|
||||
namespace System.Reflection.Metadata.Tests
|
||||
{
|
||||
public class AssemblyReferenceTests
|
||||
{
|
||||
[Fact]
|
||||
public void ValidateAssemblyNameForSingleAssemblyReference()
|
||||
{
|
||||
var reader = MetadataReaderTests.GetMetadataReader(WinRT.Lib, options: MetadataReaderOptions.ApplyWindowsRuntimeProjections);
|
||||
var handle = reader.AssemblyReferences.Skip(3).First();
|
||||
var assemblyRef = reader.GetAssemblyReference(handle);
|
||||
var assemblyDef = reader.GetAssemblyDefinition();
|
||||
var assemblyName = assemblyRef.GetAssemblyName();
|
||||
|
||||
// Validate against input assembly
|
||||
Assert.Equal("System.Runtime", assemblyName.Name);
|
||||
Assert.Equal(new Version(4, 0, 0, 0), assemblyName.Version);
|
||||
Assert.Equal(new byte[] { 0xB0, 0x3F, 0x5F, 0x7F, 0x11, 0xD5, 0x0A, 0x3A }, assemblyName.GetPublicKeyToken());
|
||||
Assert.Null(assemblyName.CultureName);
|
||||
Assert.Equal(Configuration.Assemblies.AssemblyHashAlgorithm.None, assemblyName.HashAlgorithm);
|
||||
Assert.Null(assemblyName.GetPublicKey());
|
||||
Assert.Equal(AssemblyNameFlags.None, assemblyName.Flags);
|
||||
Assert.Equal(AssemblyContentType.Default, assemblyName.ContentType);
|
||||
|
||||
// Validate against AssemblyRefernce
|
||||
ValidateReferenceAssemblyNameAgainst(assemblyName, reader, assemblyRef);
|
||||
|
||||
// Validate against AssemblyDefinition
|
||||
ValidateReferenceAssemblyNameAgainst(assemblyName, reader, assemblyDef);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ValidateAssemblyNameForMultipleAssemblyReferences()
|
||||
{
|
||||
var expRefs = new string[] { "mscorlib", "System.Core", "System", "Microsoft.VisualBasic" };
|
||||
|
||||
byte[][] expKeys = new byte[][]
|
||||
{
|
||||
new byte[] { 0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89 },
|
||||
new byte[] { 0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89 },
|
||||
new byte[] { 0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89 },
|
||||
|
||||
// VB: B0 3F 5F 7F 11 D5 0A 3A
|
||||
new byte[] { 0xb0, 0x3f, 0x5f, 0x7f, 0x11, 0xd5, 0x0a, 0x3a }
|
||||
};
|
||||
|
||||
var expVers = new Version[]
|
||||
{
|
||||
new Version(4, 0, 0, 0),
|
||||
new Version(4, 0, 0, 0),
|
||||
new Version(4, 0, 0, 0),
|
||||
new Version(/*VB*/10, 0, 0, 0),
|
||||
};
|
||||
|
||||
var reader = MetadataReaderTests.GetMetadataReader(NetModule.AppCS);
|
||||
|
||||
int i = 0;
|
||||
foreach (var assemblyRefHandle in reader.AssemblyReferences)
|
||||
{
|
||||
var assemblyRef = reader.GetAssemblyReference(assemblyRefHandle);
|
||||
var assemblyDef = reader.GetAssemblyDefinition();
|
||||
var assemblyName = assemblyRef.GetAssemblyName();
|
||||
|
||||
// Validate against input assembly
|
||||
Assert.Equal(expRefs[i], assemblyName.Name);
|
||||
Assert.Equal(expVers[i], assemblyName.Version);
|
||||
Assert.Equal(expKeys[i], assemblyName.GetPublicKeyToken());
|
||||
Assert.Null(assemblyName.CultureName);
|
||||
Assert.Equal(Configuration.Assemblies.AssemblyHashAlgorithm.None, assemblyName.HashAlgorithm);
|
||||
Assert.Null(assemblyName.GetPublicKey());
|
||||
Assert.Equal(AssemblyNameFlags.None, assemblyName.Flags);
|
||||
Assert.Equal(AssemblyContentType.Default, assemblyName.ContentType);
|
||||
|
||||
// Validate against AssemblyRefernce
|
||||
ValidateReferenceAssemblyNameAgainst(assemblyName, reader, assemblyRef);
|
||||
|
||||
// Validate against AssemblyDefinition
|
||||
ValidateReferenceAssemblyNameAgainst(assemblyName, reader, assemblyDef);
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
private void ValidateReferenceAssemblyNameAgainst(AssemblyName assemblyName, MetadataReader reader, AssemblyReference assemblyRef)
|
||||
{
|
||||
Assert.Equal(reader.GetString(assemblyRef.Name), assemblyName.Name);
|
||||
Assert.Equal(assemblyRef.Version, assemblyName.Version);
|
||||
Assert.Equal(reader.GetBlobBytes(assemblyRef.PublicKeyOrToken), assemblyName.GetPublicKeyToken());
|
||||
}
|
||||
|
||||
private void ValidateReferenceAssemblyNameAgainst(AssemblyName assemblyName, MetadataReader reader, AssemblyDefinition assemblyDef)
|
||||
{
|
||||
Assert.NotEqual(reader.GetString(assemblyDef.Name), assemblyName.Name);
|
||||
Assert.NotEqual(assemblyDef.Version, assemblyName.Version);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
// csc /target:library /debug:full Debug.cs
|
||||
|
||||
public class C
|
||||
{
|
||||
public static void Main() { }
|
||||
}
|
||||
@@ -26,6 +26,7 @@ namespace System.Reflection.Metadata.Tests
|
||||
public static readonly byte[] Debug = ResourceHelper.GetResource("Misc.Debug.dll");
|
||||
public static readonly byte[] KeyPair = ResourceHelper.GetResource("Misc.KeyPair.snk");
|
||||
public static readonly byte[] Signed = ResourceHelper.GetResource("Misc.Signed.exe");
|
||||
public static readonly byte[] Satellite = ResourceHelper.GetResource("Misc.SatelliteAssembly.resources.dll");
|
||||
|
||||
public static readonly byte[] KeyPair_PublicKey = new byte[]
|
||||
{
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
<Compile Include="Metadata\Ecma335\MetadataRootBuilderTests.cs" />
|
||||
<Compile Include="Metadata\Ecma335\PortablePdbBuilderTests.cs" />
|
||||
<Compile Include="Metadata\LargeTablesAndHeapsTests.cs" />
|
||||
<Compile Include="Metadata\TypeSystem\AssemblyDefinitionTests.cs" />
|
||||
<Compile Include="Metadata\TypeSystem\AssemblyReferenceTests.cs" />
|
||||
<Compile Include="Metadata\TypeSystem\ClassLayoutRow.cs" />
|
||||
<Compile Include="Metadata\Decoding\CustomAttributeDecoderTests.cs" />
|
||||
<Compile Include="Metadata\Decoding\DisassemblingTypeProvider.cs" />
|
||||
@@ -130,14 +132,16 @@
|
||||
<EmbeddedResource Include="Resources\PortablePdbs\Documents.Embedded.dll" />
|
||||
<None Include="Resources\PortablePdbs\Documents.cmd" />
|
||||
<None Include="Resources\PortablePdbs\Documents.cs" />
|
||||
<None Include="Resources\Misc\SatelliteAssembly.resources.cs" />
|
||||
<EmbeddedResource Include="Resources\Misc\SatelliteAssembly.resources.dll" />
|
||||
<None Include="Resources\Misc\Signed.cmd" />
|
||||
<None Include="Resources\Misc\Signed.cs" />
|
||||
<EmbeddedResource Include="Resources\Misc\Signed.exe" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ItemGroup>
|
||||
<!-- Some internal types are needed, so we reference the implementation assembly, rather than the reference assembly. -->
|
||||
<TargetingPackExclusions Include="System.Reflection.Metadata" />
|
||||
<ReferenceFromRuntime Include="System.Reflection.Metadata" />
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user