diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index a16463d9271..3b11a94c7d8 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -422,6 +422,9 @@ Release 2.8.0 - UNRELEASED HADOOP-12116. Fix unrecommended syntax usages in hadoop/hdfs/yarn script for cygwin in branch-2. (Li Lu via cnauroth) + HADOOP-12164. Fix TestMove and TestFsShellReturnCode failed to get command + name using reflection. (lei) + Release 2.7.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFsShellReturnCode.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFsShellReturnCode.java index c68def65e1a..cd606dd0c92 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFsShellReturnCode.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFsShellReturnCode.java @@ -18,6 +18,7 @@ package org.apache.hadoop.fs; +import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SHELL_MISSING_DEFAULT_FS_WARNING_KEY; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -381,19 +382,34 @@ public void testInvalidDefaultFS() throws Exception { } } - + + /** + * Faked Chown class for {@link testChownUserAndGroupValidity()}. + * + * The test only covers argument parsing, so override to skip processing. + */ + private static class FakeChown extends FsShellPermissions.Chown { + public static String NAME = "chown"; + @Override + protected void processArgument(PathData item) { + } + } + /** * Tests combinations of valid and invalid user and group arguments to chown. */ @Test public void testChownUserAndGroupValidity() { - // This test only covers argument parsing, so override to skip processing. - FsCommand chown = new FsShellPermissions.Chown() { - @Override - protected void processArgument(PathData item) { - } - }; - chown.setConf(new Configuration()); + testChownUserAndGroupValidity(true); + testChownUserAndGroupValidity(false); + } + + private void testChownUserAndGroupValidity(boolean enableWarning) { + Configuration conf = new Configuration(); + conf.setBoolean( + HADOOP_SHELL_MISSING_DEFAULT_FS_WARNING_KEY, enableWarning); + FsCommand chown = new FakeChown(); + chown.setConf(conf); // The following are valid (no exception expected). chown.run("user", "/path"); @@ -417,18 +433,32 @@ protected void processArgument(PathData item) { assertIllegalArguments(chown, ":gr%oup", "/path"); } + /** + * Faked Chgrp class for {@link testChgrpGroupValidity()}. + * The test only covers argument parsing, so override to skip processing. + */ + private static class FakeChgrp extends FsShellPermissions.Chgrp { + public static String NAME = "chgrp"; + @Override + protected void processArgument(PathData item) { + } + } + /** * Tests valid and invalid group arguments to chgrp. */ @Test public void testChgrpGroupValidity() { - // This test only covers argument parsing, so override to skip processing. - FsCommand chgrp = new FsShellPermissions.Chgrp() { - @Override - protected void processArgument(PathData item) { - } - }; - chgrp.setConf(new Configuration()); + testChgrpGroupValidity(true); + testChgrpGroupValidity(false); + } + + private void testChgrpGroupValidity(boolean enableWarning) { + Configuration conf = new Configuration(); + conf.setBoolean( + HADOOP_SHELL_MISSING_DEFAULT_FS_WARNING_KEY, enableWarning); + FsShellPermissions.Chgrp chgrp = new FakeChgrp(); + chgrp.setConf(conf); // The following are valid (no exception expected). chgrp.run("group", "/path"); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestMove.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestMove.java index 6599edf786b..94930e5d4ff 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestMove.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestMove.java @@ -114,6 +114,7 @@ public Configuration getConf() { } private static class InstrumentedRenameCommand extends MoveCommands.Rename { + public static String NAME = "InstrumentedRename"; private Exception error = null; @Override public void displayError(Exception e) {