diff --git a/java/com/google/gerrit/acceptance/AbstractDaemonTest.java b/java/com/google/gerrit/acceptance/AbstractDaemonTest.java index 384f588807..c3349f12e3 100644 --- a/java/com/google/gerrit/acceptance/AbstractDaemonTest.java +++ b/java/com/google/gerrit/acceptance/AbstractDaemonTest.java @@ -348,6 +348,11 @@ public abstract class AbstractDaemonTest { GerritServer.Description methodDesc = GerritServer.Description.forTestMethod(description, configName); + testRequiresSsh = classDesc.useSshAnnotation() || methodDesc.useSshAnnotation(); + if (!testRequiresSsh) { + baseConfig.setString("sshd", null, "listenAddress", "off"); + } + baseConfig.setInt("receive", null, "changeUpdateThreads", 4); if (classDesc.equals(methodDesc) && !classDesc.sandboxed() && !methodDesc.sandboxed()) { if (commonServer == null) { @@ -388,7 +393,6 @@ public abstract class AbstractDaemonTest { adminRestSession = new RestSession(server, admin); userRestSession = new RestSession(server, user); - testRequiresSsh = classDesc.useSshAnnotation() || methodDesc.useSshAnnotation(); if (testRequiresSsh && SshMode.useSsh() && (adminSshSession == null || userSshSession == null)) { diff --git a/java/com/google/gerrit/acceptance/GerritServer.java b/java/com/google/gerrit/acceptance/GerritServer.java index f8ed3b639b..0b14cf1687 100644 --- a/java/com/google/gerrit/acceptance/GerritServer.java +++ b/java/com/google/gerrit/acceptance/GerritServer.java @@ -26,6 +26,7 @@ import com.google.gerrit.extensions.config.FactoryModule; import com.google.gerrit.lucene.LuceneIndexModule; import com.google.gerrit.pgm.Daemon; import com.google.gerrit.pgm.Init; +import com.google.gerrit.pgm.init.InitSshd; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.git.receive.AsyncReceiveCommits; import com.google.gerrit.server.ssh.NoSshModule; @@ -376,7 +377,10 @@ public class GerritServer implements AutoCloseable { String url = "http://" + forceEphemeralPort + "/"; cfg.setString("gerrit", null, "canonicalWebUrl", url); cfg.setString("httpd", null, "listenUrl", url); - cfg.setString("sshd", null, "listenAddress", forceEphemeralPort); + + if (cfg.getString("sshd", null, "listenAddress") == null) { + cfg.setString("sshd", null, "listenAddress", forceEphemeralPort); + } cfg.setBoolean("sshd", null, "testUseInsecureRandom", true); cfg.unset("cache", null, "directory"); cfg.setString("gerrit", null, "basePath", "git"); @@ -452,7 +456,10 @@ public class GerritServer implements AutoCloseable { url = cfg.getString("gerrit", null, "canonicalWebUrl"); URI uri = URI.create(url); - sshdAddress = SocketUtil.resolve(cfg.getString("sshd", null, "listenAddress"), 0); + String addr = cfg.getString("sshd", null, "listenAddress"); + if (!InitSshd.isOff(addr)) { + sshdAddress = SocketUtil.resolve(cfg.getString("sshd", null, "listenAddress"), 0); + } httpAddress = new InetSocketAddress(uri.getHost(), uri.getPort()); } diff --git a/java/com/google/gerrit/pgm/init/InitSshd.java b/java/com/google/gerrit/pgm/init/InitSshd.java index 0cad722382..043f3ee4bc 100644 --- a/java/com/google/gerrit/pgm/init/InitSshd.java +++ b/java/com/google/gerrit/pgm/init/InitSshd.java @@ -31,7 +31,7 @@ import java.net.InetSocketAddress; /** Initialize the {@code sshd} configuration section. */ @Singleton -class InitSshd implements InitStep { +public class InitSshd implements InitStep { private final ConsoleUI ui; private final SitePaths site; private final Section sshd; @@ -73,7 +73,7 @@ class InitSshd implements InitStep { remover.remove("bc(pg|pkix|prov)-.*[.]jar"); } - private static boolean isOff(String listenHostname) { + public static boolean isOff(String listenHostname) { return "off".equalsIgnoreCase(listenHostname) || "none".equalsIgnoreCase(listenHostname) || "no".equalsIgnoreCase(listenHostname); diff --git a/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java b/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java index 8ec145f8ee..38462c043e 100644 --- a/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java +++ b/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java @@ -20,6 +20,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.GerritConfig; import com.google.gerrit.acceptance.NoHttpd; +import com.google.gerrit.acceptance.UseSsh; import com.google.gerrit.common.RawInputUtil; import com.google.gerrit.extensions.client.AccountFieldName; import com.google.gerrit.extensions.client.AuthType; @@ -32,6 +33,7 @@ import com.google.gerrit.server.config.AnonymousCowardNameProvider; import org.junit.Test; @NoHttpd +@UseSsh public class ServerInfoIT extends AbstractDaemonTest { private static final byte[] JS_PLUGIN_CONTENT = "Gerrit.install(function(self){});\n".getBytes(UTF_8);