HADOOP-7045. TestDU fails on systems with local file systems with extended attributes. Contributed by Eli Collins

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1036746 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Eli Collins 2010-11-19 06:26:22 +00:00
parent ab00be860a
commit 82c5214ab1
2 changed files with 17 additions and 5 deletions

View File

@ -19,6 +19,9 @@ Trunk (unreleased changes)
whose entries are changing (e.g. in a multi-thread or multi-process whose entries are changing (e.g. in a multi-thread or multi-process
environment). (Sanjay Radia via eli) environment). (Sanjay Radia via eli)
HADOOP-7045. TestDU fails on systems with local file systems with
extended attributes. (eli)
Release 0.22.0 - Unreleased Release 0.22.0 - Unreleased
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -65,7 +65,10 @@ public class TestDU extends TestCase {
* @throws InterruptedException * @throws InterruptedException
*/ */
public void testDU() throws IOException, InterruptedException { public void testDU() throws IOException, InterruptedException {
int writtenSize = 32*1024; // writing 32K final int writtenSize = 32*1024; // writing 32K
// Allow for extra 4K on-disk slack for local file systems
// that may store additional file metadata (eg ext attrs).
final int slack = 4*1024;
File file = new File(DU_DIR, "data"); File file = new File(DU_DIR, "data");
createFile(file, writtenSize); createFile(file, writtenSize);
@ -76,7 +79,9 @@ public class TestDU extends TestCase {
long duSize = du.getUsed(); long duSize = du.getUsed();
du.shutdown(); du.shutdown();
assertEquals(writtenSize, duSize); assertTrue("Invalid on-disk size",
duSize >= writtenSize &&
writtenSize <= (duSize + slack));
//test with 0 interval, will not launch thread //test with 0 interval, will not launch thread
du = new DU(file, 0); du = new DU(file, 0);
@ -84,12 +89,16 @@ public class TestDU extends TestCase {
duSize = du.getUsed(); duSize = du.getUsed();
du.shutdown(); du.shutdown();
assertEquals(writtenSize, duSize); assertTrue("Invalid on-disk size",
duSize >= writtenSize &&
writtenSize <= (duSize + slack));
//test without launching thread //test without launching thread
du = new DU(file, 10000); du = new DU(file, 10000);
duSize = du.getUsed(); duSize = du.getUsed();
assertEquals(writtenSize, duSize); assertTrue("Invalid on-disk size",
duSize >= writtenSize &&
writtenSize <= (duSize + slack));
} }
} }