You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by mb...@apache.org on 2023/01/09 03:53:31 UTC
[netbeans] branch master updated: rewritten 2 tests of org.openide.util.TaskTest into more readable form refactored one removed tests obsoleted by https://github.com/apache/netbeans/pull/4112 added cecriptive failure messages to assert calls added 2 more messages shortened test method names squashed
This is an automated email from the ASF dual-hosted git repository.
mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new aa157c60b4 rewritten 2 tests of org.openide.util.TaskTest into more readable form refactored one removed tests obsoleted by https://github.com/apache/netbeans/pull/4112 added cecriptive failure messages to assert calls added 2 more messages shortened test method names squashed
new 3a8b5145e6 Merge pull request #5061 from lbownik/openide.util.task2
aa157c60b4 is described below
commit aa157c60b43501fcfead74b10e9df6f3adfba02b
Author: Lukasz Bownik <lu...@gmail.com>
AuthorDate: Thu Dec 8 19:18:33 2022 +0100
rewritten 2 tests of org.openide.util.TaskTest into more readable form
refactored one
removed tests obsoleted by https://github.com/apache/netbeans/pull/4112
added cecriptive failure messages to assert calls
added 2 more messages
shortened test method names
squashed
---
.../test/unit/src/org/openide/util/TaskTest.java | 126 ++++++++++++++-------
1 file changed, 88 insertions(+), 38 deletions(-)
diff --git a/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java b/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java
index cc5a9d1398..8eb0151fc1 100644
--- a/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java
+++ b/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java
@@ -35,7 +35,8 @@ import org.junit.Ignore;
public class TaskTest {
- private final static long tenMiliseconds = 10000000; // in nanosecods
+ private final static long tenMiliseconds = 10000000; // in nanoseconds
+ private final static long fiveHundredMiliseconds = 500000000; // in nanoseconds
private static final Logger LOG = Logger.getLogger("org.openide.util.TaskTest");
@@ -115,14 +116,14 @@ public class TaskTest {
this.executedListenerTask = t;
});
- assertFalse(task.isFinished());
+ assertFalse("Task should not have been finished.", task.isFinished());
assertNotEquals("null", task.debug());
task.run();
- assertTrue(this.runHasBeenExecuted);
+ assertTrue("Runnable should have been executed.", this.runHasBeenExecuted);
assertSame(task, this.executedListenerTask);
- assertTrue(task.isFinished());
+ assertTrue("Task should have finished.", task.isFinished());
}
//--------------------------------------------------------------------------
@@ -141,7 +142,7 @@ public class TaskTest {
task.run();
- assertTrue(task.isFinished());
+ assertTrue("Task should have finished.", task.isFinished());
assertNull(this.executedListenerTask);
}
@@ -156,20 +157,20 @@ public class TaskTest {
task.run();
assertNull(this.executedListenerTask);
- assertTrue(task.isFinished());
+ assertTrue("Task should have finished.", task.isFinished());
task.addTaskListener((t) -> {
this.executedListenerTask = t;
});
assertSame(task, this.executedListenerTask);
- assertTrue(task.isFinished()); // still finished
+ assertTrue("Task should have finished.", task.isFinished()); // still finished
}
//--------------------------------------------------------------------------
@Ignore("Current implementation allows null listener but then Task.run throws NPE :(")
@Test
- public void addTaskListener_throwsNullPointer_whenGivenNullArgument() {
+ public void addTaskListener_throwsNullPointer_whenGivenNull() {
Task task = new Task(() -> {
});
@@ -183,7 +184,7 @@ public class TaskTest {
//--------------------------------------------------------------------------
@Test
- public void removeTaskListener_doesNothing_whenGivenNullArgument() {
+ public void removeTaskListener_doesNothing_whenGivenNull() {
this.executedListenerTask = null;
@@ -200,6 +201,62 @@ public class TaskTest {
assertSame(task, this.executedListenerTask);
}
+ //--------------------------------------------------------------------------
+ @Test
+ public void taksIsNotFinished_untilRunMethodCompletes()
+ throws Exception {
+
+ Object lock = new Object();
+ Task task = new Task(() -> {
+ synchronized (lock) {
+ lock.notify(); // let the test thread continue
+ try {
+ lock.wait();
+ } catch (InterruptedException e) {
+ fail("This shall never happen as the test does not call 'interrupt()'.");
+ }
+ }
+ });
+
+ assertFalse("Task should not have been finished.", task.isFinished());
+
+ synchronized (lock) {
+ new Thread(task).start();
+ lock.wait(); // wait for task to start
+ }
+
+ assertFalse("Task should not have been finished.", task.isFinished());
+
+ synchronized (lock) {
+ lock.notify(); //let the task finish
+ }
+ task.waitFinished();
+
+ assertTrue("Task should have finished.", task.isFinished());
+ }
+ //--------------------------------------------------------------------------
+ @Test
+ public void waitFinished_returnsAfterTimeout_whenTaksIsNotExecutedAtAll()
+ throws Exception {
+
+ Task task = new Task(()->{});
+
+ assertFalse("Task should not have been finished.", task.isFinished());
+
+ final long begin = nanoTime();
+
+ assertFalse("Task should not have been finished.", task.waitFinished(500));
+
+ final long duration = nanoTime()- begin;
+
+ assertTrue("Task.waitFinished(long) waited shorter than expected (" +
+ duration + " ns < " + fiveHundredMiliseconds + " ns).",
+ duration >= fiveHundredMiliseconds);
+ assertFalse("Task should not have been finished.", task.isFinished());
+ }
+
+ // this test is being repaced by taksIsNotFinished_untilRunMethodCompletes
+ // and will be removed by next PR
@Test
public void testPlainTaskWaitsForBeingExecuted () throws Exception {
R run = new R ();
@@ -220,21 +277,8 @@ public class TaskTest {
assertTrue ("Finished", t.isFinished ());
}
- // this test is covered by emptyTask_isImmediatelyFinished_andNeverWaits and will be removed in next PR
- @Test
- public void testTaskEMPTYIsFinished () throws Exception {
- assertTrue (Task.EMPTY.isFinished ());
- }
- // this test is covered by emptyTask_isImmediatelyFinished_andNeverWaits and will be removed in next PR
- @Test
- public void testWaitFinishedOnEMPTYTaskReturnsImmediatelly () throws Exception {
- Task.EMPTY.waitFinished ();
- }
- // this test is covered by emptyTask_isImmediatelyFinished_andNeverWaits and will be removed in next PR
- @Test
- public void testWaitWithTimeOutReturnsImmediatellyOnFinishedTasks () throws Exception {
- assertTrue ("Was successfully finished", Task.EMPTY.waitFinished (0));
- }
+ // this test is being replaced by waitFinishedWithTimeout_returnsAfterTimeout_whenTaksIsNotExecutedAtAll
+ // and will be removed by next PR
@Test
public void testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll () throws Exception {
if (!canWait1s()) {
@@ -260,26 +304,32 @@ public class TaskTest {
fail ("Something wrong happened the task should wait for 1000ms but it took: " + time + "\n" + log);
}
+
+ //--------------------------------------------------------------------------
@Test
- public void testWaitOnStrangeTaskThatStartsItsExecutionInOverridenWaitFinishedMethodLikeFolderInstancesDo () throws Exception {
+ public void waitOnTask_withOverridenWaitFinishedMethod()
+ throws Exception { // like FolderInstances do
+
class MyTask extends Task {
- private int values;
-
- public MyTask () {
- notifyFinished ();
+
+ private int values = 0;
+
+ public MyTask() {
+ notifyFinished();
}
-
- public void waitFinished () {
- notifyRunning ();
+
+ @Override
+ public void waitFinished() {
+ notifyRunning();
values++;
- notifyFinished ();
+ notifyFinished();
}
}
-
- MyTask my = new MyTask ();
- assertTrue ("The task thinks that he is finished", my.isFinished ());
- assertTrue ("Ok, even with timeout we got the result", my.waitFinished (1000));
- assertEquals ("But the old waitFinished is called", 1, my.values);
+
+ MyTask my = new MyTask();
+ assertTrue("Task should have finished.", my.isFinished()); //The task thinks that it is finished.
+ assertTrue("Task should have finished.", my.waitFinished(1000)); //Even with timeout we got the result,
+ assertEquals(1, my.values); //but the old waitFinished is called.
}
@Test
public void testWaitOnStrangeTaskThatTakesReallyLongTime () throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists