Merge pull request #4540 from kumpera/android-changes-part1
authorRodrigo Kumpera <kumpera@users.noreply.github.com>
Wed, 29 Mar 2017 15:46:29 +0000 (11:46 -0400)
committerGitHub <noreply@github.com>
Wed, 29 Mar 2017 15:46:29 +0000 (11:46 -0400)
[bcl+runtime] Multiple small cleanups to Android.

19 files changed:
configure.ac
mcs/build/profiles/monodroid.make
mcs/build/tests.make
mcs/class/Makefile
mcs/class/Mono.Posix/Mono.Unix.Android/AndroidUtils.cs [new file with mode: 0644]
mcs/class/Mono.Posix/Mono.Unix.Native/NativeConvert.cs
mcs/class/Mono.Posix/monodroid_Mono.Posix.dll.sources [new file with mode: 0644]
mcs/class/System/monodroid_System_test.dll.exclude.sources
mcs/class/corlib/Test/System.IO/FileTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/AssemblyBuilderTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/ModuleBuilderTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/TypeBuilderTest.cs
mcs/class/corlib/Test/System.Reflection/AssemblyTest.cs
mcs/class/corlib/Test/System.Reflection/ModuleTest.cs
mcs/class/corlib/Test/System.Resources/ResourceManagerTest.cs
mcs/class/corlib/Test/System.Runtime.InteropServices/RuntimeEnvironmentTest.cs
mcs/class/corlib/Test/System.Runtime.InteropServices/SafeHandleTest.cs
mcs/class/corlib/Test/System/ActivatorTest.cs
mcs/class/corlib/Test/System/TypeTest.cs

index cd1b684b80e319c0d26290af36f29eb02f05f5df..bb1aecfa5ee583c8f59ec299599ca8582c06c7cb 100644 (file)
@@ -233,9 +233,6 @@ case "$host" in
                CFLAGS="$CFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
                CXXFLAGS="$CXXFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
 
-               # The configure check can't detect this
-               AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support])
-
                # to bypass the underscore linker check, can't work when cross-compiling
                mono_cv_uscore=yes
                mono_cv_clang=no
index a32065f040d6a6febdf5f443e210496b6b5c2f72..d53f405b1c999186812b12c1ef33c7fecba13e20 100644 (file)
@@ -31,7 +31,6 @@ PROFILE_MCS_FLAGS = \
        $(PLATFORM_DEBUG_FLAGS)
 
 FRAMEWORK_VERSION = 2.1
-NO_TEST = yes
 
 # the tuner takes care of the install
 NO_INSTALL = yes
index cb68f8abddafdeedfebae274606cb1a727e51f0a..45c77ebda49466d3a905a36e3f06f97e4e9d80cd 100644 (file)
@@ -186,6 +186,9 @@ $(test_makefrag): $(test_response)
 
 -include $(test_makefrag)
 
+build-test-lib: $(test_lib)
+       @echo Building testing lib
+
 endif
 
 
index 3016300230ec3394807c44fd1264c78e0f47286c..3f981f77aba50c4f2f1a4a430cff729bf516cc23 100644 (file)
@@ -111,6 +111,7 @@ monodroid_dirs := \
        $(mobile_common_dirs)   \
        Mono.CompilerServices.SymbolWriter      \
        Mono.Btls.Interface     \
+       Mono.Posix      \
        $(pcl_facade_dirs)
 
 monotouch_dirs := \
