@Test public void testFilePermissions() throws Exception { Path testFile = new Path("permissionTestFile"); FsPermission permission = FsPermission.createImmutable((short) 644); createEmptyFile(testFile, permission); FileStatus ret = fs.getFileStatus(testFile); assertEqualsIgnoreStickyBit(permission, ret.getPermission()); fs.delete(testFile, true); }
@Test public void testRenameImplicitFolder() throws Exception { Path testFile = new Path("deep/file/rename/test"); FsPermission permission = FsPermission.createImmutable((short) 644); createEmptyFile(testFile, permission); boolean renameResult = fs.rename(new Path("deep/file"), new Path("deep/renamed")); assertTrue(renameResult); assertFalse(fs.exists(testFile)); FileStatus newStatus = fs.getFileStatus(new Path("deep/renamed/rename/test")); assertNotNull(newStatus); assertEqualsIgnoreStickyBit(permission, newStatus.getPermission()); assertTrue(fs.delete(new Path("deep"), true)); }
@Test public void testRenameImplicitFolder() throws Exception { Path testFile = new Path("deep/file/rename/test"); FsPermission permission = FsPermission.createImmutable((short) 644); createEmptyFile(testFile, permission); boolean renameResult = fs.rename(new Path("deep/file"), new Path("deep/renamed")); assertTrue(renameResult); assertFalse(fs.exists(testFile)); FileStatus newStatus = fs.getFileStatus(new Path("deep/renamed/rename/test")); assertNotNull(newStatus); assertEqualsIgnoreStickyBit(permission, newStatus.getPermission()); assertTrue(fs.delete(new Path("deep"), true)); }
void testDeepFileCreationBase(String testFilePath, String firstDirPath, String middleDirPath, short permissionShort, short umaskedPermissionShort) throws Exception { Path testFile = new Path(testFilePath); Path firstDir = new Path(firstDirPath); Path middleDir = new Path(middleDirPath); FsPermission permission = FsPermission.createImmutable(permissionShort); FsPermission umaskedPermission = FsPermission.createImmutable(umaskedPermissionShort); createEmptyFile(testFile, permission); FsPermission rootPerm = fs.getFileStatus(firstDir.getParent()).getPermission(); FsPermission inheritPerm = FsPermission.createImmutable((short)(rootPerm.toShort() | 0300)); assertTrue(fs.exists(testFile)); assertTrue(fs.exists(firstDir)); assertTrue(fs.exists(middleDir)); // verify that the indirectly created directory inherited its permissions from the root directory FileStatus directoryStatus = fs.getFileStatus(middleDir); assertTrue(directoryStatus.isDirectory()); assertEqualsIgnoreStickyBit(inheritPerm, directoryStatus.getPermission()); // verify that the file itself has the permissions as specified FileStatus fileStatus = fs.getFileStatus(testFile); assertFalse(fileStatus.isDirectory()); assertEqualsIgnoreStickyBit(umaskedPermission, fileStatus.getPermission()); assertTrue(fs.delete(firstDir, true)); assertFalse(fs.exists(testFile)); // An alternative test scenario would've been to delete the file first, // and then check for the existence of the upper folders still. But that // doesn't actually work as expected right now. }
@Test public void testFilePermissions() throws Exception { Path testFile = methodPath(); FsPermission permission = FsPermission.createImmutable((short) 644); createEmptyFile(testFile, permission); FileStatus ret = fs.getFileStatus(testFile); assertEqualsIgnoreStickyBit(permission, ret.getPermission()); fs.delete(testFile, true); }
void testDeepFileCreationBase(String testFilePath, String firstDirPath, String middleDirPath, short permissionShort, short umaskedPermissionShort) throws Exception { Path testFile = new Path(testFilePath); Path firstDir = new Path(firstDirPath); Path middleDir = new Path(middleDirPath); FsPermission permission = FsPermission.createImmutable(permissionShort); FsPermission umaskedPermission = FsPermission.createImmutable(umaskedPermissionShort); createEmptyFile(testFile, permission); FsPermission rootPerm = fs.getFileStatus(firstDir.getParent()).getPermission(); FsPermission inheritPerm = FsPermission.createImmutable((short)(rootPerm.toShort() | 0300)); assertPathExists("test file", testFile); assertPathExists("firstDir", firstDir); assertPathExists("middleDir", middleDir); // verify that the indirectly created directory inherited its permissions from the root directory FileStatus directoryStatus = fs.getFileStatus(middleDir); assertTrue(directoryStatus.isDirectory()); assertEqualsIgnoreStickyBit(inheritPerm, directoryStatus.getPermission()); // verify that the file itself has the permissions as specified FileStatus fileStatus = fs.getFileStatus(testFile); assertFalse(fileStatus.isDirectory()); assertEqualsIgnoreStickyBit(umaskedPermission, fileStatus.getPermission()); assertTrue(fs.delete(firstDir, true)); assertPathDoesNotExist("deleted file", testFile); // An alternative test scenario would've been to delete the file first, // and then check for the existence of the upper folders still. But that // doesn't actually work as expected right now. }