Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / tests / load-exceptions.cs
index 17492abdfe81bec6daf78cd36982463f1989223a..5bfa3a89da58104ebfd20516c665ed37dbf4bdb2 100644 (file)
@@ -9,6 +9,11 @@ using System.Reflection;
 class Miss1 : Missing.Foo1 {
 }
 
+public class Miss2 {
+       public class Foo : Missing.Foo1 {
+       }
+}
+
 public class Tests : LoadMissing {
 
        public delegate void TestDel ();
@@ -266,6 +271,24 @@ public class Tests : LoadMissing {
                return 0;
        }
 
+       public static int test_0_bad_method_override3 ()
+       {
+               try {
+                       BadOverridesDriver.bad_override3 ();
+                       return 1;
+               } catch (TypeLoadException) {}
+               return 0;
+       }
+
+       public static int test_0_bad_method_override4 ()
+       {
+               try {
+                       BadOverridesDriver.bad_override4 ();
+                       return 1;
+               } catch (TypeLoadException) {}
+               return 0;
+       }
+
        public static void missing_outer () {
                new Missing.Foo1.InnerFoo ();
        }
@@ -296,7 +319,38 @@ public class Tests : LoadMissing {
        }
 #endif
 
-       public static int Main () {
-               return TestDriver.RunTests (typeof (Tests));
+       public static int test_0_missing_nested () {
+               if (typeof (Miss2).GetNestedTypes ().Length != 0)
+                       return 1;
+               return 0;
+       }
+
+       public static int test_0_reflection_on_field_with_missing_type () {
+               var t = typeof (BadOverridesDriver).Assembly.GetType ("FieldWithMissingType");
+               foreach (var f in t.GetFields (BindingFlags.Public | BindingFlags.Static)) {
+                       try {
+                               Console.WriteLine (f.Name);
+                               f.GetValue (null);
+                               return 1;
+                       } catch (TypeLoadException) {
+                               return 0;
+                       }
+               }
+               return 2;
+       }
+
+       public static int test_0_reflection_on_field_with_missing_custom_attr () {
+               var t = typeof (BadOverridesDriver).Assembly.GetType ("FieldWithMissingCustomAttribute");
+               try {
+                       Console.WriteLine (t.GetFields ()[0].CustomAttributes);
+                       return 1;
+               } catch (FileNotFoundException) {
+                       return 0;
+               }
+               return 2;
+       }
+
+       public static int Main (string[] args) {
+               return TestDriver.RunTests (typeof (Tests), args);
        }
 }