2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / make_unbox_any_test.sh
1 #! /bin/sh
2
3 TEST_NAME=$1
4 TEST_VALIDITY=$2
5 TEST_TYPE1=$3
6 TEST_TYPE2=$4
7 TEST_POST_OP=$5
8 TEST_INIT=$6
9
10 TEST_FILE=`echo ${TEST_VALIDITY}_${TEST_NAME} | sed -e 's/ /_/g' -e 's/\./_/g' -e 's/&/mp/g' -e 's/\[/_/g' -e 's/\]/_/g'`_generated.il
11 echo $TEST_FILE
12 sed -e "s/INIT_OP/${TEST_INIT}/g"  -e "s/TYPE1/${TEST_TYPE1}/g" -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/TYPE2/${TEST_TYPE2}/g"  -e "s/POST_OP/${TEST_POST_OP}/g"> $TEST_FILE <<//EOF
13
14 .assembly extern mscorlib
15 {
16   .ver 2:0:0:0
17   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
18 }
19
20 .assembly 'ldobj_test'
21 {
22   .hash algorithm 0x00008004
23   .ver  0:0:0:0
24 }
25
26 .module ldobj.exe
27
28
29 .class Class extends [mscorlib]System.Object
30 {
31     .field public int32 valid
32 }
33
34 .class public Template\`1<T>
35         extends [mscorlib]System.Object
36 {
37 }
38
39 .class sealed public StructTemplate\`1<T>
40         extends [mscorlib]System.ValueType
41 {
42         .field public !0 t
43 }
44
45 .class sealed public StructTemplate2\`1<T>
46         extends [mscorlib]System.ValueType
47 {
48         .field public !0 t
49 }
50
51
52 .class public auto ansi sealed MyStruct
53         extends [mscorlib]System.ValueType
54 {
55         .field public int32 foo
56 }
57
58
59 .class public auto ansi sealed MyEnum
60         extends [mscorlib]System.Enum
61 {
62     .field  public specialname  rtspecialname  int32 value__
63     .field public static  literal  valuetype MyEnum B = int32(0x00000000)
64     .field public static  literal  valuetype MyEnum C = int32(0x00000001)
65 }
66
67 .method public static int32 Main ()
68 {
69         .entrypoint
70         .maxstack 8
71         .locals init (TYPE1 V_0, TYPE2 V_1)
72
73         .try {
74                 INIT_OP
75                 stloc.0
76
77                 ldloc.0
78
79                 unbox.any TYPE2 // VALIDITY
80                 POST_OP
81                 leave END
82         } catch [mscorlib]System.NullReferenceException {
83                 pop
84                 leave END
85         }
86
87 END:
88         ldc.i4.0
89         ret 
90 }
91
92 //EOF