2010-05-11 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / make_stelem_test.sh
blob0a6fcc5b8e293fa54294b892f6040de9a1f59567
1 #! /bin/sh
3 TEST_NAME=$1
4 TEST_VALIDITY=$2
5 TEST_ARR=$3
6 TEST_IDX=$4
7 TEST_VAL=$5
8 TEST_LD=$6
11 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
12 TEST_FILE=${TEST_NAME}_generated.il
13 echo $TEST_FILE
14 sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/ARR/${TEST_ARR}/g" -e "s/IDX/${TEST_IDX}/g" -e "s/VAL/${TEST_VAL}/g" -e "s/LD/${TEST_LD}/g" > $TEST_FILE <<//EOF
16 // VALIDITY CIL which breaks the ECMA-335 rules.
17 // this CIL should fail verification by a conforming CLI verifier.
19 .assembly '${TEST_NAME}_generated'
21 .hash algorithm 0x00008004
22 .ver 0:0:0:0
25 .class ClassA extends [mscorlib]System.Object
27 .method public hidebysig specialname rtspecialname
28 instance default void .ctor () cil managed
30 .maxstack 8
31 ldarg.0
32 call instance void object::.ctor()
33 ret
37 .class ClassSubA extends ClassA
39 .method public hidebysig specialname rtspecialname
40 instance default void .ctor () cil managed
42 .maxstack 8
43 ldarg.0
44 call instance void ClassA::.ctor()
45 ret
49 .class public auto ansi sealed MyStruct
50 extends [mscorlib]System.ValueType
52 .field public int32 foo
55 .method public static void foo() cil managed
57 .maxstack 8
58 .locals init (
59 MyStruct l_0 )
60 ldc.i4.1
61 ARR
62 IDX
63 VAL
64 LD // VALIDITY.
65 ret
68 .method public static int32 Main() cil managed
70 .maxstack 8
71 .entrypoint
72 .try {
73 call void foo ()
74 leave END
75 } catch [mscorlib]System.ArrayTypeMismatchException {
76 pop
77 leave END
78 } catch [mscorlib]System.NullReferenceException {
79 pop
80 leave END
83 END: ldc.i4.0
84 ret
86 //EOF