10 if [ "$TEST_EXTENDS" == "yes" ]; then
11 TEST_EXTENDS="extends Owner"
12 TEST_CONSTRUCTOR="call instance void Owner::.ctor()"
14 TEST_EXTENDS="extends [mscorlib]System.Object"
15 TEST_CONSTRUCTOR="call instance void object::.ctor()"
18 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
19 TEST_FILE=${TEST_NAME}_generated.il
21 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" > $TEST_FILE <<//EOF
23 .assembly '${TEST_NAME}_generated'
25 .hash algorithm 0x00008004
29 // VALIDITY CIL which breaks the ECMA-335 rules.
30 // this CIL should fail verification by a conforming CLI verifier.
32 .assembly extern mscorlib
35 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
38 .class Owner extends [mscorlib]System.Object
40 .method public static Owner/Nested Create ()
43 newobj instance void class Owner/Nested::.ctor()
47 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
51 call instance void object::.ctor()
55 .class nested CLASS_ACCESS Nested extends [mscorlib]System.Object
57 .field MEMBER_ACCESS int32 fld
58 .field MEMBER_ACCESS static int32 sfld
60 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
64 call instance void object::.ctor()
68 .method MEMBER_ACCESS int32 Target ()
77 .class public Test EXTENDS
79 .method public void Method ()
82 call class Owner/Nested Owner::Create ()
88 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
97 .method public static int32 Main() cil managed
101 newobj instance void class Test::.ctor()
102 call instance void class Test::Method()