503c112b61537ebea7c1796238f434fd1c181b31
[mono.git] / mono / tests / verifier / make_load_test.sh
1 #! /bin/sh
2
3 TEST_NAME=$1
4 TEST_VALIDITY=$2
5 TEST_OP=$3
6 TEST_PARAMS=$4
7 TEST_LOCALS=$5
8 TEST_ARGS=$6
9 TEST_SIG=$7
10
11 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
12 TEST_FILE=${TEST_NAME}_generated.il
13 echo $TEST_FILE
14 TEST_PARAMS=`echo $TEST_PARAMS | sed -s 's/&/\\\&/'`
15 TEST_LOCALS=`echo $TEST_LOCALS | sed -s 's/&/\\\&/'`
16 sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/PARAMS/${TEST_PARAMS}/g" -e "s/LOCALS/${TEST_LOCALS}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/ARGS/${TEST_ARGS}/g" -e "s/SIG/${TEST_SIG}/g" > $TEST_FILE <<//EOF
17
18 // VALIDITY CIL which breaks the ECMA-335 rules. 
19 // this CIL should fail verification by a conforming CLI verifier.
20
21 .assembly '${TEST_NAME}_generated'
22 {
23   .hash algorithm 0x00008004
24   .ver  0:0:0:0
25 }
26
27 .method public static void foo(PARAMS) cil managed
28 {
29         .maxstack 2
30         .locals init (
31         LOCALS
32     )
33
34         OPCODE // VALIDITY.
35         pop
36         ret
37
38 }
39
40 .method public static int32 Main() cil managed
41 {
42         .maxstack 8
43         .entrypoint
44         ARGS
45         call void foo(SIG)
46         ldc.i4.0
47         ret
48 }
49 //EOF