diff options
-rw-r--r-- | test/Mono.Linker.Tests/TestCasesRunner/AssemblyChecker.cs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/test/Mono.Linker.Tests/TestCasesRunner/AssemblyChecker.cs b/test/Mono.Linker.Tests/TestCasesRunner/AssemblyChecker.cs index a8b0ae06d..fcd8572fa 100644 --- a/test/Mono.Linker.Tests/TestCasesRunner/AssemblyChecker.cs +++ b/test/Mono.Linker.Tests/TestCasesRunner/AssemblyChecker.cs @@ -579,10 +579,22 @@ namespace Mono.Linker.Tests.TestCasesRunner void VerifyResources (AssemblyDefinition original, AssemblyDefinition linked) { - var expectedResources = original.MainModule.AllDefinedTypes () - .SelectMany (t => GetCustomAttributeCtorValues<string> (t, nameof (KeptResourceAttribute))); + var expectedResourceNames = original.MainModule.AllDefinedTypes () + .SelectMany (t => GetCustomAttributeCtorValues<string> (t, nameof (KeptResourceAttribute))) + .ToList (); + + foreach (var resource in linked.MainModule.Resources) { + if (!expectedResourceNames.Remove (resource.Name)) + Assert.Fail ($"Resource '{resource.Name}' should be removed."); + + EmbeddedResource embeddedResource = (EmbeddedResource) resource; + + var expectedResource = (EmbeddedResource) original.MainModule.Resources.First (r => r.Name == resource.Name); + + Assert.That (embeddedResource.GetResourceData (), Is.EquivalentTo (expectedResource.GetResourceData ()), $"Resource '{resource.Name}' data doesn't match."); + } - Assert.That (linked.MainModule.Resources.Select (r => r.Name), Is.EquivalentTo (expectedResources)); + Assert.IsEmpty (expectedResourceNames, $"Resource '{expectedResourceNames.FirstOrDefault ()}' should be kept."); } void VerifyExportedTypes (AssemblyDefinition original, AssemblyDefinition linked) |