[msvc] Update csproj files
[mono.git] / mono / tests / verifier / make_constrained_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_ARG_TYPE=$3
11 TEST_CONSTRAINED_TYPE=$4
12 TEST_OP=$5
13 TEST_LOAD_OP=$6
14
15
16
17 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
18 TEST_FILE=${TEST_NAME}_generated.il
19 echo $TEST_FILE
20 $SED -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/CONSTRAINED_TYPE/${TEST_CONSTRAINED_TYPE}/g" -e "s/ARG_TYPE/${TEST_ARG_TYPE}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/LOAD_OP/${TEST_LOAD_OP}/g" > $TEST_FILE <<//EOF
21
22 // VALIDITY CIL which breaks the ECMA-335 rules. 
23 // this CIL should fail verification by a conforming CLI verifier.
24
25 .assembly '${TEST_NAME}_generated'
26 {
27   .hash algorithm 0x00008004
28   .ver  0:0:0:0
29 }
30
31 .assembly extern mscorlib
32 {
33   .ver 1:0:5000:0
34   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
35 }
36
37 .method public static void GlobalMethod1() cil managed
38 {
39         ret
40 }
41
42 .method public static void GlobalMethod2(int32 a) cil managed
43 {
44         ret
45 }
46
47 .class ClassA extends [mscorlib]System.Object
48 {
49         .method public hidebysig  specialname rtspecialname instance default void .ctor () cil managed 
50         {
51                 .maxstack 8
52                 ldarg.0 
53                 call instance void object::.ctor()
54                 ret 
55         }
56
57         .method public  void Method1() cil managed
58         {
59                 ret
60         }
61
62         .method public  void Method2(int32 a) cil managed
63         {
64                 ret
65         }
66
67         .method public virtual void VirtMethod() cil managed
68         {
69                 ret
70         }
71 }
72
73 .class ClassB extends [mscorlib]System.Object
74 {
75         .method public hidebysig  specialname rtspecialname instance default void .ctor () cil managed 
76         {
77                 .maxstack 8
78                 ldarg.0 
79                 call instance void object::.ctor()
80                 ret 
81         }
82
83 }
84
85 .class ClassC extends ClassA
86 {
87         .method public hidebysig  specialname rtspecialname instance default void .ctor () cil managed 
88         {
89                 .maxstack 8
90                 ldarg.0 
91                 call instance void ClassA::.ctor()
92                 ret 
93         }
94
95         .method public virtual final void VirtMethod() cil managed
96         {
97                 ret
98         }
99 }
100
101 .class interface abstract InterfaceA
102 {
103         .method public abstract virtual instance void AbsMethod () cil managed 
104         {
105         }
106 }
107
108 .class ImplIfaceA extends [mscorlib]System.Object implements InterfaceA
109 {
110         .method public hidebysig  specialname rtspecialname instance default void .ctor () cil managed 
111         {
112                 .maxstack 8
113                 ldarg.0 
114                 call instance void object::.ctor()
115                 ret 
116         }
117
118         .method public virtual instance void AbsMethod () cil managed 
119         {
120                 ret
121         }
122 }
123
124 .class sealed MyValueType extends [mscorlib]System.ValueType
125 {
126         .field private int32 v
127
128         .method public instance void Method ()
129         {
130                 ret
131         }
132
133         .method public virtual instance int32 GetHashCode()
134         {
135                 ldc.i4.0
136                 ret
137         }
138 }
139
140
141 .class BaseClass extends [mscorlib]System.Object
142 {
143         .method public hidebysig  specialname rtspecialname instance default void .ctor () cil managed 
144         {
145                 .maxstack 8
146                 ldarg.0 
147                 call instance void object::.ctor()
148                 ret 
149         }
150
151
152         .method public virtual void VirtMethod ()
153         {
154                 ret
155         }
156 }
157
158
159 .class Driver
160 {
161
162         .method public virtual void VirtMethod ()
163         {
164                 ret
165         }
166
167         .method public hidebysig  specialname rtspecialname instance default void .ctor () cil managed 
168         {
169                 .maxstack 8
170                 ldarg.0 
171                 call instance void object::.ctor()
172                 ret 
173         }
174
175         .method public void MemberMain() cil managed
176         {
177                 .maxstack 8
178                 .locals init (ARG_TYPE V_0)
179
180                 ldloca 0
181                 LOAD_OP
182                 constrained. CONSTRAINED_TYPE
183                 OPCODE
184
185                 leave END
186
187 END:
188                 ret
189         }
190
191         .method public static void Main() cil managed
192         {
193                 .entrypoint
194                 .maxstack 8
195
196                 .try {
197                         newobj void Driver::.ctor()
198                         call void Driver::MemberMain()
199
200                         leave END
201                 } catch [mscorlib]System.NullReferenceException {
202                         leave END
203                 }
204
205 END:
206                 ret
207         }
208
209 }
210 //EOF