HADOOP-12164. Fix TestMove and TestFsShellReturnCode failed to get command name using reflection. (Lei Xu)

(cherry picked from commit 47fab573bcb7b1129648499571b518f7b9773f89)

Conflicts:
	hadoop-common-project/hadoop-common/CHANGES.txt
	hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFsShellReturnCode.java
This commit is contained in:
Lei Xu 2015-06-30 17:26:49 -07:00
parent f7ba3c0045
commit fad478e7ce
3 changed files with 49 additions and 15 deletions

View File

@ -422,6 +422,9 @@ Release 2.8.0 - UNRELEASED
HADOOP-12116. Fix unrecommended syntax usages in hadoop/hdfs/yarn script for HADOOP-12116. Fix unrecommended syntax usages in hadoop/hdfs/yarn script for
cygwin in branch-2. (Li Lu via cnauroth) 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 Release 2.7.2 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -18,6 +18,7 @@
package org.apache.hadoop.fs; 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.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
@ -382,18 +383,33 @@ public class TestFsShellReturnCode {
} }
/**
* 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. * Tests combinations of valid and invalid user and group arguments to chown.
*/ */
@Test @Test
public void testChownUserAndGroupValidity() { public void testChownUserAndGroupValidity() {
// This test only covers argument parsing, so override to skip processing. testChownUserAndGroupValidity(true);
FsCommand chown = new FsShellPermissions.Chown() { testChownUserAndGroupValidity(false);
@Override
protected void processArgument(PathData item) {
} }
};
chown.setConf(new Configuration()); 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). // The following are valid (no exception expected).
chown.run("user", "/path"); chown.run("user", "/path");
@ -417,18 +433,32 @@ public class TestFsShellReturnCode {
assertIllegalArguments(chown, ":gr%oup", "/path"); 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. * Tests valid and invalid group arguments to chgrp.
*/ */
@Test @Test
public void testChgrpGroupValidity() { public void testChgrpGroupValidity() {
// This test only covers argument parsing, so override to skip processing. testChgrpGroupValidity(true);
FsCommand chgrp = new FsShellPermissions.Chgrp() { testChgrpGroupValidity(false);
@Override
protected void processArgument(PathData item) {
} }
};
chgrp.setConf(new Configuration()); 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). // The following are valid (no exception expected).
chgrp.run("group", "/path"); chgrp.run("group", "/path");

View File

@ -114,6 +114,7 @@ public class TestMove {
} }
private static class InstrumentedRenameCommand extends MoveCommands.Rename { private static class InstrumentedRenameCommand extends MoveCommands.Rename {
public static String NAME = "InstrumentedRename";
private Exception error = null; private Exception error = null;
@Override @Override
public void displayError(Exception e) { public void displayError(Exception e) {