Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@ -214,7 +214,6 @@ namespace MonoTests.System.Reflection.Emit
}
// fail on MS .NET 1.1
#if NET_2_0
TypeBuilder tb = mb.DefineType ("ITest2", TypeAttributes.Interface,
typeof (object));
Assert.AreEqual (typeof (object), tb.BaseType, "#C1");
@ -222,13 +221,9 @@ namespace MonoTests.System.Reflection.Emit
tb = mb.DefineType ("ITest3", TypeAttributes.Interface,
typeof (IDisposable));
Assert.AreEqual (typeof (IDisposable), tb.BaseType, "#D1");
#endif
}
[Test]
#if ONLY_1_1
[Category ("NotDotNet")] // Parent type was not extensible by the given type
#endif
public void DefineType_Parent_Interface ()
{
TypeBuilder tb;
@ -304,7 +299,6 @@ namespace MonoTests.System.Reflection.Emit
Assert.AreEqual (s1.GetValue (i), s2.GetValue (i), "#2: " + i);
}
#if NET_2_0
[Test]
public void ResolveFieldTokenFieldBuilder ()
{
@ -366,6 +360,32 @@ namespace MonoTests.System.Reflection.Emit
Assert.AreEqual ("Frub", mi.Name);
}
[Test]
public void GetMethodTokenCrossMethodBuilders ()
{
AssemblyBuilder ab = genAssembly ();
ModuleBuilder moduleb = ab.DefineDynamicModule ("foo.dll", "foo.dll");
TypeBuilder tb = moduleb.DefineType ("foo");
MethodBuilder mb = tb.DefineMethod("Frub", MethodAttributes.Static, null, new Type[] { typeof(IntPtr) });
int tok = mb.GetToken().Token;
mb.SetImplementationFlags(MethodImplAttributes.NoInlining);
ILGenerator ilgen = mb.GetILGenerator();
ilgen.Emit(OpCodes.Ret);
tb.CreateType ();
var mi = (MethodInfo) moduleb.ResolveMember (tok);
Assert.IsNotNull (mi);
ModuleBuilder moduleb2 = ab.DefineDynamicModule ("foo2.dll", "foo2.dll");
var tok2 = moduleb2.GetMethodToken (mi).Token;
MethodBase mi2 = moduleb.ResolveMethod (tok2);
Assert.IsNotNull (mi2);
Assert.AreEqual ("Frub", mi.Name);
}
[Test]
public void ResolveMemberField ()
{
@ -564,7 +584,6 @@ namespace MonoTests.System.Reflection.Emit
Assert.AreEqual (typeof (string), resolved_method.GetParameters () [0].ParameterType);
Assert.AreEqual (typeof (int), resolved_method.GetParameters () [1].ParameterType);
}
#endif
[Test]
public void GetTypes ()
@ -586,9 +605,7 @@ namespace MonoTests.System.Reflection.Emit
}
[Test] // GetTypeToken (Type)
#if NET_2_0
[Category ("NotDotNet")] // http://support.microsoft.com/kb/950986
#endif
public void GetTypeToken2_Type_Array ()
{
Type type;
@ -602,21 +619,15 @@ namespace MonoTests.System.Reflection.Emit
type = typeof (object []);
typeToken = mb.GetTypeToken (type);
#if NET_2_0
Assert.IsFalse (typeToken == TypeToken.Empty, "#A1");
resolved_type = mb.ResolveType (typeToken.Token);
Assert.AreEqual (type, resolved_type, "#A2");
#else
Assert.IsFalse (typeToken.Token == TypeToken.Empty.Token, "#A1");
#endif
#if NET_2_0
type = typeof (object).MakeArrayType ();
typeToken = mb.GetTypeToken (type);
Assert.IsFalse (typeToken == TypeToken.Empty, "#B1");
resolved_type = mb.ResolveType (typeToken.Token);
Assert.AreEqual (type, resolved_type, "#B2");
#endif
}
[Test] // GetTypeToken (Type)
@ -628,16 +639,11 @@ namespace MonoTests.System.Reflection.Emit
ModuleBuilder mb = ab.DefineDynamicModule ("MyModule");
Type type = typeof (string);
TypeToken typeToken = mb.GetTypeToken (type);
#if NET_2_0
Assert.IsFalse (typeToken == TypeToken.Empty, "#1");
Type resolved_type = mb.ResolveType (typeToken.Token);
Assert.AreEqual (type, resolved_type, "#2");
#else
Assert.IsFalse (typeToken.Token == TypeToken.Empty.Token, "#1");
#endif
}
#if NET_2_0
[Test] // bug #471302
public void ModuleBuilder_ModuleVersionId ()
{
@ -649,7 +655,6 @@ namespace MonoTests.System.Reflection.Emit
Assert.AreNotEqual (new Guid (), module.ModuleVersionId);
}
#endif
[Test]
public void GetType_String_Null ()