From 9e49542cbb5180ef95645926bc7f64b3d5684ad0 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 28 Dec 2018 21:52:23 +0000
Subject: [PATCH] Job queueing...
---
borgbutler-core/src/test/java/de/micromata/borgbutler/jobs/JobQueueTest.java | 41 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/borgbutler-core/src/test/java/de/micromata/borgbutler/jobs/JobQueueTest.java b/borgbutler-core/src/test/java/de/micromata/borgbutler/jobs/JobQueueTest.java
index 6a4e1c2..0eb4edf 100644
--- a/borgbutler-core/src/test/java/de/micromata/borgbutler/jobs/JobQueueTest.java
+++ b/borgbutler-core/src/test/java/de/micromata/borgbutler/jobs/JobQueueTest.java
@@ -13,10 +13,11 @@
import java.nio.file.attribute.PosixFilePermissions;
import java.util.List;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.*;
public class JobQueueTest {
private Logger log = LoggerFactory.getLogger(JobQueueTest.class);
+ // Bash script with simple counter and forced error if second argument is a valid counter.
private static String bashScript = "#!/bin/bash\n" +
"COUNTER=0\n" +
"while [ $COUNTER -lt $1 ]; do\n" +
@@ -72,7 +73,7 @@
job1 = (TestJob) queue.getQueuedJob(10);
assertEquals(AbstractJob.Status.QUEUED, job1.getStatus());
- job = (TestJob)queue.getQueuedJob(100);
+ job = (TestJob) queue.getQueuedJob(100);
job.cancel();
assertEquals(AbstractJob.Status.CANCELLED, job.getStatus());
@@ -88,6 +89,42 @@
check(((TestJob) doneJobs.get(3)), AbstractJob.Status.DONE, "10");
}
+ @Test
+ void queueStopRunningProcessTest() {
+ JobQueue queue = new JobQueue();
+ assertEquals(0, queue.getQueueSize());
+ queue.append(new TestJob(1000, file));
+ queue.append(new TestJob(10, file));
+ TestJob job = (TestJob) queue.getQueuedJob(1000);
+ int counter = 100;
+ while (!job.isExecuteStarted() && counter-- > 0) {
+ try {
+ Thread.sleep(10);
+ } catch (InterruptedException ex) {
+ log.error(ex.getMessage(), ex);
+ }
+ }
+ assertTrue(counter > 0);
+ assertEquals(AbstractJob.Status.RUNNING, job.getStatus());
+ job.cancel();
+ counter = 100;
+ while (job.getStatus() == AbstractJob.Status.RUNNING && counter-- > 0) {
+ try {
+ Thread.sleep(10);
+ } catch (InterruptedException ex) {
+ log.error(ex.getMessage(), ex);
+ }
+ }
+ assertTrue(counter > 0);
+ assertEquals(AbstractJob.Status.CANCELLED, job.getStatus());
+ job = (TestJob)queue.getQueuedJob(10);
+ assertEquals("10\n", job.getResult());
+ List<AbstractJob> doneJobs = queue.getDoneJobs();
+ assertEquals(2, doneJobs.size());
+ check(((TestJob) doneJobs.get(0)), AbstractJob.Status.DONE, null);
+ check(((TestJob) doneJobs.get(1)), AbstractJob.Status.CANCELLED, null);
+ }
+
private void check(TestJob job, AbstractJob.Status status, String result) {
assertEquals(status, job.getStatus());
if (result != null) {
--
Gitblit v1.10.0