Bump corefx
[mono-project.git] / mono / tests / assembly_append_ordering.cs
blob6f0b471ed8a6ddc44772ea4dec988a8c6298ba61
1 using System;
2 using System.Linq;
3 using System.Reflection;
4 using System.Reflection.Emit;
6 class Driver {
7 static int Main () {
8 var dyn = DefineDynamicAssembly (AppDomain.CurrentDomain);
9 var core = TriggerLoadingSystemCore ();
10 var asm = AppDomain.CurrentDomain.GetAssemblies ();
12 if (asm [0] != typeof (object).Assembly) {
13 Console.WriteLine ("first assembly must be mscorlib, but it was {0}", asm [0]);
14 return 1;
17 if (asm [1] != typeof (Driver).Assembly) {
18 Console.WriteLine ("second assembly must be test assembly, but it was {0}", asm [1]);
19 return 2;
22 if (asm [2] != dyn) {
23 Console.WriteLine ("third assembly must be SRE, but it was {0}", asm [2]);
24 return 3;
27 if (asm [3] != core) {
28 Console.WriteLine ("last assembly must be System.Core, but it was {0}", asm [3]);
29 return 4;
32 return 0;
35 static Assembly TriggerLoadingSystemCore ()
37 int[] x = new int[] { 1,2,3};
38 x.Where (v => v > 1);
39 return typeof (Enumerable).Assembly;
43 static Assembly DefineDynamicAssembly (AppDomain domain)
45 AssemblyName assemblyName = new AssemblyName ();
46 assemblyName.Name = "MyDynamicAssembly";
48 AssemblyBuilder assemblyBuilder = domain.DefineDynamicAssembly (assemblyName, AssemblyBuilderAccess.Run);
49 ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule ("MyDynamicModule");
50 TypeBuilder typeBuilder = moduleBuilder.DefineType ("MyDynamicType", TypeAttributes.Public);
51 ConstructorBuilder constructorBuilder = typeBuilder.DefineConstructor (MethodAttributes.Public, CallingConventions.Standard, null);
52 ILGenerator ilGenerator = constructorBuilder.GetILGenerator ();
53 ilGenerator.EmitWriteLine ("MyDynamicType instantiated!");
54 ilGenerator.Emit (OpCodes.Ret);
55 typeBuilder.CreateType ();
56 return assemblyBuilder;