This is an automated email from the ASF dual-hosted git repository.

slange pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new 0cef0b9  Fix mock-verification in Container-tests. (#4071)
0cef0b9 is described below

commit 0cef0b9cc87747e609d1c8c153affe77fa7162a3
Author: Christian Bickel <[email protected]>
AuthorDate: Tue Oct 23 14:51:54 2018 +0200

    Fix mock-verification in Container-tests. (#4071)
    
    Fix mock-verification in Container-tests by using a hand-written mock and 
improving synchronisation.
---
 .../docker/test/DockerContainerTests.scala         | 51 +++++++++++++++++-----
 1 file changed, 39 insertions(+), 12 deletions(-)

diff --git 
a/tests/src/test/scala/whisk/core/containerpool/docker/test/DockerContainerTests.scala
 
b/tests/src/test/scala/whisk/core/containerpool/docker/test/DockerContainerTests.scala
index f4c7535..6730e8c 100644
--- 
a/tests/src/test/scala/whisk/core/containerpool/docker/test/DockerContainerTests.scala
+++ 
b/tests/src/test/scala/whisk/core/containerpool/docker/test/DockerContainerTests.scala
@@ -343,31 +343,43 @@ class DockerContainerTests
    * DOCKER COMMANDS
    */
   it should "pause and resume container via runc" in {
-    implicit val docker = stub[DockerApiWithFileAccess]
-    implicit val runc = stub[RuncApi]
+    implicit val docker = new TestDockerClient
+    implicit val runc = new TestRuncClient
 
     val id = ContainerId("id")
     val container = new DockerContainer(id, ContainerAddress("ip"), true)
 
-    container.suspend()
-    container.resume()
+    val suspend = container.suspend()
+    val resume = container.resume()
+
+    await(suspend)
+    await(resume)
+
+    docker.unpauses should have size 0
+    docker.pauses should have size 0
 
-    (runc.pause(_: ContainerId)(_: TransactionId)).verify(id, transid)
-    (runc.resume(_: ContainerId)(_: TransactionId)).verify(id, transid)
+    runc.pauses should have size 1
+    runc.resumes should have size 1
   }
 
   it should "pause and unpause container via docker" in {
-    implicit val docker = stub[DockerApiWithFileAccess]
-    implicit val runc = stub[RuncApi]
+    implicit val docker = new TestDockerClient
+    implicit val runc = new TestRuncClient
 
     val id = ContainerId("id")
     val container = new DockerContainer(id, ContainerAddress("ip"), false)
 
-    container.suspend()
-    container.resume()
+    val suspend = container.suspend()
+    val resume = container.resume()
+
+    await(suspend)
+    await(resume)
+
+    docker.unpauses should have size 1
+    docker.pauses should have size 1
 
-    (docker.pause(_: ContainerId)(_: TransactionId)).verify(id, transid)
-    (docker.unpause(_: ContainerId)(_: TransactionId)).verify(id, transid)
+    runc.pauses should have size 0
+    runc.resumes should have size 0
   }
 
   it should "destroy a container via Docker" in {
@@ -770,6 +782,21 @@ class DockerContainerTests
     processedLogsFalse(0) shouldBe expectedLogEntry.toFormattedString
   }
 
+  class TestRuncClient extends RuncApi {
+    var resumes = mutable.Buffer.empty[ContainerId]
+    var pauses = mutable.Buffer.empty[ContainerId]
+
+    override def resume(id: ContainerId)(implicit transid: TransactionId): 
Future[Unit] = {
+      resumes += id
+      Future.successful(())
+    }
+
+    override def pause(id: ContainerId)(implicit transid: TransactionId): 
Future[Unit] = {
+      pauses += id
+      Future.successful(())
+    }
+  }
+
   class TestDockerClient extends DockerApiWithFileAccess {
     var runs = mutable.Buffer.empty[(String, Seq[String])]
     var inspects = mutable.Buffer.empty[(ContainerId, String)]

Reply via email to