X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Ftests%2Fmetadata-verifier%2Fcli-tables-tests.md;h=ad5198fdc189e5b9093228da1a05b76bcb1563ca;hb=d1a1c27265eb4d40cab5612695465fb213974466;hp=370c68eb6bc35f84e2a917dcec98145ab769a630;hpb=28490d44bb1ab1c4049a02f27a9320ff0c44a2c9;p=mono.git diff --git a/mono/tests/metadata-verifier/cli-tables-tests.md b/mono/tests/metadata-verifier/cli-tables-tests.md index 370c68eb6bc..ad5198fdc18 100644 --- a/mono/tests/metadata-verifier/cli-tables-tests.md +++ b/mono/tests/metadata-verifier/cli-tables-tests.md @@ -790,3 +790,110 @@ event-table { #TODO check for dups } +property-map-table { + assembly assembly-with-properties.exe + + #parent must be a valid typedef token + invalid offset table-row ( 0x15 0 ) set-ushort 0x8800 + + #bad propertylist + invalid offset table-row ( 0x15 0 ) + 2 set-ushort 0x0000 + invalid offset table-row ( 0x15 0 ) + 2 set-ushort 0x8800 + + #propertylist must not be duplicated and increase monotonically + #property list is 1,3,7 we change the first to 4 + invalid offset table-row ( 0x15 0 ) + 2 set-ushort 4 +} + +property-table { + assembly assembly-with-properties.exe + + #valid flags (3) + #only bits 9, 10 and 12 are used + invalid offset table-row ( 0x17 0 ) set-bit 0 + invalid offset table-row ( 0x17 0 ) set-bit 1 + invalid offset table-row ( 0x17 0 ) set-bit 2 + invalid offset table-row ( 0x17 0 ) set-bit 3 + invalid offset table-row ( 0x17 0 ) set-bit 4 + invalid offset table-row ( 0x17 0 ) set-bit 5 + invalid offset table-row ( 0x17 0 ) set-bit 6 + invalid offset table-row ( 0x17 0 ) set-bit 7 + invalid offset table-row ( 0x17 0 ) set-bit 8 + invalid offset table-row ( 0x17 0 ) set-bit 11 + invalid offset table-row ( 0x17 0 ) set-bit 13 + invalid offset table-row ( 0x17 0 ) set-bit 14 + invalid offset table-row ( 0x17 0 ) set-bit 15 + + #valid non empty name (4) + invalid offset table-row ( 0x17 0 ) + 2 set-ushort 0 + invalid offset table-row ( 0x17 0 ) + 2 set-ushort 0x8800 + + #type must be a non null type signature in the blob heap (6) + invalid offset table-row ( 0x17 0 ) + 4 set-ushort 0 + invalid offset table-row ( 0x17 0 ) + 4 set-ushort 0x8800 + + #TODO signature must be of the right kind (7) + + #if property has default, there must be a row in the defaults table + #we mark row zero as having default value + #field zero has default value + valid offset table-row (0x17 0) + 0 or-ushort 0x1000, #mark the property with hasdefault + offset table-row (0x04 0) + 0 set-ushort 0x0011, #clear literal and hasdefault from the field + offset table-row (0x0B 0) + 2 set-ushort 0x0006 #change the parent token to row 1 of the property table (0x2) + + invalid offset table-row (0x17 0) + 0 or-ushort 0x1000 + + #TODO check for dups +} + +methodimpl-table { + assembly assembly-with-complex-type.exe + + #class shall be valid (2) + invalid offset table-row (0x19 0) set-ushort 0 + invalid offset table-row (0x19 0) set-ushort 0x8800 + + #methodbody shall be valid (3) + #null + invalid offset table-row (0x19 0) + 2 set-ushort 0x0000 + invalid offset table-row (0x19 0) + 2 set-ushort 0x0001 + #out of range + invalid offset table-row (0x19 0) + 2 set-ushort 0x8800 + invalid offset table-row (0x19 0) + 2 set-ushort 0x8801 + + #MethodDeclaration shall be valid + #null + invalid offset table-row (0x19 0) + 4 set-ushort 0x0000 + invalid offset table-row (0x19 0) + 4 set-ushort 0x0001 + #out of range + invalid offset table-row (0x19 0) + 4 set-ushort 0x8800 + invalid offset table-row (0x19 0) + 4 set-ushort 0x8801 + + + #TODO check MethodDeclaration method for virtual and owner type for !sealed (4,5) + #TODO check MethodBody for belonging to a super type of Class,been virtual and rva != 0 (6,7,8) + #TODO check MethodBody must belong to any ancestor or iface of Class (9) + #TODO check MethodDeclaration method shall not be final (10) + #TODO if MethodDeclaration is strict, it must be visible to Class (11) + #TODO the method signature of MethodBody must match of MethodDeclaration (12) + #TODO no dups +} + +moduleref-table { + assembly assembly-with-module.exe + + #string must be valid (2) + invalid offset table-row (0x1A 0) set-ushort 0 + invalid offset table-row (0x1A 0) set-ushort 0x8801 + + #TODO there must be a row on the File table with the same name +} + +typespec-table { + assembly assembly-with-complex-type.exe + + #valid signature + invalid offset table-row (0x1B 0) set-ushort 0 + invalid offset table-row (0x1B 0) set-ushort 0x8800 +} +