[runtime] Fix "make distcheck"
[mono-project.git] / mono / tests / verifier / make_constrained_test.sh
blob12154b1f12df7c5ced2588897e73aca1c5128e10
1 #! /bin/sh
3 SED="sed"
4 if [ `which gsed 2> /dev/null` ] ; then
5 SED="gsed"
6 fi
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
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
22 // VALIDITY CIL which breaks the ECMA-335 rules.
23 // this CIL should fail verification by a conforming CLI verifier.
25 .assembly '${TEST_NAME}_generated'
27 .hash algorithm 0x00008004
28 .ver 0:0:0:0
31 .assembly extern mscorlib
33 .ver 1:0:5000:0
34 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
37 .method public static void GlobalMethod1() cil managed
39 ret
42 .method public static void GlobalMethod2(int32 a) cil managed
44 ret
47 .class ClassA extends [mscorlib]System.Object
49 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
51 .maxstack 8
52 ldarg.0
53 call instance void object::.ctor()
54 ret
57 .method public void Method1() cil managed
59 ret
62 .method public void Method2(int32 a) cil managed
64 ret
67 .method public virtual void VirtMethod() cil managed
69 ret
73 .class ClassB extends [mscorlib]System.Object
75 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
77 .maxstack 8
78 ldarg.0
79 call instance void object::.ctor()
80 ret
85 .class ClassC extends ClassA
87 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
89 .maxstack 8
90 ldarg.0
91 call instance void ClassA::.ctor()
92 ret
95 .method public virtual final void VirtMethod() cil managed
97 ret
101 .class interface abstract InterfaceA
103 .method public abstract virtual instance void AbsMethod () cil managed
108 .class ImplIfaceA extends [mscorlib]System.Object implements InterfaceA
110 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
112 .maxstack 8
113 ldarg.0
114 call instance void object::.ctor()
115 ret
118 .method public virtual instance void AbsMethod () cil managed
124 .class sealed MyValueType extends [mscorlib]System.ValueType
126 .field private int32 v
128 .method public instance void Method ()
133 .method public virtual instance int32 GetHashCode()
135 ldc.i4.0
141 .class BaseClass extends [mscorlib]System.Object
143 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
145 .maxstack 8
146 ldarg.0
147 call instance void object::.ctor()
148 ret
152 .method public virtual void VirtMethod ()
159 .class Driver
162 .method public virtual void VirtMethod ()
167 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
169 .maxstack 8
170 ldarg.0
171 call instance void object::.ctor()
172 ret
175 .method public void MemberMain() cil managed
177 .maxstack 8
178 .locals init (ARG_TYPE V_0)
180 ldloca 0
181 LOAD_OP
182 constrained. CONSTRAINED_TYPE
183 OPCODE
185 leave END
187 END:
191 .method public static void Main() cil managed
193 .entrypoint
194 .maxstack 8
196 .try {
197 newobj void Driver::.ctor()
198 call void Driver::MemberMain()
200 leave END
201 } catch [mscorlib]System.NullReferenceException {
202 leave END
205 END:
210 //EOF