2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / make_unbox_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_NO_BOX=$6
9 TEST_BOX="box ${TEST_TYPE1}";
10 if [ "${TEST_NO_BOX}" == "yes" ]; then
11         TEST_BOX="";
12 fi
13
14 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
15 echo $TEST_FILE
16 sed -e "s/BOX_OP/${TEST_BOX}/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
17
18 .assembly extern mscorlib
19 {
20   .ver 2:0:0:0
21   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
22 }
23
24 .assembly 'ldobj_test'
25 {
26   .hash algorithm 0x00008004
27   .ver  0:0:0:0
28 }
29
30 .module ldobj.exe
31
32
33 .class Class extends [mscorlib]System.Object
34 {
35     .field public int32 valid
36 }
37
38 .class public Template\`1<T>
39         extends [mscorlib]System.Object
40 {
41 }
42
43 .class sealed public StructTemplate\`1<T>
44         extends [mscorlib]System.ValueType
45 {
46         .field public !0 t
47 }
48
49 .class sealed public StructTemplate2\`1<T>
50         extends [mscorlib]System.ValueType
51 {
52         .field public !0 t
53 }
54
55
56 .class public auto ansi sealed MyStruct
57         extends [mscorlib]System.ValueType
58 {
59         .field public int32 foo
60 }
61
62
63 .class public auto ansi sealed MyEnum
64         extends [mscorlib]System.Enum
65 {
66     .field  public specialname  rtspecialname  int32 value__
67     .field public static  literal  valuetype MyEnum B = int32(0x00000000)
68     .field public static  literal  valuetype MyEnum C = int32(0x00000001)
69 }
70
71 .method public static int32 Main ()
72 {
73         .entrypoint
74         .maxstack 8
75         .locals init (TYPE1 V_0, TYPE2 V_1)
76         ldloc.0
77         BOX_OP
78         unbox TYPE2 // VALIDITY
79         POST_OP
80         pop
81         ldc.i4.0
82         ret 
83 }
84
85 //EOF