4 if [ `which gsed 2> /dev/null` ] ; then
17 if [ "$TEST_EXTENDS" == "yes" ]; then
18 TEST_EXTENDS="extends Owner\/Nested"
19 TEST_CONSTRUCTOR="call instance void Owner\/Nested::.ctor()"
21 TEST_EXTENDS="extends [mscorlib]System.Object"
22 TEST_CONSTRUCTOR="call instance void object::.ctor()"
25 if [ "$TEST_LOAD_BASE" == "yes" ]; then
26 TEST_LOAD_REF="ldarg.0"
28 TEST_LOAD_REF="call class Owner\/Nested Owner::Create ()"
31 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
32 TEST_FILE=${TEST_NAME}_generated.il
34 $SED -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/CONSTRUCTOR/${TEST_CONSTRUCTOR}/g" -e "s/CLASS_ACCESS/${TEST_CLASS_ACCESS}/g" -e "s/MEMBER_ACCESS/${TEST_MEMBER_ACCESS}/g" -e "s/EXTENDS/${TEST_EXTENDS}/g" -e "s/LOAD_REF/${TEST_LOAD_REF}/g" > $TEST_FILE <<//EOF
36 .assembly '${TEST_NAME}_generated'
38 .hash algorithm 0x00008004
42 // VALIDITY CIL which breaks the ECMA-335 rules.
43 // this CIL should fail verification by a conforming CLI verifier.
45 .assembly extern mscorlib
48 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
51 .class public Owner extends [mscorlib]System.Object
53 .method public static Owner/Nested Create ()
56 newobj instance void class Owner/Nested::.ctor()
60 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
64 call instance void object::.ctor()
68 .class nested CLASS_ACCESS Nested extends [mscorlib]System.Object
70 .field MEMBER_ACCESS int32 fld
71 .field MEMBER_ACCESS static int32 sfld
73 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
77 call instance void object::.ctor()
81 .method MEMBER_ACCESS int32 Target ()
89 .class nested public Test EXTENDS
91 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
99 .method public void Method ()
110 .method public static int32 Main() cil managed
114 newobj instance void class Owner/Test::.ctor()
115 call instance void class Owner/Test::Method()