]> source.dussan.org Git - jgit.git/commitdiff
DirCacheCheckoutTest: Open Git and TreeWalk in try-with-resource 37/65637/1
authorDavid Pursehouse <david.pursehouse@sonymobile.com>
Tue, 2 Feb 2016 09:30:30 +0000 (18:30 +0900)
committerDavid Pursehouse <david.pursehouse@sonymobile.com>
Tue, 2 Feb 2016 09:30:30 +0000 (18:30 +0900)
Change-Id: Icc8eda841e6a437e1acf3438525014e7c46d5eb2
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java

index 92901f826bd0cd6ca123a4bf779ba07014041e07..c1b882a6561dbcd56ea61725e6ef9bbc7650d574 100644 (file)
@@ -140,52 +140,53 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
        @Test
        public void testResetHard() throws IOException, NoFilepatternException,
                        GitAPIException {
-               Git git = new Git(db);
-               writeTrashFile("f", "f()");
-               writeTrashFile("D/g", "g()");
-               git.add().addFilepattern(".").call();
-               git.commit().setMessage("inital").call();
-               assertIndex(mkmap("f", "f()", "D/g", "g()"));
-
-               git.branchCreate().setName("topic").call();
-
-               writeTrashFile("f", "f()\nmaster");
-               writeTrashFile("D/g", "g()\ng2()");
-               writeTrashFile("E/h", "h()");
-               git.add().addFilepattern(".").call();
-               RevCommit master = git.commit().setMessage("master-1").call();
-               assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
-
-               checkoutBranch("refs/heads/topic");
-               assertIndex(mkmap("f", "f()", "D/g", "g()"));
-
-               writeTrashFile("f", "f()\nside");
-               assertTrue(new File(db.getWorkTree(), "D/g").delete());
-               writeTrashFile("G/i", "i()");
-               git.add().addFilepattern(".").call();
-               git.add().addFilepattern(".").setUpdate(true).call();
-               RevCommit topic = git.commit().setMessage("topic-1").call();
-               assertIndex(mkmap("f", "f()\nside", "G/i", "i()"));
-
-               writeTrashFile("untracked", "untracked");
-
-               resetHard(master);
-               assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
-               resetHard(topic);
-               assertIndex(mkmap("f", "f()\nside", "G/i", "i()"));
-               assertWorkDir(mkmap("f", "f()\nside", "G/i", "i()", "untracked",
-                               "untracked"));
-
-               assertEquals(MergeStatus.CONFLICTING, git.merge().include(master)
-                               .call().getMergeStatus());
-               assertEquals(
-                               "[D/g, mode:100644, stage:1][D/g, mode:100644, stage:3][E/h, mode:100644][G/i, mode:100644][f, mode:100644, stage:1][f, mode:100644, stage:2][f, mode:100644, stage:3]",
-                               indexState(0));
-
-               resetHard(master);
-               assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
-               assertWorkDir(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h",
-                               "h()", "untracked", "untracked"));
+               try (Git git = new Git(db)) {
+                       writeTrashFile("f", "f()");
+                       writeTrashFile("D/g", "g()");
+                       git.add().addFilepattern(".").call();
+                       git.commit().setMessage("inital").call();
+                       assertIndex(mkmap("f", "f()", "D/g", "g()"));
+
+                       git.branchCreate().setName("topic").call();
+
+                       writeTrashFile("f", "f()\nmaster");
+                       writeTrashFile("D/g", "g()\ng2()");
+                       writeTrashFile("E/h", "h()");
+                       git.add().addFilepattern(".").call();
+                       RevCommit master = git.commit().setMessage("master-1").call();
+                       assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
+
+                       checkoutBranch("refs/heads/topic");
+                       assertIndex(mkmap("f", "f()", "D/g", "g()"));
+
+                       writeTrashFile("f", "f()\nside");
+                       assertTrue(new File(db.getWorkTree(), "D/g").delete());
+                       writeTrashFile("G/i", "i()");
+                       git.add().addFilepattern(".").call();
+                       git.add().addFilepattern(".").setUpdate(true).call();
+                       RevCommit topic = git.commit().setMessage("topic-1").call();
+                       assertIndex(mkmap("f", "f()\nside", "G/i", "i()"));
+
+                       writeTrashFile("untracked", "untracked");
+
+                       resetHard(master);
+                       assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
+                       resetHard(topic);
+                       assertIndex(mkmap("f", "f()\nside", "G/i", "i()"));
+                       assertWorkDir(mkmap("f", "f()\nside", "G/i", "i()", "untracked",
+                                       "untracked"));
+
+                       assertEquals(MergeStatus.CONFLICTING, git.merge().include(master)
+                                       .call().getMergeStatus());
+                       assertEquals(
+                                       "[D/g, mode:100644, stage:1][D/g, mode:100644, stage:3][E/h, mode:100644][G/i, mode:100644][f, mode:100644, stage:1][f, mode:100644, stage:2][f, mode:100644, stage:3]",
+                                       indexState(0));
+
+                       resetHard(master);
+                       assertIndex(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h", "h()"));
+                       assertWorkDir(mkmap("f", "f()\nmaster", "D/g", "g()\ng2()", "E/h",
+                                       "h()", "untracked", "untracked"));
+               }
        }
 
        /**
@@ -200,21 +201,22 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
        @Test
        public void testResetHardFromIndexEntryWithoutFileToTreeWithoutFile()
                        throws Exception {
-               Git git = new Git(db);
-               writeTrashFile("x", "x");
-               git.add().addFilepattern("x").call();
-               RevCommit id1 = git.commit().setMessage("c1").call();
-
-               writeTrashFile("f/g", "f/g");
-               git.rm().addFilepattern("x").call();
-               git.add().addFilepattern("f/g").call();
-               git.commit().setMessage("c2").call();
-               deleteTrashFile("f/g");
-               deleteTrashFile("f");
-
-               // The actual test
-               git.reset().setMode(ResetType.HARD).setRef(id1.getName()).call();
-               assertIndex(mkmap("x", "x"));
+               try (Git git = new Git(db)) {
+                       writeTrashFile("x", "x");
+                       git.add().addFilepattern("x").call();
+                       RevCommit id1 = git.commit().setMessage("c1").call();
+
+                       writeTrashFile("f/g", "f/g");
+                       git.rm().addFilepattern("x").call();
+                       git.add().addFilepattern("f/g").call();
+                       git.commit().setMessage("c2").call();
+                       deleteTrashFile("f/g");
+                       deleteTrashFile("f");
+
+                       // The actual test
+                       git.reset().setMode(ResetType.HARD).setRef(id1.getName()).call();
+                       assertIndex(mkmap("x", "x"));
+               }
        }
 
        /**
@@ -224,14 +226,14 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
         */
        @Test
        public void testInitialCheckout() throws Exception {
-               Git git = new Git(db);
-
-               TestRepository<Repository> db_t = new TestRepository<Repository>(db);
-               BranchBuilder master = db_t.branch("master");
-               master.commit().add("f", "1").message("m0").create();
-               assertFalse(new File(db.getWorkTree(), "f").exists());
-               git.checkout().setName("master").call();
-               assertTrue(new File(db.getWorkTree(), "f").exists());
+               try (Git git = new Git(db)) {
+                       TestRepository<Repository> db_t = new TestRepository<Repository>(db);
+                       BranchBuilder master = db_t.branch("master");
+                       master.commit().add("f", "1").message("m0").create();
+                       assertFalse(new File(db.getWorkTree(), "f").exists());
+                       git.checkout().setName("master").call();
+                       assertTrue(new File(db.getWorkTree(), "f").exists());
+               }
        }
 
        private DirCacheCheckout resetHard(RevCommit commit)
