diff options
Diffstat (limited to 'crashboxd/src/test/scala/io')
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) |