Title: [277178] trunk/Tools
- Revision
- 277178
- Author
- [email protected]
- Date
- 2021-05-07 09:49:54 -0700 (Fri, 07 May 2021)
Log Message
Add API test for FileSystem::fileExists() and FileSystem::fileMetadata() when dealing with symlinks to symlinks
https://bugs.webkit.org/show_bug.cgi?id=225491
Reviewed by Sam Weinig.
Update FileSystemTest::SetUp() to use a valid path when constructing the test symlink
(tempFileSymlinkPath). Add API test for FileSystem::fileExists() and FileSystem::fileMetadata()
when dealing with symlinks to symlinks.
* TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (277177 => 277178)
--- trunk/Tools/ChangeLog 2021-05-07 16:42:35 UTC (rev 277177)
+++ trunk/Tools/ChangeLog 2021-05-07 16:49:54 UTC (rev 277178)
@@ -1,3 +1,17 @@
+2021-05-07 Chris Dumez <[email protected]>
+
+ Add API test for FileSystem::fileExists() and FileSystem::fileMetadata() when dealing with symlinks to symlinks
+ https://bugs.webkit.org/show_bug.cgi?id=225491
+
+ Reviewed by Sam Weinig.
+
+ Update FileSystemTest::SetUp() to use a valid path when constructing the test symlink
+ (tempFileSymlinkPath). Add API test for FileSystem::fileExists() and FileSystem::fileMetadata()
+ when dealing with symlinks to symlinks.
+
+ * TestWebKitAPI/Tests/WTF/FileSystem.cpp:
+ (TestWebKitAPI::TEST_F):
+
2021-05-07 Philippe Normand <[email protected]>
Unreviewed, WPE gardening
Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp (277177 => 277178)
--- trunk/Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp 2021-05-07 16:42:35 UTC (rev 277177)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp 2021-05-07 16:49:54 UTC (rev 277178)
@@ -50,7 +50,9 @@
FileSystem::writeToFile(handle, FileSystemTestData, strlen(FileSystemTestData));
FileSystem::closeFile(handle);
- m_tempFileSymlinkPath = "tempTestFile-symlink";
+ m_tempFileSymlinkPath = FileSystem::openTemporaryFile("tempTestFile-symlink", handle);
+ FileSystem::closeFile(handle);
+ FileSystem::deleteFile(m_tempFileSymlinkPath);
FileSystem::createSymbolicLink(m_tempFilePath, m_tempFileSymlinkPath);
// Create temp directory.
@@ -292,6 +294,45 @@
EXPECT_TRUE(FileSystem::deleteFile(symlinkPath));
}
+TEST_F(FileSystemTest, fileExistsSymlinkToSymlink)
+{
+ // Create a valid symlink to a symlink to a regular file.
+ auto symlinkPath = FileSystem::pathByAppendingComponent(tempEmptyFolderPath(), "symlink"_s);
+ EXPECT_TRUE(FileSystem::createSymbolicLink(tempFileSymlinkPath(), symlinkPath));
+ EXPECT_TRUE(FileSystem::fileExists(symlinkPath));
+
+ auto metadata = FileSystem::fileMetadata(symlinkPath);
+ ASSERT_TRUE(!!metadata);
+ EXPECT_EQ(metadata->type, FileMetadata::Type::SymbolicLink);
+
+ auto targetMetadata = FileSystem::fileMetadataFollowingSymlinks(symlinkPath);
+ ASSERT_TRUE(!!targetMetadata);
+ EXPECT_EQ(targetMetadata->type, FileMetadata::Type::File);
+
+ // Break the symlink by deleting the target.
+ EXPECT_TRUE(FileSystem::deleteFile(tempFilePath()));
+
+ EXPECT_FALSE(FileSystem::fileExists(tempFilePath()));
+ EXPECT_FALSE(FileSystem::fileExists(tempFileSymlinkPath())); // fileExists() follows symlinks.
+ EXPECT_FALSE(FileSystem::fileExists(symlinkPath)); // fileExists() follows symlinks.
+
+ metadata = FileSystem::fileMetadata(symlinkPath);
+ ASSERT_TRUE(!!metadata);
+ EXPECT_EQ(metadata->type, FileMetadata::Type::SymbolicLink);
+
+ metadata = FileSystem::fileMetadata(tempFileSymlinkPath());
+ ASSERT_TRUE(!!metadata);
+ EXPECT_EQ(metadata->type, FileMetadata::Type::SymbolicLink);
+
+ targetMetadata = FileSystem::fileMetadataFollowingSymlinks(tempFileSymlinkPath());
+ EXPECT_TRUE(!targetMetadata);
+
+ targetMetadata = FileSystem::fileMetadataFollowingSymlinks(symlinkPath);
+ EXPECT_TRUE(!targetMetadata);
+
+ EXPECT_TRUE(FileSystem::deleteFile(symlinkPath));
+}
+
TEST_F(FileSystemTest, deleteSymlink)
{
EXPECT_TRUE(FileSystem::fileExists(tempFilePath()));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes