Acceptance tests: Always check error after SshSession.exec()
The GitUtil.createProject() method in particular was failing silently in a surprising number of cases. Fix all of these, and add the error message to the AssertionError in cases where it was checked. Change-Id: Ibca7881edfe8be583a19cc08f2b942bf4a9bbfc3
This commit is contained in:
@@ -100,6 +100,10 @@ public class GitUtil {
|
|||||||
b.append("\"");
|
b.append("\"");
|
||||||
}
|
}
|
||||||
s.exec(b.toString());
|
s.exec(b.toString());
|
||||||
|
if (s.hasError()) {
|
||||||
|
throw new IllegalStateException(
|
||||||
|
"gerrit create-project returned error: " + s.getError());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Git cloneProject(String url) throws GitAPIException, IOException {
|
public static Git cloneProject(String url) throws GitAPIException, IOException {
|
||||||
|
|||||||
@@ -14,8 +14,6 @@
|
|||||||
|
|
||||||
package com.google.gerrit.acceptance.git;
|
package com.google.gerrit.acceptance.git;
|
||||||
|
|
||||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
|
||||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
@@ -24,7 +22,6 @@ import com.google.common.collect.Iterables;
|
|||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
import com.google.gerrit.acceptance.PushOneCommit;
|
import com.google.gerrit.acceptance.PushOneCommit;
|
||||||
import com.google.gerrit.acceptance.SshSession;
|
|
||||||
import com.google.gerrit.common.data.AccessSection;
|
import com.google.gerrit.common.data.AccessSection;
|
||||||
import com.google.gerrit.common.data.Permission;
|
import com.google.gerrit.common.data.Permission;
|
||||||
import com.google.gerrit.common.data.PermissionRule;
|
import com.google.gerrit.common.data.PermissionRule;
|
||||||
@@ -33,7 +30,6 @@ import com.google.gerrit.reviewdb.client.Change;
|
|||||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||||
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
||||||
import com.google.gerrit.reviewdb.client.Project;
|
import com.google.gerrit.reviewdb.client.Project;
|
||||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
|
||||||
import com.google.gerrit.server.ApprovalsUtil;
|
import com.google.gerrit.server.ApprovalsUtil;
|
||||||
import com.google.gerrit.server.GerritPersonIdent;
|
import com.google.gerrit.server.GerritPersonIdent;
|
||||||
import com.google.gerrit.server.account.GroupCache;
|
import com.google.gerrit.server.account.GroupCache;
|
||||||
@@ -44,10 +40,8 @@ import com.google.gerrit.server.git.ProjectConfig;
|
|||||||
import com.google.gerrit.server.notedb.ChangeNotes;
|
import com.google.gerrit.server.notedb.ChangeNotes;
|
||||||
import com.google.gerrit.server.project.ProjectCache;
|
import com.google.gerrit.server.project.ProjectCache;
|
||||||
import com.google.gwtorm.server.OrmException;
|
import com.google.gwtorm.server.OrmException;
|
||||||
import com.google.gwtorm.server.SchemaFactory;
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
import org.eclipse.jgit.api.Git;
|
|
||||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||||
import org.eclipse.jgit.errors.ConfigInvalidException;
|
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||||
import org.eclipse.jgit.errors.RepositoryNotFoundException;
|
import org.eclipse.jgit.errors.RepositoryNotFoundException;
|
||||||
@@ -57,18 +51,12 @@ import org.eclipse.jgit.lib.Repository;
|
|||||||
import org.eclipse.jgit.revwalk.RevCommit;
|
import org.eclipse.jgit.revwalk.RevCommit;
|
||||||
import org.eclipse.jgit.revwalk.RevWalk;
|
import org.eclipse.jgit.revwalk.RevWalk;
|
||||||
import org.eclipse.jgit.transport.RefSpec;
|
import org.eclipse.jgit.transport.RefSpec;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
public class SubmitOnPushIT extends AbstractDaemonTest {
|
public class SubmitOnPushIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Inject
|
|
||||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private GitRepositoryManager repoManager;
|
private GitRepositoryManager repoManager;
|
||||||
|
|
||||||
@@ -93,26 +81,6 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
|
|||||||
@Inject
|
@Inject
|
||||||
private PushOneCommit.Factory pushFactory;
|
private PushOneCommit.Factory pushFactory;
|
||||||
|
|
||||||
private Project.NameKey project;
|
|
||||||
private Git git;
|
|
||||||
private ReviewDb db;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() throws Exception {
|
|
||||||
project = new Project.NameKey("p");
|
|
||||||
SshSession sshSession = new SshSession(server, admin);
|
|
||||||
createProject(sshSession, project.get());
|
|
||||||
git = cloneProject(sshSession.getUrl() + "/" + project.get());
|
|
||||||
sshSession.close();
|
|
||||||
|
|
||||||
db = reviewDbProvider.open();
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void cleanup() {
|
|
||||||
db.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void submitOnPush() throws GitAPIException, OrmException,
|
public void submitOnPush() throws GitAPIException, OrmException,
|
||||||
IOException, ConfigInvalidException {
|
IOException, ConfigInvalidException {
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
package com.google.gerrit.acceptance.git;
|
package com.google.gerrit.acceptance.git;
|
||||||
|
|
||||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
|
||||||
import static com.google.gerrit.server.group.SystemGroupBackend.PROJECT_OWNERS;
|
import static com.google.gerrit.server.group.SystemGroupBackend.PROJECT_OWNERS;
|
||||||
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
|
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
@@ -27,7 +26,6 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
|
|||||||
import com.google.gerrit.common.data.AccessSection;
|
import com.google.gerrit.common.data.AccessSection;
|
||||||
import com.google.gerrit.common.data.Permission;
|
import com.google.gerrit.common.data.Permission;
|
||||||
import com.google.gerrit.extensions.api.projects.BranchInput;
|
import com.google.gerrit.extensions.api.projects.BranchInput;
|
||||||
import com.google.gerrit.reviewdb.client.Project;
|
|
||||||
import com.google.gerrit.server.config.AllProjectsName;
|
import com.google.gerrit.server.config.AllProjectsName;
|
||||||
import com.google.gerrit.server.git.ProjectConfig;
|
import com.google.gerrit.server.git.ProjectConfig;
|
||||||
import com.google.gerrit.server.project.Util;
|
import com.google.gerrit.server.project.Util;
|
||||||
@@ -44,8 +42,6 @@ public class VisibleRefFilterIT extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
project = new Project.NameKey("p");
|
|
||||||
createProject(sshSession, project.get());
|
|
||||||
setUpChanges();
|
setUpChanges();
|
||||||
setUpPermissions();
|
setUpPermissions();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.acceptance.rest.group;
|
package com.google.gerrit.acceptance.rest.group;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
@@ -47,6 +48,7 @@ public class DefaultGroupsIT extends AbstractDaemonTest {
|
|||||||
public void defaultGroupsCreated_ssh() throws JSchException, IOException {
|
public void defaultGroupsCreated_ssh() throws JSchException, IOException {
|
||||||
SshSession session = new SshSession(server, admin);
|
SshSession session = new SshSession(server, admin);
|
||||||
String result = session.exec("gerrit ls-groups");
|
String result = session.exec("gerrit ls-groups");
|
||||||
|
assertFalse(session.getError(), session.hasError());
|
||||||
assertTrue(result.contains("Administrators"));
|
assertTrue(result.contains("Administrators"));
|
||||||
assertTrue(result.contains("Non-Interactive Users"));
|
assertTrue(result.contains("Non-Interactive Users"));
|
||||||
session.close();
|
session.close();
|
||||||
|
|||||||
@@ -16,36 +16,26 @@ package com.google.gerrit.acceptance.rest.project;
|
|||||||
|
|
||||||
import static com.google.gerrit.acceptance.GitUtil.checkout;
|
import static com.google.gerrit.acceptance.GitUtil.checkout;
|
||||||
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
import static com.google.gerrit.acceptance.GitUtil.cloneProject;
|
||||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
|
||||||
import static com.google.gerrit.acceptance.GitUtil.fetch;
|
import static com.google.gerrit.acceptance.GitUtil.fetch;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
import com.google.gerrit.acceptance.PushOneCommit;
|
import com.google.gerrit.acceptance.PushOneCommit;
|
||||||
import com.google.gerrit.acceptance.SshSession;
|
|
||||||
import com.google.gerrit.reviewdb.client.Project;
|
|
||||||
import com.google.gerrit.reviewdb.client.RefNames;
|
import com.google.gerrit.reviewdb.client.RefNames;
|
||||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
|
||||||
import com.google.gerrit.server.config.AllProjectsNameProvider;
|
import com.google.gerrit.server.config.AllProjectsNameProvider;
|
||||||
import com.google.gerrit.server.project.ProjectCache;
|
import com.google.gerrit.server.project.ProjectCache;
|
||||||
import com.google.gerrit.server.project.ProjectState;
|
import com.google.gerrit.server.project.ProjectState;
|
||||||
import com.google.gwtorm.server.SchemaFactory;
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
import org.eclipse.jgit.api.Git;
|
import org.eclipse.jgit.api.Git;
|
||||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||||
import org.eclipse.jgit.lib.Config;
|
import org.eclipse.jgit.lib.Config;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ProjectLevelConfigIT extends AbstractDaemonTest {
|
public class ProjectLevelConfigIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Inject
|
|
||||||
private SchemaFactory<ReviewDb> reviewDbProvider;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ProjectCache projectCache;
|
private ProjectCache projectCache;
|
||||||
|
|
||||||
@@ -55,27 +45,10 @@ public class ProjectLevelConfigIT extends AbstractDaemonTest {
|
|||||||
@Inject
|
@Inject
|
||||||
private PushOneCommit.Factory pushFactory;
|
private PushOneCommit.Factory pushFactory;
|
||||||
|
|
||||||
private ReviewDb db;
|
|
||||||
private SshSession sshSession;
|
|
||||||
private String project;
|
|
||||||
private Git git;
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
sshSession = new SshSession(server, admin);
|
|
||||||
|
|
||||||
project = "p";
|
|
||||||
createProject(sshSession, project, null, true);
|
|
||||||
git = cloneProject(sshSession.getUrl() + "/" + project);
|
|
||||||
fetch(git, RefNames.REFS_CONFIG + ":refs/heads/config");
|
fetch(git, RefNames.REFS_CONFIG + ":refs/heads/config");
|
||||||
checkout(git, "refs/heads/config");
|
checkout(git, "refs/heads/config");
|
||||||
|
|
||||||
db = reviewDbProvider.open();
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void cleanup() {
|
|
||||||
db.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -89,13 +62,13 @@ public class ProjectLevelConfigIT extends AbstractDaemonTest {
|
|||||||
configName, cfg.toText());
|
configName, cfg.toText());
|
||||||
push.to(git, RefNames.REFS_CONFIG);
|
push.to(git, RefNames.REFS_CONFIG);
|
||||||
|
|
||||||
ProjectState state = projectCache.get(new Project.NameKey(project));
|
ProjectState state = projectCache.get(project);
|
||||||
assertEquals(cfg.toText(), state.getConfig(configName).get().toText());
|
assertEquals(cfg.toText(), state.getConfig(configName).get().toText());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void nonExistingConfig() {
|
public void nonExistingConfig() {
|
||||||
ProjectState state = projectCache.get(new Project.NameKey(project));
|
ProjectState state = projectCache.get(project);
|
||||||
assertEquals("", state.getConfig("test.config").get().toText());
|
assertEquals("", state.getConfig("test.config").get().toText());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,7 +98,7 @@ public class ProjectLevelConfigIT extends AbstractDaemonTest {
|
|||||||
configName, cfg.toText());
|
configName, cfg.toText());
|
||||||
push.to(git, RefNames.REFS_CONFIG);
|
push.to(git, RefNames.REFS_CONFIG);
|
||||||
|
|
||||||
ProjectState state = projectCache.get(new Project.NameKey(project));
|
ProjectState state = projectCache.get(project);
|
||||||
|
|
||||||
Config expectedCfg = new Config();
|
Config expectedCfg = new Config();
|
||||||
expectedCfg.setString("s1", null, "k1", "childValue1");
|
expectedCfg.setString("s1", null, "k1", "childValue1");
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class BanCommitIT extends AbstractDaemonTest {
|
|||||||
String response =
|
String response =
|
||||||
sshSession.exec("gerrit ban-commit " + project.get() + " "
|
sshSession.exec("gerrit ban-commit " + project.get() + " "
|
||||||
+ c.getCommit().getName());
|
+ c.getCommit().getName());
|
||||||
assertFalse(sshSession.hasError());
|
assertFalse(sshSession.getError(), sshSession.hasError());
|
||||||
assertFalse(response, response.toLowerCase(Locale.US).contains("error"));
|
assertFalse(response, response.toLowerCase(Locale.US).contains("error"));
|
||||||
|
|
||||||
PushResult pushResult = pushHead(git, "refs/heads/master", false);
|
PushResult pushResult = pushHead(git, "refs/heads/master", false);
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class GarbageCollectionIT extends AbstractDaemonTest {
|
|||||||
String response =
|
String response =
|
||||||
sshSession.exec("gerrit gc \"" + project1.get() + "\" \""
|
sshSession.exec("gerrit gc \"" + project1.get() + "\" \""
|
||||||
+ project2.get() + "\"");
|
+ project2.get() + "\"");
|
||||||
assertFalse(sshSession.hasError());
|
assertFalse(sshSession.getError(), sshSession.hasError());
|
||||||
assertNoError(response);
|
assertNoError(response);
|
||||||
gcAssert.assertHasPackFile(project1, project2);
|
gcAssert.assertHasPackFile(project1, project2);
|
||||||
gcAssert.assertHasNoPackFile(allProjects, project3);
|
gcAssert.assertHasNoPackFile(allProjects, project3);
|
||||||
@@ -86,7 +86,7 @@ public class GarbageCollectionIT extends AbstractDaemonTest {
|
|||||||
@UseLocalDisk
|
@UseLocalDisk
|
||||||
public void testGcAll() throws JSchException, IOException {
|
public void testGcAll() throws JSchException, IOException {
|
||||||
String response = sshSession.exec("gerrit gc --all");
|
String response = sshSession.exec("gerrit gc --all");
|
||||||
assertFalse(sshSession.hasError());
|
assertFalse(sshSession.getError(), sshSession.hasError());
|
||||||
assertNoError(response);
|
assertNoError(response);
|
||||||
gcAssert.assertHasPackFile(allProjects, project1, project2, project3);
|
gcAssert.assertHasPackFile(allProjects, project1, project2, project3);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user