//
using System;
+using System.IO;
+using System.Reflection;
class Miss1 : Missing.Foo1 {
}
return 1;
}
+ internal static int check_file_not_found (TestDel d){
+ try {
+ d ();
+ } catch (FileNotFoundException ex){
+ return 0;
+ }
+ return 1;
+ }
+
internal static int check_missing_field (TestDel d) {
try {
d ();
return 1;
}
+
//
// Base instructions
//
return check_type_load (new TestDel (missing_cpobj));
}
+ public static int test_0_missing_type_on_parameter () {
+ return check_type_load (new TestDel (missing_external_type_reference_on_parameter));
+ }
public static int test_0_initobj () {
return check_type_load (new TestDel (missing_initobj));
}
return check_type_load (new TestDel (missing_unbox_any));
}
+#if false
+ // Bummer: we regressed! I should have put this before
+ public static int test_0_missing_assembly_in_fieldref () {
+ return check_file_not_found (new TestDel (missing_assembly_in_fieldref));
+ }
+#endif
+
+ // FIXME: the corrent exception here is FileNotFoundException
+ public static int test_0_missing_assembly_in_call () {
+ return check_type_load (new TestDel (missing_assembly_in_call));
+ }
+
+ public static int test_0_missing_assembly_in_newobj () {
+ return check_type_load (new TestDel (missing_assembly_in_newobj));
+ }
+
+ public static int test_0_missing_delegate_ctor_argument () {
+ return check_type_load (new TestDel (missing_delegate_ctor_argument));
+ }
+
//
// Missing classes referenced from metadata
//
- // FIXME: These do not work yet
-#if FALSE
public static int test_0_missing_local () {
try {
missing_local ();
return 0;
}
+ //Regression test for #508532
+ public static int test_0_assembly_throws_on_loader_error ()
+ {
+ try {
+ Assembly asm = Assembly.Load ("load-missing");
+ asm.GetType ("BrokenClass", false);
+ return 1;
+ } catch (TypeLoadException) {}
+ return 0;
+ }
+
+
+ public static void missing_outer () {
+ new Missing.Foo1.InnerFoo ();
+ }
+
+ //Regression test for #508487
+ public static int test_0_missing_outer_type_in_typeref () {
+ return check_type_load (new TestDel (missing_outer));
+ }
+
+ // #524498
+ public static int test_0_exception_while_jitting_cctor () {
+ try {
+ CCtorClass.foo ();
+ } catch (TypeInitializationException) {
+ return 0;
+ }
+
+ return 1;
+ }
+
+#if FALSE
public static void missing_parent () {
new Miss1 ();
}