* BindingSourceTest.cs: New Filter/RemoveFilter tests.
[mono.git] / mono / tests / verifier / make_delegate_test.sh
1 #! /bin/sh
2
3 TEST_NAME=$1
4 TEST_VALIDITY=$2
5 TEST_LDFTN_OP=$3
6 TEST_DELEGATE_NAME=$4
7 TEST_OP=$5
8 TEST_IS_STATIC=$6
9
10 if [ "$TEST_IS_STATIC" ]; then
11         METHOD_STATIC="static";
12         EXTRA_ARG="$TEST_IS_STATIC par, ";
13 fi
14
15 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
16 echo $TEST_FILE
17 TEST_TYPE1=`echo $TEST_TYPE1 | sed -s 's/&/\\\&/'`
18 sed -e "s/OPCODE/${TEST_OP}/g" -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/DELEGATE_NAME/${TEST_DELEGATE_NAME}/g" -e "s/LDFTN_OP/${TEST_LDFTN_OP}/g" > $TEST_FILE <<//EOF
19
20 .assembly extern mscorlib
21 {
22   .ver 2:0:0:0
23   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
24 }
25 .assembly 'delegate_test'
26 {
27   .hash algorithm 0x00008004
28   .ver  0:0:0:0
29 }
30 .module delegate_test.exe
31
32 .class private sequential ansi sealed beforefieldinit MyValueType extends [mscorlib]System.ValueType
33 {
34         .field  private  int32 dd
35
36         .method public virtual hidebysig instance default string ToString ()  cil managed 
37         {
38                 .maxstack 8
39                 ldstr "test"
40                 ret 
41         }
42
43         .method public hidebysig instance default void NonVirtMethod ()  cil managed 
44         {
45                 .maxstack 8
46                 ret 
47         }
48
49 }
50
51 .class public auto ansi sealed ToStringDelegate extends [mscorlib]System.MulticastDelegate
52 {
53         .method public hidebysig  specialname  rtspecialname 
54                 instance default void .ctor (object 'object', native int 'method')  runtime managed 
55         {
56         }
57
58         .method public virtual  hidebysig  newslot
59                 instance default string Invoke ()  runtime managed 
60         {
61         }
62
63         .method public virtual  hidebysig  newslot 
64                 instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
65         {
66         }
67
68         .method public virtual  hidebysig  newslot 
69                 instance default string EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
70         {
71         }
72 }
73
74 .class public auto ansi sealed DelegateNoArg extends [mscorlib]System.MulticastDelegate
75 {
76         .method public hidebysig  specialname  rtspecialname 
77                 instance default void .ctor (object 'object', native int 'method')  runtime managed 
78         {
79         }
80
81         .method public virtual  hidebysig  newslot
82                 instance default void Invoke ()  runtime managed 
83         {
84         }
85
86         .method public virtual  hidebysig  newslot 
87                 instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
88         {
89         }
90
91         .method public virtual  hidebysig  newslot 
92                 instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
93         {
94         }
95
96
97 .class public auto ansi sealed DelegateIntArg extends [mscorlib]System.MulticastDelegate
98 {
99         .method public hidebysig  specialname  rtspecialname 
100                 instance default void .ctor (object 'object', native int 'method')  runtime managed 
101         {
102         }
103
104         .method public virtual  hidebysig  newslot
105                 instance default void Invoke (int32 d)  runtime managed 
106         {
107         }
108
109         .method public virtual  hidebysig  newslot 
110                 instance default class [mscorlib]System.IAsyncResult BeginInvoke (int32 d, class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
111         {
112         }
113
114         .method public virtual  hidebysig  newslot 
115                 instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
116         {
117         }
118
119
120 .class public Parent
121         extends [mscorlib]System.Object
122 {
123         .method public hidebysig  specialname  rtspecialname instance default void .ctor ()  cil managed 
124         {
125                 .maxstack 8
126                 ldarg.0
127                 call instance void object::.ctor()
128                 ret 
129         }
130
131         .method public virtual void VirtMethod ()
132         {
133                 ret
134         }
135
136         .method public virtual void ParentVirtMethod ()
137         {
138                 ret
139         }
140
141         .method public void ParentMethod ()
142         {
143                 ret
144         }
145
146         .method public static void ParentStaticMethod ()
147         {
148                 ret
149         }
150
151         .method public virtual void SealedVirtMethod ()
152         {
153                 ret
154         }
155
156 }
157
158 .class public auto ansi beforefieldinit Driver
159         extends Parent
160 {
161         .method public hidebysig  specialname  rtspecialname instance default void .ctor ()  cil managed 
162         {
163                 .maxstack 8
164                 ldarg.0
165                 call instance void Parent::.ctor()
166                 ret 
167         }
168
169         .method public static void Method ()
170         {
171                 ret
172         }
173
174         .method public static void Method2 (int32 a)
175         {
176                 ret
177         }
178
179         .method public virtual void VirtMethod ()
180         {
181                 ret
182         }
183
184         .method public virtual void VirtMethod2 (int32 d)
185         {
186                 ret
187         }
188
189         .method public void NonVirtMethod ()
190         {
191                 ret
192         }
193
194         .method public void NonVirtMethod2 (int32 d)
195         {
196                 ret
197         }
198
199         .method public final virtual void SealedVirtMethod ()
200         {
201                 ret
202         }
203
204         .method public ${METHOD_STATIC} void DriverExec (${EXTRA_ARG} int32 V_1)
205         {
206                 .maxstack 8
207                 .locals init (MyValueType V_0)
208         
209                 OPCODE
210                 LDFTN_OP
211 DELEGATE_OP:
212                 newobj instance void class DELEGATE_NAME::.ctor(object, native int) // VALIDITY
213                 pop
214
215                 ret
216         }
217
218         .method public static int32 Main ()
219         {
220                 .entrypoint
221                 .maxstack 2
222                 .locals init ()
223                 .try {
224                         newobj instance void Driver::.ctor()
225                         ldc.i4.0
226                         call void Driver::DriverExec (${EXTRA_ARG} int32)
227                         leave END
228                 } catch [mscorlib]System.ArgumentException
229                 {
230                         pop
231                         leave END
232         
233                 }
234 END:
235                 ldc.i4.0
236                 ret 
237
238         }
239 }
240 //EOF