summaryrefslogtreecommitdiff
path: root/test/pending/jvm/timeout.scala
blob: 8f29f8ddbe268bcf824cc2a4accbf938e9bd0ea8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Test is in pending because although it succeeds locally,
// it takes too long on the machine which runs nightly tests.
//
// [partest] EXPECTED: 100 < x < 900
// [partest] ACTUAL:   1519

import scala.actors.Actor._
import scala.actors.TIMEOUT

object Test extends Application {
  case class Timing(time: Long)

  actor {
    val a = actor {
      react {
        case 'doTiming =>
          val s = sender
          reactWithin(500) {
            case TIMEOUT => 
              s ! Timing(System.currentTimeMillis)
          }
      }
    }

    val start = System.currentTimeMillis
    (a !? 'doTiming) match {
      case Timing(end) =>
        val delay = end - start

        if (delay > 100 && delay < 900)
          println("OK")
        else {
          println("EXPECTED: 100 < x < 900")
          println("ACTUAL:   "+delay)
        }
    }
  }
}