summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ostrovsky <david@ostrovsky.org>2020-12-15 21:49:09 +0100
committerDavid Ostrovsky <david@ostrovsky.org>2020-12-15 21:52:46 +0100
commit74ef1258ffe28f5df0869f682cc5f932ba1147ba (patch)
tree6f39703d4ba37f603ddd547918654a1bec7bf97f
parenta4a5bf9b9a198a558294778148484c639291aa83 (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.java68
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;
}
}