+2009-05-19 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * cli-tables-tests.md: Add tests for the generic param table.
+
+ * assembly-with-generics.cs: New file for generic tests.
+
+ * Makefile: Adjust the build to the new file.
+
2009-05-18 Rodrigo Kumpera <rkumpera@novell.com>
* cli-tables-tests.md: Add tests for the nested class table.
assembly-with-module.exe: assembly-with-module.cs module.netmodule
gmcs assembly-with-module.cs -addmodule:module.netmodule
+assembly-with-generics.exe: assembly-with-generics.cs
+ gmcs assembly-with-generics.cs
+
TEST_BINARIES = assembly-with-resource.exe \
assembly-with-complex-type.exe \
assembly-with-methods.exe \
assembly-with-properties.exe \
assembly-with-module.exe \
assembly-with-resource.exe \
+ assembly-with-generics.exe \
simple-assembly.exe
--- /dev/null
+using System;
+using System.Runtime.InteropServices;
+
+public class Simple<T,K> {}
+
+public class Generic<A,B,C,D,E>
+ where B : class
+ where C : struct
+ where D : new()
+ where E : class, new()
+{
+}
+
+
+public class Driver
+{
+ public void GenericMethod<A,B,C,D,E> ()
+ where B : class
+ where C : struct
+ where D : new()
+ where E : class, new()
+ {
+ }
+
+ public static void Main ()
+ {
+ }
+}
\ No newline at end of file
#TODO check for dups based on nestedclass (5)
}
+
+
+generic-param-table {
+ assembly assembly-with-generics.exe
+
+ #bad flags
+ #only 0-4 are used
+ invalid offset table-row (0x2A 0) + 2 set-bit 5
+ invalid offset table-row (0x2A 0) + 2 set-bit 6
+ invalid offset table-row (0x2A 0) + 2 set-bit 7
+ invalid offset table-row (0x2A 0) + 2 set-bit 8
+ invalid offset table-row (0x2A 0) + 2 set-bit 9
+ invalid offset table-row (0x2A 0) + 2 set-bit 10
+ invalid offset table-row (0x2A 0) + 2 set-bit 11
+ invalid offset table-row (0x2A 0) + 2 set-bit 12
+ invalid offset table-row (0x2A 0) + 2 set-bit 13
+ invalid offset table-row (0x2A 0) + 2 set-bit 14
+ invalid offset table-row (0x2A 0) + 2 set-bit 15
+
+ #variance 0x3 is invalid
+ invalid offset table-row (0x2A 0) + 2 set-ushort 0x3
+
+ #bad or null owner
+ invalid offset table-row (0x2A 0) + 4 set-ushort 0
+ invalid offset table-row (0x2A 0) + 4 set-ushort 0x8800
+ invalid offset table-row (0x2A 0) + 4 set-ushort 0x8801
+
+ #bad or empty name
+ invalid offset table-row (0x2A 0) + 6 set-ushort 0
+ invalid offset table-row (0x2A 0) + 6 set-ushort 0x8800
+
+ #wrong order
+ invalid offset table-row (0x2A 0) set-ushort 1,
+ offset table-row (0x2A 1) set-ushort 0
+
+ #not monotonically growing
+ invalid offset table-row (0x2A 0) set-ushort 0,
+ offset table-row (0x2A 1) set-ushort 0
+
+ #start big
+ invalid offset table-row (0x2A 0) set-ushort 1,
+ offset table-row (0x2A 1) set-ushort 2
+
+ #step bigger than 1
+ invalid offset table-row (0x2A 0) set-ushort 0,
+ offset table-row (0x2A 1) set-ushort 2
+
+}