2003-07-14 Martin Baulig <martin@ximian.com>
[mono.git] / mcs / tests / README.tests
1 Test cases listed by Category:
2 ==============================
3
4 * Operators
5
6   test-146.cs test-175.cs test-200.cs test-204.cs
7
8 * Overloading
9
10   test-147.cs test-173.cs
11
12 * Try/Catch blocks
13
14   verify-1.cs verify-2.cs
15
16 * Indexers and Properties
17
18   test-148.cs test-166.cs
19
20 * Events and Delegates
21
22   test-149.cs test-164.cs verify-3.cs
23
24 * Constant Folding
25
26   test-150.cs
27
28 * Switch blocks
29
30   test-152.cs test-193.cs verify-4.cs
31
32 * Member Access & Simple Names
33
34   test-151.cs test-159.cs test-160.cs test-161.cs test-190.cs
35
36 * Invocation
37
38   test-153.cs test-163.c
39
40 * Flow Analysis
41
42   test-154.cs test-162.cs test-185.cs
43
44 * Type Containers
45
46   test-155.cs test-156.cs
47
48 * Attributes
49
50   test-157.cs test-158.cs test-177.cs 
51
52 * Arrays and array creation
53
54   test-165.cs, test-167.cs
55
56 * Labels and goto
57
58   verify-5.cs
59
60 * Enums
61
62   verify-6.cs
63
64 * Type resolution and name lookup
65
66   test-198.cs test-201.cs test-202.cs test-203.cs
67
68 Test cases listed by Number:
69 ============================
70
71 test-146.cs
72 -----------
73 Test for Binary.EmitBrancheable() to ensure we're emitting correct
74 unsinged branch targets.
75
76 test-147.cs
77 -----------
78 Testing `new' modifier.
79
80 test-148.cs
81 -----------
82 Testing the `IndexerName' attribute in interface indexers.
83
84 test-149.cs
85 -----------
86 Testing interface events.
87
88 test-150.cs
89 -----------
90 Test for folding of UIntConstants.  See bug #28106.
91 FIXME:  We should all all possible test cases to this test.
92
93 test-151.cs
94 -----------
95
96   A.Iface b;
97   void doit (Object A) {
98     b = (A.Iface)A;
99  }
100
101 test-152.cs
102 -----------
103 Scope of variables declared inside a switch case.
104
105 test-153.cs
106 -----------
107 Testing invocation of varargs function.
108
109 test-154.cs
110 -----------
111 Flow analysis: This test contains all situations which are "allowed".
112
113 test-155.cs
114 -----------
115 Nested interfaces.
116
117 test-156.cs
118 -----------
119 Check whether base types are at least as accessible than the current type.
120
121 test-157.cs
122 -----------
123 Attributes.
124
125 test-158.cs
126 -----------
127 Attributes.
128
129 test-159.cs
130 -----------
131 SimpleNameLookup: Cast to `A.Iface' type when there's a parameter called `A'.
132
133 test-160.cs
134 -----------
135 ResolveMemberLookup: `B look; return look.s.a' must work in static context.
136
137 test-161.cs
138 -----------
139 ResolveMemberLookup: Field initializer references `DateTime.Now' when there's
140 an instance property/field `DateTime'.
141
142 test-162.cs
143 -----------
144 Control Flow Analysis wrt. structs.
145
146 test-163.cs
147 -----------
148 Test to check we select string over object when we have a Null literal as the argument.
149
150 test-164.cs
151 -----------
152 Virtual functions in delegate creation expressions.
153
154 test-165.cs
155 -----------
156 Enums in array creation expression.
157
158 test-166.cs
159 -----------
160 Using property from interface which is inherited multiple times.
161
162 test-173.cs
163 -----------
164 Check whether we select the correct function, don't report CS0121
165 for integer literals.
166
167 test-174.cs
168 -----------
169 Checks access to protected properties on base classes, and access to 
170 private properties on container classes.
171
172 test-175.cs
173 -----------
174 Check for user-defined implicit conversions if both arguments of a
175 binary operator are of a user-defined type.  Bug #30443.
176
177 test-176.cs
178 -----------
179 This tests checks that we perform constant folding on byte values.  The
180 compiler had a bug where it did not do so.
181
182 test-177.cs
183 -----------
184 This tests that the compiler is generating "return:" attributes for a 
185 method.  This was a separate code path, and was not handled in the past.
186
187
188 test-178.cs
189 -----------
190 Ensure that we emit attributes only once for operators. Bug #45876
191
192
193 test-179.cs
194 -----------
195 Tests various uses of the indexers in the presence of the `new' keyword
196 and various different argument types.
197
198 test-180.cs
199 -----------
200 This test is part of a bug report in which casting an enumeration value
201 into System.Enum was not wrapped correctly, and the wrong method was
202 called.
203
204 test-181.cs
205 -----------
206 Test whenever mcs correctly handles the MethodImplAttributes
207 custom attribute.
208
209 test-182.cs
210 -----------
211 Tests that bug 37473 is gone.  The problem was that we were generating
212 incorrect code for field references on a value type.  The code was originally
213 written by Martin, but I turned it off as I did not see what it did fix.  The
214 code is now turned on again.  
215
216 test-183.cs
217 -----------
218 This test just verifies that we generate the proper signature for
219 EndInvoke, something that we were not doing before in the presence
220 of out parameters
221
222 test-184.cs
223 -----------
224 This test fixes a bug that exposed a problem when calling a struct
225 constructor that is initialized from an instance constructor
226
227 test-185.cs
228 -----------
229 Flow analysis wrt. infinite loops.  Bug #37708.
230
231 test-186.cs
232 -----------
233 Typecasts were not being constant-folded/reduced, which triggered
234 the bug 37363.   (String) null was not a null constant in attributes.
235
236 test-187.cs
237 -----------
238 This test verifies that we resolve the source expression in a compound
239 expression before we attempt to use it.
240
241 test-188.cs
242 -----------
243 Test that the foreach statement generated by mcs invokes the Dispose()
244 method even if the enumerator class returned by GetEnumerator () does not
245 implement IDisposable.
246
247 test-190.cs
248 -----------
249 Accessing private field of outer class from which we derive.
250
251 tests-191.cs
252 ------------
253 Some accessibility tests that exist in Corlib and System, to probe the new
254 functionality in the compiler for accessibility of private nested classes.
255
256 test-192.cs
257 -----------
258 Fix for bug 41952, basically, we were not using the `unchecked' bit during
259 constant resolution due to the nature of EmitMeta.
260
261 test-193.cs
262 -----------
263 Fix for bug 39828, allow goto to a label in another switch section.
264
265 test-194.cs
266 -----------
267 Fix for bug #39108 - ensure that the correct form of a params method is called:
268
269 "explicit conversion of argument to object
270 (type object cannot be implicitly converted to type
271 object[]) affects resolution of normal/expanded form
272 of method invocation."
273
274 test-195.cs
275 -----------
276
277 Fix for bug #45149, constructors that call another constructor in the
278 same class (using ": this()") should not emit instance field initializers. 
279
280 test-196.cs:
281 ------------
282
283 The optimization that we perform in uint & int-constant was triggering a bug
284 because we returned always, when we should have continued the processing if the
285 conditions were not correct.
286
287 test-197.cs
288 -----------
289
290 Fix for bug #42973.
291
292 test-198.cs
293 -----------
294
295 Type resolution and name lookup.  Fixes for bugs #36316, #36314.
296
297 test-199.cs
298 -----------
299
300 Name resolution wrt. inaccessible types.  Fixes bug #36313.
301
302 test-200.cs
303 -----------
304
305 Compound assignment (x = (y += 3)).  Fixes bug #45854.
306
307 test-201.cs
308 -----------
309
310 Fix for bug #35631.
311
312 test-202.cs
313 -----------
314
315 Fix for bug #41975.
316
317 test-203.cs
318 -----------
319
320 Fix for bug #33026.
321
322 test-204.cs
323 -----------
324
325 User defined conditional logical operators; bug #40505.
326
327 verify-1.cs
328 -----------
329 Test whether we do not jump out of the method in a Try/Finally block.
330
331 verify-2.cs
332 -----------
333 Test whether `return' in a Try/Catch block actually returns.  Test
334 whether continue uses Leave when the branch is across Try/Catch
335 boundaries.
336
337 verify-3.cs
338 -----------
339 Checks default add/remove method of static events.
340
341 verify-4.cs
342 -----------
343 When there's an unreachable break in a switch section, it must not emit a jump out of
344 the method.
345
346 verify-6.cs
347 -----------
348 Casts from/to System.Enum.
349
350 unsafe-6.cs:
351 ------------
352 Tests the correct computation of compound operators in the context of a pointer 
353 dereference on the left side.
354