HDFS-2332. Add test for HADOOP-7629 (using an immutable FsPermission object as an RPC parameter fails). Contributed by Todd Lipcon.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1176692 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Todd Lipcon 2011-09-28 03:00:59 +00:00
parent 5f6adcf396
commit eb3a692a57
2 changed files with 33 additions and 20 deletions

View File

@ -757,6 +757,9 @@ Release 0.23.0 - Unreleased
HDFS-1217. Change some NameNode methods from public to package private. HDFS-1217. Change some NameNode methods from public to package private.
(Laxman via szetszwo) (Laxman via szetszwo)
HDFS-2332. Add test for HADOOP-7629 (using an immutable FsPermission
object as an RPC parameter fails). (todd)
OPTIMIZATIONS OPTIMIZATIONS
HDFS-1458. Improve checkpoint performance by avoiding unnecessary image HDFS-1458. Improve checkpoint performance by avoiding unnecessary image

View File

@ -72,6 +72,7 @@ public class TestDFSPermission extends TestCase {
final private static Path NON_EXISTENT_FILE = new Path("/NonExistentFile"); final private static Path NON_EXISTENT_FILE = new Path("/NonExistentFile");
private FileSystem fs; private FileSystem fs;
private MiniDFSCluster cluster;
private static Random r; private static Random r;
static { static {
@ -105,18 +106,25 @@ public class TestDFSPermission extends TestCase {
} }
} }
@Override
public void setUp() throws IOException {
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
cluster.waitActive();
}
@Override
public void tearDown() throws IOException {
if (cluster != null) {
cluster.shutdown();
}
}
/** This tests if permission setting in create, mkdir, and /** This tests if permission setting in create, mkdir, and
* setPermission works correctly * setPermission works correctly
*/ */
public void testPermissionSetting() throws Exception { public void testPermissionSetting() throws Exception {
MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
try {
cluster.waitActive();
testPermissionSetting(OpType.CREATE); // test file creation testPermissionSetting(OpType.CREATE); // test file creation
testPermissionSetting(OpType.MKDIRS); // test directory creation testPermissionSetting(OpType.MKDIRS); // test directory creation
} finally {
cluster.shutdown();
}
} }
private void initFileSystem(short umask) throws Exception { private void initFileSystem(short umask) throws Exception {
@ -245,17 +253,22 @@ private void checkPermission(Path name, short expectedPermission,
} }
} }
/**
* check that ImmutableFsPermission can be used as the argument
* to setPermission
*/
public void testImmutableFsPermission() throws IOException {
fs = FileSystem.get(conf);
// set the permission of the root to be world-wide rwx
fs.setPermission(new Path("/"),
FsPermission.createImmutable((short)0777));
}
/* check if the ownership of a file/directory is set correctly */ /* check if the ownership of a file/directory is set correctly */
public void testOwnership() throws Exception { public void testOwnership() throws Exception {
MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
try {
cluster.waitActive();
testOwnership(OpType.CREATE); // test file creation testOwnership(OpType.CREATE); // test file creation
testOwnership(OpType.MKDIRS); // test directory creation testOwnership(OpType.MKDIRS); // test directory creation
} finally {
fs.close();
cluster.shutdown();
}
} }
/* change a file/directory's owner and group. /* change a file/directory's owner and group.
@ -342,9 +355,7 @@ private enum OpType {CREATE, MKDIRS, OPEN, SET_REPLICATION,
/* Check if namenode performs permission checking correctly for /* Check if namenode performs permission checking correctly for
* superuser, file owner, group owner, and other users */ * superuser, file owner, group owner, and other users */
public void testPermissionChecking() throws Exception { public void testPermissionChecking() throws Exception {
MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
try { try {
cluster.waitActive();
fs = FileSystem.get(conf); fs = FileSystem.get(conf);
// set the permission of the root to be world-wide rwx // set the permission of the root to be world-wide rwx
@ -401,7 +412,6 @@ public void testPermissionChecking() throws Exception {
parentPermissions, permissions, parentPaths, filePaths, dirPaths); parentPermissions, permissions, parentPaths, filePaths, dirPaths);
} finally { } finally {
fs.close(); fs.close();
cluster.shutdown();
} }
} }