2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / make_field_valuetype_test.sh
1 #! /bin/sh
2
3 TEST_NAME=$1
4 TEST_VALIDITY=$2
5 TEST_OP=$3
6 TEST_LOAD=$4
7
8 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
9 TEST_FILE=${TEST_NAME}_generated.il
10 echo $TEST_FILE
11 sed -e "s/VALIDITY/${TEST_VALIDITY}/g"  -e "s/LOAD/${TEST_LOAD}/g"  -e "s/OPCODE/${TEST_OP}/g" > $TEST_FILE <<//EOF
12
13 .assembly '${TEST_NAME}_generated'
14 {
15   .hash algorithm 0x00008004
16   .ver  0:0:0:0
17 }
18
19 // VALIDITY CIL which breaks the ECMA-335 rules. 
20 // this CIL should fail verification by a conforming CLI verifier.
21
22 .assembly extern mscorlib
23 {
24   .ver 1:0:5000:0
25   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
26 }
27
28 .class sealed MyValueType extends [mscorlib]System.ValueType
29 {
30         .field public int32 fld
31 }
32
33 .method public static int32 Main() cil managed
34 {
35         .entrypoint
36         .maxstack 2
37         .locals init (
38                 MyValueType VAR1,
39                 MyValueType& VAR2
40         )
41         ldloca.s 0
42     initobj MyValueType
43         ldloca.s 0
44         stloc.1
45         LOAD
46         OPCODE // VALIDITY.
47         pop
48         ldc.i4.0
49         ret
50 }
51 //EOF