New tests.
authorMarek Safar <marek.safar@gmail.com>
Fri, 29 May 2009 19:44:21 +0000 (19:44 -0000)
committerMarek Safar <marek.safar@gmail.com>
Fri, 29 May 2009 19:44:21 +0000 (19:44 -0000)
svn path=/trunk/mcs/; revision=135080

mcs/tests/Makefile
mcs/tests/gtest-variance-6.cs [new file with mode: 0644]
mcs/tests/gtest-variance-7.cs [new file with mode: 0644]
mcs/tests/known-issues-gmcs
mcs/tests/ver-il-gmcs.xml

index c8a7487243641ed5312432085428932273c9a633..37973b672f3b22de5a1e94919913d01d4dece342 100644 (file)
@@ -91,11 +91,16 @@ check: run-test
 run-test-local: $(TEST_ILS:.il=.dll) eval-test
        $(TESTER) -mode:pos -files:$(TEST_PATTERN) -compiler:$(COMPILER) -issues:known-issues-$(COMPILER_NAME) -log:$(COMPILER_NAME).log $(TOPTIONS)
 
-# Temporary testing target
+# Temporary testing targets
 cecil:
        rm -f *.mdb
        $(TESTER) -mode:pos -files:'test-*.cs' -compiler:gmcs.exe -issues:known-issues-$(COMPILER_NAME) -log:$(COMPILER_NAME).log -verbose
 
+cecil2:
+       rm -f *.mdb
+       $(TESTER) -mode:pos -files:'*test-*.cs' -compiler:gmcs.exe -issues:known-issues-$(COMPILER_NAME) -log:$(COMPILER_NAME).log -verbose
+# End  
+
 test-everything:
        $(MAKE) PROFILE=net_1_1 run-test
        $(MAKE) PROFILE=net_2_0 run-test
diff --git a/mcs/tests/gtest-variance-6.cs b/mcs/tests/gtest-variance-6.cs
new file mode 100644 (file)
index 0000000..d153f00
--- /dev/null
@@ -0,0 +1,32 @@
+// Compiler options: -langversion:future
+
+interface ICovariant<out T> { }
+interface IContravariant<in T> { }
+
+delegate ICovariant<U> Cov1<out U> (IContravariant<U> x);
+delegate ICovariant<U> Cov2<out U> (IContravariant<ICovariant<U>> x);
+delegate ICovariant<IContravariant<IContravariant<U>>> Cov3<out U> (IContravariant<IContravariant<IContravariant<ICovariant<U>>>> x);
+delegate ICovariant<int> Cov4<out U> ();
+delegate IContravariant<int> Cov5<out U> ();
+
+delegate IContravariant<U[]> Contra5<in U> (U u, ICovariant<U> x);
+delegate IContravariant<U[]> Contra6<in U> ();
+delegate IContravariant<U> Contra7<in U> (U u, ICovariant<U> x);
+delegate IContravariant<ICovariant<U>> Contra8<in U> (U u, ICovariant<U> x);
+
+interface ITest_1<out T>
+{
+       ICovariant<T> CovariantHandler (IContravariant<T> x);
+}
+
+interface ITest_2<in T>
+{
+       IContravariant<T> CovariantHandler (ICovariant<T> x);
+}
+
+class Program
+{
+       static void Main ()
+       {
+       }
+}
diff --git a/mcs/tests/gtest-variance-7.cs b/mcs/tests/gtest-variance-7.cs
new file mode 100644 (file)
index 0000000..3c075bd
--- /dev/null
@@ -0,0 +1,26 @@
+// Compiler options: -langversion:future
+
+delegate T Covariant<out T> ();
+delegate void Contra<in T> (T t);
+delegate TR CoContra<out TR, in T> (T t);
+delegate void None<T> (T t);
+
+delegate Covariant<Contra<Contra<Covariant<Covariant<Covariant<Covariant<Covariant<U>>>>>>>> Test<out U> ();
+delegate Contra<Covariant<Contra<Contra<Covariant<Covariant<Covariant<Covariant<Covariant<U>>>>>>>>> Test2<in U> ();
+delegate Contra<Contra<Covariant<Covariant<Covariant<Covariant<Contra<Contra<U>>>>>>>> Test3<out U> ();
+delegate Contra<Contra<Covariant<Covariant<Contra<Contra<Contra<Contra<U>>>>>>>> Test4<out U> ();
+delegate Contra<Contra<Covariant<Covariant<Contra<Contra<Contra<U>>>>>>> Test5<in U> ();
+delegate void Test6<in U> (Covariant<Contra<Contra<Covariant<Covariant<Covariant<Covariant<Covariant<U>>>>>>>> t);
+
+delegate void Both<in U, out V> (CoContra<U, V> p);
+delegate void Both2<in U, out V> (CoContra<U, Contra<U>> p);
+delegate void Both3<in U, out V> (CoContra<U, Contra<int>> p);
+delegate void Both4<in U, out V> (Both<V, U> b);
+delegate void Both5<in U, out V> (Both<V, int> b);
+
+class C
+{
+       public static void Main ()
+       {
+       }
+}
\ No newline at end of file
index 77dc3395876b9b48abdadd0dd3687ca336592412..0d3ad8cde1dbe216ac3c238f841270e573b7a1c3 100644 (file)
@@ -13,8 +13,8 @@ gtest-443.cs # see #487738.  This is expected to fail until the generated IL is
 
 gtest-variance-1.cs IGNORE     # Runtime support for variance is not yet in place
 gtest-variance-2.cs IGNORE 
-gtest-variance-3.cs IGNORE
-gtest-variance-4.cs IGNORE
+gtest-variance-3.cs
+gtest-variance-4.cs
 gtest-variance-5.cs IGNORE
 
 test-704.cs IGNORE #472845
index c16f66a65a01419a5daf8773a37824022d275f92..3be66cef5904b4aad873e8ea9eeac9c7a91e755a 100644 (file)
       </method>
     </type>
   </test>
+  <test name="gtest-variance-6.cs">
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Cov1`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov2`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov3`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov4`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra6`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra7`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra8`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-7.cs">
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Covariant`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="T Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(T)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CoContra`2[TR,T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="TR Invoke(T)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="TR EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="None`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(T)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test2`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test3`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test4`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test6`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(CoContra`2[U,V])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(CoContra`2[U,V], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both2`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(CoContra`2[U,Contra`1[U]])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[U]], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both3`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(CoContra`2[U,Contra`1[System.Int32]])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[System.Int32]], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both4`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(Both`2[V,U])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Both`2[V,U], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both5`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(Both`2[V,System.Int32])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Both`2[V,System.Int32], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
   <test name="ltest-01.cs">
     <type name="X">
       <method name="Void .ctor(Int32)">