Some of the circuit breaker spec timeouts were not dilated (#30734)
* Some of the circuit breaker spec timeouts were not dilated #26955 * Formatting
This commit is contained in:
parent
e20e55b148
commit
1901d152ab
1 changed files with 21 additions and 21 deletions
|
|
@ -55,21 +55,6 @@ object CircuitBreakerSpec {
|
||||||
.onCallBreakerOpen(callBreakerOpenLatch.countDown())
|
.onCallBreakerOpen(callBreakerOpenLatch.countDown())
|
||||||
}
|
}
|
||||||
|
|
||||||
val shortCallTimeout = 50.millis
|
|
||||||
def shortCallTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
|
||||||
new Breaker(new CircuitBreaker(system.scheduler, 1, shortCallTimeout, 500.millis.dilated))
|
|
||||||
|
|
||||||
val shortResetTimeout = 50.millis
|
|
||||||
def shortResetTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
|
||||||
new Breaker(new CircuitBreaker(system.scheduler, 1, 1000.millis.dilated, shortResetTimeout))
|
|
||||||
|
|
||||||
def longCallTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
|
||||||
new Breaker(new CircuitBreaker(system.scheduler, 1, 5 seconds, 500.millis.dilated))
|
|
||||||
|
|
||||||
val longResetTimeout = 5.seconds
|
|
||||||
def longResetTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
|
||||||
new Breaker(new CircuitBreaker(system.scheduler, 1, 100.millis.dilated, longResetTimeout))
|
|
||||||
|
|
||||||
def multiFailureCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
def multiFailureCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
||||||
new Breaker(new CircuitBreaker(system.scheduler, 5, 200.millis.dilated, 500.millis.dilated))
|
new Breaker(new CircuitBreaker(system.scheduler, 5, 200.millis.dilated, 500.millis.dilated))
|
||||||
|
|
||||||
|
|
@ -88,6 +73,21 @@ class CircuitBreakerSpec extends AkkaSpec {
|
||||||
|
|
||||||
val awaitTimeout = 2.seconds.dilated
|
val awaitTimeout = 2.seconds.dilated
|
||||||
|
|
||||||
|
val shortCallTimeout = 50.millis.dilated
|
||||||
|
def shortCallTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
||||||
|
new Breaker(new CircuitBreaker(system.scheduler, 1, shortCallTimeout, 500.millis.dilated))
|
||||||
|
|
||||||
|
val shortResetTimeout = 50.millis.dilated
|
||||||
|
def shortResetTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
||||||
|
new Breaker(new CircuitBreaker(system.scheduler, 1, 1000.millis.dilated, shortResetTimeout))
|
||||||
|
|
||||||
|
def longCallTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
||||||
|
new Breaker(new CircuitBreaker(system.scheduler, 1, 5 seconds, 500.millis.dilated))
|
||||||
|
|
||||||
|
val longResetTimeout = 5.seconds.dilated
|
||||||
|
def longResetTimeoutCb()(implicit system: ActorSystem, ec: ExecutionContext): Breaker =
|
||||||
|
new Breaker(new CircuitBreaker(system.scheduler, 1, 100.millis.dilated, longResetTimeout))
|
||||||
|
|
||||||
def checkLatch(latch: TestLatch): Unit = Await.ready(latch, awaitTimeout)
|
def checkLatch(latch: TestLatch): Unit = Await.ready(latch, awaitTimeout)
|
||||||
|
|
||||||
def throwException = throw new TestException
|
def throwException = throw new TestException
|
||||||
|
|
@ -96,7 +96,7 @@ class CircuitBreakerSpec extends AkkaSpec {
|
||||||
|
|
||||||
"A synchronous circuit breaker that is open" must {
|
"A synchronous circuit breaker that is open" must {
|
||||||
"throw exceptions when called before reset timeout" in {
|
"throw exceptions when called before reset timeout" in {
|
||||||
val breaker = CircuitBreakerSpec.longResetTimeoutCb()
|
val breaker = longResetTimeoutCb()
|
||||||
|
|
||||||
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
||||||
|
|
||||||
|
|
@ -104,17 +104,17 @@ class CircuitBreakerSpec extends AkkaSpec {
|
||||||
|
|
||||||
val e = intercept[CircuitBreakerOpenException] { breaker().withSyncCircuitBreaker(sayHi) }
|
val e = intercept[CircuitBreakerOpenException] { breaker().withSyncCircuitBreaker(sayHi) }
|
||||||
e.remainingDuration should be > Duration.Zero
|
e.remainingDuration should be > Duration.Zero
|
||||||
e.remainingDuration should be <= CircuitBreakerSpec.longResetTimeout
|
e.remainingDuration should be <= longResetTimeout
|
||||||
}
|
}
|
||||||
|
|
||||||
"transition to half-open on reset timeout" in {
|
"transition to half-open on reset timeout" in {
|
||||||
val breaker = CircuitBreakerSpec.shortResetTimeoutCb()
|
val breaker = shortResetTimeoutCb()
|
||||||
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
||||||
checkLatch(breaker.halfOpenLatch)
|
checkLatch(breaker.halfOpenLatch)
|
||||||
}
|
}
|
||||||
|
|
||||||
"still be in open state after calling success method" in {
|
"still be in open state after calling success method" in {
|
||||||
val breaker = CircuitBreakerSpec.longResetTimeoutCb()
|
val breaker = longResetTimeoutCb()
|
||||||
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
||||||
checkLatch(breaker.openLatch)
|
checkLatch(breaker.openLatch)
|
||||||
breaker().succeed()
|
breaker().succeed()
|
||||||
|
|
@ -122,7 +122,7 @@ class CircuitBreakerSpec extends AkkaSpec {
|
||||||
}
|
}
|
||||||
|
|
||||||
"still be in open state after calling fail method" in {
|
"still be in open state after calling fail method" in {
|
||||||
val breaker = CircuitBreakerSpec.longResetTimeoutCb()
|
val breaker = longResetTimeoutCb()
|
||||||
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
||||||
checkLatch(breaker.openLatch)
|
checkLatch(breaker.openLatch)
|
||||||
breaker().fail()
|
breaker().fail()
|
||||||
|
|
@ -130,7 +130,7 @@ class CircuitBreakerSpec extends AkkaSpec {
|
||||||
}
|
}
|
||||||
|
|
||||||
"invoke onHalfOpen during transition to half-open state" in {
|
"invoke onHalfOpen during transition to half-open state" in {
|
||||||
val breaker = CircuitBreakerSpec.shortResetTimeoutCb()
|
val breaker = shortResetTimeoutCb()
|
||||||
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
intercept[TestException] { breaker().withSyncCircuitBreaker(throwException) }
|
||||||
checkLatch(breaker.halfOpenLatch)
|
checkLatch(breaker.halfOpenLatch)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue