Merge pull request #5198 from BrzVlad/fix-binprot-stats
[mono.git] / mcs / tests / dtest-001.cs
index 91754535a461fabc696e47b34f20c56b7576e9e6..78de1d8253d0238728d07127d8fd5d831fe27c7b 100644 (file)
@@ -8,7 +8,15 @@ using System.Runtime.CompilerServices;
 using System.Collections.Generic;
 using System.Linq;
 
-class C
+interface I<T>
+{
+}
+
+class B<T>
+{
+}
+
+class C : B<dynamic>
 {
        public C (dynamic d)
        {
@@ -31,6 +39,8 @@ class C
        public dynamic[] t;
        public dynamic[,] t2;
        public Func<dynamic, int, dynamic[]> v;
+       public I<dynamic>[] iface;
+       public Action<int[], object, dynamic> d2;
 }
 
 delegate dynamic Del (dynamic d);
@@ -102,6 +112,9 @@ class Test
                if (t.GetConstructors ()[0].GetCustomAttributes (ca, false).Length != 0)
                        return 21;
 
+               if (t.GetCustomAttributes (ca, false).Length != 1)
+                       return 22;
+
                // Transformations
                DynamicAttribute da;
                da = t.GetMember ("t")[0].GetCustomAttributes (ca, false)[0] as DynamicAttribute;
@@ -118,12 +131,23 @@ class Test
                if (!da.TransformFlags.SequenceEqual (new bool[] { false, true }))
                        return 43;
 
-// FIXME
-//             da = t.GetMember ("v")[0].GetCustomAttributes (ca, false)[0] as DynamicAttribute;
-//             if (da == null)
-//                     return 44;
-//             if (!da.TransformFlags.SequenceEqual (new bool[] { false, true, false, false, true }))
-//                     return 45;
+               da = t.GetMember ("v")[0].GetCustomAttributes (ca, false)[0] as DynamicAttribute;
+               if (da == null)
+                       return 44;
+               if (!da.TransformFlags.SequenceEqual (new bool[] { false, true, false, false, true }))
+                       return 45;
+               
+               da = t.GetMember ("iface")[0].GetCustomAttributes (ca, false)[0] as DynamicAttribute;
+               if (da == null)
+                       return 46;
+               if (!da.TransformFlags.SequenceEqual (new bool[] { false, false, true }))
+                       return 47;
+
+               da = t.GetMember ("d2")[0].GetCustomAttributes (ca, false)[0] as DynamicAttribute;
+               if (da == null)
+                       return 48;
+               if (!da.TransformFlags.SequenceEqual (new bool[] { false, false, false, false, true }))
+                       return 49;
 
                t = typeof (Del);