2005-03-23 Lluis Sanchez Gual <lluis@novell.com>
[mono.git] / mcs / tests / README.tests
index 6109d7ec931e06b2b8af193c91c9242e31590da7..65bc2a6f9614dd6f8a1941fff8f4dd6d4b0e32e9 100644 (file)
@@ -1,13 +1,13 @@
 Test cases listed by Category:
 ==============================
 
-* Binary operators
+* Operators
 
-  test-146.cs
+  test-146.cs test-175.cs test-200.cs test-204.cs
 
 * Overloading
 
-  test-147.cs
+  test-147.cs test-173.cs
 
 * Try/Catch blocks
 
@@ -15,11 +15,12 @@ Test cases listed by Category:
 
 * Indexers and Properties
 
-  test-148.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,19 +28,19 @@ Test cases listed by Category:
 
 * Switch blocks
 
-  test-152.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-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
 
-  test-154.cs test-162.cs
+  test-154.cs test-162.cs test-185.cs
 
 * Type Containers
 
@@ -47,15 +48,32 @@ Test cases listed by Category:
 
 * Attributes
 
-  test-157.cs test-158.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-165.cs, test-167.cs, test-232.cs
+
+* Labels and goto
+
+  verify-5.cs
+
+* Enums
+
+  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
@@ -143,6 +161,323 @@ test-165.cs
 -----------
 Enums in array creation expression.
 
+test-166.cs
+-----------
+Using property from interface which is inherited multiple times.
+
+test-173.cs
+-----------
+Check whether we select the correct function, don't report CS0121
+for integer literals.
+
+test-174.cs
+-----------
+Checks access to protected properties on base classes, and access to 
+private properties on container classes.
+
+test-175.cs
+-----------
+Check for user-defined implicit conversions if both arguments of a
+binary operator are of a user-defined type.  Bug #30443.
+
+test-176.cs
+-----------
+This tests checks that we perform constant folding on byte values.  The
+compiler had a bug where it did not do so.
+
+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
+and various different argument types.
+
+test-180.cs
+-----------
+This test is part of a bug report in which casting an enumeration value
+into System.Enum was not wrapped correctly, and the wrong method was
+called.
+
+test-181.cs
+-----------
+Test whenever mcs correctly handles the MethodImplAttributes
+custom attribute.
+
+test-182.cs
+-----------
+Tests that bug 37473 is gone.  The problem was that we were generating
+incorrect code for field references on a value type.  The code was originally
+written by Martin, but I turned it off as I did not see what it did fix.  The
+code is now turned on again.  
+
+test-183.cs
+-----------
+This test just verifies that we generate the proper signature for
+EndInvoke, something that we were not doing before in the presence
+of out parameters
+
+test-184.cs
+-----------
+This test fixes a bug that exposed a problem when calling a struct
+constructor that is initialized from an instance constructor
+
+test-185.cs
+-----------
+Flow analysis wrt. infinite loops.  Bug #37708.
+
+test-186.cs
+-----------
+Typecasts were not being constant-folded/reduced, which triggered
+the bug 37363.   (String) null was not a null constant in attributes.
+
+test-187.cs
+-----------
+This test verifies that we resolve the source expression in a compound
+expression before we attempt to use it.
+
+test-188.cs
+-----------
+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.
+
+tests-191.cs
+------------
+Some accessibility tests that exist in Corlib and System, to probe the new
+functionality in the compiler for accessibility of private nested classes.
+
+test-192.cs
+-----------
+Fix for bug 41952, basically, we were not using the `unchecked' bit during
+constant resolution due to the nature of EmitMeta.
+
+test-193.cs
+-----------
+Fix for bug 39828, allow goto to a label in another switch section.
+
+test-194.cs
+-----------
+Fix for bug #39108 - ensure that the correct form of a params method is called:
+
+"explicit conversion of argument to object
+(type object cannot be implicitly converted to type
+object[]) affects resolution of normal/expanded form
+of method invocation."
+
+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.
@@ -161,3 +496,102 @@ verify-4.cs
 -----------
 When there's an unreachable break in a switch section, it must not emit a jump out of
 the method.
+
+verify-6.cs
+-----------
+Casts from/to System.Enum.
+
+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).