2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / make_rethrow_test.sh
1 #! /bin/sh
2
3 TEST_NAME=$1
4 TEST_VALIDITY=$2
5 TEST_POS=$3
6 # Only 1 TEST_OP variable should be set.
7
8
9 declare OPCODE_${TEST_POS}="rethrow"
10
11
12 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
13 TEST_FILE=${TEST_NAME}_generated.il
14 echo $TEST_FILE
15 sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/LOCAL/${TEST_LOCAL}/g" > $TEST_FILE <<//EOF
16 // VALIDITY
17
18 .assembly '${TEST_NAME}_generated'
19 {
20   .hash algorithm 0x00008004
21   .ver  0:0:0:0
22 }
23
24 .method public static int32 Main() cil managed
25 {
26         .entrypoint
27         .maxstack 2
28         ${OPCODE_1}
29         .try
30         {
31                 nop
32                 ${OPCODE_2}
33                 leave END
34         }
35         catch [mscorlib]System.NullReferenceException 
36         {
37                 pop
38                 ${OPCODE_3}
39                 .try
40                 {
41                         nop
42                         ${OPCODE_4}
43                         leave END
44                 }
45                 catch [mscorlib]System.NullReferenceException 
46                 {
47                         pop
48                         ${OPCODE_5}
49                         leave END
50                 }
51
52
53                 .try 
54                 {
55                         nop
56                         leave END
57                 }
58                 filter
59                 {
60                         pop
61                         ${OPCODE_6}
62                         ldc.i4.0
63                         endfilter
64                 }
65                 {
66                         nop
67                         ${OPCODE_7}
68                         leave END
69                 }
70
71                 leave END
72         }
73         .try
74         {
75                 nop
76                 leave END
77         }
78         finally
79         {
80                 nop
81                 ${OPCODE_8}
82                 endfinally
83         }
84
85         .try 
86         {
87                 nop
88                 leave END
89         }
90         filter
91         {
92                 pop
93                 ${OPCODE_9}
94                 ldc.i4.0
95                 endfilter
96         }
97         {
98                 nop
99                 ${OPCODE_10}
100                 leave END
101         }
102
103 END:
104         ldc.i4.0
105         ret
106 }
107 //EOF