diff options
author | Robin Stocker <robin@nibor.org> | 2014-10-23 06:50:00 -0400 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org <gerrit@eclipse.org> | 2014-10-23 06:50:00 -0400 |
commit | 6eca51923f49026d6e91052bc959472732332560 (patch) | |
tree | 8ef9a810c939eda502c88547761a7c8d27bd0152 /org.eclipse.jgit.test | |
parent | 2c25a1fde015facc51ab999aedccd59d574fff29 (diff) | |
parent | 4ea8c655d62e02544c06b4a8ea61929a84fb1c79 (diff) | |
download | jgit-6eca51923f49026d6e91052bc959472732332560.tar.gz jgit-6eca51923f49026d6e91052bc959472732332560.zip |
Merge "Initialize 'pathLen' field also for empty directories"
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java index 51110b1d80..ab4579009b 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java @@ -145,6 +145,43 @@ public class FileTreeIteratorTest extends RepositoryTestCase { } @Test + public void testEmptyIteratorOnEmptyDirectory() throws Exception { + String nonExistingFileName = "not-existing-file"; + final File r = new File(trash, nonExistingFileName); + assertFalse(r.exists()); + FileUtils.mkdir(r); + + final FileTreeIterator parent = new FileTreeIterator(db); + + while (!parent.getEntryPathString().equals(nonExistingFileName)) + parent.next(1); + + final FileTreeIterator childIter = new FileTreeIterator(parent, r, + db.getFS()); + assertTrue(childIter.first()); + assertTrue(childIter.eof()); + + String parentPath = parent.getEntryPathString(); + assertEquals(nonExistingFileName, parentPath); + + // must be "not-existing-file/", but getEntryPathString() was broken by + // 445363 too + String childPath = childIter.getEntryPathString(); + + // in bug 445363 the iterator wrote garbage to the parent "path" field + EmptyTreeIterator e = childIter.createEmptyTreeIterator(); + assertNotNull(e); + + // check if parent path is not overridden by empty iterator (bug 445363) + // due bug 445363 this was "/ot-existing-file" instead of + // "not-existing-file" + assertEquals(parentPath, parent.getEntryPathString()); + assertEquals(parentPath + "/", childPath); + assertEquals(parentPath + "/", childIter.getEntryPathString()); + assertEquals(childPath + "/", e.getEntryPathString()); + } + + @Test public void testSimpleIterate() throws Exception { final FileTreeIterator top = new FileTreeIterator(trash, db.getFS(), db.getConfig().get(WorkingTreeOptions.KEY)); |