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/TreeInterrogation.scala29
-rw-r--r--src/test/scala/scala/async/neg/NakedAwait.scala16
-rw-r--r--src/test/scala/scala/async/run/ifelse0/WhileSpec.scala43
3 files changed, 60 insertions, 28 deletions
diff --git a/src/test/scala/scala/async/TreeInterrogation.scala b/src/test/scala/scala/async/TreeInterrogation.scala
index cf5948c..9ac0dce 100644
--- a/src/test/scala/scala/async/TreeInterrogation.scala
+++ b/src/test/scala/scala/async/TreeInterrogation.scala
@@ -36,23 +36,28 @@ class TreeInterrogation {
}
- // @Test
+ @Test
def sandbox() {
val cm = reflect.runtime.currentMirror
val tb = mkToolbox("-cp target/scala-2.10/classes")
val tree = tb.parse(
- """| import _root_.scala.async.AsyncId._
+ """ import _root_.scala.async.AsyncId._
| async {
- | var x = 0
- | var y = 0
- | while (x <= 2) {
- | y = await(x)
- | x += 1
- | }
- | y
+ | var xxx: Int = 0
+ | var y = 0
+ | println("before while")
+ | while (xxx < 3) {
+ | println("in while before await")
+ | y = await(xxx)
+ | println("in while after await")
+ | xxx = xxx + 1
+ | }
+ | println("after while")
+ | y
| }""".stripMargin)
- val tree1 = tb.typeCheck(tree)
-
- println(cm.universe.show(tree1))
+ //println(tree)
+ val tree1 = tb.typeCheck(tree.duplicate)
+ //println(cm.universe.show(tree1))
+ //println(tb.eval(tree))
}
}
diff --git a/src/test/scala/scala/async/neg/NakedAwait.scala b/src/test/scala/scala/async/neg/NakedAwait.scala
index d400729..a0c4e4d 100644
--- a/src/test/scala/scala/async/neg/NakedAwait.scala
+++ b/src/test/scala/scala/async/neg/NakedAwait.scala
@@ -117,20 +117,4 @@ class NakedAwait {
""".stripMargin
}
}
-
- @Test
- def whileBody() {
- expectError("await must not be used in this position") {
- """ import _root_.scala.async.AsyncId._
- | async {
- | var x = 0
- | var y = 0
- | while (x <= 2) {
- | y = await(x)
- | x += 1
- | }
- | y
- | }""".stripMargin
- }
- }
}
diff --git a/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala b/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
new file mode 100644
index 0000000..d08e2c5
--- /dev/null
+++ b/src/test/scala/scala/async/run/ifelse0/WhileSpec.scala
@@ -0,0 +1,43 @@
+package scala.async
+package run
+package ifelse0
+
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import org.junit.Test
+
+@RunWith(classOf[JUnit4])
+class WhileSpec {
+
+ @Test
+ def whiling1() {
+ import AsyncId._
+
+ val result = async {
+ var xxx: Int = 0
+ var y = 0
+ while (xxx < 3) {
+ y = await(xxx)
+ xxx = xxx + 1
+ }
+ y
+ }
+ result mustBe (2)
+ }
+
+ @Test
+ def whiling2() {
+ import AsyncId._
+
+ val result = async {
+ var xxx: Int = 0
+ var y = 0
+ while (false) {
+ y = await(xxx)
+ xxx = xxx + 1
+ }
+ y
+ }
+ result mustBe (0)
+ }
+} \ No newline at end of file