aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-process/src
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2017-03-19 14:24:17 +0100
committerSimon Brandhof <simon.brandhof@sonarsource.com>2017-03-19 14:24:17 +0100
commit77a607354885bffc24a109a7c3616c267fa02c3a (patch)
tree35f1eb58d3f4cfcba99038737ccd8987c9872e25 /server/sonar-process/src
parentb35205ac59d363548b245b3ec8ed742a68fbf22a (diff)
downloadsonarqube-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.java4
-rw-r--r--server/sonar-process/src/test/java/org/sonar/process/StopWatcherTest.java34
-rw-r--r--server/sonar-process/src/test/java/org/sonar/process/logging/LogbackHelperTest.java2
-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