HADOOP-15516. Add test cases to cover FileUtil#readLink. Contributed by Giovanni Matteo Fumarola.
This commit is contained in:
parent
7969cc4667
commit
12be8bad7d
@ -198,6 +198,12 @@ public static String readLink(File f) {
|
|||||||
* 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();
|
||||||
|
@ -1441,4 +1441,56 @@ private void putEntriesInTar(TarArchiveOutputStream tos, File f)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
Block a user