aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/scala')
-rw-r--r--src/test/scala/scala/async/run/SyncOptimizationSpec.scala28
-rw-r--r--src/test/scala/scala/async/run/futures/FutureSpec.scala1
2 files changed, 28 insertions, 1 deletions
diff --git a/src/test/scala/scala/async/run/SyncOptimizationSpec.scala b/src/test/scala/scala/async/run/SyncOptimizationSpec.scala
new file mode 100644
index 0000000..dd649f4
--- /dev/null
+++ b/src/test/scala/scala/async/run/SyncOptimizationSpec.scala
@@ -0,0 +1,28 @@
+package scala.async.run
+
+import org.junit.Test
+import scala.async.Async._
+import scala.concurrent._
+import scala.concurrent.duration._
+import ExecutionContext.Implicits._
+
+class SyncOptimizationSpec {
+ @Test
+ def awaitOnCompletedFutureRunsOnSameThread: Unit = {
+
+ def stackDepth = Thread.currentThread().getStackTrace.size
+
+ val future = async {
+ val thread1 = Thread.currentThread
+ val stackDepth1 = stackDepth
+
+ val f = await(Future.successful(1))
+ val thread2 = Thread.currentThread
+ val stackDepth2 = stackDepth
+ assert(thread1 == thread2)
+ assert(stackDepth1 == stackDepth2)
+ }
+ Await.result(future, 10.seconds)
+ }
+
+}
diff --git a/src/test/scala/scala/async/run/futures/FutureSpec.scala b/src/test/scala/scala/async/run/futures/FutureSpec.scala
index 25be0b1..362303e 100644
--- a/src/test/scala/scala/async/run/futures/FutureSpec.scala
+++ b/src/test/scala/scala/async/run/futures/FutureSpec.scala
@@ -538,7 +538,6 @@ class FutureSpec {
val f = async { await(future(5)) / 0 }
Await.ready(f, defaultTimeout).value.get.toString mustBe expected.toString
}
-
}