aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/scala/async/run/ifelse0/WhileSpec.scala')
-rw-r--r--src/test/scala/scala/async/run/ifelse0/WhileSpec.scala40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala b/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
index 4b3c2aa..76e6b1e 100644
--- a/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
+++ b/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
@@ -76,4 +76,44 @@ class WhileSpec {
}
result mustBe ()
}
+
+ @Test def doWhile() {
+ import AsyncId._
+ val result = async {
+ var b = 0
+ var x = ""
+ await(do {
+ x += "1"
+ x += await("2")
+ x += "3"
+ b += await(1)
+ } while (b < 2))
+ await(x)
+ }
+ result mustBe "123123"
+ }
+
+ @Test def whileAwaitCondition() {
+ import AsyncId._
+ val result = async {
+ var b = true
+ while(await(b)) {
+ b = false
+ }
+ await(b)
+ }
+ result mustBe false
+ }
+
+ @Test def doWhileAwaitCondition() {
+ import AsyncId._
+ val result = async {
+ var b = true
+ do {
+ b = false
+ } while(await(b))
+ b
+ }
+ result mustBe false
+ }
}