File: README.tests

package info (click to toggle)
mono 1.2.2.1-1etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 142,720 kB
  • ctags: 256,408
  • sloc: cs: 1,495,736; ansic: 249,442; sh: 18,327; xml: 12,463; makefile: 5,046; perl: 1,248; asm: 635; yacc: 285; sql: 7
file content (597 lines) | stat: -rw-r--r-- 12,083 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
Test cases listed by Category:
==============================

* Operators

  test-146.cs test-175.cs test-200.cs test-204.cs

* Overloading

  test-147.cs test-173.cs

* Try/Catch blocks

  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 test-236.cs

* Events and Delegates

  test-149.cs test-164.cs test-237.cs verify-3.cs

* Constant Folding

  test-150.cs

* Switch blocks

  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-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 test-230.cs test-238.cs test-239.cs test-240.cs

* Arrays and array creation

  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
unsinged branch targets.

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.

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.

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.

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).