summaryrefslogtreecommitdiff
path: root/crashboxd/src/test/scala/io/crashbox/ci
diff options
context:
space:
mode:
Diffstat (limited to 'crashboxd/src/test/scala/io/crashbox/ci')
-rw-r--r--crashboxd/src/test/scala/io/crashbox/ci/BuildStageSpec.scala40
-rw-r--r--crashboxd/src/test/scala/io/crashbox/ci/DockerExecutorSpec.scala38
-rw-r--r--crashboxd/src/test/scala/io/crashbox/ci/DockerUtil.scala3
-rw-r--r--crashboxd/src/test/scala/io/crashbox/ci/IOUtil.scala10
4 files changed, 45 insertions, 46 deletions
diff --git a/crashboxd/src/test/scala/io/crashbox/ci/BuildStageSpec.scala b/crashboxd/src/test/scala/io/crashbox/ci/BuildStageSpec.scala
index dd79f72..033fe52 100644
--- a/crashboxd/src/test/scala/io/crashbox/ci/BuildStageSpec.scala
+++ b/crashboxd/src/test/scala/io/crashbox/ci/BuildStageSpec.scala
@@ -1,18 +1,16 @@
package io.crashbox.ci
+import java.io.{ByteArrayOutputStream, File, OutputStream}
+
+import scala.concurrent.{Await, Future}
+import scala.concurrent.duration._
+
+import Builder._
import akka.NotUsed
import akka.actor.ActorSystem
-import akka.stream.scaladsl.Keep
-import akka.stream.{ ClosedShape, KillSwitch }
-import akka.stream.scaladsl.{ GraphDSL, RunnableGraph, Sink, Source }
-import akka.stream.{ ActorMaterializer, FanInShape2 }
-import java.io.{ ByteArrayOutputStream, File, OutputStream }
-import java.nio.file.Files
+import akka.stream.ActorMaterializer
+import akka.stream.scaladsl.{Keep, RunnableGraph, Sink, Source}
import org.scalatest._
-import scala.concurrent.{ Await, Future }
-import scala.concurrent.duration._
-import Builder._
-
class BuildStageSpec extends FlatSpec with Matchers with BeforeAndAfterAll {
@@ -23,13 +21,13 @@ class BuildStageSpec extends FlatSpec with Matchers with BeforeAndAfterAll {
case class DummyEnv() extends Environment {
val id = DummyId()
}
-
+
case class DummyId() extends ExecutionId {
import DummyId._
private var _state: State = Starting
- def state = _state.synchronized{ _state}
- def state_=(value: State) = _state.synchronized{_state = value}
+ def state = _state.synchronized { _state }
+ def state_=(value: State) = _state.synchronized { _state = value }
}
object DummyId {
@@ -41,12 +39,15 @@ class BuildStageSpec extends FlatSpec with Matchers with BeforeAndAfterAll {
}
class DummyExecutor(
- startDelay: Duration = 0.seconds,
- resultDelay: Duration = 0.seconds,
- stopDelay: Duration = 0.seconds
+ startDelay: Duration = 0.seconds,
+ resultDelay: Duration = 0.seconds,
+ stopDelay: Duration = 0.seconds
) extends Executor[DummyEnv, DummyId] {
- override def start(env: DummyEnv, script: String, dir: File, out: OutputStream) = Future {
+ override def start(env: DummyEnv,
+ script: String,
+ dir: File,
+ out: OutputStream) = Future {
Thread.sleep(startDelay.toMillis)
env.id.state = DummyId.Running
env.id
@@ -66,8 +67,8 @@ class BuildStageSpec extends FlatSpec with Matchers with BeforeAndAfterAll {
}
def dummySource(
- executor: DummyExecutor,
- env: DummyEnv
+ executor: DummyExecutor,
+ env: DummyEnv
): Source[BuildState, NotUsed] = {
val stage = new BuildSource(
TaskId("dummy", 0),
@@ -109,7 +110,6 @@ class BuildStageSpec extends FlatSpec with Matchers with BeforeAndAfterAll {
Thread.sleep(delay.toMillis)
assert(env.id.state == DummyId.Stopped)
-
val expectedEvents = Seq(
TaskStarting(taskId, taskDef),
TaskRunning(taskId, env.id),
diff --git a/crashboxd/src/test/scala/io/crashbox/ci/DockerExecutorSpec.scala b/crashboxd/src/test/scala/io/crashbox/ci/DockerExecutorSpec.scala
index 6794908..7d4dc79 100644
--- a/crashboxd/src/test/scala/io/crashbox/ci/DockerExecutorSpec.scala
+++ b/crashboxd/src/test/scala/io/crashbox/ci/DockerExecutorSpec.scala
@@ -1,8 +1,6 @@
package io.crashbox.ci
-import com.spotify.docker.client.DockerClient
-import com.spotify.docker.client.DockerClient.ListContainersParam
-import java.io.{ByteArrayOutputStream, File}
+import java.io.File
import java.nio.file.Files
import scala.collection.JavaConverters._
@@ -11,8 +9,6 @@ import scala.concurrent.duration._
import akka.actor.ActorSystem
import org.scalatest._
-import scala.util.Random
-
class DockerExecutorSpec
extends FlatSpec
@@ -45,13 +41,12 @@ class DockerExecutorSpec
def run[A](script: String)(tests: (Int, File, String) => A): A = withTemp {
case (dir, out) =>
-
- val awaitable = for (id <- exec.start(env, script, dir, out);
- status <- exec.result(id)) yield {
- status
- }
- val status = Await.result(awaitable, timeout)
- tests(status, dir, new String(out.toByteArray()).trim())
+ val awaitable = for (id <- exec.start(env, script, dir, out);
+ status <- exec.result(id)) yield {
+ status
+ }
+ val status = Await.result(awaitable, timeout)
+ tests(status, dir, new String(out.toByteArray()).trim())
}
"DockerExecutor" should "return expected exit codes" in {
@@ -97,15 +92,16 @@ class DockerExecutorSpec
}
it should "allow cancellations" in {
- withTemp { case (dir, out) =>
- val script = "while true; do sleep 1; echo sleeping; done"
-
- val id = Await.result(exec.start(env, script, dir, out), timeout)
- val check = exec.result(id).map { res =>
- assert(res == 137)
- }
- exec.stop(id)
- Await.result(check, timeout)
+ withTemp {
+ case (dir, out) =>
+ val script = "while true; do sleep 1; echo sleeping; done"
+
+ val id = Await.result(exec.start(env, script, dir, out), timeout)
+ val check = exec.result(id).map { res =>
+ assert(res == 137)
+ }
+ exec.stop(id)
+ Await.result(check, timeout)
}
}
diff --git a/crashboxd/src/test/scala/io/crashbox/ci/DockerUtil.scala b/crashboxd/src/test/scala/io/crashbox/ci/DockerUtil.scala
index 794a390..969245f 100644
--- a/crashboxd/src/test/scala/io/crashbox/ci/DockerUtil.scala
+++ b/crashboxd/src/test/scala/io/crashbox/ci/DockerUtil.scala
@@ -1,7 +1,8 @@
package io.crashbox.ci
+import IOUtil._
+
object DockerUtil {
- import IOUtil._
import com.spotify.docker.client.DockerClient
import java.io.File
import java.nio.file.Files
diff --git a/crashboxd/src/test/scala/io/crashbox/ci/IOUtil.scala b/crashboxd/src/test/scala/io/crashbox/ci/IOUtil.scala
index 034c6a3..82c0840 100644
--- a/crashboxd/src/test/scala/io/crashbox/ci/IOUtil.scala
+++ b/crashboxd/src/test/scala/io/crashbox/ci/IOUtil.scala
@@ -1,13 +1,13 @@
package io.crashbox.ci
-import java.io.{ ByteArrayOutputStream, File }
+import java.io.{ByteArrayOutputStream, File}
import java.nio.file.Files
object IOUtil {
def withTempDir[A](action: File => A): A = {
def rm(parent: File): Unit = if (parent.isDirectory) {
- parent.listFiles.foreach{ child =>
+ parent.listFiles.foreach { child =>
rm(child)
}
}
@@ -16,13 +16,15 @@ object IOUtil {
finally rm(dir)
}
- def withTempStream[A](action: ByteArrayOutputStream => A, size: Int = 1024): A = {
+ def withTempStream[A](action: ByteArrayOutputStream => A,
+ size: Int = 1024): A = {
val out = new ByteArrayOutputStream(size)
try action(out)
finally out.close()
}
- def withTemp[A](action: (File, ByteArrayOutputStream) => A, size: Int = 1024): A = {
+ def withTemp[A](action: (File, ByteArrayOutputStream) => A,
+ size: Int = 1024): A = {
withTempDir { d =>
withTempStream { s =>
action(d, s)