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