1f6fdc160af0704b208302700e94b847420799ad
[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 test-234.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 test-230.cs
51
52 * Arrays and array creation
53
54   test-165.cs, test-167.cs, test-232.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-91.cs
72 ----------
73
74 Tests various permissions sets based on the visiblity flags.
75
76 test-146.cs
77 -----------
78 Test for Binary.EmitBrancheable() to ensure we're emitting correct
79 unsinged branch targets.
80
81 test-147.cs
82 -----------
83 Testing `new' modifier.
84
85 test-148.cs
86 -----------
87 Testing the `IndexerName' attribute in interface indexers.
88
89 test-149.cs
90 -----------
91 Testing interface events.
92
93 test-150.cs
94 -----------
95 Test for folding of UIntConstants.  See bug #28106.
96 FIXME:  We should all all possible test cases to this test.
97
98 test-151.cs
99 -----------
100
101   A.Iface b;
102   void doit (Object A) {
103     b = (A.Iface)A;
104  }
105
106 test-152.cs
107 -----------
108 Scope of variables declared inside a switch case.
109
110 test-153.cs
111 -----------
112 Testing invocation of varargs function.
113
114 test-154.cs
115 -----------
116 Flow analysis: This test contains all situations which are "allowed".
117
118 test-155.cs
119 -----------
120 Nested interfaces.
121
122 test-156.cs
123 -----------
124 Check whether base types are at least as accessible than the current type.
125
126 test-157.cs
127 -----------
128 Attributes.
129
130 test-158.cs
131 -----------
132 Attributes.
133
134 test-159.cs
135 -----------
136 SimpleNameLookup: Cast to `A.Iface' type when there's a parameter called `A'.
137
138 test-160.cs
139 -----------
140 ResolveMemberLookup: `B look; return look.s.a' must work in static context.
141
142 test-161.cs
143 -----------
144 ResolveMemberLookup: Field initializer references `DateTime.Now' when there's
145 an instance property/field `DateTime'.
146
147 test-162.cs
148 -----------
149 Control Flow Analysis wrt. structs.
150
151 test-163.cs
152 -----------
153 Test to check we select string over object when we have a Null literal as the argument.
154
155 test-164.cs
156 -----------
157 Virtual functions in delegate creation expressions.
158
159 test-165.cs
160 -----------
161 Enums in array creation expression.
162
163 test-166.cs
164 -----------
165 Using property from interface which is inherited multiple times.
166
167 test-173.cs
168 -----------
169 Check whether we select the correct function, don't report CS0121
170 for integer literals.
171
172 test-174.cs
173 -----------
174 Checks access to protected properties on base classes, and access to 
175 private properties on container classes.
176
177 test-175.cs
178 -----------
179 Check for user-defined implicit conversions if both arguments of a
180 binary operator are of a user-defined type.  Bug #30443.
181
182 test-176.cs
183 -----------
184 This tests checks that we perform constant folding on byte values.  The
185 compiler had a bug where it did not do so.
186
187 test-177.cs
188 -----------
189 This tests that the compiler is generating "return:" attributes for a 
190 method.  This was a separate code path, and was not handled in the past.
191
192
193 test-178.cs
194 -----------
195 Ensure that we emit attributes only once for operators. Bug #45876
196
197
198 test-179.cs
199 -----------
200 Tests various uses of the indexers in the presence of the `new' keyword
201 and various different argument types.
202
203 test-180.cs
204 -----------
205 This test is part of a bug report in which casting an enumeration value
206 into System.Enum was not wrapped correctly, and the wrong method was
207 called.
208
209 test-181.cs
210 -----------
211 Test whenever mcs correctly handles the MethodImplAttributes
212 custom attribute.
213
214 test-182.cs
215 -----------
216 Tests that bug 37473 is gone.  The problem was that we were generating
217 incorrect code for field references on a value type.  The code was originally
218 written by Martin, but I turned it off as I did not see what it did fix.  The
219 code is now turned on again.  
220
221 test-183.cs
222 -----------
223 This test just verifies that we generate the proper signature for
224 EndInvoke, something that we were not doing before in the presence
225 of out parameters
226
227 test-184.cs
228 -----------
229 This test fixes a bug that exposed a problem when calling a struct
230 constructor that is initialized from an instance constructor
231
232 test-185.cs
233 -----------
234 Flow analysis wrt. infinite loops.  Bug #37708.
235
236 test-186.cs
237 -----------
238 Typecasts were not being constant-folded/reduced, which triggered
239 the bug 37363.   (String) null was not a null constant in attributes.
240
241 test-187.cs
242 -----------
243 This test verifies that we resolve the source expression in a compound
244 expression before we attempt to use it.
245
246 test-188.cs
247 -----------
248 Test that the foreach statement generated by mcs invokes the Dispose()
249 method even if the enumerator class returned by GetEnumerator () does not
250 implement IDisposable.
251
252 test-189.cs
253 -----------
254 Test to ensure proper overload resolution of params method under various cases.
255
256 test-190.cs
257 -----------
258 Accessing private field of outer class from which we derive.
259
260 tests-191.cs
261 ------------
262 Some accessibility tests that exist in Corlib and System, to probe the new
263 functionality in the compiler for accessibility of private nested classes.
264
265 test-192.cs
266 -----------
267 Fix for bug 41952, basically, we were not using the `unchecked' bit during
268 constant resolution due to the nature of EmitMeta.
269
270 test-193.cs
271 -----------
272 Fix for bug 39828, allow goto to a label in another switch section.
273
274 test-194.cs
275 -----------
276 Fix for bug #39108 - ensure that the correct form of a params method is called:
277
278 "explicit conversion of argument to object
279 (type object cannot be implicitly converted to type
280 object[]) affects resolution of normal/expanded form
281 of method invocation."
282
283 test-195.cs
284 -----------
285
286 Fix for bug #45149, constructors that call another constructor in the
287 same class (using ": this()") should not emit instance field initializers. 
288
289 test-196.cs:
290 ------------
291
292 The optimization that we perform in uint & int-constant was triggering a bug
293 because we returned always, when we should have continued the processing if the
294 conditions were not correct.
295
296 test-197.cs
297 -----------
298
299 Fix for bug #42973.
300
301 test-198.cs
302 -----------
303
304 Type resolution and name lookup.  Fixes for bugs #36316, #36314.
305
306 test-199.cs
307 -----------
308
309 Name resolution wrt. inaccessible types.  Fixes bug #36313.
310
311 test-200.cs
312 -----------
313
314 Compound assignment (x = (y += 3)).  Fixes bug #45854.
315
316 test-201.cs
317 -----------
318
319 Fix for bug #35631.
320
321 test-202.cs
322 -----------
323
324 Fix for bug #41975.
325
326 test-203.cs
327 -----------
328
329 Fix for bug #33026.
330
331 test-204.cs
332 -----------
333
334 User defined conditional logical operators; bug #40505.
335
336 test-206.cs
337 -----------
338
339 Indexers; bug #46502.
340
341 test-207.cs
342 -----------
343
344 Expressions which return delegates.
345
346 test-208.cs
347 -----------
348
349 Indexers; bug #46788.
350
351 test-209.cs
352 -----------
353
354 Embedded assignments; while fixing a bug and making a mistake, I discovered some
355 problems during class libs compilation.  Let's just add a testcase for them here.
356
357 test-210.cs
358 -----------
359
360 Cast something to a delegate and then invoke it; bug #46923.
361
362 test-211.cs
363 -----------
364
365 Multiple casts.
366
367 test-212.cs
368 -----------
369
370 Params overload resolution with implicit user conversion
371
372 test-213.cs
373 -----------
374
375 Unboxing struct from interface type; bug #47822.
376
377 test-214.cs
378 -----------
379
380 Namespace lookups; bug #47853.
381
382 test-215.cs
383 -----------
384
385 Namespace lookups; bug #47927.
386
387 test-216.cs:
388 ------------
389 Accessability bug fix #48710 on events
390
391 test-217.cs
392 -----------
393
394 >= and <= operators; bug #48679
395
396 test-218.cs
397 -----------
398 Tests delegate creation inside an array;  This exposed a bug in the
399 fact that New is called for DoResolve twice from array initialization.
400 Bug #48800
401
402 test-219.cs:
403 ------------
404 Tests that we can call typeof(void) in an attribtue delcaration, since
405 we removed previously typeof (System.Void) as a valid way of referencing void.
406
407 test-220.cs:
408 ------------
409 Test for a bug in foreach, where it would pick the wrong GetEnumerator in a class.
410 Bug # was 51446
411
412 test-221.cs:
413 ------------
414 Test for correct scanning for base properties.
415
416 test-222.cs:
417 ------------
418 Compilation test to check overload resolution. We should prefer int->uint over int->ulong.
419
420 test-223.cs:
421 ------------
422 This tests that conversions from Enum and ValueType to structs
423 are treated as unboxing conversions, and the `unbox' opcode
424 is emitted. #52569.
425
426 test-224.cs:
427 ------------
428 This tests the compilation of attributes with array parameters.
429
430 test-229.cs:
431 ------------
432 Test enumerating on:
433 public class List : IEnumerable {
434
435         public MyEnumerator GetEnumerator () {
436                 return new MyEnumerator(this);
437         }
438         
439         IEnumerator IEnumerable.GetEnumerator () {
440                 ...
441         }
442         
443         public struct MyEnumerator : IEnumerator {
444                 ...
445         }
446 }
447
448 test-231.cs:
449 ------------
450 Test for emitting callvirt when we need it.
451
452 test-232.cs:
453 ------------
454 Tests for {...}-style array creation
455
456 test-233.cs:
457 ------------
458 dup of basic-float.cs from mini, for bug 54303.
459
460 test-234.cs:
461 ------------
462 Switch statement on a [Flags] style enum. bug 55885.
463
464 verify-1.cs
465 -----------
466 Test whether we do not jump out of the method in a Try/Finally block.
467
468 verify-2.cs
469 -----------
470 Test whether `return' in a Try/Catch block actually returns.  Test
471 whether continue uses Leave when the branch is across Try/Catch
472 boundaries.
473
474 verify-3.cs
475 -----------
476 Checks default add/remove method of static events.
477
478 verify-4.cs
479 -----------
480 When there's an unreachable break in a switch section, it must not emit a jump out of
481 the method.
482
483 verify-6.cs
484 -----------
485 Casts from/to System.Enum.
486
487 unsafe-6.cs:
488 ------------
489 Tests the correct computation of compound operators in the context of a pointer 
490 dereference on the left side.
491
492 gen-1.cs:
493 ---------
494
495 Simple constructed type.
496
497 gen-2.cs:
498 ---------
499
500 Type parameter as field.
501
502 gen-3.cs:
503 ---------
504
505 Field of constructed type.
506
507 gen-4.cs:
508 ---------
509
510 Method argument of constructed type.
511
512 gen-5.cs:
513 ---------
514
515 Local variable of constructed type.
516
517 gen-6.cs:
518 ---------
519
520 More complex example.
521
522 gen-7.cs:
523 ---------
524
525 Constructed type deriving from a class type.
526
527 gen-8.cs:
528 ---------
529
530 `where' clauses.
531
532 gen-9.cs:
533 ---------
534
535 `where T : ICloneable' and then calling t.Clone ().
536
537 gen-10.cs:
538 ----------
539
540 `where T : I, J' - I is an inferface, J a class.
541
542 gen-15.cs:
543 ----------
544
545 Generic methods.
546
547 2test-1.cs
548 ----------
549 C# 2.0 Iterators: Enumerator and Enumerable with foreach
550
551 2test-2.cs
552 ----------
553 C# 2.0 Iterators: Obtaining the enumerator manually
554
555 2test-3.cs
556 ----------
557 C# 2.0 Iterators: Multi-dimensional arrays as arguments to iterator method
558
559 2test-4.cs
560 ----------
561 C# 2.0 Iterators: Use of a local variable in an enumerator.
562
563 2test-5.cs
564 ----------
565 Method group conversions for C# 2.0
566
567 2test-6.cs
568 ----------
569 Test iterators using foreach where you have to load the address of a struct