2004-01-03 Ben Maurer <bmaurer@users.sourceforge.net>
[mono.git] / mcs / tests / README.tests
index a5f07ed2b1e04ddc9044ca14e8114c7a64a28cde..4e261ba2fbf51cf82b90bf07549f4ed74bd5ff38 100644 (file)
@@ -1,17 +1,69 @@
 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
 
-  verify-1.cs
+  verify-1.cs verify-2.cs
+
+* Indexers and Properties
+
+  test-148.cs test-166.cs test-206.cs test-208.cs test-209.cs test-221.cs
+
+* Events and Delegates
+
+  test-149.cs test-164.cs verify-3.cs
+
+* Constant Folding
+
+  test-150.cs
+
+* Switch blocks
+
+  test-152.cs test-193.cs verify-4.cs
+
+* Member Access & Simple Names
+
+  test-151.cs test-159.cs test-160.cs test-161.cs test-190.cs
+
+* Invocation and Casts
+
+  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-185.cs
+
+* Type Containers
+
+  test-155.cs test-156.cs
+
+* Attributes
+
+  test-157.cs test-158.cs test-177.cs 
+
+* Arrays and array creation
+
+  test-165.cs, test-167.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:
 ============================
@@ -25,7 +77,426 @@ test-147.cs
 -----------
 Testing `new' modifier.
 
+test-148.cs
+-----------
+Testing the `IndexerName' attribute in interface indexers.
+
+test-149.cs
+-----------
+Testing interface events.
+
+test-150.cs
+-----------
+Test for folding of UIntConstants.  See bug #28106.
+FIXME:  We should all all possible test cases to this test.
+
+test-151.cs
+-----------
+
+  A.Iface b;
+  void doit (Object A) {
+    b = (A.Iface)A;
+ }
+
+test-152.cs
+-----------
+Scope of variables declared inside a switch case.
+
+test-153.cs
+-----------
+Testing invocation of varargs function.
+
+test-154.cs
+-----------
+Flow analysis: This test contains all situations which are "allowed".
+
+test-155.cs
+-----------
+Nested interfaces.
+
+test-156.cs
+-----------
+Check whether base types are at least as accessible than the current type.
+
+test-157.cs
+-----------
+Attributes.
+
+test-158.cs
+-----------
+Attributes.
+
+test-159.cs
+-----------
+SimpleNameLookup: Cast to `A.Iface' type when there's a parameter called `A'.
+
+test-160.cs
+-----------
+ResolveMemberLookup: `B look; return look.s.a' must work in static context.
+
+test-161.cs
+-----------
+ResolveMemberLookup: Field initializer references `DateTime.Now' when there's
+an instance property/field `DateTime'.
+
+test-162.cs
+-----------
+Control Flow Analysis wrt. structs.
+
+test-163.cs
+-----------
+Test to check we select string over object when we have a Null literal as the argument.
+
+test-164.cs
+-----------
+Virtual functions in delegate creation expressions.
+
+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.
+
 verify-1.cs
 -----------
 Test whether we do not jump out of the method in a Try/Finally block.
 
+verify-2.cs
+-----------
+Test whether `return' in a Try/Catch block actually returns.  Test
+whether continue uses Leave when the branch is across Try/Catch
+boundaries.
+
+verify-3.cs
+-----------
+Checks default add/remove method of static events.
+
+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.