HADOOP-12442. Display help if the command option to 'hdfs dfs' is not valid (Contributed by nijel)
This commit is contained in:
parent
7a3c381b39
commit
861b52db24
|
@ -1156,6 +1156,9 @@ Release 2.8.0 - UNRELEASED
|
|||
HADOOP-12437. Allow SecurityUtil to lookup alternate hostnames.
|
||||
(Arpit Agarwal)
|
||||
|
||||
HADOOP-12442. Display help if the command option to 'hdfs dfs' is not valid
|
||||
(nijel via vinayakumarb)
|
||||
|
||||
Release 2.7.2 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -313,6 +313,7 @@ public class FsShell extends Configured implements Tool {
|
|||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
displayError(cmd, e.getLocalizedMessage());
|
||||
printUsage(System.err);
|
||||
if (instance != null) {
|
||||
printInstanceUsage(System.err, instance);
|
||||
}
|
||||
|
|
|
@ -17,8 +17,12 @@
|
|||
*/
|
||||
package org.apache.hadoop.fs;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import junit.framework.AssertionFailedError;
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.io.IOUtils;
|
||||
import org.apache.hadoop.tracing.SetSpanReceiver;
|
||||
import org.apache.hadoop.tracing.SpanReceiverHost;
|
||||
import org.apache.hadoop.util.ToolRunner;
|
||||
|
@ -67,4 +71,33 @@ public class TestFsShell {
|
|||
SetSpanReceiver.getMap()
|
||||
.get("help").get(0).getKVAnnotations().get("args"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDFSWithInvalidCommmand() throws Throwable {
|
||||
Configuration conf = new Configuration();
|
||||
FsShell shell = new FsShell(conf);
|
||||
String[] args = new String[1];
|
||||
args[0] = "dfs -mkdirs";
|
||||
final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||
final PrintStream out = new PrintStream(bytes);
|
||||
final PrintStream oldErr = System.err;
|
||||
try {
|
||||
System.setErr(out);
|
||||
ToolRunner.run(shell, args);
|
||||
String errorValue=new String(bytes.toString());
|
||||
Assert
|
||||
.assertTrue(
|
||||
"FSShell dfs command did not print the error " +
|
||||
"message when invalid command is passed",
|
||||
errorValue.contains("-mkdirs: Unknown command"));
|
||||
Assert
|
||||
.assertTrue(
|
||||
"FSShell dfs command did not print help " +
|
||||
"message when invalid command is passed",
|
||||
errorValue.contains("Usage: hadoop fs [generic options]"));
|
||||
} finally {
|
||||
IOUtils.closeStream(out);
|
||||
System.setErr(oldErr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue