#! /bin/sh SED="sed" if [ `which gsed 2> /dev/null` ] ; then SED="gsed" fi TEST_NAME=$1 TEST_VALIDITY=$2 TEST_OP=$3 TEST_BEFORE_OP=$4 TEST_CONSTRAINT_TYPE=$5 if [ "x$TEST_CONSTRAINT_TYPE" = "x" ]; then TEST_CONSTRAINT_TYPE="IFace"; fi 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 echo $TEST_FILE $SED -e "s/TYPE/${TEST_TYPE}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/BEFORE_OP/${TEST_BEFORE_OP}/g"> $TEST_FILE < { .field !T t .field ${TEST_CONSTRAINT_TYPE} ifField .method public hidebysig specialname rtspecialname instance default void .ctor (!T A_0) cil managed { .maxstack 8 ldarg.0 call instance void object::.ctor() ldarg.0 ldarg.1 stfld !0 class DriverClass::t ret } .method public void Driver () { .maxstack 8 .locals init (!T V_0, ${TEST_CONSTRAINT_TYPE} V_1, !T[] V_2, ${TEST_CONSTRAINT_TYPE}[] V_3) ldc.i4.1 newarr !T stloc.2 ldc.i4.1 newarr ${TEST_CONSTRAINT_TYPE} stloc.3 ldarg.0 ldfld !0 class DriverClass::t stloc.0 BEFORE_OP OPCODE TARGET: leave END END: ret } } .method public static int32 Main () { .entrypoint .maxstack 8 .locals init () newobj instance void class IFaceImpl::.ctor() newobj instance void class DriverClass::.ctor(!0) call instance void class DriverClass::Driver() ldc.i4.0 ret } //EOF