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)]