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