HADOOP-8036. TestViewFsTrash assumes the user's home directory is 2 levels deep. Contributed by Colin Patrick McCabe
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1245751 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1425c65b5e
commit
daf22e5f32
|
@ -201,6 +201,9 @@ Release 0.23.2 - UNRELEASED
|
|||
|
||||
HADOOP-8083 javadoc generation for some modules is not done under target/ (tucu)
|
||||
|
||||
HADOOP-8036. TestViewFsTrash assumes the user's home directory is
|
||||
2 levels deep. (Colin Patrick McCabe via eli)
|
||||
|
||||
Release 0.23.1 - 2012-02-08
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -37,15 +37,15 @@ public class TestFSMainOperationsLocalFileSystem extends FSMainOperationsBaseTes
|
|||
public void setUp() throws Exception {
|
||||
Configuration conf = new Configuration();
|
||||
fcTarget = FileSystem.getLocal(conf);
|
||||
fSys = ViewFileSystemTestSetup.setupForViewFs(
|
||||
ViewFileSystemTestSetup.configWithViewfsScheme(), fcTarget);
|
||||
fSys = ViewFileSystemTestSetup.setupForViewFileSystem(
|
||||
ViewFileSystemTestSetup.createConfig(), fcTarget);
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
super.tearDown();
|
||||
ViewFileSystemTestSetup.tearDownForViewFs(fcTarget);
|
||||
ViewFileSystemTestSetup.tearDown(fcTarget);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -40,7 +40,7 @@ public class TestViewFileSystemDelegation { //extends ViewFileSystemTestSetup {
|
|||
|
||||
@BeforeClass
|
||||
public static void setup() throws Exception {
|
||||
conf = ViewFileSystemTestSetup.configWithViewfsScheme();
|
||||
conf = ViewFileSystemTestSetup.createConfig();
|
||||
fs1 = setupFileSystem(new URI("fs1:/"), FakeFileSystem.class);
|
||||
fs2 = setupFileSystem(new URI("fs2:/"), FakeFileSystem.class);
|
||||
viewFs = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||
|
|
|
@ -35,7 +35,6 @@ import org.mortbay.log.Log;
|
|||
public class TestViewFsTrash {
|
||||
FileSystem fsTarget; // the target file system - the mount will point here
|
||||
FileSystem fsView;
|
||||
Path targetTestRoot;
|
||||
Configuration conf;
|
||||
|
||||
static class TestLFS extends LocalFileSystem {
|
||||
|
@ -55,53 +54,20 @@ public class TestViewFsTrash {
|
|||
@Before
|
||||
public void setUp() throws Exception {
|
||||
fsTarget = FileSystem.getLocal(new Configuration());
|
||||
targetTestRoot = FileSystemTestHelper.getAbsoluteTestRootPath(fsTarget);
|
||||
// In case previous test was killed before cleanup
|
||||
fsTarget.delete(targetTestRoot, true);
|
||||
// cleanup trash from previous run if it stuck around
|
||||
fsTarget.delete(new Path(fsTarget.getHomeDirectory(), ".Trash/Current"),
|
||||
true);
|
||||
|
||||
fsTarget.mkdirs(targetTestRoot);
|
||||
fsTarget.mkdirs(new Path(targetTestRoot,"dir1"));
|
||||
|
||||
|
||||
// Now we use the mount fs to set links to user and dir
|
||||
// in the test root
|
||||
|
||||
// Set up the defaultMT in the config with our mount point links
|
||||
|
||||
|
||||
conf = ViewFileSystemTestSetup.configWithViewfsScheme();
|
||||
|
||||
// create a link for home directory so that trash path works
|
||||
// set up viewfs's home dir root to point to home dir root on target
|
||||
// But home dir is different on linux, mac etc.
|
||||
// Figure it out by calling home dir on target
|
||||
|
||||
String homeDirRoot = fsTarget.getHomeDirectory()
|
||||
.getParent().toUri().getPath();
|
||||
ConfigUtil.addLink(conf, homeDirRoot,
|
||||
fsTarget.makeQualified(new Path(homeDirRoot)).toUri());
|
||||
ConfigUtil.setHomeDirConf(conf, homeDirRoot);
|
||||
Log.info("Home dir base " + homeDirRoot);
|
||||
|
||||
fsView = ViewFileSystemTestSetup.setupForViewFs(conf, fsTarget);
|
||||
|
||||
// set working dir so that relative paths
|
||||
//fsView.setWorkingDirectory(new Path(fsTarget.getWorkingDirectory().toUri().getPath()));
|
||||
fsTarget.mkdirs(new Path(FileSystemTestHelper.
|
||||
getTestRootPath(fsTarget), "dir1"));
|
||||
conf = ViewFileSystemTestSetup.createConfig();
|
||||
fsView = ViewFileSystemTestSetup.setupForViewFileSystem(conf, fsTarget);
|
||||
conf.set("fs.defaultFS", FsConstants.VIEWFS_URI.toString());
|
||||
}
|
||||
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
fsTarget.delete(targetTestRoot, true);
|
||||
ViewFileSystemTestSetup.tearDown(fsTarget);
|
||||
fsTarget.delete(new Path(fsTarget.getHomeDirectory(), ".Trash/Current"),
|
||||
true);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testTrash() throws IOException {
|
||||
TestTrash.trashShell(conf, FileSystemTestHelper.getTestRootPath(fsView),
|
||||
|
|
|
@ -89,7 +89,7 @@ public class ViewFileSystemBaseTest {
|
|||
|
||||
// Set up the defaultMT in the config with our mount point links
|
||||
//Configuration conf = new Configuration();
|
||||
conf = ViewFileSystemTestSetup.configWithViewfsScheme();
|
||||
conf = ViewFileSystemTestSetup.createConfig();
|
||||
setupMountPoints();
|
||||
fsView = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import org.apache.hadoop.fs.FileSystemTestHelper;
|
|||
import org.apache.hadoop.fs.FsConstants;
|
||||
import org.apache.hadoop.fs.Path;
|
||||
import org.apache.hadoop.fs.viewfs.ConfigUtil;
|
||||
import org.mortbay.log.Log;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -46,32 +47,21 @@ public class ViewFileSystemTestSetup {
|
|||
* @return return the ViewFS File context to be used for tests
|
||||
* @throws Exception
|
||||
*/
|
||||
static public FileSystem setupForViewFs(Configuration conf, FileSystem fsTarget) throws Exception {
|
||||
static public FileSystem setupForViewFileSystem(Configuration conf, FileSystem fsTarget) throws Exception {
|
||||
/**
|
||||
* create the test root on local_fs - the mount table will point here
|
||||
*/
|
||||
Path targetOfTests = FileSystemTestHelper.getTestRootPath(fsTarget);
|
||||
// In case previous test was killed before cleanup
|
||||
fsTarget.delete(targetOfTests, true);
|
||||
fsTarget.mkdirs(FileSystemTestHelper.getTestRootPath(fsTarget));
|
||||
|
||||
fsTarget.mkdirs(targetOfTests);
|
||||
|
||||
|
||||
// Now set up a link from viewfs to targetfs for the first component of
|
||||
// path of testdir. For example, if testdir is /user/<userid>/xx then
|
||||
// a link from /user to targetfs://user.
|
||||
|
||||
String testDir = FileSystemTestHelper.getTestRootPath(fsTarget).toUri().getPath();
|
||||
int indexOf2ndSlash = testDir.indexOf('/', 1);
|
||||
String testDirFirstComponent = testDir.substring(0, indexOf2ndSlash);
|
||||
|
||||
|
||||
ConfigUtil.addLink(conf, testDirFirstComponent,
|
||||
fsTarget.makeQualified(new Path(testDirFirstComponent)).toUri());
|
||||
// viewFs://home => fsTarget://home
|
||||
String homeDirRoot = fsTarget.getHomeDirectory()
|
||||
.getParent().toUri().getPath();
|
||||
ConfigUtil.addLink(conf, homeDirRoot,
|
||||
fsTarget.makeQualified(new Path(homeDirRoot)).toUri());
|
||||
ConfigUtil.setHomeDirConf(conf, homeDirRoot);
|
||||
Log.info("Home dir base " + homeDirRoot);
|
||||
|
||||
FileSystem fsView = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||
//System.out.println("SRCOfTests = "+ getTestRootPath(fs, "test"));
|
||||
//System.out.println("TargetOfTests = "+ targetOfTests.toUri());
|
||||
return fsView;
|
||||
}
|
||||
|
||||
|
@ -79,12 +69,12 @@ public class ViewFileSystemTestSetup {
|
|||
*
|
||||
* delete the test directory in the target fs
|
||||
*/
|
||||
static public void tearDownForViewFs(FileSystem fsTarget) throws Exception {
|
||||
static public void tearDown(FileSystem fsTarget) throws Exception {
|
||||
Path targetOfTests = FileSystemTestHelper.getTestRootPath(fsTarget);
|
||||
fsTarget.delete(targetOfTests, true);
|
||||
}
|
||||
|
||||
public static Configuration configWithViewfsScheme() {
|
||||
public static Configuration createConfig() {
|
||||
Configuration conf = new Configuration();
|
||||
conf.set("fs.viewfs.impl", ViewFileSystem.class.getName());
|
||||
return conf;
|
||||
|
|
Loading…
Reference in New Issue