12 if [ "$TEST_EXTENDS" == "yes" ]; then
13 TEST_EXTENDS="extends Owner\/Nested"
14 TEST_CONSTRUCTOR="call instance void Owner\/Nested::.ctor()"
16 TEST_EXTENDS="extends [mscorlib]System.Object"
17 TEST_CONSTRUCTOR="call instance void object::.ctor()"
20 if [ "$TEST_LOAD_BASE" == "yes" ]; then
21 TEST_LOAD_REF="ldarg.0"
23 TEST_LOAD_REF="call class Owner\/Nested Owner::Create ()"
26 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
27 TEST_FILE=${TEST_NAME}_generated.il
29 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
31 .assembly '${TEST_NAME}_generated'
33 .hash algorithm 0x00008004
37 // VALIDITY CIL which breaks the ECMA-335 rules.
38 // this CIL should fail verification by a conforming CLI verifier.
40 .assembly extern mscorlib
43 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
46 .class public Owner extends [mscorlib]System.Object
48 .method public static Owner/Nested Create ()
51 newobj instance void class Owner/Nested::.ctor()
55 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
59 call instance void object::.ctor()
63 .class nested CLASS_ACCESS Nested extends [mscorlib]System.Object
65 .field MEMBER_ACCESS int32 fld
66 .field MEMBER_ACCESS static int32 sfld
68 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
72 call instance void object::.ctor()
76 .method MEMBER_ACCESS int32 Target ()
84 .class nested public Test EXTENDS
86 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
94 .method public void Method ()
105 .method public static int32 Main() cil managed
109 newobj instance void class Owner/Test::.ctor()
110 call instance void class Owner/Test::Method()