aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2019-11-24 15:47:46 -0500
committerJakob Odersky <jakob@odersky.com>2019-11-24 15:47:46 -0500
commitaab049c7e9630bc8992c0fcd0edd593d00b00b93 (patch)
treedce79126058b71af4a7d8ef1725e3f232bfbc4b5
parent9b59d81d201e9b99ea5bc1cc6bccfaf646f9abdc (diff)
downloadakka-serial-aab049c7e9630bc8992c0fcd0edd593d00b00b93.tar.gz
akka-serial-aab049c7e9630bc8992c0fcd0edd593d00b00b93.tar.bz2
akka-serial-aab049c7e9630bc8992c0fcd0edd593d00b00b93.zip
Fix socat spawning in tests
-rw-r--r--sync/src/test/scala/akka/serial/PseudoTerminal.scala28
1 files changed, 14 insertions, 14 deletions
diff --git a/sync/src/test/scala/akka/serial/PseudoTerminal.scala b/sync/src/test/scala/akka/serial/PseudoTerminal.scala
index 3e9e9fe..7ed675a 100644
--- a/sync/src/test/scala/akka/serial/PseudoTerminal.scala
+++ b/sync/src/test/scala/akka/serial/PseudoTerminal.scala
@@ -15,21 +15,21 @@ trait PseudoTerminal {
val dir = Files.createTempDirectory("akka-serial-pty").toFile
val pty = new File(dir, "pty")
- val socat = try {
- val s = Seq(
- "socat",
- "-d -d",
- s"exec:cat,pty,raw,b115200,echo=0",
- s"pty,raw,b115200,echo=0,link=${pty.getAbsolutePath}"
- ).run(ProcessLogger(println(_)), false)
- Thread.sleep(SetupTimeout.toMillis) // allow ptys to set up
- s
- } catch {
- case NonFatal(ex) =>
- throw new IOException(
- "Error running echo service, make sure the program 'socat' is installed", ex)
+ val socat = Process(
+ "socat",
+ Seq(
+ "-d", "-d",
+ s"exec:cat,pty,raw,b115200,echo=0",
+ s"pty,raw,b115200,echo=0,link=${pty.getAbsoluteFile()}"
+ )
+ ).run(ProcessLogger(println(_)), false)
+
+ Thread.sleep(SetupTimeout.toMillis) // allow ptys to set up
+
+ if (!socat.isAlive()) {
+ sys.error(s"socat exited too early with code ${socat.exitValue()}")
}
-
+
try {
val result = action(pty.getAbsolutePath, SerialSettings(baud = 115200))
Thread.sleep(SetupTimeout.toMillis) // allow for async cleanup before destroying ptys