You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2019/06/17 13:02:28 UTC
[james-project] 04/05: JAMES-2788 release threads in
MemoryTaskManagerTest
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 5d316eedc646a08f0e9826c1de1f556ff57be2a3
Author: RĂ©mi Kowalski <rk...@linagora.com>
AuthorDate: Tue Jun 11 16:04:37 2019 +0200
JAMES-2788 release threads in MemoryTaskManagerTest
---
.../apache/james/task/MemoryTaskManagerTest.java | 54 ++++++++--------------
1 file changed, 20 insertions(+), 34 deletions(-)
diff --git a/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java b/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java
index 3533eb3..c2166cd 100644
--- a/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java
+++ b/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java
@@ -41,14 +41,17 @@ import org.junit.jupiter.api.Test;
class MemoryTaskManagerTest {
private MemoryTaskManager memoryTaskManager;
+ private CountDownLatch waitingForResultLatch;
@BeforeEach
void setUp() {
memoryTaskManager = new MemoryTaskManager();
+ waitingForResultLatch = new CountDownLatch(1);
}
@AfterEach
void tearDown() {
+ waitingForResultLatch.countDown();
memoryTaskManager.stop();
}
@@ -70,10 +73,8 @@ class MemoryTaskManagerTest {
@Test
void getStatusShouldReturnWaitingWhenNotYetProcessed() {
- CountDownLatch task1Latch = new CountDownLatch(1);
-
memoryTaskManager.submit(() -> {
- await(task1Latch);
+ waitForResult();
return Task.Result.COMPLETED;
});
@@ -86,19 +87,17 @@ class MemoryTaskManagerTest {
@Test
void taskCodeAfterCancelIsNotRun() {
CountDownLatch waitForTaskToBeLaunched = new CountDownLatch(1);
- CountDownLatch task1Latch = new CountDownLatch(1);
AtomicInteger count = new AtomicInteger(0);
TaskId id = memoryTaskManager.submit(() -> {
waitForTaskToBeLaunched.countDown();
- await(task1Latch);
+ waitForResult();
count.incrementAndGet();
return Task.Result.COMPLETED;
});
await(waitForTaskToBeLaunched);
memoryTaskManager.cancel(id);
- task1Latch.countDown();
assertThat(count.get()).isEqualTo(0);
}
@@ -177,10 +176,8 @@ class MemoryTaskManagerTest {
@Test
void cancelShouldBeIdempotent() {
- CountDownLatch task1Latch = new CountDownLatch(1);
-
TaskId id = memoryTaskManager.submit(() -> {
- await(task1Latch);
+ waitForResult();
return Task.Result.COMPLETED;
});
awaitUntilTaskHasStatus(id, TaskManager.Status.IN_PROGRESS);
@@ -191,21 +188,17 @@ class MemoryTaskManagerTest {
@Test
void getStatusShouldReturnInProgressWhenProcessingIsInProgress() {
- CountDownLatch latch1 = new CountDownLatch(1);
-
TaskId taskId = memoryTaskManager.submit(() -> {
- await(latch1);
+ waitForResult();
return Task.Result.COMPLETED;
});
awaitUntilTaskHasStatus(taskId, TaskManager.Status.IN_PROGRESS);
assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus())
.isEqualTo(TaskManager.Status.IN_PROGRESS);
- latch1.countDown();
}
@Test
void getStatusShouldReturnCompletedWhenRunSuccessfully() {
-
TaskId taskId = memoryTaskManager.submit(
() -> Task.Result.COMPLETED);
@@ -216,7 +209,6 @@ class MemoryTaskManagerTest {
@Test
void getStatusShouldReturnFailedWhenRunPartially() {
-
TaskId taskId = memoryTaskManager.submit(
() -> Task.Result.PARTIAL);
@@ -231,7 +223,6 @@ class MemoryTaskManagerTest {
SoftAssertions softly = new SoftAssertions();
CountDownLatch latch1 = new CountDownLatch(1);
- CountDownLatch latch2 = new CountDownLatch(1);
TaskId failedId = memoryTaskManager.submit(
() -> Task.Result.PARTIAL);
@@ -240,7 +231,7 @@ class MemoryTaskManagerTest {
TaskId inProgressId = memoryTaskManager.submit(
() -> {
latch1.countDown();
- await(latch2);
+ waitForResult();
return Task.Result.COMPLETED;
});
TaskId waitingId = memoryTaskManager.submit(
@@ -258,7 +249,6 @@ class MemoryTaskManagerTest {
.isEqualTo(TaskManager.Status.COMPLETED);
softly.assertThat(entryWithId(list, inProgressId))
.isEqualTo(TaskManager.Status.IN_PROGRESS);
- latch2.countDown();
}
private TaskManager.Status entryWithId(List<TaskExecutionDetails> list, TaskId taskId) {
@@ -272,7 +262,6 @@ class MemoryTaskManagerTest {
void listShouldAllowToSeeWaitingTasks() throws Exception {
CountDownLatch latch1 = new CountDownLatch(1);
CountDownLatch latch2 = new CountDownLatch(1);
- CountDownLatch latch3 = new CountDownLatch(1);
memoryTaskManager.submit(
() -> Task.Result.PARTIAL);
@@ -282,12 +271,12 @@ class MemoryTaskManagerTest {
() -> {
await(latch1);
latch2.countDown();
- await(latch3);
+ waitForResult();
return Task.Result.COMPLETED;
});
TaskId waitingId = memoryTaskManager.submit(
() -> {
- await(latch3);
+ waitForResult();
latch2.countDown();
return Task.Result.COMPLETED;
});
@@ -298,14 +287,12 @@ class MemoryTaskManagerTest {
assertThat(memoryTaskManager.list(TaskManager.Status.WAITING))
.extracting(TaskExecutionDetails::getTaskId)
.containsOnly(waitingId);
- latch3.countDown();
}
@Test
void listShouldAllowToSeeInProgressTasks() throws Exception {
CountDownLatch latch1 = new CountDownLatch(1);
CountDownLatch latch2 = new CountDownLatch(1);
- CountDownLatch latch3 = new CountDownLatch(1);
memoryTaskManager.submit(
() -> Task.Result.PARTIAL);
@@ -315,12 +302,12 @@ class MemoryTaskManagerTest {
() -> {
await(latch1);
latch2.countDown();
- await(latch3);
+ waitForResult();
return Task.Result.COMPLETED;
});
memoryTaskManager.submit(
() -> {
- await(latch3);
+ waitForResult();
latch2.countDown();
return Task.Result.COMPLETED;
});
@@ -331,14 +318,12 @@ class MemoryTaskManagerTest {
assertThat(memoryTaskManager.list(TaskManager.Status.COMPLETED))
.extracting(TaskExecutionDetails::getTaskId)
.containsOnly(successfulId);
- latch3.countDown();
}
@Test
void listShouldAllowToSeeFailedTasks() throws Exception {
CountDownLatch latch1 = new CountDownLatch(1);
CountDownLatch latch2 = new CountDownLatch(1);
- CountDownLatch latch3 = new CountDownLatch(1);
TaskId failedId = memoryTaskManager.submit(
() -> Task.Result.PARTIAL);
@@ -348,12 +333,12 @@ class MemoryTaskManagerTest {
() -> {
await(latch1);
latch2.countDown();
- await(latch3);
+ waitForResult();
return Task.Result.COMPLETED;
});
memoryTaskManager.submit(
() -> {
- await(latch3);
+ waitForResult();
latch2.countDown();
return Task.Result.COMPLETED;
});
@@ -364,14 +349,12 @@ class MemoryTaskManagerTest {
assertThat(memoryTaskManager.list(TaskManager.Status.FAILED))
.extracting(TaskExecutionDetails::getTaskId)
.containsOnly(failedId);
- latch3.countDown();
}
@Test
void listShouldAllowToSeeSuccessfulTasks() throws Exception {
CountDownLatch latch1 = new CountDownLatch(1);
CountDownLatch latch2 = new CountDownLatch(1);
- CountDownLatch latch3 = new CountDownLatch(1);
memoryTaskManager.submit(
() -> Task.Result.PARTIAL);
@@ -381,12 +364,12 @@ class MemoryTaskManagerTest {
() -> {
await(latch1);
latch2.countDown();
- await(latch3);
+ waitForResult();
return Task.Result.COMPLETED;
});
memoryTaskManager.submit(
() -> {
- await(latch3);
+ waitForResult();
latch2.countDown();
return Task.Result.COMPLETED;
});
@@ -397,7 +380,6 @@ class MemoryTaskManagerTest {
assertThat(memoryTaskManager.list(TaskManager.Status.IN_PROGRESS))
.extracting(TaskExecutionDetails::getTaskId)
.containsOnly(inProgressId);
- latch3.countDown();
}
@Test
@@ -503,6 +485,10 @@ class MemoryTaskManagerTest {
}
}
+ private void waitForResult() {
+ await(waitingForResultLatch);
+ }
+
private void awaitUntilTaskHasStatus(TaskId id, TaskManager.Status status) {
awaitAtMostOneSecond.until(() -> memoryTaskManager.getExecutionDetails(id).getStatus().equals(status));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org