diff --git a/mcs/class/Mono.Posix/Mono.Unix.Android/AndroidUtils.cs b/mcs/class/Mono.Posix/Mono.Unix.Android/AndroidUtils.cs
new file mode 100644 (file)
index 0000000..3b40a82
--- /dev/null
@@ -0,0 +1,47 @@
+using System;
+using System.Reflection;
+
+// using Android.Runtime;
+// using Android.Util;
+
+namespace Mono.Unix.Android
+{
+       internal sealed class AndroidUtils
+       {
+               const string TAG = "Mono.Posix";
+
+               delegate void DetectCPUAndArchitecture (out ushort builtForCPU, out ushort runningOnCPU, out bool is64bit);
+
+               readonly static DetectCPUAndArchitecture detectCPUAndArchitecture;
+
+               static AndroidUtils ()
+               {
+                       Type androidRuntime = Type.GetType ("Android.Runtime.AndroidEnvironment, Mono.Android", true);
+
+                       MethodInfo mi = androidRuntime.GetMethod ("DetectCPUAndArchitecture", BindingFlags.NonPublic | BindingFlags.Static);
+                       detectCPUAndArchitecture = (DetectCPUAndArchitecture) Delegate.CreateDelegate (typeof(DetectCPUAndArchitecture), mi);
+               }
+
+               public static bool AreRealTimeSignalsSafe ()
+               {
+                       ushort built_for_cpu;
+                       ushort running_on_cpu;
+                       bool is64bit;
+
+                       detectCPUAndArchitecture (out built_for_cpu, out running_on_cpu, out is64bit);
+
+                       // CPUArchitecture builtForCPU = Enum.IsDefined (typeof (CPUArchitecture), built_for_cpu) ? (CPUArchitecture)built_for_cpu : CPUArchitecture.Unknown;
+                       // CPUArchitecture runningOnCPU = Enum.IsDefined (typeof (CPUArchitecture), running_on_cpu) ? (CPUArchitecture)running_on_cpu : CPUArchitecture.Unknown;
+
+                       // Log.Info (TAG, " Built for CPU: {0}", builtForCPU);
+                       // Log.Info (TAG, "Running on CPU: {0}", runningOnCPU);
+                       // Log.Info (TAG, "64-bit process: {0}", is64bit ? "yes" : "no");
+
+                       // For now real-time signals aren't safe at all, alas
+                       bool safe = false;
+                       // Log.Info (TAG, "Real-time signals are {0}safe on this platform", safe ? String.Empty : "not ");
+                       
+                       return safe;
+               }
+       }
+}
\ No newline at end of file
index 57c03140112b75746de381257b13e4b763886f5c..810e13a7ca8fe68b471e058d9df45bc4c0e1e43f 100644 (file)
@@ -8,6 +8,9 @@ using System;
 using System.IO;
 using System.Runtime.InteropServices;
 using Mono.Unix.Native;
