summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.junit
diff options
context:
space:
mode:
authorMatthias Sohn <matthias.sohn@sap.com>2019-08-19 23:41:04 +0200
committerMatthias Sohn <matthias.sohn@sap.com>2019-08-19 23:41:17 +0200
commit18fb58ae05aafb9d7c831e5c4c3c0d375e7492e8 (patch)
tree0decd77e7f7faf1b4c95c7259b7f830d1afe1400 /org.eclipse.jgit.junit
parent718555518ded4fbcafe0c1203f0035d3251884e6 (diff)
parent0eea7368e26c6a6daeb1bb6eb536977421b1ccc5 (diff)
downloadjgit-18fb58ae05aafb9d7c831e5c4c3c0d375e7492e8.tar.gz
jgit-18fb58ae05aafb9d7c831e5c4c3c0d375e7492e8.zip
Merge branch 'stable-5.2' into stable-5.3
* stable-5.2: Fix NPE in RebaseTodoFile#parseComments Fix NPE in ObjectIdOwnerMap#get Fix NPE in CommitOnlyTest#getHead FileUtils#lastModifiedInstant should not log error if path doesn't exist Cache user global and system-wide git configurations Avoid setup and saving FileStoreAttributes compete for ~/.gitconfig lock Add missing dependencies for running FS_POSIXTest in Eclipse Fix javadoc for SystemReader#getInstance Improve retry handling when saving FileStoreAttributes fails Ensure FSTest uses MockSystemReader Make supportsAtomicCreateNewFile return true as default Update orbit to R20190602212107-2019-06 to enable backports from master Handle InvalidPathException in FS_POSIX#createNewFileAtomic Ensure root cause of lock creation failures is logged Implement toString in MockSystemReader and MockConfig LocalDiskRefTreeDatabaseTest shall use MockSystemReader Ensure LocalDiskRepositoryTestCase#setup fully uses MockSystemReader Ensure we use MockSystemReader in tests Override FileBasedConfig's save method in MockConfig Remove FileBasedConfig.load(boolean) introduced in d45219ba Disable debug log for FS in org.eclipse.jgit.test Bazel: enable logging for tests in org.eclipse.jgit.test LockFile: log exception if creation of lock file failed Stop using deprecated Constants.CHARACTER_ENCODING Change-Id: If0c5010a2cf151ebebb2f2088fac3ee02c5007b9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit.junit')
-rw-r--r--org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java20
-rw-r--r--org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java57
2 files changed, 68 insertions, 9 deletions
diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java
index 838537f3ae..3b7cdde496 100644
--- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java
+++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java
@@ -128,21 +128,25 @@ public abstract class LocalDiskRepositoryTestCase {
if (!tmp.delete() || !tmp.mkdir())
throw new IOException("Cannot create " + tmp);
- // measure timer resolution before the test to avoid time critical tests
- // are affected by time needed for measurement
+ mockSystemReader = new MockSystemReader();
+ SystemReader.setInstance(mockSystemReader);
+
+ // Measure timer resolution before the test to avoid time critical tests
+ // are affected by time needed for measurement.
+ // The MockSystemReader must be configured first since we need to use
+ // the same one here
FS.getFileStoreAttributes(tmp.toPath().getParent());
- mockSystemReader = new MockSystemReader();
- mockSystemReader.userGitConfig = new FileBasedConfig(new File(tmp,
- "usergitconfig"), FS.DETECTED);
+ FileBasedConfig userConfig = new FileBasedConfig(
+ new File(tmp, "usergitconfig"), 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.
- mockSystemReader.userGitConfig.setBoolean(ConfigConstants.CONFIG_GC_SECTION,
+ userConfig.setBoolean(ConfigConstants.CONFIG_GC_SECTION,
null, ConfigConstants.CONFIG_KEY_AUTODETACH, false);
- mockSystemReader.userGitConfig.save();
+ userConfig.save();
+ mockSystemReader.setUserGitConfig(userConfig);
ceilTestDirectories(getCeilings());
- SystemReader.setInstance(mockSystemReader);
author = new PersonIdent("J. Author", "jauthor@example.com");
committer = new PersonIdent("J. Committer", "jcommitter@example.com");
diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java
index 8de386e344..123fdb305f 100644
--- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java
+++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java
@@ -60,6 +60,7 @@ import java.util.concurrent.TimeUnit;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.SystemReader;
@@ -81,20 +82,56 @@ public class MockSystemReader extends SystemReader {
}
@Override
+ public void save() throws IOException {
+ // Do nothing
+ }
+
+ @Override
public boolean isOutdated() {
return false;
}
+
+ @Override
+ public String toString() {
+ return "MockConfig";
+ }
}
long now = 1250379778668L; // Sat Aug 15 20:12:58 GMT-03:30 2009
final Map<String, String> values = new HashMap<>();
- FileBasedConfig userGitConfig;
+ private FileBasedConfig userGitConfig;
FileBasedConfig systemGitConfig;
/**
+ * Set the user-level git config
+ *
+ * @param userGitConfig
+ * set another user-level git config
+ * @return the old user-level git config
+ */
+ public FileBasedConfig setUserGitConfig(FileBasedConfig userGitConfig) {
+ FileBasedConfig old = this.userGitConfig;
+ this.userGitConfig = userGitConfig;
+ return old;
+ }
+
+ /**
+ * Set the system-level git config
+ *
+ * @param systemGitConfig
+ * the new system-level git config
+ * @return the old system-level config
+ */
+ public FileBasedConfig setSystemGitConfig(FileBasedConfig systemGitConfig) {
+ FileBasedConfig old = this.systemGitConfig;
+ this.systemGitConfig = systemGitConfig;
+ return old;
+ }
+
+ /**
* Constructor for <code>MockSystemReader</code>
*/
public MockSystemReader() {
@@ -156,6 +193,18 @@ public class MockSystemReader extends SystemReader {
return systemGitConfig;
}
+ @Override
+ public StoredConfig getUserConfig()
+ throws IOException, ConfigInvalidException {
+ return userGitConfig;
+ }
+
+ @Override
+ public StoredConfig getSystemConfig()
+ throws IOException, ConfigInvalidException {
+ return systemGitConfig;
+ }
+
/** {@inheritDoc} */
@Override
public String getHostname() {
@@ -280,4 +329,10 @@ public class MockSystemReader extends SystemReader {
e.printStackTrace();
}
}
+
+ @Override
+ public String toString() {
+ return "MockSystemReader";
+ }
+
}