HDFS-2710. Add HDFS tests related to HADOOP-7933. Contributed by Siddarth Seth.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1227759 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Suresh Srinivas 2012-01-05 18:59:26 +00:00
parent c0b64eeeba
commit 3af44a310d
2 changed files with 49 additions and 19 deletions

View File

@ -65,6 +65,9 @@ Release 0.23.1 - UNRELEASED
HDFS-2722. HttpFs should not be using an int for block size. (harsh) HDFS-2722. HttpFs should not be using an int for block size. (harsh)
HDFS-2710. Add HDFS tests related to HADOOP-7933. (Siddarth Seth via
suresh)
OPTIMIZATIONS OPTIMIZATIONS
HDFS-2130. Switch default checksum to CRC32C. (todd) HDFS-2130. Switch default checksum to CRC32C. (todd)

View File

@ -20,44 +20,54 @@ package org.apache.hadoop.fs.viewfs;
import java.io.IOException; import java.io.IOException;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.List;
import javax.security.auth.login.LoginException; import javax.security.auth.login.LoginException;
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileSystemTestHelper;
import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter; import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter;
import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.Token;
import org.junit.After; import org.junit.After;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test;
public class TestViewFileSystemHdfs extends ViewFileSystemBaseTest { public class TestViewFileSystemHdfs extends ViewFileSystemBaseTest {
private static MiniDFSCluster cluster; private static MiniDFSCluster cluster;
private static Path defaultWorkingDirectory; private static Path defaultWorkingDirectory;
private static Path defaultWorkingDirectory2;
private static Configuration CONF = new Configuration(); private static Configuration CONF = new Configuration();
private static FileSystem fHdfs; private static FileSystem fHdfs;
private static FileSystem fHdfs2;
private FileSystem fsTarget2;
Path targetTestRoot2;
@BeforeClass @BeforeClass
public static void clusterSetupAtBegining() throws IOException, public static void clusterSetupAtBegining() throws IOException,
LoginException, URISyntaxException { LoginException, URISyntaxException {
SupportsBlocks = true; SupportsBlocks = true;
cluster = new MiniDFSCluster.Builder(CONF).numDataNodes(2).build(); cluster =
new MiniDFSCluster.Builder(CONF).numNameNodes(2).numDataNodes(2)
.build();
cluster.waitClusterUp(); cluster.waitClusterUp();
NameNodeAdapter.getDtSecretManager(cluster.getNamesystem()).startThreads(); NameNodeAdapter.getDtSecretManager(cluster.getNamesystem(0)).startThreads();
fHdfs = cluster.getFileSystem(); NameNodeAdapter.getDtSecretManager(cluster.getNamesystem(1)).startThreads();
fHdfs = cluster.getFileSystem(0);
fHdfs2 = cluster.getFileSystem(1);
defaultWorkingDirectory = fHdfs.makeQualified( new Path("/user/" + defaultWorkingDirectory = fHdfs.makeQualified( new Path("/user/" +
UserGroupInformation.getCurrentUser().getShortUserName())); UserGroupInformation.getCurrentUser().getShortUserName()));
defaultWorkingDirectory2 = fHdfs2.makeQualified( new Path("/user/" +
UserGroupInformation.getCurrentUser().getShortUserName()));
fHdfs.mkdirs(defaultWorkingDirectory); fHdfs.mkdirs(defaultWorkingDirectory);
fHdfs2.mkdirs(defaultWorkingDirectory2);
} }
@ -70,8 +80,9 @@ public class TestViewFileSystemHdfs extends ViewFileSystemBaseTest {
public void setUp() throws Exception { public void setUp() throws Exception {
// create the test root on local_fs // create the test root on local_fs
fsTarget = fHdfs; fsTarget = fHdfs;
fsTarget2 = fHdfs2;
targetTestRoot2 = FileSystemTestHelper.getAbsoluteTestRootPath(fsTarget2);
super.setUp(); super.setUp();
} }
@After @After
@ -79,16 +90,32 @@ public class TestViewFileSystemHdfs extends ViewFileSystemBaseTest {
super.tearDown(); super.tearDown();
} }
/*
* This overides the default implementation since hdfs does have delegation
* tokens.
*/
@Override @Override
@Test void setupMountPoints() {
public void testGetDelegationTokens() throws IOException { super.setupMountPoints();
List<Token<?>> delTokens = ConfigUtil.addLink(conf, "/mountOnNn2", new Path(targetTestRoot2,
fsView.getDelegationTokens("sanjay"); "mountOnNn2").toUri());
Assert.assertEquals(7, delTokens.size());
} }
// Overriden test helper methods - changed values based on hdfs and the
// additional mount.
@Override
int getExpectedDirPaths() {
return 7;
}
@Override
int getExpectedMountPoints() {
return 8;
}
@Override
int getExpectedDelegationTokenCount() {
return 8;
}
@Override
int getExpectedDelegationTokenCountWithCredentials() {
return 2;
}
} }