Skip to content

Commit 0d4ed5b

Browse files
committed
Fix test cases
1 parent c39dcd3 commit 0d4ed5b

File tree

3 files changed

+28
-33
lines changed

3 files changed

+28
-33
lines changed

tests/src/test/scala/org/apache/openwhisk/core/containerpool/v2/test/ActivationClientProxyTests.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import akka.grpc.internal.ClientClosedException
2424
import akka.testkit.{ImplicitSender, TestKit, TestProbe}
2525
import common.StreamLogging
2626
import io.grpc.StatusRuntimeException
27-
import org.apache.openwhisk.common.TransactionId
27+
import org.apache.openwhisk.common.{GracefulShutdown, TransactionId}
2828
import org.apache.openwhisk.core.connector.ActivationMessage
2929
import org.apache.openwhisk.core.containerpool.ContainerId
3030
import org.apache.openwhisk.core.containerpool.v2._
@@ -37,9 +37,9 @@ import org.apache.openwhisk.grpc
3737
import org.apache.openwhisk.grpc.{ActivationServiceClient, FetchRequest, RescheduleRequest, RescheduleResponse}
3838
import org.junit.runner.RunWith
3939
import org.scalamock.scalatest.MockFactory
40+
import org.scalatest.concurrent.ScalaFutures
4041
import org.scalatest.junit.JUnitRunner
4142
import org.scalatest.{BeforeAndAfterAll, FlatSpecLike, Matchers}
42-
import org.scalatest.concurrent.ScalaFutures
4343

4444
import scala.collection.mutable.ArrayBuffer
4545
import scala.concurrent.Future
@@ -349,7 +349,7 @@ class ActivationClientProxyTests
349349
probe expectTerminated machine
350350
}
351351

