Merge "JGit pgm tests must quote paths on the command line"

This commit is contained in:
David Pursehouse 2019-07-25 19:27:56 -04:00 committed by Gerrit Code Review @ Eclipse.org
commit e5e56e8e25
4 changed files with 26 additions and 20 deletions

View File

@ -211,6 +211,14 @@ protected String escapeJava(String line) {
.replaceAll("\t", "\\\\t");
}
protected String shellQuote(String s) {
return "'" + s.replace("'", "'\\''") + "'";
}
protected String shellQuote(File f) {
return "'" + f.getPath().replace("'", "'\\''") + "'";
}
protected void assertStringArrayEquals(String expected, String[] actual) {
// if there is more than one line, ignore last one if empty
assertEquals(1,

View File

@ -139,10 +139,6 @@ public void testDefaultFormatIsTar() throws Exception {
listTarEntries(result));
}
private static String shellQuote(String s) {
return "'" + s.replace("'", "'\\''") + "'";
}
@Test
public void testFormatOverridesFilename() throws Exception {
File archive = new File(db.getWorkTree(), "format-overrides-name.tar");

View File

@ -78,9 +78,9 @@ public void testClone() throws Exception {
File gitDir = db.getDirectory();
String sourceURI = gitDir.toURI().toString();
File target = createTempDirectory("target");
StringBuilder cmd = new StringBuilder("git clone ").append(sourceURI
+ " " + target.getPath());
String[] result = execute(cmd.toString());
String cmd = "git clone " + sourceURI + " "
+ shellQuote(target.getPath());
String[] result = execute(cmd);
assertArrayEquals(new String[] {
"Cloning into '" + target.getPath() + "'...",
"", "" }, result);
@ -101,9 +101,9 @@ public void testCloneEmpty() throws Exception {
File gitDir = db.getDirectory();
String sourceURI = gitDir.toURI().toString();
File target = createTempDirectory("target");
StringBuilder cmd = new StringBuilder("git clone ").append(sourceURI
+ " " + target.getPath());
String[] result = execute(cmd.toString());
String cmd = "git clone " + sourceURI + " "
+ shellQuote(target.getPath());
String[] result = execute(cmd);
assertArrayEquals(new String[] {
"Cloning into '" + target.getPath() + "'...",
"warning: You appear to have cloned an empty repository.", "",
@ -125,8 +125,8 @@ public void testCloneIntoCurrentDir() throws Exception {
File gitDir = db.getDirectory();
String sourceURI = gitDir.toURI().toString();
String name = new URIish(sourceURI).getHumanishName();
StringBuilder cmd = new StringBuilder("git clone ").append(sourceURI);
String[] result = execute(cmd.toString());
String cmd = "git clone " + sourceURI;
String[] result = execute(cmd);
assertArrayEquals(new String[] {
"Cloning into '" + new File(target, name).getName() + "'...",
"", "" }, result);
@ -143,10 +143,10 @@ public void testCloneBare() throws Exception {
String sourcePath = gitDir.getAbsolutePath();
String targetPath = (new File(sourcePath)).getParentFile()
.getParentFile().getAbsolutePath()
+ "/target.git";
StringBuilder cmd = new StringBuilder("git clone --bare ")
.append(sourcePath + " " + targetPath);
String[] result = execute(cmd.toString());
+ File.separator + "target.git";
String cmd = "git clone --bare " + shellQuote(sourcePath) + " "
+ shellQuote(targetPath);
String[] result = execute(cmd);
assertArrayEquals(new String[] {
"Cloning into '" + targetPath + "'...", "", "" }, result);
Git git2 = Git.open(new File(targetPath));

View File

@ -80,7 +80,7 @@ public void setUp() throws Exception {
@Test
public void testLsRemote() throws Exception {
final List<String> result = CLIGitCommand.execute(
"git ls-remote " + db.getDirectory(), db);
"git ls-remote " + shellQuote(db.getDirectory()), db);
assertArrayEquals(new String[] {
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c HEAD",
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/heads/master",
@ -98,7 +98,8 @@ public void testLsRemote() throws Exception {
public void testLsRemoteHeads() throws Exception {
final List<String> result = CLIGitCommand.execute(
"git ls-remote --heads "
+ db.getDirectory(), db);
+ shellQuote(db.getDirectory()),
db);
assertArrayEquals(new String[] {
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/heads/master",
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/heads/test",
@ -108,7 +109,7 @@ public void testLsRemoteHeads() throws Exception {
@Test
public void testLsRemoteTags() throws Exception {
final List<String> result = CLIGitCommand.execute(
"git ls-remote --tags " + db.getDirectory(), db);
"git ls-remote --tags " + shellQuote(db.getDirectory()), db);
assertArrayEquals(new String[] {
"efc02078d83a5226986ae917323acec7e1e8b7cb refs/tags/tag1",
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/tags/tag1^{}",
@ -122,7 +123,8 @@ public void testLsRemoteTags() throws Exception {
@Test
public void testLsRemoteHeadsTags() throws Exception {
final List<String> result = CLIGitCommand.execute(
"git ls-remote --heads --tags " + db.getDirectory(), db);
"git ls-remote --heads --tags " + shellQuote(db.getDirectory()),
db);
assertArrayEquals(new String[] {
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/heads/master",
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/heads/test",