DirCacheIteratorTest: Open TreeWalk instances in try-with-resource

Change-Id: If23597acaebf2295b85411bf87bc0292d5dc789e
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
This commit is contained in:
David Pursehouse 2016-02-15 17:12:29 +09:00
parent 430b777830
commit 30c9ec88d1
1 changed files with 93 additions and 86 deletions

View File

@ -76,9 +76,10 @@ public void testEmptyTree_WithTreeWalk() throws Exception {
final DirCache dc = DirCache.newInCore();
assertEquals(0, dc.getEntryCount());
final TreeWalk tw = new TreeWalk(db);
tw.addTree(new DirCacheIterator(dc));
assertFalse(tw.next());
try (final TreeWalk tw = new TreeWalk(db)) {
tw.addTree(new DirCacheIterator(dc));
assertFalse(tw.next());
}
}
@Test
@ -125,19 +126,20 @@ public void testNoSubtree_WithTreeWalk() throws Exception {
b.finish();
final DirCacheIterator i = new DirCacheIterator(dc);
final TreeWalk tw = new TreeWalk(db);
tw.addTree(i);
int pathIdx = 0;
while (tw.next()) {
assertSame(i, tw.getTree(0, DirCacheIterator.class));
assertEquals(pathIdx, i.ptr);
assertSame(ents[pathIdx], i.getDirCacheEntry());
assertEquals(paths[pathIdx], tw.getPathString());
assertEquals(modes[pathIdx].getBits(), tw.getRawMode(0));
assertSame(modes[pathIdx], tw.getFileMode(0));
pathIdx++;
try (final TreeWalk tw = new TreeWalk(db)) {
tw.addTree(i);
int pathIdx = 0;
while (tw.next()) {
assertSame(i, tw.getTree(0, DirCacheIterator.class));
assertEquals(pathIdx, i.ptr);
assertSame(ents[pathIdx], i.getDirCacheEntry());
assertEquals(paths[pathIdx], tw.getPathString());
assertEquals(modes[pathIdx].getBits(), tw.getRawMode(0));
assertSame(modes[pathIdx], tw.getFileMode(0));
pathIdx++;
}
assertEquals(paths.length, pathIdx);
}
assertEquals(paths.length, pathIdx);
}
@Test
@ -162,26 +164,27 @@ public void testSingleSubtree_NoRecursion() throws Exception {
final int expPos[] = { 0, -1, 4 };
final DirCacheIterator i = new DirCacheIterator(dc);
final TreeWalk tw = new TreeWalk(db);
tw.addTree(i);
tw.setRecursive(false);
int pathIdx = 0;
while (tw.next()) {
assertSame(i, tw.getTree(0, DirCacheIterator.class));
assertEquals(expModes[pathIdx].getBits(), tw.getRawMode(0));
assertSame(expModes[pathIdx], tw.getFileMode(0));
assertEquals(expPaths[pathIdx], tw.getPathString());
try (final TreeWalk tw = new TreeWalk(db)) {
tw.addTree(i);
tw.setRecursive(false);
int pathIdx = 0;
while (tw.next()) {
assertSame(i, tw.getTree(0, DirCacheIterator.class));
assertEquals(expModes[pathIdx].getBits(), tw.getRawMode(0));
assertSame(expModes[pathIdx], tw.getFileMode(0));
assertEquals(expPaths[pathIdx], tw.getPathString());
if (expPos[pathIdx] >= 0) {
assertEquals(expPos[pathIdx], i.ptr);
assertSame(ents[expPos[pathIdx]], i.getDirCacheEntry());
} else {
assertSame(FileMode.TREE, tw.getFileMode(0));
if (expPos[pathIdx] >= 0) {
assertEquals(expPos[pathIdx], i.ptr);
assertSame(ents[expPos[pathIdx]], i.getDirCacheEntry());
} else {
assertSame(FileMode.TREE, tw.getFileMode(0));
}
pathIdx++;
}
pathIdx++;
assertEquals(expPaths.length, pathIdx);
}
assertEquals(expPaths.length, pathIdx);
}
@Test
@ -202,21 +205,22 @@ public void testSingleSubtree_Recursive() throws Exception {
b.finish();
final DirCacheIterator i = new DirCacheIterator(dc);
final TreeWalk tw = new TreeWalk(db);
tw.addTree(i);
tw.setRecursive(true);
int pathIdx = 0;
while (tw.next()) {
final DirCacheIterator c = tw.getTree(0, DirCacheIterator.class);
assertNotNull(c);
assertEquals(pathIdx, c.ptr);
assertSame(ents[pathIdx], c.getDirCacheEntry());
assertEquals(paths[pathIdx], tw.getPathString());
assertEquals(mode.getBits(), tw.getRawMode(0));
assertSame(mode, tw.getFileMode(0));
pathIdx++;
try (final TreeWalk tw = new TreeWalk(db)) {
tw.addTree(i);
tw.setRecursive(true);
int pathIdx = 0;
while (tw.next()) {
final DirCacheIterator c = tw.getTree(0, DirCacheIterator.class);
assertNotNull(c);
assertEquals(pathIdx, c.ptr);
assertSame(ents[pathIdx], c.getDirCacheEntry());
assertEquals(paths[pathIdx], tw.getPathString());
assertEquals(mode.getBits(), tw.getRawMode(0));
assertSame(mode, tw.getFileMode(0));
pathIdx++;
}
assertEquals(paths.length, pathIdx);
}
assertEquals(paths.length, pathIdx);
}
@Test
@ -236,21 +240,22 @@ public void testTwoLevelSubtree_Recursive() throws Exception {
b.add(ents[i]);
b.finish();
final TreeWalk tw = new TreeWalk(db);
tw.addTree(new DirCacheIterator(dc));
tw.setRecursive(true);
int pathIdx = 0;
while (tw.next()) {
final DirCacheIterator c = tw.getTree(0, DirCacheIterator.class);
assertNotNull(c);
assertEquals(pathIdx, c.ptr);
assertSame(ents[pathIdx], c.getDirCacheEntry());
assertEquals(paths[pathIdx], tw.getPathString());
assertEquals(mode.getBits(), tw.getRawMode(0));
assertSame(mode, tw.getFileMode(0));
pathIdx++;
try (final TreeWalk tw = new TreeWalk(db)) {
tw.addTree(new DirCacheIterator(dc));
tw.setRecursive(true);
int pathIdx = 0;
while (tw.next()) {
final DirCacheIterator c = tw.getTree(0, DirCacheIterator.class);
assertNotNull(c);
assertEquals(pathIdx, c.ptr);
assertSame(ents[pathIdx], c.getDirCacheEntry());
assertEquals(paths[pathIdx], tw.getPathString());
assertEquals(mode.getBits(), tw.getRawMode(0));
assertSame(mode, tw.getFileMode(0));
pathIdx++;
}
assertEquals(paths.length, pathIdx);
}
assertEquals(paths.length, pathIdx);
}
@Test
@ -397,22 +402,23 @@ public void testTwoLevelSubtree_FilterPath() throws Exception {
b.add(ents[i]);
b.finish();
final TreeWalk tw = new TreeWalk(db);
for (int victimIdx = 0; victimIdx < paths.length; victimIdx++) {
tw.reset();
tw.addTree(new DirCacheIterator(dc));
tw.setFilter(PathFilterGroup.createFromStrings(Collections
.singleton(paths[victimIdx])));
tw.setRecursive(tw.getFilter().shouldBeRecursive());
assertTrue(tw.next());
final DirCacheIterator c = tw.getTree(0, DirCacheIterator.class);
assertNotNull(c);
assertEquals(victimIdx, c.ptr);
assertSame(ents[victimIdx], c.getDirCacheEntry());
assertEquals(paths[victimIdx], tw.getPathString());
assertEquals(mode.getBits(), tw.getRawMode(0));
assertSame(mode, tw.getFileMode(0));
assertFalse(tw.next());
try (final TreeWalk tw = new TreeWalk(db)) {
for (int victimIdx = 0; victimIdx < paths.length; victimIdx++) {
tw.reset();
tw.addTree(new DirCacheIterator(dc));
tw.setFilter(PathFilterGroup.createFromStrings(Collections
.singleton(paths[victimIdx])));
tw.setRecursive(tw.getFilter().shouldBeRecursive());
assertTrue(tw.next());
final DirCacheIterator c = tw.getTree(0, DirCacheIterator.class);
assertNotNull(c);
assertEquals(victimIdx, c.ptr);
assertSame(ents[victimIdx], c.getDirCacheEntry());
assertEquals(paths[victimIdx], tw.getPathString());
assertEquals(mode.getBits(), tw.getRawMode(0));
assertSame(mode, tw.getFileMode(0));
assertFalse(tw.next());
}
}
}
@ -424,18 +430,19 @@ public void testRemovedSubtree() throws Exception {
final DirCache dc = DirCache.read(path, FS.DETECTED);
assertEquals(2, dc.getEntryCount());
final TreeWalk tw = new TreeWalk(db);
tw.setRecursive(true);
tw.addTree(new DirCacheIterator(dc));
try (final TreeWalk tw = new TreeWalk(db)) {
tw.setRecursive(true);
tw.addTree(new DirCacheIterator(dc));
assertTrue(tw.next());
assertEquals("a/a", tw.getPathString());
assertSame(FileMode.REGULAR_FILE, tw.getFileMode(0));
assertTrue(tw.next());
assertEquals("a/a", tw.getPathString());
assertSame(FileMode.REGULAR_FILE, tw.getFileMode(0));
assertTrue(tw.next());
assertEquals("q", tw.getPathString());
assertSame(FileMode.REGULAR_FILE, tw.getFileMode(0));
assertTrue(tw.next());
assertEquals("q", tw.getPathString());
assertSame(FileMode.REGULAR_FILE, tw.getFileMode(0));
assertFalse(tw.next());
assertFalse(tw.next());
}
}
}