[metadata/corlib] Add apfs to list of fixed drive types
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Wed, 5 Jul 2017 15:39:52 +0000 (17:39 +0200)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Fri, 7 Jul 2017 14:17:56 +0000 (16:17 +0200)
Also added some tests for DriveInfo since we didn't have any.

mcs/class/corlib/Test/System.IO/DriveInfoTest.cs [new file with mode: 0644]
mcs/class/corlib/corlib_test.dll.sources
mono/metadata/w32file-unix.c

diff --git a/mcs/class/corlib/Test/System.IO/DriveInfoTest.cs b/mcs/class/corlib/Test/System.IO/DriveInfoTest.cs
new file mode 100644 (file)
index 0000000..44d4f78
--- /dev/null
@@ -0,0 +1,85 @@
+//
+// DriveInfoTest.cs - NUnit Test Cases for System.IO.DriveInfo class
+//
+// Authors
+//     Alexander Köplinger <alkpli@microsoft.com>
+// 
+// Copyright (c) 2017 Xamarin, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Runtime.Serialization.Formatters.Binary;
+
+using NUnit.Framework;
+
+namespace MonoTests.System.IO
+{
+       [TestFixture]
+       public class DriveInfoTest
+       {
+               [Test]
+               [Category ("MobileNotWorking")]
+               public void Constructor ()
+               {
+                       var drive = new DriveInfo (Environment.OSVersion.Platform == PlatformID.Unix ? "/" : "C:\\");
+                       ValidateDriveInfo (drive);
+                       Assert.AreEqual (DriveType.Fixed, drive.DriveType);
+               }
+
+               [Test]
+               public void GetDrivesNotEmpty ()
+               {
+                       var drives = DriveInfo.GetDrives ();
+                       Assert.That (drives, Is.Not.Empty);
+               }
+
+               [Test]
+               [Category ("MobileNotWorking")]
+               public void GetDrivesValidInfo ()
+               {
+                       var drives = DriveInfo.GetDrives ();
+
+                       foreach (var d in drives) {
+                               ValidateDriveInfo (d);
+                       }
+               }
+
+               void ValidateDriveInfo (DriveInfo d)
+               {
+                       Assert.That (d.Name, Is.Not.Empty);
+                       Assert.That (d.VolumeLabel, Is.Not.Empty);
+                       Assert.NotNull (d.RootDirectory);
+
+                       AssertHelper.GreaterOrEqual (d.AvailableFreeSpace, 0);
+                       AssertHelper.GreaterOrEqual (d.TotalFreeSpace, 0);
+                       AssertHelper.GreaterOrEqual (d.TotalSize, 0);
+
+                       Assert.That (d.DriveFormat, Is.Not.Empty);
+                       if (d.DriveType == DriveType.Fixed)
+                               Assert.True (d.IsReady);
+               }
+       }
+}
index bc43d92b9202a4dd44bdfb2a61ad24b4f04e4e2a..79658b44c651b6b5b1c9e3f1f82b1a2b5834d8a4 100644 (file)
@@ -102,6 +102,7 @@ System.IO/BinaryReaderTest.cs
 System.IO/BinaryWriterTest.cs
 System.IO/BufferedStreamTest.cs
 System.IO/DirectoryInfoTest.cs
+System.IO/DriveInfoTest.cs
 System.IO/DirectoryTest.cs
 System.IO/FileInfoTest.cs
 System.IO/FileNotFoundExceptionTest.cs
@@ -516,3 +517,4 @@ System/AggregateExceptionTests.cs
 System.Threading/ThreadLocalTests.cs
 System.Threading/SpinLockTests.cs
 ../../../../mono/mini/TestHelpers.cs
+../../test-helpers/NunitHelpers.cs
index d87335f2f0d3880d8a21f2593393f4694de1e824..d74520f162cf8edaca9252ee3434bf402e02938e 100644 (file)
@@ -4636,6 +4636,7 @@ static _wapi_drive_type _wapi_drive_types[] = {
        { DRIVE_RAMDISK, "fdesc" },
        { DRIVE_REMOTE, "ftp" },
        { DRIVE_FIXED, "hfs" },
+       { DRIVE_FIXED, "apfs" },
        { DRIVE_FIXED, "msdos" },
        { DRIVE_REMOTE, "nfs" },
        { DRIVE_FIXED, "ntfs" },