FileSystem::deleteFile should log error status (178347)
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Aug 2019 01:58:06 +0000 (01:58 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Aug 2019 01:58:06 +0000 (01:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=178347

Patch by Kate Cheney <katherine_cheney@apple.com> on 2019-08-14
Reviewed by Brent Fulgham.

I added logging to the FileSystem::deleteFile function so that the debugger will
be able to see the associated errno string and better understand the reason for an
unlink failure or will know if the fileSystemRepresentation call was not
successful (or returned null).

* wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::deleteFile):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248702 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/posix/FileSystemPOSIX.cpp

index f4adeb3..d28f5f3 100644 (file)
@@ -1,3 +1,18 @@
+2019-08-14  Kate Cheney  <katherine_cheney@apple.com>
+
+        FileSystem::deleteFile should log error status (178347)
+        https://bugs.webkit.org/show_bug.cgi?id=178347
+
+        Reviewed by Brent Fulgham.
+
+        I added logging to the FileSystem::deleteFile function so that the debugger will
+        be able to see the associated errno string and better understand the reason for an
+        unlink failure or will know if the fileSystemRepresentation call was not
+        successful (or returned null).
+
+        * wtf/posix/FileSystemPOSIX.cpp:
+        (WTF::FileSystemImpl::deleteFile):
+
 2019-08-14  Keith Rollin  <krollin@apple.com>
 
         Remove support for macOS < 10.13
index c030f9c..1eead29 100644 (file)
@@ -66,11 +66,17 @@ bool deleteFile(const String& path)
 {
     CString fsRep = fileSystemRepresentation(path);
 
-    if (!fsRep.data() || fsRep.data()[0] == '\0')
+    if (!fsRep.data() || fsRep.data()[0] == '\0') {
+        LOG_ERROR("File failed to delete. Failed to get filesystem representation to create CString from cfString or filesystem representation is a null value");
         return false;
+    }
 
     // unlink(...) returns 0 on successful deletion of the path and non-zero in any other case (including invalid permissions or non-existent file)
-    return !unlink(fsRep.data());
+    bool unlinked = !unlink(fsRep.data());
+    if (!unlinked)
+        LOG_ERROR("File failed to delete. Error message: %s", strerror(errno));
+
+    return unlinked;
 }
 
 PlatformFileHandle openFile(const String& path, FileOpenMode mode)