|
@@ -45,10 +45,6 @@ public class TestFileStatus extends TestCase {
|
|
|
static final int blockSize = 8192;
|
|
|
static final int fileSize = 16384;
|
|
|
|
|
|
- private static String TEST_ROOT_DIR =
|
|
|
- new Path(System.getProperty("test.build.data","/tmp"))
|
|
|
- .toString().replace(' ', '+');
|
|
|
-
|
|
|
private void writeFile(FileSystem fileSys, Path name, int repl,
|
|
|
int fileSize, int blockSize)
|
|
|
throws IOException {
|
|
@@ -74,6 +70,7 @@ public class TestFileStatus extends TestCase {
|
|
|
*/
|
|
|
public void testFileStatus() throws IOException {
|
|
|
Configuration conf = new Configuration();
|
|
|
+ conf.setInt(DFSConfigKeys.DFS_LIST_LIMIT, 2);
|
|
|
MiniDFSCluster cluster = new MiniDFSCluster(conf, 1, true, null);
|
|
|
FileSystem fs = cluster.getFileSystem();
|
|
|
final HftpFileSystem hftpfs = cluster.getHftpFileSystem();
|
|
@@ -85,8 +82,6 @@ public class TestFileStatus extends TestCase {
|
|
|
//
|
|
|
Path path = new Path("/");
|
|
|
System.out.println("Path : \"" + path.toString() + "\"");
|
|
|
- System.out.println(fs.isDirectory(path));
|
|
|
- System.out.println(fs.getFileStatus(path).isDir());
|
|
|
assertTrue("/ should be a directory",
|
|
|
fs.getFileStatus(path).isDir() == true);
|
|
|
|
|
@@ -125,10 +120,16 @@ public class TestFileStatus extends TestCase {
|
|
|
assertEquals(fs.makeQualified(file1).toString(),
|
|
|
status.getPath().toString());
|
|
|
|
|
|
- // create an empty directory
|
|
|
- //
|
|
|
- Path parentDir = new Path("/test");
|
|
|
+ // test file status on a directory
|
|
|
Path dir = new Path("/test/mkdirs");
|
|
|
+
|
|
|
+ // test listStatus on a non-existent file/directory
|
|
|
+ stats = fs.listStatus(dir);
|
|
|
+ assertEquals(null, stats);
|
|
|
+ status = fs.getFileStatus(dir);
|
|
|
+ assertEquals(null, status);
|
|
|
+
|
|
|
+ // create the directory
|
|
|
assertTrue(fs.mkdirs(dir));
|
|
|
assertTrue(fs.exists(dir));
|
|
|
System.out.println("Dir : \"" + dir + "\"");
|
|
@@ -164,8 +165,8 @@ public class TestFileStatus extends TestCase {
|
|
|
status = fs.getFileStatus(file2);
|
|
|
assertTrue(status.getBlockSize() == blockSize);
|
|
|
assertTrue(status.getReplication() == 1);
|
|
|
- assertEquals(fs.makeQualified(file2).toString(),
|
|
|
- status.getPath().toString());
|
|
|
+ file2 = fs.makeQualified(file2);
|
|
|
+ assertEquals(file2.toString(), status.getPath().toString());
|
|
|
|
|
|
// create another file in the same directory
|
|
|
Path file3 = new Path(dir, "filestatus3.dat");
|
|
@@ -173,7 +174,8 @@ public class TestFileStatus extends TestCase {
|
|
|
System.out.println("Created file filestatus3.dat with one "
|
|
|
+ " replicas.");
|
|
|
checkFile(fs, file3, 1);
|
|
|
-
|
|
|
+ file3 = fs.makeQualified(file3);
|
|
|
+
|
|
|
// verify that the size of the directory increased by the size
|
|
|
// of the two files
|
|
|
final int expected = blockSize/2;
|
|
@@ -185,13 +187,35 @@ public class TestFileStatus extends TestCase {
|
|
|
// test listStatus on a non-empty directory
|
|
|
stats = fs.listStatus(dir);
|
|
|
assertEquals(dir + " should have two entries", 2, stats.length);
|
|
|
- String qualifiedFile2 = fs.makeQualified(file2).toString();
|
|
|
- String qualifiedFile3 = fs.makeQualified(file3).toString();
|
|
|
- for(FileStatus stat:stats) {
|
|
|
- String statusFullName = stat.getPath().toString();
|
|
|
- assertTrue(qualifiedFile2.equals(statusFullName)
|
|
|
- || qualifiedFile3.toString().equals(statusFullName));
|
|
|
- } } finally {
|
|
|
+ assertEquals(file2.toString(), stats[0].getPath().toString());
|
|
|
+ assertEquals(file3.toString(), stats[1].getPath().toString());
|
|
|
+
|
|
|
+ // test iterative listing
|
|
|
+ // now dir has 2 entries, create one more
|
|
|
+ Path dir3 = fs.makeQualified(new Path(dir, "dir3"));
|
|
|
+ fs.mkdirs(dir3);
|
|
|
+ dir3 = fs.makeQualified(dir3);
|
|
|
+ stats = fs.listStatus(dir);
|
|
|
+ assertEquals(dir + " should have three entries", 3, stats.length);
|
|
|
+ assertEquals(dir3.toString(), stats[0].getPath().toString());
|
|
|
+ assertEquals(file2.toString(), stats[1].getPath().toString());
|
|
|
+ assertEquals(file3.toString(), stats[2].getPath().toString());
|
|
|
+
|
|
|
+ // now dir has 3 entries, create two more
|
|
|
+ Path dir4 = fs.makeQualified(new Path(dir, "dir4"));
|
|
|
+ fs.mkdirs(dir4);
|
|
|
+ dir4 = fs.makeQualified(dir4);
|
|
|
+ Path dir5 = fs.makeQualified(new Path(dir, "dir5"));
|
|
|
+ fs.mkdirs(dir5);
|
|
|
+ dir5 = fs.makeQualified(dir5);
|
|
|
+ stats = fs.listStatus(dir);
|
|
|
+ assertEquals(dir + " should have five entries", 5, stats.length);
|
|
|
+ assertEquals(dir3.toString(), stats[0].getPath().toString());
|
|
|
+ assertEquals(dir4.toString(), stats[1].getPath().toString());
|
|
|
+ assertEquals(dir5.toString(), stats[2].getPath().toString());
|
|
|
+ assertEquals(file2.toString(), stats[3].getPath().toString());
|
|
|
+ assertEquals(file3.toString(), stats[4].getPath().toString());
|
|
|
+ } finally {
|
|
|
fs.close();
|
|
|
cluster.shutdown();
|
|
|
}
|