Browse Source

Make sure test repositories are closed

Some repositories created during tests are not added to the 'toClose'
list in LocalDiskRepositoryTestCase. Therefore when the tests end
we may have open FileHandles and on Windows this may cause the
tests to fail because we can't delete those files.

This is fixed by adding the possibility to explicitly add
repositories to the list of repos which are closed automatically.

Change-Id: I1261baeef4c7d9aaedd7c34b546393bfa005bbcc
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
stable-1.0
Christian Halstrick 14 years ago committed by Shawn O. Pearce
parent
commit
c1525e2aa5
  1. 11
      org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java
  2. 9
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java
  3. 1
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/GitConstructionTest.java
  4. 2
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/InitCommandTest.java
  5. 4
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/LsRemoteCommandTest.java

11
org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java

@ -302,6 +302,17 @@ public abstract class LocalDiskRepositoryTestCase {
return db; return db;
} }
/**
* Adds a repository to the list of repositories which is closed at the end
* of the tests
*
* @param r
* the repository to be closed
*/
public void addRepoToClose(Repository r) {
toClose.add(r);
}
/** /**
* Creates a new unique directory for a test repository * Creates a new unique directory for a test repository
* *

9
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java

@ -101,6 +101,7 @@ public class CloneCommandTest extends RepositoryTestCase {
command.setURI("file://" command.setURI("file://"
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
Git git2 = command.call(); Git git2 = command.call();
addRepoToClose(git2.getRepository());
assertNotNull(git2); assertNotNull(git2);
ObjectId id = git2.getRepository().resolve("tag-for-blob"); ObjectId id = git2.getRepository().resolve("tag-for-blob");
assertNotNull(id); assertNotNull(id);
@ -135,6 +136,8 @@ public class CloneCommandTest extends RepositoryTestCase {
command.setURI("file://" command.setURI("file://"
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
Git git2 = command.call(); Git git2 = command.call();
addRepoToClose(git2.getRepository());
assertNotNull(git2); assertNotNull(git2);
assertEquals(git2.getRepository().getFullBranch(), assertEquals(git2.getRepository().getFullBranch(),
"refs/heads/master"); "refs/heads/master");
@ -152,6 +155,8 @@ public class CloneCommandTest extends RepositoryTestCase {
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
command.setNoCheckout(true); command.setNoCheckout(true);
git2 = command.call(); git2 = command.call();
addRepoToClose(git2.getRepository());
assertNotNull(git2); assertNotNull(git2);
assertEquals(git2.getRepository().getFullBranch(), assertEquals(git2.getRepository().getFullBranch(),
"refs/heads/master"); "refs/heads/master");
@ -169,6 +174,8 @@ public class CloneCommandTest extends RepositoryTestCase {
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
command.setBare(true); command.setBare(true);
git2 = command.call(); git2 = command.call();
addRepoToClose(git2.getRepository());
assertNotNull(git2); assertNotNull(git2);
assertEquals(git2.getRepository().getFullBranch(), assertEquals(git2.getRepository().getFullBranch(),
"refs/heads/master"); "refs/heads/master");
@ -191,6 +198,7 @@ public class CloneCommandTest extends RepositoryTestCase {
command.setURI("file://" command.setURI("file://"
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
Git git2 = command.call(); Git git2 = command.call();
addRepoToClose(git2.getRepository());
assertNotNull(git2); assertNotNull(git2);
assertEquals(git2.getRepository().getFullBranch(), assertEquals(git2.getRepository().getFullBranch(),
"refs/heads/master"); "refs/heads/master");
@ -209,6 +217,7 @@ public class CloneCommandTest extends RepositoryTestCase {
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
command.setBare(true); command.setBare(true);
git2 = command.call(); git2 = command.call();
addRepoToClose(git2.getRepository());
assertNotNull(git2); assertNotNull(git2);
assertEquals(git2.getRepository().getFullBranch(), assertEquals(git2.getRepository().getFullBranch(),
"refs/heads/master"); "refs/heads/master");

1
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/GitConstructionTest.java

@ -71,6 +71,7 @@ public class GitConstructionTest extends RepositoryTestCase {
.setURI(db.getDirectory().toURI().toString()) .setURI(db.getDirectory().toURI().toString())
.setDirectory(createUniqueTestGitDir(true)).call() .setDirectory(createUniqueTestGitDir(true)).call()
.getRepository(); .getRepository();
addRepoToClose(bareRepo);
} }
@Test @Test

2
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/InitCommandTest.java

@ -70,6 +70,7 @@ public class InitCommandTest extends RepositoryTestCase {
InitCommand command = new InitCommand(); InitCommand command = new InitCommand();
command.setDirectory(directory); command.setDirectory(directory);
Repository repository = command.call().getRepository(); Repository repository = command.call().getRepository();
addRepoToClose(repository);
assertNotNull(repository); assertNotNull(repository);
} catch (Exception e) { } catch (Exception e) {
fail(e.getMessage()); fail(e.getMessage());
@ -84,6 +85,7 @@ public class InitCommandTest extends RepositoryTestCase {
command.setDirectory(directory); command.setDirectory(directory);
command.setBare(true); command.setBare(true);
Repository repository = command.call().getRepository(); Repository repository = command.call().getRepository();
addRepoToClose(repository);
assertNotNull(repository); assertNotNull(repository);
assertTrue(repository.isBare()); assertTrue(repository.isBare());
} catch (Exception e) { } catch (Exception e) {

4
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/LsRemoteCommandTest.java

@ -89,6 +89,8 @@ public class LsRemoteCommandTest extends RepositoryTestCase {
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
command.setCloneAllBranches(true); command.setCloneAllBranches(true);
Git git2 = command.call(); Git git2 = command.call();
addRepoToClose(git2.getRepository());
LsRemoteCommand lsRemoteCommand = git2.lsRemote(); LsRemoteCommand lsRemoteCommand = git2.lsRemote();
Collection<Ref> refs = lsRemoteCommand.call(); Collection<Ref> refs = lsRemoteCommand.call();
@ -109,6 +111,7 @@ public class LsRemoteCommandTest extends RepositoryTestCase {
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
command.setCloneAllBranches(true); command.setCloneAllBranches(true);
Git git2 = command.call(); Git git2 = command.call();
addRepoToClose(git2.getRepository());
LsRemoteCommand lsRemoteCommand = git2.lsRemote(); LsRemoteCommand lsRemoteCommand = git2.lsRemote();
lsRemoteCommand.setTags(true); lsRemoteCommand.setTags(true);
@ -130,6 +133,7 @@ public class LsRemoteCommandTest extends RepositoryTestCase {
+ git.getRepository().getWorkTree().getPath()); + git.getRepository().getWorkTree().getPath());
command.setCloneAllBranches(true); command.setCloneAllBranches(true);
Git git2 = command.call(); Git git2 = command.call();
addRepoToClose(git2.getRepository());
LsRemoteCommand lsRemoteCommand = git2.lsRemote(); LsRemoteCommand lsRemoteCommand = git2.lsRemote();
lsRemoteCommand.setHeads(true); lsRemoteCommand.setHeads(true);

Loading…
Cancel
Save