diff options
author | David Ostrovsky <david@ostrovsky.org> | 2020-12-15 21:49:09 +0100 |
---|---|---|
committer | David Ostrovsky <david@ostrovsky.org> | 2020-12-15 21:52:46 +0100 |
commit | 74ef1258ffe28f5df0869f682cc5f932ba1147ba (patch) | |
tree | 6f39703d4ba37f603ddd547918654a1bec7bf97f | |
parent | a4a5bf9b9a198a558294778148484c639291aa83 (diff) |
SshDaemonIT: Perform some refactoring
Simplify the code, remove unused variables and make use of JUnit
assumption violation feature to avoid running graceful tests in
SSH daemon without activated sshd.gracefulStopTimeout configuration
option.
This is a preparation change to switch to using Apache MINA sshd
client.
Change-Id: I80bb97ac4c15a3af6bff86b0b3d0dcc7887e8314
-rw-r--r-- | javatests/com/google/gerrit/acceptance/ssh/SshDaemonIT.java | 68 |
1 files changed, 25 insertions, 43 deletions
diff --git a/javatests/com/google/gerrit/acceptance/ssh/SshDaemonIT.java b/javatests/com/google/gerrit/acceptance/ssh/SshDaemonIT.java index 827c192765..28d2a28c9c 100644 --- a/javatests/com/google/gerrit/acceptance/ssh/SshDaemonIT.java +++ b/javatests/com/google/gerrit/acceptance/ssh/SshDaemonIT.java @@ -14,24 +14,19 @@ package com.google.gerrit.acceptance.ssh; -import com.google.common.flogger.FluentLogger; +import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.TruthJUnit.assume; + import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.NoHttpd; import com.google.gerrit.acceptance.Sandboxed; import com.google.gerrit.acceptance.UseSsh; -import com.google.gerrit.server.config.SitePaths; -import com.google.gerrit.server.restapi.config.ListTasks; import com.google.gerrit.testing.ConfigSuite; -import com.google.inject.Inject; import com.google.inject.Module; -import java.time.LocalDateTime; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import org.eclipse.jgit.lib.Config; -import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -39,13 +34,7 @@ import org.junit.runner.RunWith; @UseSsh @Sandboxed @RunWith(ConfigSuite.class) -@SuppressWarnings("unused") public class SshDaemonIT extends AbstractDaemonTest { - private static final FluentLogger logger = FluentLogger.forEnclosingClass(); - - @Inject private ListTasks listTasks; - @Inject private SitePaths gerritSitePath; - @ConfigSuite.Parameter protected Config config; @ConfigSuite.Config @@ -60,41 +49,34 @@ public class SshDaemonIT extends AbstractDaemonTest { return new TestSshCommandModule(); } - public Future<Integer> startCommand(String command) throws Exception { - Callable<Integer> gracefulSession = - () -> { - int returnCode = -1; - logger.atFine().log("Before Command"); - returnCode = userSshSession.execAndReturnStatus(command); - logger.atFine().log("After Command"); - return returnCode; - }; + @Test + public void nonGracefulCommandIsStoppedImmediately() throws Exception { + Future<Integer> future = startCommand(false); + restart(); + assertThat(future.get()).isEqualTo(-1); + } - ExecutorService executor = Executors.newFixedThreadPool(1); - Future<Integer> future = executor.submit(gracefulSession); + @Test + public void gracefulCommandIsStoppedGracefully() throws Exception { + assume().that(isGracefulStopEnabled()).isTrue(); - LocalDateTime timeout = LocalDateTime.now().plusSeconds(10); + Future<Integer> future = startCommand(true); + restart(); + assertThat(future.get()).isEqualTo(0); + } + private Future<Integer> startCommand(boolean graceful) throws Exception { + Future<Integer> future = + Executors.newFixedThreadPool(1) + .submit( + () -> + userSshSession.execAndReturnStatus( + String.format("%sgraceful -d 5", graceful ? "" : "non-"))); TestCommand.syncPoint.await(); - return future; } - @Test - public void NonGracefulCommandIsStoppedImmediately() throws Exception { - Future<Integer> future = startCommand("non-graceful -d 5"); - restart(); - Assert.assertTrue(future.get() == -1); - } - - @Test - public void GracefulCommandIsStoppedGracefully() throws Exception { - Future<Integer> future = startCommand("graceful -d 5"); - restart(); - if (cfg.getTimeUnit("sshd", null, "gracefulStopTimeout", 0, TimeUnit.SECONDS) == 0) { - Assert.assertTrue(future.get() == -1); - } else { - Assert.assertTrue(future.get() == 0); - } + private boolean isGracefulStopEnabled() { + return cfg.getTimeUnit("sshd", null, "gracefulStopTimeout", 0, TimeUnit.SECONDS) > 0; } } |