2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 28 Feb 2008 17:09:10 +0000 (17:09 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Thu, 28 Feb 2008 17:09:10 +0000 (17:09 -0000)
* invalid_refanytype_null_stack_top.il: New test for refanytype opcode.

* invalid_refanytype_invalid_stack_top.il: Same.

* valid_refanytype.il: Same.

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

mono/tests/verifier/ChangeLog
mono/tests/verifier/invalid_refanytype_invalid_stack_top.il [new file with mode: 0644]
mono/tests/verifier/invalid_refanytype_null_stack_top.il [new file with mode: 0644]
mono/tests/verifier/valid_refanytype.il [new file with mode: 0644]

index 1009bd92452179bc8675233095034812e26397bb..337005f603dde33cacf01c3f7d3c97c7b741ea63 100644 (file)
@@ -1,3 +1,11 @@
+2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * invalid_refanytype_null_stack_top.il: New test for refanytype opcode.
+
+       * invalid_refanytype_invalid_stack_top.il: Same.
+
+       * valid_refanytype.il: Same.
+
 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
 
        * make_mkrefany.il: New test generator for mkrefany opcode.
diff --git a/mono/tests/verifier/invalid_refanytype_invalid_stack_top.il b/mono/tests/verifier/invalid_refanytype_invalid_stack_top.il
new file mode 100644 (file)
index 0000000..54b8cdc
--- /dev/null
@@ -0,0 +1,47 @@
+//
+// vararg.il: Tests for varargs and refany instructions
+//
+
+.assembly extern mscorlib {
+}
+
+.assembly extern TestDriver {
+}
+
+.assembly 'refanyval' {
+}
+
+.module 'refanyval.exe'
+
+.class public auto ansi Tests extends [mscorlib]System.Object {
+       .method public static vararg int32 varargtest_refany (int32 last) cil managed {
+               .maxstack 8
+               .locals init (valuetype [mscorlib]System.ArgIterator it)
+
+               ldloca.s it
+               arglist
+               call instance void [mscorlib]System.ArgIterator::.ctor (valuetype [mscorlib]System.RuntimeArgumentHandle)
+
+               ldc.i4.0
+
+               refanytype
+
+               pop
+               ldc.i4.0
+
+               ret
+       }       
+
+       .method public static int32 Main () cil managed {
+               .maxstack 16
+               .entrypoint
+
+               ldc.i4 1
+               ldc.i4 0
+               call vararg int32 Tests::varargtest_refany (int32, ..., int32)
+
+
+        ret
+
+       }
+}
diff --git a/mono/tests/verifier/invalid_refanytype_null_stack_top.il b/mono/tests/verifier/invalid_refanytype_null_stack_top.il
new file mode 100644 (file)
index 0000000..1361eb4
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// vararg.il: Tests for varargs and refany instructions
+//
+
+.assembly extern mscorlib {
+}
+
+.assembly extern TestDriver {
+}
+
+.assembly 'refanyval' {
+}
+
+.module 'refanyval.exe'
+
+.class public auto ansi Tests extends [mscorlib]System.Object {
+       .method public static vararg int32 varargtest_refany (int32 last) cil managed {
+               .maxstack 8
+               .locals init (valuetype [mscorlib]System.ArgIterator it)
+
+               ldloca.s it
+               arglist
+               call instance void [mscorlib]System.ArgIterator::.ctor (valuetype [mscorlib]System.RuntimeArgumentHandle)
+
+               ldc.i4.0
+
+               refanyval int32
+               ldind.i4
+
+               ret
+       }       
+
+       .method public static int32 Main () cil managed {
+               .maxstack 16
+               .entrypoint
+
+               ldc.i4 1
+               ldc.i4 0
+               call vararg int32 Tests::varargtest_refany (int32, ..., int32)
+
+
+        ret
+
+       }
+}
diff --git a/mono/tests/verifier/valid_refanytype.il b/mono/tests/verifier/valid_refanytype.il
new file mode 100644 (file)
index 0000000..116b2f4
--- /dev/null
@@ -0,0 +1,48 @@
+//
+// vararg.il: Tests for varargs and refany instructions
+//
+
+.assembly extern mscorlib {
+}
+
+.assembly extern TestDriver {
+}
+
+.assembly 'refanyval' {
+}
+
+.module 'refanyval.exe'
+
+.class public auto ansi Tests extends [mscorlib]System.Object {
+       .method public static vararg int32 varargtest_refany (int32 last) cil managed {
+               .maxstack 8
+               .locals init (valuetype [mscorlib]System.ArgIterator it)
+
+               ldloca.s it
+               arglist
+               call instance void [mscorlib]System.ArgIterator::.ctor (valuetype [mscorlib]System.RuntimeArgumentHandle)
+
+               ldloca.s it
+               call instance typedref [mscorlib]System.ArgIterator::GetNextArg ()
+               refanytype
+               call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+
+               pop
+
+               ldc.i4.0
+               ret
+       }       
+
+       .method public static int32 Main () cil managed {
+               .maxstack 16
+               .entrypoint
+
+               ldc.i4 1
+               ldc.i4 0
+               call vararg int32 Tests::varargtest_refany (int32, ..., int32)
+
+
+        ret
+
+       }
+}