]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7422 add DefaultProcessCommand#reset()
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 17 May 2016 12:56:38 +0000 (14:56 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Wed, 18 May 2016 09:33:46 +0000 (11:33 +0200)
server/sonar-process/src/main/java/org/sonar/process/DefaultProcessCommands.java
server/sonar-process/src/test/java/org/sonar/process/DefaultProcessCommandsTest.java

index dade6ab62651105f78002da2fa0da7ccd9724f0a..7a4182d6ceecdf59e4a2a93cb2c183499bcb6bf0 100644 (file)
@@ -52,6 +52,15 @@ public class DefaultProcessCommands implements ProcessCommands {
     return new DefaultProcessCommands(directory, processNumber, false);
   }
 
+  /**
+   * Clears the shared memory space of the specified process number.
+   */
+  public static void reset(File directory, int processNumber) {
+    try (DefaultProcessCommands processCommands = new DefaultProcessCommands(directory, processNumber, true)) {
+      // nothing else to do than open file and reset the space of specified process
+    }
+  }
+
   @Override
   public boolean isUp() {
     return delegate.isUp();
index 0b981e03ac0ebe335f2628a77965b4a2c9028d8f..80d510be988c8760f8cbc067a5b2bfebc42af10d 100644 (file)
@@ -126,7 +126,6 @@ public class DefaultProcessCommandsTest {
 
     DefaultProcessCommands.main(temp.newFolder(), processNumber);
   }
-
   @Test
   public void main_fails_if_processNumber_is_MAX_PROCESSES() throws Exception {
     int processNumber = MAX_PROCESSES;
@@ -154,6 +153,24 @@ public class DefaultProcessCommandsTest {
     DefaultProcessCommands.secondary(temp.newFolder(), processNumber);
   }
 
+  @Test
+  public void reset_fails_if_processNumber_is_less_than_0() throws Exception {
+    int processNumber = -2;
+
+    expectProcessNumberNoValidIAE(processNumber);
+
+    DefaultProcessCommands.reset(temp.newFolder(), processNumber);
+  }
+
+  @Test
+  public void reset_fails_if_processNumber_is_higher_than_MAX_PROCESSES() throws Exception {
+    int processNumber = MAX_PROCESSES + 1;
+
+    expectProcessNumberNoValidIAE(processNumber);
+
+    DefaultProcessCommands.reset(temp.newFolder(), processNumber);
+  }
+
   private void expectProcessNumberNoValidIAE(int processNumber) {
     expectedException.expect(IllegalArgumentException.class);
     expectedException.expectMessage("Process number " + processNumber + " is not valid");