[tests] Rework how we AOT compile tests + General cleanup of make targets (#4639)
[mono.git] / mono / tests / assemblyresolve_event4.cs
1 using System;
2 using System.IO;
3 using System.Reflection;
4
5 class App
6 {
7         public static int Main ()
8         {
9                 AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler (MyResolveEventHandler);
10
11                 try {
12                         var a = Assembly.Load ("Test");
13                         foreach (Type t in a.GetTypes ()) {
14                                 Console.WriteLine ("pp: " + t + " " + t.BaseType);
15                         }
16                 } catch (Exception ex) {
17                         Console.WriteLine ("Caught exception: {0}", ex);
18                         return 1;
19                 }
20
21                 return 0;
22         }
23
24         static Assembly MyResolveEventHandler (object sender, ResolveEventArgs args)
25         {
26                 if (args.Name == "Test" && args.RequestingAssembly == null)
27                         return Assembly.LoadFile (Path.Combine (Directory.GetCurrentDirectory (), "assemblyresolve_deps", "Test.dll"));
28                 if (args.Name == "TestBase, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" && args.RequestingAssembly.GetName ().Name == "Test")
29                         return Assembly.LoadFile (Path.Combine (Directory.GetCurrentDirectory (), "assemblyresolve_deps", "TestBase.dll"));
30
31                 throw new InvalidOperationException (String.Format ("Unexpected parameter combination Name=\"{0}\" RequestingAssembly=\"{1}\"", args.Name, args.RequestingAssembly));
32         }
33 }