2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 30 Apr 2009 23:00:40 +0000 (23:00 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Thu, 30 Apr 2009 23:00:40 +0000 (23:00 -0000)
* cli-tables-tests.md: Tests for class layout table.

* assembly-with-complex-type.cs: Added more stuff for
class layout tests.

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

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

index 4171df544a8f602cdd010613fa198993a22dc42e..5be0fe35f85a833eab47a94d02c130aa8433e99e 100644 (file)
@@ -1,3 +1,10 @@
+2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * cli-tables-tests.md: Tests for class layout table.
+
+       * assembly-with-complex-type.cs: Added more stuff for
+       class layout tests.
+
 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * cli-tables-tests.md: Tests for decl security table.
index 929c8119d9b28f1a4f7504759f1661547fccd6eb..4eb54c4881c84c72baaf904f25e23db9286935ad 100644 (file)
@@ -43,4 +43,16 @@ public enum Foo
 public class Bla : Iface
 {
        public void Foo () {}
-}
\ No newline at end of file
+}
+
+[StructLayout (LayoutKind.Sequential, Pack=8)]
+public class ExplicitLayout {
+       int a;
+       int b;
+}
+
+[StructLayout (LayoutKind.Sequential, Pack=4, Size=20)]
+public class ExplicitLayout2 {
+       int a;
+       int b;
+}
index 66876b6bdb3fe577e5839613509f8b7cefcd0338..6b05432a0c69714473a77a301954581a910571b4 100644 (file)
@@ -687,3 +687,22 @@ decl-security-table {
        #bad permission set (6)
        invalid offset table-row ( 0xe 0 ) + 4 set-ushort 0x8800
 }
+
+class-layout-table {
+       assembly assembly-with-complex-type.exe
+
+       #valid parent row (2)
+       invalid offset table-row ( 0xF 0 ) + 6 set-ushort 0x0000
+       invalid offset table-row ( 0xF 0 ) + 6 set-ushort 0x0880
+
+       #TODO check that the type is not an interface (2)
+       #TODO parent must not have auto layout (3)
+
+       #packing must be (0,1,2,4,8,16,32,64,128) (4)
+       invalid offset table-row ( 0xF 0 ) set-ushort 0x0003
+
+       #TODO do checks depending on the kind of parent (4) 
+
+       #Check layout along the inheritance chain. (7)
+}
+