2010-05-11 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / tests / verifier / make_il_overflow_test.sh
blob5e42052fe5353493f4c55c337a9fd7ed3a59a886
1 #! /bin/sh
3 TEST_NAME=$1
4 TEST_VALIDITY=$2
5 TEST_BYTE_0=$3
6 TEST_BYTE_1=$4
7 TEST_BYTE_2=$5
8 TEST_BYTE_3=$6
9 TEST_BYTE_4=$7
12 if [ "$TEST_BYTE_1" != "" ] ; then
13 EMIT_BYTE_1=".emitbyte $TEST_BYTE_1";
16 if [ "$TEST_BYTE_2" != "" ] ; then
17 EMIT_BYTE_2=".emitbyte $TEST_BYTE_2";
20 if [ "$TEST_BYTE_3" != "" ] ; then
21 EMIT_BYTE_3=".emitbyte $TEST_BYTE_3";
24 if [ "$TEST_BYTE_4" != "" ] ; then
25 EMIT_BYTE_4=".emitbyte $TEST_BYTE_4";
28 if [ "$TEST_BYTE_5" != "" ] ; then
29 EMIT_BYTE_5=".emitbyte $TEST_BYTE_5";
32 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
33 echo $TEST_FILE
34 sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/BYTE_0/${TEST_BYTE_0}/g" -e "s/BYTE_1/${TEST_BYTE_1}/g" > $TEST_FILE <<//EOF
36 // VALIDITY CIL which breaks the ECMA-335 rules.
37 // this CIL should fail verification by a conforming CLI verifier.
39 .assembly '${TEST_NAME}_generated'
41 .hash algorithm 0x00008004
42 .ver 0:0:0:0
45 .method public static void Main() cil managed
47 .entrypoint
48 .maxstack 2
49 .locals init ()
51 nop
52 nop
53 .emitbyte BYTE_0
54 ${EMIT_BYTE_1}
55 ${EMIT_BYTE_2}
56 ${EMIT_BYTE_3}
57 ${EMIT_BYTE_4}
58 ${EMIT_BYTE_5}
62 //EOF