diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 33f4521fd1b..40027667231 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -49,6 +49,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 diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestFSMainOperationsLocalFileSystem.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestFSMainOperationsLocalFileSystem.java index 233f2aaaf66..2f8d8ce8486 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestFSMainOperationsLocalFileSystem.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestFSMainOperationsLocalFileSystem.java @@ -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 diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemDelegation.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemDelegation.java index b9c0a087b31..e320f87bbce 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemDelegation.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemDelegation.java @@ -40,12 +40,12 @@ 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); } - + static FakeFileSystem setupFileSystem(URI uri, Class clazz) throws Exception { String scheme = uri.getScheme(); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFsTrash.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFsTrash.java index 7795c3f5f02..81270c2320d 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFsTrash.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFsTrash.java @@ -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,52 +54,19 @@ 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 { diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java index 5276a06207c..1de434e3a96 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java @@ -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); } diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemTestSetup.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemTestSetup.java index e1c28e696f7..11f4d7af713 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemTestSetup.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemTestSetup.java @@ -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(targetOfTests); - + fsTarget.mkdirs(FileSystemTestHelper.getTestRootPath(fsTarget)); + + // 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); - // Now set up a link from viewfs to targetfs for the first component of - // path of testdir. For example, if testdir is /user//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()); - 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;