HADOOP-15516. Add test cases to cover FileUtil#readLink. Contributed by Giovanni Matteo Fumarola.
(cherry picked from commit 12be8bad7d
)
This commit is contained in:
parent
e9367ccb41
commit
8526ba9a69
|
@ -198,6 +198,12 @@ public class FileUtil {
|
||||||
* use getCanonicalPath in File to get the target of the symlink but that
|
* use getCanonicalPath in File to get the target of the symlink but that
|
||||||
* does not indicate if the given path refers to a symlink.
|
* does not indicate if the given path refers to a symlink.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (f == null) {
|
||||||
|
LOG.warn("Can not read a null symLink");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return Shell.execCommand(
|
return Shell.execCommand(
|
||||||
Shell.getReadlinkCommand(f.toString())).trim();
|
Shell.getReadlinkCommand(f.toString())).trim();
|
||||||
|
|
|
@ -1287,4 +1287,56 @@ public class TestFileUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test validates the correctness of {@link FileUtil#readLink(File)} in
|
||||||
|
* case of null pointer inputs.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testReadSymlinkWithNullInput() {
|
||||||
|
String result = FileUtil.readLink(null);
|
||||||
|
Assert.assertEquals("", result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test validates the correctness of {@link FileUtil#readLink(File)}.
|
||||||
|
*
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testReadSymlink() throws IOException {
|
||||||
|
Assert.assertFalse(del.exists());
|
||||||
|
del.mkdirs();
|
||||||
|
|
||||||
|
File file = new File(del, FILE);
|
||||||
|
File link = new File(del, "_link");
|
||||||
|
|
||||||
|
// Create a symbolic link
|
||||||
|
FileUtil.symLink(file.getAbsolutePath(), link.getAbsolutePath());
|
||||||
|
|
||||||
|
String result = FileUtil.readLink(link);
|
||||||
|
Assert.assertEquals(file.getAbsolutePath(), result);
|
||||||
|
|
||||||
|
file.delete();
|
||||||
|
link.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test validates the correctness of {@link FileUtil#readLink(File)} when
|
||||||
|
* it gets a file in input.
|
||||||
|
*
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testReadSymlinkWithAFileAsInput() throws IOException {
|
||||||
|
Assert.assertFalse(del.exists());
|
||||||
|
del.mkdirs();
|
||||||
|
|
||||||
|
File file = new File(del, FILE);
|
||||||
|
|
||||||
|
String result = FileUtil.readLink(file);
|
||||||
|
Assert.assertEquals("", result);
|
||||||
|
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue