2008-11-11 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Tue, 11 Nov 2008 17:15:57 +0000 (17:15 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Tue, 11 Nov 2008 17:15:57 +0000 (17:15 -0000)
* ConstructorOnTypeBuilderInstTest.cs: Add test for
MetadataToken under compilation context.

Backported from trunk.

svn path=/branches/mono-2-2/mcs/; revision=118519

mcs/class/corlib/Test/System.Reflection.Emit/ChangeLog
mcs/class/corlib/Test/System.Reflection.Emit/ConstructorOnTypeBuilderInstTest.cs

index 61befc92646f33b2b8a00ee2a19e74cb29acef56..6d8a58915748151d80e66fbb7f657502b44815ad 100644 (file)
@@ -1,3 +1,10 @@
+2008-11-11 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * ConstructorOnTypeBuilderInstTest.cs: Add test for
+       MetadataToken under compilation context.
+
+       Backported from trunk.
+
 2008-09-29 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * TypeBuilderTest.cs: Fix the 1.0 build.
index 5f45f0292a647fe0e4438c30c97ad6a242b20676..0f0b717fd99d0668b9b5cc0db6fc89c5c581728f 100644 (file)
@@ -46,17 +46,23 @@ namespace MonoTests.System.Reflection.Emit
                private AssemblyBuilder assembly;
                private ModuleBuilder module;
                private Type typeBarOfInt32;
+               private ConstructorBuilder cb;
                private ConstructorInfo ci;
                private TypeBuilder tb;
 
                [SetUp]
                public void SetUp ()
+               {
+                       SetUp (AssemblyBuilderAccess.RunAndSave);
+               }
+               
+               void SetUp (AssemblyBuilderAccess access)
                {
                        AssemblyName assemblyName = new AssemblyName ();
                        assemblyName.Name = ASSEMBLY_NAME;
 
                        assembly = AppDomain.CurrentDomain.DefineDynamicAssembly (
-                               assemblyName, AssemblyBuilderAccess.RunAndSave,
+                               assemblyName, access,
                                Path.GetTempPath ());
 
                        module = assembly.DefineDynamicModule ("module1");
@@ -64,7 +70,7 @@ namespace MonoTests.System.Reflection.Emit
                        tb = module.DefineType ("Bar");
                        GenericTypeParameterBuilder [] typeParams = tb.DefineGenericParameters ("T");
 
-                       ConstructorBuilder cb = tb.DefineConstructor (MethodAttributes.Public,
+                       cb = tb.DefineConstructor (MethodAttributes.Public,
                                CallingConventions.Standard,
                                new Type [] { typeof (string), typeof (int) });
                        ILGenerator ig = cb.GetILGenerator ();
@@ -443,6 +449,16 @@ namespace MonoTests.System.Reflection.Emit
                        tb.CreateType ();
                        Assert.AreSame (typeBarOfInt32, ci.ReflectedType, "#2");
                }
+
+               [Test]
+               [Category ("NotDotNet")]
+               public void MetadataTokenWorksUnderCompilerContext  ()
+               {
+                       SetUp (AssemblyBuilderAccess.RunAndSave | (AssemblyBuilderAccess)0x800);
+                       int cb_token = cb.MetadataToken;
+                       int inst_token = ci.MetadataToken;
+                       Assert.AreEqual (cb_token, inst_token, "#1");
+               }
        }
 }