[CI] ignore appdomain-unload-asmload.exe on interp and full-aot
[mono.git] / mono / tests / verifier / make_generic_argument_constraints_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_SRC=$3
11 TEST_DEST=$4
12 TEST_INST_TYPE=$5
13
14 INST_TYPE="DefaultArgument";
15 if [ "$TEST_INST_TYPE" != "" ]; then
16         INST_TYPE="$TEST_INST_TYPE";
17 fi
18
19
20
21 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
22 TEST_FILE=${TEST_NAME}_generated.il
23 echo $TEST_FILE
24 $SED -e "s/INIT/${TEST_INIT}/g" -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/TARGET_CONSTRAINT/${TEST_DEST}/g" -e "s/SOURCE_CONSTRAINT/${TEST_SRC}/g" > $TEST_FILE <<//EOF
25
26 // VALIDITY CIL which breaks the ECMA-335 rules. 
27 // this CIL should fail verification by a conforming CLI verifier.
28
29 .assembly '${TEST_NAME}_generated'
30 {
31   .hash algorithm 0x00008004
32   .ver  0:0:0:0
33 }
34
35 .assembly extern mscorlib
36 {
37   .ver 2:0:0:0
38   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
39 }
40
41 .module bne_with_generic_type_type.exe
42
43 .class interface public auto ansi abstract IfaceA
44 {
45
46
47 .class interface public auto ansi abstract IfaceB
48 {
49
50
51 .class public auto ansi Class extends [mscorlib]System.Object
52 {
53         .method public hidebysig  specialname  rtspecialname instance default void '.ctor' ()  cil managed 
54         {
55             .maxstack 8
56                 ldarg.0 
57             call instance void object::'.ctor'()
58             ret 
59         }
60
61
62 .class public auto ansi DefaultArgument extends Class implements IfaceA, IfaceB
63 {
64         .method public hidebysig  specialname  rtspecialname instance default void '.ctor' ()  cil managed 
65         {
66             .maxstack 8
67                 ldarg.0 
68             call instance void Class::'.ctor'()
69             ret 
70         }
71
72
73
74
75 .class public auto ansi beforefieldinit Test
76         extends [mscorlib]System.Object
77 {
78
79         .method public hidebysig  specialname  rtspecialname instance default void '.ctor' ()  cil managed 
80         {
81             .maxstack 8
82                 ldarg.0 
83             call instance void object::'.ctor'()
84             ret 
85         }
86
87         .method public static void Method< SOURCE_CONSTRAINT T> ()
88         {
89                 .locals init ()
90                 ret
91         }
92 }
93
94 .class public auto ansi beforefieldinit Test2< TARGET_CONSTRAINT T>
95         extends [mscorlib]System.Object
96 {
97         .method public static void Method ()
98         {
99                 .locals init ()
100                 call void class Test::Method<!T>()
101                 ret
102         }
103 }
104
105 .method public static int32 Main ()
106 {
107         .entrypoint
108         .maxstack 8
109
110         call void class Test2< $INST_TYPE >::Method()
111
112         ldc.i4.0
113         ret 
114 }
115
116 //EOF