#! /bin/sh
+SED="sed"
+if [ `which gsed 2> /dev/null` ] ; then
+ SED="gsed"
+fi
+
TEST_NAME=$1
TEST_VALIDITY=$2
TEST_OP=$3
TEST_TYPE1=$4
TEST_TYPE2=$5
+TEST_CREATE_FIELD=$6
TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
TEST_FILE=${TEST_NAME}_generated.il
echo $TEST_FILE
-TEST_TYPE1=`echo $TEST_TYPE1 | sed -s 's/&/\\\&/'`
-TEST_TYPE2=`echo $TEST_TYPE2 | sed -s 's/&/\\\&/'`
-sed -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/TYPE1/${TEST_TYPE1}/g" -e "s/TYPE2/${TEST_TYPE2}/g" > $TEST_FILE <<//EOF
+TEST_TYPE1=`echo $TEST_TYPE1 | $SED -s 's/&/\\\&/'`
+TEST_TYPE2=`echo $TEST_TYPE2 | $SED -s 's/&/\\\&/'`
+
+if [ "$TEST_CREATE_FIELD" = "no" ]; then
+ CLASS_FIELDS="";
+else
+ CLASS_FIELDS=".field public ${TEST_TYPE1} fld\n .field public static ${TEST_TYPE1} sfld";
+fi
+
+$SED -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/CLASS_FIELDS/${CLASS_FIELDS}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/TYPE1/${TEST_TYPE1}/g" -e "s/TYPE2/${TEST_TYPE2}/g" > $TEST_FILE <<//EOF
.assembly '${TEST_NAME}_generated'
{
.class Class extends [mscorlib]System.Object
{
- .field public TYPE1 fld
+ CLASS_FIELDS
+
+ .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
+ {
+ .maxstack 8
+ ldarg.0
+ call instance void object::.ctor()
+ ret
+ }
.method public void Method(TYPE1) cil managed
{
- nop
+ ret
}
}
class Class V_0,
TYPE2 V_1
)
- ldloc.0
+ newobj instance void class Class::.ctor()
ldloc.1
OPCODE // VALIDITY, TYPE2 cannot be stored in TYPE1.
ldc.i4.0
ret
}
-//EOF
\ No newline at end of file
+//EOF