2009-05-06 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Wed, 6 May 2009 23:33:58 +0000 (23:33 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Wed, 6 May 2009 23:33:58 +0000 (23:33 -0000)
* cli-tables-tests.md: Tests for property table.

* assembly-with-property.cs: Added more stuff

svn path=/trunk/mono/; revision=133697

mono/tests/metadata-verifier/Changelog
mono/tests/metadata-verifier/assembly-with-properties.cs
mono/tests/metadata-verifier/cli-tables-tests.md

index b515f062f4c7feb01695f1e81f1561ac91fc3921..bceb6de8d9ad34b641dfc34081063add8fa74048 100644 (file)
@@ -1,3 +1,9 @@
+2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * cli-tables-tests.md: Tests for property table.
+
+       * assembly-with-property.cs: Added more stuff
+
 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * gen-md-tests.c (next_token): Stop taking chars
@@ -10,7 +16,7 @@
 
        * cli-tables-tests.md: Tests for propertymap table.
 
-       * assembly-with-cas.cs: New test file for producing tests
+       * assembly-with-property.cs: New test file for producing tests
        for property tables.
 
        * Makefile: Add new dependencies.
index 4a1b55aaa5003cefb38cb97519cabd758a78d34e..e790e03659d3fee2b9deaa1a0f4e7148a718db22 100644 (file)
@@ -7,6 +7,7 @@ public delegate void Del ();
 
 public class Class0
 {
+       const int foo = 10;
        public int PropA { get; set; }
        public int PropB { set { int x = value; } }
        public int PropC { get { return 0; } }
index 5a4a8958d97bd6d6b0223152e7d258090d2d4b49..e3200fbec8d5f136cc40afee77ccd636093dd542 100644 (file)
@@ -804,3 +804,44 @@ property-map-table {
        #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
+}