X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FTest%2FSystem%2FAppDomainTest.cs;h=8772d7afdea04e8771c54266715144cacfffa015;hb=cf7319008babd6a0bb0365331d6be575ff23aaa1;hp=1d88666538f50e9ec25e0f6acd9a61fd6a1d4ac3;hpb=d6c5db881b26fd0f8ef64a65eba00e72fda552a2;p=mono.git diff --git a/mcs/class/corlib/Test/System/AppDomainTest.cs b/mcs/class/corlib/Test/System/AppDomainTest.cs index 1d88666538f..8772d7afdea 100644 --- a/mcs/class/corlib/Test/System/AppDomainTest.cs +++ b/mcs/class/corlib/Test/System/AppDomainTest.cs @@ -2073,7 +2073,6 @@ namespace MonoTests.System AppDomain.CurrentDomain.ExecuteAssembly ( assembly.Location); Assert.Fail ("#1"); -#if NET_2_0 } catch (MissingMethodException ex) { // Entry point not found in assembly '...' Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2"); @@ -2081,15 +2080,6 @@ namespace MonoTests.System Assert.IsNotNull (ex.Message, "#4"); Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5"); } -#else - } catch (COMException ex) { - // Unspecified error - Assert.AreEqual (typeof (COMException), ex.GetType (), "#2"); - Assert.AreEqual (-2147467259, ex.ErrorCode, "#3"); - Assert.IsNull (ex.InnerException, "#4"); - Assert.IsNotNull (ex.Message, "#5"); - } -#endif } [Test] // ExecuteAssembly (String, Evidence) @@ -2102,7 +2092,6 @@ namespace MonoTests.System assembly.Location, (Evidence) null); Assert.Fail ("#1"); -#if NET_2_0 } catch (MissingMethodException ex) { // Entry point not found in assembly '...' Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2"); @@ -2110,15 +2099,6 @@ namespace MonoTests.System Assert.IsNotNull (ex.Message, "#4"); Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5"); } -#else - } catch (COMException ex) { - // Unspecified error - Assert.AreEqual (typeof (COMException), ex.GetType (), "#2"); - Assert.AreEqual (-2147467259, ex.ErrorCode, "#3"); - Assert.IsNull (ex.InnerException, "#4"); - Assert.IsNotNull (ex.Message, "#5"); - } -#endif } [Test] // ExecuteAssembly (String, Evidence, String []) @@ -2132,7 +2112,6 @@ namespace MonoTests.System (Evidence) null, new string [0]); Assert.Fail ("#1"); -#if NET_2_0 } catch (MissingMethodException ex) { // Entry point not found in assembly '...' Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2"); @@ -2140,15 +2119,6 @@ namespace MonoTests.System Assert.IsNotNull (ex.Message, "#4"); Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5"); } -#else - } catch (COMException ex) { - // Unspecified error - Assert.AreEqual (typeof (COMException), ex.GetType (), "#2"); - Assert.AreEqual (-2147467259, ex.ErrorCode, "#3"); - Assert.IsNull (ex.InnerException, "#4"); - Assert.IsNotNull (ex.Message, "#5"); - } -#endif } [Test] // ExecuteAssembly (String, Evidence, String [], Byte [], AssemblyHashAlgorithm) @@ -2165,7 +2135,6 @@ namespace MonoTests.System (byte []) null, AssemblyHashAlgorithm.SHA1); Assert.Fail ("#1"); -#if NET_2_0 } catch (MissingMethodException ex) { // Entry point not found in assembly '...' Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2"); @@ -2173,15 +2142,6 @@ namespace MonoTests.System Assert.IsNotNull (ex.Message, "#4"); Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5"); } -#else - } catch (COMException ex) { - // Unspecified error - Assert.AreEqual (typeof (COMException), ex.GetType (), "#2"); - Assert.AreEqual (-2147467259, ex.ErrorCode, "#3"); - Assert.IsNull (ex.InnerException, "#4"); - Assert.IsNotNull (ex.Message, "#5"); - } -#endif } [Test] // bug #79720 @@ -3044,14 +3004,9 @@ namespace MonoTests.System try { AppDomain.CurrentDomain.Load (aname); Assert.Fail ("#C9"); -#if NET_2_0 } catch (SecurityException) { // Invalid assembly public key } -#else - } catch (FileLoadException) { - } -#endif aname = new AssemblyName (); aname.Name = "bug79522C"; @@ -3212,6 +3167,30 @@ namespace MonoTests.System // we have no public way to get the default appdomain } + static bool resolve_called; + + [Test] + public void AssemblyResolveParseError () + { + AppDomain currentDomain = AppDomain.CurrentDomain; + ResolveEventHandler d = ParseErrorResolve; + currentDomain.AssemblyResolve += d; + try { + resolve_called = false; + var a = Assembly.Load ("MyDynamicType, 1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"); + Assert.Fail (); + } catch (FileNotFoundException) { + Assert.IsTrue (resolve_called); + } + currentDomain.AssemblyResolve -= d; + } + + static Assembly ParseErrorResolve (object sender, ResolveEventArgs args) + { + resolve_called = true; + return null; + } + [Test] public void ReflectionOnlyGetAssemblies () { @@ -3329,6 +3308,14 @@ namespace MonoTests.System TestSerialization (tester, typeof (StuffToPick).GetMethod ("GenericMethod").MakeGenericMethod (typeof (int))); } + [Test] + public void ShadowCopyTypeGetTypeMissingAssemblyTest () + { + ad = CreateShadowCopyAppDomain (tempDir, true); + CrossDomainTester tester = CreateCrossDomainTester (ad); + tester.AssertLoadMissingAssemblyType (); + } + private static AppDomain CreateTestDomain (string baseDirectory, bool assemblyResolver) { AppDomainSetup setup = new AppDomainSetup (); @@ -3337,6 +3324,15 @@ namespace MonoTests.System return CreateTestDomain (setup, assemblyResolver); } + private static AppDomain CreateShadowCopyAppDomain (string baseDirectory, bool assemblyResolver) + { + AppDomainSetup setup = new AppDomainSetup (); + setup.ApplicationBase = baseDirectory; + setup.ApplicationName = "testdomain"; + setup.ShadowCopyFiles = "true"; + return CreateTestDomain (setup, assemblyResolver); + } + private static AppDomain CreateTestDomain (AppDomainSetup setup, bool assemblyResolver) { AppDomain ad = AppDomain.CreateDomain ("testdomain", @@ -3444,22 +3440,17 @@ namespace MonoTests.System } } - public bool AssertFileLoadException (AssemblyName assemblyRef) + public void AssertLoadMissingAssemblyType () { - try { - AppDomain.CurrentDomain.Load (assemblyRef); - return false; - } catch (FileLoadException) { - return true; - } + Assert.IsNull (Type.GetType ("A.B.C, MissingAssembly")); } - public bool AssertFileNotFoundException (AssemblyName assemblyRef) + public bool AssertFileLoadException (AssemblyName assemblyRef) { try { AppDomain.CurrentDomain.Load (assemblyRef); return false; - } catch (FileNotFoundException) { + } catch (FileLoadException) { return true; } } @@ -3629,4 +3620,4 @@ namespace MonoTests.System } } -#endif \ No newline at end of file +#endif