[RJ-Servi] Improve unit tests
- Avoid error on cleanup
- Improve messages when duration tests fail
Change-Id: Ic2c801ff3dc34e68fec95c46e9f500e3a428c214
diff --git a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java
index 82a85b4..999dd3f 100644
--- a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java
+++ b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java
@@ -136,7 +136,9 @@
try {
for (final RServi servi : this.servis) {
try {
- servi.close();
+ if (!servi.isClosed()) {
+ servi.close();
+ }
}
catch (final Throwable e) {
exceptions.add(e);
diff --git a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java
index 6d09d25..bd83e3e 100644
--- a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java
+++ b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java
@@ -245,8 +245,10 @@
final long t2= System.nanoTime();
final RServi servi2= getServi("test2");
assertNotNull(servi2);
- { final long waitTime= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t2);
- assertTrue(waitTime < poolConfig.getMaxWaitTime() + NODE_STARTUP_MILLIS);
+ { final long d2= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t2);
+ final long dMax= poolConfig.getMaxWaitTime() + NODE_STARTUP_MILLIS;
+ assertTrue(d2 < dMax,
+ () -> String.format("duration expected: < %1$sms, actual: %2$sms", dMax, d2) );
}
final long t3= System.nanoTime();
@@ -256,10 +258,11 @@
throw new AssertionError("totalCount");
}
catch (final NoSuchElementException e) {
- final long waitTime= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t3);
- assertTrue(waitTime > poolConfig.getMaxWaitTime() - 500);
- assertTrue(waitTime < poolConfig.getMaxWaitTime() + 500);
- return;
+ final long d3= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t3);
+ final long dExpected= poolConfig.getMaxWaitTime();
+ final long dTol= 500;
+ assertTrue(d3 > poolConfig.getMaxWaitTime() - dTol && d3 < poolConfig.getMaxWaitTime() + dTol,
+ () -> String.format("duration expected: %1$sms (±%3$sms), actual: %2$sms", dExpected, d3, dTol));
}
}
diff --git a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java
index eb4a2b8..9f55989 100644
--- a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java
+++ b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java
@@ -39,6 +39,7 @@
import org.eclipse.statet.rj.data.RDataUtils;
import org.eclipse.statet.rj.data.UnexpectedRDataException;
import org.eclipse.statet.rj.servi.RServi;
+import org.eclipse.statet.rj.servi.node.RServiNodeConfig;
@EnabledIfEnvironmentVariable(named= "STATET_TEST_FILES", matches= ".+")
@@ -190,8 +191,10 @@
final long t1= System.nanoTime();
this.localR.stop();
- final long waitTime= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t1);
- assertTrue(waitTime < 11500);
+ final long d1= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t1);
+ final long dMax= new RServiNodeConfig().getStartStopTimeout() + 1500;
+ assertTrue(d1 < new RServiNodeConfig().getStartStopTimeout() + 1500,
+ () -> String.format("duration expected: < %1$sms, actual: %2$sms", dMax, d1) );
}
}