HADOOP-9791. Add a test case covering long paths for new FileUtil access check methods. Contributed by Ivan Mitic.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1524631 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1c4f4a38ca
commit
3720956a6a
@ -369,6 +369,9 @@ Release 2.3.0 - UNRELEASED
|
||||
HADOOP-9929. Insufficient permissions for a path reported as file not found.
|
||||
(Contributed by Colin Patrick McCabe)
|
||||
|
||||
HADOOP-9791. Add a test case covering long paths for new FileUtil access
|
||||
check methods (ivanmi)
|
||||
|
||||
Release 2.2.0 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -254,6 +254,45 @@ public void testAccess() throws Exception {
|
||||
File testFile = new File(TEST_DIR, "testfileaccess");
|
||||
assertTrue(testFile.createNewFile());
|
||||
|
||||
// Validate ACCESS_READ
|
||||
FileUtil.setReadable(testFile, false);
|
||||
assertFalse(NativeIO.Windows.access(testFile.getAbsolutePath(),
|
||||
NativeIO.Windows.AccessRight.ACCESS_READ));
|
||||
|
||||
FileUtil.setReadable(testFile, true);
|
||||
assertTrue(NativeIO.Windows.access(testFile.getAbsolutePath(),
|
||||
NativeIO.Windows.AccessRight.ACCESS_READ));
|
||||
|
||||
// Validate ACCESS_WRITE
|
||||
FileUtil.setWritable(testFile, false);
|
||||
assertFalse(NativeIO.Windows.access(testFile.getAbsolutePath(),
|
||||
NativeIO.Windows.AccessRight.ACCESS_WRITE));
|
||||
|
||||
FileUtil.setWritable(testFile, true);
|
||||
assertTrue(NativeIO.Windows.access(testFile.getAbsolutePath(),
|
||||
NativeIO.Windows.AccessRight.ACCESS_WRITE));
|
||||
|
||||
// Validate ACCESS_EXECUTE
|
||||
FileUtil.setExecutable(testFile, false);
|
||||
assertFalse(NativeIO.Windows.access(testFile.getAbsolutePath(),
|
||||
NativeIO.Windows.AccessRight.ACCESS_EXECUTE));
|
||||
|
||||
FileUtil.setExecutable(testFile, true);
|
||||
assertTrue(NativeIO.Windows.access(testFile.getAbsolutePath(),
|
||||
NativeIO.Windows.AccessRight.ACCESS_EXECUTE));
|
||||
|
||||
// Validate that access checks work as expected for long paths
|
||||
|
||||
// Assemble a path longer then 260 chars (MAX_PATH)
|
||||
String testFileRelativePath = "";
|
||||
for (int i = 0; i < 15; ++i) {
|
||||
testFileRelativePath += "testfileaccessfolder\\";
|
||||
}
|
||||
testFileRelativePath += "testfileaccess";
|
||||
testFile = new File(TEST_DIR, testFileRelativePath);
|
||||
assertTrue(testFile.getParentFile().mkdirs());
|
||||
assertTrue(testFile.createNewFile());
|
||||
|
||||
// Validate ACCESS_READ
|
||||
FileUtil.setReadable(testFile, false);
|
||||
assertFalse(NativeIO.Windows.access(testFile.getAbsolutePath(),
|
||||
|
Loading…
Reference in New Issue
Block a user