diff options
author | Matthias Sohn | 2017-06-07 14:53:09 +0000 |
---|---|---|
committer | Matthias Sohn | 2017-06-07 21:59:34 +0000 |
commit | 10e2977f5f64676d5b64ceb41b7d406e9dd58bde (patch) | |
tree | c5df0d4a3c8dd105754042bd7cb9bf43f6c8fa61 /org.eclipse.egit.ui.test | |
parent | 9ee41054835597f90a17cb2bc9c15123b586af65 (diff) | |
download | egit-10e2977f5f64676d5b64ceb41b7d406e9dd58bde.tar.gz egit-10e2977f5f64676d5b64ceb41b7d406e9dd58bde.tar.xz egit-10e2977f5f64676d5b64ceb41b7d406e9dd58bde.zip |
Disable running autoGC in the background for EGit tests
If autoGC runs in the background this may lead to cleanup issues when
tests are teared down.
Change-Id: Ib6b6b6b9f8b70abf7ea3defa7b4fe6854b31e9cb
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.egit.ui.test')
-rw-r--r-- | org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/LocalRepositoryTestCase.java | 33 | ||||
-rw-r--r-- | org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/httpauth/PushTest.java | 3 |
2 files changed, 35 insertions, 1 deletions
diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/LocalRepositoryTestCase.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/LocalRepositoryTestCase.java index b930b0b8aa..04713a8706 100644 --- a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/LocalRepositoryTestCase.java +++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/LocalRepositoryTestCase.java @@ -58,16 +58,22 @@ import org.eclipse.egit.ui.test.ContextMenuHelper; import org.eclipse.egit.ui.test.Eclipse; import org.eclipse.egit.ui.test.TestUtil; import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jgit.junit.MockSystemReader; +import org.eclipse.jgit.lib.Config; +import org.eclipse.jgit.lib.ConfigConstants; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.RepositoryBuilder; +import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.storage.file.FileRepositoryBuilder; import org.eclipse.jgit.transport.URIish; +import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FileUtils; import org.eclipse.jgit.util.IO; +import org.eclipse.jgit.util.SystemReader; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; @@ -196,6 +202,33 @@ public abstract class LocalRepositoryTestCase extends EGitTestCase { IEclipsePreferences p = InstanceScope.INSTANCE .getNode(Activator.getPluginId()); p.put(GitCorePreferences.core_defaultRepositoryDir, repoRoot.getPath()); + + File configFile = File.createTempFile("gitconfigtest", "config"); + MockSystemReader mockSystemReader = new MockSystemReader() { + @Override + public FileBasedConfig openUserConfig(Config parent, FS fs) { + return new FileBasedConfig(parent, configFile, fs); + } + }; + // unset git user properties + mockSystemReader.setProperty(Constants.GIT_AUTHOR_NAME_KEY, null); + mockSystemReader.setProperty(Constants.GIT_AUTHOR_EMAIL_KEY, null); + mockSystemReader.setProperty(Constants.GIT_COMMITTER_NAME_KEY, null); + mockSystemReader.setProperty(Constants.GIT_COMMITTER_EMAIL_KEY, null); + configFile.deleteOnExit(); + SystemReader.setInstance(mockSystemReader); + mockSystemReader.setProperty(Constants.GIT_CEILING_DIRECTORIES_KEY, + ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile() + .getParentFile().getAbsoluteFile().toString()); + FileBasedConfig userConfig = mockSystemReader.openUserConfig(null, + FS.DETECTED); + // We have to set autoDetach to false for tests, because tests expect to + // be able to clean up by recursively removing the repository, and + // background GC might be in the middle of writing or deleting files, + // which would disrupt this. + userConfig.setBoolean(ConfigConstants.CONFIG_GC_SECTION, null, + ConfigConstants.CONFIG_KEY_AUTODETACH, false); + userConfig.save(); } @After diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/httpauth/PushTest.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/httpauth/PushTest.java index 28a9e1351c..44ae289513 100644 --- a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/httpauth/PushTest.java +++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/httpauth/PushTest.java @@ -14,6 +14,7 @@ import static org.junit.Assert.assertTrue; import java.io.File; import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.egit.core.Activator; import org.eclipse.egit.core.op.CloneOperation; import org.eclipse.egit.ui.common.EGitTestCase; @@ -60,7 +61,7 @@ public class PushTest extends EGitTestCase { cloneOperation .setCredentialsProvider(new UsernamePasswordCredentialsProvider( "agitter", "letmein")); - cloneOperation.run(null); + cloneOperation.run(new NullProgressMonitor()); file = new File(localRepoPath, SampleTestRepository.A_txt_name); assertTrue(file.exists()); localRepository = Activator.getDefault().getRepositoryCache() |