Merge pull request #231 from linquize/a853199c497bb0977970974303fac7e42080809d
[mono.git] / mono / tests / verifier / make_ldvirtftn_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_LDFTN_OP=$3
11 TEST_OP=$4
12
13 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
14 echo $TEST_FILE
15 TEST_TYPE1=`echo $TEST_TYPE1 | $SED -s 's/&/\\\&/'`
16 $SED -e "s/OPCODE/${TEST_OP}/g" -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/LDFTN_OP/${TEST_LDFTN_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 .assembly 'ldftn_test'
24 {
25   .hash algorithm 0x00008004
26   .ver  0:0:0:0
27 }
28 .module ldftn_test.exe
29
30 .class public Test
31         extends [mscorlib]System.Object
32 {
33         .method public hidebysig  specialname  rtspecialname instance default void .ctor ()  cil managed 
34         {
35                 .maxstack 8
36                 ldarg.0
37                 call instance void object::.ctor()
38                 ret 
39         }
40
41         .method public virtual void VirtMethod ()
42         {
43                 ret
44         }
45
46         .method public void Method ()
47         {
48                 ret
49         }
50
51         .method public static void StaticMethod ()
52         {
53                 ret
54         }
55 }
56
57 .class sealed MyValueType extends [mscorlib]System.ValueType
58 {
59         .field private int32 v
60 }
61
62 .class public auto ansi beforefieldinit Driver
63         extends [mscorlib]System.Object
64 {
65         .method public static void Method ()
66         {
67                 ret
68         }
69
70         .method public virtual void VirtMethod ()
71         {
72                 ret
73         }
74
75         .method public static void Foo (native int bla) {
76                 ret
77         }
78
79         .method public static int32 Main ()
80         {
81                 .entrypoint
82                 .maxstack 2
83                 .locals init (Test V0, MyValueType V1)
84                 newobj void class Test::.ctor()
85                 stloc.0
86
87                 OPCODE // VALIDITY
88                 LDFTN_OP
89                 pop
90
91                 ldc.i4.0
92                 ret 
93         }
94 }
95 //EOF