[
https://issues.apache.org/jira/browse/HADOOP-19443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17923555#comment-17923555
]
ASF GitHub Bot commented on HADOOP-19443:
-----------------------------------------
anujmodi2021 commented on code in PR #7344:
URL: https://github.com/apache/hadoop/pull/7344#discussion_r1940450488
##########
hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/ITestAzureBlobFileSystemFileStatus.java:
##########
@@ -162,6 +175,102 @@ public void testFileStatusOnRoot() throws IOException {
// Assert that passing absolute root path without "/" works
testPathStr = testPathStr.substring(0, testPathStr.length() - 1);
validateStatus(fs, new Path(testPathStr), true);
+ }
+
+ /**
+ * Test to verify fs.getFileStatus() works as expected on explicit paths as
expected.
+ * Explicit path can exist as a directory as well as a file.
+ * @throws IOException if test fails
+ */
+ @Test
+ public void testFileStatusOnExplicitPath() throws Exception {
+ AzureBlobFileSystem fs = getFileSystem();
+ Path explicitDirPath = path("explicitDir");
+ Path filePath = new Path(explicitDirPath, "explicitFile");
+ Path nonExistingPath = new Path(explicitDirPath, "nonExistingFile");
+
+ fs.mkdirs(explicitDirPath);
+ fs.create(filePath).close();
+
+ // Test File Status on explicit dir path.
+ FileStatus fileStatus = fs.getFileStatus(explicitDirPath);
+ verifyFileStatus(fileStatus, true);
+
+ // Test File Status on file with explicit parent.
+ fileStatus = fs.getFileStatus(filePath);
+ verifyFileStatus(fileStatus, false);
+
+ // Test File Status non-existing file with explicit parent.
+ FileNotFoundException ex = intercept(FileNotFoundException.class, () -> {
+ fs.getFileStatus(nonExistingPath);
+ });
+ verifyFileNotFound(ex, nonExistingPath.getName());
+ }
+
+ /**
+ * Test to verify fs.getFileStatus() works as expected on implicit paths as
expected.
+ * Implicit path can exist as a directory only in HNS-Disabled Accounts.
+ * @throws Exception
+ */
+ @Test
+ public void testFileStatusOnImplicitPath() throws Exception {
+ AzureBlobFileSystem fs = getFileSystem();
+ Path filePath = path("implicitDir/fileWithImplicitParent");
+ Path implicitDir = filePath.getParent();
+ Path nonExistingPath = new Path(implicitDir, "nonExistingFile");
+
+ createAzCopyFile(filePath);
+
+ // Test File Status on implicit dir parent.
+ FileStatus fileStatus = fs.getFileStatus(implicitDir);
+ verifyFileStatus(fileStatus, true);
+
+ // Test File Status on file with implicit parent.
+ fileStatus = fs.getFileStatus(filePath);
+ verifyFileStatus(fileStatus, false);
+
+ // Test File Status on non-existing file with implicit parent.
+ FileNotFoundException ex = intercept(FileNotFoundException.class, () -> {
+ fs.getFileStatus(nonExistingPath);
+ });
+ verifyFileNotFound(ex, nonExistingPath.getName());
+ }
+
+ /**
+ * Test to verify fs.getFileStatus() need to internally call listStatus on
path.
+ * @throws Exception if test fails
+ */
+ @Test
+ public void testListStatusIsCalledForImplicitPathOnBlobEndpoint() throws
Exception {
+ assumeBlobServiceType();
+ AzureBlobFileSystem fs = Mockito.spy(getFileSystem());
+ AzureBlobFileSystemStore store = Mockito.spy(fs.getAbfsStore());
+ Mockito.doReturn(store).when(fs).getAbfsStore();
+ AbfsBlobClient abfsClient =
Mockito.spy(store.getClientHandler().getBlobClient());
+ Mockito.doReturn(abfsClient).when(store).getClient();
+
+ Path implicitPath = path("implicitDir");
+ createAzCopyFolder(implicitPath);
+
+ fs.getFileStatus(implicitPath);
+
+ Mockito.verify(abfsClient, Mockito.times(1)).getPathStatus(any(),
eq(false), any(), any());
+ Mockito.verify(abfsClient, Mockito.times(1)).listPath(any(), eq(false),
eq(1), any(), any(), eq(false));
+ }
+
+ private void verifyFileStatus(FileStatus fileStatus, boolean isDir) {
Review Comment:
Added
> ABFS: [FnsOverBlob] Update Test Scripts to Run Tests with Blob Endpoint
> -----------------------------------------------------------------------
>
> Key: HADOOP-19443
> URL: https://issues.apache.org/jira/browse/HADOOP-19443
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: fs/azure
> Affects Versions: 3.4.1
> Reporter: Anuj Modi
> Priority: Major
> Labels: pull-request-available
>
> Following Cobination of test Suites will run as a part of CI after blob
> endpoint support has been added.
> HNS-OAuth-DFS
> HNS-SharedKey-DFS
> NonHNS-SharedKey-DFS
> AppendBlob-HNS-OAuth-DFS
> NonHNS-SharedKey-Blob
> NonHNS-OAuth-DFS
> NonHNS-OAuth-Blob
> AppendBlob-NonHNS-OAuth-Blob
> HNS-Oauth-DFS-IngressBlob
> NonHNS-Oauth-DFS-IngressBlob
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]