[CI] ignore appdomain-unload-asmload.exe on interp and full-aot
[mono.git] / mono / tests / verifier / make_boxed_genarg_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_BEFORE_OP=$4
12 TEST_CONSTRAINT_TYPE=$5
13
14 if [ "x$TEST_CONSTRAINT_TYPE" = "x" ]; then
15         TEST_CONSTRAINT_TYPE="IFace";
16 fi
17
18
19 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
20 echo $TEST_FILE
21 $SED  -e "s/TYPE/${TEST_TYPE}/g" -e "s/OPCODE/${TEST_OP}/g"  -e "s/BEFORE_OP/${TEST_BEFORE_OP}/g"> $TEST_FILE <<//EOF
22
23 .assembly extern mscorlib
24 {
25   .ver 2:0:0:0
26   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
27 }
28
29 .assembly 'boxed_generic_arg_test'
30 {
31   .hash algorithm 0x00008004
32   .ver  0:0:0:0
33 }
34
35 .module boxed_genarg.exe
36
37
38 .class interface public auto ansi abstract IFace
39 {
40         .method public virtual hidebysig newslot abstract instance default void Tst ()  cil managed 
41         {
42         }
43 }
44
45 .class public auto ansi beforefieldinit BaseClass extends [mscorlib]System.Object
46 {
47         .field public int32 fld
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
58 .class public auto ansi beforefieldinit IFaceImpl extends BaseClass implements IFace
59 {
60         .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed 
61         {
62                 .maxstack 8
63                 ldarg.0 
64                 call instance void BaseClass::'.ctor'()
65                 ret 
66         }
67
68         .method public final virtual hidebysig newslot instance default void Tst () cil managed 
69         {
70                 .maxstack 8
71                 ret 
72         }
73 }
74
75 .class public auto ansi sealed TstDelegate extends [mscorlib]System.MulticastDelegate
76 {
77         .method public hidebysig  specialname  rtspecialname  instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
78         {
79         }
80
81         .method public virtual  hidebysig  newslot instance default void Invoke ()  runtime managed 
82         {
83         }
84
85         .method public virtual  hidebysig  newslot instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
86         {
87         }
88
89         .method public virtual  hidebysig  newslot 
90         instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
91         {
92         }
93 }
94
95 .class public DriverClass<(${TEST_CONSTRAINT_TYPE}) T>
96 {
97         .field !T t
98         .field ${TEST_CONSTRAINT_TYPE} ifField
99
100         .method public hidebysig  specialname  rtspecialname instance default void .ctor (!T A_0)  cil managed 
101         {
102                 .maxstack 8
103                 ldarg.0 
104                 call instance void object::.ctor()
105
106                 ldarg.0
107                 ldarg.1
108                 stfld !0 class DriverClass<!0>::t
109                 ret 
110         }
111
112         .method public void Driver ()
113         {
114                 .maxstack 8
115                 .locals init (!T V_0, ${TEST_CONSTRAINT_TYPE} V_1, !T[] V_2, ${TEST_CONSTRAINT_TYPE}[] V_3)
116
117                 ldc.i4.1
118                 newarr !T
119                 stloc.2
120
121                 ldc.i4.1
122                 newarr ${TEST_CONSTRAINT_TYPE}
123                 stloc.3
124
125                 ldarg.0
126                 ldfld !0 class DriverClass<!0>::t
127                 stloc.0
128
129
130                 BEFORE_OP
131
132                 OPCODE
133
134 TARGET:
135                 leave END
136 END:
137                 ret 
138         }
139
140 }
141
142
143 .method public static int32 Main ()
144 {
145         .entrypoint
146         .maxstack 8
147         .locals init ()
148
149         newobj instance void class IFaceImpl::.ctor()
150
151         newobj instance void class DriverClass<IFaceImpl>::.ctor(!0)
152         call instance void class DriverClass<IFaceImpl>::Driver()
153
154         ldc.i4.0
155         ret 
156 }
157
158 //EOF