diff options
author | Nail Samatov <sanail@yandex.ru> | 2021-09-15 21:00:59 +0300 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2022-01-30 17:16:02 -0500 |
commit | 2b01ac3389c11be88ec875048d6a2cc4ed6903f1 (patch) | |
tree | 9891d1d9df4bb21a6646bebc79dad27caff37960 /org.eclipse.jgit.test/tst | |
parent | 8633ea4f07cbe10706a9edd1301f13aebe5be942 (diff) | |
download | jgit-2b01ac3389c11be88ec875048d6a2cc4ed6903f1.tar.gz jgit-2b01ac3389c11be88ec875048d6a2cc4ed6903f1.zip |
[test] Fix closing of test repositories
Fix tests failing on Windows because Repository instance is created but
not closed on tear down.
Fix repositories closed twice, except in tests that test this behavior
explicitly.
Name the temporary directories the tests run in after the test method;
that makes it easier to figure out in which tests repositories are
closed twice if it should occur again in the future.
Bug: 550111
Change-Id: I9398b58f0f36d2c29236d2a9a8599117d9083980
Signed-off-by: Nail Samatov <sanail@yandex.ru>
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Diffstat (limited to 'org.eclipse.jgit.test/tst')
16 files changed, 39 insertions, 11 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java index e7ed102f13..87be813c85 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java @@ -71,6 +71,7 @@ public class BranchCommandTest extends RepositoryTestCase { private Git setUpRepoWithRemote() throws Exception { Repository remoteRepository = createWorkRepository(); + addRepoToClose(remoteRepository); try (Git remoteGit = new Git(remoteRepository)) { // commit something writeTrashFile("Test.txt", "Hello world"); @@ -85,6 +86,7 @@ public class BranchCommandTest extends RepositoryTestCase { rup.forceUpdate(); Repository localRepository = createWorkRepository(); + addRepoToClose(localRepository); Git localGit = new Git(localRepository); StoredConfig config = localRepository.getConfig(); RemoteConfig rc = new RemoteConfig(config, "origin"); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java index 41b662d4e4..ab0184bd4a 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java @@ -292,6 +292,7 @@ public class CheckoutCommandTest extends RepositoryTestCase { @Test public void testCheckoutRemoteTrackingWithUpstream() throws Exception { Repository db2 = createRepositoryWithRemote(); + addRepoToClose(db2); Git.wrap(db2).checkout().setCreateBranch(true).setName("test") .setStartPoint("origin/test") @@ -311,6 +312,7 @@ public class CheckoutCommandTest extends RepositoryTestCase { @Test public void testCheckoutRemoteTrackingWithoutLocalBranch() throws Exception { Repository db2 = createRepositoryWithRemote(); + addRepoToClose(db2); // checkout remote tracking branch in second repository // (no local branches exist yet in second repository) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchAndPullCommandsRecurseSubmodulesTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchAndPullCommandsRecurseSubmodulesTest.java index 36ba7ce5ac..82624abb1d 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchAndPullCommandsRecurseSubmodulesTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/FetchAndPullCommandsRecurseSubmodulesTest.java @@ -259,7 +259,8 @@ public class FetchAndPullCommandsRecurseSubmodulesTest extends RepositoryTestCas // the commit that was created try (SubmoduleWalk w = SubmoduleWalk.forIndex(git.getRepository())) { assertTrue(w.next()); - try (Git g = new Git(w.getRepository())) { + try (Repository repository = w.getRepository()) { + Git g = new Git(repository); g.fetch().setRemote(REMOTE).setRefSpecs(REFSPEC).call(); g.reset().setMode(ResetType.HARD).setRef(commit1.name()).call(); } diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java index bc4e9405ea..127c404230 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java @@ -1881,6 +1881,7 @@ public class MergeCommandTest extends RepositoryTestCase { @Test public void testRecursiveMergeWithConflict() throws Exception { try (TestRepository<Repository> db_t = new TestRepository<>(db)) { + db.incrementOpen(); BranchBuilder master = db_t.branch("master"); RevCommit m0 = master.commit() .add("f", "1\n2\n3\n4\n5\n6\n7\n8\n9\n").message("m0") diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java index 9af77aa3e8..6a84f0a38d 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java @@ -567,6 +567,7 @@ public class PullCommandTest extends RepositoryTestCase { public void setUp() throws Exception { super.setUp(); dbTarget = createWorkRepository(); + addRepoToClose(dbTarget); source = new Git(db); target = new Git(dbTarget); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandWithRebaseTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandWithRebaseTest.java index cce04f471b..e2d7923cee 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandWithRebaseTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandWithRebaseTest.java @@ -323,6 +323,7 @@ public class PullCommandWithRebaseTest extends RepositoryTestCase { dbTarget = createWorkRepository(); source = new Git(db); target = new Git(dbTarget); + addRepoToClose(dbTarget); // put some file in the source repo sourceFile = new File(db.getWorkTree(), "SomeFile.txt"); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java index a786065561..0a6e143c91 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java @@ -50,6 +50,7 @@ public class PushCommandTest extends RepositoryTestCase { // create other repository Repository db2 = createWorkRepository(); + addRepoToClose(db2); final StoredConfig config2 = db2.getConfig(); // this tests that this config can be parsed properly @@ -297,6 +298,7 @@ public class PushCommandTest extends RepositoryTestCase { public void testPushAfterGC() throws Exception { // create other repository Repository db2 = createWorkRepository(); + addRepoToClose(db2); // setup the first repository final StoredConfig config = db.getConfig(); @@ -360,6 +362,7 @@ public class PushCommandTest extends RepositoryTestCase { // create other repository Repository db2 = createWorkRepository(); + addRepoToClose(db2); // setup the first repository final StoredConfig config = db.getConfig(); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BatchRefUpdateTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BatchRefUpdateTest.java index 6357a0b9a8..c0259f87f5 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BatchRefUpdateTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BatchRefUpdateTest.java @@ -127,6 +127,7 @@ public class BatchRefUpdateTest extends LocalDiskRepositoryTestCase { } diskRepo = fileRepo; + addRepoToClose(diskRepo); setLogAllRefUpdates(true); if (!useReftable) { diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcTestCase.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcTestCase.java index bfb233f77f..48f6e06385 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcTestCase.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcTestCase.java @@ -42,6 +42,7 @@ public abstract class GcTestCase extends LocalDiskRepositoryTestCase { @Override @After public void tearDown() throws Exception { + tr.close(); super.tearDown(); } diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java index 1ff2264f67..3fe8f52fba 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java @@ -722,6 +722,7 @@ public class PackWriterTest extends SampleDataRepositoryTestCase { */ private FileRepository setUpRepoWithMultiplePackfiles() throws Exception { FileRepository fileRepository = createWorkRepository(); + addRepoToClose(fileRepository); try (Git git = new Git(fileRepository)) { // Creates 2 objects (C1 = commit, T1 = tree) git.commit().setMessage("First commit").call(); 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 813945adf8..0fafcd6a36 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 @@ -242,6 +242,7 @@ public class DirCacheCheckoutTest extends RepositoryTestCase { ListenerHandle handle = null; try (Git git = new Git(db); TestRepository<Repository> db_t = new TestRepository<>(db)) { + db.incrementOpen(); handle = db.getListenerList() .addWorkingTreeModifiedListener(recorder); BranchBuilder master = db_t.branch("master"); @@ -261,6 +262,7 @@ public class DirCacheCheckoutTest extends RepositoryTestCase { String attributes) throws Exception { try (Git git = new Git(db); TestRepository<Repository> db_t = new TestRepository<>(db)) { + db.incrementOpen(); BranchBuilder master = db_t.branch("master"); master.commit().add("f", inIndex).message("m0").create(); if (!StringUtils.isEmptyOrNull(attributes)) { @@ -2065,6 +2067,7 @@ public class DirCacheCheckoutTest extends RepositoryTestCase { public void testCheckoutWithEmptyIndexDoesntOverwrite() throws Exception { try (Git git = new Git(db); TestRepository<Repository> db_t = new TestRepository<>(db)) { + db.incrementOpen(); // prepare the commits BranchBuilder master = db_t.branch("master"); RevCommit mergeCommit = master.commit() diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java index dd8573d2bc..cbacaed728 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java @@ -1810,6 +1810,7 @@ public class MergerTest extends RepositoryTestCase { private String readBlob(ObjectId treeish, String path) throws Exception { try (TestRepository<?> tr = new TestRepository<>(db); RevWalk rw = tr.getRevWalk()) { + db.incrementOpen(); RevTree tree = rw.parseTree(treeish); RevObject obj = tr.get(tree, path); if (obj == null) { diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java index ea994f06aa..f446d07513 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java @@ -217,7 +217,6 @@ public class SubmoduleWalkTest extends RepositoryTestCase { assertEqualsFile(modulesGitDir, subRepo.getDirectory()); assertEqualsFile(new File(db.getWorkTree(), path), subRepo.getWorkTree()); - subRepo.close(); assertFalse(gen.next()); } } diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/BundleWriterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/BundleWriterTest.java index 054eb9c5ad..bb62a0d892 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/BundleWriterTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/BundleWriterTest.java @@ -80,6 +80,7 @@ public class BundleWriterTest extends SampleDataRepositoryTestCase { // Then we clone a new repo from that bundle and do a simple test. This // makes sure we could read the bundle we created. Repository newRepo = createBareRepository(); + addRepoToClose(newRepo); FetchResult fetchResult = fetchFromBundle(newRepo, bundle); Ref advertisedRef = fetchResult .getAdvertisedRef("refs/heads/firstcommit"); @@ -116,6 +117,7 @@ public class BundleWriterTest extends SampleDataRepositoryTestCase { // makes sure // we could read the bundle we created. Repository newRepo = createBareRepository(); + addRepoToClose(newRepo); FetchResult fetchResult = fetchFromBundle(newRepo, bundle); Ref advertisedRef = fetchResult.getAdvertisedRef("refs/heads/aa"); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PackParserTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PackParserTest.java index 60b8098b31..93bedb3c97 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PackParserTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PackParserTest.java @@ -110,6 +110,7 @@ public class PackParserTest extends RepositoryTestCase { public void testTinyThinPack() throws Exception { RevBlob a; try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); a = d.blob("a"); } @@ -132,6 +133,7 @@ public class PackParserTest extends RepositoryTestCase { public void testPackWithDuplicateBlob() throws Exception { final byte[] data = Constants.encode("0123456789abcdefg"); try (TestRepository<Repository> d = new TestRepository<>(db)) { + db.incrementOpen(); assertTrue(db.getObjectDatabase().has(d.blob(data))); } @@ -151,6 +153,7 @@ public class PackParserTest extends RepositoryTestCase { public void testPackWithTrailingGarbage() throws Exception { RevBlob a; try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); a = d.blob("a"); } @@ -180,6 +183,7 @@ public class PackParserTest extends RepositoryTestCase { public void testMaxObjectSizeFullBlob() throws Exception { final byte[] data = Constants.encode("0123456789"); try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); d.blob(data); } @@ -213,6 +217,7 @@ public class PackParserTest extends RepositoryTestCase { public void testMaxObjectSizeDeltaBlock() throws Exception { RevBlob a; try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); a = d.blob("a"); } @@ -246,6 +251,7 @@ public class PackParserTest extends RepositoryTestCase { public void testMaxObjectSizeDeltaResultSize() throws Exception { RevBlob a; try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); a = d.blob("0123456789"); } @@ -278,6 +284,7 @@ public class PackParserTest extends RepositoryTestCase { public void testNonMarkingInputStream() throws Exception { RevBlob a; try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); a = d.blob("a"); } @@ -318,6 +325,7 @@ public class PackParserTest extends RepositoryTestCase { public void testDataAfterPackFooterSingleRead() throws Exception { RevBlob a; try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); a = d.blob("a"); } @@ -379,6 +387,7 @@ public class PackParserTest extends RepositoryTestCase { final byte[] data = Constants.encode("a"); RevBlob b; try (TestRepository d = new TestRepository<Repository>(db)) { + db.incrementOpen(); b = d.blob(data); } diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java index d1e5446827..a91bc95c8d 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java @@ -73,11 +73,14 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas super.setUp(); src = createBareRepository(); + addRepoToClose(src); dst = createBareRepository(); + addRepoToClose(dst); // Fill dst with a some common history. // try (TestRepository<Repository> d = new TestRepository<>(dst)) { + dst.incrementOpen(); a = d.blob("a"); A = d.commit(d.tree(d.file("a", a))); B = d.commit().parent(A).create(); @@ -106,9 +109,6 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas dst.getDirectory()) { @Override ReceivePack createReceivePack(Repository db) { - db.close(); - dst.incrementOpen(); - final ReceivePack rp = super.createReceivePack(dst); rp.setAdvertiseRefsHook(new HidePrivateHook()); return rp; @@ -136,8 +136,6 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas dst.getDirectory()) { @Override ReceivePack createReceivePack(Repository db) { - dst.incrementOpen(); - ReceivePack rp = super.createReceivePack(dst); rp.setAdvertiseRefsHook(new AdvertiseRefsHook() { @Override @@ -173,9 +171,6 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas return new TransportLocal(src, uriOf(dst), dst.getDirectory()) { @Override ReceivePack createReceivePack(Repository db) { - db.close(); - dst.incrementOpen(); - final ReceivePack rp = super.createReceivePack(dst); rp.setCheckReceivedObjects(true); rp.setCheckReferencedObjectsAreReachable(true); @@ -211,6 +206,7 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas // Now use b but in a different commit than what is hidden. // try (TestRepository<Repository> s = new TestRepository<>(src)) { + src.incrementOpen(); RevCommit N = s.commit().parent(B).add("q", b).create(); s.update(R_MASTER, N); @@ -228,7 +224,6 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas try (TransportLocal t = newTransportLocalWithStrictValidation()) { t.setPushThin(true); r = t.push(PM, Collections.singleton(u)); - dst.close(); } assertNotNull("have result", r); @@ -290,6 +285,7 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas public void testUsingHiddenDeltaBaseFails() throws Exception { byte[] delta = { 0x1, 0x1, 0x1, 'c' }; try (TestRepository<Repository> s = new TestRepository<>(src)) { + src.incrementOpen(); RevCommit N = s.commit().parent(B) .add("q", s.blob(BinaryDelta.apply( @@ -348,6 +344,7 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas // Try to use the 'b' blob that is hidden. // try (TestRepository<Repository> s = new TestRepository<>(src)) { + src.incrementOpen(); RevCommit N = s.commit().parent(B).add("q", s.blob("b")).create(); // But don't include it in the pack. @@ -401,6 +398,7 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas // Try to use the 'n' blob that is not on the server. // try (TestRepository<Repository> s = new TestRepository<>(src)) { + src.incrementOpen(); RevBlob n = s.blob("n"); RevCommit N = s.commit().parent(B).add("q", n).create(); @@ -491,6 +489,7 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas .toString(); try (TestRepository<Repository> s = new TestRepository<>(src)) { + src.incrementOpen(); RevBlob blob = s.blob(fakeGitmodules); RevCommit N = s.commit().parent(B).add(".gitmodules", blob) .create(); @@ -517,6 +516,7 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas @Test public void testUsingUnknownTreeFails() throws Exception { try (TestRepository<Repository> s = new TestRepository<>(src)) { + src.incrementOpen(); RevCommit N = s.commit().parent(B).add("q", s.blob("a")).create(); RevTree t = s.parseBody(N).getTree(); |