Merge pull request #231 from linquize/a853199c497bb0977970974303fac7e42080809d
[mono.git] / mono / tests / verifier / make_store_indirect_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_OP=$3
11 TEST_TYPE1=$4
12 TEST_TYPE2=$5
13
14 T1_VAL=`echo $TEST_TYPE1 | $SED -s 's/\\\&//g'`
15
16 TEST_FILE=`echo ${TEST_VALIDITY}_${TEST_NAME}_generated.il`
17 echo $TEST_FILE
18
19 $SED -e "s/TYPE1/${TEST_TYPE1}/g" -e "s/T1_VAL/${T1_VAL}/g" -e "s/TYPE2/${TEST_TYPE2}/g"  -e "s/OP/${TEST_OP}/g" > $TEST_FILE <<//EOF
20
21 .assembly extern mscorlib
22 {
23   .ver 2:0:0:0
24   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
25 }
26
27 .assembly 'load_indirect_test'
28 {
29   .hash algorithm 0x00008004
30   .ver  0:0:0:0
31 }
32
33 .module load_indirect_test.exe
34
35 .class Class extends [mscorlib]System.Object
36 {
37     .field public int32 valid
38 }
39
40 .class public Template\`1<T>
41         extends [mscorlib]System.Object
42 {
43 }
44
45 .class public auto ansi sealed MyStruct
46         extends [mscorlib]System.ValueType
47 {
48         .field public int32 foo
49 }
50
51
52 .method public static int32 Main ()
53 {
54         .entrypoint
55         .maxstack 8
56         .locals init (TYPE1 V_0, TYPE2 V_1, T1_VAL V_2)
57         ldloca 2
58         stloc.0
59         ldloc.0
60         ldloc.1
61         OP
62         ldc.i4.0
63         ret 
64 }
65
66 //EOF