[corlib] Makes GetReferencedAssemblies test more reliable
[mono.git] / mcs / class / corlib / Test / System.Reflection / AssemblyTest.cs
index 2ec2af503946fa08d8d1b83e5e48b3456d0897d4..1fcbf8a410b04497f70cc169f2a6588a62755970 100644 (file)
@@ -215,7 +215,6 @@ namespace MonoTests.System.Reflection
 
 #if !MONOTOUCH && !FULL_AOT_RUNTIME // Reflection.Emit is not supported.
                [Test]
-               [Category("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter
                public void GetModules_MissingFile ()
                {
                        AssemblyName newName = new AssemblyName ();
@@ -223,7 +222,7 @@ namespace MonoTests.System.Reflection
 
                        AssemblyBuilder ab = Thread.GetDomain().DefineDynamicAssembly (newName, AssemblyBuilderAccess.RunAndSave, TempFolder);
 
-                       ModuleBuilder mb = ab.DefineDynamicModule ("myDynamicModule1", "myDynamicModule.dll", true);
+                       ModuleBuilder mb = ab.DefineDynamicModule ("myDynamicModule1", "myDynamicModule.dll", false);
 
                        ab.Save ("test_assembly.dll");
 
@@ -474,11 +473,7 @@ namespace MonoTests.System.Reflection
 // with the semantics of aot'ed assembly loading, as
 // aot may assert when loading. This assumes that it's
 // safe to greedly load everything.
-#if FULL_AOT_DESKTOP
-                       string [] names = { "testing_aot_full_corlib_test" };
-#else
-                       string [] names = { "corlib_test_net_1_1", "corlib_test_net_2_0", "corlib_test_net_4_0", "corlib_test_net_4_5", "net_4_x_corlib_test", "corlib_plattest", "mscorlibtests", "BclTests" };
-#endif
+                       var names = new string[] { Assembly.GetCallingAssembly ().GetName ().Name };
 
                        foreach (string s in names)
                                if (Assembly.LoadWithPartialName (s) != null)
@@ -507,20 +502,17 @@ namespace MonoTests.System.Reflection
                public void GetReferencedAssemblies ()
                {
                        Assembly corlib_test = Assembly.GetExecutingAssembly ();
-                       AssemblyName[] names = corlib_test.GetReferencedAssemblies ();
-                       foreach (AssemblyName an in names) {
-                               Assert.IsNull (an.CodeBase, "CodeBase");
-                               Assert.IsNotNull (an.CultureInfo, "CultureInfo");
-                               Assert.IsNull (an.EscapedCodeBase, "EscapedCodeBase");
-                               Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "Flags");
-                               Assert.IsNotNull (an.FullName, "FullName");
-                               Assert.AreEqual (AssemblyHashAlgorithm.SHA1, an.HashAlgorithm, "HashAlgorithm");
-                               Assert.IsNull (an.KeyPair, "KeyPair");
-                               Assert.IsNotNull (an.Name, "Name");
-                               Assert.IsNotNull (an.Version, "Version");
-                               Assert.AreEqual (AssemblyVersionCompatibility.SameMachine, 
-                                       an.VersionCompatibility, "VersionCompatibility");
-                       }
+                       AssemblyName an = corlib_test.GetReferencedAssemblies ().First (l => l.Name == "mscorlib");
+                       Assert.IsNull (an.CodeBase, "CodeBase");
+                       Assert.IsNotNull (an.CultureInfo, "CultureInfo");
+                       Assert.IsNull (an.EscapedCodeBase, "EscapedCodeBase");
+                       Assert.AreEqual (AssemblyNameFlags.None, an.Flags, "Flags");
+                       Assert.IsNotNull (an.FullName, "FullName");
+                       Assert.AreEqual (AssemblyHashAlgorithm.SHA1, an.HashAlgorithm, "HashAlgorithm");
+                       Assert.IsNull (an.KeyPair, "KeyPair");
+                       Assert.IsNotNull (an.Name, "Name");
+                       Assert.IsNotNull (an.Version, "Version");
+                       Assert.AreEqual (AssemblyVersionCompatibility.SameMachine, an.VersionCompatibility, "VersionCompatibility");
                }
 
 #if !MONOTOUCH && !FULL_AOT_RUNTIME // Reflection.Emit is not supported.
@@ -730,12 +722,12 @@ namespace MonoTests.System.Reflection
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Assemblies in Xamarin.Android cannot be directly as files
+               [Category ("AndroidNotWorking")] // Xamarin.Android assemblies are bundled so they don't exist in the file system.
                public void ReflectionOnlyLoadFrom ()
                {
                        string loc = typeof (AssemblyTest).Assembly.Location;
                        string filename = Path.GetFileName (loc);
-                       Assembly assembly = Assembly.ReflectionOnlyLoadFrom (filename);
+                       Assembly assembly = Assembly.ReflectionOnlyLoadFrom (loc);
 
                        Assert.IsNotNull (assembly);
                        Assert.IsTrue (assembly.ReflectionOnly);