Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Mono.Linker.Tests/TestCasesRunner/AssemblyChecker.cs18
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)