Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Sohn2017-06-07 14:53:09 +0000
committerMatthias Sohn2017-06-07 21:59:34 +0000
commit10e2977f5f64676d5b64ceb41b7d406e9dd58bde (patch)
treec5df0d4a3c8dd105754042bd7cb9bf43f6c8fa61 /org.eclipse.egit.ui.test
parent9ee41054835597f90a17cb2bc9c15123b586af65 (diff)
downloadegit-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.java33
-rw-r--r--org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/httpauth/PushTest.java3
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()

Back to the top