2004-01-03 Ben Maurer <bmaurer@users.sourceforge.net>
[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 test-206.cs test-208.cs test-209.cs test-221.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 and Casts
37
38   test-153.cs test-163.c test-207.cs test-210.cs test-211.cs test-223.cs
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 test-214.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-189.cs
248 -----------
249 Test to ensure proper overload resolution of params method under various cases.
250
251 test-190.cs
252 -----------
253 Accessing private field of outer class from which we derive.
254
255 tests-191.cs
256 ------------
257 Some accessibility tests that exist in Corlib and System, to probe the new
258 functionality in the compiler for accessibility of private nested classes.
259
260 test-192.cs
261 -----------
262 Fix for bug 41952, basically, we were not using the `unchecked' bit during
263 constant resolution due to the nature of EmitMeta.
264
265 test-193.cs
266 -----------
267 Fix for bug 39828, allow goto to a label in another switch section.
268
269 test-194.cs
270 -----------
271 Fix for bug #39108 - ensure that the correct form of a params method is called:
272
273 "explicit conversion of argument to object
274 (type object cannot be implicitly converted to type
275 object[]) affects resolution of normal/expanded form
276 of method invocation."
277
278 test-195.cs
279 -----------
280
281 Fix for bug #45149, constructors that call another constructor in the
282 same class (using ": this()") should not emit instance field initializers. 
283
284 test-196.cs:
285 ------------
286
287 The optimization that we perform in uint & int-constant was triggering a bug
288 because we returned always, when we should have continued the processing if the
289 conditions were not correct.
290
291 test-197.cs
292 -----------
293
294 Fix for bug #42973.
295
296 test-198.cs
297 -----------
298
299 Type resolution and name lookup.  Fixes for bugs #36316, #36314.
300
301 test-199.cs
302 -----------
303
304 Name resolution wrt. inaccessible types.  Fixes bug #36313.
305
306 test-200.cs
307 -----------
308
309 Compound assignment (x = (y += 3)).  Fixes bug #45854.
310
311 test-201.cs
312 -----------
313
314 Fix for bug #35631.
315
316 test-202.cs
317 -----------
318
319 Fix for bug #41975.
320
321 test-203.cs
322 -----------
323
324 Fix for bug #33026.
325
326 test-204.cs
327 -----------
328
329 User defined conditional logical operators; bug #40505.
330
331 test-206.cs
332 -----------
333
334 Indexers; bug #46502.
335
336 test-207.cs
337 -----------
338
339 Expressions which return delegates.
340
341 test-208.cs
342 -----------
343
344 Indexers; bug #46788.
345
346 test-209.cs
347 -----------
348
349 Embedded assignments; while fixing a bug and making a mistake, I discovered some
350 problems during class libs compilation.  Let's just add a testcase for them here.
351
352 test-210.cs
353 -----------
354
355 Cast something to a delegate and then invoke it; bug #46923.
356
357 test-211.cs
358 -----------
359
360 Multiple casts.
361
362 test-212.cs
363 -----------
364
365 Params overload resolution with implicit user conversion
366
367 test-213.cs
368 -----------
369
370 Unboxing struct from interface type; bug #47822.
371
372 test-214.cs
373 -----------
374
375 Namespace lookups; bug #47853.
376
377 test-215.cs
378 -----------
379
380 Namespace lookups; bug #47927.
381
382 test-216.cs:
383 ------------
384 Accessability bug fix #48710 on events
385
386 test-217.cs
387 -----------
388
389 >= and <= operators; bug #48679
390
391 test-218.cs
392 -----------
393 Tests delegate creation inside an array;  This exposed a bug in the
394 fact that New is called for DoResolve twice from array initialization.
395 Bug #48800
396
397 test-219.cs:
398 ------------
399 Tests that we can call typeof(void) in an attribtue delcaration, since
400 we removed previously typeof (System.Void) as a valid way of referencing void.
401
402 test-220.cs:
403 ------------
404 Test for a bug in foreach, where it would pick the wrong GetEnumerator in a class.
405 Bug # was 51446
406
407 test-221.cs:
408 ------------
409 Test for correct scanning for base properties.
410
411 test-222.cs:
412 ------------
413 Compilation test to check overload resolution. We should prefer int->uint over int->ulong.
414
415 test-223.cs:
416 ------------
417 This tests that conversions from Enum and ValueType to structs
418 are treated as unboxing conversions, and the `unbox' opcode
419 is emitted. #52569.
420
421 verify-1.cs
422 -----------
423 Test whether we do not jump out of the method in a Try/Finally block.
424
425 verify-2.cs
426 -----------
427 Test whether `return' in a Try/Catch block actually returns.  Test
428 whether continue uses Leave when the branch is across Try/Catch
429 boundaries.
430
431 verify-3.cs
432 -----------
433 Checks default add/remove method of static events.
434
435 verify-4.cs
436 -----------
437 When there's an unreachable break in a switch section, it must not emit a jump out of
438 the method.
439
440 verify-6.cs
441 -----------
442 Casts from/to System.Enum.
443
444 unsafe-6.cs:
445 ------------
446 Tests the correct computation of compound operators in the context of a pointer 
447 dereference on the left side.
448
449 gen-1.cs:
450 ---------
451
452 Simple constructed type.
453
454 gen-2.cs:
455 ---------
456
457 Type parameter as field.
458
459 gen-3.cs:
460 ---------
461
462 Field of constructed type.
463
464 gen-4.cs:
465 ---------
466
467 Method argument of constructed type.
468
469 gen-5.cs:
470 ---------
471
472 Local variable of constructed type.
473
474 gen-6.cs:
475 ---------
476
477 More complex example.
478
479 gen-7.cs:
480 ---------
481
482 Constructed type deriving from a class type.
483
484 gen-8.cs:
485 ---------
486
487 `where' clauses.
488
489 gen-9.cs:
490 ---------
491
492 `where T : ICloneable' and then calling t.Clone ().
493
494 gen-10.cs:
495 ----------
496
497 `where T : I, J' - I is an inferface, J a class.
498
499 gen-15.cs:
500 ----------
501
502 Generic methods.