352-
it should "be closed when it receives a CloseClientProxy message for a normal timeout case" in within(timeout) {
352+
it should "be closed when it receives a GracefulShutdown message for a normal timeout case" in within(timeout) {
353353
val fetch = (_: FetchRequest) => Future(grpc.FetchResponse(AResponse(Right(message)).serialize))
354354
val activationClient = MockActivationServiceClient(fetch)
355355
val client = (_: String, _: FullyQualifiedEntityName, _: String, _: Int, _: Boolean) => Future(activationClient)
@@ -362,14 +362,14 @@ class ActivationClientProxyTests
362362
registerCallback(machine, probe)
363363
ready(machine, probe)
364364

365-
machine ! CloseClientProxy
366-
awaitAssert(activationClient.isClosed shouldBe true)
365+
machine ! GracefulShutdown
367366

368367
probe.expectMsg(Transition(machine, ClientProxyReady, ClientProxyRemoving))
369368

370369
machine ! RequestActivation()
371370

372371
probe expectMsg ClientClosed
372+
awaitAssert(activationClient.isClosed shouldBe true)
373373
probe expectTerminated machine
374374
}
375375

tests/src/test/scala/org/apache/openwhisk/core/containerpool/v2/test/FunctionPullingContainerPoolTests.scala

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,9 @@ import org.apache.openwhisk.common.{Enable, GracefulShutdown, TransactionId}
2626
import org.apache.openwhisk.core.WhiskConfig
2727
import org.apache.openwhisk.core.connector.ContainerCreationError._
2828
import org.apache.openwhisk.core.connector.test.TestConnector
29-
import org.apache.openwhisk.core.connector.{
30-
ContainerCreationAckMessage,
31-
ContainerCreationError,
32-
ContainerCreationMessage,
33-
MessageProducer,
34-
ResultMetadata
35-
}
36-
import org.apache.openwhisk.core.containerpool.docker.DockerContainer
29+
import org.apache.openwhisk.core.connector.{ContainerCreationAckMessage, ContainerCreationError, ContainerCreationMessage, MessageProducer, ResultMetadata}
3730
import org.apache.openwhisk.core.containerpool.v2._
38-
import org.apache.openwhisk.core.containerpool.{
39-
Container,
40-
ContainerAddress,
41-
ContainerPoolConfig,
42-
ContainerRemoved,
43-
PrewarmContainerCreationConfig,
44-
PrewarmingConfig
45-
}
31+
import org.apache.openwhisk.core.containerpool.{Container, ContainerAddress, ContainerId, ContainerPoolConfig, ContainerRemoved, PrewarmContainerCreationConfig, PrewarmingConfig}
4632
import org.apache.openwhisk.core.database.test.DbUtils
4733
import org.apache.openwhisk.core.entity.ExecManifest.{ImageName, ReactivePrewarmingConfig, RuntimeManifest}
4834
import org.apache.openwhisk.core.entity._
@@ -137,9 +123,12 @@ class FunctionPullingContainerPoolTests
137123
private val schedulerInstanceId = SchedulerInstanceId("0")
138124
private val producer = stub[MessageProducer]
139125
private val prewarmedData = PreWarmData(mock[MockableV2Container], actionKind, memoryLimit)
126+
private val mockContainer = mock[MockableV2Container]
127+
(mockContainer.containerId _: () => ContainerId).expects().returning(ContainerId("test-container-id")).anyNumberOfTimes()
128+
140129
private val initializedData =
141130
InitializedData(
142-
mock[MockableV2Container],
131+
mockContainer,
143132
invocationNamespace.asString,
144133
whiskAction.toExecutableWhiskAction.get,
145134
TestProbe().ref)
@@ -315,6 +304,8 @@ class FunctionPullingContainerPoolTests
315304
private def retry[T](fn: => T) = org.apache.openwhisk.utils.retry(fn, 10, Some(1.second))
316305

317306
it should "stop containers gradually when shut down" in within(timeout * 20) {
307+
(mockContainer.containerId _: () => ContainerId).expects().returning(ContainerId("test-container-id")).anyNumberOfTimes()
308+
318309
val (containers, factory) = testContainers(10)
319310
val disablingContainers = ListBuffer[ActorRef]()
320311

@@ -356,7 +347,7 @@ class FunctionPullingContainerPoolTests
356347
pool,
357348
ContainerIsPaused(
358349
WarmData(
359-
stub[DockerContainer],
350+
mockContainer,
360351
invocationNamespace.asString,
361352
whiskAction.toExecutableWhiskAction.get,
362353
doc.rev,
@@ -636,6 +627,7 @@ class FunctionPullingContainerPoolTests
636627
}
637628

638629
it should "use a warmed container when invocationNamespace, action and revision matched" in within(timeout) {
630+
(mockContainer.containerId _: () => ContainerId).expects().returning(ContainerId("test-container-id")).anyNumberOfTimes()
639631
val (containers, factory) = testContainers(3)
640632
val doc = put(entityStore, whiskAction)
641633

@@ -654,7 +646,7 @@ class FunctionPullingContainerPoolTests
654646
pool.tell(
655647
ContainerIsPaused(
656648
WarmData(
657-
stub[DockerContainer],
649+
mockContainer,
658650
invocationNamespace.asString,
659651
whiskAction.toExecutableWhiskAction.get,
660652
doc.rev,
@@ -687,6 +679,7 @@ class FunctionPullingContainerPoolTests
687679
}
688680

689681
it should "retry when chosen warmed container is failed to resume" in within(timeout) {
682+
(mockContainer.containerId _: () => ContainerId).expects().returning(ContainerId("test-container-id")).anyNumberOfTimes()
690683

691684
val (containers, factory) = testContainers(2)
692685
val doc = put(entityStore, whiskAction)
@@ -706,7 +699,7 @@ class FunctionPullingContainerPoolTests
706699
pool.tell(
707700
ContainerIsPaused(
708701
WarmData(
709-
stub[DockerContainer],
702+
mockContainer,
710703
invocationNamespace.asString,
711704
whiskAction.toExecutableWhiskAction.get,
712705
doc.rev,
@@ -724,7 +717,7 @@ class FunctionPullingContainerPoolTests
724717
pool.tell(
725718
ResumeFailed(
726719
WarmData(
727-
stub[DockerContainer],
720+
mockContainer,
728721
invocationNamespace.asString,
729722
whiskAction.toExecutableWhiskAction.get,
730723
doc.rev,
@@ -739,6 +732,7 @@ class FunctionPullingContainerPoolTests
739732
}
740733

741734
it should "remove oldest previously used container to make space for the job passed to run" in within(timeout) {
735+
(mockContainer.containerId _: () => ContainerId).expects().returning(ContainerId("test-container-id")).anyNumberOfTimes()
742736
val (containers, factory) = testContainers(2)
743737
val doc = put(entityStore, whiskAction)
744738

@@ -757,7 +751,7 @@ class FunctionPullingContainerPoolTests
757751
pool.tell(
758752
ContainerIsPaused(
759753
WarmData(
760-
stub[DockerContainer],
754+
mockContainer,
761755
invocationNamespace.asString,
762756
whiskAction.toExecutableWhiskAction.get,
763757
doc.rev,
@@ -769,7 +763,7 @@ class FunctionPullingContainerPoolTests
769763
pool.tell(
770764
ContainerIsPaused(
771765
WarmData(
772-
stub[DockerContainer],
766+
mockContainer,
773767
invocationNamespace.asString,
774768
whiskAction.toExecutableWhiskAction.get,
775769
doc.rev,
@@ -781,7 +775,7 @@ class FunctionPullingContainerPoolTests
781775
pool.tell(
782776
ContainerIsPaused(
783777
WarmData(
784-
stub[DockerContainer],
778+
mockContainer,
785779
invocationNamespace.asString,
786780
whiskAction.toExecutableWhiskAction.get,
787781
doc.rev,
@@ -854,6 +848,7 @@ class FunctionPullingContainerPoolTests
854848
}
855849

856850
it should "send ack(success) to scheduler when chosen warmed container is resumed" in within(timeout) {
851+
(mockContainer.containerId _: () => ContainerId).expects().returning(ContainerId("test-container-id")).anyNumberOfTimes()
857852
val (containers, factory) = testContainers(1)
858853
val doc = put(entityStore, whiskAction)
859854
// Actions are created with default memory limit (MemoryLimit.stdMemory). This means 4 actions can be scheduled.
@@ -878,7 +873,7 @@ class FunctionPullingContainerPoolTests
878873
pool.tell(
879874
ContainerIsPaused(
880875
WarmData(
881-
stub[DockerContainer],
876+
mockContainer,
882877
invocationNamespace.asString,
883878
whiskAction.toExecutableWhiskAction.get,
884879
doc.rev,
@@ -894,7 +889,7 @@ class FunctionPullingContainerPoolTests
894889
pool.tell(
895890
Resumed(
896891
WarmData(
897-
stub[DockerContainer],
892+
mockContainer,
898893
invocationNamespace.asString,
899894
whiskAction.toExecutableWhiskAction.get,
900895
doc.rev,

tests/src/test/scala/org/apache/openwhisk/core/containerpool/v2/test/FunctionPullingContainerProxyTests.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ import org.apache.openwhisk.core.containerpool.{
4444
}
4545
import org.apache.openwhisk.core.database.{ArtifactStore, StaleParameter, UserContext}
4646
import org.apache.openwhisk.core.entity.ExecManifest.{ImageName, RuntimeManifest}
47+
import org.apache.openwhisk.core.entity._
4748
import org.apache.openwhisk.core.entity.size._
4849
import org.apache.openwhisk.core.entity.types.AuthStore
49-
import org.apache.openwhisk.core.entity._
5050
import org.apache.openwhisk.core.etcd.EtcdClient
5151
import org.apache.openwhisk.core.etcd.EtcdKV.ContainerKeys
5252
import org.apache.openwhisk.core.etcd.EtcdType._
@@ -1607,7 +1607,7 @@ class FunctionPullingContainerProxyTests
16071607
UnregisterData(ContainerKeys
16081608
.existingContainers(invocationNamespace.asString, fqn, action.rev, Some(instanceId), Some(containerId))))
16091609

1610-
client.expectMsg(CloseClientProxy)
1610+
client.expectMsg(GracefulShutdown)
16111611
client.send(machine, ClientClosed)
16121612

16131613
probe.expectMsgAllOf(ContainerRemoved(false), Transition(machine, Running, Removing))

0 commit comments

Comments
 (0)