You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ge...@apache.org on 2017/04/28 13:53:44 UTC
[06/10] brooklyn-server git commit: use iteration limit to make
several tests run quicker (not wait 1s)
use iteration limit to make several tests run quicker (not wait 1s)
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/661d92f5
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/661d92f5
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/661d92f5
Branch: refs/heads/master
Commit: 661d92f5692b62e9130ed0f3d79fc6c5597f214d
Parents: bd461ad
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Apr 25 16:10:02 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri Apr 28 14:09:51 2017 +0100
----------------------------------------------------------------------
.../main/java/org/apache/brooklyn/test/framework/BaseTest.java | 6 ++++++
.../org/apache/brooklyn/test/framework/TestSensorImpl.java | 2 +-
.../apache/brooklyn/test/framework/TestWinrmCommandImpl.java | 1 +
.../apache/brooklyn/test/framework/TestWinrmCommandTest.java | 6 ++++++
4 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/661d92f5/test-framework/src/main/java/org/apache/brooklyn/test/framework/BaseTest.java
----------------------------------------------------------------------
diff --git a/test-framework/src/main/java/org/apache/brooklyn/test/framework/BaseTest.java b/test-framework/src/main/java/org/apache/brooklyn/test/framework/BaseTest.java
index 2ae552d..5689b6c 100644
--- a/test-framework/src/main/java/org/apache/brooklyn/test/framework/BaseTest.java
+++ b/test-framework/src/main/java/org/apache/brooklyn/test/framework/BaseTest.java
@@ -45,6 +45,12 @@ public interface BaseTest extends TargetableTestComponent, Startable {
Duration.seconds(1));
/**
+ * The max number of iterations to run before throwing an exception.
+ */
+ ConfigKey<Integer> ITERATION_LIMIT = ConfigKeys.newConfigKey(Integer.class, "iterations", "Max iterations to try to get result",
+ Integer.MAX_VALUE);
+
+ /**
* Max time between checking the assertion (exponential backoff to this limit).
*/
ConfigKey<Duration> BACKOFF_TO_PERIOD = ConfigKeys.newConfigKey(Duration.class, "backoffToPeriod",
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/661d92f5/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestSensorImpl.java
----------------------------------------------------------------------
diff --git a/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestSensorImpl.java b/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestSensorImpl.java
index 6dae5ea..9cf5b21 100644
--- a/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestSensorImpl.java
+++ b/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestSensorImpl.java
@@ -77,7 +77,7 @@ public class TestSensorImpl extends TargetableTestComponentImpl implements TestS
}
};
TestFrameworkAssertions.checkAssertionsEventually(new AssertionOptions(sensor.get(), supplier)
- .timeout(timeout).backoffToPeriod(backoffToPeriod)
+ .maxAttempts(getConfig(ITERATION_LIMIT)).timeout(timeout).backoffToPeriod(backoffToPeriod)
.assertions(assertions).abortConditions(abortConditions));
setUpAndRunState(true, Lifecycle.RUNNING);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/661d92f5/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestWinrmCommandImpl.java
----------------------------------------------------------------------
diff --git a/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestWinrmCommandImpl.java b/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestWinrmCommandImpl.java
index 3dc2545..f0d5b8b 100644
--- a/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestWinrmCommandImpl.java
+++ b/test-framework/src/main/java/org/apache/brooklyn/test/framework/TestWinrmCommandImpl.java
@@ -107,6 +107,7 @@ public class TestWinrmCommandImpl extends TargetableTestComponentImpl implements
// See identical comment in `TestSshCommandImpl`.
ReferenceWithError<Boolean> result = Repeater.create("Running winrm-command tests")
.limitTimeTo(timeout)
+ .limitIterationsTo(getRequiredConfig(ITERATION_LIMIT))
.backoffTo((backoffToPeriod != null) ? backoffToPeriod : Duration.millis(500))
.until(new Callable<Boolean>() {
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/661d92f5/test-framework/src/test/java/org/apache/brooklyn/test/framework/TestWinrmCommandTest.java
----------------------------------------------------------------------
diff --git a/test-framework/src/test/java/org/apache/brooklyn/test/framework/TestWinrmCommandTest.java b/test-framework/src/test/java/org/apache/brooklyn/test/framework/TestWinrmCommandTest.java
index ff387e5..e5a2c52 100644
--- a/test-framework/src/test/java/org/apache/brooklyn/test/framework/TestWinrmCommandTest.java
+++ b/test-framework/src/test/java/org/apache/brooklyn/test/framework/TestWinrmCommandTest.java
@@ -37,6 +37,7 @@ import java.util.Map;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.api.location.LocationSpec;
+import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.core.test.entity.TestEntity;
import org.apache.brooklyn.location.winrm.WinRmMachineLocation;
@@ -141,6 +142,7 @@ public class TestWinrmCommandTest extends BrooklynAppUnitTestSupport {
RecordingWinRmTool.setCustomResponse(cmd, new RecordingWinRmTool.CustomResponse(1, null, null));
TestWinrmCommand test = app.createAndManageChild(EntitySpec.create(TestWinrmCommand.class)
+ .configure(TestWinrmCommand.ITERATION_LIMIT, 1)
.configure(TARGET_ENTITY, testEntity)
.configure(COMMAND, cmd));
@@ -177,6 +179,7 @@ public class TestWinrmCommandTest extends BrooklynAppUnitTestSupport {
RecordingWinRmTool.setCustomResponse(cmd, new RecordingWinRmTool.CustomResponse(0, "wrongstdout", null));
TestWinrmCommand test = app.createAndManageChild(EntitySpec.create(TestWinrmCommand.class)
+ .configure(TestWinrmCommand.ITERATION_LIMIT, 1)
.configure(TARGET_ENTITY, testEntity)
.configure(COMMAND, cmd)
.configure(ASSERT_OUT, makeAssertions(ImmutableMap.of(CONTAINS, "mystdout"))));
@@ -197,6 +200,7 @@ public class TestWinrmCommandTest extends BrooklynAppUnitTestSupport {
RecordingWinRmTool.setCustomResponse(cmd, new RecordingWinRmTool.CustomResponse(0, null, "wrongstderr"));
TestWinrmCommand test = app.createAndManageChild(EntitySpec.create(TestWinrmCommand.class)
+ .configure(TestWinrmCommand.ITERATION_LIMIT, 1)
.configure(TARGET_ENTITY, testEntity)
.configure(COMMAND, cmd)
.configure(ASSERT_ERR, makeAssertions(ImmutableMap.of(CONTAINS, "mystderr"))));
@@ -218,6 +222,7 @@ public class TestWinrmCommandTest extends BrooklynAppUnitTestSupport {
Map<String, ?> equals255 = ImmutableMap.of(EQUALS, 255);
TestWinrmCommand test = app.createAndManageChild(EntitySpec.create(TestWinrmCommand.class)
+ .configure(TestWinrmCommand.ITERATION_LIMIT, 1)
.configure(TARGET_ENTITY, testEntity)
.configure(COMMAND, "uptime")
.configure(ASSERT_STATUS, makeAssertions(equalsOne, equals255)));
@@ -226,6 +231,7 @@ public class TestWinrmCommandTest extends BrooklynAppUnitTestSupport {
app.start(ImmutableList.<Location>of());
Asserts.shouldHaveFailedPreviously();
} catch (Exception e) {
+ Entities.dumpInfo(app);
Asserts.expectedFailureContains(e, "exit code expected equals 1 but found 0", "exit code expected equals 255 but found 0");
}