diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2017-03-19 14:24:17 +0100 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2017-03-19 14:24:17 +0100 |
commit | 77a607354885bffc24a109a7c3616c267fa02c3a (patch) | |
tree | 35f1eb58d3f4cfcba99038737ccd8987c9872e25 /server/sonar-process/src | |
parent | b35205ac59d363548b245b3ec8ed742a68fbf22a (diff) | |
download | sonarqube-77a607354885bffc24a109a7c3616c267fa02c3a.tar.gz sonarqube-77a607354885bffc24a109a7c3616c267fa02c3a.zip |
Improve reliability and speed of StopWatcherTest
Diffstat (limited to 'server/sonar-process/src')
-rw-r--r-- | server/sonar-process/src/main/java/org/sonar/process/StopWatcher.java | 4 | ||||
-rw-r--r-- | server/sonar-process/src/test/java/org/sonar/process/StopWatcherTest.java | 34 | ||||
-rw-r--r-- | server/sonar-process/src/test/java/org/sonar/process/logging/LogbackHelperTest.java | 2 | ||||
-rw-r--r-- | server/sonar-process/src/test/resources/org/sonar/process/logging/LogbackHelperTest/logback-test.xml (renamed from server/sonar-process/src/test/resources/logback-test.xml) | 0 |
4 files changed, 26 insertions, 14 deletions
diff --git a/server/sonar-process/src/main/java/org/sonar/process/StopWatcher.java b/server/sonar-process/src/main/java/org/sonar/process/StopWatcher.java index 35bdc2ef9e4..0043bccf239 100644 --- a/server/sonar-process/src/main/java/org/sonar/process/StopWatcher.java +++ b/server/sonar-process/src/main/java/org/sonar/process/StopWatcher.java @@ -27,10 +27,10 @@ import org.slf4j.LoggerFactory; */ public class StopWatcher extends Thread { - private final Stoppable stoppable; private final ProcessCommands commands; - private boolean watching = true; + private final Stoppable stoppable; private final long delayMs; + private boolean watching = true; public StopWatcher(ProcessCommands commands, Stoppable stoppable) { this(commands, stoppable, 500L); diff --git a/server/sonar-process/src/test/java/org/sonar/process/StopWatcherTest.java b/server/sonar-process/src/test/java/org/sonar/process/StopWatcherTest.java index 1f1e6c51d5a..970a1e4bdc9 100644 --- a/server/sonar-process/src/test/java/org/sonar/process/StopWatcherTest.java +++ b/server/sonar-process/src/test/java/org/sonar/process/StopWatcherTest.java @@ -19,38 +19,50 @@ */ package org.sonar.process; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.DisableOnDebug; +import org.junit.rules.TestRule; +import org.junit.rules.Timeout; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; -import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class StopWatcherTest { + + @Rule + public TestRule safeguard = new DisableOnDebug(Timeout.seconds(10)); + @Test - public void stop_if_receive_command() { + public void stop_if_receive_command() throws Exception { ProcessCommands commands = mock(ProcessCommands.class); when(commands.askedForStop()).thenReturn(false, true); Stoppable stoppable = mock(Stoppable.class); - StopWatcher watcher = new StopWatcher(commands, stoppable, 1L); - watcher.start(); + StopWatcher underTest = new StopWatcher(commands, stoppable, 1L); + underTest.start(); - verify(stoppable, timeout(5000)).stopAsync(); + while (underTest.isAlive()) { + Thread.sleep(1L); + } + verify(stoppable).stopAsync(); } - @Test(timeout = 5000) - public void stop_watching_on_interruption() throws InterruptedException { + @Test + public void stop_watching_on_interruption() throws Exception { ProcessCommands commands = mock(ProcessCommands.class); when(commands.askedForStop()).thenReturn(false); Stoppable stoppable = mock(Stoppable.class); - StopWatcher watcher = new StopWatcher(commands, stoppable, 1000L); - watcher.start(); - Thread.sleep(50L); - watcher.interrupt(); + StopWatcher underTest = new StopWatcher(commands, stoppable, 1L); + underTest.start(); + underTest.interrupt(); + while (underTest.isAlive()) { + Thread.sleep(1L); + } verify(stoppable, never()).stopAsync(); } } diff --git a/server/sonar-process/src/test/java/org/sonar/process/logging/LogbackHelperTest.java b/server/sonar-process/src/test/java/org/sonar/process/logging/LogbackHelperTest.java index bde68ffa789..9b6a50d8e0d 100644 --- a/server/sonar-process/src/test/java/org/sonar/process/logging/LogbackHelperTest.java +++ b/server/sonar-process/src/test/java/org/sonar/process/logging/LogbackHelperTest.java @@ -70,7 +70,7 @@ public class LogbackHelperTest { @AfterClass public static void resetLogback() throws Exception { - new LogbackHelper().resetFromXml("/logback-test.xml"); + new LogbackHelper().resetFromXml("/org/sonar/process/logging/LogbackHelperTest/logback-test.xml"); } @Test diff --git a/server/sonar-process/src/test/resources/logback-test.xml b/server/sonar-process/src/test/resources/org/sonar/process/logging/LogbackHelperTest/logback-test.xml index 9c9ff1aab01..9c9ff1aab01 100644 --- a/server/sonar-process/src/test/resources/logback-test.xml +++ b/server/sonar-process/src/test/resources/org/sonar/process/logging/LogbackHelperTest/logback-test.xml |