bug #80646
[mono.git] / mcs / tests / README.tests
index 72b0d7a1b7144d4672c16308ced492af1f59490c..65bc2a6f9614dd6f8a1941fff8f4dd6d4b0e32e9 100644 (file)
@@ -1,9 +1,9 @@
 Test cases listed by Category:
 ==============================
 
-* Binary operators
+* Operators
 
-  test-146.cs test-175.cs
+  test-146.cs test-175.cs test-200.cs test-204.cs
 
 * Overloading
 
@@ -15,11 +15,12 @@ Test cases listed by Category:
 
 * Indexers and Properties
 
-  test-148.cs test-166.cs
+  test-148.cs test-166.cs test-206.cs test-208.cs test-209.cs
+  test-221.cs test-236.cs
 
 * Events and Delegates
 
-  test-149.cs test-164.cs verify-3.cs
+  test-149.cs test-164.cs test-237.cs verify-3.cs
 
 * Constant Folding
 
@@ -27,15 +28,15 @@ Test cases listed by Category:
 
 * Switch blocks
 
-  test-152.cs test-193.cs verify-4.cs
+  test-152.cs test-193.cs test-234.cs verify-4.cs
 
 * Member Access & Simple Names
 
   test-151.cs test-159.cs test-160.cs test-161.cs test-190.cs
 
-* Invocation
+* Invocation and Casts
 
-  test-153.cs test-163.c
+  test-153.cs test-163.c test-207.cs test-210.cs test-211.cs test-223.cs
 
 * Flow Analysis
 
@@ -47,11 +48,11 @@ Test cases listed by Category:
 
 * Attributes
 
-  test-157.cs test-158.cs test-177.cs 
+  test-157.cs test-158.cs test-177.cs test-230.cs test-238.cs test-239.cs test-240.cs
 
 * Arrays and array creation
 
-  test-165.cs, test-167.cs
+  test-165.cs, test-167.cs, test-232.cs
 
 * Labels and goto
 
@@ -61,9 +62,18 @@ Test cases listed by Category:
 
   verify-6.cs
 
+* Type resolution and name lookup
+
+  test-198.cs test-201.cs test-202.cs test-203.cs test-214.cs
+
 Test cases listed by Number:
 ============================
 
+test-91.cs
+----------
+
+Tests various permissions sets based on the visiblity flags.
+
 test-146.cs
 -----------
 Test for Binary.EmitBrancheable() to ensure we're emitting correct
@@ -180,6 +190,12 @@ test-177.cs
 This tests that the compiler is generating "return:" attributes for a 
 method.  This was a separate code path, and was not handled in the past.
 
