From 4d532e056457bc0ca44eb0b6def5ef82376b0cc4 Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <stu103017@mail.uni-kiel.de> Date: Wed, 29 Jul 2015 17:01:22 +0200 Subject: [PATCH] test still not working correctly --- .../framework/AbstractRunnableStage.java | 2 +- .../teetime/framework/TerminationTest.java | 28 +++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/teetime/framework/AbstractRunnableStage.java b/src/main/java/teetime/framework/AbstractRunnableStage.java index 14868162..3057c121 100644 --- a/src/main/java/teetime/framework/AbstractRunnableStage.java +++ b/src/main/java/teetime/framework/AbstractRunnableStage.java @@ -48,7 +48,7 @@ abstract class AbstractRunnableStage implements Runnable { try { do { executeStage(); - } while (!stage.shouldBeTerminated()); + } while (!Thread.currentThread().isInterrupted()); } catch (TerminateException e) { this.stage.terminate(); stage.owningContext.abortConfigurationRun(); diff --git a/src/test/java/teetime/framework/TerminationTest.java b/src/test/java/teetime/framework/TerminationTest.java index ce339f90..81a3c5a1 100644 --- a/src/test/java/teetime/framework/TerminationTest.java +++ b/src/test/java/teetime/framework/TerminationTest.java @@ -8,9 +8,9 @@ public class TerminationTest { @Test(timeout = 2000) public void doesNotGetStuckInAdd() throws InterruptedException { - Execution<TerminationConfig> execution = new Execution<TerminationConfig>(new TerminationConfig()); + Execution<TerminationConfig> execution = new Execution<TerminationConfig>(new TerminationConfig(1)); execution.executeNonBlocking(); - Thread.sleep(1000); + Thread.sleep(500); execution.abortEventually(); } @@ -18,8 +18,8 @@ public class TerminationTest { InitialElementProducer<Integer> init = new InitialElementProducer<Integer>(1, 2, 3, 4, 5, 6); DoesNotRetrieveElements sinkStage = new DoesNotRetrieveElements(); - public TerminationConfig() { - connectPorts(init.getOutputPort(), sinkStage.getInputPort(), 1); + public TerminationConfig(final int capacity) { + connectPorts(init.getOutputPort(), sinkStage.getInputPort(), capacity); addThreadableStage(sinkStage); } @@ -29,19 +29,23 @@ public class TerminationTest { @Override protected void execute(final Integer element) { - try { - Thread.sleep(10000); - } catch (InterruptedException e) { - // Will happen in this test + int i = 0; + while (true) { + i++; + if (i > 1) { + Thread.currentThread().interrupt(); + break; + } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + } } } @Override - protected void terminate() { - Thread.currentThread().interrupt(); - System.out.println("TADA " + this.shouldBeTerminated()); - } + protected void terminate() {} } -- GitLab