diff --git a/CHANGES.txt b/CHANGES.txt index 3646637c88f..dd986ab63d6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -168,6 +168,9 @@ Trunk (unreleased changes) HADOOP-6977. Herriot daemon clients should vend statistics (cos) + HADOOP-7024. Create a test method for adding file systems during tests. + (Kan Zhang via jghoman) + OPTIMIZATIONS HADOOP-6884. Add LOG.isDebugEnabled() guard for each LOG.debug(..). diff --git a/src/java/org/apache/hadoop/fs/FileSystem.java b/src/java/org/apache/hadoop/fs/FileSystem.java index 28ddb3badfb..a759d65436a 100644 --- a/src/java/org/apache/hadoop/fs/FileSystem.java +++ b/src/java/org/apache/hadoop/fs/FileSystem.java @@ -103,6 +103,19 @@ public abstract class FileSystem extends Configured implements Closeable { */ private Set deleteOnExit = new TreeSet(); + /** + * This method adds a file system for testing so that we can find it later. It + * is only for testing. + * @param uri the uri to store it under + * @param conf the configuration to store it under + * @param fs the file system to store + * @throws IOException + */ + static void addFileSystemForTesting(URI uri, Configuration conf, + FileSystem fs) throws IOException { + CACHE.map.put(new Cache.Key(uri, conf), fs); + } + /** * Get a filesystem instance based on the uri, the passed * configuration and the user diff --git a/src/test/core/org/apache/hadoop/fs/FileSystemTestHelper.java b/src/test/core/org/apache/hadoop/fs/FileSystemTestHelper.java index 17c95738c85..218ed13df60 100644 --- a/src/test/core/org/apache/hadoop/fs/FileSystemTestHelper.java +++ b/src/test/core/org/apache/hadoop/fs/FileSystemTestHelper.java @@ -20,8 +20,10 @@ package org.apache.hadoop.fs; import java.io.DataInputStream; import java.io.IOException; import java.io.FileNotFoundException; +import java.net.URI; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.IOUtils; import org.junit.Assert; @@ -40,6 +42,11 @@ public final class FileSystemTestHelper { /** Hidden constructor */ private FileSystemTestHelper() {} + public static void addFileSystemForTesting(URI uri, Configuration conf, + FileSystem fs) throws IOException { + FileSystem.addFileSystemForTesting(uri, conf, fs); + } + public static int getDefaultBlockSize() { return DEFAULT_BLOCK_SIZE; }