summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
authorRobin Stocker <robin@nibor.org>2014-10-23 06:50:00 -0400
committerGerrit Code Review @ Eclipse.org <gerrit@eclipse.org>2014-10-23 06:50:00 -0400
commit6eca51923f49026d6e91052bc959472732332560 (patch)
tree8ef9a810c939eda502c88547761a7c8d27bd0152 /org.eclipse.jgit.test
parent2c25a1fde015facc51ab999aedccd59d574fff29 (diff)
parent4ea8c655d62e02544c06b4a8ea61929a84fb1c79 (diff)
downloadjgit-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.java37
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));