You've already forked linux-packaging-mono
Imported Upstream version 4.3.2.467
Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
@ -728,5 +728,71 @@ namespace MonoTests.System.Reflection.Emit
|
||||
catch (ArgumentException) {
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetType_Escaped_Chars ()
|
||||
{
|
||||
AssemblyName an = genAssemblyName ();
|
||||
AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
|
||||
ModuleBuilder module = ab.DefineDynamicModule ("mod");
|
||||
|
||||
var tb = module.DefineType ("NameSpace,+*&[]\\.Type,+*&[]\\",
|
||||
TypeAttributes.Class | TypeAttributes.Public);
|
||||
|
||||
var nestedTb = tb.DefineNestedType ("Nested,+*&[]\\",
|
||||
TypeAttributes.Class | TypeAttributes.NestedPublic);
|
||||
|
||||
var escapedOuterName =
|
||||
"NameSpace\\,\\+\\*\\&\\[\\]\\\\"
|
||||
+ "."
|
||||
+ "Type\\,\\+\\*\\&\\[\\]\\\\";
|
||||
|
||||
var escapedNestedName =
|
||||
escapedOuterName
|
||||
+ "+"
|
||||
+ "Nested\\,\\+\\*\\&\\[\\]\\\\";
|
||||
|
||||
Assert.AreEqual (escapedOuterName, tb.FullName);
|
||||
Assert.AreEqual (escapedNestedName, nestedTb.FullName);
|
||||
|
||||
Type outerCreatedTy = tb.CreateType ();
|
||||
Type nestedCreatedTy = nestedTb.CreateType ();
|
||||
Type outerTy = module.GetType (escapedOuterName);
|
||||
Type nestedTy = module.GetType (escapedNestedName);
|
||||
|
||||
Assert.IsNotNull (outerTy, "A");
|
||||
Assert.IsNotNull (nestedTy, "B");
|
||||
Assert.AreEqual (escapedNestedName, nestedTy.FullName);
|
||||
|
||||
|
||||
Assert.AreEqual (nestedCreatedTy, nestedTy);
|
||||
|
||||
}
|
||||
|
||||
[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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user