Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Halstrick2015-10-08 16:17:30 +0000
committerMatthias Sohn2015-10-08 21:56:07 +0000
commit227b78f087fa583b17130613a37b7fd904e92ffc (patch)
tree61d56034d97198acbe7fb6c7e186b3053346143a /org.eclipse.jgit.test
parentcd1b00e3fcdfa648e06b205f4b278c73d00a5f09 (diff)
downloadjgit-227b78f087fa583b17130613a37b7fd904e92ffc.tar.gz
jgit-227b78f087fa583b17130613a37b7fd904e92ffc.tar.xz
jgit-227b78f087fa583b17130613a37b7fd904e92ffc.zip
Add utility method allowing to check for empty folders in workdir
Previously the method DirCacheCheckoutTest#assertWorkDir() silently skipped over empty folders. If tests would have left unexpected empty folders in the worktree this would be overlooked. Now empty folders have to be specified by something like mkmap("<foldername>", "/", ...] Change-Id: Idb8b270e92daf02ecdc381d148a5958bd83ec057 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java24
1 files changed, 21 insertions, 3 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
index 7a115e1076..a8a54a8df7 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
@@ -78,6 +78,7 @@ import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.treewalk.FileTreeIterator;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.FileUtils;
import org.junit.Test;
public class DirCacheCheckoutTest extends RepositoryTestCase {
@@ -983,6 +984,14 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
}
@Test
+ public void testDontOverwriteEmptyFolder() throws IOException {
+ setupCase(mk("foo"), mk("foo"), mk("foo"));
+ FileUtils.mkdir(new File(db.getWorkTree(), "d"));
+ checkout();
+ assertWorkDir(mkmap("foo", "foo", "d", "/"));
+ }
+
+ @Test
public void testOverwriteUntrackedIgnoredFile() throws IOException,
GitAPIException {
String fname="file.txt";
@@ -1213,7 +1222,7 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
public void assertWorkDir(HashMap<String, String> i) throws CorruptObjectException,
IOException {
TreeWalk walk = new TreeWalk(db);
- walk.setRecursive(true);
+ walk.setRecursive(false);
walk.addTree(new FileTreeIterator(db));
String expectedValue;
String path;
@@ -1223,11 +1232,11 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
ft = walk.getTree(0, FileTreeIterator.class);
path = ft.getEntryPathString();
expectedValue = i.get(path);
- assertNotNull("found unexpected file for path " + path
- + " in workdir", expectedValue);
File file = new File(db.getWorkTree(), path);
assertTrue(file.exists());
if (file.isFile()) {
+ assertNotNull("found unexpected file for path " + path
+ + " in workdir", expectedValue);
FileInputStream is = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
int offset = 0;
@@ -1241,6 +1250,15 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
assertArrayEquals("unexpected content for path " + path
+ " in workDir. ", buffer, i.get(path).getBytes());
nrFiles++;
+ } else if (file.isDirectory()) {
+ if (file.list().length == 0) {
+ assertEquals("found unexpected empty folder for path "
+ + path + " in workDir. ", "/", i.get(path));
+ nrFiles++;
+ }
+ }
+ if (walk.isSubtree()) {
+ walk.enterSubtree();
}
}
assertEquals("WorkDir has not the right size.", i.size(), nrFiles);

Back to the top