+
+test-178.cs
+-----------
+Ensure that we emit attributes only once for operators. Bug #45876
+
+
 test-179.cs
 -----------
 Tests various uses of the indexers in the presence of the `new' keyword
@@ -234,6 +250,10 @@ Test that the foreach statement generated by mcs invokes the Dispose()
 method even if the enumerator class returned by GetEnumerator () does not
 implement IDisposable.
 
+test-189.cs
+-----------
+Test to ensure proper overload resolution of params method under various cases.
+
 test-190.cs
 -----------
 Accessing private field of outer class from which we derive.
@@ -267,6 +287,197 @@ test-195.cs
 Fix for bug #45149, constructors that call another constructor in the
 same class (using ": this()") should not emit instance field initializers. 
 
+test-196.cs:
+------------
+
+The optimization that we perform in uint & int-constant was triggering a bug
+because we returned always, when we should have continued the processing if the
+conditions were not correct.
+
+test-197.cs
+-----------
+
+Fix for bug #42973.
+
+test-198.cs
+-----------
+
+Type resolution and name lookup.  Fixes for bugs #36316, #36314.
+
+test-199.cs
+-----------
+
+Name resolution wrt. inaccessible types.  Fixes bug #36313.
+
+test-200.cs
+-----------
+
+Compound assignment (x = (y += 3)).  Fixes bug #45854.
+
+test-201.cs
+-----------
+
+Fix for bug #35631.
+
+test-202.cs
+-----------
+
+Fix for bug #41975.
+
+test-203.cs
+-----------
+
+Fix for bug #33026.
+
+test-204.cs
+-----------
+
+User defined conditional logical operators; bug #40505.
+
+test-206.cs
+-----------
+
+Indexers; bug #46502.
+
+test-207.cs
+-----------
+
+Expressions which return delegates.
+
+test-208.cs
+-----------
+
+Indexers; bug #46788.
+
+test-209.cs
+-----------
+
+Embedded assignments; while fixing a bug and making a mistake, I discovered some
+problems during class libs compilation.  Let's just add a testcase for them here.
+
+test-210.cs
+-----------
+
+Cast something to a delegate and then invoke it; bug #46923.
+
+test-211.cs
+-----------
+
+Multiple casts.
+
+test-212.cs
+-----------
+
+Params overload resolution with implicit user conversion
+
+test-213.cs
+-----------
+
+Unboxing struct from interface type; bug #47822.
+
+test-214.cs
+-----------
+
+Namespace lookups; bug #47853.
+
+test-215.cs
+-----------
+
+Namespace lookups; bug #47927.
+
+test-216.cs:
+------------
+Accessability bug fix #48710 on events
+
+test-217.cs
+-----------
+
+>= and <= operators; bug #48679
+
+test-218.cs
+-----------
+Tests delegate creation inside an array;  This exposed a bug in the
+fact that New is called for DoResolve twice from array initialization.
+Bug #48800
+
+test-219.cs:
+------------
+Tests that we can call typeof(void) in an attribtue delcaration, since
+we removed previously typeof (System.Void) as a valid way of referencing void.
+
+test-220.cs:
+------------
+Test for a bug in foreach, where it would pick the wrong GetEnumerator in a class.
+Bug # was 51446
+
+test-221.cs:
+------------
+Test for correct scanning for base properties.
+
+test-222.cs:
+------------
+Compilation test to check overload resolution. We should prefer int->uint over int->ulong.
+
+test-223.cs:
+------------
+This tests that conversions from Enum and ValueType to structs
+are treated as unboxing conversions, and the `unbox' opcode
+is emitted. #52569.
+
+test-224.cs:
+------------
+This tests the compilation of attributes with array parameters.
+
+test-229.cs:
+------------
+Test enumerating on:
+public class List : IEnumerable {
+
+       public MyEnumerator GetEnumerator () {
+               return new MyEnumerator(this);
+       }
+       
+       IEnumerator IEnumerable.GetEnumerator () {
+               ...
+       }
+       
+       public struct MyEnumerator : IEnumerator {
+               ...
+       }
+}
+
+test-231.cs:
+------------
+Test for emitting callvirt when we need it.
+
+test-232.cs:
+------------
+Tests for {...}-style array creation
+
+test-233.cs:
+------------
+dup of basic-float.cs from mini, for bug 54303.
+
+test-234.cs:
+------------
+Switch statement on a [Flags] style enum. bug 55885.
+
+test-236.cs:
+-----------
+Test for bug #56300.  DefaultMemberAttribute should not be created if a
+class has only private interface indexers.
+
+test-237.cs:
+-----------
+Test for bug #56442.  Verify that delegate invocation and normal method
+invocation act the same when the 'params' keyword is used.
+
+test-290.cs:
+-----------
+Test for bug reported in 
+
+  http://lists.ximian.com/archives/public/mono-devel-list/2004-September/007777.html
+
 verify-1.cs
 -----------
 Test whether we do not jump out of the method in a Try/Finally block.
@@ -295,3 +506,92 @@ unsafe-6.cs:
 Tests the correct computation of compound operators in the context of a pointer 
 dereference on the left side.
 
+gen-1.cs:
+---------
+
+Simple constructed type.
+
+gen-2.cs:
+---------
+
+Type parameter as field.
+
+gen-3.cs:
+---------
+
+Field of constructed type.
+
+gen-4.cs:
+---------
+
+Method argument of constructed type.
+
+gen-5.cs:
+---------
+
+Local variable of constructed type.
+
+gen-6.cs:
+---------
+
+More complex example.
+
+gen-7.cs:
+---------
+
+Constructed type deriving from a class type.
+
+gen-8.cs:
+---------
+
+`where' clauses.
+
+gen-9.cs:
+---------
+
+`where T : ICloneable' and then calling t.Clone ().
+
+gen-10.cs:
+----------
+
+`where T : I, J' - I is an inferface, J a class.
+
+gen-15.cs:
+----------
+
+Generic methods.
+
+2test-1.cs
+----------
+C# 2.0 Iterators: Enumerator and Enumerable with foreach
+
+2test-2.cs
+----------
+C# 2.0 Iterators: Obtaining the enumerator manually
+
+2test-3.cs
+----------
+C# 2.0 Iterators: Multi-dimensional arrays as arguments to iterator method
+
+2test-4.cs
+----------
+C# 2.0 Iterators: Use of a local variable in an enumerator.
+
+2test-5.cs
+----------
+Method group conversions for C# 2.0
+
+2test-6.cs
+----------
+Test iterators using foreach where you have to load the address of a struct
+
+2test-15.cs
+-----------
+Partial type with a destructor.
+
+pu-ip.cs, pu-pi.cs, pi.cs, pu.cs
+--------------------------------
+Test that the order for internal/public in external assemblies does not
+affect the outcome of a build.  Also checks that multiple `entry points'
+can be declared in a library. (eg, that it is not confused by two Main
+methods).