@@ -1612,46 +1614,47 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
        public void assertWorkDir(Map<String, String> i)
                        throws CorruptObjectException,
                        IOException {
-               TreeWalk walk = new TreeWalk(db);
-               walk.setRecursive(false);
-               walk.addTree(new FileTreeIterator(db));
-               String expectedValue;
-               String path;
-               int nrFiles = 0;
-               FileTreeIterator ft;
-               while (walk.next()) {
-                       ft = walk.getTree(0, FileTreeIterator.class);
-                       path = ft.getEntryPathString();
-                       expectedValue = i.get(path);
-                       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;
-                               int numRead = 0;
-                               while (offset < buffer.length
-                                               && (numRead = is.read(buffer, offset, buffer.length
-                                                               - offset)) >= 0) {
-                                       offset += numRead;
-                               }
-                               is.close();
-                               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));
+               try (TreeWalk walk = new TreeWalk(db)) {
+                       walk.setRecursive(false);
+                       walk.addTree(new FileTreeIterator(db));
+                       String expectedValue;
+                       String path;
+                       int nrFiles = 0;
+                       FileTreeIterator ft;
+                       while (walk.next()) {
+                               ft = walk.getTree(0, FileTreeIterator.class);
+                               path = ft.getEntryPathString();
+                               expectedValue = i.get(path);
+                               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;
+                                       int numRead = 0;
+                                       while (offset < buffer.length
+                                                       && (numRead = is.read(buffer, offset, buffer.length
+                                                                       - offset)) >= 0) {
+                                               offset += numRead;
+                                       }
+                                       is.close();
+                                       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();
                                }
                        }
-                       if (walk.isSubtree()) {
-                               walk.enterSubtree();
-                       }
+                       assertEquals("WorkDir has not the right size.", i.size(), nrFiles);
                }
-               assertEquals("WorkDir has not the right size.", i.size(), nrFiles);
        }
 }