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

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJb Evain <jb@evain.net>2019-01-31 02:20:05 +0300
committerJb Evain <jb@evain.net>2019-01-31 02:20:05 +0300
commit5c32a928c423e504ab0693dad22dd07f16054f1d (patch)
tree2f47e37b99d3c5d05d976e3794b93ad25b6e5d1b /Test/Mono.Cecil.Tests
parent0f2d1802f526c420f68708c3e988f9d90282901a (diff)
Add tests verifying we preserve the order of metadata elements
Diffstat (limited to 'Test/Mono.Cecil.Tests')
-rw-r--r--Test/Mono.Cecil.Tests/CustomAttributesTests.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/Test/Mono.Cecil.Tests/CustomAttributesTests.cs b/Test/Mono.Cecil.Tests/CustomAttributesTests.cs
index db28ab5..970b3aa 100644
--- a/Test/Mono.Cecil.Tests/CustomAttributesTests.cs
+++ b/Test/Mono.Cecil.Tests/CustomAttributesTests.cs
@@ -464,6 +464,35 @@ namespace Mono.Cecil.Tests {
});
}
+ [Test]
+ public void OrderedAttributes ()
+ {
+ TestModule ("ordered-attrs.exe", module => {
+ var type = module.GetType ("Program");
+ var method = type.GetMethod ("Main");
+ var attributes = method.CustomAttributes;
+ Assert.AreEqual (6, attributes.Count);
+
+ Assert.AreEqual ("AAttribute", attributes [0].AttributeType.Name);
+ Assert.AreEqual ("Main.A1", attributes [0].Fields [0].Argument.Value as string);
+
+ Assert.AreEqual ("AAttribute", attributes [1].AttributeType.Name);
+ Assert.AreEqual ("Main.A2", attributes [1].Fields [0].Argument.Value as string);
+
+ Assert.AreEqual ("BAttribute", attributes [2].AttributeType.Name);
+ Assert.AreEqual ("Main.B1", attributes [2].Fields [0].Argument.Value as string);
+
+ Assert.AreEqual ("AAttribute", attributes [3].AttributeType.Name);
+ Assert.AreEqual ("Main.A3", attributes [3].Fields [0].Argument.Value as string);
+
+ Assert.AreEqual ("BAttribute", attributes [4].AttributeType.Name);
+ Assert.AreEqual ("Main.B2", attributes [4].Fields [0].Argument.Value as string);
+
+ Assert.AreEqual ("BAttribute", attributes [5].AttributeType.Name);
+ Assert.AreEqual ("Main.B3", attributes [5].Fields [0].Argument.Value as string);
+ });
+ }
+
#if !READ_ONLY
[Test]
public void DefineCustomAttributeFromBlob ()