}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Name_Null ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Name_Empty ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Name_NullChar ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_InterfaceNotAbstract ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
-#if ONLY_1_1
- [Category ("NotDotNet")] // Parent type was not extensible by the given type
-#endif
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Parent_Interface ()
{
TypeBuilder tb;
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
+ public void DefineType_TypeSize ()
+ {
+ AssemblyBuilder ab = genAssembly ();
+ ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+
+ TypeBuilder tb = mb.DefineType ("Foo", TypeAttributes.Public | TypeAttributes.Sealed | TypeAttributes.SequentialLayout,
+ typeof (ValueType), 1);
+ Assert.AreEqual (1, tb.Size);
+ }
+
+ [Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
[ExpectedException (typeof (ArgumentException))]
public void DuplicateTypeName () {
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DuplicateSymbolDocument ()
{
AssemblyBuilder ab = genAssembly ();
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 ()
{
catch (ArgumentException) {
}
}
+
+ [Test]
+ public void GetMethodTokenNullParam ()
+ {
+ AssemblyName an = genAssemblyName ();
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+ ModuleBuilder module = ab.DefineDynamicModule ("mod");
+
+ var method = typeof (object).GetMethod ("GetType");
+
+ // ArgumentNullException should not occur.
+ module.GetMethodToken (method, null);
+ }
+
+ [Test]
+ public void GetConstructorTokenNullParam ()
+ {
+ AssemblyName an = genAssemblyName ();
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+ ModuleBuilder module = ab.DefineDynamicModule ("mod");
+
+ var method = typeof (object).GetConstructor (Type.EmptyTypes);
+
+ // ArgumentNullException should not occur.
+ module.GetConstructorToken (method, null);
+ }
}
}