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:
Diffstat (limited to 'Test/Mono.Cecil.Tests')
-rw-r--r--Test/Mono.Cecil.Tests/ILProcessorTests.cs85
1 files changed, 48 insertions, 37 deletions
diff --git a/Test/Mono.Cecil.Tests/ILProcessorTests.cs b/Test/Mono.Cecil.Tests/ILProcessorTests.cs
index c585403..c1dc13c 100644
--- a/Test/Mono.Cecil.Tests/ILProcessorTests.cs
+++ b/Test/Mono.Cecil.Tests/ILProcessorTests.cs
@@ -152,16 +152,18 @@ namespace Mono.Cecil.Tests {
AssertOpCodeSequence (new OpCode[] { }, method);
}
- [TestCase (RoundtripType.None, false, false)]
- [TestCase (RoundtripType.Pdb, false, false)]
- [TestCase (RoundtripType.Pdb, true, false)]
- [TestCase (RoundtripType.Pdb, true, true)]
- [TestCase (RoundtripType.PortablePdb, false, false)]
- [TestCase (RoundtripType.PortablePdb, true, false)]
- [TestCase (RoundtripType.PortablePdb, true, true)]
- public void InsertAfterWithSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes)
+ [TestCase (RoundtripType.None, false, false, false)]
+ [TestCase (RoundtripType.Pdb, false, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, true)]
+ [TestCase (RoundtripType.Pdb, true, true, false)]
+ [TestCase (RoundtripType.PortablePdb, false, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, true)]
+ [TestCase (RoundtripType.PortablePdb, true, true, false)]
+ public void InsertAfterWithSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes, bool padIL)
{
- var methodBody = CreateTestMethodWithLocalScopes ();
+ var methodBody = CreateTestMethodWithLocalScopes (padIL);
methodBody = RoundtripMethodBody (methodBody, roundtripType, forceUnresolved, reverseScopes);
var il = methodBody.GetILProcessor ();
@@ -176,16 +178,18 @@ namespace Mono.Cecil.Tests {
methodBody.Method.Module.Dispose ();
}
- [TestCase (RoundtripType.None, false, false)]
- [TestCase (RoundtripType.Pdb, false, false)]
- [TestCase (RoundtripType.Pdb, true, false)]
- [TestCase (RoundtripType.Pdb, true, true)]
- [TestCase (RoundtripType.PortablePdb, false, false)]
- [TestCase (RoundtripType.PortablePdb, true, false)]
- [TestCase (RoundtripType.PortablePdb, true, true)]
- public void RemoveWithSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes)
+ [TestCase (RoundtripType.None, false, false, false)]
+ [TestCase (RoundtripType.Pdb, false, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, true)]
+ [TestCase (RoundtripType.Pdb, true, true, false)]
+ [TestCase (RoundtripType.PortablePdb, false, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, true)]
+ [TestCase (RoundtripType.PortablePdb, true, true, false)]
+ public void RemoveWithSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes, bool padIL)
{
- var methodBody = CreateTestMethodWithLocalScopes ();
+ var methodBody = CreateTestMethodWithLocalScopes (padIL);
methodBody = RoundtripMethodBody (methodBody, roundtripType, forceUnresolved, reverseScopes);
var il = methodBody.GetILProcessor ();
@@ -200,16 +204,18 @@ namespace Mono.Cecil.Tests {
methodBody.Method.Module.Dispose ();
}
- [TestCase (RoundtripType.None, false, false)]
- [TestCase (RoundtripType.Pdb, false, false)]
- [TestCase (RoundtripType.Pdb, true, false)]
- [TestCase (RoundtripType.Pdb, true, true)]
- [TestCase (RoundtripType.PortablePdb, false, false)]
- [TestCase (RoundtripType.PortablePdb, true, false)]
- [TestCase (RoundtripType.PortablePdb, true, true)]
- public void ReplaceWithSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes)
+ [TestCase (RoundtripType.None, false, false, false)]
+ [TestCase (RoundtripType.Pdb, false, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, true)]
+ [TestCase (RoundtripType.Pdb, true, true, false)]
+ [TestCase (RoundtripType.PortablePdb, false, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, true)]
+ [TestCase (RoundtripType.PortablePdb, true, true, false)]
+ public void ReplaceWithSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes, bool padIL)
{
- var methodBody = CreateTestMethodWithLocalScopes ();
+ var methodBody = CreateTestMethodWithLocalScopes (padIL);
methodBody = RoundtripMethodBody (methodBody, roundtripType, forceUnresolved, reverseScopes);
var il = methodBody.GetILProcessor ();
@@ -224,16 +230,18 @@ namespace Mono.Cecil.Tests {
methodBody.Method.Module.Dispose ();
}
- [TestCase (RoundtripType.None, false, false)]
- [TestCase (RoundtripType.Pdb, false, false)]
- [TestCase (RoundtripType.Pdb, true, false)]
- [TestCase (RoundtripType.Pdb, true, true)]
- [TestCase (RoundtripType.PortablePdb, false, false)]
- [TestCase (RoundtripType.PortablePdb, true, false)]
- [TestCase (RoundtripType.PortablePdb, true, true)]
- public void EditBodyWithScopesAndSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes)
+ [TestCase (RoundtripType.None, false, false, false)]
+ [TestCase (RoundtripType.Pdb, false, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, false)]
+ [TestCase (RoundtripType.Pdb, true, false, true)]
+ [TestCase (RoundtripType.Pdb, true, true, false)]
+ [TestCase (RoundtripType.PortablePdb, false, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, false)]
+ [TestCase (RoundtripType.PortablePdb, true, false, true)]
+ [TestCase (RoundtripType.PortablePdb, true, true, false)]
+ public void EditBodyWithScopesAndSymbolRoundtrip (RoundtripType roundtripType, bool forceUnresolved, bool reverseScopes, bool padIL)
{
- var methodBody = CreateTestMethodWithLocalScopes ();
+ var methodBody = CreateTestMethodWithLocalScopes (padIL);
methodBody = RoundtripMethodBody (methodBody, roundtripType, forceUnresolved, reverseScopes);
var il = methodBody.GetILProcessor ();
@@ -320,13 +328,16 @@ namespace Mono.Cecil.Tests {
Assert.IsTrue (scope.End.IsEndOfMethod);
}
- static MethodBody CreateTestMethodWithLocalScopes ()
+ static MethodBody CreateTestMethodWithLocalScopes (bool padILWithNulls)
{
var module = ModuleDefinition.CreateModule ("TestILProcessor", ModuleKind.Dll);
var type = new TypeDefinition ("NS", "TestType", TypeAttributes.Public | TypeAttributes.Abstract | TypeAttributes.Sealed, module.ImportReference (typeof (object)));
module.Types.Add (type);
var methodBody = CreateTestMethod (OpCodes.Nop, OpCodes.Ldloc_0, OpCodes.Nop, OpCodes.Ldloc_1, OpCodes.Nop, OpCodes.Ldloc_2, OpCodes.Nop);
+ if (padILWithNulls)
+ methodBody.Instructions.Capacity += 10;
+
var method = methodBody.Method;
method.ReturnType = module.ImportReference (typeof (void));
type.Methods.Add (method);