+2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * make_invalid_ret_type.sh: Added. Generate return site tests
+ for invalid return types.
+
+ * make_tests.sh: Add tests using make_invalid_ret_type.sh.
+
2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
* unverifiable_callvirt_static_method.il: Added. Test for callvirt and
--- /dev/null
+#! /bin/sh
+
+TEST_NAME=$1
+TEST_VALIDITY=$2
+TEST_TYPE=$3
+
+
+TEST_FILE=${TEST_VALIDITY}_${TEST_NAME}_generated.il
+echo $TEST_FILE
+
+
+sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/TYPE/${TEST_TYPE}/g" > $TEST_FILE <<//EOF
+
+// VALIDITY CIL which breaks the ECMA-335 rules.
+// this CIL should fail verification by a conforming CLI verifier.
+
+.assembly '${TEST_NAME}_generated'
+{
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+
+.class public auto ansi beforefieldinit Driver extends [mscorlib]System.Object
+{
+ .method public static hidebysig default TYPE Foo () cil managed
+ {
+ .maxstack 8
+ .locals init (TYPE V_0)
+ ldloc.0
+ ret
+ }
+
+ .method public static hidebysig default int32 Main () cil managed
+ {
+ .entrypoint
+ .maxstack 2
+ .locals init ()
+ call TYPE class Driver::Foo()
+ pop
+ ldc.i4.0
+ ret
+ }
+}
+
+//EOF
+#method definition return type validation
+./make_invalid_ret_type.sh ret_type_byref unverifiable "int32\&"
+./make_invalid_ret_type.sh ret_type_typedref unverifiable "typedref"
+./make_invalid_ret_type.sh ret_type_arg_interator unverifiable "valuetype [mscorlib]System.ArgIterator"
+./make_invalid_ret_type.sh ret_type_arg_handle unverifiable "valuetype [mscorlib]System.RuntimeArgumentHandle"
+
+
+