+#if MONODROID
+using Mono.Unix.Android;
+#endif
 
 namespace Mono.Unix.Native {
 
@@ -17,7 +20,17 @@ namespace Mono.Unix.Native {
                //
                // Non-generated exports
                //
-#if !MONODROID
+#if MONODROID
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromRealTimeSignum")]
+               static extern int HelperFromRealTimeSignum (Int32 offset, out Int32 rval);
+
+               static int FromRealTimeSignum (Int32 offset, out Int32 rval)
+               {
+                       if (!AndroidUtils.AreRealTimeSignalsSafe ())
+                               throw new PlatformNotSupportedException ("Real-time signals are not supported on this Android architecture");
+                       return HelperFromRealTimeSignum (offset, out rval);
+               }
+#else
                [DllImport (LIB, EntryPoint="Mono_Posix_FromRealTimeSignum")]
                private static extern int FromRealTimeSignum (Int32 offset, out Int32 rval);
 #endif
diff --git a/mcs/class/Mono.Posix/monodroid_Mono.Posix.dll.sources b/mcs/class/Mono.Posix/monodroid_Mono.Posix.dll.sources
new file mode 100644 (file)
index 0000000..0d242e6
--- /dev/null
@@ -0,0 +1,2 @@
+#include Mono.Posix.dll.sources
+./Mono.Unix.Android/AndroidUtils.cs
index 8b8f4861a488d7957b9a118b03a014a26bc3a08d..7c22e74e3db8d1bcc6470160832700bbba99a4f4 100644 (file)
@@ -11,7 +11,6 @@ Microsoft.Win32/SystemEventsCas.cs
 Microsoft.Win32/TimerElapsedEventArgsCas.cs
 Microsoft.Win32/UserPreferenceChangedEventArgsCas.cs
 Microsoft.Win32/UserPreferenceChangingEventArgsCas.cs
-System.Collections.Concurrent/CollectionStressTestHelper.cs
 System.Collections.Specialized/BitVector32Cas.cs
 System.Collections.Specialized/CollectionsUtilCas.cs
 System.Collections.Specialized/HybridDictionaryCas.cs
index c1dc8b59ab40fcece1dbb88b47849f7b8c7b77c1..cf95e49fa3a8774831a9cefea2ab49ea12d3ff9d 100644 (file)
@@ -2491,6 +2491,7 @@ namespace MonoTests.System.IO
                }
 
                [Test]
+               [Category ("LargeFileSupport")]
                public void Position_Large ()
                {
                        // fails if HAVE_LARGE_FILE_SUPPORT is not enabled in device builds
@@ -2513,6 +2514,7 @@ namespace MonoTests.System.IO
                }
 
                [Test]
+               [Category ("LargeFileSupport")]
                public void Seek_Large ()
                {
                        // fails if HAVE_LARGE_FILE_SUPPORT is not enabled in device builds
@@ -2537,7 +2539,7 @@ namespace MonoTests.System.IO
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // locks with offsets bigger than Int32.Max don't work on Android
+               [Category ("LargeFileSupport")]
                public void Lock_Large ()
                {
                        // note: already worked without HAVE_LARGE_FILE_SUPPORT
index f59f39301876c5dcbbd4f9164c122c672937704e..9e8485a48399d872b89e9e93f9674c92983b388b 100644 (file)
@@ -100,6 +100,7 @@ public class AssemblyBuilderTest
        }
 
        [Test]
+       [Category ("MobileNotWorking")]
        public void DefaultCtor ()
        {
                Assert.IsNotNull (ab.Evidence, "#1");
@@ -416,7 +417,7 @@ public class AssemblyBuilderTest
        }
 
        [Test]
-       [Category ("AndroidNotWorking")] // DefineResource doesn't allow path in its fileName parameter and the test attempts to write to / in effect
+       [Category ("MobileNotWorking")] // DefineResource doesn't allow path in its fileName parameter and the test attempts to write to / in effect
        public void TestDefineResource ()
        {
                ab.DefineResource ("foo", "FOO", "foo.txt", ResourceAttributes.Public);
@@ -593,12 +594,16 @@ public class AssemblyBuilderTest
        }
 
        [Test]
-       [Category ("AndroidNotWorking")] // Missing Mono.Compilerservices.SymbolWriter assembly
        public void TestDefineDynamicModule ()
        {
                ab.DefineDynamicModule ("foo", "foo.dll");
-               ab.DefineDynamicModule ("foo2", true);
                ab.DefineDynamicModule ("foo3", "foo3.dll");
+       }
+
+       [Category ("MobileNotWorking")] //XA doesn't ship SymbolWriter. https://bugzilla.xamarin.com/show_bug.cgi?id=53038
+       public void TestDefineDynamicModuleWithSymbolWriter ()
+       {
+               ab.DefineDynamicModule ("foo2", true);
                ab.DefineDynamicModule ("foo4", "foo4.dll", true);
        }
 
index 8e67c976f1e3bb267cc8781bbd720bd0561e2b2b..3bf8fe8246ed66f1c601320ffc257c329eb316fb 100644 (file)
@@ -136,11 +136,10 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Name_Null ()
                {
                        AssemblyBuilder ab = genAssembly ();
-                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", false);
                        try {
                                mb.DefineType ((string) null);
                                Assert.Fail ("#1");
@@ -153,11 +152,10 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Name_Empty ()
                {
                        AssemblyBuilder ab = genAssembly ();
-                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", false);
                        try {
                                mb.DefineType (string.Empty);
                                Assert.Fail ("#1");
@@ -171,11 +169,10 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Name_NullChar ()
                {
                        AssemblyBuilder ab = genAssembly ();
-                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", false);
                        try {
                                mb.DefineType ("\0test");
                                Assert.Fail ("#1");
@@ -191,11 +188,10 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_InterfaceNotAbstract ()
                {
                        AssemblyBuilder ab = genAssembly ();
-                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", false);
 
                        try {
                                mb.DefineType ("ITest1", TypeAttributes.Interface);
@@ -228,13 +224,12 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Parent_Interface ()
                {
                        TypeBuilder tb;
 
                        AssemblyBuilder ab = genAssembly ();
-                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", false);
 
                        tb = mb.DefineType ("Foo", TypeAttributes.Class,
                                typeof (ICollection));
@@ -246,11 +241,10 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_TypeSize ()
                {
                        AssemblyBuilder ab = genAssembly ();
-                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+                       ModuleBuilder mb = ab.DefineDynamicModule ("foo.dll", "foo.dll", false);
 
                        TypeBuilder tb = mb.DefineType ("Foo", TypeAttributes.Public | TypeAttributes.Sealed | TypeAttributes.SequentialLayout,
                                typeof (ValueType), 1);
@@ -258,11 +252,10 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                [ExpectedException (typeof (ArgumentException))]
                public void DuplicateTypeName () {
                        AssemblyBuilder ab = genAssembly ();
-                       ModuleBuilder module = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+                       ModuleBuilder module = ab.DefineDynamicModule ("foo.dll", "foo.dll", false);
 
                        var itb = module.DefineType ("TBase", TypeAttributes.Public);
 
@@ -274,7 +267,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
+               [Category ("MobileNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DuplicateSymbolDocument ()
                {
                        AssemblyBuilder ab = genAssembly ();
index 19be52d9a91b4b96f644a19d9b239df623d3ac66..94cfff6e2fd7bca624f849d260fb8df58d94487d 100644 (file)
@@ -1182,7 +1182,6 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Fails with System.MethodAccessException : Method `t17:.ctor ()' is inaccessible from method `t18:.ctor ()'
                public void DefineDefaultConstructor_Parent_DefaultCtorInaccessible ()
                {
                        TypeBuilder tb;
@@ -1198,6 +1197,16 @@ namespace MonoTests.System.Reflection.Emit
                        try {
                                Activator.CreateInstance (emitted_type);
                                Assert.Fail ("#1");
+
+                               /* MOBILE special case MethodAccessException on reflection invokes and don't wrap them. */
+#if MOBILE
+                       } catch (MethodAccessException mae) {
+                               Assert.IsNull (mae.InnerException, "#2");
+                               Assert.IsNotNull (mae.Message, "#3");
+                               Assert.IsTrue (mae.Message.IndexOf (parent_type.FullName) != -1, "#4:" + mae.Message);
+                               Assert.IsTrue (mae.Message.IndexOf (".ctor") != -1, "#4:" + mae.Message);
+                       }
+#else
                        } catch (TargetInvocationException ex) {
                                Assert.AreEqual (typeof (TargetInvocationException), ex.GetType (), "#2");
                                Assert.IsNotNull (ex.InnerException, "#3");
@@ -1211,6 +1220,7 @@ namespace MonoTests.System.Reflection.Emit
                                Assert.IsTrue (mae.Message.IndexOf (parent_type.FullName) != -1, "#9:" + mae.Message);
                                Assert.IsTrue (mae.Message.IndexOf (".ctor") != -1, "#10:" + mae.Message);
                        }
+#endif
                }
 
                [Test]
index 6c76ecda8664bd286a2bf55d0f68a31ee98c4de5..b3a9ba8012726d237f2048468e8fee5e77fee8a7 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", "winaot_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)
@@ -730,12 +725,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);
index dd4e8f1bc16035790c258abf95bf9c205549d77f..3edccf4028a967e4ebaa596f377a02b5e04164ea 100644 (file)
@@ -343,7 +343,6 @@ public class ModuleTest
        }
 #if !MONOTOUCH && !FULL_AOT_RUNTIME
        [Test]
-       [Category ("AndroidNotWorking")] // Mono.CompilerServices.SymbolWriter not available for Xamarin.Android
        public void GetTypes ()
        {
                AssemblyName newName = new AssemblyName ();
@@ -351,7 +350,7 @@ public class ModuleTest
 
                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);
 
                TypeBuilder tb = mb.DefineType ("Foo", TypeAttributes.Public);
                tb.CreateType ();
index 151e21c581d395fd717b9c9d9a7f5b83ba3bd76b..9d2292bcfab24ebf689a7e99439c2b2e13830555 100644 (file)
@@ -785,6 +785,7 @@ namespace MonoTests.System.Resources
                }
 
                [Test]
+               [Category ("SatelliteAssembliesNotWorking")]
                public void TestSatellites ()
                {
                        ResourceManager manager = new ResourceManager("Resources", GetType ().Assembly);
index 832ac6fc1cc4c09cc745fee989c1ec1af40e4a4a..3326d29bbb0d01074e4a53b6fa8492e1f5275e18 100644 (file)
@@ -74,11 +74,7 @@ namespace MonoTests.System.Runtime.InteropServices {
                {
                        string dirname = RuntimeEnvironment.GetRuntimeDirectory ();
                        Assert.IsNotNull (dirname, "GetRuntimeDirectory");
-#if MONODROID
-                       Assert.IsTrue (dirname.Length == 0, "directory name empty");
-#else
-                       Assert.IsTrue (Directory.Exists (dirname), "Exists");
-#endif
+                       Assert.IsTrue (dirname.Length == 0 || Directory.Exists (dirname), "Exists");
                }
 
                [Test]
index ed0132cc88b3f060d39bbbb6089554b71cb65ea1..4a26c93036ca41281d61e92d0af5a1dafa73235c 100644 (file)
@@ -48,10 +48,7 @@ namespace MonoTests.System.Runtime.InteropServices
                        protected override void Dispose (bool manual)
                        {
                                disposed = true;
-#if !MONODROID
-                               // Bombs on Android (ObjectDisposedException)
                                base.Dispose (manual);
-#endif
                        }
                }
 
@@ -80,7 +77,6 @@ namespace MonoTests.System.Runtime.InteropServices
 
                [Test]
                [ExpectedException (typeof (ObjectDisposedException))]
-               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void BadDispose2 ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle ();
@@ -91,7 +87,6 @@ namespace MonoTests.System.Runtime.InteropServices
 
                [Test]
                [ExpectedException (typeof (ObjectDisposedException))]
-               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void BadDispose3 ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle ();
@@ -120,7 +115,6 @@ namespace MonoTests.System.Runtime.InteropServices
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void GoodDispose ()
                {
                        int dummyHandle = 0xDEAD;
@@ -238,7 +232,6 @@ namespace MonoTests.System.Runtime.InteropServices
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void ReleaseAfterDispose1 ()
                {
                        int dummyHandle = 0xDEAD;
@@ -267,7 +260,6 @@ namespace MonoTests.System.Runtime.InteropServices
 
                [Test]
                [ExpectedException (typeof (ObjectDisposedException))]
-               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void ReleaseAfterDispose2 ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle (true);
@@ -286,7 +278,6 @@ namespace MonoTests.System.Runtime.InteropServices
                }
 
                [Test]
-               [Category ("AndroidNotWorking")] // Not until Dispose runtime crasher in FakeSafeHandle is fixed
                public void NoReleaseUnowned ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle (false);
index fc5d762eb2f9066343471a4a5b58aed79c0b1f46..a79540778e8284e31635572b188df8ced78de1f6 100644 (file)
@@ -412,6 +412,7 @@ namespace MonoTests.System {
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                [ExpectedException (typeof (ArgumentNullException))]
                public void GetObject_UrlNull ()
                {
index 72300155135e4f7b93d04f914b52d093a997ac10..d1765680ff4f2066005bdee207ec5ccec672f5ff 100644 (file)
@@ -4305,7 +4305,7 @@ namespace MonoTests.System
                        var nm = new AssemblyName ("asm");
                        var ab = AssemblyBuilder.DefineDynamicAssembly (nm,
                                                                        AssemblyBuilderAccess.Run);
-                       var mb = ab.DefineDynamicModule("m", true);
+                       var mb = ab.DefineDynamicModule("m", false);
                        var tb = mb.DefineType ("NameSpace,+*&[]\\.Type,+*&[]\\",
                                                TypeAttributes.Class | TypeAttributes.Public);