2009-04-29 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / metadata-verifier / cli-metadata-tests.md
1 cli-metadata-root {
2         assembly simple-assembly.exe
3
4         #signature
5         valid offset translate.rva.ind ( cli-header + 8 ) set-uint 0x424A5342
6         valid offset cli-metadata + 0 set-uint 0x424A5342
7
8         invalid offset cli-metadata + 0 set-uint 0x434A5342
9         invalid offset cli-metadata + 0 set-uint 0x42455342
10         invalid offset cli-metadata + 0 set-uint 0x424A0342
11         invalid offset cli-metadata + 0 set-uint 0x424A5332
12
13         #we don't care about major/minor versions no runtime cares about them
14
15         #size too small
16         invalid offset cli-header + 12 set-uint 15
17         invalid offset cli-header + 12 set-uint 20
18         invalid offset cli-header + 12 set-uint 30
19
20         #version name is irrelevant as well
21
22         #the stream must have exactly 5 streams
23         valid offset cli-metadata + 16 + read.uint ( cli-metadata + 12 ) + 2 set-ushort 5
24         invalid offset cli-metadata + 16 + read.uint ( cli-metadata + 12 ) + 2 set-ushort 4
25 }
26
27 cli-metadata-stream-headers {
28         assembly simple-assembly.exe
29         #simple-assembly has version v2.0.50727 so the heade takes 32 bytes
30
31         #just to make sure
32         valid offset cli-metadata + 32 set-uint 0x6c
33         valid offset stream-header ( 0 ) + 0 set-uint 0x6c
34
35         #size too small
36         invalid offset cli-header + 12 set-uint 34
37         invalid offset cli-header + 12 set-uint 39
38
39
40         #offset doesn't bounds check
41         invalid offset stream-header ( 0 ) + 0 set-uint 0x888888
42         invalid offset stream-header ( 1 ) + 0 set-uint 0x888888
43         invalid offset stream-header ( 2 ) + 0 set-uint 0x888888
44         invalid offset stream-header ( 3 ) + 0 set-uint 0x888888
45         invalid offset stream-header ( 4 ) + 0 set-uint 0x888888
46
47         #size doesn't bounds check
48         invalid offset stream-header ( 0 ) + 4 set-uint 0x888888
49         invalid offset stream-header ( 1 ) + 4 set-uint 0x888888
50         invalid offset stream-header ( 2 ) + 4 set-uint 0x888888
51         invalid offset stream-header ( 3 ) + 4 set-uint 0x888888
52         invalid offset stream-header ( 4 ) + 4 set-uint 0x888888
53
54         #unkwnown name
55         invalid offset stream-header ( 0 ) + 8 set-byte 0x42
56
57         #duplicate name, change #~ to #US 
58         invalid offset stream-header ( 0 ) + 9 set-byte 0x55 , offset stream-header ( 0 ) + 10 set-byte 0x53
59 }